16 import(
'lib.pkp.controllers.informationCenter.InformationCenterHandler');
17 import(
'lib.pkp.classes.core.JSONMessage');
18 import(
'classes.log.SubmissionEventLogEntry');
31 parent::__construct();
33 array(ROLE_ID_ASSISTANT),
35 'viewInformationCenter',
37 'viewNotes',
'listNotes',
'saveNote',
'deleteNote',
45 function authorize($request, &$args, $roleAssignments) {
47 import(
'lib.pkp.classes.security.authorization.WorkflowStageAccessPolicy');
50 return parent::authorize($request, $args, $roleAssignments);
57 parent::initialize($request);
62 $this->submissionFile = $submissionFileDao->getLatestRevision($request->getUserVar(
'fileId'));
65 if (!$this->_submission || !$this->submissionFile || $this->_submission->getId() != $this->submissionFile->getSubmissionId())
fatalError(
'Unknown or invalid submission or submission file!');
78 $fileName = (($s = $this->submissionFile->getLocalizedName()) !=
'') ? $s : __(
'common.untitled');
79 if (($i = $this->submissionFile->getRevision()) > 1) $fileName .=
" ($i)";
80 if (empty($fileName)) $fileName = __(
'common.untitled');
81 $templateMgr->assign(
'removeHistoryTab', (
int) $request->getUserVar(
'removeHistoryTab'));
83 return parent::viewInformationCenter($args, $request);
95 import(
'lib.pkp.controllers.informationCenter.form.NewFileNoteForm');
97 $notesForm->initData();
100 $templateMgr->assign(
'notesList', $this->
_listNotes($args, $request));
101 $templateMgr->assign(
'pastNotesList', $this->
_listPastNotes($args, $request));
103 return new JSONMessage(
true, $notesForm->fetch($request));
125 $iterator = $noteDao->getByAssoc($this->
_getAssocType(), $submissionFile->getFileId());
126 $notes += $iterator->toArray();
128 import(
'lib.pkp.classes.core.ArrayItemIterator');
131 $user = $request->getUser();
132 $templateMgr->assign(array(
133 'currentUserId' => $user->getId(),
134 'notesListId' =>
'pastNotesList',
135 'notesDeletable' =>
false,
138 return $templateMgr->fetch(
'controllers/informationCenter/notesList.tpl');
147 function saveNote($args, $request) {
150 import(
'lib.pkp.controllers.informationCenter.form.NewFileNoteForm');
152 $notesForm->readInputData();
154 if ($notesForm->validate()) {
155 $notesForm->execute();
158 $this->
_logEvent($request, $this->submissionFile, SUBMISSION_LOG_NOTE_POSTED,
'SubmissionFileLog');
160 $user = $request->getUser();
163 $jsonViewNotesResponse = $this->
viewNotes($args, $request);
165 $json->setEvent(
'dataChanged');
166 $json->setEvent(
'noteAdded', $jsonViewNotesResponse->_content);
185 $dispatcher = $request->getDispatcher();
186 return $templateMgr->fetchAjax(
188 $dispatcher->url($request, ROUTE_COMPONENT,
null,
'grid.eventLog.SubmissionFileEventLogGridHandler',
'fetchGrid',
null, $this->_getLinkParams())
200 parent::_getLinkParams(),
202 'fileId' => $this->submissionFile->getFileId(),
203 'stageId' => $this->_stageId,
213 return $this->submissionFile->getFileId();
221 return ASSOC_TYPE_SUBMISSION_FILE;
233 $fileEvents = $submissionEventLogDao->getByFileId($this->submissionFile->getFileId());
234 $lastEvent = $fileEvents->next();
235 if(isset($lastEvent)) {
236 $templateMgr->assign(
'lastEvent', $lastEvent);
240 $user = $userDao->getById($lastEvent->getUserId());
241 $templateMgr->assign(
'lastEventUser', $user);
244 return parent::setupTemplate($request);