00001 <?php
00002
00016 import('lib.pkp.classes.form.Form');
00017
00018 class SubmissionChecklistForm extends Form {
00020 var $submissionChecklistId;
00021
00025 function SubmissionChecklistForm($submissionChecklistId = null) {
00026 $this->submissionChecklistId = $submissionChecklistId;
00027 parent::Form('controllers/grid/settings/submissionChecklist/form/submissionChecklistForm.tpl');
00028
00029
00030 $this->addCheck(new FormValidatorLocale($this, 'checklistItem', 'required', 'maganer.setup.submissionChecklistItemRequired'));
00031 $this->addCheck(new FormValidatorPost($this));
00032 }
00033
00039 function initData($args, &$request) {
00040 $press =& $request->getPress();
00041
00042 $submissionChecklistAll = $press->getSetting('submissionChecklist');
00043 $checklistItem = array();
00044
00045 foreach (AppLocale::getSupportedLocales() as $locale => $name) {
00046 $checklistItem[$locale] = null;
00047 }
00048
00049
00050
00051 if ( isset($this->submissionChecklistId) ) {
00052 foreach (AppLocale::getSupportedLocales() as $locale => $name) {
00053 if ( !isset($submissionChecklistAll[$locale][$this->submissionChecklistId]['content'])) {
00054 $checklistItem[$locale] = '';
00055 } else {
00056 $checklistItem[$locale] = $submissionChecklistAll[$locale][$this->submissionChecklistId]['content'];
00057 }
00058 }
00059 }
00060
00061 $this->_data = array( 'checklistItem' => $checklistItem );
00062
00063
00064 $this->_data['gridId'] = $args['gridId'];
00065 $this->_data['rowId'] = isset($args['rowId']) ? $args['rowId'] : null;
00066 }
00067
00073 function fetch(&$request) {
00074 AppLocale::requireComponents(LOCALE_COMPONENT_OMP_MANAGER);
00075 return parent::fetch($request);
00076 }
00077
00082 function readInputData() {
00083 $this->readUserVars(array('submissionChecklistId', 'checklistItem'));
00084 $this->readUserVars(array('gridId', 'rowId'));
00085 }
00086
00090 function execute($args, &$request) {
00091 $router =& $request->getRouter();
00092 $press =& $router->getContext($request);
00093 $submissionChecklistAll = $press->getSetting('submissionChecklist');
00094 $locale = AppLocale::getPrimaryLocale();
00095
00096 $this->submissionChecklistId = ($this->submissionChecklistId != null ? $this->submissionChecklistId:(max(array_keys($submissionChecklistAll[$locale])) + 1));
00097
00098 $order = 0;
00099 foreach ($submissionChecklistAll[$locale] as $checklistItem) {
00100 if ($checklistItem['order'] > $order) {
00101 $order = $checklistItem['order'];
00102 }
00103 }
00104 $order++;
00105
00106 $checklistItem = $this->getData('checklistItem');
00107 foreach (AppLocale::getSupportedLocales() as $locale => $name) {
00108 if (isset($checklistItem[$locale])) {
00109 $submissionChecklistAll[$locale][$this->submissionChecklistId]['content'] = $checklistItem[$locale];
00110 $submissionChecklistAll[$locale][$this->submissionChecklistId]['order'] = $order;
00111 }
00112 }
00113
00114 $press->updateSetting('submissionChecklist', $submissionChecklistAll, 'object', true);
00115 return true;
00116 }
00117 }
00118
00119 ?>