16 import(
'lib.pkp.classes.controllers.grid.DataObjectGridCellProvider');
19 import(
'lib.pkp.classes.submission.SubmissionFile');
35 function __construct($submissionId, $canManage, $publicationId) {
36 parent::__construct();
37 $this->_submissionId = $submissionId;
38 $this->_publicationId = $publicationId;
39 $this->_canManage = $canManage;
59 return $this->_publicationId;
74 $data = $row->getData();
76 if (is_a($data,
'Representation')) {
78 switch ($column->getId()) {
79 case 'indent':
return array();
81 $remoteURL = $data->getRemoteURL();
83 return array(
'label' =>
'<a href="'.htmlspecialchars($remoteURL).
'" target="_blank">'.htmlspecialchars($data->getLocalizedName()).
'</a>' .
'<span class="onix_code">' . $data->getNameForONIXCode() .
'</span>');
85 return array(
'label' => htmlspecialchars($data->getLocalizedName()) .
'<span class="onix_code">' . $data->getNameForONIXCode() .
'</span>');
87 return array(
'status' => $data->getIsAvailable()?
'completed':
'new');
89 return array(
'status' => $data->getIsApproved()?
'completed':
'new');
92 assert(is_array($data) && isset($data[
'submissionFile']));
93 $proofFile = $data[
'submissionFile'];
94 switch ($column->getId()) {
96 return array(
'status' => ($proofFile->getSalesType() !=
null && $proofFile->getDirectSalesPrice() !=
null)?
'completed':
'new');
98 import(
'lib.pkp.controllers.grid.files.FileNameGridColumn');
100 return $fileNameGridColumn->getTemplateVarsFromRow($row);
102 return array(
'status' => $proofFile->getViewable()?
'completed':
'new');
106 return parent::getTemplateVarsFromRowColumn($row, $column);
124 function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
125 $data = $row->getData();
126 $router = $request->getRouter();
127 if (is_a($data,
'Representation')) {
128 switch ($column->getId()) {
131 'availableRepresentation',
133 $request->getSession(),
134 __($data->getIsAvailable()?
'grid.catalogEntry.availableRepresentation.removeMessage':
'grid.catalogEntry.availableRepresentation.message'),
135 __(
'grid.catalogEntry.availableRepresentation.title'),
137 $request,
null,
null,
'setAvailable',
null,
139 'representationId' => $data->getId(),
140 'newAvailableState' => $data->getIsAvailable()?0:1,
141 'submissionId' => $this->getSubmissionId(),
142 'publicationId' => $data->getData(
'publicationId'),
147 $data->getIsAvailable()?__(
'grid.catalogEntry.isAvailable'):__(
'grid.catalogEntry.isNotAvailable'),
148 $data->getIsAvailable()?
'complete':
'incomplete',
149 __(
'grid.action.formatAvailable')
154 $remoteURL = $data->getRemoteURL();
159 if (!$this->_canManage)
return array();
160 import(
'lib.pkp.controllers.api.file.linkAction.AddFileLinkAction');
161 import(
'lib.pkp.controllers.grid.files.fileList.linkAction.SelectFilesLinkAction');
166 array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), SUBMISSION_FILE_PROOF,
167 ASSOC_TYPE_REPRESENTATION, $data->getId()
173 'assocType' => ASSOC_TYPE_REPRESENTATION,
174 'assocId' => $data->getId(),
175 'representationId' => $data->getId(),
176 'publicationId' => $this->getPublicationId(),
177 'stageId' => WORKFLOW_STAGE_ID_PRODUCTION,
178 'fileStage' => SUBMISSION_FILE_PROOF,
180 __(
'editor.submission.selectFiles')
184 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
186 'approveRepresentation',
189 $request,
null,
null,
'setApproved',
null,
191 'representationId' => $data->getId(),
192 'newApprovedState' => $data->getIsApproved()?0:1,
193 'submissionId' => $this->getSubmissionId(),
194 'publicationId' => $data->getData(
'publicationId'),
197 __(
'grid.catalogEntry.approvedRepresentation.title'),
200 $data->getIsApproved()?__(
'submission.complete'):__(
'submission.incomplete'),
201 $data->getIsApproved()?
'complete':
'incomplete',
202 __(
'grid.action.setApproval')
206 assert(is_array($data) && isset($data[
'submissionFile']));
207 $submissionFile = $data[
'submissionFile'];
208 switch ($column->getId()) {
210 $salesType = preg_replace(
'/[^\da-z]/i',
'', $submissionFile->getSalesType());
211 $salesTypeString =
'editor.monograph.approvedProofs.edit.linkTitle';
212 if ($salesType ==
'openAccess') {
213 $salesTypeString =
'payment.directSales.openAccess';
214 } elseif ($salesType ==
'directSales') {
215 $salesTypeString =
'payment.directSales.directSales';
216 } elseif ($salesType ==
'notAvailable') {
217 $salesTypeString =
'payment.directSales.notAvailable';
222 $router->url($request,
null,
null,
'editApprovedProof',
null, array(
223 'fileId' => $submissionFile->getFileId() .
'-' . $submissionFile->getRevision(),
224 'submissionId' => $submissionFile->getSubmissionId(),
225 'publicationId' => $this->getPublicationId(),
226 'representationId' => $submissionFile->getAssocId(),
228 __(
'editor.monograph.approvedProofs.edit'),
231 __($salesTypeString),
235 import(
'lib.pkp.controllers.grid.files.FileNameGridColumn');
237 return $fileNameColumn->getCellActions($request, $row, $position);
240 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
241 $title = __($submissionFile->getViewable()?
'editor.submission.proofreading.revokeProofApproval':
'editor.submission.proofreading.approveProof');
243 $submissionFile->getViewable()?
'approved':
'not_approved',
246 $request,
null,
null,
'setProofFileCompletion',
249 'submissionId' => $submissionFile->getSubmissionId(),
250 'publicationId' => $this->getPublicationId(),
251 'fileId' => $submissionFile->getFileId(),
252 'revision' => $submissionFile->getRevision(),
253 'approval' => !$submissionFile->getViewable(),
259 $submissionFile->getViewable()?__(
'grid.catalogEntry.availableRepresentation.approved'):__(
'grid.catalogEntry.availableRepresentation.notApproved'),
260 $submissionFile->getViewable()?
'complete':
'incomplete',
261 __(
'grid.action.setApproval')
265 return parent::getCellActions($request, $row, $column, $position);