Open Journal Systems  3.3.0
SubmissionChecklistForm.inc.php
1 <?php
2 
17 import('lib.pkp.classes.form.Form');
18 
22 
26  function __construct($submissionChecklistId = null) {
27  $this->submissionChecklistId = $submissionChecklistId;
28  parent::__construct('controllers/grid/settings/submissionChecklist/form/submissionChecklistForm.tpl');
29 
30  // Validation checks for this form
31  $this->addCheck(new FormValidatorLocale($this, 'checklistItem', 'required', 'maganer.setup.submissionChecklistItemRequired'));
32  $this->addCheck(new FormValidatorPost($this));
33  $this->addCheck(new FormValidatorCSRF($this));
34  }
35 
41  function initData($args) {
42  $request = Application::get()->getRequest();
43  $context = $request->getContext();
44 
45  $submissionChecklistAll = $context->getData('submissionChecklist');
46  $checklistItem = array();
47  // preparea localizable array for this checklist Item
48  foreach (AppLocale::getSupportedLocales() as $locale => $name) {
49  $checklistItem[$locale] = null;
50  }
51 
52  // if editing, set the content
53  // use of 'content' as key is for backwards compatibility
54  if ( isset($this->submissionChecklistId) ) {
55  foreach (AppLocale::getSupportedLocales() as $locale => $name) {
56  if ( !isset($submissionChecklistAll[$locale][$this->submissionChecklistId]['content'])) {
57  $checklistItem[$locale] = '';
58  } else {
59  $checklistItem[$locale] = $submissionChecklistAll[$locale][$this->submissionChecklistId]['content'];
60  }
61  }
62  }
63  // assign the data to the form
64  $this->_data = array( 'checklistItem' => $checklistItem );
65 
66  // grid related data
67  $this->_data['gridId'] = $args['gridId'];
68  $this->_data['rowId'] = isset($args['rowId']) ? $args['rowId'] : null;
69  }
70 
74  function fetch($request, $template = null, $display = false) {
75  AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER);
76  return parent::fetch($request, $template, $display);
77  }
78 
83  function readInputData() {
84  $this->readUserVars(array('submissionChecklistId', 'checklistItem'));
85  $this->readUserVars(array('gridId', 'rowId'));
86  }
87 
91  function execute(...$functionArgs) {
92  $request = Application::get()->getRequest();
93  $router = $request->getRouter();
94  $context = $router->getContext($request);
95  $submissionChecklistAll = $context->getData('submissionChecklist');
96  $locale = AppLocale::getPrimaryLocale();
97  //FIXME: a bit of kludge to get unique submissionChecklist id's
98  $this->submissionChecklistId = ($this->submissionChecklistId != null ? $this->submissionChecklistId:(max(array_keys($submissionChecklistAll[$locale])) + 1));
99 
100  $order = 0;
101  foreach ($submissionChecklistAll[$locale] as $checklistItem) {
102  if ($checklistItem['order'] > $order) {
103  $order = $checklistItem['order'];
104  }
105  }
106  $order++;
107 
108  $checklistItem = $this->getData('checklistItem');
109  foreach (AppLocale::getSupportedLocales() as $locale => $name) {
110  if (isset($checklistItem[$locale])) {
111  $submissionChecklistAll[$locale][$this->submissionChecklistId]['content'] = $checklistItem[$locale];
112  $submissionChecklistAll[$locale][$this->submissionChecklistId]['order'] = $order;
113  }
114  }
115 
116  $context->updateSetting('submissionChecklist', $submissionChecklistAll, 'object', true);
117  parent::execute(...$functionArgs);
118  return true;
119  }
120 }
121 
122 
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
SubmissionChecklistForm
Form for adding/edditing a submissionChecklist stores/retrieves from an associative array.
Definition: SubmissionChecklistForm.inc.php:19
SubmissionChecklistForm\$submissionChecklistId
$submissionChecklistId
Definition: SubmissionChecklistForm.inc.php:24
FormValidatorLocale
Class to represent a form validation check for localized fields.
Definition: FormValidatorLocale.inc.php:16
SubmissionChecklistForm\initData
initData($args)
Definition: SubmissionChecklistForm.inc.php:44
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
AppLocale\getPrimaryLocale
static getPrimaryLocale()
Definition: env1/MockAppLocale.inc.php:95
Form\initData
initData()
Definition: Form.inc.php:240
AppLocale\getSupportedLocales
static getSupportedLocales()
Definition: env1/MockAppLocale.inc.php:116
SubmissionChecklistForm\__construct
__construct($submissionChecklistId=null)
Definition: SubmissionChecklistForm.inc.php:29
SubmissionChecklistForm\fetch
fetch($request, $template=null, $display=false)
Definition: SubmissionChecklistForm.inc.php:77
SubmissionChecklistForm\readInputData
readInputData()
Definition: SubmissionChecklistForm.inc.php:86
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
SubmissionChecklistForm\execute
execute(... $functionArgs)
Definition: SubmissionChecklistForm.inc.php:94