Open Journal Systems  3.3.0
QuickSubmitPlugin.inc.php
1 <?php
2 
17 import('lib.pkp.classes.plugins.ImportExportPlugin');
18 
20 
24  public function register($category, $path, $mainContextId = NULL) {
25  AppLocale::requireComponents(LOCALE_COMPONENT_APP_COMMON,
26  LOCALE_COMPONENT_APP_SUBMISSION,
27  LOCALE_COMPONENT_APP_AUTHOR,
28  LOCALE_COMPONENT_APP_EDITOR,
29  LOCALE_COMPONENT_PKP_SUBMISSION);
30 
31  $success = parent::register($category, $path, $mainContextId);
32  $this->addLocaleData();
33 
34  return $success;
35  }
36 
40  public function getName() {
41  return 'QuickSubmitPlugin';
42  }
43 
47  public function getDisplayName() {
48  return __('plugins.importexport.quickSubmit.displayName');
49  }
50 
54  public function getDescription() {
55  return __('plugins.importexport.quickSubmit.description');
56  }
57 
61  public function display($args, $request) {
62  $templateMgr = TemplateManager::getManager();
63  $templateMgr->registerPlugin('function', 'plugin_url', array($this, 'smartyPluginUrl'));
64 
65  switch (array_shift($args)) {
66  case 'saveSubmit':
67  if ($request->getUserVar('reloadForm') == '1') {
68  $this->_reloadForm($request);
69  } else {
70  $this->_saveSubmit($request);
71  }
72  break;
73  case 'cancelSubmit':
74  $this->_cancelSubmit($request);
75  break;
76  case 'uploadCoverImage':
77  return $this->_showFileUploadForm($request);
78  case 'uploadImage':
79  return $this->_uploadImage($request);
80  case 'saveUploadedImage':
81  return $this->_saveUploadedImage($request);
82  case 'deleteCoverImage':
83  return $this->_deleteUploadedImage($request);
84  default:
85  $this->import('QuickSubmitForm');
86  $templateMgr->assign([
87  'pageTitle' => $this->getDisplayName(),
88  ]);
89  $form = new QuickSubmitForm($this, $request);
90  $form->initData();
91  $form->display($request);
92  break;
93  }
94  }
95 
100  protected function _cancelSubmit($request) {
101  $this->import('QuickSubmitForm');
102  $form = new QuickSubmitForm($this, $request);
103  $form->readInputData();
104 
105  $form->cancel();
106 
107  // Submission removal notification.
108  $notificationContent = __('notification.removedSubmission');
109  $currentUser = $request->getUser();
110  $notificationMgr = new NotificationManager();
111  $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
112 
113  $templateMgr = TemplateManager::getManager($request);
114  $templateMgr->assign([
115  'pageTitle' => __('plugins.importexport.quickSubmit.cancel'),
116  ]);
117  $templateMgr->display($this->getTemplateResource('submitCancel.tpl'));
118  }
119 
125  protected function _showFileUploadForm($request) {
126  import('plugins.importexport.quickSubmit.classes.form.UploadImageForm');
127  $imageUploadForm = new UploadImageForm($this, $request);
128  $imageUploadForm->initData($request);
129  return new JSONMessage(true, $imageUploadForm->fetch($request));
130  }
131 
137  protected function _uploadImage($request) {
138  import('plugins.importexport.quickSubmit.classes.form.UploadImageForm');
139  $imageUploadForm = new UploadImageForm($this, $request);
140  $imageUploadForm->readInputData();
141 
142  $temporaryFileId = $imageUploadForm->uploadFile($request);
143  if ($temporaryFileId) {
144  $json = new JSONMessage(true);
145  $json->setAdditionalAttributes(array(
146  'temporaryFileId' => $temporaryFileId
147  ));
148  return $json;
149  } else {
150  return new JSONMessage(false, __('common.uploadFailed'));
151  }
152  }
153 
159  protected function _saveUploadedImage($request) {
160  import('plugins.importexport.quickSubmit.classes.form.UploadImageForm');
161  $imageUploadForm = new UploadImageForm($this, $request);
162  $imageUploadForm->readInputData();
163  return $imageUploadForm->execute($request);
164  }
165 
171  protected function _deleteUploadedImage($request) {
172  import('plugins.importexport.quickSubmit.classes.form.UploadImageForm');
173  $imageUploadForm = new UploadImageForm($this, $request);
174  $imageUploadForm->readInputData();
175  return $imageUploadForm->deleteCoverImage($request);
176  }
177 
182  protected function _saveSubmit($request) {
183  $templateMgr = TemplateManager::getManager($request);
184  $this->import('QuickSubmitForm');
185  $form = new QuickSubmitForm($this, $request);
186  $form->readInputData();
187  if($form->validate()){
188  $form->execute();
189  $templateMgr->assign(array(
190  'pageTitle' => __('plugins.importexport.quickSubmit.success'),
191  'submissionId' => $form->getSubmission()->getId(),
192  'stageId' => WORKFLOW_STAGE_ID_PRODUCTION,
193  ));
194  $templateMgr->display($this->getTemplateResource('submitSuccess.tpl'));
195  } else {
196  $form->display($request);
197  }
198  }
199 
204  protected function _reloadForm($request) {
205  $templateMgr = TemplateManager::getManager($request);
206  $this->import('QuickSubmitForm');
207  $form = new QuickSubmitForm($this, $request);
208  $form->readInputData();
209  $form->display($request);
210  }
211 
215  function smartyPluginUrl($params, $smarty) {
216  $path = array('plugin',$this->getName());
217  if (is_array($params['path'])) {
218  $params['path'] = array_merge($path, $params['path']);
219  } elseif (!empty($params['path'])) {
220  $params['path'] = array_merge($path, array($params['path']));
221  } else {
222  $params['path'] = $path;
223  }
224 
225  if (!empty($params['id'])) {
226  $params['path'] = array_merge($params['path'], array($params['id']));
227  unset($params['id']);
228  }
229  return $smarty->smartyUrl($params, $smarty);
230  }
231 
235  public function usage($scriptName) {
236  fatalError('Not implemented');
237  }
238 
242  public function executeCLI($scriptName, &$args) {
243  fatalError('Not implemented');
244  }
245 }
246 
QuickSubmitPlugin\_deleteUploadedImage
_deleteUploadedImage($request)
Definition: QuickSubmitPlugin.inc.php:171
QuickSubmitPlugin\_saveSubmit
_saveSubmit($request)
Definition: QuickSubmitPlugin.inc.php:182
QuickSubmitPlugin\_saveUploadedImage
_saveUploadedImage($request)
Definition: QuickSubmitPlugin.inc.php:159
QuickSubmitPlugin\_reloadForm
_reloadForm($request)
Definition: QuickSubmitPlugin.inc.php:204
UploadImageForm
Form for upload an image.
Definition: UploadImageForm.inc.php:18
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
QuickSubmitPlugin\getDescription
getDescription()
Definition: QuickSubmitPlugin.inc.php:54
QuickSubmitPlugin
Quick Submit one-page submission plugin.
Definition: QuickSubmitPlugin.inc.php:19
ImportExportPlugin
Abstract class for import/export plugins.
Definition: ImportExportPlugin.inc.php:18
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
QuickSubmitPlugin\_uploadImage
_uploadImage($request)
Definition: QuickSubmitPlugin.inc.php:137
QuickSubmitPlugin\getDisplayName
getDisplayName()
Definition: QuickSubmitPlugin.inc.php:47
QuickSubmitPlugin\getName
getName()
Definition: QuickSubmitPlugin.inc.php:40
QuickSubmitPlugin\_cancelSubmit
_cancelSubmit($request)
Definition: QuickSubmitPlugin.inc.php:100
QuickSubmitPlugin\display
display($args, $request)
Definition: QuickSubmitPlugin.inc.php:61
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
QuickSubmitPlugin\smartyPluginUrl
smartyPluginUrl($params, $smarty)
Definition: QuickSubmitPlugin.inc.php:215
Plugin\getTemplateResource
getTemplateResource($template=null, $inCore=false)
Definition: Plugin.inc.php:349
QuickSubmitPlugin\_showFileUploadForm
_showFileUploadForm($request)
Definition: QuickSubmitPlugin.inc.php:125
Plugin\$request
$request
Definition: Plugin.inc.php:68
Plugin\addLocaleData
addLocaleData($locale=null)
Definition: Plugin.inc.php:454
NotificationManager
Definition: NotificationManager.inc.php:19
fatalError
if(!function_exists('import')) fatalError($reason)
Definition: functions.inc.php:32
QuickSubmitForm
Form for QuickSubmit one-page submission plugin.
Definition: QuickSubmitForm.inc.php:21
QuickSubmitPlugin\usage
usage($scriptName)
Definition: QuickSubmitPlugin.inc.php:235
QuickSubmitPlugin\executeCLI
executeCLI($scriptName, &$args)
Definition: QuickSubmitPlugin.inc.php:242