Author: jfthomps
Date: Tue Mar 20 18:38:58 2012
New Revision: 1303081

URL: http://svn.apache.org/viewvc?rev=1303081&view=rev
Log:
VCL-498
simplify group time inputs

groups.php:
-modified viewGroups - added a formatter to time fields of user group table
-modified jsonUserGroupStore - added initialmaxtimedisp, totalmaxtimedisp, and 
maxextendtimedisp to each user group data element
-modified editOrAddGroup - changed inputs for durations from text fields to 
drop downs where the available options match what can be selected as durations 
on the new reservation page
-modified confirmEditOrAddGroup - print a nice duration instead of just the 
duration in minutes

utils.php: added getReservationLengthCeiling

groups.js: added fmtDuration

Modified:
    incubator/vcl/trunk/web/.ht-inc/groups.php
    incubator/vcl/trunk/web/.ht-inc/utils.php
    incubator/vcl/trunk/web/js/groups.js

Modified: incubator/vcl/trunk/web/.ht-inc/groups.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/groups.php?rev=1303081&r1=1303080&r2=1303081&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/groups.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/groups.php Tue Mar 20 18:38:58 2012
@@ -149,9 +149,9 @@ function viewGroups() {
        if($showusergrouptype)
                print "<th field=\"prettytype\" width=\"5em\">Type</th>\n";
        print "<th field=\"editgroup\" width=\"12em\">Editable by</th>\n";
-       print "<th field=\"initialmaxtime\" width=\"5em\">Initial 
Max<br>Time<br>(minutes)</th>\n";
-       print "<th field=\"totalmaxtime\" width=\"5em\">Total 
Max<br>Time<br>(minutes)</th>\n";
-       print "<th field=\"maxextendtime\" width=\"5.6em\">Max 
Extend<br>Time<br>(minutes)</th>\n";
+       print "<th field=\"initialmaxtime\" width=\"5em\" 
formatter=\"fmtDuration\">Initial Max<br>Time</th>\n";
+       print "<th field=\"totalmaxtime\" width=\"5em\" 
formatter=\"fmtDuration\">Total Max<br>Time</th>\n";
+       print "<th field=\"maxextendtime\" width=\"5.6em\" 
formatter=\"fmtDuration\">Max Extend<br>Time</th>\n";
        if(checkUserHasPerm('Set Overlapping Reservation Count'))
                print "<th field=\"overlapResCount\" 
width=\"6.3em\">Max<br>Overlapping<br>Reservations</th>\n";
        print "</tr>\n";
@@ -296,6 +296,7 @@ function jsonUserGroupStore() {
        elseif(checkUserHasPerm('Manage Federated User Groups (affiliation 
only)'))
                $showfederatedaffil = 1;
        $items = array();
+       $lengths = getReservationLengths(65535);
        foreach($affilusergroups as $id => $group) {
                if($group['name'] == 'None' || preg_match('/^\s*None/', 
$group['name']))
                        continue;
@@ -315,6 +316,12 @@ function jsonUserGroupStore() {
                        $owner = 1;
                if(! $owner && ! $editor)
                        continue;
+               if(! array_key_exists($group['initialmaxtime'], $lengths))
+                       $group['initialmaxtime'] = 
getReservationLengthCeiling($group['initialmaxtime']);
+               if(! array_key_exists($group['totalmaxtime'], $lengths))
+                       $group['totalmaxtime'] = 
getReservationLengthCeiling($group['totalmaxtime']);
+               if(! array_key_exists($group['maxextendtime'], $lengths))
+                       $group['maxextendtime'] = 
getReservationLengthCeiling($group['maxextendtime']);
                $g = array('id' => $id,
                           'name' => $group['name'],
                           'owner' => $group['owner'],
@@ -323,8 +330,11 @@ function jsonUserGroupStore() {
                           'groupaffiliation' => $group['groupaffiliation'],
                           'groupaffiliationid' => $group['groupaffiliationid'],
                           'initialmaxtime' => intval($group['initialmaxtime']),
+                          'initialmaxtimedisp' => 
$lengths[$group['initialmaxtime']],
                           'totalmaxtime' => intval($group['totalmaxtime']),
+                          'totalmaxtimedisp' => 
$lengths[$group['totalmaxtime']],
                           'maxextendtime' => intval($group['maxextendtime']),
+                          'maxextendtimedisp' => 
$lengths[$group['maxextendtime']],
                           'overlapResCount' => 
intval($group['overlapResCount']));
                if($group['courseroll']) {
                        $g['type'] = 'courseroll';
@@ -710,25 +720,35 @@ function editOrAddGroup($state) {
                        else
                                $groupwasnone = 1;
                        print "  <TR>\n";
-                       print "    <TH align=right>Initial Max Time 
(minutes):</TH>\n";
-                       print "    <TD><INPUT type=text name=initialmax 
value=\"";
-                       print $data["initialmax"] . "\" maxlength=4></TD>\n";
+                       print "    <TH align=right>Initial Max Time:</TH>\n";
+                       print "    <TD>";
+                       $lengths = getReservationLengths(65535);
+                       if(! array_key_exists($data['initialmax'], $lengths))
+                               $data['initialmax'] = 
getReservationLengthCeiling($data['initialmax']);
+                       printSelectInput("initialmax", $lengths, 
$data['initialmax']);
+                       print "    </TD>";
                        print "    <TD>";
                        printSubmitErr(INITIALMAXERR);
                        print "</TD>\n";
                        print "  </TR>\n";
                        print "  <TR>\n";
-                       print "    <TH align=right>Total Max Time 
(minutes):</TH>\n";
-                       print "    <TD><INPUT type=text name=totalmax value=\"";
-                       print $data["totalmax"] . "\" maxlength=4></TD>\n";
+                       print "    <TH align=right>Total Max Time:</TH>\n";
+                       print "    <TD>";
+                       if(! array_key_exists($data['totalmax'], $lengths))
+                               $data['totalmax'] = 
getReservationLengthCeiling($data['totalmax']);
+                       printSelectInput("totalmax", $lengths, 
$data['totalmax']);
+                       print "    </TD>\n";
                        print "    <TD>";
                        printSubmitErr(TOTALMAXERR);
                        print "</TD>\n";
                        print "  </TR>\n";
                        print "  <TR>\n";
-                       print "    <TH align=right>Max Extend Time 
(minutes):</TH>\n";
-                       print "    <TD><INPUT type=text name=maxextend 
value=\"";
-                       print $data["maxextend"] . "\" maxlength=4></TD>\n";
+                       print "    <TH align=right>Max Extend Time:</TH>\n";
+                       print "    <TD>";
+                       if(! array_key_exists($data['maxextend'], $lengths))
+                               $data['maxextend'] = 
getReservationLengthCeiling($data['maxextend']);
+                       printSelectInput("maxextend", $lengths, 
$data['maxextend']);
+                       print "    </TD>\n";
                        print "    <TD>";
                        printSubmitErr(MAXEXTENDERR);
                        print "</TD>\n";
@@ -1235,16 +1255,18 @@ function confirmEditOrAddGroup($state) {
                        print "    <TD>" . 
$usergroups[$data["editgroupid"]]["name"] . "</TD>\n";
                        print "  </TR>\n";
                }
+               $lengths = getReservationLengths(65535);
                print "  <TR>\n";
-               print "    <TH align=right>Initial Max Time (minutes):</TH>\n";
-               print "    <TD>{$data["initialmax"]}</TD>\n";
+               print "    <TH align=right>Initial Max Time:</TH>\n";
+               print "    <TD>{$lengths[$data["initialmax"]]}</TD>\n";
                print "  </TR>\n";
-               print "  <TR>\n"; print "    <TH align=right>Total Max Time 
(minutes):</TH>\n";
-               print "    <TD>{$data["totalmax"]}</TD>\n";
+               print "  <TR>\n";
+               print "    <TH align=right>Total Max Time:</TH>\n";
+               print "    <TD>{$lengths[$data["totalmax"]]}</TD>\n";
                print "  </TR>\n";
                print "  <TR>\n";
-               print "    <TH align=right>Max Extend Time (minutes):</TH>\n";
-               print "    <TD>{$data["maxextend"]}</TD>\n";
+               print "    <TH align=right>Max Extend Time:</TH>\n";
+               print "    <TD>{$lengths[$data["maxextend"]]}</TD>\n";
                print "  </TR>\n";
                if(checkUserHasPerm('Set Overlapping Reservation Count')) {
                        print "  <TR>\n";

Modified: incubator/vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/utils.php?rev=1303081&r1=1303080&r2=1303081&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/utils.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/utils.php Tue Mar 20 18:38:58 2012
@@ -8709,6 +8709,38 @@ function getReservationExtenstion($lengt
 
 
////////////////////////////////////////////////////////////////////////////////
 ///
+/// \fn getReservationLengthCeiling($length)
+///
+/// \param $length - a length in minutes
+///
+/// \return a length in minutes
+///
+/// \brief gets nearest, higher length that would be in array returned by
+/// getReservationLengths
+///
+////////////////////////////////////////////////////////////////////////////////
+function getReservationLengthCeiling($length) {
+       if($length < 30)
+               return 30;
+       if($length < 45)
+               return 45;
+       if($length < 60)
+               return 60;
+       if($length < 2880) {
+               for($i = 120; $i < 2880; $i += 120) {
+                       if($length < $i)
+                               return $i;
+               }
+       }
+       for($i = 2880; $i <= 64800; $i += 1440) {
+               if($length < $i)
+                       return $i;
+       }
+       return 64800;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+///
 /// \fn getResourceGroupID($groupname)
 ///
 /// \param $groupname - resource group name of the form type/name

Modified: incubator/vcl/trunk/web/js/groups.js
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/js/groups.js?rev=1303081&r1=1303080&r2=1303081&view=diff
==============================================================================
--- incubator/vcl/trunk/web/js/groups.js (original)
+++ incubator/vcl/trunk/web/js/groups.js Tue Mar 20 18:38:58 2012
@@ -311,3 +311,9 @@ function doInitialScroll() {
        var pos = dojo.position(dojo.byId('startscroll'));
        window.scroll(pos.x, pos.y);
 }
+
+function fmtDuration(len, rowIndex, cell) {
+       var rowdata = this.grid.getItem(rowIndex);
+       var field = cell.field + 'disp';
+       return rowdata[field];
+}


Reply via email to