function handleGroupAction($selected, $action, &$groupcookievalue) { $surveys = array(); $displaySysAdmin = new DisplaySysAdmin(); switch ($action) { case 'edit': $settings = $this->getBatchEditorGroupProperties(); $tosave = array(); $tocompile = array(); $changed = array(); foreach ($settings as $set) { if (loadvar($set . "_checkbox") == 1) { $val = loadvarAllowHTML($set); if ($val != "") { foreach ($selected as $sel) { $s = explode("~", $sel); if (isset($surveys[$s[0]])) { $survey = $surveys[$s[0]]; } else { $survey = new Survey($s[0]); $surveys[$s[0]] = $survey; $tocompile[] = $s[0]; } if (isset($tosave[$sel])) { $group = $tosave[$sel]; } else { $group = $survey->getGroup($s[1]); $tosave[$sel] = $group; } if (isset($changed[$s[0]])) { $arr = $changed[$s[0]]; if (isset($arr[$sel]) == false) { $arr[$sel] = $group; $changed[$s[0]] = $arr; } } else { $arr = array(); $arr[$sel] = $group; $changed[$s[0]] = $arr; } $group->setSettingValue($set, $val); if ($set == SETTING_GROUP_TEMPLATE && $val == TABLE_TEMPLATE_CUSTOM) { $group->setSettingValue(SETTING_GROUP_CUSTOM_TEMPLATE, loadvarAllowHTML(SETTING_GROUP_CUSTOM_TEMPLATE)); } } } } } /* save */ foreach ($tosave as $to) { $to->save(); } /* compile */ foreach ($tocompile as $comp) { if (isset($surveys[$comp])) { $survey = $surveys[$comp]; } else { $survey = new Survey($comp); $surveys[$comp] = $survey; } $compiler = new Compiler($comp, getSurveyVersion($surveys[$comp])); $mess = $compiler->generateGroups($changed[$comp]); $mess = $compiler->generateGetFillsGroups($changed[$comp]); $mess = $compiler->generateInlineFieldsGroups($changed[$comp]); } if ($changed) { $content = $displaySysAdmin->displaySuccess(Language::messageToolsBatchEditorEdited(Language::labelGroupsLower())); } else { $content = $displaySysAdmin->displayWarning(Language::messageToolsBatchEditorNotEdited()); } break; break; case 'copy': // determine survey $suid = loadvar('suid'); foreach ($selected as $sel) { $s = explode("~", $sel); if (isset($surveys[$s[0]])) { $survey = $surveys[$s[0]]; } else { $survey = new Survey($s[0]); $surveys[$s[0]] = $survey; } $group = $survey->getGroup($s[1]); $oldgroup = $group; $group->copy($suid); $newgroups[] = $group; } /* compile new */ $compiler = new Compiler($suid, getSurveyVersion($survey)); $mess = $compiler->generateGroups($newgroups); $mess = $compiler->generateGetFillsGroups($newgroups); $mess = $compiler->generateInlineFieldsGroups($newgroups); $content = $displaySysAdmin->displaySuccess(Language::messageToolsBatchEditorCopied(Language::labelGroupsLower())); break; case 'move': $tocompile = array(); $moved = array(); $newgroups = array(); // determine survey $suid = loadvar('suid'); $cookiearr = explode("-", $groupcookievalue); foreach ($selected as $sel) { $s = explode("~", $sel); if (isset($surveys[$s[0]])) { $survey = $surveys[$s[0]]; } else { $survey = new Survey($s[0]); $surveys[$s[0]] = $survey; $tocompile[] = $s[0]; } $group = $survey->getGroup($s[1]); $oldgroup = $group; $group->move($suid); if (isset($moved[$s[0]])) { $arr = $moved[$s[0]]; } else { $arr = array(); } $arr[] = $oldgroup; $moved[$s[0]] = $arr; $newgroups[] = $group; /* update cookie */ $ind = array_search($sel, $cookiearr); $cookiearr[$ind] = $group->getSuid() . '~' . $group->getGid(); } /* update cookie */ setcookie('uscicgroupcookie', implode("-", $cookiearr)); //implode("-", $arr)); $groupcookievalue = implode("-", $cookiearr); /* compile old */ foreach ($tocompile as $comp) { if (isset($surveys[$comp])) { $survey = $surveys[$comp]; } else { $survey = new Survey($comp); $surveys[$comp] = $survey; } /* we moved across survey for one or more groups in this survey */ if ($suid != $comp) { $compiler = new Compiler($comp, getSurveyVersion($surveys[$comp])); $mess = $compiler->generateGroups($moved[$comp], true); } } /* compile new */ $compiler = new Compiler($suid, getSurveyVersion($survey)); $mess = $compiler->generateGroups($newgroups); $mess = $compiler->generateGetFillsGroups($newgroups); $mess = $compiler->generateInlineFieldsGroups($newgroups); $content = $displaySysAdmin->displaySuccess(Language::messageToolsBatchEditorMoved(Language::labelGroupsLower())); break; case 'remove': $removed = array(); $cookiearr = explode("-", $groupcookievalue); foreach ($selected as $sel) { $s = explode("~", $sel); if (isset($surveys[$s[0]])) { $survey = $surveys[$s[0]]; } else { $survey = new Survey($s[0]); $surveys[$s[0]] = $survey; } $group = $survey->getGroup($s[1]); $group->remove(); $removed[] = $group; /* update cookie */ $ind = array_search($sel, $cookiearr); unset($cookiearr[$ind]); } /* update cookie */ setcookie('uscicgroupcookie', implode("-", $cookiearr)); //implode("-", $arr)); $groupcookievalue = implode("-", $cookiearr); /* compile */ foreach ($surveys as $survey) { $compiler = new Compiler($survey->getSuid(), getSurveyVersion($survey)); $mess = $compiler->generateGroups($removed, true); } $content = $displaySysAdmin->displaySuccess(Language::messageToolsBatchEditorRemoved(Language::labelGroupsLower())); break; default: $content = $displaySysAdmin->displayWarning(Language::messageToolsBatchEditorUnrecognizedAction()); break; } return $content; }
function showTranslateGroupAssistanceRes() { $displayTranslator = new DisplayTranslator(); $survey = new Survey($_SESSION['SUID']); $gid = getFromSessionParams('gid'); $group = $survey->getGroup($gid); $_SESSION['GID'] = $gid; $group->setEmptyMessage(loadvarAllowHTML(SETTING_EMPTY_MESSAGE)); $group->setErrorMessageExactRequired(loadvarAllowHTML(SETTING_ERROR_MESSAGE_EXACT_REQUIRED)); $group->setErrorMessageMinimumRequired(loadvarAllowHTML(SETTING_ERROR_MESSAGE_MINIMUM_REQUIRED)); $group->setErrorMessageMaximumRequired(loadvarAllowHTML(SETTING_ERROR_MESSAGE_MAXIMUM_REQUIRED)); $group->setErrorMessageExclusive(loadvarAllowHTML(SETTING_ERROR_MESSAGE_EXCLUSIVE)); $group->setErrorMessageInclusive(loadvarAllowHTML(SETTING_ERROR_MESSAGE_INCLUSIVE)); $group->SetErrorMessageUniqueRequired(loadvarAllowHTML(SETTING_ERROR_MESSAGE_UNIQUE_REQUIRED)); $content = $displayTranslator->displaySuccess(Language::messageGroupChanged($group->getName())); $group->save(); /* compile */ $compiler = new Compiler($_SESSION['SUID'], getSurveyVersion($survey)); $mess = $compiler->generateGroups(array($group)); $mess = $compiler->generateGetFillsGroups(array($group)); /* update last page */ $_SESSION['LASTPAGE'] = substr($_SESSION['LASTPAGE'], 0, strripos($_SESSION['LASTPAGE'], "res")); /* return result */ return $displayTranslator->showTranslateGroup($_SESSION['GID'], $content); }