Author: jfthomps Date: Tue Jul 20 16:53:35 2010 New Revision: 965903 URL: http://svn.apache.org/viewvc?rev=965903&view=rev Log: VCL-272
encountered problem when images and user groups grew too large - they wouldn't fit in the continuations data causing strange problems; reworked code to not save them in the continuation but to regenerate the lists in the form submittion code Modified: incubator/vcl/trunk/web/.ht-inc/blockallocations.php Modified: incubator/vcl/trunk/web/.ht-inc/blockallocations.php URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/blockallocations.php?rev=965903&r1=965902&r2=965903&view=diff ============================================================================== --- incubator/vcl/trunk/web/.ht-inc/blockallocations.php (original) +++ incubator/vcl/trunk/web/.ht-inc/blockallocations.php Tue Jul 20 16:53:35 2010 @@ -139,10 +139,12 @@ function blockAllocationForm() { print " <td>\n"; print " <select dojoType=\"dijit.form.FilteringSelect\" id=groupsel style=\"width: 300px\">\n"; $groups = getUserGroups(0, $user['affiliationid']); + $extragroups = array(); if($mode == 'requestBlockAllocation') print " <option value=\"0\">(group not listed)</option>\n"; if(! empty($data['usergroupid']) && ! array_key_exists($data['usergroupid'], $groups)) { $groups[$data['usergroupid']] = array('name' => getUserGroupName($data['usergroupid'], 1)); + $extragroups[$data['usergroupid']] = array('name' => getUserGroupName($data['usergroupid'], 1)); uasort($groups, "sortKeepIndex"); } foreach($groups as $id => $group) { @@ -158,6 +160,7 @@ function blockAllocationForm() { if($mode != 'requestBlockAllocation') { if(! empty($data['admingroupid']) && ! array_key_exists($data['admingroupid'], $groups)) { $groups[$data['admingroupid']] = array('name' => getUserGroupName($data['admingroupid'], 1)); + $extragroups[$data['admingroupid']] = array('name' => getUserGroupName($data['admingroupid'], 1)); uasort($groups, "sortKeepIndex"); } print " <tr>\n"; @@ -434,8 +437,7 @@ function blockAllocationForm() { print " </tr>\n"; print "</table>\n"; print "<span id=\"commentsnote\" class=\"hidden\">Your additional comments will be submitted.<br><br></span>\n"; - $data = array('images' => $resources['image'], - 'groups' => $groups); + $data = array('extragroups' => $extragroups); if($mode == 'newBlockAllocation') $data['method'] = 'new'; elseif($mode == 'editBlockAllocation') { @@ -558,8 +560,7 @@ function AJblockAllocationSubmit() { print "alert('Error encountered while trying to create block allocation:\\n"; print "no active management nodes were found. Please try\\n"; print "creating the block allocation at a later time.');"; - $data = array('images' => getContinuationVar('images'), - 'groups' => getContinuationVar('groups'), + $data = array('extragroups' => getContinuationVar('extragroups'), 'method' => $method); if($method == 'edit') $data['blockid'] = getContinuationVar('blockid'); @@ -1447,7 +1448,6 @@ function getPendingBlockHTML($listonly=0 $d .= " <button dojoType=\"dijit.form.Button\" type=\"button\">\n"; $d .= " Accept...\n"; $d .= " <script type=\"dojo/method\" event=\"onClick\">\n"; - $row['groups'] = $groups; $cont = addContinuationsEntry('AJacceptBlockAllocationConfirm', $row); $d .= " acceptBlockConfirm('$cont');\n"; $d .= " </script>\n"; @@ -1826,7 +1826,6 @@ function AJacceptBlockAllocationConfirm( $cdata['setusergroup'] = 1; else $cdata['setusergroup'] = 0; - $cdata['groups'] = $data['groups']; $cdata['validemail'] = $rt['validemail']; $cdata['emailuser'] = $data['email']; $cdata['repeating'] = $data['repeating']; @@ -1861,7 +1860,7 @@ function AJacceptBlockAllocationConfirm( /// //////////////////////////////////////////////////////////////////////////////// function AJacceptBlockAllocationSubmit() { - global $mysql_link_vcl; + global $mysql_link_vcl, $user; $blockid = getContinuationVar('blockid'); $comments = getContinuationVar('comments'); $validemail = getContinuationVar('validemail'); @@ -1869,7 +1868,6 @@ function AJacceptBlockAllocationSubmit() $setusergroup = getContinuationVar('setusergroup'); if($setusergroup) $usergroupid = processInputVar('groupid', ARG_NUMERIC); - $groups = getContinuationVar('groups'); $name = processInputVar('brname', ARG_STRING); $admingroupid = processInputVar('admingroupid', ARG_NUMERIC); $emailtext = processInputVar('emailtext', ARG_STRING); @@ -1891,6 +1889,7 @@ function AJacceptBlockAllocationSubmit() $err = 1; } } + $groups = getUserGroups(0, $user['affiliationid']); if(! $err && $admingroupid != 0 && ! array_key_exists($admingroupid, $groups)) { $errmsg = "Invalid managing user group submitted."; $err = 1; @@ -2358,10 +2357,9 @@ function AJupdateBlockStatus() { /// //////////////////////////////////////////////////////////////////////////////// function processBlockAllocationInput() { + global $user; $return = array(); $method = getContinuationVar('method'); - $images = getContinuationVar('images'); - $groups = getContinuationVar('groups'); $return['name'] = processInputVar('name', ARG_STRING); $return['imageid'] = processInputVar('imageid', ARG_NUMERIC); $return['seats'] = processInputVar('seats', ARG_NUMERIC); @@ -2370,15 +2368,24 @@ function processBlockAllocationInput() { $type = processInputVar('type', ARG_STRING); $err = 0; if($method != 'request' && ! preg_match('/^([-a-zA-Z0-9\. \(\)]){3,80}$/', $return['name'])) { - $errmsg = "The name can only contain letters, numbers, spaces, dashes(-),<br>and periods(.) and can be from 3 to 80 characters long"; + $errmsg = "The name can only contain letters, numbers, spaces, dashes(-),<br>and periods(.) and can be from 3 to 80 characters long"; $err = 1; } - if(! array_key_exists($return['imageid'], $images)) { + $resources = getUserResources(array("imageAdmin", "imageCheckOut")); + $resources["image"] = removeNoCheckout($resources["image"]); + if(! array_key_exists($return['imageid'], $resources['image'])) { $errmsg = 'The submitted image is invalid.'; $err = 1; } - if(! $err && ! array_key_exists($return['groupid'], $groups) && $return['groupid'] != 0) { + $groups = getUserGroups(0, $user['affiliationid']); + $extragroups = getContinuationVar('extragroups'); + if(! $err && ! array_key_exists($return['groupid'], $groups) && + ! array_key_exists($return['groupid'], $extragroups) && + $return['groupid'] != 0) { $errmsg = 'The submitted user group is invalid.'; + print "/*"; + print_r($groups); + print "*/"; $err = 1; } if(! $err && $method != 'request' && ! array_key_exists($return['admingroupid'], $groups) && $return['admingroupid'] != 0) { @@ -2387,12 +2394,12 @@ function processBlockAllocationInput() { } if(! $err && ($return['seats'] < MIN_BLOCK_MACHINES || $return['seats'] > MAX_BLOCK_MACHINES)) { $errmsg = 'The submitted number of seats must be between ' . MIN_BLOCK_MACHINES - . ' and ' . MAX_BLOCK_MACHINES . '.'; + . ' and ' . MAX_BLOCK_MACHINES . '.'; $err = 1; } if(! $err && $type != 'weekly' && $type != 'monthly' && $type != 'list') { $errmsg = 'You must select one of "Repeating Weekly", "Repeating Monthly", ' - . 'or "List of Dates/Times".'; + . 'or "List of Dates/Times".'; $err = 1; } if(! $err) { @@ -2514,8 +2521,7 @@ function processBlockAllocationInput() { if($err) { print "clearHideConfirmForm();"; print "alert('$errmsg');"; - $data = array('images' => $images, - 'groups' => $groups, + $data = array('extragroups' => $extragroups, 'method' => $method); if($method == 'edit') $data['blockid'] = getContinuationVar('blockid');