wtf-tracker-cvs Mailing List for Work Tracking Facilitator (Page 2)
Brought to you by:
gryphonshafer
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
(33) |
Dec
(50) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(17) |
Feb
|
Mar
(19) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gryphon S. <gry...@us...> - 2007-01-02 23:39:19
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Apache In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28721/lib/WTF/Apache Modified Files: Authen.pm Authz.pm Response.pm Log Message: Minor changes (typically POD and version numbering) to bring code up to ready for a release Index: Authz.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Apache/Authz.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Authz.pm 2 Jan 2007 23:13:28 -0000 1.7 --- Authz.pm 2 Jan 2007 23:39:16 -0000 1.8 *************** *** 1,4 **** package WTF::Apache::Authz; ! our $VERSION = 1.02; use strict; use warnings; --- 1,4 ---- package WTF::Apache::Authz; ! our $VERSION = 1.03; use strict; use warnings; *************** *** 69,73 **** =head1 VERSION ! This document describes WTF::Apache::Authz version 1.02 =head1 DESCRIPTION --- 69,73 ---- =head1 VERSION ! This document describes WTF::Apache::Authz version 1.03 =head1 DESCRIPTION Index: Authen.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Apache/Authen.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Authen.pm 5 Dec 2006 16:03:35 -0000 1.4 --- Authen.pm 2 Jan 2007 23:39:16 -0000 1.5 *************** *** 1,4 **** package WTF::Apache::Authen; ! our $VERSION = 1.02; use strict; use warnings; --- 1,4 ---- package WTF::Apache::Authen; ! our $VERSION = 1.03; use strict; use warnings; *************** *** 107,111 **** =head1 VERSION ! This document describes WTF::Apache::Authen version 1.02 =head1 DESCRIPTION --- 107,111 ---- =head1 VERSION ! This document describes WTF::Apache::Authen version 1.03 =head1 DESCRIPTION Index: Response.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Apache/Response.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Response.pm 2 Dec 2006 00:09:09 -0000 1.2 --- Response.pm 2 Jan 2007 23:39:16 -0000 1.3 *************** *** 1,4 **** package WTF::Apache::Response; ! our $VERSION = 1.02; use strict; use warnings; --- 1,4 ---- package WTF::Apache::Response; ! our $VERSION = 1.03; use strict; use warnings; *************** *** 23,27 **** =head1 VERSION ! This document describes WTF::Apache::Response version 1.02 =head1 DESCRIPTION --- 23,27 ---- =head1 VERSION ! This document describes WTF::Apache::Response version 1.03 =head1 DESCRIPTION |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:33
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/input In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/templates/pages/input Modified Files: tracking.tmpl Added Files: myvacation.tmpl Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar --- NEW FILE: myvacation.tmpl --- <tmpl_include name="header.tmpl"> <h2><tmpl_var name="title"></h2> <form method="get" action="<tmpl_var name="root_url">/save/input/newvacation" > <input type="hidden" name="action" value="add" /> <div style="width: 190px; padding-right: 10px; float: left; text-align: right"> <label> Start date: <input type="text" name="date_start" id="date_start" value="" style="width: 80px" /> <img src="<tmpl_var name="root_url">/static/calendar.gif" id="calendar_trigger_start" style="cursor: pointer" alt="Select start date" title="Select start date" /> </label> <br /> <label> End date: <input type="text" name="date_end" id="date_end" value="" style="width: 80px" /> <img src="<tmpl_var name="root_url">/static/calendar.gif" id="calendar_trigger_end" style="cursor: pointer" alt="Select end date" title="Select end date" /> </label> <br /> </div> <script type="text/javascript"> try { Calendar.setup({ inputField : "date_start", ifFormat : "%Y-%m-%d", button : "calendar_trigger_start", singleClick : true, showsTime : false }); Calendar.setup({ inputField : "date_end", ifFormat : "%Y-%m-%d", button : "calendar_trigger_end", singleClick : true, showsTime : false }); } catch (e) {} </script> <p style="clear: both; padding-top: 5px; padding-left: 80px"> <input type="submit" value="Add Vacation" /> </p> </form> <tmpl_if name="future_vacation"> <h4 class="tight">Future Vacation Days</h4> <p> Click on a row from the following table of future vacation days to delete it from the calendar. </p> <table class="tabular interactive indent" style="width: 200px"> <tr> <th>Start Date</th> <th>End Date</th> <th>Days</th> </tr> <tmpl_loop name="future_vacation"> <tr start_date">', '<tmpl_var name="end_date">', '<tmpl_var name="root_url">/save/input/newvacation' )"> <td><tmpl_var name="start_date"></td> <td><tmpl_var name="end_date"></td> <td align="right"><tmpl_var name="total"></td> </tr> </tmpl_loop> </table> </tmpl_if> <h4 class="tight">Past Vacation and Sick Days</h4> <div style="width: 180px"> <p style="text-align: right"> Total Past Vacation Days: <b><tmpl_var name="vacation"></b><br/> Total Sick Days: <b><tmpl_var name="sick"></b> </p> </div> <tmpl_if name="vacation_sick"> <table class="tabular indent"> <tr> <th>Start Date</th> <th>End Date</th> <th>Days</th> <th>OOO Type</th> </tr> <tmpl_loop name="vacation_sick"> <tr> <td><tmpl_var name="start_date"></td> <td><tmpl_var name="end_date"></td> <td align="right"><tmpl_var name="total"></td> <td><tmpl_if name="vacation">Vacation<tmpl_else>Sick</tmpl_if></td> </tr> </tmpl_loop> </table> </tmpl_if> <tmpl_include name="footer.tmpl"> Index: tracking.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/input/tracking.tmpl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tracking.tmpl 21 Dec 2006 19:33:54 -0000 1.6 --- tracking.tmpl 2 Jan 2007 23:13:29 -0000 1.7 *************** *** 129,133 **** <p style="text-align: right"> ! <input type="button" value="Reset" /> <input type="submit" value="Save" /> </p> --- 129,136 ---- <p style="text-align: right"> ! <input type="button" value="Reset" root_url">/view/input/tracking' ! )" /> <input type="submit" value="Save" /> </p> |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:33
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/reports In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/templates/pages/reports Added Files: ooo_calendar.tmpl Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar --- NEW FILE: ooo_calendar.tmpl --- <tmpl_include name="header.tmpl"> <h2><tmpl_var name="title"></h2> <form method="get" action="<tmpl_var name="root_url">/view/reports/calendar"> <div style="width: 190px; padding-right: 10px; float: left; text-align: right"> <label> Start date: <input type="text" name="date_start" id="date_start" value="<tmpl_var name="date_start">" style="width: 80px" /> <img src="<tmpl_var name="root_url">/static/calendar.gif" id="calendar_trigger_start" style="cursor: pointer" alt="Select start date" title="Select start date" /> </label> <br /> <label> End date: <input type="text" name="date_end" id="date_end" value="<tmpl_var name="date_end">" style="width: 80px" /> <img src="<tmpl_var name="root_url">/static/calendar.gif" id="calendar_trigger_end" style="cursor: pointer" alt="Select end date" title="Select end date" /> </label> <br /> </div> <br style="clear: both" /> <input type="submit" value="View OOO Calendar" style="margin-top: 5px; margin-left: 40px" /> <script type="text/javascript"> try { Calendar.setup({ inputField : "date_start", ifFormat : "%Y-%m-%d", button : "calendar_trigger_start", singleClick : true, showsTime : false }); Calendar.setup({ inputField : "date_end", ifFormat : "%Y-%m-%d", button : "calendar_trigger_end", singleClick : true, showsTime : false }); } catch (e) {} </script> </form> <tmpl_if name="ooo_data"> <tmpl_loop name="ooo_data"> <h4 class="tight"><tmpl_var name="date"></h4> <ul> <tmpl_loop name="ooo_entries"> <li> <tmpl_var name="employee"> (<tmpl_if name="vacation">Vacation<tmpl_else>Sick</tmpl_if>) </li> </tmpl_loop> </ul> </tmpl_loop> <tmpl_else> <p> There is no out-of-office (OOO) data within the specified range. Adjust the range to view OOO data. </p> </tmpl_if> <tmpl_include name="footer.tmpl"> |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:33
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/admin In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/templates/pages/admin Modified Files: task_area.tmpl users.tmpl Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: users.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/users.tmpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** users.tmpl 20 Dec 2006 00:04:32 -0000 1.2 --- users.tmpl 2 Jan 2007 23:13:29 -0000 1.3 *************** *** 4,9 **** <p> ! Use the following table to alter or administrate employee user accounts<br /> ! regarding active states, functional areas, and team assignments. </p> --- 4,9 ---- <p> ! Use the following table to alter or administrate employee user<br /> ! accounts regarding active states, functional areas, and team assignments. </p> Index: task_area.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/task_area.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** task_area.tmpl 20 Dec 2006 00:04:32 -0000 1.4 --- task_area.tmpl 2 Jan 2007 23:13:29 -0000 1.5 *************** *** 4,9 **** <p> ! Use the table below to select which project and non-project work tasks will<br /> ! be displayed for employees in each of the active company functional areas. </p> --- 4,9 ---- <p> ! Use the table to select tasks for display by<br/> ! employees across company functional areas. </p> |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:33
|
Update of /cvsroot/wtf-tracker/wtf/static In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/static Modified Files: general.css tracking.js Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: general.css =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/static/general.css,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** general.css 3 Dec 2006 23:03:44 -0000 1.13 --- general.css 2 Jan 2007 23:13:29 -0000 1.14 *************** *** 63,73 **** div#nav_bar { position: absolute; ! top: 10px; right: 5px; text-align: right; } div#nav_bar p.nav_bar { ! margin: 2px 2px 8px 2px; } --- 63,74 ---- div#nav_bar { position: absolute; ! top: 5px; right: 5px; text-align: right; + width: 550px; } div#nav_bar p.nav_bar { ! margin: 0px 0px 6px 0px; } *************** *** 81,84 **** --- 82,90 ---- } + div#nav_bar p.nav_bar a { + line-height: 0.26in; + white-space: nowrap; + } + /* required hack for Mozilla on Linux to make "Administrate Users" page */ /* link menu's <sup> text fit */ Index: tracking.js =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/static/tracking.js,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tracking.js 21 Dec 2006 16:36:04 -0000 1.12 --- tracking.js 2 Jan 2007 23:13:29 -0000 1.13 *************** *** 607,612 **** function copyLastData(trackingForm) { if ( trackingChange && ! confirm( ! 'Are you sure you want to copy last data?\n' + ! 'You will loose any changes you have made.' ) ) return; --- 607,612 ---- function copyLastData(trackingForm) { if ( trackingChange && ! confirm( ! "Are you sure you want to copy last data?\n" + ! "You will loose any changes you have made." ) ) return; *************** *** 619,624 **** if ( ( trackingChange && confirm( ! 'Are you sure you want to reset this data?\n' + ! 'You will loose any changes you have made.' ) ) || ( trackingForm.copy_last_data_done == "on" && ! trackingChange ) --- 619,624 ---- if ( ( trackingChange && confirm( ! "Are you sure you want to reset this data?\n" + ! "You will loose any changes you have made." ) ) || ( trackingForm.copy_last_data_done == "on" && ! trackingChange ) *************** *** 626,631 **** skipSubmitTrackingForm = true; trackingForm.reset(); ! //window.location.reload(false); ! window.location.href = '/wtf/view/input/tracking?display_date=' + trackingForm.display_date.value; } } --- 626,675 ---- skipSubmitTrackingForm = true; trackingForm.reset(); ! window.location.href = urlPath + "?display_date=" + trackingForm.display_date.value; ! } ! } ! ! function validateVacation( dateStart, dateEnd ) { ! dateStart = Date.parse( dateStart.replace( /-/g, "/" ) ); ! dateEnd = Date.parse( dateEnd.replace( /-/g, "/" ) ); ! ! if ( isNaN(dateStart) || isNaN(dateEnd) ) { ! alert( ! "The date values you submitted do not appear to be valid.\n" + ! "Please re-enter the date range and try again." ! ); ! return false; ! } ! ! dateStart = new Date(dateStart); ! dateEnd = new Date(dateEnd); ! var today = new Date(); ! ! if ( dateStart > dateEnd ) { ! alert( ! "It appears that you have entered a start date that occures\n" + ! "before the end date. Please change your date range and retry." ! ); ! return false; ! } ! ! if ( dateStart < today ) { ! alert( ! "You cannot schedule vacation days that occure in the past.\n" + ! "Please re-enter a date range that occures in the future." ! ); ! return false; ! } ! ! return true; ! } ! ! function deleteVacation( startDate, endDate, urlPath ) { ! if ( confirm( ! "Are you sure you want to delete your vacation\n" + ! "time from " + startDate + " through " + endDate + "?" ! ) ) { ! document.location.href = urlPath + ! "?date_start=" + startDate + "&date_end=" + endDate + "&action=delete"; } } |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:32
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/lib/WTF Modified Files: Pages.pm SQL.pm Utils.pm Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: SQL.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/SQL.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SQL.pm 21 Dec 2006 19:33:54 -0000 1.11 --- SQL.pm 2 Jan 2007 23:13:28 -0000 1.12 *************** *** 89,93 **** IF( p.name IS NULL, t.name, CONCAT( p.name, ' (', t.name, ')' ) ) AS project, IF( p.bug IS NULL, 'NPT', p.bug ) AS bug, ! DATE_FORMAT(w.work_day, "%W, %M %e, %Y") AS work_day, w.work_day AS date, w.hours FROM work AS w --- 89,93 ---- IF( p.name IS NULL, t.name, CONCAT( p.name, ' (', t.name, ')' ) ) AS project, IF( p.bug IS NULL, 'NPT', p.bug ) AS bug, ! DATE_FORMAT( w.work_day, "%W, %M %e, %Y" ) AS work_day, w.work_day AS date, w.hours FROM work AS w *************** *** 379,382 **** --- 379,413 ---- }, + 'vacation_sick' => q{ + SELECT + work_day AS end_date, + work_day - INTERVAL 1 DAY AS previous_day, + vacation, sick + FROM summary + WHERE employee_id = ? AND ( vacation = 1 OR sick = 1 ) AND work_day <= NOW() + ORDER BY work_day DESC + }, + + 'future_vacation' => q{ + SELECT work_day AS end_date, work_day - INTERVAL 1 DAY AS previous_day + FROM summary + WHERE employee_id = ? AND vacation = 1 AND work_day > NOW() + ORDER BY work_day DESC + }, + + 'delete_vacation' => 'DELETE FROM summary WHERE employee_id = ? AND work_day BETWEEN ? AND ?', + + 'add_vacation' => 'INSERT INTO summary ( employee_id, work_day, vacation ) VALUES ( ?, ?, 1 )', + + 'ooo_calendar' => q{ + SELECT + DATE_FORMAT( s.work_day, "%W, %M %e, %Y" ) AS date, + e.name AS employee, s.vacation, s.sick + FROM summary AS s + INNER JOIN employee AS e ON s.employee_id = e.id + WHERE ( s.vacation = 1 OR s.sick = 1 ) AND s.work_day BETWEEN ? AND ? + ORDER BY s.work_day, e.name + }, + ); Index: Pages.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Pages.pm 2 Dec 2006 00:09:09 -0000 1.5 --- Pages.pm 2 Jan 2007 23:13:28 -0000 1.6 *************** *** 21,45 **** # the subclass to handle page generation DISPATCH_TABLE => { ! '/input' => [ 'Input', 'screen_input' ], ! '/input/projects' => [ 'Input', 'screen_projects' ], ! '/input/tasks' => [ 'Input', 'screen_tasks' ], ! '/input/tracking' => [ 'Input', 'screen_tracking' ], ! '/input/timesheet' => [ 'Input', 'action_save_timesheet' ], ! '/reports/myweekly' => [ 'Reports', 'screen_myweekly' ], ! '/reports/team' => [ 'Reports', 'screen_team_view' ], ! '/reports/projects' => [ 'Reports', 'screen_projects_list' ], ! '/reports/project' => [ 'Reports', 'screen_project_view' ], ! '/reports/activity' => [ 'Reports', 'screen_activity_summary' ], ! '/admin/authz' => [ 'Admin', 'screen_authz' ], ! '/admin/newauthzs' => [ 'Admin', 'action_save_new_authzs' ], ! '/admin/update' => [ 'Admin', 'action_update' ], ! '/admin/users' => [ 'Admin', 'screen_users' ], ! '/admin/saveusers' => [ 'Admin', 'action_save_users' ], ! '/admin/taskarea' => [ 'Admin', 'screen_task_area' ], ! '/admin/savetarea' => [ 'Admin', 'action_save_task_area' ], ! '/admin/loginas' => [ 'Admin', 'action_login_as' ], ! '/admin/revert' => [ 'Admin', 'action_revert_to_self' ], ! '/admin/tables' => [ 'Admin', 'screen_table_data' ], ! '/admin/tablesave' => [ 'Admin', 'action_save_table_data' ], }, }; --- 21,48 ---- # the subclass to handle page generation DISPATCH_TABLE => { ! '/input' => [ 'Input', 'screen_input' ], ! '/input/projects' => [ 'Input', 'screen_projects' ], ! '/input/tasks' => [ 'Input', 'screen_tasks' ], ! '/input/tracking' => [ 'Input', 'screen_tracking' ], ! '/input/timesheet' => [ 'Input', 'action_save_timesheet' ], ! '/input/myvacation' => [ 'Input', 'screen_myvacation' ], ! '/input/newvacation' => [ 'Input', 'action_save_new_vacation' ], ! '/reports/myweekly' => [ 'Reports', 'screen_myweekly' ], ! '/reports/team' => [ 'Reports', 'screen_team_view' ], ! '/reports/projects' => [ 'Reports', 'screen_projects_list' ], ! '/reports/project' => [ 'Reports', 'screen_project_view' ], ! '/reports/activity' => [ 'Reports', 'screen_activity_summary' ], ! '/reports/calendar' => [ 'Reports', 'screen_ooo_calendar' ], ! '/admin/authz' => [ 'Admin', 'screen_authz' ], ! '/admin/newauthzs' => [ 'Admin', 'action_save_new_authzs' ], ! '/admin/update' => [ 'Admin', 'action_update' ], ! '/admin/users' => [ 'Admin', 'screen_users' ], ! '/admin/saveusers' => [ 'Admin', 'action_save_users' ], ! '/admin/taskarea' => [ 'Admin', 'screen_task_area' ], ! '/admin/savetarea' => [ 'Admin', 'action_save_task_area' ], ! '/admin/loginas' => [ 'Admin', 'action_login_as' ], ! '/admin/revert' => [ 'Admin', 'action_revert_to_self' ], ! '/admin/tables' => [ 'Admin', 'screen_table_data' ], ! '/admin/tablesave' => [ 'Admin', 'action_save_table_data' ], }, }; Index: Utils.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Utils.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Utils.pm 3 Dec 2006 00:05:52 -0000 1.5 --- Utils.pm 2 Jan 2007 23:13:28 -0000 1.6 *************** *** 190,194 **** $day_in_desired_week_or_days_count > 0 ) { ! $time_start = time - 86_400 * $day_in_desired_week_or_days_count; } else { --- 190,194 ---- $day_in_desired_week_or_days_count > 0 ) { ! $time_start = time - 86_400 * $day_in_desired_week_or_days_count; # 86_400 = 1 day } else { |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:32
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Pages In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/lib/WTF/Pages Modified Files: Input.pm Reports.pm Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: Reports.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Reports.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Reports.pm 3 Dec 2006 23:03:43 -0000 1.12 --- Reports.pm 2 Jan 2007 23:13:28 -0000 1.13 *************** *** 363,369 **** ); ! my $total_alloc_days; $total_alloc_days += $_ for (@alloc_days); ! my $avg_alloc_days = int( @alloc_days / $total_alloc_days * 100 ) / 100; $sth->{'activity_summary_totals'}->execute( $month . '-01', $month . '-01' ) or die $dbh->errstr(); --- 363,369 ---- ); ! my $total_alloc_days = 0; $total_alloc_days += $_ for (@alloc_days); ! my $avg_alloc_days = ($total_alloc_days) ? int( @alloc_days / $total_alloc_days * 100 ) / 100 : 0; $sth->{'activity_summary_totals'}->execute( $month . '-01', $month . '-01' ) or die $dbh->errstr(); *************** *** 385,389 **** 'sick' => $sick, 'activities' => [ map { ! $_->{'alloc_percent'} = int( $_->{'alloc'} / $total_alloc_days * 100 ); $_; } @{$activities} ], --- 385,391 ---- 'sick' => $sick, 'activities' => [ map { ! $_->{'alloc_percent'} = ($total_alloc_days) ! ? int( $_->{'alloc'} / $total_alloc_days * 100 ) ! : 0; $_; } @{$activities} ], *************** *** 575,578 **** --- 577,610 ---- } + sub screen_ooo_calendar { + my ( $self, $r ) = @_; + my $req = WTF::Utils::get_req($r); + my $tmpl_obj = $self->setup_tmpl('reports/ooo_calendar.tmpl'); + + # get a date range of 30 days ago up through today + # or default to the inputted start and end if those are valid dates + my ( $date_start, $date_end ) = WTF::Utils::date_range( + 7, 21, + $req->param('date_start'), + $req->param('date_end'), + ); + + $sth->{'ooo_calendar'}->execute( $date_start, $date_end ) or die $dbh->errstr(); + + $tmpl_obj->param( + 'title' => 'OOO Calendar', + 'nav_bar' => WTF::Utils::nav_bar_data( $r, 'ooo_calendar' ), + 'show_calendar' => 1, + 'date_start' => $date_start, + 'date_end' => $date_end, + 'ooo_data' => WTF::Utils::tree_data( + $sth->{'ooo_calendar'}->fetchall_arrayref({}), + 'date', 'ooo_entries', + ), + ); + + return $tmpl_obj->output(); + } + 1; __END__ Index: Input.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Input.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Input.pm 21 Dec 2006 19:33:54 -0000 1.12 --- Input.pm 2 Jan 2007 23:13:28 -0000 1.13 *************** *** 5,8 **** --- 5,9 ---- use base 'WTF::Pages'; use Apache2::Const -compile => 'REDIRECT'; + use Time::Local 'timelocal'; use WTF::DBH; use WTF::SQL; *************** *** 322,325 **** --- 323,414 ---- } + sub screen_myvacation { + my ( $self, $r ) = @_; + my $tmpl_obj = $self->setup_tmpl('input/myvacation.tmpl'); + + my $get_date_data = sub { + my ($query_name) = @_; + + $sth->{$query_name}->execute( $r->pnotes('user_id') ) or die $dbh->errstr(); + my ( $vacation, $sick, @date_data ) = ( 0, 0 ); + while ( $_ = $sth->{$query_name}->fetchrow_hashref() ) { + if ( + @date_data and # is there a previous entry + $date_data[-1]->{'previous_day'} eq $_->{'end_date'} and # is it next to current record + $date_data[-1]->{'vacation'} == $_->{'vacation'} # is it the same type of record + ) { + # merge the entry into the previous + $date_data[-1]->{'start_date'} = $_->{'end_date'}; + $date_data[-1]->{'previous_day'} = $_->{'previous_day'}; + $date_data[-1]->{'total'}++; + } + else { + # add the entry into the list + $_->{'start_date'} = $_->{'end_date'}; + $_->{'total'}++; + push @date_data, $_; + } + + # increment either the vacation or sick total count as appropriate + ( ( $_->{'vacation'} ) ? $vacation : $sick )++; + } + $sth->{$query_name}->finish(); + + return \@date_data, $vacation, $sick; + }; + + my ($future_vacation) = [ reverse @{ ( $get_date_data->('future_vacation') )[0] } ]; + my ( $vacation_sick, $vacation, $sick ) = $get_date_data->('vacation_sick'); + + $tmpl_obj->param( + 'title' => 'My Vacation and Sick Days', + 'nav_bar' => WTF::Utils::nav_bar_data( $r, 'myvacation' ), + 'show_calendar' => 1, + 'future_vacation' => $future_vacation, + 'vacation_sick' => $vacation_sick, + 'vacation' => $vacation, + 'sick' => $sick, + ); + return $tmpl_obj->output(); + } + + sub action_save_new_vacation { + my ( $self, $r ) = @_; + my $req = WTF::Utils::get_req($r); + + # delete a vacation range + if ( $req->param('action') and $req->param('action') eq 'delete' ) { + $sth->{'delete_vacation'}->execute( + $r->pnotes('user_id'), + $req->param('date_start'), + $req->param('date_end'), + ) or die $dbh->errstr(); + } + + # add a vacation range + else { + my ( $date_cursor, $date_end ) = map { + ( defined $_ and /^(\d{4})-(\d+)-(\d+)$/ ) ? timelocal( 0, 0, 0, $3, $2 - 1, $1 ) : 0 + } ( $req->param('date_start'), $req->param('date_end') ); + + # if both the start and end dates are real-ish, start at the start + # date, and for each day between that and the end date, add a vacation + # entry into the wtf.summary table + if ( $date_cursor > 0 and $date_end > 0 ) { + while ( $date_cursor <= $date_end ) { + my @date = ( localtime($date_cursor) )[ 3 .. 5 ]; + $sth->{'add_vacation'}->execute( + $r->pnotes('user_id'), + sprintf( "%4d-%02d-%02d", $date[2] + 1900, $date[1] + 1, $date[0] ), + ) or die $dbh->errstr(); + $date_cursor += 86_400; # 1 day + } + } + } + + $r->headers_out->set( 'Location' => ROOT_URL . '/view/input/myvacation' ); + return $r->status( Apache2::Const::REDIRECT ); + } + 1; __END__ |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:32
|
Update of /cvsroot/wtf-tracker/wtf/templates/framework In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/templates/framework Modified Files: nav_bar.tmpl Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: nav_bar.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/framework/nav_bar.tmpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** nav_bar.tmpl 3 Dec 2006 00:05:52 -0000 1.5 --- nav_bar.tmpl 2 Jan 2007 23:13:29 -0000 1.6 *************** *** 11,14 **** --- 11,24 ---- href="<tmpl_var name="root_url">/view/reports/myweekly">My Weekly Time</a> + <a <tmpl_if name="current_myvacation">class="current_page"</tmpl_if> + title="Schedule and review your vacation and sick time" + href="<tmpl_var name="root_url">/view/input/myvacation">My Vacation</a> + + <tmpl_if name="authz_ooo_calendar"> + <a <tmpl_if name="current_ooo_calendar">class="current_page"</tmpl_if> + title="View vacation and sick time recorded across the company" + href="<tmpl_var name="root_url">/view/reports/calendar">OOO Calendar</a> + </tmpl_if> + <tmpl_if name="authz_team_view"> <a <tmpl_if name="current_team_view">class="current_page"</tmpl_if> *************** *** 30,35 **** <tmpl_if name="is_admin"> - </p> - <p class="nav_bar"> <a <tmpl_if name="current_admin_users">class="current_page"</tmpl_if> --- 40,43 ---- |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:31
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Apache In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/lib/WTF/Apache Modified Files: Authz.pm Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar Index: Authz.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Apache/Authz.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Authz.pm 5 Dec 2006 16:04:46 -0000 1.6 --- Authz.pm 2 Jan 2007 23:13:28 -0000 1.7 *************** *** 11,14 **** --- 11,15 ---- # pages and actions to "authz" authorizations in the "authz_employee" table SECURE_SECTIONS => { + 'reports/calendar' => 'ooo_calendar', 'reports/team' => 'team_view', 'reports/projects' => 'project_view', |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:13:31
|
Update of /cvsroot/wtf-tracker/wtf/db/migration In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17860/db/migration Added Files: 1.02_to_1.03.sql Log Message: Changes to support the addition of feature request 1618513: vacation scheduler and OOO calendar --- NEW FILE: 1.02_to_1.03.sql --- # SQL to migrate the database from release 1.02 (or 1.02a) to 1.03 ALTER TABLE codeline ADD UNIQUE product(product); UPDATE authz SET ordering = ordering + 1 WHERE ordering > 2; INSERT INTO authz ( name, ordering, description ) VALUES ( 'ooo_calendar', 3, 'User can view a calendar of company-wide vacation and sick days taken by all employees.' ); INSERT INTO authz_employee ( authz_id, employee_id ) SELECT 9, id FROM employee WHERE active = 1; |
From: Gryphon S. <gry...@us...> - 2007-01-02 23:11:57
|
Update of /cvsroot/wtf-tracker/wtf/db/migration In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv17025/db/migration Log Message: Directory /cvsroot/wtf-tracker/wtf/db/migration added to the repository |
From: Gryphon S. <gry...@us...> - 2006-12-21 19:34:00
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv25900/lib/WTF Modified Files: SQL.pm Log Message: Patch to implement feature request 1618514: Colored Dates in Timesheet Dropdown Index: SQL.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/SQL.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SQL.pm 21 Dec 2006 16:36:03 -0000 1.10 --- SQL.pm 21 Dec 2006 19:33:54 -0000 1.11 *************** *** 371,374 **** --- 371,382 ---- }, + 'work_days_in_range' => q{ + ( SELECT work_day FROM work WHERE employee_id = ? AND work_day BETWEEN ? AND ? ) + UNION + ( SELECT work_day FROM notes WHERE employee_id = ? AND work_day BETWEEN ? AND ? ) + UNION + ( SELECT work_day FROM summary WHERE employee_id = ? AND work_day BETWEEN ? AND ? ) + }, + ); *************** *** 377,381 **** for ( keys %sql ) { ! $sth->{$_} = $dbh->prepare_cached( $sql{$_} ) or die $dbh->errstr(); } --- 385,389 ---- for ( keys %sql ) { ! $sth->{$_} = $dbh->prepare( $sql{$_} ) or die $dbh->errstr(); } *************** *** 390,394 **** =head1 NAME ! WTF::SQL - Container module for all prepare_cached SQL statements =head1 VERSION --- 398,402 ---- =head1 NAME ! WTF::SQL - Container module for all prepared SQL statements =head1 VERSION *************** *** 403,407 **** =head1 DESCRIPTION ! This module is a simple container for all prepare_cached SQL statements. During the Apache child INIT phase, the "%sql" hash is walked for SQL statements. Each statement is prepared, and the resulting statement handle --- 411,415 ---- =head1 DESCRIPTION ! This module is a simple container for all prepared SQL statements. During the Apache child INIT phase, the "%sql" hash is walked for SQL statements. Each statement is prepared, and the resulting statement handle *************** *** 415,419 **** This function returns a reference to an anonymous hash containing all the ! prepare_cached statement handles. my $sth = WTF::SQL->sth(); --- 423,427 ---- This function returns a reference to an anonymous hash containing all the ! prepared statement handles. my $sth = WTF::SQL->sth(); *************** *** 436,440 **** =head1 KNOWN ISSUES ! This module is a single location for all prepare_cached SQL statements, and as such, it's too big and not hierarchical by design. This is likely a design flaw and should be addressed as the module grows. --- 444,448 ---- =head1 KNOWN ISSUES ! This module is a single location for all prepared SQL statements, and as such, it's too big and not hierarchical by design. This is likely a design flaw and should be addressed as the module grows. |
From: Gryphon S. <gry...@us...> - 2006-12-21 19:33:59
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Pages In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv25900/lib/WTF/Pages Modified Files: Admin.pm Input.pm Log Message: Patch to implement feature request 1618514: Colored Dates in Timesheet Dropdown Index: Admin.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Admin.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Admin.pm 6 Dec 2006 16:09:34 -0000 1.7 --- Admin.pm 21 Dec 2006 19:33:54 -0000 1.8 *************** *** 349,353 **** $table ||= DATA_TABLES->[0]; ! # for the table name, execute the prepare_cached query for table data and # return all its data into $table_data my $sql_sth = 'table_data_' . $table->{'table'}; --- 349,353 ---- $table ||= DATA_TABLES->[0]; ! # for the table name, execute the prepared query for table data and # return all its data into $table_data my $sql_sth = 'table_data_' . $table->{'table'}; Index: Input.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Input.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Input.pm 21 Dec 2006 16:36:04 -0000 1.11 --- Input.pm 21 Dec 2006 19:33:54 -0000 1.12 *************** *** 99,102 **** --- 99,104 ---- my ( $time, $weeks, $req, @dates ) = ( time, 0, WTF::Utils::get_req($r) ); + # setup @dates to contain data that will populate the date select + # drop-down control on the tracking form while ( ( not @dates ) or ( $weeks < 2 ) ) { my @date = ( localtime($time) )[3 .. 6]; *************** *** 121,124 **** --- 123,146 ---- } + # for the days within the range of days that the date select drop-down + # list will display, make a list of the days for which the current user + # has entered some kind of data + $sth->{'work_days_in_range'}->execute( + $r->pnotes('user_id'), $dates[-1]->{'value'}, $dates[0]->{'value'}, + $r->pnotes('user_id'), $dates[-1]->{'value'}, $dates[0]->{'value'}, + $r->pnotes('user_id'), $dates[-1]->{'value'}, $dates[0]->{'value'}, + ) or die $dbh->errstr(); + my @work_days = map { $_->[0] } @{ $sth->{'work_days_in_range'}->fetchall_arrayref() }; + $sth->{'work_days_in_range'}->finish(); + + # for each day that will be listed in the date select drop-down list, + # include a "has_data" attribute indicating whether the current user has + # already entered data for that day + for my $date (@dates) { + $date->{'has_data'} = ( + scalar( grep { $_ eq $date->{'value'} } @work_days ) > 0 + ) ? 1 : 0; + } + # set $display_date to be what the user selected in the date select # drop-down field; set $data_date to be the same thing, but we might *************** *** 134,138 **** $r->pnotes('user_id'), $display_date, $r->pnotes('user_id'), $display_date, ! ); $data_date = $sth->{'max_work_day'}->fetchrow_array() || $display_date; $sth->{'max_work_day'}->finish(); --- 156,160 ---- $r->pnotes('user_id'), $display_date, $r->pnotes('user_id'), $display_date, ! ) or die $dbh->errstr(); $data_date = $sth->{'max_work_day'}->fetchrow_array() || $display_date; $sth->{'max_work_day'}->finish(); |
From: Gryphon S. <gry...@us...> - 2006-12-21 19:33:59
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/input In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv25900/templates/pages/input Modified Files: tracking.tmpl Log Message: Patch to implement feature request 1618514: Colored Dates in Timesheet Dropdown Index: tracking.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/input/tracking.tmpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tracking.tmpl 21 Dec 2006 16:36:04 -0000 1.5 --- tracking.tmpl 21 Dec 2006 19:33:54 -0000 1.6 *************** *** 19,22 **** --- 19,23 ---- <tmpl_loop name="dates"> <option + <tmpl_unless name="has_data">style="background: #ffcccc"</tmpl_unless> <tmpl_if name="selected">selected="selected"</tmpl_if> value="<tmpl_var name="value">"><tmpl_var name="string"></option> |
From: Gryphon S. <gry...@us...> - 2006-12-21 16:37:38
|
Update of /cvsroot/wtf-tracker/wtf/static In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19349/static Modified Files: tracking.js Log Message: Patch to add feature request 1618511: Populate Yesterday's Input Data Index: tracking.js =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/static/tracking.js,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tracking.js 20 Dec 2006 00:04:32 -0000 1.11 --- tracking.js 21 Dec 2006 16:36:04 -0000 1.12 *************** *** 15,19 **** createTrackingItems(); window. () { ! submitTrackingForm( document.tracking, true ); } --- 15,19 ---- createTrackingItems(); window. () { ! if ( ! skipSubmitTrackingForm ) submitTrackingForm( document.tracking, true ); } *************** *** 30,33 **** --- 30,36 ---- } + // boolean variable to prevent automatic tracking form submission + var skipSubmitTrackingForm = false; + // boolean variable to prevent form double submission based on the // window.onunload hook setup inside the window.onload function; *************** *** 601,602 **** --- 604,631 ---- "description=" + description; } + + function copyLastData(trackingForm) { + if ( trackingChange && ! confirm( + 'Are you sure you want to copy last data?\n' + + 'You will loose any changes you have made.' + ) ) return; + + trackingForm.copy_last_data.value = "on"; + skipSubmitTrackingForm = true; + trackingForm.submit(); + } + + function resetTrackingForm( trackingForm, urlPath ) { + if ( + ( trackingChange && confirm( + 'Are you sure you want to reset this data?\n' + + 'You will loose any changes you have made.' + ) ) || + ( trackingForm.copy_last_data_done == "on" && ! trackingChange ) + ) { + skipSubmitTrackingForm = true; + trackingForm.reset(); + //window.location.reload(false); + window.location.href = '/wtf/view/input/tracking?display_date=' + trackingForm.display_date.value; + } + } |
From: Gryphon S. <gry...@us...> - 2006-12-21 16:36:15
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/input In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19349/templates/pages/input Modified Files: tracking.tmpl Log Message: Patch to add feature request 1618511: Populate Yesterday's Input Data Index: tracking.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/input/tracking.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tracking.tmpl 2 Dec 2006 22:37:50 -0000 1.4 --- tracking.tmpl 21 Dec 2006 16:36:04 -0000 1.5 *************** *** 9,12 **** --- 9,16 ---- <input type="hidden" name="date" value="<tmpl_var name="date">" /> <input type="hidden" name="data" value="" /> + <input type="hidden" name="copy_last_data" value="" /> + <tmpl_unless name="show_copy_last_data"> + <input type="hidden" name="copy_last_data_done" value="on" /> + </tmpl_unless> <p> *************** *** 19,22 **** --- 23,32 ---- </tmpl_loop> </select> + <tmpl_if name="show_copy_last_data"> + <input type="button" value="Copy Last Data" + title="Copy the data entered from the previous entry" + + /> + </tmpl_if> </p> *************** *** 117,121 **** </tmpl_if> ! <p style="text-align: right"><input type="submit" value="Save" /></p> </form> --- 127,134 ---- </tmpl_if> ! <p style="text-align: right"> ! <input type="button" value="Reset" /> ! <input type="submit" value="Save" /> ! </p> </form> |
From: Gryphon S. <gry...@us...> - 2006-12-21 16:36:11
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19349/lib/WTF Modified Files: SQL.pm Log Message: Patch to add feature request 1618511: Populate Yesterday's Input Data Index: SQL.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/SQL.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SQL.pm 3 Dec 2006 23:03:42 -0000 1.9 --- SQL.pm 21 Dec 2006 16:36:03 -0000 1.10 *************** *** 365,368 **** --- 365,374 ---- }, + 'max_work_day' => q{ + SELECT IF( MAX(w.work_day) > MAX(n.work_day), MAX(w.work_day), MAX(n.work_day) ) AS last_date + FROM work AS w, notes AS n + WHERE w.employee_id = ? AND w.work_day < ? AND n.employee_id = ? AND n.work_day < ? + }, + ); |
From: Gryphon S. <gry...@us...> - 2006-12-21 16:36:10
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Pages In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19349/lib/WTF/Pages Modified Files: Input.pm Log Message: Patch to add feature request 1618511: Populate Yesterday's Input Data Index: Input.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Input.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Input.pm 20 Dec 2006 00:04:31 -0000 1.10 --- Input.pm 21 Dec 2006 16:36:04 -0000 1.11 *************** *** 23,28 **** $tmpl_obj->param( ! 'title' => TITLE, ! 'nav_bar' => WTF::Utils::nav_bar_data( $r, 'input' ), ); --- 23,29 ---- $tmpl_obj->param( ! 'title' => TITLE, ! 'hide_preface' => 1, ! 'nav_bar' => WTF::Utils::nav_bar_data( $r, 'input' ), ); *************** *** 120,129 **** } my $display_date = $req->param('display_date') || $dates[0]->{'value'}; for ( qw( work_sel notes_sel ) ) { $sth->{$_}->execute( $r->pnotes('user_id'), ! $display_date, ) or die $dbh->errstr(); } --- 121,146 ---- } + # set $display_date to be what the user selected in the date select + # drop-down field; set $data_date to be the same thing, but we might + # change it in the next paragraph my $display_date = $req->param('display_date') || $dates[0]->{'value'}; + my $data_date = $display_date; + + # if the user clicked on the "Copy Last Data" button, then find the last + # date where they entered data that's before the $display_date and use + # that as the place from which to grab data to populate the page + if ( $req->param('copy_last_data') and $req->param('copy_last_data') eq 'on' ) { + $sth->{'max_work_day'}->execute( + $r->pnotes('user_id'), $display_date, + $r->pnotes('user_id'), $display_date, + ); + $data_date = $sth->{'max_work_day'}->fetchrow_array() || $display_date; + $sth->{'max_work_day'}->finish(); + } for ( qw( work_sel notes_sel ) ) { $sth->{$_}->execute( $r->pnotes('user_id'), ! $data_date, ) or die $dbh->errstr(); } *************** *** 132,136 **** $sth->{'activity_data'}->execute( $r->pnotes('user_id'), ! $display_date, ) or die $dbh->errstr(); --- 149,153 ---- $sth->{'activity_data'}->execute( $r->pnotes('user_id'), ! $data_date, ) or die $dbh->errstr(); *************** *** 166,169 **** --- 183,189 ---- }, ), + 'show_copy_last_data' => ( + $req->param('copy_last_data') and $req->param('copy_last_data') eq 'on' + ) ? 0 : 1, ); $sth->{'notes_sel'}->finish(); *************** *** 273,277 **** $r->headers_out->set( 'Location' => ROOT_URL . '/view/input/tracking' . ! '?display_date=' . $req->param('display_date'), ); return $r->status( Apache2::Const::REDIRECT ); --- 293,299 ---- $r->headers_out->set( 'Location' => ROOT_URL . '/view/input/tracking' . ! '?display_date=' . $req->param('display_date') . ( ( ! $req->param('copy_last_data') and $req->param('copy_last_data') eq 'on' ! ) ? '©_last_data=on' : '' ), ); return $r->status( Apache2::Const::REDIRECT ); |
From: Gryphon S. <gry...@us...> - 2006-12-21 16:36:10
|
Update of /cvsroot/wtf-tracker/wtf/templates/framework In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19349/templates/framework Modified Files: header.tmpl Log Message: Patch to add feature request 1618511: Populate Yesterday's Input Data Index: header.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/framework/header.tmpl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** header.tmpl 18 Oct 2006 16:52:50 -0000 1.1.1.1 --- header.tmpl 21 Dec 2006 16:36:04 -0000 1.2 *************** *** 3,7 **** <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> ! <title><tmpl_var name="title"></title> <link rel="stylesheet" href="<tmpl_var name="css">" type="text/css" media="all" /> --- 3,7 ---- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> ! <title><tmpl_unless name="hide_preface">WTF: </tmpl_unless><tmpl_var name="title"></title> <link rel="stylesheet" href="<tmpl_var name="css">" type="text/css" media="all" /> |
From: Gryphon S. <gry...@us...> - 2006-12-20 22:31:04
|
Update of /cvsroot/wtf-tracker/wtf/db In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3990/db Modified Files: create.sql schema.xml Log Message: Changes to fix bug 1618854: the problem is that because of a missing unique index, the update_db.pl script's SQL wasn't updating correctly Index: create.sql =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/db/create.sql,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** create.sql 11 Dec 2006 18:12:15 -0000 1.4 --- create.sql 20 Dec 2006 22:30:59 -0000 1.5 *************** *** 5,141 **** USE wtf; ! CREATE TABLE `activity` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `activity_id` INTEGER UNSIGNED NULL, ! `name` VARCHAR(45) NOT NULL, ! `description` MEDIUMTEXT NULL, ! `ordering` TINYINT UNSIGNED NOT NULL DEFAULT '0', ! `active` BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `activity_summary` ( ! `activity_id` INTEGER UNSIGNED NOT NULL, ! `summary_id` INTEGER UNSIGNED NOT NULL, ! `percentage` TINYINT UNSIGNED NOT NULL DEFAULT '0', ! UNIQUE INDEX `activity_summary`(`activity_id`, `summary_id`) ); ! CREATE TABLE `area` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `name` VARCHAR(45) NOT NULL DEFAULT 'Unnamed', ! `description` MEDIUMTEXT NULL, ! `ordering` TINYINT UNSIGNED NOT NULL DEFAULT '0', ! `active` BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `authz` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `name` VARCHAR(45) NOT NULL, ! `ordering` TINYINT UNSIGNED NOT NULL DEFAULT '0', ! `description` TEXT NULL, ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `authz_employee` ( ! `authz_id` INTEGER UNSIGNED NOT NULL, ! `employee_id` INTEGER UNSIGNED NOT NULL, ! UNIQUE INDEX `authz_employee`(`authz_id`, `employee_id`) ); ! CREATE TABLE `codeline` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `product` SMALLINT(6) UNSIGNED NOT NULL, ! `name` VARCHAR(64) NOT NULL, ! `description` MEDIUMTEXT NULL, ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `employee` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `area_id` INTEGER UNSIGNED NOT NULL DEFAULT '1', ! `team_id` INTEGER UNSIGNED NULL, ! `username` VARCHAR(255) NOT NULL, ! `passwd` VARCHAR(64) NOT NULL DEFAULT 'r@nd0mt3xt', ! `name` VARCHAR(255) NOT NULL, ! `last_login` DATETIME NULL, ! `active` BOOL NOT NULL DEFAULT '1', ! `admin` BOOL NOT NULL DEFAULT '0', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `username`(`username`) ); ! CREATE TABLE `notes` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `employee_id` INTEGER UNSIGNED NOT NULL, ! `work_day` DATE NOT NULL, ! `content` TEXT NULL, ! PRIMARY KEY(`id`), ! UNIQUE INDEX `employee_day`(`employee_id`, `work_day`) ); ! CREATE TABLE `project` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `codeline_id` INTEGER UNSIGNED NOT NULL, ! `bug` MEDIUMINT(9) UNSIGNED NOT NULL, ! `name` VARCHAR(255) NOT NULL, ! `active` BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `bug`(`bug`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `summary` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `employee_id` INTEGER UNSIGNED NOT NULL, ! `work_day` DATE NOT NULL, ! `vacation` BOOL NOT NULL DEFAULT '0', ! `sick` BOOL NOT NULL DEFAULT '0', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `employee_work_day`(`employee_id`, `work_day`) ); ! CREATE TABLE `task` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `task_id` INTEGER UNSIGNED NULL, ! `name` VARCHAR(45) NOT NULL, ! `description` MEDIUMTEXT NULL, ! `ordering` TINYINT UNSIGNED NOT NULL DEFAULT '0', ! `project` BOOL NOT NULL DEFAULT '1', ! `active` BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `task_area` ( ! `task_id` INTEGER UNSIGNED NOT NULL, ! `area_id` INTEGER UNSIGNED NOT NULL, ! UNIQUE INDEX `task_area`(`task_id`, `area_id`) ); ! CREATE TABLE `team` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `team_id` INTEGER UNSIGNED NULL, ! `name` VARCHAR(45) NOT NULL, ! `ordering` TINYINT UNSIGNED NOT NULL, ! PRIMARY KEY(`id`), ! UNIQUE INDEX `name`(`name`) ); ! CREATE TABLE `work` ( ! `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! `employee_id` INTEGER UNSIGNED NOT NULL, ! `project_id` INTEGER UNSIGNED NULL, ! `task_id` INTEGER UNSIGNED NOT NULL, ! `work_day` DATE NOT NULL, ! `hours` FLOAT(4,2) NOT NULL, ! `entered` DATETIME NOT NULL, ! PRIMARY KEY(`id`), ! UNIQUE INDEX `employee_project_task_day`(`employee_id`, `project_id`, `task_id`, `work_day`) ); --- 5,142 ---- USE wtf; ! CREATE TABLE activity ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! activity_id INTEGER UNSIGNED NULL, ! name VARCHAR(45) NOT NULL, ! description MEDIUMTEXT NULL, ! ordering TINYINT UNSIGNED NOT NULL DEFAULT '0', ! active BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(id), ! UNIQUE INDEX name(name) ); ! CREATE TABLE activity_summary ( ! activity_id INTEGER UNSIGNED NOT NULL, ! summary_id INTEGER UNSIGNED NOT NULL, ! percentage TINYINT UNSIGNED NOT NULL DEFAULT '0', ! UNIQUE INDEX activity_summary(activity_id, summary_id) ); ! CREATE TABLE area ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! name VARCHAR(45) NOT NULL DEFAULT 'Unnamed', ! description MEDIUMTEXT NULL, ! ordering TINYINT UNSIGNED NOT NULL DEFAULT '0', ! active BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(id), ! UNIQUE INDEX name(name) ); ! CREATE TABLE authz ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! name VARCHAR(45) NOT NULL, ! ordering TINYINT UNSIGNED NOT NULL DEFAULT '0', ! description TEXT NULL, ! PRIMARY KEY(id), ! UNIQUE INDEX name(name) ); ! CREATE TABLE authz_employee ( ! authz_id INTEGER UNSIGNED NOT NULL, ! employee_id INTEGER UNSIGNED NOT NULL, ! UNIQUE INDEX authz_employee(authz_id, employee_id) ); ! CREATE TABLE codeline ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! product SMALLINT(6) UNSIGNED NOT NULL, ! name VARCHAR(64) NOT NULL, ! description MEDIUMTEXT NULL, ! PRIMARY KEY(id), ! UNIQUE INDEX name(name), ! UNIQUE INDEX product(product) ); ! CREATE TABLE employee ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! area_id INTEGER UNSIGNED NOT NULL DEFAULT '1', ! team_id INTEGER UNSIGNED NULL, ! username VARCHAR(255) NOT NULL, ! passwd VARCHAR(64) NOT NULL DEFAULT ''r@nd0mt3xt'', ! name VARCHAR(255) NOT NULL, ! last_login DATETIME NULL, ! active BOOL NOT NULL DEFAULT '1', ! admin BOOL NOT NULL DEFAULT '0', ! PRIMARY KEY(id), ! UNIQUE INDEX username(username) ); ! CREATE TABLE notes ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! employee_id INTEGER UNSIGNED NOT NULL, ! work_day DATE NOT NULL, ! content TEXT NULL, ! PRIMARY KEY(id), ! UNIQUE INDEX employee_day(employee_id, work_day) ); ! CREATE TABLE project ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! codeline_id INTEGER UNSIGNED NOT NULL, ! bug MEDIUMINT(9) UNSIGNED NOT NULL, ! name VARCHAR(255) NOT NULL, ! active BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(id), ! UNIQUE INDEX bug(bug), ! UNIQUE INDEX name(name) ); ! CREATE TABLE summary ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! employee_id INTEGER UNSIGNED NOT NULL, ! work_day DATE NOT NULL, ! vacation BOOL NOT NULL DEFAULT '0', ! sick BOOL NOT NULL DEFAULT '0', ! PRIMARY KEY(id), ! UNIQUE INDEX employee_work_day(employee_id, work_day) ); ! CREATE TABLE task ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! task_id INTEGER UNSIGNED NULL, ! name VARCHAR(45) NOT NULL, ! description MEDIUMTEXT NULL, ! ordering TINYINT UNSIGNED NOT NULL DEFAULT '0', ! project BOOL NOT NULL DEFAULT '1', ! active BOOL NOT NULL DEFAULT '1', ! PRIMARY KEY(id), ! UNIQUE INDEX name(name) ); ! CREATE TABLE task_area ( ! task_id INTEGER UNSIGNED NOT NULL, ! area_id INTEGER UNSIGNED NOT NULL, ! UNIQUE INDEX task_area(task_id, area_id) ); ! CREATE TABLE team ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! team_id INTEGER UNSIGNED NULL, ! name VARCHAR(45) NOT NULL, ! ordering TINYINT UNSIGNED NOT NULL, ! PRIMARY KEY(id), ! UNIQUE INDEX name(name) ); ! CREATE TABLE work ( ! id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ! employee_id INTEGER UNSIGNED NOT NULL, ! project_id INTEGER UNSIGNED NULL, ! task_id INTEGER UNSIGNED NOT NULL, ! work_day DATE NOT NULL, ! hours FLOAT(4,2) NOT NULL, ! entered DATETIME NOT NULL, ! PRIMARY KEY(id), ! UNIQUE INDEX employee_project_task_day(employee_id, project_id, task_id, work_day) ); Index: schema.xml =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/db/schema.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** schema.xml 3 Dec 2006 23:08:22 -0000 1.6 --- schema.xml 20 Dec 2006 22:30:59 -0000 1.7 *************** *** 1,265 **** ! <?xml version="1.0" standalone="yes" ?> ! <DBMODEL Version="4.0"> ! <SETTINGS> ! <GLOBALSETTINGS ModelName="wtf" IDModel="0" IDVersion="0" VersionStr="1.0.0.0" Comments="" UseVersionHistroy="1" AutoIncVersion="1" DatabaseType="MySQL" ZoomFac="100.00" XPos="0" YPos="96" DefaultDataType="5" DefaultTablePrefix="0" DefSaveDBConn="" DefSyncDBConn="" DefQueryDBConn="" Printer="\\pecan\LaserJet 4200 PCL 6 South Workroom" HPageCount="5.145728643216079" PageAspectRatio="1.328971962616822" PageOrientation="0" PageFormat="A4 (210x297 mm, 8.26x11.7 inches)" SelectedPages="0" UsePositionGrid="0" PositionGridX="20" PositionGridY="20" TableNameInRefs="1" DefaultTableType="0" ActivateRefDefForNewRelations="0" FKPrefix="" FKPostfix="" CreateFKRefDefIndex="0" DBQuoteCharacter="`" CreateSQLforLinkedObjects="0" DefModelFont="Tahoma" CanvasWidth="4096" CanvasHeight="2842" /> ! <DATATYPEGROUPS> ! <DATATYPEGROUP Name="Numeric Types" Icon="1" /> ! <DATATYPEGROUP Name="Date and Time Types" Icon="2" /> ! <DATATYPEGROUP Name="String Types" Icon="3" /> ! <DATATYPEGROUP Name="Blob and Text Types" Icon="4" /> ! <DATATYPEGROUP Name="User defined Types" Icon="5" /> ! <DATATYPEGROUP Name="Geographic Types" Icon="6" /> ! </DATATYPEGROUPS> ! <DATATYPES> ! <DATATYPE ID="1" IDGroup="0" TypeName="TINYINT" Description="A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="2" IDGroup="0" TypeName="SMALLINT" Description="A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="3" IDGroup="0" TypeName="MEDIUMINT" Description="A medium-size integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="4" IDGroup="0" TypeName="INT" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="0" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="5" IDGroup="0" TypeName="INTEGER" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="6" IDGroup="0" TypeName="BIGINT" Description="A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="0" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="7" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="precision" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="8" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="9" IDGroup="0" TypeName="DOUBLE" Description="A normal-size (double-precision) floating-point number. Cannot be unsigned. Allowable values are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="10" IDGroup="0" TypeName="DOUBLE PRECISION" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="11" IDGroup="0" TypeName="REAL" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="12" IDGroup="0" TypeName="DECIMAL" Description="An unpacked floating-point number. Cannot be unsigned. Behaves like a CHAR column." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="13" IDGroup="0" TypeName="NUMERIC" Description="This is a synonym for DECIMAL." ParamCount="2" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="14" IDGroup="1" TypeName="DATE" Description="A date. The supported range is \a1000-01-01\a to \a9999-12-31\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="15" IDGroup="1" TypeName="DATETIME" Description="A date and time combination. The supported range is \a1000-01-01 00:00:00\a to \a9999-12-31 23:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="16" IDGroup="1" TypeName="TIMESTAMP" Description="A timestamp. The range is \a1970-01-01 00:00:00\a to sometime in the year 2037. The length can be 14 (or missing), 12, 10, 8, 6, 4, or 2 representing YYYYMMDDHHMMSS, ... , YYYYMMDD, ... , YY formats." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="17" IDGroup="1" TypeName="TIME" Description="A time. The range is \a-838:59:59\a to \a838:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="18" IDGroup="1" TypeName="YEAR" Description="A year in 2- or 4-digit format (default is 4-digit)." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="19" IDGroup="2" TypeName="CHAR" Description="A fixed-length string (1 to 255 characters) that is always right-padded with spaces to the specified length when stored. values are sorted and compared in case-insensitive fashion according to the default character set unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="20" IDGroup="2" TypeName="VARCHAR" Description="A variable-length string (1 to 255 characters). Values are sorted and compared in case-sensitive fashion unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="21" IDGroup="2" TypeName="BIT" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="22" IDGroup="2" TypeName="BOOL" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="23" IDGroup="3" TypeName="TINYBLOB" Description="A column maximum length of 255 (2^8 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="24" IDGroup="3" TypeName="BLOB" Description="A column maximum length of 65535 (2^16 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="25" IDGroup="3" TypeName="MEDIUMBLOB" Description="A column maximum length of 16777215 (2^24 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="26" IDGroup="3" TypeName="LONGBLOB" Description="A column maximum length of 4294967295 (2^32 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="27" IDGroup="3" TypeName="TINYTEXT" Description="A column maximum length of 255 (2^8 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="28" IDGroup="3" TypeName="TEXT" Description="A column maximum length of 65535 (2^16 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="29" IDGroup="3" TypeName="MEDIUMTEXT" Description="A column maximum length of 16777215 (2^24 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="30" IDGroup="3" TypeName="LONGTEXT" Description="A column maximum length of 4294967295 (2^32 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="31" IDGroup="3" TypeName="ENUM" Description="An enumeration. A string object that can have only one value, chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="values" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="32" IDGroup="3" TypeName="SET" Description="A set. A string object that can have zero or more values, each of which must be chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="values" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="33" IDGroup="4" TypeName="Varchar(20)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="34" IDGroup="4" TypeName="Varchar(45)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="35" IDGroup="4" TypeName="Varchar(255)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="36" IDGroup="5" TypeName="GEOMETRY" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="38" IDGroup="5" TypeName="LINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="39" IDGroup="5" TypeName="POLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="40" IDGroup="5" TypeName="MULTIPOINT" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="41" IDGroup="5" TypeName="MULTILINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="42" IDGroup="5" TypeName="MULTIPOLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="43" IDGroup="5" TypeName="GEOMETRYCOLLECTION" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! </DATATYPES> ! <COMMON_DATATYPES> ! <COMMON_DATATYPE ID="5" /> ! <COMMON_DATATYPE ID="8" /> ! <COMMON_DATATYPE ID="20" /> ! <COMMON_DATATYPE ID="15" /> ! <COMMON_DATATYPE ID="22" /> ! <COMMON_DATATYPE ID="28" /> ! <COMMON_DATATYPE ID="26" /> ! <COMMON_DATATYPE ID="33" /> ! <COMMON_DATATYPE ID="34" /> ! <COMMON_DATATYPE ID="35" /> ! </COMMON_DATATYPES> ! <TABLEPREFIXES> ! <TABLEPREFIX Name="Default (no prefix)" /> ! </TABLEPREFIXES> ! <REGIONCOLORS> ! <REGIONCOLOR Color="Red=#FFEEEC" /> ! <REGIONCOLOR Color="Yellow=#FEFDED" /> ! <REGIONCOLOR Color="Green=#EAFFE5" /> ! <REGIONCOLOR Color="Cyan=#ECFDFF" /> ! <REGIONCOLOR Color="Blue=#F0F1FE" /> ! <REGIONCOLOR Color="Magenta=#FFEBFA" /> ! </REGIONCOLORS> ! <POSITIONMARKERS> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! </POSITIONMARKERS> ! </SETTINGS> ! <METADATA> ! <REGIONS> ! </REGIONS> ! <TABLES> ! <TABLE ID="1089" Tablename="codeline" PrevTableName="Table_01" XPos="294" YPos="44" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="\n" TableOptions="DelayKeyTblUpdates=0\nPackKeys=0\nRowChecksum=0\nRowFormat=0\nUseRaid=0\nRaidType=0\n" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="2" > <COLUMNS> <COLUMN ID="1091" ColName="id" PrevColName="" Pos="0" idDatatype="5" DatatypeParams="" Width="-1" Prec="-1" PrimaryKey="1" NotNull="1" AutoInc="1" IsForeignKey="0" DefaultValue="" Comments=""> --- 1,265 ---- ! <?xml version="1.0" standalone="yes" ?> ! <DBMODEL Version="4.0"> ! <SETTINGS> ! <GLOBALSETTINGS ModelName="wtf" IDModel="0" IDVersion="0" VersionStr="1.0.0.0" Comments="" UseVersionHistroy="1" AutoIncVersion="1" DatabaseType="MySQL" ZoomFac="100.00" XPos="0" YPos="0" DefaultDataType="5" DefaultTablePrefix="0" DefSaveDBConn="" DefSyncDBConn="" DefQueryDBConn="" Printer="\\pecan\LaserJet 4200 PCL 6 South Workroom" HPageCount="5.145728643216079" PageAspectRatio="1.328971962616822" PageOrientation="0" PageFormat="A4 (210x297 mm, 8.26x11.7 inches)" SelectedPages="0" UsePositionGrid="0" PositionGridX="20" PositionGridY="20" TableNameInRefs="1" DefaultTableType="0" ActivateRefDefForNewRelations="0" FKPrefix="" FKPostfix="" CreateFKRefDefIndex="0" DBQuoteCharacter="`" CreateSQLforLinkedObjects="0" DefModelFont="Tahoma" CanvasWidth="4096" CanvasHeight="2842" /> ! <DATATYPEGROUPS> ! <DATATYPEGROUP Name="Numeric Types" Icon="1" /> ! <DATATYPEGROUP Name="Date and Time Types" Icon="2" /> ! <DATATYPEGROUP Name="String Types" Icon="3" /> ! <DATATYPEGROUP Name="Blob and Text Types" Icon="4" /> ! <DATATYPEGROUP Name="User defined Types" Icon="5" /> ! <DATATYPEGROUP Name="Geographic Types" Icon="6" /> ! </DATATYPEGROUPS> ! <DATATYPES> ! <DATATYPE ID="1" IDGroup="0" TypeName="TINYINT" Description="A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="2" IDGroup="0" TypeName="SMALLINT" Description="A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="3" IDGroup="0" TypeName="MEDIUMINT" Description="A medium-size integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="4" IDGroup="0" TypeName="INT" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="0" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="5" IDGroup="0" TypeName="INTEGER" Description="A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="1" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="1" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="6" IDGroup="0" TypeName="BIGINT" Description="A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615." ParamCount="1" OptionCount="2" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="UNSIGNED" Default="0" /> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="7" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="precision" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="8" IDGroup="0" TypeName="FLOAT" Description="A small (single-precision) floating-point number. Cannot be unsigned. Allowable values are -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="9" IDGroup="0" TypeName="DOUBLE" Description="A normal-size (double-precision) floating-point number. Cannot be unsigned. Allowable values are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="10" IDGroup="0" TypeName="DOUBLE PRECISION" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="11" IDGroup="0" TypeName="REAL" Description="This is a synonym for DOUBLE." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="2" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="12" IDGroup="0" TypeName="DECIMAL" Description="An unpacked floating-point number. Cannot be unsigned. Behaves like a CHAR column." ParamCount="2" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="13" IDGroup="0" TypeName="NUMERIC" Description="This is a synonym for DECIMAL." ParamCount="2" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="3" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! <PARAM Name="decimals" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="ZEROFILL" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="14" IDGroup="1" TypeName="DATE" Description="A date. The supported range is \a1000-01-01\a to \a9999-12-31\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="15" IDGroup="1" TypeName="DATETIME" Description="A date and time combination. The supported range is \a1000-01-01 00:00:00\a to \a9999-12-31 23:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="16" IDGroup="1" TypeName="TIMESTAMP" Description="A timestamp. The range is \a1970-01-01 00:00:00\a to sometime in the year 2037. The length can be 14 (or missing), 12, 10, 8, 6, 4, or 2 representing YYYYMMDDHHMMSS, ... , YYYYMMDD, ... , YY formats." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="17" IDGroup="1" TypeName="TIME" Description="A time. The range is \a-838:59:59\a to \a838:59:59\a." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="18" IDGroup="1" TypeName="YEAR" Description="A year in 2- or 4-digit format (default is 4-digit)." ParamCount="1" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="19" IDGroup="2" TypeName="CHAR" Description="A fixed-length string (1 to 255 characters) that is always right-padded with spaces to the specified length when stored. values are sorted and compared in case-insensitive fashion according to the default character set unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="20" IDGroup="2" TypeName="VARCHAR" Description="A variable-length string (1 to 255 characters). Values are sorted and compared in case-sensitive fashion unless the BINARY keyword is given." ParamCount="1" OptionCount="1" ParamRequired="1" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="length" /> ! </PARAMS> ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="21" IDGroup="2" TypeName="BIT" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="22" IDGroup="2" TypeName="BOOL" Description="This is a synonym for CHAR(1)." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="23" IDGroup="3" TypeName="TINYBLOB" Description="A column maximum length of 255 (2^8 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="24" IDGroup="3" TypeName="BLOB" Description="A column maximum length of 65535 (2^16 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="25" IDGroup="3" TypeName="MEDIUMBLOB" Description="A column maximum length of 16777215 (2^24 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="26" IDGroup="3" TypeName="LONGBLOB" Description="A column maximum length of 4294967295 (2^32 - 1) characters. Values are sorted and compared in case-sensitive fashion." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="27" IDGroup="3" TypeName="TINYTEXT" Description="A column maximum length of 255 (2^8 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="28" IDGroup="3" TypeName="TEXT" Description="A column maximum length of 65535 (2^16 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="29" IDGroup="3" TypeName="MEDIUMTEXT" Description="A column maximum length of 16777215 (2^24 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="30" IDGroup="3" TypeName="LONGTEXT" Description="A column maximum length of 4294967295 (2^32 - 1) characters." ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="31" IDGroup="3" TypeName="ENUM" Description="An enumeration. A string object that can have only one value, chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="values" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="32" IDGroup="3" TypeName="SET" Description="A set. A string object that can have zero or more values, each of which must be chosen from the list of values." ParamCount="1" OptionCount="0" ParamRequired="1" EditParamsAsString="1" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <PARAMS> ! <PARAM Name="values" /> ! </PARAMS> ! </DATATYPE> ! <DATATYPE ID="33" IDGroup="4" TypeName="Varchar(20)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="34" IDGroup="4" TypeName="Varchar(45)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="35" IDGroup="4" TypeName="Varchar(255)" Description="" ParamCount="0" OptionCount="1" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! <OPTIONS> ! <OPTION Name="BINARY" Default="0" /> ! </OPTIONS> ! </DATATYPE> ! <DATATYPE ID="36" IDGroup="5" TypeName="GEOMETRY" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="38" IDGroup="5" TypeName="LINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="39" IDGroup="5" TypeName="POLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="40" IDGroup="5" TypeName="MULTIPOINT" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="41" IDGroup="5" TypeName="MULTILINESTRING" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="42" IDGroup="5" TypeName="MULTIPOLYGON" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! <DATATYPE ID="43" IDGroup="5" TypeName="GEOMETRYCOLLECTION" Description="Geographic Datatype" ParamCount="0" OptionCount="0" ParamRequired="0" EditParamsAsString="0" SynonymGroup="0" PhysicalMapping="0" PhysicalTypeName="" > ! </DATATYPE> ! </DATATYPES> ! <COMMON_DATATYPES> ! <COMMON_DATATYPE ID="5" /> ! <COMMON_DATATYPE ID="8" /> ! <COMMON_DATATYPE ID="20" /> ! <COMMON_DATATYPE ID="15" /> ! <COMMON_DATATYPE ID="22" /> ! <COMMON_DATATYPE ID="28" /> ! <COMMON_DATATYPE ID="26" /> ! <COMMON_DATATYPE ID="33" /> ! <COMMON_DATATYPE ID="34" /> ! <COMMON_DATATYPE ID="35" /> ! </COMMON_DATATYPES> ! <TABLEPREFIXES> ! <TABLEPREFIX Name="Default (no prefix)" /> ! </TABLEPREFIXES> ! <REGIONCOLORS> ! <REGIONCOLOR Color="Red=#FFEEEC" /> ! <REGIONCOLOR Color="Yellow=#FEFDED" /> ! <REGIONCOLOR Color="Green=#EAFFE5" /> ! <REGIONCOLOR Color="Cyan=#ECFDFF" /> ! <REGIONCOLOR Color="Blue=#F0F1FE" /> ! <REGIONCOLOR Color="Magenta=#FFEBFA" /> ! </REGIONCOLORS> ! <POSITIONMARKERS> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! <POSITIONMARKER ZoomFac="-1.0" X="0" Y="0" /> ! </POSITIONMARKERS> ! </SETTINGS> ! <METADATA> ! <REGIONS> ! </REGIONS> ! <TABLES> ! <TABLE ID="1089" Tablename="codeline" PrevTableName="Table_01" XPos="296" YPos="28" TableType="0" TablePrefix="0" nmTable="0" Temporary="0" UseStandardInserts="0" StandardInserts="\n" TableOptions="DelayKeyTblUpdates=0\nPackKeys=0\nRowChecksum=0\nRowFormat=0\nUseRaid=0\nRaidType=0\n" Comments="" Collapsed="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="2" > <COLUMNS> <COLUMN ID="1091" ColName="id" PrevColName="" Pos="0" idDatatype="5" DatatypeParams="" Width="-1" Prec="-1" PrimaryKey="1" NotNull="1" AutoInc="1" IsForeignKey="0" DefaultValue="" Comments=""> *************** *** 299,302 **** --- 299,307 ---- </INDEXCOLUMNS> </INDEX> + <INDEX ID="1321" IndexName="product" IndexKind="2" FKRefDef_Obj_id="-1"> + <INDEXCOLUMNS> + <INDEXCOLUMN idColumn="1155" LengthParam="0" /> + </INDEXCOLUMNS> + </INDEX> </INDICES> </TABLE> *************** *** 908,913 **** </INDICES> </TABLE> ! </TABLES> ! <RELATIONS> <RELATION ID="1131" RelationName="work" Kind="2" SrcTable="1096" DestTable="1124" FKFields="id=employee_id\n" FKFieldsComments="\n" relDirection="1" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="9" /> <RELATION ID="1133" RelationName="projects" Kind="2" SrcTable="1108" DestTable="1124" FKFields="id=project_id\n" FKFieldsComments="\n" relDirection="4" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="1" CaptionOffsetY="-25" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="10" /> --- 913,918 ---- </INDICES> </TABLE> ! </TABLES> ! <RELATIONS> <RELATION ID="1131" RelationName="work" Kind="2" SrcTable="1096" DestTable="1124" FKFields="id=employee_id\n" FKFieldsComments="\n" relDirection="1" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="9" /> <RELATION ID="1133" RelationName="projects" Kind="2" SrcTable="1108" DestTable="1124" FKFields="id=project_id\n" FKFieldsComments="\n" relDirection="4" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="1" CaptionOffsetY="-25" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="10" /> *************** *** 927,945 **** <RELATION ID="1305" RelationName="summary" Kind="2" SrcTable="1270" DestTable="1302" FKFields="id=activity_id\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="31" /> <RELATION ID="1315" RelationName="activity" Kind="2" SrcTable="1270" DestTable="1270" FKFields="id=activity_id\n" FKFieldsComments="\n" relDirection="2" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-26" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="32" /> ! </RELATIONS> ! <NOTES> ! </NOTES> ! <IMAGES> ! </IMAGES> ! </METADATA> ! <PLUGINDATA> ! <PLUGINDATARECORDS> ! </PLUGINDATARECORDS> ! </PLUGINDATA> ! <QUERYDATA> ! <QUERYRECORDS> ! </QUERYRECORDS> ! </QUERYDATA> ! <LINKEDMODELS> ! </LINKEDMODELS> ! </DBMODEL> --- 932,950 ---- <RELATION ID="1305" RelationName="summary" Kind="2" SrcTable="1270" DestTable="1302" FKFields="id=activity_id\n" FKFieldsComments="\n" relDirection="3" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="0" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="31" /> <RELATION ID="1315" RelationName="activity" Kind="2" SrcTable="1270" DestTable="1270" FKFields="id=activity_id\n" FKFieldsComments="\n" relDirection="2" MidOffset="0" OptionalStart="0" OptionalEnd="0" CaptionOffsetX="-26" CaptionOffsetY="-24" StartIntervalOffsetX="0" StartIntervalOffsetY="0" EndIntervalOffsetX="0" EndIntervalOffsetY="0" CreateRefDef="0" Invisible="0" RefDef="Matching=0\nOnDelete=3\nOnUpdate=3\n" Comments="" FKRefDefIndex_Obj_id="-1" Splitted="0" IsLinkedObject="0" IDLinkedModel="-1" Obj_id_Linked="-1" OrderPos="32" /> ! </RELATIONS> ! <NOTES> ! </NOTES> ! <IMAGES> ! </IMAGES> ! </METADATA> ! <PLUGINDATA> ! <PLUGINDATARECORDS> ! </PLUGINDATARECORDS> ! </PLUGINDATA> ! <QUERYDATA> ! <QUERYRECORDS> ! </QUERYRECORDS> ! </QUERYDATA> ! <LINKEDMODELS> ! </LINKEDMODELS> ! </DBMODEL> |
From: Gryphon S. <gry...@us...> - 2006-12-20 00:06:05
|
Update of /cvsroot/wtf-tracker/wtf/static In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7809/static Modified Files: tracking.js Log Message: Changes to fix bug 1618430 re: &s and 's not getting properly escaped in HTML and Javascript Index: tracking.js =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/static/tracking.js,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** tracking.js 6 Dec 2006 16:09:35 -0000 1.10 --- tracking.js 20 Dec 2006 00:04:32 -0000 1.11 *************** *** 51,59 **** else if ( document.documentElement && document.documentElement.clientHeight ) { myHeight = document.documentElement.clientHeight; } else if ( document.body ) { myHeight = document.body.clientHeight; ! // IE has a larger height variable so it needs to be reduced myHeight -= 40; } --- 51,65 ---- else if ( document.documentElement && document.documentElement.clientHeight ) { myHeight = document.documentElement.clientHeight; + + if ( document.all ) { + // IE 7 doesn't have document.body but does has document.all + // and has a larger height variable so it needs to be reduced + myHeight -= 40; + } } else if ( document.body ) { myHeight = document.body.clientHeight; ! // IE <= 6 has a larger height variable so it needs to be reduced myHeight -= 40; } *************** *** 457,465 **** // element, parse an integer value out of it, and add that to "total" for ( var i in theForm.elements ) { ! if ( theForm.elements[i].type == "text" ) { ! var item = parseInt( theForm.elements[i].value ); ! if ( isNaN(item) || item < 0 ) item = 0; ! theForm.elements[i].value = item; ! total += item; } } --- 463,475 ---- // element, parse an integer value out of it, and add that to "total" for ( var i in theForm.elements ) { ! try { ! if ( theForm.elements[i].type == "text" ) { ! var item = parseInt( theForm.elements[i].value ); ! if ( isNaN(item) || item < 0 ) item = 0; ! theForm.elements[i].value = item; ! total += item; ! } ! } ! catch (e) { } } |
From: Gryphon S. <gry...@us...> - 2006-12-20 00:04:36
|
Update of /cvsroot/wtf-tracker/wtf/lib/WTF/Pages In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7809/lib/WTF/Pages Modified Files: Input.pm Log Message: Changes to fix bug 1618430 re: &s and 's not getting properly escaped in HTML and Javascript Index: Input.pm =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/lib/WTF/Pages/Input.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Input.pm 6 Dec 2006 16:09:34 -0000 1.9 --- Input.pm 20 Dec 2006 00:04:31 -0000 1.10 *************** *** 37,40 **** --- 37,42 ---- my ( @codelines, $projects, $last_codeline ); while ( $_ = $sth->{'projects'}->fetchrow_hashref() ) { + ( $_->{'name_js'} = $_->{'name'} ) =~ s|'|\\'|g; + if ( $last_codeline and ( $last_codeline ne $_->{'codeline'} ) ) { push @codelines, { *************** *** 68,72 **** $sth->{'tasks'}->execute( $r->pnotes('user_id') ) or die $dbh->errstr(); ! my $tasks_from_db = $sth->{'tasks'}->fetchall_arrayref({}) or die $dbh->errstr(); if ( not @{$tasks_from_db} ) { $sth->{'all_tasks'}->execute() or die $dbh->errstr(); --- 70,79 ---- $sth->{'tasks'}->execute( $r->pnotes('user_id') ) or die $dbh->errstr(); ! ! my $tasks_from_db = [ map { ! ( $_->{'name_js'} = $_->{'name'} ) =~ s/'/\\'/g; ! $_; ! } @{ $sth->{'tasks'}->fetchall_arrayref({}) or die $dbh->errstr() } ]; ! if ( not @{$tasks_from_db} ) { $sth->{'all_tasks'}->execute() or die $dbh->errstr(); *************** *** 141,145 **** 'date' => $display_date, 'dates' => \@dates, ! 'data' => $sth->{'work_sel'}->fetchall_arrayref({}), 'notes' => scalar( $sth->{'notes_sel'}->fetchrow_array() ) || undef, 'vacation' => $vacation, --- 148,158 ---- 'date' => $display_date, 'dates' => \@dates, ! 'data' => [ ! map { ! $_->{'project_name'} =~ s/'/\\'/g; ! $_->{'task_name'} =~ s/'/\\'/g; ! $_; ! } @{ $sth->{'work_sel'}->fetchall_arrayref({}) } ! ], 'notes' => scalar( $sth->{'notes_sel'}->fetchrow_array() ) || undef, 'vacation' => $vacation, |
From: Gryphon S. <gry...@us...> - 2006-12-20 00:04:36
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/admin In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7809/templates/pages/admin Modified Files: authz.tmpl table_data.tmpl task_area.tmpl users.tmpl Log Message: Changes to fix bug 1618430 re: &s and 's not getting properly escaped in HTML and Javascript Index: users.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/users.tmpl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** users.tmpl 18 Oct 2006 16:52:50 -0000 1.1.1.1 --- users.tmpl 20 Dec 2006 00:04:32 -0000 1.2 *************** *** 31,36 **** <tmpl_loop name="employees"> <tr> ! <td><tmpl_var name="name"></td> ! <td><tmpl_var name="username"></td> <td class="checkbox"> <input type="checkbox" --- 31,36 ---- <tmpl_loop name="employees"> <tr> ! <td><tmpl_var name="name" escape="html"></td> ! <td><tmpl_var name="username" escape="html"></td> <td class="checkbox"> <input type="checkbox" *************** *** 51,55 **** <option value="<tmpl_var name="id">" <tmpl_if name="selected">selected="selected"</tmpl_if> ! ><tmpl_var name="name"></option> </tmpl_loop> </select> --- 51,55 ---- <option value="<tmpl_var name="id">" <tmpl_if name="selected">selected="selected"</tmpl_if> ! ><tmpl_var name="name" escape="html"></option> </tmpl_loop> </select> *************** *** 60,64 **** <option value="<tmpl_var name="id">" <tmpl_if name="selected">selected="selected"</tmpl_if> ! ><tmpl_var name="name"></option> </tmpl_loop> </select> --- 60,64 ---- <option value="<tmpl_var name="id">" <tmpl_if name="selected">selected="selected"</tmpl_if> ! ><tmpl_var name="name" escape="html"></option> </tmpl_loop> </select> Index: table_data.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/table_data.tmpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** table_data.tmpl 2 Dec 2006 22:37:50 -0000 1.5 --- table_data.tmpl 20 Dec 2006 00:04:32 -0000 1.6 *************** *** 98,102 **** </tmpl_if> <tmpl_if name="has_description"> ! <td><tmpl_var name="description"></td> </tmpl_if> </tr> --- 98,102 ---- </tmpl_if> <tmpl_if name="has_description"> ! <td><tmpl_var name="description" escape="html"></td> </tmpl_if> </tr> Index: task_area.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/task_area.tmpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** task_area.tmpl 2 Dec 2006 22:37:50 -0000 1.3 --- task_area.tmpl 20 Dec 2006 00:04:32 -0000 1.4 *************** *** 15,19 **** <th>Task Name</th> <tmpl_loop name="areas"> ! <th class="task_areas"><tmpl_var name="name"></th> </tmpl_loop> </tr> --- 15,19 ---- <th>Task Name</th> <tmpl_loop name="areas"> ! <th class="task_areas"><tmpl_var name="name" escape="html"></th> </tmpl_loop> </tr> Index: authz.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/admin/authz.tmpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** authz.tmpl 20 Nov 2006 02:53:08 -0000 1.2 --- authz.tmpl 20 Dec 2006 00:04:32 -0000 1.3 *************** *** 13,17 **** <th>Employee</th> <tmpl_loop name="authz_list"> ! <th><tmpl_var name="name"></th> </tmpl_loop> </tr> --- 13,17 ---- <th>Employee</th> <tmpl_loop name="authz_list"> ! <th><tmpl_var name="name" escape="html"></th> </tmpl_loop> </tr> |
From: Gryphon S. <gry...@us...> - 2006-12-20 00:04:36
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/reports In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7809/templates/pages/reports Modified Files: myweekly.tmpl project_view.tmpl projects_list.tmpl team_view.tmpl Log Message: Changes to fix bug 1618430 re: &s and 's not getting properly escaped in HTML and Javascript Index: myweekly.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/reports/myweekly.tmpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** myweekly.tmpl 25 Oct 2006 16:39:58 -0000 1.3 --- myweekly.tmpl 20 Dec 2006 00:04:32 -0000 1.4 *************** *** 44,49 **** <tmpl_loop name="days"> <tr> ! <td><tmpl_var name="codeline"></td> ! <td><tmpl_var name="project"></td> <td class="bugid"><tmpl_var name="bug"></td> <td class="hours"><tmpl_var name="hours"></td> --- 44,49 ---- <tmpl_loop name="days"> <tr> ! <td><tmpl_var name="codeline" escape="html"></td> ! <td><tmpl_var name="project" escape="html"></td> <td class="bugid"><tmpl_var name="bug"></td> <td class="hours"><tmpl_var name="hours"></td> *************** *** 53,57 **** </tmpl_if> <tmpl_if name="notes"> ! <p class="indent"><tmpl_var name="notes"></p> </tmpl_if> </tmpl_loop> --- 53,57 ---- </tmpl_if> <tmpl_if name="notes"> ! <p class="indent"><tmpl_var name="notes" escape="html"></p> </tmpl_if> </tmpl_loop> Index: projects_list.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/reports/projects_list.tmpl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** projects_list.tmpl 18 Oct 2006 16:52:50 -0000 1.1.1.1 --- projects_list.tmpl 20 Dec 2006 00:04:32 -0000 1.2 *************** *** 63,67 **** <h4><tmpl_var name="active"> Projects</h4> <tmpl_loop name="codelines"> ! <h5 class="indent"><tmpl_var name="codeline"></h5> <table class="tabular interactive indent_more" style="width: 690px"> <tr> --- 63,67 ---- <h4><tmpl_var name="active"> Projects</h4> <tmpl_loop name="codelines"> ! <h5 class="indent"><tmpl_var name="codeline" escape="html"></h5> <table class="tabular interactive indent_more" style="width: 690px"> <tr> *************** *** 83,97 **** ><tmpl_var name="project" escape="html"></td> <td title="Tracking bug ID number" class="bugid" ! ><tmpl_var name="bug" escape="html"></td> <td title="Number of employees who have tracked time to the project" align="right" ! ><tmpl_var name="employees_count" escape="html"></td> <td title="Number of records of time tracked to the project" align="right" ! ><tmpl_var name="work_count" escape="html"></td> <td title="Total hours tracked to the project" class="hours" ! ><tmpl_var name="hours_sum" escape="html"></td> <td title="Earliest date of time tracked to the project" ! ><tmpl_var name="min_work_day" escape="html"></td> <td title="Latest date of time tracked to the project" ! ><tmpl_var name="max_work_day" escape="html"></td> </tr> </tmpl_loop> --- 83,97 ---- ><tmpl_var name="project" escape="html"></td> <td title="Tracking bug ID number" class="bugid" ! ><tmpl_var name="bug"></td> <td title="Number of employees who have tracked time to the project" align="right" ! ><tmpl_var name="employees_count"></td> <td title="Number of records of time tracked to the project" align="right" ! ><tmpl_var name="work_count"></td> <td title="Total hours tracked to the project" class="hours" ! ><tmpl_var name="hours_sum"></td> <td title="Earliest date of time tracked to the project" ! ><tmpl_var name="min_work_day"></td> <td title="Latest date of time tracked to the project" ! ><tmpl_var name="max_work_day"></td> </tr> </tmpl_loop> Index: team_view.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/reports/team_view.tmpl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** team_view.tmpl 3 Dec 2006 00:42:09 -0000 1.7 --- team_view.tmpl 20 Dec 2006 00:04:32 -0000 1.8 *************** *** 169,174 **** <tr> <td><tmpl_var name="work_day"></td> ! <td><tmpl_var name="codeline"></td> ! <td><tmpl_var name="project"></td> <td class="bugid"><tmpl_var name="bug"></td> <td class="hours"><tmpl_var name="hours"></td> --- 169,174 ---- <tr> <td><tmpl_var name="work_day"></td> ! <td><tmpl_var name="codeline" escape="html"></td> ! <td><tmpl_var name="project" escape="html"></td> <td class="bugid"><tmpl_var name="bug"></td> <td class="hours"><tmpl_var name="hours"></td> *************** *** 195,199 **** <tmpl_loop name="note_content"> <dt><tmpl_var name="work_day"></dt> ! <dd><tmpl_var name="notes"></dd> </tmpl_loop> </dl> --- 195,199 ---- <tmpl_loop name="note_content"> <dt><tmpl_var name="work_day"></dt> ! <dd><tmpl_var name="notes" escape="html"></dd> </tmpl_loop> </dl> Index: project_view.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/reports/project_view.tmpl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** project_view.tmpl 18 Oct 2006 16:52:50 -0000 1.1.1.1 --- project_view.tmpl 20 Dec 2006 00:04:32 -0000 1.2 *************** *** 12,20 **** </form> ! <h4 class="tight"><tmpl_var name="project_name"></h4> <table class="indent layout_only"> <tr> <td align="right"><b>Codeline:</b></td> ! <td><tmpl_var name="project_codeline"></td> </tr> <tr> --- 12,20 ---- </form> ! <h4 class="tight"><tmpl_var name="project_name" escape="html"></h4> <table class="indent layout_only"> <tr> <td align="right"><b>Codeline:</b></td> ! <td><tmpl_var name="project_codeline" escape="html"></td> </tr> <tr> *************** *** 47,51 **** <tr> <td title="Task name (or project work type)" ! ><tmpl_var name="task"></td> <td title="Number of employees who have tracked time to the project" align="right" ><tmpl_var name="employees"></td> --- 47,51 ---- <tr> <td title="Task name (or project work type)" ! ><tmpl_var name="task" escape="html"></td> <td title="Number of employees who have tracked time to the project" align="right" ><tmpl_var name="employees"></td> *************** *** 69,74 **** <tr> <td><tmpl_var name="work_day"></td> ! <td><tmpl_var name="task"></td> ! <td><tmpl_var name="employee"></td> <td align="right"><tmpl_var name="hours"></td> </tr> --- 69,74 ---- <tr> <td><tmpl_var name="work_day"></td> ! <td><tmpl_var name="task" escape="html"></td> ! <td><tmpl_var name="employee" escape="html"></td> <td align="right"><tmpl_var name="hours"></td> </tr> |
From: Gryphon S. <gry...@us...> - 2006-12-20 00:04:35
|
Update of /cvsroot/wtf-tracker/wtf/templates/pages/input In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7809/templates/pages/input Modified Files: projects.tmpl tasks.tmpl Log Message: Changes to fix bug 1618430 re: &s and 's not getting properly escaped in HTML and Javascript Index: tasks.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/input/tasks.tmpl,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** tasks.tmpl 18 Oct 2006 16:52:50 -0000 1.1.1.1 --- tasks.tmpl 20 Dec 2006 00:04:32 -0000 1.2 *************** *** 12,17 **** id" escape="html">', ! '<tmpl_var name="name" escape="html">', 0, <tmpl_var name="project"> --- 12,17 ---- id">', ! '<tmpl_var name="name_js" escape="html">', 0, <tmpl_var name="project"> Index: projects.tmpl =================================================================== RCS file: /cvsroot/wtf-tracker/wtf/templates/pages/input/projects.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** projects.tmpl 7 Nov 2006 16:42:46 -0000 1.4 --- projects.tmpl 20 Dec 2006 00:04:32 -0000 1.5 *************** *** 7,11 **** <a id="codeline_<tmpl_var name="id">_link" class="codeline_nav" href="javascript:expandCodelines('codeline_<tmpl_var ! name="id">','codeline_<tmpl_var name="id">_link')"><tmpl_var name="codeline"></a> </span> --- 7,11 ---- <a id="codeline_<tmpl_var name="id">_link" class="codeline_nav" href="javascript:expandCodelines('codeline_<tmpl_var ! name="id">','codeline_<tmpl_var name="id">_link')"><tmpl_var name="codeline" escape="html"></a> </span> *************** *** 18,24 **** <tr id" escape="html">', ! '<tmpl_var name="name" escape="html">', ! '<tmpl_var name="bug" escape="html">' )"> <td><tmpl_var name="name" escape="html"></td> --- 18,24 ---- <tr id">', ! '<tmpl_var name="name_js" escape="html">', ! '<tmpl_var name="bug">' )"> <td><tmpl_var name="name" escape="html"></td> |