first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-06-08 17:09:23 -04:00
commit df3a033196
17887 changed files with 8637778 additions and 0 deletions
@@ -0,0 +1,23 @@
{**
* templates/controllers/api/file/editMetadata.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* The "edit proof submission file" tabset.
*}
<script type="text/javascript">
// Attach the JS file tab handler.
$(function() {ldelim}
$('#editFileMetadataTabs').pkpHandler('$.pkp.controllers.TabHandler');
{rdelim});
</script>
<div id="editFileMetadataTabs">
<ul>
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="editMetadataTab" submissionFileId=$submissionFile->getId() submissionId=$submissionFile->getData('submissionId') stageId=$stageId}">{translate key="grid.action.editMetadata"}</a></li>
{if $showIdentifierTab}
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="identifiers" submissionFileId=$submissionFile->getId() submissionId=$submissionFile->getData('submissionId') stageId=$stageId}">{translate key="submission.identifiers"}</a></li>
{/if}
</ul>
</div>
@@ -0,0 +1,26 @@
{**
* controllers/extrasOnDemand.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Basic markup for extras on demand widget.
*}
<script>
// Initialise JS handler.
$(function() {ldelim}
$('#{$id}').pkpHandler(
'$.pkp.controllers.ExtrasOnDemandHandler');
{rdelim});
</script>
<div id="{$id}" class="pkp_controllers_extrasOnDemand">
<a href="#" class="toggleExtras">
<span class="toggleExtras-inactive">{translate key=$moreDetailsText}</span>
<span class="toggleExtras-active">{translate key=$lessDetailsText}</span>
<span class="fa fa-plus"></span>
</a>
<div class="extrasContainer container">
{$extraContent}
</div>
</div>
@@ -0,0 +1,81 @@
{**
* controllers/fileUploadContainer.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Markup for file uploader widget.
*
* @uses $id string ID for the HTML element wrapper. Typically used by parent
* forms to instantiate the plupload utility.
* @uses $stringDragFile string (optional) Translation key for the drag and
* drop zone label
* @uses $stringAddFile string (optional) Translation key for the add file
* button
* @uses $stringChangeFile string (optional) Translation key for the change
* file button
* @uses $browseButton string (optional) Element id for the browse button. When
* a custom id is used, FileUploadFormHandler must pass this id in the
* `uploaderOptions`.
*}
{if !$stringDragFile}
{assign var=stringDragFile value="common.upload.dragFile"}
{/if}
{if !$stringAddFile}
{assign var=stringAddFile value="common.upload.addFile"}
{/if}
{if !$stringChangeFile}
{assign var=stringChangeFile value="common.upload.changeFile"}
{/if}
{if !$browseButton}
{assign var=browseButton value="pkpUploaderButton"}
{/if}
<div id="{$id}" class="pkp_controller_fileUpload loading">
<div class="pkp_uploader_loading">
{**
* This wrapper div is a hack to emulate the inPlaceNotification.tpl
* structure. There's currently not a way to use these notifications
* without loading the JavaScript handler, but in this case we don't
* have the required settings.
*}
<div class="pkp_notification">
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=$id
notificationStyleClass="notifyWarning" notificationContents=$warningMessage
warningTitle="common.warning"|translate warningMessage="common.fileUploaderError"|translate}
</div>
</div>
{* The file upload and drag-and-drop area *}
<div id="{$id}-pkpUploaderDropZone" class="pkp_uploader_drop_zone">
<div class="pkp_uploader_drop_zone_label">
{translate key=$stringDragFile}
</div>
<div class="pkp_uploader_details">
<span class="pkpUploaderProgress">
{translate key="common.percentage" percentage='<span class="percentage">0</span>'}
</span>{* Live progress (%) *}
<div class="pkp_uploader_progress_bar_wrapper">
<span class="pkpUploaderProgressBar"></span>{* Live progress bar*}
</div>
<span class="pkpUploaderFilename"></span>{* Uploaded file name *}
</div>
{* Placeholder for errors during upload *}
<div class="pkpUploaderError"></div>
{* Button to add/change file *}
<button id="{$browseButton|escape}" class="pkp_uploader_button pkp_button" tabindex="-1">
<span class="pkp_uploader_button_add">
{translate key=$stringAddFile}
</span>
<span class="pkp_uploader_button_change">
{translate key=$stringChangeFile}
</span>
</button>
</div>
</div>
@@ -0,0 +1,31 @@
{**
* templates/controllers/grid/announcements/form/announcementTypeForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to read/create/edit announcement types.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#announcementTypeForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="announcementTypeForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.announcements.AnnouncementTypeGridHandler" op="updateAnnouncementType"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="announcementTypeFormNotification"}
{fbvFormArea id="announcementTypeInfo"}
{if $typeId}
<input type="hidden" name="announcementTypeId" value="{$typeId|escape}" />
{/if}
{fbvFormSection title="manager.announcementTypes.form.typeName" for="title" required="true"}
{fbvElement type="text" multilingual="true" id="name" value=$name maxlength="255" required="true"}
{/fbvFormSection}
{/fbvFormArea}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons id="announcementTypeFormSubmit" submitText="common.save"}
</form>
@@ -0,0 +1,22 @@
{**
* templates/controllers/grid/columnGroup.tpl
*
* Copyright (c) 2016-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Column group HTML markup for grids.
*}
<colgroup>
{foreach from=$columns item=column}
{* @todo indent columns should be killed at their source *}
{if $column->hasFlag('indent')}
{continue}
{/if}
<col class="grid-column column-{$column->getId()}"
{if $column->hasFlag('width')}
style="width: {$column->getFlag('width')}%;"
{/if} />
{/foreach}
</colgroup>
@@ -0,0 +1,16 @@
{**
* templates/controllers/grid/common/cell/checkMarkCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Cell to represent a boolean true with a check mark.
*
*}
{if $isChecked}
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
{else}
<div id="notChecked"><div href="#" class='pkp_helpers_container_center notChecked'></div></div>
{/if}
@@ -0,0 +1,18 @@
{**
* templates/controllers/grid/common/cell/radioButtonCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular grid cell (with or without actions)
*}
{assign var=cellId value="cell-"|concat:$id}
<span id="{$cellId}">
{if count($actions) gt 0}
{assign var=defaultCellAction value=$actions[0]}
{include file="linkAction/buttonGenericLinkAction.tpl" action=$defaultCellAction buttonSelector="#select-"|concat:$cellId}
{/if}
<input type="radio" id="select-{$cellId}" style="height: 15px; width: 15px;" {if $selected}checked="checked"{/if} {if $disabled}disabled="disabled"{/if}/>
</span>
@@ -0,0 +1,17 @@
{**
* templates/controllers/grid/common/cell/selectStatusCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular grid cell (with or without actions)
*}
{assign var=cellId value="cell-"|concat:$id|uniqid}
<span id="{$cellId}">
{if count($actions) gt 0}
{assign var=defaultCellAction value=$actions[0]}
{include file="linkAction/buttonGenericLinkAction.tpl" action=$defaultCellAction buttonSelector="#select-"|concat:$cellId}
{/if}
<input type="checkbox" id="select-{$cellId}" {if $name}name="{$name|escape}"{/if} {if $value}value="{$value|escape}"{/if} style="height: 15px; width: 15px;" {if $selected}checked="checked"{/if} {if $disabled}disabled="disabled"{/if}/>
</span>
@@ -0,0 +1,21 @@
{**
* templates/controllers/grid/common/cell/statusCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular grid cell (with or without actions)
*}
{assign var=cellId value="cell-"|concat:$id}
<span id="{$cellId}" class="pkp_linkActions">
{if count($actions) gt 0}
{assign var=defaultCellAction value=$actions[0]}
{* TODO imageClass doesn't appear to be used. Perhaps it should be image,
or maybe it can be removed. *}
{include file="linkAction/linkAction.tpl" action=$defaultCellAction contextId=$cellId imageClass="task"}
{elseif $status}
{capture assign="statusTitle"}{translate key="grid.task.status."|concat:$status}{/capture}
<a title="{$statusTitle|escape}" class="task {$status|escape}">status</a>
{/if}
</span>
@@ -0,0 +1,21 @@
{**
* controllers/grid/eventLog/eventLogGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for the event log entry list grid.
*}
<script type="text/javascript">
// Attach the form handler to the form.
$('#eventLogFilterForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
</script>
<form class="pkp_form" id="eventLogFilterForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="allEventsFilterArea"}
{fbvFormSection list="true"}
{fbvElement type="checkbox" id="allEvents" checked=$filterSelectionData.allEvents label="submission.informationCenter.history.allEvents" size=$fbvStyles.size.LARGE}
{/fbvFormSection}
{/fbvFormArea}
</form>
@@ -0,0 +1,10 @@
{**
* templates/controllers/grid/feature/collapsibleGridFeature.tpl
*
* Copyright (c) 2016-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Control for the collpsible grid functionality.
*}
{include file="linkAction/linkAction.tpl" action=$controlLink contextId='collapsibleGridControl'}
@@ -0,0 +1,21 @@
{**
* templates/controllers/grid/feature/featuresOptions.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid features js options.
*}
{ldelim}
{foreach name=features from=$features item=feature}
{$feature->getId()|json_encode}: {ldelim}
JSClass: {$feature->getJSClass()|json_encode},
options: {ldelim}
{foreach name=featureOptions from=$feature->getOptions() key=optionName item=optionValue}
{$optionName}: {if $optionValue}'{$optionValue|escape:javascript}'{else}false{/if}{if !$smarty.foreach.featureOptions.last},{/if}
{/foreach}
{rdelim}
{rdelim}{if !$smarty.foreach.features.last},{/if}
{/foreach}
{rdelim}
@@ -0,0 +1,17 @@
{**
* templates/controllers/grid/feature/gridOrderFinishControls.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Controls (button and link) to finish the ordering action in grids.
*}
<div class="grid_controls order_finish_controls">
<a href="#" id="{$gridId|concat}-saveButton" class="saveButton">
{translate key="common.done"}
</a>
<a href="#" id="{$gridId|concat}-cancel" class="cancelFormButton">
{translate key="grid.action.cancelOrdering"}
</a>
</div>
@@ -0,0 +1,11 @@
{**
* templates/controllers/grid/feature/gridOrderNonOrderableMessage.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Message to be presented while hovering for non orderable grid rows in ordering mode.
*}
<div class="order_message">{$orderMessage}</div>
@@ -0,0 +1,19 @@
{**
* templates/controllers/grid/feature/gridPaging.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid paging markup.
*}
<div class="gridPaging">
<div class="gridItemsPerPage">
{translate key="common.itemsPerPage"}:<select class="itemsPerPage"></select>
</div>
<div class="gridPages">
{page_info iterator=$iterator itemsPerPage=$currentItemsPerPage}
{page_links name=$grid->getId() iterator=$iterator}
</div>
</div>
@@ -0,0 +1,20 @@
{**
* templates/controllers/grid/feature/infiniteScrolling.tpl
*
* Copyright (c) 2016-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid infinite scrolling markup.
*}
{if $iterator->getCount()}
<div class="gridPagingScrolling">
{if $moreItemsLinkAction}
{include file="linkAction/linkAction.tpl" action=$moreItemsLinkAction}
{/if}
<span class="item_count">
{translate key="navigation.items.shownTotal" shown=$shown total=$iterator->getCount()}
</span>
{include file="common/loadingContainer.tpl"}
</div>
{/if}
@@ -0,0 +1,31 @@
{**
* templates/controllers/grid/files/copyedit/manageCopyeditFiles.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Allows users to manage the list of copyedit files, potentially adding more
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#manageCopyeditFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="manageCopyeditFilesForm" action="{url component="grid.files.copyedit.ManageCopyeditFilesGridHandler" op="updateCopyeditFiles" submissionId=$submissionId stageId=$smarty.const.WORKFLOW_STAGE_ID_EDITING}" method="post">
<!-- Current copyedited files -->
<div id="existingFilesContainer">
{csrf}
{fbvFormArea id="manageCopyeditFiles"}
{fbvFormSection}
{capture assign=manageCopyeditFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.copyedit.ManageCopyeditFilesGridHandler" op="fetchGrid" submissionId=$submissionId escape=false}{/capture}
{load_url_in_div id="manageCopyeditFilesGrid" url=$manageCopyeditFilesGridUrl}
{/fbvFormSection}
{fbvFormButtons}
{/fbvFormArea}
</div>
</form>
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/files/filesGridFilter.tpl
*
* Copyright (c) 2016-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for submission file lists.
*}
{assign var="formId" value="submissionFilesListFilter-"|concat:$filterData.gridId:"-"|uniqid}
<script type="text/javascript">
// Attach the form handler to the form.
$('#{$formId}').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
{ldelim}
trackFormChanges: false
{rdelim}
);
</script>
<form class="pkp_form filter" id="{$formId}" action="{url op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="submissionFilesSearchFormArea"|concat:$filterData.gridId}
{fbvFormSection}
{fbvElement type="search" name="search" id="search"|concat:$filterData.gridId value=$filterSelectionData.search size=$fbvStyles.size.MEDIUM inline="true"}
{fbvElement type="select" name="column" id="column"|concat:$filterData.gridId from=$filterData.columns selected=$filterSelectionData.column size=$fbvStyles.size.SMALL translate=false inline="true"}
{/fbvFormSection}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,33 @@
{**
* templates/controllers/grid/files/final/manageFinalDraftFiles.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Allows editor to add more file to the review (that weren't added when the submission was sent to review)
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#manageFinalDraftFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="manageFinalDraftFilesForm" action="{url component="grid.files.final.ManageFinalDraftFilesGridHandler" op="updateFinalDraftFiles" submissionId=$submissionId}" method="post">
<!-- Current final draft files -->
<div id="existingFilesContainer">
{csrf}
{fbvFormArea id="manageFinalDraftFiles"}
{fbvFormSection}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$smarty.const.WORKFLOW_STAGE_ID_EDITING}" />
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.final.ManageFinalDraftFilesGridHandler" op="fetchGrid" submissionId=$submissionId escape=false}{/capture}
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
{/fbvFormSection}
{fbvFormButtons}
{/fbvFormArea}
</div>
</form>
@@ -0,0 +1,39 @@
{**
* templates/controllers/grid/files/proof/manageProofFiles.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Allows editor to add more files to the publication format
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#manageProofFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="manageProofFilesForm" action="{url component="grid.files.proof.ManageProofFilesGridHandler" op="updateProofFiles" submissionId=$submissionId}" method="post">
<!-- Current proof files -->
<p>{translate key="editor.submission.proof.manageProofFilesDescription"}</p>
<div id="existingFilesContainer">
{csrf}
{fbvFormArea id="manageProofFiles"}
{fbvFormSection}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$smarty.const.WORKFLOW_STAGE_ID_PRODUCTION}" />
<input type="hidden" name="representationId" value="{$representationId|escape}" />
{if $publicationId}
<input type="hidden" name="publicationId" value="{$publicationId|escape}">
{/if}
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.proof.ManageProofFilesGridHandler" op="fetchGrid" submissionId=$submissionId publicationId=$publicationId representationId=$representationId escape=false}{/capture}
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
{/fbvFormSection}
{fbvFormButtons}
{/fbvFormArea}
</div>
</form>
@@ -0,0 +1,33 @@
{**
* templates/controllers/grid/files/query/manageQueryNoteFiles.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Allows users to manage the list of files available to a query.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#manageQueryNoteFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="manageQueryNoteFilesForm" action="{url component="grid.files.query.ManageQueryNoteFilesGridHandler" op="updateQueryNoteFiles" params=$actionArgs submissionId=$submissionId queryId=$queryId noteId=$noteId stageId=$smarty.const.WORKFLOW_STAGE_ID_EDITING}" method="post">
<!-- Current query files -->
<p>{translate key="editor.submission.query.manageQueryNoteFilesDescription"}</p>
<div id="existingFilesContainer">
{csrf}
{fbvFormArea id="manageQueryNoteFiles"}
{fbvFormSection}
{capture assign=manageQueryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.ManageQueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs submissionId=$submissionId queryId=$queryId noteId=$noteId escape=false}{/capture}
{load_url_in_div id="manageQueryNoteFilesGrid" url=$manageQueryNoteFilesGridUrl}
{/fbvFormSection}
{fbvFormButtons}
{/fbvFormArea}
</div>
</form>
@@ -0,0 +1,26 @@
{**
* templates/controllers/grid/files/review/manageReviewFiles.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Allows editor to add more file to the review (that weren't added when the submission was sent to review)
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#manageReviewFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="manageReviewFilesForm" action="{url component="grid.files.review.ManageReviewFilesGridHandler" op="updateReviewFiles" submissionId=$submissionId|escape stageId=$stageId|escape reviewRoundId=$reviewRoundId|escape}" method="post">
<!-- Current review files -->
<div id="existingFilesContainer">
{csrf}
<!-- Available submission files -->
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.ManageReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
{fbvFormButtons}
</div>
</form>
@@ -0,0 +1,21 @@
{**
* templates/controllers/grid/files/selectableSubmissionFileListCategoryGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for selectable submission file list category grid.
*}
<script type="text/javascript">
// Attach the form handler to the form.
$('#fileListFilterForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
</script>
<form class="pkp_form filter" id="fileListFilterForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="includeAllStagesArea"}
{fbvFormSection list="true"}
{fbvElement type="checkbox" id="allStages" checked=$filterSelectionData.allStages label="editor.submission.fileList.includeAllStages"}
{/fbvFormSection}
{/fbvFormArea}
</form>
@@ -0,0 +1,57 @@
{**
* templates/controllers/grid/files/submissionDocuments/form/editFileForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Library Files form for editing an existing file
*}
<script type="text/javascript">
// Attach the file upload form handler.
$(function() {ldelim}
$('#uploadForm').pkpHandler(
'$.pkp.controllers.form.AjaxFormHandler'
);
{rdelim});
</script>
<form class="pkp_form" id="uploadForm" action="{url op="updateFile" fileId=$libraryFile->getId()}" method="post">
{csrf}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
{fbvFormArea id="name"}
{fbvFormSection title="common.name" required=true}
{fbvElement type="text" id="libraryFileName" value=$libraryFileName maxlength="255" multilingual=true required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="type"}
{fbvFormSection title="common.type" required=true}
{fbvElement type="select" from=$fileTypes id="fileType" selected=$libraryFile->getType() defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="file"}
{fbvFormSection title="common.file"}
<table id="fileInfo" class="data" width="100%">
<tr valign="top">
<td width="20%" class="label">{translate key="common.fileName"}</td>
<td width="80%" class="value">{$libraryFile->getOriginalFileName()|escape}</a></td>
</tr>
<tr valign="top">
<td class="label">{translate key="common.fileSize"}</td>
<td class="value">{$libraryFile->getNiceFileSize()}</td>
</tr>
<tr valign="top">
<td class="label">{translate key="common.dateUploaded"}</td>
<td class="value">{$libraryFile->getDateUploaded()|date_format:$datetimeFormatShort}</td>
</tr>
</table>
{/fbvFormSection}
{/fbvFormArea}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</form>
@@ -0,0 +1,55 @@
{**
* templates/controllers/grid/files/submissionDocuments/form/newFileForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Library Files form
*}
<script type="text/javascript">
// Attach the file upload form handler.
$(function() {ldelim}
$('#uploadForm').pkpHandler(
'$.pkp.controllers.form.FileUploadFormHandler',
{ldelim}
$uploader: $('#plupload'),
uploaderOptions: {ldelim}
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType submissionId=$submissionId escape=false},
baseUrl: {$baseUrl|json_encode}
{rdelim}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="uploadForm" action="{url op="saveFile"}" method="post">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="libraryFileUploadNotification"}
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
{fbvFormArea id="name"}
{fbvFormSection title="common.name" required=true}
{fbvElement type="text" multilingual="true" id="libraryFileName" value=$libraryFileName maxlength="255" required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="type"}
{fbvFormSection title="common.type" required=true}
{fbvElement type="select" from=$fileTypes id="fileType" selected=$fileType defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="file"}
{fbvFormSection title="common.file" required=true}
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
{/fbvFormSection}
{/fbvFormArea}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</form>
+114
View File
@@ -0,0 +1,114 @@
{**
* templates/controllers/grid/grid.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid HTML markup and construction
*}
{assign var=staticId value="component-"|concat:$grid->getId()}
{assign var=gridId value=$staticId|concat:'-'|uniqid}
{assign var=gridTableId value=$gridId|concat:"-table"}
{assign var=gridActOnId value=$gridTableId}
<script>
$(function() {ldelim}
{foreach from=$gridConstants key=$constant item=$value}
$.pkp.cons.{$constant} = {$value};
{/foreach}
$('#{$gridId|escape:javascript}').pkpHandler(
'{$grid->getJSHandler()|escape:javascript}',
{ldelim}
gridId: {$grid->getId()|json_encode},
{foreach from=$grid->getUrls() key=key item=itemUrl name=gridUrls}
{$key|json_encode}: {$itemUrl|json_encode},
{/foreach}
bodySelector: '#{$gridActOnId|escape:javascript}',
{if $grid->getPublishChangeEvents()}
publishChangeEvents: {$grid->getPublishChangeEvents()|@json_encode},
{/if}
features: {include file='controllers/grid/feature/featuresOptions.tpl' features=$features},
csrfToken: {csrf type="json"}
{rdelim}
);
{rdelim});
</script>
<div id="{$gridId|escape}" class="pkp_controllers_grid{if is_a($grid, 'CategoryGridHandler')} pkp_grid_category{/if}{if !$grid->getTitle()} pkp_grid_no_title{/if}">
{include file="controllers/grid/gridHeader.tpl"}
<table id="{$gridTableId|escape}">
{include file="controllers/grid/columnGroup.tpl" columns=$columns}
<thead>
{** build the column headers **}
<tr>
{foreach name=columns from=$columns item=column}
{* @todo indent columns should be killed at their source *}
{if $column->hasFlag('indent')}
{continue}
{/if}
{if $column->hasFlag('alignment')}
{assign var=alignment value=$column->getFlag('alignment')}
{else}
{assign var=alignment value=\PKP\controllers\grid\GridColumn::COLUMN_ALIGNMENT_LEFT}
{/if}
<th scope="col" style="text-align: {$alignment};">
{$column->getLocalizedTitle()}
{* TODO: Remove this stuff. Actions should not ever appear in the TH of a grid. *}
{if $smarty.foreach.columns.last && $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_LASTCOL)}
<span class="options pkp_linkActions">
{foreach from=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_LASTCOL) item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId=$staticId}
{/foreach}
</span>
{/if}
</th>
{/foreach}
</tr>
</thead>
{if $grid->getIsSubcomponent() && !is_a($grid, 'CategoryGridHandler')}
{* Create two separate tables so that the body part
can be scrolled independently from the header in a
cross-browser compatible way using only CSS. *}
</table>
<div class="scrollable">
<table>
{include file="controllers/grid/columnGroup.tpl" columns=$columns}
{/if}
{foreach from=$gridBodyParts item=bodyPart}
{$bodyPart}
{foreachelse}
<tbody></tbody>
{/foreach}
<tbody class="empty"{if count($gridBodyParts) > 0} style="display: none;"{/if}>
{**
We need the last (=empty) line even if we have rows
so that we can restore it if the user deletes all rows.
**}
<tr>
<td colspan="{$grid->getColumnsCount('indent')}">{translate key=$grid->getEmptyRowText()}</td>
</tr>
</tbody>
</table>
{if $grid->getIsSubcomponent() && !is_a($grid, 'CategoryGridHandler')}
</div>
{/if}
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) || $grid->getFootNote()}
<div class="footer">
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW)}
{include file="controllers/grid/gridActionsBelow.tpl" actions=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) gridId=$staticId}
{/if}
{if $grid->getFootNote()}
<div class="footnote">
{translate key=$grid->getFootNote()}
</div>
{/if}
</div>
{/if}
</div>
@@ -0,0 +1,17 @@
{**
* templates/controllers/grid/gridActionsAbove.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Actions markup for upper grid actions
*}
<ul class="actions">
{foreach from=$actions item=action}
<li>
{include file="linkAction/linkAction.tpl" action=$action contextId=$gridId}
</li>
{/foreach}
</ul>
@@ -0,0 +1,17 @@
{**
* templates/controllers/grid/gridActionsBelow.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid actions in bottom position
*}
<ul class="actions btm">
{foreach from=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) item=action}
<li>
{include file="linkAction/linkAction.tpl" action=$action contextId=$gridId}
</li>
{/foreach}
</ul>
@@ -0,0 +1,16 @@
{**
* templates/controllers/grid/gridBodyPart.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a set of grid rows within a tbody
*}
<tbody>
{foreach from=$rows item=row}
{$row}
{/foreach}
<tr></tr>
</tbody>
@@ -0,0 +1,36 @@
{**
* templates/controllers/grid/gridBodyPartWithCategory.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a set of grid rows with a category row at the beginning
*}
{assign var=categoryId value="component-"|concat:$categoryRow->getGridId():"-category-":$categoryRow->getId()|escape}
<tbody id="{$categoryId|escape}" class="element{$categoryRow->getId()|escape} category_grid_body">
{$renderedCategoryRow}
{if $grid->getIsSubcomponent()}
</tbody></table>
<div class="scrollable"><table>
{include file="controllers/grid/columnGroup.tpl" columns=$grid->getColumns()}
<tbody>
{/if}
{** the regular data rows **}
{foreach from=$rows item=row}
{$row}
{/foreach}
</tbody>
<tbody id="{$categoryId|concat:'-emptyPlaceholder'|escape}" class="empty category_placeholder"{if count($rows) > 0} style="display: none;"{/if}>
{**
We need the last (=empty) line even if we have rows
so that we can restore it if the user deletes all rows.
**}
<tr>
<td colspan="{$grid->getColumnsCount('indent')}">{translate key=$grid->getEmptyCategoryRowText()}</td>
</tr>
</tbody>
{if $grid->getIsSubcomponent()}
</table></div><table>
{include file="controllers/grid/columnGroup.tpl" columns=$grid->getColumns()}
{/if}
@@ -0,0 +1,18 @@
{**
* templates/controllers/grid/gridCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular grid cell (with or without actions)
*}
{if $id}
{assign var=cellId value="cell-"|concat:$id}
{else}
{assign var=cellId value=""}
{/if}
<span {if $cellId}id="{$cellId|escape}" {/if}class="gridCellContainer">
{include file="controllers/grid/gridCellContents.tpl"}
</span>
@@ -0,0 +1,57 @@
{**
* templates/controllers/grid/gridCellContents.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular grid cell's contents
*}
{* Preserve the value in case it's used externally *}
{assign var=_label value=$label}
{* Prepare multilingual content for display *}
{if $column->hasFlag('multilingual')}
{* Multilingual column *}
{if isset($_label.$currentLocale)}
{assign var=_label value=$_label.$currentLocale}
{else}
{assign var=_primaryLocale value=\PKP\facades\Locale::getPrimaryLocale()}
{assign var=_label value=$_label.$_primaryLocale}
{/if}
{/if}
{if $column->hasFlag('format')}
{assign var=_format value=$column->getFlag('format')|lower}
{else}
{assign var=_format value='text'|lower}
{/if}
{* Handle escaping as needed *}
{if $column->hasFlag('anyhtml')}
{* Any HTML is allowed; do not escape anything *}
{elseif $column->hasFlag('html')}
{* Limited HTML is allowed *}
{assign var=_label value=$_label|strip_unsafe_html}
{else}
{* No HTML allowed; escape the label. *}
{assign var=_label value=$_label|escape}
{/if}
{if $_label != ''}
<span class="label{if count($actions) gt 0} before_actions{/if}">
{if $column->hasFlag('maxLength')}
{assign var="maxLength" value=$column->getFlag('maxLength')}
{$_label|truncate:$maxLength}
{else}
{$_label}
{/if}
</span>
{/if}
{if count($actions) gt 0}
{foreach from=$actions item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId=$cellId anyhtml=$column->hasFlag('anyhtml') html=$column->hasFlag('html')}
{/foreach}
{/if}
@@ -0,0 +1,25 @@
{**
* templates/controllers/grid/gridHeader.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Grid header HTML markup
*}
<div class="header">
{if $grid->getTitle()}
<h4>
{$grid->getTitle()|translate}
</h4>
{/if}
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE)}
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE)}
{include file="controllers/grid/gridActionsAbove.tpl" actions=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE) gridId=$staticId}
{/if}
{/if}
</div>
{$gridFilterForm}
@@ -0,0 +1,86 @@
{**
* templates/controllers/grid/gridRow.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* A grid row.
*}
{if !is_null($row->getId())}
{assign var=rowIdPrefix value="component-"|concat:$row->getGridId()}
{if $categoryId|@strlen > 0}
{assign var=rowIdPrefix value=$rowIdPrefix|concat:"-category-":$categoryId|escape}
{/if}
{assign var=rowId value=$rowIdPrefix|concat:"-row-":$row->getId()}
{else}
{assign var=rowId value=""}
{/if}
{assign var="row_class" value="gridRow"}
{if is_a($row, 'GridCategoryRow')}
{assign var="row_class" value=$row_class|cat:' category'}
{if !$row->hasFlag('gridRowStyle')}
{assign var="row_class" value=$row_class|cat:' default_category_style'}
{/if}
{/if}
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
{assign var="row_class" value=$row_class|cat:' has_extras'}
{/if}
<tr {if $rowId}id="{$rowId|escape|replace:" ":"_"}" {/if} class="{$row_class}">
{foreach name=columnLoop from=$columns key=columnId item=column}
{* @todo indent columns should be killed at their source *}
{if $column->hasFlag('indent')}
{continue}
{/if}
{assign var=col_class value=""}
{if $column->hasFlag('firstColumn')}
{assign var="col_class" value=$col_class|cat:'first_column'}
{/if}
{if $column->hasFlag('alignment')}
{assign var="col_class" value=$col_class|cat:' pkp_helpers_text_'}
{assign var="col_class" value=$col_class|cat:$column->getFlag('alignment')}
{/if}
<td{if $col_class} class="{$col_class}"{/if}>
{if $row->hasActions() && $column->hasFlag('firstColumn')}
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
<a href="#" class="show_extras">
<span class="pkp_screen_reader">{translate key="grid.settings"}</span>
</a>
{/if}
{$cells[$smarty.foreach.columnLoop.index]}
{if is_a($row, 'GridCategoryRow') && $column->hasFlag('showTotalItemsNumber')}
<span class="category_items_number">({$grid->getCategoryItemsCount($categoryRow->getData(), $request)})</span>
{/if}
<div class="row_actions">
{if $row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT)}
{foreach from=$row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT) item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId=$rowId|replace:" ":"_"}
{/foreach}
{/if}
</div>
{else}
{$cells[$smarty.foreach.columnLoop.index]}
{if is_a($row, 'GridCategoryRow') && $column->hasFlag('showTotalItemsNumber')}
<span class="category_items_number">({$grid->getCategoryItemsCount($categoryRow->getData(), $request)})</span>
{/if}
{/if}
</td>
{/foreach}
</tr>
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
<tr id="{$rowId|escape|replace:" ":"_"}-control-row" class="row_controls{if is_a($row, 'GridCategoryRow')} category_controls{/if}">
<td colspan="{$grid->getColumnsCount('indent')}">
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
{foreach from=$row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT) item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId=$rowId|replace:" ":"_"}
{/foreach}
{/if}
</td>
</tr>
{/if}
@@ -0,0 +1,10 @@
{**
* templates/controllers/grid/gridRowSelectInput.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display a checkbox that allows users to select a grid row when ticked
*}
<input type="checkbox" id="select-{$elementId|escape}" name="{$selectName|escape}[]" style="height: 15px; width: 15px;" value="{$elementId|escape}" {if $selected}checked="checked"{/if} />
@@ -0,0 +1,35 @@
{**
* controllers/grid/languages/installLanguageForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to install languages.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#installLanguageForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="installLanguageForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.admin.languages.AdminLanguageGridHandler" op="saveInstallLocale"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="installLanguageFormNotification"}
{fbvFormArea id="availableLocalesFormArea" title="admin.languages.availableLocales"}
{fbvFormSection list="true" description="admin.languages.installNewLocalesInstructions"}
{foreach name=locales from=$notInstalledLocales item=locale}
{fbvElement type="checkbox" id="locale-$locale" name="localesToInstall[$locale]" value=$locale label=$allLocales.$locale|escape translate=false}
{foreachelse}
<p>{translate key="admin.languages.noLocalesAvailable"}</p>
{/foreach}
{/fbvFormSection}
{/fbvFormArea}
{if not empty($notInstalledLocales)}
{fbvFormButtons id="installLanguageFormSubmit" submitText="common.save"}
{/if}
</form>
@@ -0,0 +1,22 @@
{**
* templates/controllers/grid/languages/localeNameCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Language grid handler locale name cell.
*}
{if $id}
{assign var=cellId value="cell-"|concat:$id}
{else}
{assign var=cellId value=""}
{/if}
<span {if $cellId}id="{$cellId|escape}" {/if}class="gridCellContainer">
{$label}
</span>
{if $incomplete}
<span class="pkp_form_error">*</span>
{/if}
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/navigationMenus/customNMIType.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Custom Custom NMI Type edit form part
*}
<div id="NMI_TYPE_CUSTOM" class="NMI_TYPE_CUSTOM_EDIT">
{fbvFormSection}
{fbvFormSection title="manager.navigationMenus.form.path" for="path" required="true"}
{fbvElement type="text" id="path" value=$path required="true"}
<p>
{capture assign=exampleUrl}{url|replace:"REPLACEME":"%PATH%" router=\PKP\core\PKPApplication::ROUTE_PAGE page="REPLACEME"}{/capture}
{translate key="manager.navigationMenus.form.viewInstructions" pagesPath=$exampleUrl}
</p>
{/fbvFormSection}
{fbvFormSection label="manager.navigationMenus.form.content" for="content"}
{fbvElement type="textarea" multilingual=true name="content" id="content" value=$content rich=true height=$fbvStyles.height.TALL variables=$allowedVariables}
{/fbvFormSection}
{/fbvFormSection}
{fbvFormSection class="formButtons"}
{fbvElement type="button" class="pkp_button_link" id="previewButton" label="common.preview"}
{/fbvFormSection}
</div>
@@ -0,0 +1,149 @@
{**
* templates/controllers/grid/navigationMenus/form/navigationMenuForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to read/create/edit NavigationMenus.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#navigationMenuForm').pkpHandler('$.pkp.controllers.grid.navigationMenus.form.NavigationMenuFormHandler',
{ldelim}
submenuWarning: {translate|json_encode key="manager.navigationMenus.form.submenuWarning"},
itemTypeConditionalWarnings: {$navigationMenuItemTypeConditionalWarnings},
okButton: {translate|json_encode key="common.ok"},
warningModalTitle: {translate|json_encode key="common.notice"}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="navigationMenuForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenusGridHandler" op="updateNavigationMenu"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="navigationMenuFormNotification"}
{fbvFormArea id="navigationMenuInfo"}
{if $navigationMenuId}
<input type="hidden" name="navigationMenuId" value="{$navigationMenuId|escape}" />
{/if}
{fbvFormSection title="manager.navigationMenus.form.title" for="title" required="true"}
{fbvElement type="text" id="title" value=$title maxlength="255" required="true"}
{/fbvFormSection}
{fbvFormSection title="manager.navigationMenus.form.navigationMenuArea" for="areaName"}
{fbvElement type="select" id="areaName" from=$activeThemeNavigationAreas selected=$navigationMenuArea label="manager.navigationMenus.form.navigationMenuAreaMessage" translate=false}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="navigationMenuItems"}
<div id="pkpNavManagement" class="pkp_nav_management">
<div class="pkp_nav_assigned">
<div class="pkp_nav_management_header">
{translate key="manager.navigationMenus.assignedMenuItems"}
</div>
<ul id="pkpNavAssigned">
{foreach from=$menuTree item="assignment"}
{assign var="itemType" value=$assignment->navigationMenuItem->getType()}
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
{assign var="hasConditionalDisplay" value=true}
{else}
{assign var="hasConditionalDisplay" value=false}
{/if}
<li data-id="{$assignment->getMenuItemId()|escape}" data-type="{$itemType|escape}">
<div class="item">
<div class="item_title">
<span class="fa fa-sort"></span>
{$assignment->navigationMenuItem->getLocalizedTitle()|escape}
</div>
<div class="item_buttons">
{if $hasConditionalDisplay}
<button class="btnConditionalDisplay">
<span class="fa fa-eye-slash"></span>
<span class="-screenReader">
{translate key="manager.navigationMenus.form.conditionalDisplay"}
</span>
</button>
{/if}
</div>
</div>
{if !empty($assignment->children)}
<ul>
{foreach from=$assignment->children item="childAssignment"}
{assign var="itemType" value=$childAssignment->navigationMenuItem->getType()}
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
{assign var="hasConditionalDisplay" value=true}
{else}
{assign var="hasConditionalDisplay" value=false}
{/if}
<li data-id="{$childAssignment->getMenuItemId()|escape}" data-type="{$itemType|escape}">
<div class="item">
<div class="item_title">
<span class="fa fa-sort"></span>
{$childAssignment->navigationMenuItem->getLocalizedTitle()|escape}
</div>
<div class="item_buttons">
{if $hasConditionalDisplay}
<button class="btnConditionalDisplay">
<span class="fa fa-eye-slash"></span>
<span class="-screenReader">
{translate key="manager.navigationMenus.form.conditionalDisplay"}
</span>
</button>
{/if}
</div>
</div>
</li>
{/foreach}
</ul>
{/if}
</li>
{/foreach}
</ul>
</div>
<div class="pkp_nav_unassigned">
<div class="pkp_nav_management_header">
{translate key="manager.navigationMenus.unassignedMenuItems"}
</div>
<ul id="pkpNavUnassigned">
{foreach from=$unassignedItems item="unassignedItem"}
{assign var="itemType" value=$unassignedItem->getType()}
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
{assign var="hasConditionalDisplay" value=true}
{else}
{assign var="hasConditionalDisplay" value=false}
{/if}
<li data-id="{$unassignedItem->getId()|escape}" data-type="{$itemType|escape}">
<div class="item">
<div class="item_title">
<span class="fa fa-sort"></span>
{$unassignedItem->getLocalizedTitle()|escape}
</div>
<div class="item_buttons">
{if $hasConditionalDisplay}
<button class="btnConditionalDisplay">
<span class="fa fa-eye-slash"></span>
<span class="-screenReader">
{translate key="manager.navigationMenus.form.conditionalDisplay"}
</span>
</button>
{/if}
</div>
</div>
</li>
{/foreach}
</ul>
</div>
{foreach from=$menuTree item="assignment"}
<input type="hidden" name="menuTree[{$assignment->getMenuItemId()|escape}][seq]" value="{$assignment->getSequence()|escape}">
{foreach from=$assignment->children item="childAssignment"}
<input type="hidden" name="menuTree[{$childAssignment->getMenuItemId()|escape}][seq]" value="{$childAssignment->getSequence()|escape}">
<input type="hidden" name="menuTree[{$childAssignment->getMenuItemId()|escape}][parentId]" value="{$childAssignment->getParentId()|escape}">
{/foreach}
{/foreach}
</div>
{/fbvFormArea}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons id="navigationMenuFormSubmit" submitText="common.save"}
</form>
@@ -0,0 +1,49 @@
{**
* templates/controllers/grid/navigationMenus/form/navigationMenuItemsForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to read/create/edit navigation menu Items.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#navigationMenuItemsForm').pkpHandler(
'$.pkp.controllers.grid.navigationMenus.form.NavigationMenuItemsFormHandler',
{ldelim}
previewUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_PAGE page="navigationMenu" op="preview"},
itemTypeDescriptions: {$navigationMenuItemTypeDescriptions},
itemTypeConditionalWarnings: {$navigationMenuItemTypeConditionalWarnings}
{rdelim});
{rdelim});
</script>
<form class="pkp_form" id="navigationMenuItemsForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenuItemsGridHandler" op="updateNavigationMenuItem"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="navigationMenuItemFormNotification"}
{fbvFormArea id="navigationMenuItemInfo"}
{if $navigationMenuItemId}
<input type="hidden" name="navigationMenuItemId" value="{$navigationMenuItemId|escape}" />
{/if}
{fbvFormSection title="manager.navigationMenus.form.title" for="title" required="true"}
{fbvElement type="text" multilingual="true" id="title" value=$title maxlength="255" required="true"}
{/fbvFormSection}
{fbvFormSection id="menuItemTypeSection" title="manager.navigationMenus.form.navigationMenuItemType" for="menuItemType"}
{fbvElement type="select" id="menuItemType" required=true from=$navigationMenuItemTypeTitles selected=$menuItemType label="manager.navigationMenus.form.navigationMenuItemTypeMessage" translate=false}
{/fbvFormSection}
{foreach from=$customTemplates key=nmiType item=customTemplate}
{include file=$customTemplate.template}
{/foreach}
{/fbvFormArea}
{fbvFormSection class="formButtons"}
{fbvElement type="submit" class="submitFormButton pkp_helpers_align_left pkp_button_primary" id="saveButton" label="common.save"}
{assign var=buttonId value="submitFormButton"|concat:"-"|uniqid}
{/fbvFormSection}
</form>
@@ -0,0 +1,13 @@
{**
* templates/controllers/grid/navigationMenus/remoteUrlNMIType.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Custom remote Url NMI Type edit form part
*}
{fbvFormSection id="NMI_TYPE_REMOTE_URL" class="NMI_TYPE_CUSTOM_EDIT" title="manager.navigationMenus.form.url" for="remoteUrl" list=true required="true"}
{fbvElement type="text" multilingual=true id="remoteUrl" value=$remoteUrl maxlength="255" required="true"}
{/fbvFormSection}
@@ -0,0 +1,44 @@
{**
* templates/controllers/grid/plugins/uploadPluginForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to upload plugin files.
*}
<script>
$(function() {ldelim}
// Attach the upload form handler.
$('#uploadPluginForm').pkpHandler(
'$.pkp.controllers.form.FileUploadFormHandler',
{ldelim}
$uploader: $('#plupload'),
uploaderOptions: {ldelim}
uploadUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="uploadPluginFile" function=$function escape=false},
baseUrl: {$baseUrl|json_encode}
{rdelim}
{rdelim});
{rdelim});
</script>
<form class="pkp_form" id="uploadPluginForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="saveUploadPlugin" function=$function category=$category plugin=$plugin}" method="post">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="uploadPluginNotification"}
{fbvFormArea id="file"}
{if $function == 'install'}
<p>{translate key="manager.plugins.uploadDescription"}</p>
{elseif $function == 'upgrade'}
<p>{translate key="manager.plugins.upgradeDescription"}</p>
{/if}
{fbvFormSection title="manager.plugins.uploadPluginDir" required=true}
{fbvElement type="hidden" id="temporaryFileId" value=""}
{* The uploader widget *}
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormButtons id="uploadPluginFormSubmit" submitText="common.save"}
</form>
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/plugins/pluginGalleryGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for plugin gallery grid.
*}
<script>
// Attach the form handler to the form.
$('#pluginGallerySearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
{ldelim}
trackFormChanges: false
{rdelim}
);
</script>
<form class="pkp_form filter" id="pluginGallerySearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="userSearchFormArea"}
{fbvFormSection}
{fbvElement type="select" id="category" from=$filterData.categories selected=$filterSelectionData.category translate=false size=$fbvStyles.size.SMALL inline=true}
{fbvElement type="text" id="pluginText" value=$filterSelectionData.pluginText size=$fbvStyles.size.LARGE inline=true}
{/fbvFormSection}
{* Buttons generate their own section *}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/plugins/pluginGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for plugin grid.
*}
<script>
// Attach the form handler to the form.
$('#pluginSearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
{ldelim}
trackFormChanges: false
{rdelim}
);
</script>
<form class="pkp_form filter" id="pluginSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="userSearchFormArea"}
{fbvFormSection}
{fbvElement type="select" id="category" from=$filterData.categories selected=$filterSelectionData.category translate=false size=$fbvStyles.size.SMALL inline=true}
{fbvElement type="text" id="pluginName" value=$filterSelectionData.pluginName size=$fbvStyles.size.LARGE inline=true}
{/fbvFormSection}
{* Buttons generate their own section *}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,88 @@
{**
* templates/controllers/grid/plugins/viewPlugin.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View a plugin gallery plugin's details.
*
* @uses $plugin Plugin The plugin being displayed
* @uses $statusKey string The locale string describing the plugin's install
* status
* @uses $statusClass string A class corresponding to the status
*}
<div class="pkp_plugin_details">
<div class="status {$statusClass|escape}">
<div class="pkp_screen_reader">
{translate key="manager.plugins.pluginGallery.latestCompatible"}
</div>
{if $installAction && ($statusClass == 'older' || $statusClass == 'notinstalled')}
<div class="action_button">
{include file="linkAction/linkAction.tpl" action=$installAction contextId="pluginGallery"}
</div>
{else}
<div class="status_notice">
{translate key=$statusKey}
</div>
{/if}
{if $statusClass != 'incompatible'}
<ul class="certifications">
{foreach from=$plugin->getReleaseCertifications() item=certification}
<li class="certification_{$certification|escape}">
<span class="label">
{translate key="manager.plugins.pluginGallery.certifications.$certification"}
</span>
<span class="description">
{translate key="manager.plugins.pluginGallery.certifications.$certification.description"}
</span>
</li>
{/foreach}
</ul>
<div class="release">
{translate key="manager.plugins.pluginGallery.version" version=$plugin->getVersion()|escape date=$plugin->getDate()|date_format:$dateFormatShort}
</div>
<div class="release_description">
{$plugin->getLocalizedReleaseDescription()|strip_unsafe_html}
</div>
{/if}
</div>
<h4 class="pkp_screen_reader">
{translate key="manager.plugins.pluginGallery.summary"}
</h4>
<div class="maintainer">
<div class="author">
{if $plugin->getContactEmail()}
<a href="mailto:{$plugin->getContactEmail()|escape}">
{$plugin->getContactName()|escape}
</a>
{else}
{$plugin->getContactName()|escape}
{/if}
</div>
<div class="institution">
{$plugin->getContactInstitutionName()|escape}
</div>
</div>
<div class="url">
<a href="{$plugin->getHomepage()|escape}" target="_blank">{$plugin->getHomepage()|escape}</a>
</div>
<div class="description">
{include file="controllers/revealMore.tpl" content=$plugin->getLocalizedDescription()|strip_unsafe_html}
</div>
{if $plugin->getLocalizedInstallationInstructions()}
<div class="installation">
{include file="controllers/revealMore.tpl" content=$plugin->getLocalizedInstallationInstructions()|strip_unsafe_html}
</div>
{/if}
</div>
@@ -0,0 +1,71 @@
{**
* templates/controllers/grid/queries/form/queryForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Query grid form
*
*}
{if !count($allParticipants)}
{translate key="submission.query.noParticipantOptions"}
{else}
<script>
// Attach the handler.
$(function() {ldelim}
$('#queryForm').pkpHandler(
'$.pkp.controllers.grid.queries.QueryFormHandler',
{ldelim}
cancelUrl: {if $isNew}{url|json_encode op="deleteQuery" queryId=$queryId csrfToken=$csrfToken params=$actionArgs escape=false}{else}null{/if},
templateUrl: {url|json_encode router=$smarty.const.ROUTE_COMPONENT component='grid.queries.QueriesGridHandler' op='fetchTemplateBody' stageId=$stageId submissionId=$assocId escape=false},
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="queryForm" method="post" action="{url op="updateQuery" queryId=$queryId params=$actionArgs wasNew=$isNew}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="queryFormNotification"}
{fbvFormSection list=true title="editor.submission.stageParticipants"}
{foreach from=$allParticipants item="participant" key="id"}
{fbvElement type="checkbox" id="users[]" value=$id checked=in_array($id, $assignedParticipants) label=$participant|escape translate=false}
{/foreach}
{/fbvFormSection}
{if count($templates)}
{fbvFormArea id="queryTemplateArea"}
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
{fbvElement type="select" from=$templates translate=false id="template" selected=$template defaultValue="" defaultLabel=""}
{/fbvFormSection}
{/fbvFormArea}
{/if}
{fbvFormArea id="queryContentsArea"}
{fbvFormSection title="common.subject" for="subject" required="true"}
{fbvElement type="text" id="subject" value=$subject required="true"}
{/fbvFormSection}
{fbvFormSection title="stageParticipants.notify.message" for="comment" required="true"}
{fbvElement type="textarea" id="comment" rich=true value=$comment required="true"}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="queryNoteFilesArea"}
{capture assign=queryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.QueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs queryId=$queryId noteId=$noteId escape=false}{/capture}
{load_url_in_div id="queryNoteFilesGrid" url=$queryNoteFilesGridUrl}
{/fbvFormArea}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{if $allowedEditTimeNotice['show']}
<p><span class="sub_label">{translate key="submission.query.allowedEditTime" allowedEditTimeNoticeLimit=$allowedEditTimeNotice['limit']}</span></p>
{/if}
{fbvFormButtons id="addQueryButton"}
</form>
{/if}
@@ -0,0 +1,37 @@
{**
* templates/controllers/grid/queries/queryNoteForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Read a query.
*
*}
<script>
// Attach the handler.
$(function() {ldelim}
$('#noteForm').pkpHandler(
'$.pkp.controllers.form.CancelActionAjaxFormHandler',
{ldelim}
cancelUrl: {url|json_encode op="deleteNote" params=$actionArgs csrfToken=$csrfToken noteId=$noteId escape=false}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="noteForm" action="{url op="insertNote" params=$actionArgs noteId=$noteId escape=false}" method="post">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="queryNoteFormNotification"}
{fbvFormSection title="stageParticipants.notify.message" for="comment" required="true"}
{fbvElement type="textarea" id="comment" rich=true value=$comment required="true"}
{/fbvFormSection}
{fbvFormArea id="queryNoteFilesArea"}
{capture assign=queryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.QueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs noteId=$noteId escape=false}{/capture}
{load_url_in_div id="queryNoteFilesGrid" url=$queryNoteFilesGridUrl}
{/fbvFormArea}
{fbvFormButtons id="addNoteButton"}
</form>
@@ -0,0 +1,13 @@
{**
* templates/controllers/grid/queries/participants.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Show the list of participants.
*
*}
{foreach from=$participants item=user}
<li>{$user->getFullName()|escape} ({$user->getUsername()|escape})</li>
{/foreach}
@@ -0,0 +1,48 @@
{**
* templates/controllers/grid/queries/readQuery.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Read a query.
*
*}
<script>
$(function() {ldelim}
$('#readQueryContainer').pkpHandler(
'$.pkp.controllers.grid.queries.ReadQueryHandler',
{ldelim}
fetchNoteFormUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component=$queryNotesGridHandlerName op="addNote" params=$requestArgs queryId=$query->getId() escape=false},
fetchParticipantsListUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.queries.QueriesGridHandler" op="participants" params=$requestArgs queryId=$query->getId() escape=false}
{rdelim}
);
{rdelim});
</script>
<div id="readQueryContainer" class="pkp_controllers_query">
<h4>
{translate key="editor.submission.stageParticipants"}
{if $editAction}
{include file="linkAction/linkAction.tpl" action=$editAction contextId="editQuery"}
{/if}
</h4>
<ul id="participantsListPlaceholder" class="participants"></ul>
{capture assign=queryNotesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component=$queryNotesGridHandlerName op="fetchGrid" params=$requestArgs queryId=$query->getId() escape=false}{/capture}
{load_url_in_div id="queryNotesGrid" url=$queryNotesGridUrl}
<div class="queryEditButtons">
<div class="openNoteForm add_note">
<a href="#">
{translate key="submission.query.addNote"}
</a>
</div>
<div class="leaveQueryForm leave_query" {if !$showLeaveQueryButton}style="display: none;"{/if}">
{include file="linkAction/linkAction.tpl" action=$leaveQueryLinkAction contextId="leaveQueryForm"}
</div>
<div class="pkp_spinner"></div>
</div>
<div id="newNotePlaceholder"></div>
</div>
@@ -0,0 +1,99 @@
{**
* lib/pkp/templates/controllers/grid/settings/category/form/categoryForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to edit or create a category
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#categoryForm').pkpHandler(
'$.pkp.controllers.form.FileUploadFormHandler',
{ldelim}
publishChangeEvents: ['updateSidebar'],
$uploader: $('#plupload'),
uploaderOptions: {ldelim}
uploadUrl: {url|json_encode op="uploadImage" escape=false},
baseUrl: {$baseUrl|json_encode},
filters: {ldelim}
mime_types : [
{ldelim} title : "Image files", extensions : "jpg,jpeg,png" {rdelim}
]
{rdelim}
{rdelim}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="categoryForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.category.CategoryCategoryGridHandler" op="updateCategory" categoryId=$categoryId}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="categoryFormNotification"}
{fbvFormArea id="categoryDetails"}
<h3>{translate key="grid.category.categoryDetails"}</h3>
{fbvFormSection title="grid.category.name" for="name" required="true"}
{fbvElement type="text" multilingual="true" name="name" value=$name id="name" required="true"}
{/fbvFormSection}
{fbvFormSection title="grid.category.parentCategory" for="context"}
{fbvElement type="select" id="parentId" from=$rootCategories selected=$parentId translate=false disabled=$cannotSelectChild}
{/fbvFormSection}
{fbvFormSection title="grid.category.path" required=true for="path"}
{capture assign="instruct"}
{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path="path"}
{translate key="grid.category.urlWillBe" sampleUrl=$sampleUrl}
{/capture}
{fbvElement type="text" id="path" value=$path maxlength="32" label=$instruct subLabelTranslate=false}
{/fbvFormSection}
{fbvFormSection title="grid.category.description" for="context"}
{fbvElement type="textarea" multilingual="true" id="description" value=$description rich=true}
{/fbvFormSection}
{fbvFormSection label="catalog.sortBy" description="catalog.sortBy.categoryDescription" for="sortOption"}
{fbvElement type="select" id="sortOption" from=$sortOptions selected=$sortOption translate=false}
{/fbvFormSection}
{fbvFormSection title="category.coverImage"}
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
{/fbvFormSection}
{if $image}
{fbvFormSection}
{capture assign="altTitle"}{translate key="submission.currentCoverImage"}{/capture}
<img class="pkp_helpers_container_center" height="{$image.thumbnailHeight}" width="{$image.thumbnailWidth}" src="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="thumbnail" type="category" id=$categoryId}" alt="{$altTitle|escape}" />
{/fbvFormSection}
{/if}
{fbvFormSection list=true title="manager.sections.form.assignEditors"}
<div>{translate key="manager.categories.form.assignEditors.description"}</div>
{foreach from=$assignableUserGroups item="assignableUserGroup"}
{assign var="role" value=$assignableUserGroup.userGroup->getLocalizedName()}
{assign var="userGroupId" value=$assignableUserGroup.userGroup->getId()}
{foreach from=$assignableUserGroup.users item=$username key="id"}
{fbvElement
type="checkbox"
id="subEditors[{$userGroupId}][]"
value=$id
checked=(isset($subeditorUserGroups[$id]) && in_array($userGroupId, $subeditorUserGroups[$id]))
label={translate key="manager.sections.form.assignEditorAs" name=$username|escape role=$role|escape}
translate=false
}
{/foreach}
{/foreach}
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
{/fbvFormArea}
</form>
@@ -0,0 +1,53 @@
{**
* templates/controllers/grid/settings/genre/form/genreForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Genre form under context management.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#genreForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="genreForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.genre.GenreGridHandler" op="updateGenre"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="genreFormNotification"}
{fbvFormArea id="genreInfo"}
{fbvFormSection title="common.name" for="name" required="true"}
{fbvElement type="text" multilingual="true" id="name" value=$name maxlength="80" required="true"}
{/fbvFormSection}
{fbvFormSection list="true" title="manager.setup.genres.label"}
{fbvElement type="checkbox" id="dependent" checked=$dependent label="manager.setup.genres.dependent"}
{fbvElement type="checkbox" id="supplementary" checked=$supplementary label="manager.setup.genres.supplementary"}
{/fbvFormSection}
{fbvFormSection label="manager.setup.genres.metatadata" description="manager.setup.genres.metatadata.description" for="category"}
{fbvElement type="select" id="category" from=$submissionFileCategories selected=$category translate=false}
{/fbvFormSection}
{fbvFormSection list="true" label="manager.setup.genres.submitRequired.label" description="manager.setup.genres.submitRequired.description"}
{fbvElement type="radio" id="required1" name="required" value=1 checked=$required label="manager.setup.genres.submitRequired.yes"}
{fbvElement type="radio" id="required0" name="required" value=0 checked=!$required label="manager.setup.genres.submitRequired.no"}
{/fbvFormSection}
{fbvFormSection label="manager.setup.genres.key" description="manager.setup.genres.key.description" for="key"}
{fbvElement type="text" id="key" value=$key maxlength="30" readonly=$keyReadOnly size=$fbvStyles.size.SMALL}
{/fbvFormSection}
{/fbvFormArea}
{if $gridId}
<input type="hidden" name="gridId" value="{$gridId|escape}" />
{/if}
{if $rowId}
<input type="hidden" name="rowId" value="{$rowId|escape}" />
{/if}
{if $genreId}
<input type="hidden" name="genreId" value="{$genreId|escape}" />
{/if}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons submitText="common.save"}
</form>
@@ -0,0 +1,77 @@
{**
* templates/controllers/grid/settings/library/form/editFileForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Library Files form for editing an existing file
*}
<script type="text/javascript">
// Attach the file upload form handler.
$(function() {ldelim}
$('#uploadForm').pkpHandler(
'$.pkp.controllers.form.FileUploadFormHandler',
{ldelim}
$uploader: $('#plupload'),
uploaderOptions: {ldelim}
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType escape=false},
baseUrl: {$baseUrl|json_encode}
{rdelim}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="uploadForm" action="{url op="updateFile" fileId=$libraryFile->getId()}" method="post">
{csrf}
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
{fbvFormArea id="name"}
{fbvFormSection title="common.name" required=true}
{fbvElement type="text" id="libraryFileName" value=$libraryFileName maxlength="255" multilingual=true required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="type"}
{fbvFormSection title="common.type" required=true}
{fbvElement type="select" from=$fileTypes id="fileType" selected=$libraryFile->getType() defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="file"}
{fbvFormSection title="common.file"}
<table id="fileInfo" class="data" width="100%">
<tr valign="top">
<td width="20%" class="label">{translate key="common.fileName"}</td>
<td width="80%" class="value">{$libraryFile->getOriginalFileName()|escape}</a></td>
</tr>
<tr valign="top">
<td class="label">{translate key="common.fileSize"}</td>
<td class="value">{$libraryFile->getNiceFileSize()}</td>
</tr>
<tr valign="top">
<td class="label">{translate key="common.dateUploaded"}</td>
<td class="value">{$libraryFile->getDateUploaded()|date_format:$datetimeFormatShort}</td>
</tr>
<tr valign="top">
<td class="label">{translate key="common.replaceFile"}</td>
<td class="value">{include file="controllers/fileUploadContainer.tpl" id="plupload"}</td>
</tr>
</table>
{/fbvFormSection}
{/fbvFormArea}
{fbvFormSection list="true" translate=false}
{capture assign=enablePublicAccess}{translate key="common.publicAccess"}{/capture}
{fbvElement type="checkbox" id="publicAccess" value="1" checked=$publicAccess label=$enablePublicAccess translate=false}
<p>
{capture assign=downloadUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="libraryFiles" op="downloadPublic" path=$libraryFile->getId()}{/capture}
{translate key="settings.libraryFiles.public.viewInstructions" downloadUrl=$downloadUrl}
</p>
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</form>
@@ -0,0 +1,61 @@
{**
* templates/controllers/grid/settings/library/form/newFileForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Library Files form
*}
<script type="text/javascript">
// Attach the file upload form handler.
$(function() {ldelim}
$('#uploadForm').pkpHandler(
'$.pkp.controllers.form.FileUploadFormHandler',
{ldelim}
$uploader: $('#plupload'),
uploaderOptions: {ldelim}
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType escape=false},
baseUrl: {$baseUrl|json_encode}
{rdelim}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="uploadForm" action="{url op="saveFile"}" method="post">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="libraryFileUploadNotification"}
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
{fbvFormArea id="name"}
{fbvFormSection title="common.name" required=true}
{fbvElement type="text" multilingual="true" id="libraryFileName" value=$libraryFileName maxlength="255" required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="type"}
{fbvFormSection title="common.type" required=true}
{fbvElement type="select" from=$fileTypes id="fileType" selected=$fileType defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormArea id="file"}
{fbvFormSection title="common.file" required=true}
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormSection list="true" translate=false}
{capture assign=enablePublicAccess}{translate key="common.publicAccess"}{/capture}
{fbvElement type="checkbox" id="publicAccess" value="1" checked=false label=$enablePublicAccess translate=false}
<p>
{capture assign=downloadUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="libraryFiles" op="downloadPublic" path="id"}{/capture}
{translate key="settings.libraryFiles.public.viewInstructions" downloadUrl=$downloadUrl}
</p>
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</form>
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/settings/reviewForms/editReviewForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* The edit/preview a review form tabset.
*}
<script type="text/javascript">
// Attach the JS file tab handler.
$(function() {ldelim}
$('#editReviewFormTabs').pkpHandler(
'$.pkp.controllers.TabHandler',
{ldelim}
{if !$canEdit}disabled: [0, 1],{/if}
selected: {if $preview}2{else}0{/if}
{rdelim}
);
{rdelim});
</script>
<div id="editReviewFormTabs" class="pkp_controllers_tab">
<ul>
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormBasics" reviewFormId=$reviewFormId}">{translate key="manager.reviewForms.edit"}</a></li>
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormElements" reviewFormId=$reviewFormId}">{translate key="manager.reviewFormElements"}</a></li>
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormPreview" reviewFormId=$reviewFormId}">{translate key="manager.reviewForms.preview"}</a></li>
</ul>
</div>
@@ -0,0 +1,65 @@
{**
* templates/controllers/grid/settings/roles/form/userGroupForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form to edit or create a user group
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#userGroupForm').pkpHandler(
'$.pkp.controllers.grid.settings.roles.form.UserGroupFormHandler', {ldelim}
selfRegistrationRoleIds: {$selfRegistrationRoleIds|@json_encode},
recommendOnlyRoleIds: {$recommendOnlyRoleIds|@json_encode},
roleForbiddenStagesJSON: {$roleForbiddenStagesJSON},
notChangeMetadataEditPermissionRoles: {$notChangeMetadataEditPermissionRoles|@json_encode},
stagesSelector: '[id^="assignedStages"]'
{rdelim});
{rdelim});
</script>
<form class="pkp_form" id="userGroupForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.roles.UserGroupGridHandler" op="updateUserGroup"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userGroupFormNotification"}
{if $userGroupId}
<input type="hidden" id="userGroupId" name="userGroupId" value="{$userGroupId|escape}" />
{/if}
{fbvFormArea id="userGroupDetails"}
<h3>{translate key="settings.roles.roleDetails"}</h3>
{fbvFormSection title="settings.roles.from" for="roleId" required="true"}
{fbvElement type="select" name="roleId" from=$roleOptions id="roleId" selected=$roleId disabled=$disableRoleSelect required="true"}
{/fbvFormSection}
{fbvFormSection title="settings.roles.roleName" for="name" required="true"}
{fbvElement type="text" multilingual="true" name="name" value=$name id="name" required="true"}
{/fbvFormSection}
{fbvFormSection title="settings.roles.roleAbbrev" for="abbrev" required="true"}
{fbvElement type="text" multilingual="true" name="abbrev" value=$abbrev id="abbrev" required="true"}
{/fbvFormSection}
{/fbvFormArea}
<div id="userGroupStageContainer" class="full left">
{fbvFormArea id="userGroupRoles"}
{fbvFormSection title="grid.roles.stageAssignment" for="assignedStages[]" list="true"}
{fbvElement type="checkboxgroup" name="assignedStages" id="assignedStages" from=$stages selected=$assignedStages}
{/fbvFormSection}
<label for="stages[]" class="error pkp_form_hidden">{translate key="settings.roles.stageIdRequired"}</label>
{/fbvFormArea}
</div>
<div id="userGroupOptionsContainer" class="full left">
{fbvFormArea id="userGroupOptions"}
{fbvFormSection title="settings.roles.roleOptions" list="true"}
{fbvElement type="checkbox" name="showTitle" id="showTitle" checked=$showTitle label="settings.roles.showTitles"}
{fbvElement type="checkbox" name="permitSelfRegistration" id="permitSelfRegistration" checked=$permitSelfRegistration label="settings.roles.permitSelfRegistration"}
{fbvElement type="checkbox" name="recommendOnly" id="recommendOnly" checked=$recommendOnly label="settings.roles.recommendOnly"}
{fbvElement type="checkbox" name="permitMetadataEdit" id="permitMetadataEdit" checked=$permitMetadataEdit label="settings.roles.permitMetadataEdit"}
{/fbvFormSection}
{/fbvFormArea}
</div>
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</form>
@@ -0,0 +1,24 @@
{**
* templates/controllers/grid/settings/roles/userGroupsGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
*}
<script type="text/javascript">
// Attach the form handler to the form.
$('#userGroupSearchForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
</script>
<form class="pkp_form filter" id="userGroupSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.roles.UserGroupGridHandler" op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="userGroupSearchFormArea"}
{fbvFormSection description="grid.userGroup.filter.listRoles" size=$fbvStyles.size.SMALL inline=true}
{fbvElement type="select" id="selectedStageId" from=$filterData.stageOptions selected=$filterSelectionData.selectedStageId}
{/fbvFormSection}
{fbvFormSection description="grid.userGroup.filter.permissionLevel" size=$fbvStyles.size.SMALL inline=true}
{fbvElement type="select" id="selectedRoleId" from=$filterData.roleOptions selected=$filterSelectionData.selectedRoleId}
{/fbvFormSection}
{/fbvFormArea}
</form>
@@ -0,0 +1,78 @@
{**
* templates/controllers/grid/settings/user/form/userDetailsForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form for creating/editing a user.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#userDetailsForm').pkpHandler('$.pkp.controllers.grid.settings.user.form.UserDetailsFormHandler',
{ldelim}
fetchUsernameSuggestionUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="api.user.UserApiHandler" op="suggestUsername" givenName="GIVEN_NAME_PLACEHOLDER" familyName="FAMILY_NAME_PLACEHOLDER" escape=false},
usernameSuggestionTextAlert: {translate|json_encode key="grid.user.mustProvideName"}
{rdelim}
);
{rdelim});
</script>
{if !$userId}
{assign var="passwordRequired" value="true"}
{/if}{* !$userId *}
<form class="pkp_form" id="userDetailsForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="updateUser"}">
{csrf}
<input type="hidden" id="sitePrimaryLocale" name="sitePrimaryLocale" value="{$sitePrimaryLocale|escape}" />
<div id="userDetailsFormContainer">
<div id="userDetails" class="full left">
{if !$userGroupUpdateOnly}
{if $userId}
<h3>{translate key="grid.user.userDetails"}</h3>
{else}
<h3>{translate key="grid.user.step1"}</h3>
{/if}
{/if}
{if $userId}
<input type="hidden" id="userId" name="userId" value="{$userId|escape}" />
{/if}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userDetailsFormNotification"}
</div>
{if !$userGroupUpdateOnly}
{if $userId}
{assign var="disableSendNotifySection" value=true}
{/if}
{include
file="common/userDetails.tpl"
disableSendNotifySection=$disableSendNotifySection
}
{if $canCurrentUserGossip}
{fbvFormSection label="user.gossip" description="user.gossip.description"}
{fbvElement type="textarea" name="gossip" id="gossip" rich=true value=$gossip}
{/fbvFormSection}
{/if}
{/if}
{if $userGroupUpdateOnly}
{include file="common/userDetailsReadOnly.tpl"}
{/if}
{if $userId}
{fbvFormSection}
{fbvFormSection list=true title="grid.user.userRoles"}
{foreach from=$allUserGroups item="userGroup" key="id"}
{fbvElement type="checkbox" id="userGroupIds[]" value=$id checked=in_array($id, $assignedUserGroups) label=$userGroup|escape translate=false}
{/foreach}
{/fbvFormSection}
{/fbvFormSection}
{/if}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons}
</div>
</form>
@@ -0,0 +1,33 @@
{**
* templates/controllers/grid/settings/user/form/userDisableForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display form to enable/disable a user.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#userDisableForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="userDisableForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="disableUser"}">
{csrf}
<input type="hidden" name="userId" value="{$userId|escape}" />
<input type="hidden" name="enable" value="{$enable|escape}" />
{if $enable}
{fbvFormSection title="grid.user.enableReason" for="disableReason"}
{fbvElement type="textarea" id="disableReason" value=$disableReason size=$fbvStyles.size.LARGE}
{/fbvFormSection}
{else}
{fbvFormSection title="grid.user.disableReason" for="disableReason"}
{fbvElement type="textarea" id="disableReason" value=$disableReason size=$fbvStyles.size.LARGE}
{/fbvFormSection}
{/if}
{fbvFormButtons}
</form>
@@ -0,0 +1,36 @@
{**
* templates/controllers/grid/settings/user/form/userEmailForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display form to send user an email.
*}
<script>
$(function() {ldelim}
// Attach the form handler.
$('#sendEmailForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="sendEmailForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="sendEmail"}" >
{csrf}
<input type="hidden" name="userId" value="{$userId|escape}" />
{fbvFormSection title="email.subject" for="subject" required="true" size=$fbvStyles.size.MEDIUM inline=true}
{fbvElement type="text" id="subject" value=$subject required="true"}
{/fbvFormSection}
{fbvFormSection title="email.to" size=$fbvStyles.size.MEDIUM inline=true}
{fbvElement type="text" id="user" value=$userFullName|concat:" <":$userEmail:">" disabled="true"}
{/fbvFormSection}
{fbvFormSection title="email.body" for="message" required="true"}
{fbvElement type="textarea" id="message" value=$message rich=true required="true"}
{/fbvFormSection}
{fbvFormButtons submitText="common.sendEmail"}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
</form>
@@ -0,0 +1,34 @@
{**
* templates/controllers/grid/settings/user/form/userRoleForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form for managing roles for a newly created user.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#userRoleForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="userRoleForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="updateUserRoles"}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userRoleFormNotification"}
<h3>{translate key="grid.user.step2" userFullName=$userFullName|escape}</h3>
<input type="hidden" id="userId" name="userId" value="{$userId|escape}" />
{fbvFormSection}
{fbvFormSection list=true title="grid.user.userRoles"}
{foreach from=$allUserGroups item="userGroup" key="id"}
{fbvElement type="checkbox" id="userGroupIds[]" value=$id checked=in_array($id, $assignedUserGroups) label=$userGroup|escape translate=false}
{/foreach}
{/fbvFormSection}
{/fbvFormSection}
{fbvFormButtons submitText="common.save"}
</form>
@@ -0,0 +1,46 @@
{**
* templates/controllers/grid/settings/user/userGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Filter template for user grid.
*
* @uses int|null $filterData.oldUserId The user grid is re-used when merging
* users. During the process, an $oldUserId is passed representing the user to
* be merged. This is used to distinguish the grid filter IDs. The $oldUserId
* must be submitted with the client form in order to ensure that the unique
* IDs are used when the grid is refreshed. This ensures the filter form
* binds to the correct grid when the filter is submitted and refreshed.
*}
{assign var=filterId value="userSearchForm"}
{if $filterData.oldUserId}
{assign var=filterId value=$filterId|concat:"-userMerge"}
{/if}
<script type="text/javascript">
// Attach the form handler to the form.
$('#{$filterId}').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
{ldelim}
trackFormChanges: false
{rdelim}
);
</script>
<form class="pkp_form filter" id="{$filterId}" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="fetchGrid"}" method="post">
{csrf}
{if $filterData.oldUserId}
<input type="hidden" name="oldUserId" value="{$filterData.oldUserId|escape}">
{/if}
{fbvFormArea id="userSearchFormArea"}
{fbvFormSection title="common.search" for="search"}
{fbvElement type="search" name="search" id="search" value=$filterSelectionData.search size=$fbvStyles.size.LARGE inline="true"}
{fbvElement type="select" name="userGroup" id="userGroup" from=$filterData.userGroupOptions selected=$filterSelectionData.userGroup size=$fbvStyles.size.SMALL translate=false inline="true"}
{/fbvFormSection}
{fbvFormSection list=true}
{if $filterSelectionData.includeNoRole}{assign var="checked" value="checked"}{/if}
{fbvElement type="checkbox" name="includeNoRole" id="includeNoRole" value="1" checked=$checked label="user.noRoles.selectUsersWithoutRoles" translate="true"}
{/fbvFormSection}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,35 @@
{**
* templates/controllers/grid/tasks/task.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief A single task appearing in the task grid
*
* @uses $notificationMgr NotificationManager
* @uses $notification Notification The notification object
* @uses $context Journal|Press The journal or press which this notification
* comes from.
* @uses $notificationObjectTitle string The title of the object this
* notification is about.
* @uses $message string The message of the notification
* @uses $isMultiContext bool Do we have multiple contexts?
*}
<div class="task{if !$notification->getDateRead()} unread{/if}">
<span class="message">
{$message}
</span>
<div class="details">
{if $isMultiContext}
<span class="acronym">
{$context->getLocalizedAcronym()|escape}
</span>
{/if}
{if $notificationObjectTitle && $notificationObjectTitle !== '—'}
<span class="submission">
{$notificationObjectTitle|escape}
</span>
{/if}
</div>
</div>
@@ -0,0 +1,75 @@
{**
* templates/controllers/grid/users/author/form/authorForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Submission Contributor grid form
* @deprecated 3.4
*
*}
<script>
$(function() {ldelim}
$('#editAuthor').pkpHandler(
'$.pkp.controllers.form.AjaxFormHandler'
);
{rdelim});
</script>
<form class="pkp_form" id="editAuthor" method="post" action="{url op="updateAuthor" authorId=$authorId}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="authorFormNotification"}
{include
file="common/userDetails.tpl"
disableUserNameSection=true
disablePasswordSection=true
disableSendNotifySection=true
disableSalutationSection=true
disableInitialsSection=true
disablePhoneSection=true
disableLocaleSection=true
disableInterestsSection=true
disableMailingSection=true
disableSignatureSection=true
extraContentSectionUnfolded=true
countryRequired=true
}
{fbvFormArea id="submissionSpecific"}
{if $requireAuthorCompetingInterests}
{fbvFormSection title="author.competingInterests"}
{fbvElement id="competingInterests" type="textarea" multilingual=true rich=true label="author.competingInterests.description" value=$competingInterests}
{/fbvFormSection}
{/if}
{fbvFormSection id="userGroupId" title="submission.submit.contributorRole" list=true required=true}
{foreach from=$authorUserGroups item=$userGroup}
{if $userGroupId == $userGroup->getId()}{assign var="checked" value=true}{else}{assign var="checked" value=false}{/if}
{fbvElement type="radio" id="userGroup"|concat:$userGroup->getId() name="userGroupId" value=$userGroup->getId() checked=$checked label=$userGroup->getLocalizedName() translate=false}
{/foreach}
{/fbvFormSection}
{fbvFormSection list="true"}
{fbvElement type="checkbox" label="submission.submit.selectPrincipalContact" id="primaryContact" checked=$primaryContact}
{fbvElement type="checkbox" label="submission.submit.includeInBrowse" id="includeInBrowse" checked=$includeInBrowse}
{$additionalCheckboxes}
{/fbvFormSection}
{/fbvFormArea}
{if $submissionId}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
{/if}
{if $publicationId}
<input type="hidden" name="publicationId" value="{$publicationId|escape}" />
{/if}
{if $gridId}
<input type="hidden" name="gridId" value="{$gridId|escape}" />
{/if}
{if $rowId}
<input type="hidden" name="rowId" value="{$rowId|escape}" />
{/if}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons id="step2Buttons" submitText="common.save"}
</form>
@@ -0,0 +1,15 @@
{**
* templates/controllers/grid/users/author/includeInBrowse.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* User is included in browse lists cell
*
* @deprecated 3.4
*}
{if $includeInBrowse}
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
{/if}
@@ -0,0 +1,15 @@
{**
* templates/controllers/grid/users/author/principalContact.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Principal contact cell
*
* @deprecated 3.4
*}
{if $isPrincipalContact}
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
{/if}
@@ -0,0 +1,27 @@
{**
* templates/controllers/grid/settings/user/userGridFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter template for user grid.
*}
<script type="text/javascript">
// Attach the form handler to the form.
$('#userSearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
{ldelim}
trackFormChanges: false
{rdelim}
);
</script>
<form class="pkp_form filter" id="userSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="userSearchFormArea"}
{fbvFormSection title="common.search" for="search"}
{fbvElement type="search" name="search" id="search" value=$filterSelectionData.search size=$fbvStyles.size.LARGE inline="true"}
{fbvElement type="select" name="userGroup" id="userGroup" from=$filterData.userGroupOptions selected=$filterSelectionData.userGroup size=$fbvStyles.size.SMALL translate=false inline="true"}
{/fbvFormSection}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,60 @@
{**
* templates/controllers/grid/users/reviewer/authorReadReview.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Screen to let an author read an open review.
*
*}
{* Form handler attachment implemented in application-specific versions of this template. *}
<form class="pkp_form" id="readReviewForm" method="post" action="">
{csrf}
{fbvFormSection}
<div id="reviewAssignment-{$reviewAssignment->getId()|escape}">
<h2>{$reviewAssignment->getReviewerFullName()|escape}</h2>
{if $reviewAssignment->getDateCompleted()}
{fbvFormSection}
<div class="pkp_controllers_informationCenter_itemLastEvent">
{translate key="common.completed.date" dateCompleted=$reviewAssignment->getDateCompleted()|date_format:$datetimeFormatShort}
</div>
{/fbvFormSection}
{if $reviewAssignment->getRecommendation()}
{fbvFormSection}
<div class="pkp_controllers_informationCenter_itemLastEvent">
{translate key="submission.recommendation" recommendation=$reviewAssignment->getLocalizedRecommendation()}
</div>
{/fbvFormSection}
{/if}
{if $reviewAssignment->getReviewFormId()}
{include file="reviewer/review/reviewFormResponse.tpl"}
{elseif $comments->getCount()}
<h3>{translate key="editor.review.reviewerComments"}</h3>
{iterate from=comments item=comment}
<h4>{translate key="submission.comments.canShareWithAuthor"}</h4>
{include file="controllers/revealMore.tpl" content=$comment->getComments()|strip_unsafe_html}
{/iterate}
{/if}
{/if}
</div>
{/fbvFormSection}
<div class="pkp_notification" id="noFilesWarning" style="display: none;">
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=noFilesWarningContent notificationStyleClass=notifyWarning notificationTitle="editor.review.noReviewFilesUploaded"|translate notificationContents="editor.review.noReviewFilesUploaded.details"|translate}
</div>
{fbvFormArea id="readReview"}
{fbvFormSection title="reviewer.submission.reviewerFiles"}
{capture assign="reviewAttachmentsGridUrl"}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.attachment.AuthorOpenReviewAttachmentsGridHandler" op="fetchGrid" submissionId=$submission->getId() reviewId=$reviewAssignment->getId() stageId=$reviewAssignment->getStageId() reviewRoundId=$reviewAssignment->getReviewRoundId() escape=false}{/capture}
{load_url_in_div id="readReviewAttachmentsGridContainer" url=$reviewAttachmentsGridUrl}
{/fbvFormSection}
{/fbvFormArea}
</form>
@@ -0,0 +1,30 @@
{**
* templates/controllers/grid/user/reviewer/form/advancedSearchReviewerAssignmentForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Assigns the reviewer (selected from the reviewerSelect grid) to review the submission.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler for second form.
$('#advancedSearchReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
{ldelim}
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
{rdelim}
);
{rdelim});
</script>
{* The form that will create the review assignment. A reviewer ID must be loaded in here via the grid above. *}
<form class="pkp_form" id="advancedSearchReviewerForm" method="post" action="{url op="updateReviewer"}" >
{csrf}
{fbvElement type="hidden" id="reviewerId"}
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
{fbvFormButtons submitText="editor.submission.addReviewer"}
</form>
@@ -0,0 +1,70 @@
{**
* templates/controllers/grid/user/reviewer/form/advancedSearchReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Advanced Search and assignment reviewer form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Handle moving the reviewer ID from the grid to the second form
$('#advancedReviewerSearch').pkpHandler(
'$.pkp.controllers.grid.users.reviewer.AdvancedReviewerSearchHandler',
{ldelim}
lastRoundReviewerIds: {$lastRoundReviewerIds|json_encode},
reviewerMessages: {$reviewerMessages|json_encode}
{rdelim}
);
{rdelim});
</script>
<div id="advancedReviewerSearch" class="pkp_form pkp_form_advancedReviewerSearch">
<div id="searchGridAndButton">
{assign var="uuid" value=""|uniqid|escape}
<div id="select-reviewer-{$uuid}">
<select-reviewer-list-panel
v-bind="components.selectReviewer"
@set="set"
/>
</div>
<script type="text/javascript">
pkp.registry.init('select-reviewer-{$uuid}', 'Container', {$selectReviewerListData|@json_encode});
</script>
{** This button will get the reviewer selected in the grid and insert their ID into the form below **}
{fbvFormSection class="form_buttons"}
{foreach from=$reviewerActions item=action}
{if $action->getId() == 'advancedSearch'}
{continue}
{/if}
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
{/foreach}
{/fbvFormSection}
</div>
<div id="regularReviewerForm" class="pkp_reviewer_form">
{** Display the name of the selected reviewer **}
<div class="selected_reviewer">
<div class="label">
{translate key="editor.submission.selectedReviewer"}
</div>
<div class="value">
<span id="selectedReviewerName" class="name"></span>
<span class="actions">
{foreach from=$reviewerActions item=action}
{if $action->getId() == 'advancedSearch'}
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
{/if}
{/foreach}
</span>
</div>
</div>
{include file="controllers/grid/users/reviewer/form/advancedSearchReviewerAssignmentForm.tpl"}
</div>
</div>
@@ -0,0 +1,76 @@
{**
* templates/controllers/grid/users/reviewer/createReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Create a reviewer and assign to a submission form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#createReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
{ldelim}
fetchUsernameSuggestionUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="api.user.UserApiHandler" op="suggestUsername" givenName="GIVEN_NAME_PLACEHOLDER" familyName="FAMILY_NAME_PLACEHOLDER" escape=false},
usernameSuggestionTextAlert: {translate|json_encode key="grid.user.mustProvideName"},
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="createReviewerForm" method="post" action="{url op="createReviewer"}" >
<input type="hidden" name="sitePrimaryLocale" value="{$sitePrimaryLocale|escape}">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="createReviewerFormNotification"}
<div class="action_links">
{foreach from=$reviewerActions item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
{/foreach}
</div>
<h3>{translate key="editor.review.createReviewer"}</h3>
{if count($userGroups)>1}
{fbvFormSection title="user.group" required="true"}
{fbvElement type="select" name="userGroupId" id="userGroupId" from=$userGroups translate=false label="editor.review.userGroupSelect" required="true"}
{/fbvFormSection}
{elseif count($userGroups)==1}
{foreach from=$userGroups key=userGroupId item=userGroupName}
{fbvElement type="hidden" id="userGroupId" value=$userGroupId}
{/foreach}
{/if}
{fbvFormSection title="common.name"}
{fbvElement type="text" label="user.givenName" multilingual="true" name="givenName" id="givenName" value=$givenName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM required="true"}
{fbvElement type="text" label="user.familyName" multilingual="true" name="familyName" id="familyName" value=$familyName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM}
{/fbvFormSection}
{fbvFormSection title="user.username" required="true"}
{fbvElement type="text" label="user.register.usernameRestriction" id="username" required="true" value=$username size=$fbvStyles.size.MEDIUM inline=true}
{fbvElement type="button" label="common.suggest" id="suggestUsernameButton" inline=true class="default"}
{/fbvFormSection}
{fbvFormSection title="user.email" required="true"}
{fbvElement type="email" id="email" required="true" value=$email maxlength="90" size=$fbvStyles.size.MEDIUM}
{/fbvFormSection}
{fbvFormSection title="manager.reviewerSearch.interests" for="interests"}
{fbvElement type="interests" id="interests" interests=$interests}
{/fbvFormSection}
{fbvFormSection title="user.affiliation"}
{fbvElement type="text" multilingual="true" name="affiliation" id="affiliation" value=$affiliation size=$fbvStyles.size.LARGE}
{/fbvFormSection}
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons submitText="editor.submission.addReviewer"}
</form>
@@ -0,0 +1,29 @@
{**
* templates/controllers/grid/user/reviewer/form/defaultReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* A default reviewer selection form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#defaultReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
{ldelim}
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="defaultReviewerForm" method="post" action="{url op="updateReviewer"}" >
{csrf}
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
{fbvFormButtons submitText="editor.submission.addReviewer"}
</form>
@@ -0,0 +1,58 @@
{**
* templates/controllers/grid/user/reviewer/form/editReviewForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Limit the review files available to a reviewer who has already been
* assigned to a submission.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#editReviewForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.EditReviewFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="editReviewForm" method="post" action="{url op="updateReview"}">
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
{fbvFormSection title="editor.review.importantDates"}
{fbvElement type="text" id="responseDueDate" name="responseDueDate" label="submission.task.responseDueDate" value=$responseDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
{fbvElement type="text" id="reviewDueDate" name="reviewDueDate" label="editor.review.reviewDueDate" value=$reviewDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
{/fbvFormSection}
{fbvFormSection list=true title="editor.submissionReview.reviewType"}
{foreach from=$reviewMethods key=methodId item=methodTranslationKey}
{assign var=elementId value="reviewMethod"|concat:"-"|concat:$methodId}
{if $reviewMethod == $methodId}
{assign var=elementChecked value=true}
{else}
{assign var=elementChecked value=false}
{/if}
{fbvElement type="radio" name="reviewMethod" id=$elementId value=$methodId checked=$elementChecked label=$methodTranslationKey}
{/foreach}
{/fbvFormSection}
{include file="controllers/grid/users/reviewer/form/noFilesWarning.tpl"}
<h3>{translate key="editor.submissionReview.restrictFiles"}</h3>
{capture assign=limitReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.LimitReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId reviewAssignmentId=$reviewAssignmentId escape=false}{/capture}
{load_url_in_div id="limitReviewFilesGrid" url=$limitReviewFilesGridUrl}
{if $reviewForms}
{if count($reviewForms)>0}
{fbvFormSection title="submission.reviewForm"}
{fbvElement type="select" name="reviewFormId" id="reviewFormId" defaultLabel="manager.reviewForms.noneChosen"|translate defaultValue="0" translate=false from=$reviewForms selected=$reviewFormId}
{/fbvFormSection}
{/if}
{/if}
{fbvFormButtons}
</form>
@@ -0,0 +1,34 @@
{**
* templates/controllers/grid/users/reviewer/form/emailReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display form to send user an email.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#emailReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="emailReviewerForm" method="post" action="{url op="sendEmail" params=$requestArgs}" >
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
{fbvFormSection title="email.to" size=$fbvStyles.size.MEDIUM}
{fbvElement type="text" id="user" value=$userFullName disabled="true"}
{/fbvFormSection}
{fbvFormSection title="email.subject" for="subject" required="true"}
{fbvElement type="text" id="subject" value=$subject required="true"}
{/fbvFormSection}
{fbvFormSection title="email.body" for="message" required="true"}
{fbvElement type="textarea" id="message" value=$message rich=true required="true"}
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons submitText="common.sendEmail"}
</form>
@@ -0,0 +1,48 @@
{**
* templates/controllers/grid/user/reviewer/form/enrollExistingReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Enroll existing user and assignment reviewer form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#enrollExistingReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
{ldelim}
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="enrollExistingReviewerForm" method="post" action="{url op="enrollReviewer"}" >
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="enrollExistingReviewerFormNotification"}
<div class="action_links">
{foreach from=$reviewerActions item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId="enrollExistingReviewerForm"}
{/foreach}
</div>
<h3>{translate key="editor.review.enrollReviewer"}</h3>
{fbvFormSection}
{fbvElement type="select" name="userGroupId" id="userGroupId" from=$userGroups translate=false label="editor.review.userGroupSelect" required="true"}
{/fbvFormSection}
{fbvFormSection}
{capture assign=autocompleteUrl}{url op="getUsersNotAssignedAsReviewers" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
{fbvElement type="autocomplete" disableSync="true" required="true" autocompleteUrl=$autocompleteUrl id="userId" label="manager.reviewerSearch.searchByName.short"}
{/fbvFormSection}
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons submitText="editor.submission.addReviewer"}
</form>
@@ -0,0 +1,13 @@
{**
* templates/controllers/grid/user/reviewer/form/noFilesWarning.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Warning indicating that no files were selected.
*
*}
<div class="pkp_notification" id="noFilesWarning" style="display: none;">
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=noFilesWarningContent notificationStyleClass=notifyWarning notificationTitle="editor.submission.noReviewerFilesSelected"|translate notificationContents="editor.submission.noReviewerFilesSelected.details"|translate}
</div>
@@ -0,0 +1,39 @@
{**
* templates/controllers/grid/user/reviewer/form/reinstateReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Enroll existing user and assignment reviewer form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#reinstateReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="reinstateReviewerForm" method="post" action="{url op="updateReinstateReviewer"}" >
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
<input type="hidden" name="reviewerId" value="{$reviewerId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<!-- Message to reviewer textarea -->
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage rich=true}
{/fbvFormSection}
<!-- Skip email checkbox -->
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
{/fbvFormSection}
{fbvFormButtons submitText="editor.review.reinstateReviewer"}
</form>
@@ -0,0 +1,39 @@
{**
* templates/controllers/grid/user/reviewer/form/resendRequestReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Enroll existing user and assignment reviewer form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#resendRequestReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="resendRequestReviewerForm" method="post" action="{url op="updateResendRequestReviewer"}" >
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
<input type="hidden" name="reviewerId" value="{$reviewerId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<!-- Message to reviewer textarea -->
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage rich=true}
{/fbvFormSection}
<!-- Skip email checkbox -->
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
{/fbvFormSection}
{fbvFormButtons submitText="editor.review.resendRequestReviewer"}
</form>
@@ -0,0 +1,43 @@
{**
* templates/controllers/grid/users/reviewer/reviewReminderForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display the form to send a review reminder--Contains a user-editable message field (all other fields are static)
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#sendReminderForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="sendReminderForm" method="post" action="{url op="sendReminder"}" >
{csrf}
{fbvFormArea id="sendReminder"}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
{fbvFormSection title="user.role.reviewer"}
{fbvElement type="text" id="reviewerName" value=$reviewerName disabled="true"}
{/fbvFormSection}
{fbvFormSection title="editor.review.personalMessageToReviewer" for="message"}
{fbvElement type="textarea" id="message" value=$message variables=$emailVariables rich=true}
{/fbvFormSection}
{fbvFormSection title="reviewer.submission.reviewSchedule"}
{fbvElement type="text" id="dateNotified" label="reviewer.submission.reviewRequestDate" value=$reviewAssignment->getDateNotified()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
{if $reviewAssignment->getDateConfirmed()}
{fbvElement type="text" id="dateConfirmed" label="editor.review.dateAccepted" value=$reviewAssignment->getDateConfirmed()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
{else}
{fbvElement type="text" id="responseDue" label="reviewer.submission.responseDueDate" value=$reviewAssignment->getDateResponseDue()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
{/if}
{fbvElement type="text" id="reviewDueDate" label="reviewer.submission.reviewDueDate" value=$reviewDueDate readonly=true inline=true size=$fbvStyles.size.SMALL}
{/fbvFormSection}
{fbvFormButtons submitText="editor.review.sendReminder"}
{/fbvFormArea}
</form>
@@ -0,0 +1,77 @@
{**
* templates/controllers/grid/user/reviewer/form/reviewerFormFooter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* The non-searching part of the add reviewer form
*
*}
<div id="reviewerFormFooter" class="reviewerFormFooterContainer">
<!-- message template choice -->
{if $hasCustomTemplates}
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
{fbvElement type="select" from=$templates translate=false id="template"}
{/fbvFormSection}
{else}
<!-- REVIEW_REQUEST or REVIEW_REQUEST_SUBSEQUENT -->
<input type="hidden" name="template" value="{$templates|array_key_first}"/>
{/if}
<!-- Message to reviewer textarea -->
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage variables=$emailVariables rich=true rows=25}
{/fbvFormSection}
<!-- skip email checkbox -->
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
{/fbvFormSection}
{fbvFormSection title="editor.review.importantDates"}
{fbvElement type="text" id="responseDueDate" name="responseDueDate" label="submission.task.responseDueDate" value=$responseDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
{fbvElement type="text" id="reviewDueDate" name="reviewDueDate" label="editor.review.reviewDueDate" value=$reviewDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
{/fbvFormSection}
{include file="controllers/grid/users/reviewer/form/noFilesWarning.tpl"}
{capture assign="extraContent"}
<!-- Available review files -->
{capture assign=limitReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.LimitReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
{load_url_in_div id="limitReviewFilesGrid" url=$limitReviewFilesGridUrl}
{/capture}
<div id="filesAccordian" class="section">
{include file="controllers/extrasOnDemand.tpl"
id="filesAccordianController"
widgetWrapper="#filesAccordian"
moreDetailsText="editor.submissionReview.restrictFiles"
lessDetailsText="editor.submissionReview.restrictFiles.hide"
extraContent=$extraContent
}
</div>
{fbvFormSection list=true title="editor.submissionReview.reviewType"}
{foreach from=$reviewMethods key=methodId item=methodTranslationKey}
{assign var=elementId value="reviewMethod"|concat:"-"|concat:$methodId}
{if $reviewMethod == $methodId}
{assign var=elementChecked value=true}
{else}
{assign var=elementChecked value=false}
{/if}
{fbvElement type="radio" name="reviewMethod" id=$elementId value=$methodId checked=$elementChecked label=$methodTranslationKey}
{/foreach}
{/fbvFormSection}
{if count($reviewForms)>0}
{fbvFormSection title="submission.reviewForm"}
{fbvElement type="select" name="reviewFormId" id="reviewFormId" defaultLabel="manager.reviewForms.noneChosen"|translate defaultValue="0" translate=false from=$reviewForms selected=$reviewFormId}
{/fbvFormSection}
{/if}
<!-- All of the hidden inputs -->
<input type="hidden" name="selectionType" value="{$selectionType|escape}" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
</div>
@@ -0,0 +1,24 @@
{**
* templates/controllers/grid/users/reviewer/form/reviewerGossipForm.tpl
*
* Copyright (c) 2013-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display form to gossip about a user.
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#reviewerGossipForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="reviewerGossipForm" method="post" action="{url op="gossip" params=$requestArgs}" >
{csrf}
{fbvFormSection}
{fbvElement type="textarea" name="gossip" id="gossip" label="user.gossip.description" rich=true value=$gossip}
{/fbvFormSection}
{fbvFormButtons}
</form>
@@ -0,0 +1,40 @@
{**
* templates/controllers/grid/users/reviewer/thankReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display the form to send a thank you -- Contains a user-editable message field.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#sendThankYouForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="sendThankYouForm" method="post" action="{url op="thankReviewer"}" >
{csrf}
{fbvFormArea id="sendReminder"}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
{fbvFormSection title="user.role.reviewer"}
{fbvElement type="text" id="reviewerName" value=$reviewerName disabled="true"}
{/fbvFormSection}
{fbvFormSection title="editor.review.personalMessageToReviewer" for="message"}
{fbvElement type="textarea" id="message" value=$message rich=true}
{/fbvFormSection}
<!-- skip email checkbox -->
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
{/fbvFormSection}
{fbvFormButtons submitText="editor.review.thankReviewer"}
{/fbvFormArea}
</form>
@@ -0,0 +1,42 @@
{**
* templates/controllers/grid/user/reviewer/form/unassignReviewerForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Enroll existing user and assignment reviewer form.
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#unassignReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="unassignReviewerForm" method="post" action="{url op="updateUnassignReviewer"}" >
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
<input type="hidden" name="reviewerId" value="{$reviewerId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<!-- Message to reviewer textarea -->
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage rich=true}
{/fbvFormSection}
<!-- Skip email checkbox -->
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
{/fbvFormSection}
{if $dateConfirmed}
{fbvFormButtons submitText="editor.review.cancelReviewer"}
{else}
{fbvFormButtons submitText="editor.review.unassignReviewer"}
{/if}
</form>
@@ -0,0 +1,104 @@
{**
* templates/controllers/grid/users/reviewer/readReview.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Screen to let user read a review.
*
*}
{* Form handler attachment implemented in application-specific versions of this template. *}
<form class="pkp_form" id="readReviewForm" method="post" action="{url op="reviewRead"}">
{csrf}
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignment->getId()|escape}" />
<input type="hidden" name="submissionId" value="{$reviewAssignment->getSubmissionId()|escape}" />
<input type="hidden" name="stageId" value="{$reviewAssignment->getStageId()|escape}" />
{fbvFormSection}
<div id="reviewAssignment-{$reviewAssignment->getId()|escape}">
<h2>{$reviewAssignment->getReviewerFullName()|escape}</h2>
{fbvFormSection class="description"}
{translate key="editor.review.readConfirmation"}
{/fbvFormSection}
{if $reviewAssignment->getDateCompleted()}
{if $reviewAssignment->getCompetingInterests()}
<h3>{translate key="reviewer.submission.competingInterests"}</h3>
<div class="review_competing_interests">
{$reviewAssignment->getCompetingInterests()|nl2br|strip_unsafe_html}
</div>
{/if}
{fbvFormSection}
<div class="pkp_controllers_informationCenter_itemLastEvent">
{translate key="common.completed.date" dateCompleted=$reviewAssignment->getDateCompleted()|date_format:$datetimeFormatShort}
</div>
{/fbvFormSection}
{if $reviewAssignment->getRecommendation()}
{fbvFormSection}
<div class="pkp_controllers_informationCenter_itemLastEvent">
{translate key="submission.recommendation" recommendation=$reviewAssignment->getLocalizedRecommendation()}
</div>
{/fbvFormSection}
{/if}
{if $reviewAssignment->getReviewFormId()}
{include file="reviewer/review/reviewFormResponse.tpl"}
{elseif $comments->getCount() || $commentsPrivate->getCount()}
<h3>{translate key="editor.review.reviewerComments"}</h3>
{iterate from=comments item=comment}
<h4>{translate key="submission.comments.canShareWithAuthor"}</h4>
{include file="controllers/revealMore.tpl" content=$comment->getComments()|strip_unsafe_html}
{/iterate}
{iterate from=commentsPrivate item=comment}
<h4>{translate key="submission.comments.cannotShareWithAuthor"}</h4>
{include file="controllers/revealMore.tpl" content=$comment->getComments()|strip_unsafe_html}
{/iterate}
{/if}
{else}
{if $reviewAssignment->getDateCompleted()}
<span class="pkp_controllers_informationCenter_itemLastEvent">{translate key="common.completed.date" dateCompleted=$reviewAssignment->getDateCompleted()|date_format:$datetimeFormatShort}</span>
{elseif $reviewAssignment->getDateConfirmed()}
<span class="pkp_controllers_informationCenter_itemLastEvent">{translate key="common.confirmed.date" dateConfirmed=$reviewAssignment->getDateConfirmed()|date_format:$datetimeFormatShort}</span>
{elseif $reviewAssignment->getDateReminded()}
<span class="pkp_controllers_informationCenter_itemLastEvent">{translate key="common.reminded.date" dateReminded=$reviewAssignment->getDateReminded()|date_format:$datetimeFormatShort}</span>
{elseif $reviewAssignment->getDateNotified()}
<span class="pkp_controllers_informationCenter_itemLastEvent">{translate key="common.notified.date" dateNotified=$reviewAssignment->getDateNotified()|date_format:$datetimeFormatShort}</span>
{elseif $reviewAssignment->getDateAssigned()}
<span class="pkp_controllers_informationCenter_itemLastEvent">{translate key="common.assigned.date" dateAssigned=$reviewAssignment->getDateAssigned()|date_format:$datetimeFormatShort}</span>
{/if}
{/if}
</div>
{/fbvFormSection}
<div class="pkp_notification" id="noFilesWarning" style="display: none;">
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=noFilesWarningContent notificationStyleClass=notifyWarning notificationTitle="editor.review.noReviewFilesUploaded"|translate notificationContents="editor.review.noReviewFilesUploaded.details"|translate}
</div>
{fbvFormArea id="readReview"}
{fbvFormSection title="reviewer.submission.reviewerFiles"}
{capture assign=reviewAttachmentsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.attachment.EditorReviewAttachmentsGridHandler" op="fetchGrid" submissionId=$submission->getId() reviewId=$reviewAssignment->getId() stageId=$reviewAssignment->getStageId() escape=false}{/capture}
{load_url_in_div id="readReviewAttachmentsGridContainer" url=$reviewAttachmentsGridUrl}
{/fbvFormSection}
{$reviewerRecommendations}
{fbvFormSection label="editor.review.rateReviewer" description="editor.review.rateReviewer.description"}
{foreach from=$reviewerRatingOptions item="stars" key="value"}
<label class="pkp_star_selection">
<input type="radio" name="quality" value="{$value|escape}"{if $value == $reviewAssignment->getQuality()} checked{/if}>
{$stars}
</label>
{/foreach}
{/fbvFormSection}
{fbvFormButtons id="closeButton" hideCancel=false submitText="common.confirm"}
{/fbvFormArea}
</form>
@@ -0,0 +1,92 @@
{**
* templates/controllers/grid/users/stageParticipant/addParticipantForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Form that holds the stage participants list
*
*}
{* Help link *}
{help file="editorial-workflow" section="participants" class="pkp_help_modal"}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#addParticipantForm').pkpHandler('$.pkp.controllers.grid.users.stageParticipant.form.StageParticipantNotifyHandler',
{ldelim}
possibleRecommendOnlyUserGroupIds: {$possibleRecommendOnlyUserGroupIds|@json_encode},
recommendOnlyUserGroupIds: {$recommendOnlyUserGroupIds|@json_encode},
anonymousReviewerIds: {$anonymousReviewerIds|@json_encode},
anonymousReviewerWarning: {$anonymousReviewerWarning|@json_encode},
anonymousReviewerWarningOk: {$anonymousReviewerWarningOk|@json_encode},
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.stageParticipant.StageParticipantGridHandler' op='fetchTemplateBody' stageId=$stageId submissionId=$submissionId escape=false},
notChangeMetadataEditPermissionRoles: {$notPossibleEditSubmissionMetadataPermissionChange|@json_encode},
permitMetadataEditUserGroupIds: {$permitMetadataEditUserGroupIds|@json_encode}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="addParticipantForm" action="{url op="saveParticipant"}" method="post">
{csrf}
<div class="pkp_helpers_clear"></div>
{fbvFormArea id="addParticipant"}
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
<input type="hidden" name="stageId" value="{$stageId|escape}" />
<input type="hidden" name="userGroupId" value="{$userGroupId|escape}" />
<input type="hidden" name="userIdSelected" value="{$userIdSelected|escape}" />
<input type="hidden" name="assignmentId" value="{$assignmentId|default:""|escape}" />
{if $assignmentId}
<input type="hidden" name="userId" value="{$userIdSelected|escape}" />
{fbvFormSection title="stageParticipants.selectedUser"}
<b>{$currentUserName|escape}</b> ({$currentUserGroup|escape})
{/fbvFormSection}
{if $isChangeRecommendOnlyAllowed}
{fbvFormSection title="stageParticipants.options" list="true" class="recommendOnlyWrapperNoJavascript"}
{fbvElement type="checkbox" name="recommendOnly" id="recommendOnly" label="stageParticipants.recommendOnly" checked=$currentAssignmentRecommendOnly}
{/fbvFormSection}
{/if}
{if $isChangePermitMetadataAllowed}
{fbvFormSection title="stageParticipants.submissionEditMetadataOptions" list="true" class="submissionEditMetadataPermitNoJavascript"}
{fbvElement type="checkbox" name="canChangeMetadata" id="canChangeMetadata" label="stageParticipants.canChangeMetadata" checked=$currentAssignmentPermitMetadataEdit}
{/fbvFormSection}
{/if}
{if !$isChangePermitMetadataAllowed && !$isChangeRecommendOnlyAllowed}
{translate key="stageParticipants.noOptionsToHandle"}
{/if}
{else}
{capture assign=userSelectGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.users.userSelect.UserSelectGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId escape=false}{/capture}
{load_url_in_div id='userSelectGridContainer' url=$userSelectGridUrl}
{fbvFormSection title="stageParticipants.options" list="true" class="recommendOnlyWrapper"}
{fbvElement type="checkbox" name="recommendOnly" id="recommendOnly" label="stageParticipants.recommendOnly"}
{/fbvFormSection}
{fbvFormSection title="stageParticipants.submissionEditMetadataOptions" list="true" class="submissionEditMetadataPermit"}
{fbvElement type="checkbox" name="canChangeMetadata" id="canChangeMetadata" label="stageParticipants.canChangeMetadata"}
{/fbvFormSection}
{/if}
{/fbvFormArea}
{if !isset($assignmentId)}
{fbvFormArea id="notifyFormArea"}
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
{fbvElement type="select" from=$templates translate=false id="template" defaultValue="" defaultLabel=""}
{/fbvFormSection}
{fbvFormSection title="stageParticipants.notify.message" for="message"}
{fbvElement type="textarea" id="message" rich=true}
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{/fbvFormArea}
{/if}
{fbvFormButtons}
</form>
@@ -0,0 +1,43 @@
{**
* templates/controllers/grid/users/stageParticipant/form/notify.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display a form to notify other users about this file.
*}
<script type="text/javascript">
// Attach the notification handler.
$(function() {ldelim}
$('#notifyForm').pkpHandler(
'$.pkp.controllers.grid.users.stageParticipant.form.StageParticipantNotifyHandler',
{ldelim}
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.stageParticipant.StageParticipantGridHandler' op='fetchTemplateBody' stageId=$stageId submissionId=$submissionId escape=false}
{rdelim}
);
{rdelim});
</script>
<div id="informationCenterNotifyTab">
<form class="pkp_form" id="notifyForm" action="{url op="sendNotification" stageId=$stageId submissionId=$submissionId escape=false}" method="post">
{csrf}
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="notifyFormNotification"}
{fbvFormArea id="notifyFormArea"}
<input type="hidden" name="userId" value="{$userId|escape}"/>
{fbvFormSection title="stageParticipants.notify.startDiscussion"}
<p>{translate key="stageParticipants.notify.startDiscussion.description" userFullName=$userFullName|escape}</p>
{/fbvFormSection}
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
{fbvElement type="select" from=$templates translate=false id="template" defaultValue="" defaultLabel=""}
{/fbvFormSection}
{fbvFormSection title="stageParticipants.notify.message" for="message" required="true"}
{fbvElement type="textarea" id="message" rich=true required="true"}
{/fbvFormSection}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
{fbvFormButtons id="notifyButton" hideCancel=true submitText="submission.stageParticipants.notify"}
{/fbvFormArea}
</form>
</div>
@@ -0,0 +1,28 @@
{**
* templates/controllers/grid/users/userSelect/searchUserFilter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Displays the form to filter results in the userSelect grid.
*
*}
{assign var="formId" value="searchUserFilter-"|concat:$filterData.gridId}
<script type="text/javascript">
// Attach the form handler to the form.
$('#{$formId}').pkpHandler('$.pkp.controllers.grid.users.stageParticipant.form.AddParticipantFormHandler');
</script>
<form class="pkp_form filter" id="{$formId}" action="{url op="fetchGrid"}" method="post">
{csrf}
{fbvFormArea id="userSearchFormArea"|concat:$filterData.gridId}
<input type="hidden" name="submissionId" value="{$filterData.submissionId|escape}" />
<input type="hidden" name="stageId" value="{$filterData.stageId|escape}" />
{fbvFormSection}
{fbvElement type="select" name="filterUserGroupId" id="filterUserGroupId"|concat:$filterData.gridId from=$filterData.userGroupOptions selected=$filterSelectionData.filterUserGroupId size=$fbvStyles.size.SMALL translate=false inline="true"}
{fbvElement type="text" name="name" id="name"|concat:$filterData.gridId value=$filterSelectionData.name label="manager.userSearch.searchByName" size=$fbvStyles.size.LARGE inline="true"}
{/fbvFormSection}
{* Buttons generate their own section *}
{fbvFormButtons hideCancel=true submitText="common.search"}
{/fbvFormArea}
</form>
@@ -0,0 +1,11 @@
{**
* templates/controllers/grid/users/userSelect/userSelectRadioButton.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display a radio button for selecting one user from the grid
*}
<input type="radio" id="user_{$rowId}" name="userId" class="advancedUserSelect" {if $userId==$rowId}checked="checked" {/if}value="{$rowId}" />
@@ -0,0 +1,30 @@
{**
* templates/controllers/informationCenter/informationCenter.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display information center's main modal.
*}
{assign var="rootId" value="informationCenter-"|uniqid|escape}
<script type="text/javascript">
// Attach the Information Center handler.
$(function() {ldelim}
$('#{$rootId}').pkpHandler(
'$.pkp.controllers.TabHandler', {ldelim}
selected: {$selectedTabIndex|escape:"javascript"}
{rdelim}
);
{rdelim});
</script>
<div id="{$rootId}" class="pkp_controllers_informationCenter pkp_controllers_tab">
<ul>
{if !$removeHistoryTab}
<li><a href="{url op="viewHistory" params=$linkParams}">{translate key="submission.informationCenter.history"}</a></li>
{/if}
<li><a href="{url op="viewNotes" params=$linkParams}">{translate key="submission.informationCenter.notes"}</a></li>
</ul>
</div>
@@ -0,0 +1,31 @@
{**
* templates/controllers/informationCenter/newNoteForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display submission file notes/note form in information center.
*}
<script>
// Attach the Notes handler.
$(function() {ldelim}
$('#newNoteForm').pkpHandler(
'$.pkp.controllers.form.AjaxFormHandler',
{ldelim}
baseUrl: {$baseUrl|json_encode}
{rdelim}
);
{rdelim});
</script>
<form class="pkp_form" id="newNoteForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="saveNote" params=$linkParams}" method="post">
<div id="newNoteContainer">
{csrf}
{fbvFormSection title="informationCenter.addNote" for="newNote"}
{fbvElement type="textarea" id="newNote"}
{/fbvFormSection}
{fbvFormButtons hideCancel=true submitText=$submitNoteText}
</div>
</form>
@@ -0,0 +1,53 @@
{**
* templates/controllers/informationCenter/note.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display a single information center note.
*
*}
{* These variables are both "safe" to be used unescaped. *}
{assign var="noteId" value=$note->getId()}
{assign var="formId" value="deleteNoteForm-$noteId"}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#{$formId}').pkpHandler('$.pkp.controllers.form.AjaxFormHandler', {ldelim}
baseUrl: {$baseUrl|json_encode}
{rdelim});
{rdelim});
</script>
<div id="note-{$noteId}" class="note">
<div class="details">
<span class="user">
{assign var=noteUser value=$note->getUser()}
{$noteUser->getFullName()|escape}
</span>
<span class="date">
{$note->getDateCreated()|date_format:$datetimeFormatShort}
</span>
{if ($notesDeletable && array_intersect(array(\PKP\security\Role::ROLE_ID_MANAGER, \PKP\security\Role::ROLE_ID_SUB_EDITOR), (array)$userRoles))}
<div class="actions">
{if $notesDeletable && array_intersect(array(\PKP\security\Role::ROLE_ID_MANAGER, \PKP\security\Role::ROLE_ID_SUB_EDITOR), (array)$userRoles)}
<form class="pkp_form" id="{$formId}" action="{url op="deleteNote" noteId=$noteId params=$linkParams}">
{csrf}
{assign var=deleteNoteButtonId value="deleteNote-$noteId"}
{include file="linkAction/buttonConfirmationLinkAction.tpl" titleIcon="modal_delete" buttonSelector="#$deleteNoteButtonId" dialogText="informationCenter.deleteConfirm"}
<button type="submit" id="{$deleteNoteButtonId}" class="pkp_button pkp_button_offset">{translate key='common.delete'}</button>
</form>
{/if}
</div>
{/if}
</div>
<div class="message">
{if $noteFileDownloadLink}
{include file="linkAction/linkAction.tpl" action=$noteFileDownloadLink contextId=$note->getId()}
{/if}
{include file="controllers/revealMore.tpl" content=$note->getContents()|strip_unsafe_html}
</div>
</div>
@@ -0,0 +1,35 @@
{**
* templates/controllers/informationCenter/notes.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display submission file notes/note form in information center.
*
* @uses string {$notesList} Compiled template displaying notes
* @uses string {$pastNotesList} Compiled template displaying past notes
*}
<script type="text/javascript">
// Attach the Notes handler.
$(function() {ldelim}
$('#informationCenterNotes').pkpHandler(
'$.pkp.controllers.informationCenter.NotesHandler' );
{rdelim});
</script>
<div id="informationCenterNotes">
{$notesList}
{if $showEarlierEntries}
{include file="controllers/extrasOnDemand.tpl"
id="showPastNotesLink"
moreDetailsText="informationCenter.pastNotes"
lessDetailsText="informationCenter.pastNotes"
extraContent=$pastNotesList
}
{/if}
{include file=$newNoteFormTemplate}
</div>
@@ -0,0 +1,19 @@
{**
* templates/controllers/informationCenter/notesList.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Display submission file note list in information center.
*}
<div id="{$notesListId}" class="pkp_notes_list">
{foreach from=$notes item=$note}
{assign var=noteId value=$note->getId()}
{include file="controllers/informationCenter/note.tpl"}
{/foreach}
{if $notes->isEmpty()}
<p class="no_notes">{translate key="informationCenter.noNotes"}</p>
{/if}
</div>
@@ -0,0 +1,14 @@
{**
* templates/controllers/informationCenter/submissionHistory.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Information Center submission history tab.
*}
{help file="editorial-workflow" section="editorial-history" class="pkp_help_tab"}
{capture assign=submissionHistoryGridUrl}{url params=$gridParameters router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.eventLog.SubmissionEventLogGridHandler" op="fetchGrid" escape=false}{/capture}
{load_url_in_div id="submissionHistoryGridContainer" url=$submissionHistoryGridUrl}
@@ -0,0 +1,40 @@
{**
* templates/controllers/listbuilder/listbuilder.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Displays a Listbuilder object
*}
{assign var=staticId value="component-"|concat:$grid->getId()}
{assign var=gridId value=$staticId|concat:'-'|uniqid}
{assign var=gridTableId value=$gridId|concat:"-table"}
{assign var=gridActOnId value=$gridTableId|concat:">tbody:first"}
<script>
$(function() {ldelim}
$('#{$gridId|escape}').pkpHandler(
'$.pkp.controllers.listbuilder.ListbuilderHandler',
{ldelim}
{include file="controllers/listbuilder/listbuilderOptions.tpl"}
{rdelim}
);
});
</script>
<div id="{$gridId|escape}" class="pkp_controllers_grid pkp_controllers_listbuilder formWidget">
{* Use this disabled input to store LB deletions. See ListbuilderHandler.js *}
<input disabled="disabled" type="hidden" class="deletions" />
<div class="wrapper">
{include file="controllers/grid/gridHeader.tpl"}
{include file="controllers/listbuilder/listbuilderTable.tpl"}
{if $hasOrderLink}
{include file="controllers/grid/gridOrderFinishControls.tpl" gridId=$staticId}
{/if}
</div>
</div>
@@ -0,0 +1,48 @@
{**
* templates/controllers/grid/listbuilderGridCell.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a regular listbuilder grid cell (with or without actions)
*}
{if $id}
{assign var=cellId value="cell-"|concat:$id}
{else}
{assign var=cellId value=""}
{/if}
<span {if $cellId}id="{$cellId|escape}" {/if}class="pkp_linkActions gridCellContainer">
<div class="gridCellDisplay">
{if $column->getFlag('sourceType') === \PKP\controllers\listbuilder\ListbuilderHandler::LISTBUILDER_SOURCE_TYPE_SELECT}
{**
* Include a hidden element containing the current key.
* Used e.g. to match the currently selected value.
*}
<input type="hidden" value="{$labelKey|escape}" />
{/if}
{* Display the current value *}
{include file="controllers/grid/gridCellContents.tpl"}
</div>
<div class="gridCellEdit">
{if $column->getFlag('sourceType') === \PKP\controllers\listbuilder\ListbuilderHandler::LISTBUILDER_SOURCE_TYPE_TEXT}
{if $column->hasFlag('multilingual')}{* Multilingual *}
{assign var="FBV_id" value="newRowId"}
{assign var="FBV_uniqId" value=""|uniqid}
{assign var="FBV_name" value="newRowId["|concat:$column->getId()|escape|concat:"]"}
{include file="form/textInput.tpl" formLocale=$primaryLocale FBV_id=$FBV_id FBV_name=$FBV_name FBV_value=$label FBV_tabIndex=$column->getFlag('tabIndex') FBV_multilingual=true formLocales=$formLocales}
{else}{* Not multilingual *}
<input type="text" name="newRowId[{$column->getId()|escape}]" class="textField" {if $column->getFlag('tabIndex')}tabindex="{$column->getFlag('tabIndex')}"{/if} value="{$label|escape}" />
{/if}
{elseif $column->getFlag('sourceType') == \PKP\controllers\listbuilder\ListbuilderHandler::LISTBUILDER_SOURCE_TYPE_SELECT}
<select name="newRowId[{$column->getId()|escape}]" class="selectMenu">
{* Populated by JavaScript in ListbuilderHandler.js *}
<option value="{$labelKey|escape}">{translate key="common.loading"}</option>
</select>
{/if}
</div>
</span>
@@ -0,0 +1,55 @@
{**
* templates/controllers/listbuilderGridRow.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* a listbuilder grid row
*}
{if $row->getId()}
{assign var=rowId value="component-"|concat:$row->getGridId():"-row-":$row->getId()}
{else}
{assign var=rowId value="component-"|concat:$row->getGridId():"-row-tempId-"|uniqid}
{/if}
<tr {if $rowId}id="{$rowId|escape}" {/if}class="{if $rowId}element{$row->getId()|escape} {/if}gridRow">
{capture assign="listbuilderRowActions"}
<div class="row_actions">
{foreach from=$row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT) item=action}
{include file="linkAction/linkAction.tpl" action=$action contextId=$rowId}
{/foreach}
</div>
{/capture}
{foreach from=$cells item=cell name=listbuilderCells}
{if $smarty.foreach.listbuilderCells.first}
<td class="first_column">
{if $row->getId()}
<input type="hidden" name="rowId" value="{$row->getId()|escape}" />
{/if}
{if !$row->getId() || $row->getIsModified()}
<input type="hidden" disabled="disabled" class="isModified" value="1" />
{else}
<input type="hidden" disabled="disabled" class="isModified" value="0" />
{/if}
<div class="row_container">
<div class="gridCell row_file">{$cell}</div>
</div>
{if $smarty.foreach.listbuilderCells.last}
{$listbuilderRowActions}
{/if}
</td>
{else}
{if $column->hasFlag('alignment')}
{assign var=alignment value=$column->getFlag('alignment')}
{else}
{assign var=alignment value=\PKP\controllers\grid\GridColumn::COLUMN_ALIGNMENT_CENTER}
{/if}
<td style="text-align: {$alignment}" class="gridCell">
{$cell}
{if $smarty.foreach.listbuilderCells.last && $row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT)}
{$listbuilderRowActions}
{/if}
</td>
{/if}
{/foreach}
</tr>
@@ -0,0 +1,25 @@
{**
* templates/controllers/listbuilder/listbuilderOptions.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Listbuilder java script handler options.
*}
gridId: {$grid->getId()|json_encode},
fetchRowUrl: {url|json_encode op='fetchRow' params=$gridRequestArgs escape=false},
fetchOptionsUrl: {url|json_encode op='fetchOptions' params=$gridRequestArgs escape=false},
availableOptions: {$availableOptions|json_encode},
{if $grid->getSaveType() == \PKP\controllers\listbuilder\ListbuilderHandler::LISTBUILDER_SAVE_TYPE_INTERNAL}
saveUrl: {url|json_encode op='save' params=$gridRequestArgs escape=false},
saveFieldName: null,
{else}{* \PKP\controllers\listbuilder\ListbuilderHandler::LISTBUILDER_SAVE_TYPE_EXTERNAL *}
saveUrl: null,
saveFieldName: {$grid->getSaveFieldName()|json_encode},
{/if}
sourceType: {$grid->getSourceType()|json_encode},
bodySelector: '#{$gridActOnId|escape:javascript}',
features: {include file='controllers/grid/feature/featuresOptions.tpl' features=$features},
@@ -0,0 +1,42 @@
{**
* templates/controllers/listbuilder/listbuilderBody.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* The table part of a Listbuilder object
*}
<table id="{$gridTableId|escape}">
{if $columns|@count > 1}{* include column titles as th elements if there is more than one column *}
{include file="controllers/grid/columnGroup.tpl" columns=$columns}
<thead>
<tr>
{foreach from=$columns item=column}
{if $column->hasFlag('alignment')}
{assign var=alignment value=$column->getFlag('alignment')}
{else}
{assign var=alignment value=\PKP\controllers\grid\GridColumn::COLUMN_ALIGNMENT_LEFT}
{/if}
<th scope="col" style="text-align: {$alignment};">
{$column->getLocalizedTitle()|escape}
</th>
{/foreach}
</tr>
</thead>
{/if}
<tbody>
{foreach from=$rows item=lb_row}
{$lb_row}
{/foreach}
{**
We need the last (=empty) line even if we have rows
so that we can restore it if the user deletes all rows.
**}
<tr class="empty"{if $rows} style="display: none;"{/if}>
<td colspan="{$columns|@count}">{translate key="grid.noItems"}</td>
</tr>
<div class="newRow"></div>
</tbody>
</table>
@@ -0,0 +1,14 @@
{**
* templates/controllers/modals/documentLibrary/documentLibrary.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Document library
*}
{help file="editorial-workflow" section="submission-library" class="pkp_help_modal"}
{capture assign=submissionLibraryGridUrl}{url submissionId=$submission->getId() router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.submissionDocuments.SubmissionDocumentsFilesGridHandler" op="fetchGrid" escape=false}{/capture}
{load_url_in_div id="submissionLibraryGridContainer" url=$submissionLibraryGridUrl}
@@ -0,0 +1,17 @@
{**
* controllers/modals/documentLibrary/publisherLibrary.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Show a grid to manage files in the publisher library
*
* @uses $canEdit bool True if the current user can add/edit the files.
*}
{* Help Link *}
{help file="settings/workflow-settings" section="publisher" class="pkp_help_modal"}
{capture assign=libraryGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.library.LibraryFileAdminGridHandler" op="fetchGrid" canEdit=$canEdit escape=false}{/capture}
{load_url_in_div id="libraryGridDiv" url=$libraryGridUrl}

Some files were not shown because too many files have changed in this diff Show More