first commit
This commit is contained in:
@@ -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>
|
||||
+21
@@ -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>
|
||||
@@ -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>
|
||||
+30
@@ -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
Reference in New Issue
Block a user