first commit
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
{**
|
||||
* templates/authorDashboard/authorDashboard.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 author dashboard.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<div class="pkpWorkflow">
|
||||
<pkp-header class="pkpWorkflow__header">
|
||||
<h1 class="pkpWorkflow__identification">
|
||||
{include file="workflow/submissionIdentification.tpl"}
|
||||
</h1>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
v-if="uploadFileUrl"
|
||||
ref="uploadFileButton"
|
||||
@click="openFileUpload"
|
||||
>
|
||||
{translate key="common.upload.addFile"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
@click="openLibrary"
|
||||
>
|
||||
{translate key="editor.submissionLibrary"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</pkp-header>
|
||||
<tabs :track-history="true">
|
||||
<tab id="workflow" label="{translate key="manager.workflow"}">
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="authorDashboardNotification" requestOptions=$authorDashboardNotificationRequestOptions}
|
||||
|
||||
{assign var=selectedTabIndex value=0}
|
||||
{foreach from=$workflowStages item=stage}
|
||||
{if $stage.id < $submission->getStageId()}
|
||||
{assign var=selectedTabIndex value=$selectedTabIndex+1}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#stageTabs').pkpHandler(
|
||||
'$.pkp.controllers.tab.workflow.WorkflowTabHandler',
|
||||
{ldelim}
|
||||
selected: {$selectedTabIndex},
|
||||
emptyLastTab: true
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="stageTabs" class="pkp_controllers_tab">
|
||||
<ul>
|
||||
{foreach from=$workflowStages item=stage}
|
||||
<li class="pkp_workflow_{$stage.path} stageId{$stage.id}{if $stage.statusKey} initiated{/if}">
|
||||
<a name="stage-{$stage.path}" class="{$stage.path} stageId{$stage.id}" href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="tab.authorDashboard.AuthorDashboardTabHandler" op="fetchTab" submissionId=$submission->getId() stageId=$stage.id escape=false}">
|
||||
{translate key=$stage.translationKey}
|
||||
{if $stage.statusKey}
|
||||
<span class="pkp_screen_reader">
|
||||
{translate key=$stage.statusKey}
|
||||
</span>
|
||||
{/if}
|
||||
</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</tab>
|
||||
<tab id="publication" label="{translate key="submission.publication"}">
|
||||
<div class="pkpPublication" ref="publication" aria-live="polite">
|
||||
<pkp-header class="pkpPublication__header" :is-one-line="false">
|
||||
<span class="pkpPublication__status">
|
||||
<strong>{{ statusLabel }}</strong>
|
||||
<span v-if="workingPublication.status === getConstant('STATUS_QUEUED') && workingPublication.id === currentPublication.id" class="pkpPublication__statusUnpublished">{translate key="publication.status.unscheduled"}</span>
|
||||
<span v-else-if="workingPublication.status === getConstant('STATUS_SCHEDULED')">{translate key="publication.status.scheduled"}</span>
|
||||
<span v-else-if="workingPublication.status === getConstant('STATUS_PUBLISHED')" class="pkpPublication__statusPublished">{translate key="publication.status.published"}</span>
|
||||
<span v-else class="pkpPublication__statusUnpublished">{translate key="publication.status.unpublished"}</span>
|
||||
</span>
|
||||
<span v-if="publicationList.length > 1" class="pkpPublication__version">
|
||||
<strong tabindex="0">{{ versionLabel }}</strong> {{ workingPublication.version }}
|
||||
<dropdown
|
||||
class="pkpPublication__versions"
|
||||
label="{translate key="publication.version.all"}"
|
||||
:is-link="true"
|
||||
submenu-label="{translate key="common.submenu"}"
|
||||
>
|
||||
<ul>
|
||||
<li v-for="publication in publicationList" :key="publication.id">
|
||||
<button
|
||||
class="pkpDropdown__action"
|
||||
:disabled="publication.id === workingPublication.id"
|
||||
@click="setWorkingPublicationById(publication.id)"
|
||||
>
|
||||
{{ publication.version }} /
|
||||
<template v-if="publication.status === getConstant('STATUS_QUEUED') && publication.id === currentPublication.id">{translate key="publication.status.unscheduled"}</template>
|
||||
<template v-else-if="publication.status === getConstant('STATUS_SCHEDULED')">{translate key="publication.status.scheduled"}</template>
|
||||
<template v-else-if="publication.status === getConstant('STATUS_PUBLISHED')">{translate key="publication.status.published"}</template>
|
||||
<template v-else>{translate key="publication.status.unpublished"}</template>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</dropdown>
|
||||
</span>
|
||||
</pkp-header>
|
||||
<div
|
||||
v-if="workingPublication.status === getConstant('STATUS_PUBLISHED')"
|
||||
class="pkpPublication__versionPublished"
|
||||
>
|
||||
{translate key="publication.editDisabled"}
|
||||
</div>
|
||||
<tabs :is-side-tabs="true" :track-history="true" class="pkpPublication__tabs" :label="currentPublicationTabsLabel">
|
||||
<tab id="titleAbstract" label="{translate key="publication.titleAbstract"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_TITLE_ABSTRACT}" @set="set" />
|
||||
</tab>
|
||||
<tab id="contributors" label="{translate key="publication.contributors"}">
|
||||
<contributors-list-panel
|
||||
v-bind="components.contributors"
|
||||
class="pkpWorkflow__contributors"
|
||||
@set="set"
|
||||
:items="workingPublication.authors"
|
||||
:publication="workingPublication"
|
||||
:publication-api-url="submissionApiUrl + '/publications/' + workingPublication.id"
|
||||
@updated:publication="setWorkingPublication"
|
||||
@updated:contributors="setContributors"
|
||||
></contributors-list-panel>
|
||||
</tab>
|
||||
{if $metadataEnabled}
|
||||
<tab id="metadata" label="{translate key="submission.informationCenter.metadata"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_METADATA}" @set="set" />
|
||||
</tab>
|
||||
{/if}
|
||||
<tab v-if="supportsReferences" id="citations" label="{translate key="submission.citations"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_CITATIONS}" @set="set" />
|
||||
</tab>
|
||||
{if $canAccessProductionStage}
|
||||
<tab id="galleys" label="{translate key="submission.layout.galleys"}">
|
||||
<div id="representations-grid" ref="representations">
|
||||
<spinner></spinner>
|
||||
</div>
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Workflow::Publication"}
|
||||
</tabs>
|
||||
<span class="pkpPublication__mask" :class="publicationMaskClasses">
|
||||
<spinner></spinner>
|
||||
</span>
|
||||
</div>
|
||||
</tab>
|
||||
{call_hook name="Template::Workflow"}
|
||||
</tabs>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,23 @@
|
||||
{**
|
||||
* templates/controllers/grid/articleGalleys/editFormat.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 artilce galley" tabset.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#editArticleGalleyMetadataTabs').pkpHandler('$.pkp.controllers.TabHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="editArticleGalleyMetadataTabs">
|
||||
<ul>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="editGalleyTab" submissionId=$submissionId publicationId=$publicationId representationId=$representationId}">{translate key="grid.action.editMetadata"}</a></li>
|
||||
{if $enableIdentifiers}
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="identifiers" submissionId=$submissionId publicationId=$publicationId representationId=$representationId}">{translate key="submission.identifiers"}</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,51 @@
|
||||
{**
|
||||
* templates/editor/issues/articleGalleyForm.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 add/edit an issue galley.
|
||||
*}
|
||||
{if $urlRemote}
|
||||
{assign var="remoteRepresentation" value=true}
|
||||
{else}
|
||||
{assign var="remoteRepresentation" value=false}
|
||||
{/if}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#articleGalleyForm').pkpHandler('$.pkp.controllers.grid.representations.form.RepresentationFormHandler',
|
||||
{ldelim}
|
||||
remoteRepresentation: {$remoteRepresentation|json_encode}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="articleGalleyForm" method="post" action="{url op="updateGalley" submissionId=$submissionId publicationId=$publicationId representationId=$representationId}">
|
||||
{csrf}
|
||||
{fbvFormArea id="galley"}
|
||||
{fbvFormSection title="submission.layout.galleyLabel" required=true}
|
||||
{fbvElement type="text" label="submission.layout.galleyLabelInstructions" value=$label id="label" size=$fbvStyles.size.MEDIUM inline=true required=true disabled=$formDisabled}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" id="locale" label="common.language" from=$supportedLocales selected=$locale|default:$formLocale size=$fbvStyles.size.MEDIUM translate=false inline=true required=true disabled=$formDisabled}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection for="remotelyHostedContent" list=true}
|
||||
{fbvElement type="checkbox" label="submission.layout.galley.remotelyHostedContent" id="remotelyHostedContent" disabled=$formDisabled}
|
||||
<div id="remote" style="display:none">
|
||||
{fbvElement type="text" id="urlRemote" label="submission.layout.galley.remoteURL" value=$urlRemote disabled=$formDisabled}
|
||||
</div>
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection id="urlPathSection" title="publication.urlPath"}
|
||||
{fbvElement type="text" label="publication.urlPath.description" value=$urlPath id="urlPath" size=$fbvStyles.size.MEDIUM inline=true disabled=$formDisabled}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{if $supportsDependentFiles}
|
||||
{capture assign=dependentFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.dependent.DependentFilesGridHandler" op="fetchGrid" submissionId=$submissionId publicationId=$publicationId submissionFileId=$articleGalleyFile->getId() stageId=$smarty.const.WORKFLOW_STAGE_ID_PRODUCTION escape=false}{/capture}
|
||||
{load_url_in_div id="dependentFilesGridDiv" url=$dependentFilesGridUrl}
|
||||
{/if}
|
||||
|
||||
{fbvFormButtons submitText="common.save" submitDisabled=$formDisabled hideCancel=$formDisabled}
|
||||
</form>
|
||||
@@ -0,0 +1,55 @@
|
||||
{**
|
||||
* templates/editor/issues/issueGalleyForm.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 add/edit an issue galley.
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#issueGalleyForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#pluploadgalley'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="upload" issueId=$issueId escape=false},
|
||||
baseUrl: {$baseUrl|json_encode},
|
||||
browse_button: 'pkpIssueGalleyUploaderButton'
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="issueGalleyForm" method="post" action="{url op="update" issueId=$issueId issueGalleyId=$issueGalleyId}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="publicationMetadataFormFieldsNotification"}
|
||||
{fbvFormArea id="file"}
|
||||
{fbvFormSection title="editor.issues.galley" required="true"}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="pluploadgalley" browseButton="pkpIssueGalleyUploaderButton"}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
{if $issueGalley}
|
||||
<a href="{url op="download" issueId=$issueId issueGalleyId=$issueGalleyId}" target="_blank">{$issueGalley->getOriginalFileName()|escape}</a>
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="submission.layout.galleyLabel" required="true"}
|
||||
{fbvElement type="text" value=$label id="label" required="true"}
|
||||
{/fbvFormSection}
|
||||
{if $enablePublisherId}
|
||||
{fbvFormSection title="submission.publisherId"}
|
||||
{fbvElement type="text" value=$publicGalleyId id="publicGalleyId"}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{fbvFormSection title="common.language" required="true"}
|
||||
{fbvElement type="select" id="galleyLocale" from=$supportedLocales selected=$galleyLocale|default:$formLocale translate=false required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="publication.urlPath"}
|
||||
{fbvElement type="text" label="publication.urlPath.description" value=$urlPath id="urlPath" size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,34 @@
|
||||
{**
|
||||
* templates/controllers/grid/issues/form/issueData.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 creation and modification of an issue
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#issueAccessForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="issueAccessForm" method="post" action="{url op="updateAccess" issueId=$issueId}">
|
||||
{* Help Link *}
|
||||
{help file="issue-management" section="edit-issue-data" class="pkp_help_tab"}
|
||||
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="issueAccessNotification"}
|
||||
|
||||
{fbvFormArea id="issueAccessArea"}
|
||||
{fbvFormSection title="editor.issues.accessStatus"}
|
||||
{fbvElement required="true" type="select" id="accessStatus" from=$accessOptions selected=$accessStatus}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="editor.issues.accessDate"}
|
||||
{fbvElement type="text" id="openAccessDate" value=$openAccessDate size=$fbvStyles.size.SMALL class="datepicker"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,118 @@
|
||||
{**
|
||||
* templates/controllers/grid/issues/form/issueData.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 creation and modification of an issue
|
||||
*}
|
||||
|
||||
{help file="issue-management" section="edit-issue-data" class="pkp_help_tab"}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#issueForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#coverImageUploader'),
|
||||
$preview: $('#coverImagePreview'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="uploadFile" escape=false},
|
||||
baseUrl: {$baseUrl|json_encode},
|
||||
filters: {ldelim}
|
||||
mime_types : [
|
||||
{ldelim} title : "Image files", extensions : "jpg,jpeg,png,svg" {rdelim}
|
||||
]
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="issueForm" method="post" action="{url op="updateIssue" issueId=$issueId}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="issueDataNotification"}
|
||||
|
||||
{if $issue && $issue->getPublished()}
|
||||
{assign var=issuePublished value=true}
|
||||
{else}
|
||||
{assign var=issuePublished value=false}
|
||||
{/if}
|
||||
|
||||
{if $issuePublished}
|
||||
{fbvFormArea id="datePublishedArea" title="editor.issues.datePublished"}
|
||||
{fbvFormSection}
|
||||
{if $issuePublished}
|
||||
{fbvElement type="text" id="datePublished" value=$datePublished size=$fbvStyles.size.SMALL class="datepicker"}
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
{/if}
|
||||
|
||||
|
||||
{fbvFormArea id="identificationArea" title="editor.issues.identification"}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="text" label="issue.volume" id="volume" value=$volume maxlength="40" inline=true size=$fbvStyles.size.SMALL}
|
||||
{fbvElement type="text" label="issue.number" id="number" value=$number maxlength="40" inline=true size=$fbvStyles.size.SMALL}
|
||||
{fbvElement type="text" label="issue.year" id="year" value=$year maxlength="4" inline=true size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="text" label="issue.title" id="title" value=$title multilingual=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection list=true}
|
||||
{fbvElement type="checkbox" label="issue.volume" id="showVolume" checked=$showVolume inline=true value=1}
|
||||
{fbvElement type="checkbox" label="issue.number" id="showNumber" checked=$showNumber inline=true value=1}
|
||||
{fbvElement type="checkbox" label="issue.year" id="showYear" checked=$showYear inline=true value=1}
|
||||
{fbvElement type="checkbox" label="issue.title" id="showTitle" checked=$showTitle inline=true value=1}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="description" title="editor.issues.description"}
|
||||
{fbvElement type="textarea" id="description" value=$description multilingual=true rich=true}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="coverImage" title="editor.issues.coverPage"}
|
||||
{fbvFormSection}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="coverImageUploader"}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection id="coverImagePreview"}
|
||||
{if $coverImage != ''}
|
||||
<div class="pkp_form_file_view pkp_form_image_view">
|
||||
<div class="img">
|
||||
<img src="{$publicFilesDir}/{$coverImage|escape:"url"}{'?'|uniqid}" {if $coverImageAlt !== ''} alt="{$coverImageAlt|escape}"{/if}>
|
||||
</div>
|
||||
|
||||
<div class="data">
|
||||
<span class="title">
|
||||
{translate key="common.altText"}
|
||||
</span>
|
||||
<span class="value">
|
||||
{fbvElement type="text" id="coverImageAltText" label="common.altTextInstructions" value=$coverImageAltText}
|
||||
</span>
|
||||
|
||||
<div id="{$deleteCoverImageLinkAction->getId()}" class="actions">
|
||||
{include file="linkAction/linkAction.tpl" action=$deleteCoverImageLinkAction contextId="issueForm"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormSection title="publication.urlPath"}
|
||||
{fbvElement type="text" label="publication.urlPath.description" value=$urlPath id="urlPath" size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{foreach from=$pubIdPlugins item=pubIdPlugin}
|
||||
{assign var=pubIdMetadataFile value=$pubIdPlugin->getPubIdMetadataFile()}
|
||||
{include file="$pubIdMetadataFile" pubObject=$issue}
|
||||
{/foreach}
|
||||
|
||||
{call_hook name="Templates::Editor::Issues::IssueData::AdditionalMetadata"}
|
||||
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/issues/issue.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 issue" tabset.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#editIssueTabs').pkpHandler('$.pkp.controllers.TabHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="editIssueTabs">
|
||||
<ul>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="issueToc" issueId=$issueId}">{translate key="issue.toc"}</a></li>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="editIssueData" issueId=$issueId}">{translate key="editor.issues.issueData"}</a></li>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="issueGalleys" issueId=$issueId}">{translate key="editor.issues.galleys"}</a></li>
|
||||
{if $enableIdentifiers}
|
||||
<li id="identifiersTab"><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="identifiers" issueId=$issueId}">{translate key="editor.issues.identifiers"}</a></li>
|
||||
{/if}
|
||||
{if $currentJournal->getData('publishingMode') == \APP\journal\Journal::PUBLISHING_MODE_SUBSCRIPTION}
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="access" issueId=$issueId}">{translate key="editor.issues.access"}</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
{**
|
||||
* templates/controllers/grid/issues/issueToc.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 issue's table of contents
|
||||
*}
|
||||
{help file="issue-management" section="edit-issue-toc" class="pkp_help_tab"}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#issueTocForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
{capture assign=issueTocGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.toc.TocGridHandler" op="fetchGrid" issueId=$issue->getId() escape=false}{/capture}
|
||||
{load_url_in_div id="issueTocGridContainer" url=$issueTocGridUrl}
|
||||
@@ -0,0 +1,46 @@
|
||||
{**
|
||||
* templates/controllers/grid/pubIds/form/assignPublicIdentifiersForm.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>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#assignPublicIdentifierForm').pkpHandler(
|
||||
'$.pkp.controllers.form.AjaxFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: true
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
{if $pubObject instanceof Issue}
|
||||
<form class="pkp_form" id="assignPublicIdentifierForm" method="post" action="{url component="grid.issues.FutureIssueGridHandler" op="publishIssue" escape=false}">
|
||||
<input type="hidden" name="issueId" value="{$pubObject->getId()|escape}" />
|
||||
<input type="hidden" name="confirmed" value=true />
|
||||
{assign var=hideCancel value=false}
|
||||
{fbvFormSection for="sendIssueNotification" list="true"}
|
||||
{fbvElement type="checkbox" name="sendIssueNotification" id="sendIssueNotification" checked=true label="notification.sendNotificationConfirmation" inline=true}
|
||||
{/fbvFormSection}
|
||||
{elseif $pubObject instanceof Article}
|
||||
<form class="pkp_form" id="assignPublicIdentifierForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="tab.issueEntry.IssueEntryTabHandler" op="assignPubIds" escape=false}">
|
||||
<input type="hidden" name="submissionId" value="{$pubObject->getId()|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$formParams.stageId|escape}" />
|
||||
{assign var=hideCancel value=true}
|
||||
{/if}
|
||||
{csrf}
|
||||
{if $confirmationText}
|
||||
<p>{$confirmationText}</p>
|
||||
{/if}
|
||||
{if $approval}
|
||||
{foreach from=$pubIdPlugins item=pubIdPlugin}
|
||||
{assign var=pubIdAssignFile value=$pubIdPlugin->getPubIdAssignFile()}
|
||||
{assign var=canBeAssigned value=$pubIdPlugin->canBeAssigned($pubObject)}
|
||||
{include file="$pubIdAssignFile" pubIdPlugin=$pubIdPlugin pubObject=$pubObject canBeAssigned=$canBeAssigned}
|
||||
{/foreach}
|
||||
{/if}
|
||||
{fbvFormButtons id="assignPublicIdentifierForm" submitText="common.ok" hideCancel=$hideCancel}
|
||||
</form>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/pubIds/pubIdExportIssuesGridFilter.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 issues lists.
|
||||
*}
|
||||
{assign var="formId" value="issuesListFilter-"|concat:$filterData.gridId}
|
||||
<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="issueSearchFormArea"|concat:$filterData.gridId}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="statusId" id="statusId"|concat:$filterData.gridId from=$filterData.status selected=$filterSelectionData.statusId size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
{* Buttons generate their own section *}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,32 @@
|
||||
{**
|
||||
* templates/controllers/grid/pubIds/pubIdExportRepresentationsGridFilter.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 representations lists.
|
||||
*}
|
||||
{assign var="formId" value="representationsListFilter-"|concat:$filterData.gridId}
|
||||
<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">
|
||||
{fbvFormArea id="representationSearchFormArea"|concat:$filterData.gridId}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="column" id="column"|concat:$filterData.gridId from=$filterData.columns selected=$filterSelectionData.column size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{fbvElement type="search" name="search" id="search"|concat:$filterData.gridId value=$filterSelectionData.search size=$fbvStyles.size.MEDIUM inline="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="issueId" id="issueId"|concat:$filterData.gridId from=$filterData.issues selected=$filterSelectionData.issueId size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{fbvElement type="select" name="statusId" id="statusId"|concat:$filterData.gridId from=$filterData.status selected=$filterSelectionData.statusId size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
{* Buttons generate their own section *}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,84 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/section/form/sectionForm.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.
|
||||
*
|
||||
* Section form under journal management.
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#sectionForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="sectionForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.sections.SectionGridHandler" op="updateSection" sectionId=$sectionId}">
|
||||
{csrf}
|
||||
<input type="hidden" name="sectionId" value="{$sectionId|default:""|escape}"/>
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="sectionFormNotification"}
|
||||
|
||||
{fbvFormArea id="sectionInfo"}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="text" multilingual=true id="title" label="section.title" value=$title size=$fbvStyles.size.MEDIUM inline=true required=true}
|
||||
{fbvElement type="text" multilingual=true id="abbrev" label="section.abbreviation" value=$abbrev maxlength="80" size=$fbvStyles.size.SMALL inline=true required=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.sections.policy" for="policy"}
|
||||
{fbvElement type="textarea" multilingual=true id="policy" value=$policy rich=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="sectionMisc"}
|
||||
{fbvFormSection title="manager.sections.wordCount" for="wordCount" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="text" id="wordCount" value=$wordCount maxlength="80" label="manager.sections.wordCountInstructions"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if count($reviewFormOptions)>0}
|
||||
{fbvFormSection title="submission.reviewForm" for="reviewFormId" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="select" id="reviewFormId" defaultLabel="manager.reviewForms.noneChosen"|translate defaultValue="" from=$reviewFormOptions selected=$reviewFormId translate=false size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{call_hook name="Templates::Manager::Sections::SectionForm::AdditionalMetadata" sectionId=$sectionId}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="indexingInfo" title="submission.sectionOptions"}
|
||||
{fbvFormSection list=true}
|
||||
{fbvElement type="checkbox" id="isInactive" checked=$isInactive label="manager.sections.form.deactivateSection"}
|
||||
{fbvElement type="checkbox" id="metaReviewed" checked=$metaReviewed label="manager.sections.submissionReview"}
|
||||
{fbvElement type="checkbox" id="abstractsNotRequired" checked=$abstractsNotRequired label="manager.sections.abstractsNotRequired"}
|
||||
{fbvElement type="checkbox" id="metaIndexed" checked=$metaIndexed label="manager.sections.submissionIndexing"}
|
||||
{fbvElement type="checkbox" id="editorRestricted" checked=$editorRestricted label="manager.sections.editorRestriction"}
|
||||
{fbvElement type="checkbox" id="hideTitle" checked=$hideTitle label="manager.sections.hideTocTitle"}
|
||||
{fbvElement type="checkbox" id="hideAuthor" checked=$hideAuthor label="manager.sections.hideTocAuthor"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection for="identifyType" title="manager.sections.identifyType"}
|
||||
{fbvElement type="text" id="identifyType" label="manager.sections.identifyTypeExamples" value=$identifyType multilingual=true size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormSection list=true title="manager.sections.form.assignEditors"}
|
||||
<div>{translate key="manager.sections.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|escape}][]"
|
||||
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}
|
||||
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,33 @@
|
||||
{**
|
||||
* templates/controllers/grid/pubIds/exportPublishedSubmissionsGridFilter.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 submissions lists.
|
||||
*}
|
||||
{assign var="formId" value="submissionsListFilter-"|concat:$filterData.gridId}
|
||||
<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="submissionSearchFormArea"|concat:$filterData.gridId}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="column" id="column"|concat:$filterData.gridId from=$filterData.columns selected=$filterSelectionData.column size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{fbvElement type="search" name="search" id="search"|concat:$filterData.gridId value=$filterSelectionData.search size=$fbvStyles.size.MEDIUM inline="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="issueId" id="issueId"|concat:$filterData.gridId from=$filterData.issues selected=$filterSelectionData.issueId size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{fbvElement type="select" name="statusId" id="statusId"|concat:$filterData.gridId from=$filterData.status selected=$filterSelectionData.statusId size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
{* Buttons generate their own section *}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,29 @@
|
||||
{**
|
||||
* templates/controllers/grid/subscriptions/subscriptionsGridFilter.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 individual subscriptions grid.
|
||||
*}
|
||||
{assign var=formId value="filterForm-"|concat:$grid->getId()}
|
||||
<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="subscriptionsSearchFormArea"}
|
||||
{fbvFormSection title="common.search" for="search"}
|
||||
{fbvElement type="select" id="searchField" from=$filterData.fieldOptions selected=$filterSelectionData.searchField inline=true size=$fbvStyles.size.SMALL}
|
||||
{fbvElement type="select" id="searchMatch" from=$filterData.matchOptions selected=$filterSelectionData.searchMatch inline=true size=$fbvStyles.size.SMALL}
|
||||
{fbvElement type="search" name="search" id="search" value=$filterSelectionData.search size=$fbvStyles.size.LARGE inline="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,22 @@
|
||||
{**
|
||||
* 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.
|
||||
*
|
||||
*}
|
||||
{capture assign="reviewerRecommendations"}
|
||||
{include file="reviewer/review/reviewerRecommendations.tpl" description="reviewer.article.selectRecommendation.byEditor" required=false}
|
||||
{/capture}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#readReviewForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
{include file="core:controllers/grid/users/reviewer/readReview.tpl"}
|
||||
@@ -0,0 +1,18 @@
|
||||
{**
|
||||
* templates/controllers/modals/publish/assignToIssue.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 Assign publication to issue before scheduling for publication
|
||||
*}
|
||||
|
||||
|
||||
{assign var="uuid" value=""|uniqid|escape}
|
||||
<div id="assign-{$uuid}" class="pkpWorkflow__publishModal">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_ASSIGN_TO_ISSUE}" @set="set" />
|
||||
<script type="text/javascript">
|
||||
pkp.registry.init('assign-{$uuid}', 'Container', {$assignData|json_encode});
|
||||
</script>
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
{**
|
||||
* templates/controllers/tab/authorDashboard/production.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 production stage on the author dashboard.
|
||||
*}
|
||||
{if $submission->getStageId() >= $smarty.const.WORKFLOW_STAGE_ID_PRODUCTION}
|
||||
{include file="authorDashboard/submissionEmails.tpl" submissionEmails=$productionEmails}
|
||||
|
||||
<!-- Display queries grid -->
|
||||
{capture assign=queriesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.queries.QueriesGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$smarty.const.WORKFLOW_STAGE_ID_PRODUCTION escape=false}{/capture}
|
||||
{load_url_in_div id="queriesGrid" url=$queriesGridUrl}
|
||||
{else}
|
||||
{translate key="submission.stageNotInitiated"}
|
||||
{/if}
|
||||
@@ -0,0 +1,58 @@
|
||||
{**
|
||||
* templates/controllers/tab/pubIds/form/publicIdentifiersForm.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>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#publicIdentifiersForm').pkpHandler(
|
||||
'$.pkp.controllers.form.AjaxFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: true
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
{if $pubObject instanceof Article}
|
||||
<form class="pkp_form" id="publicIdentifiersForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="updateIdentifiers"}">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="publicationIdentifiersFormFieldsNotification"}
|
||||
<input type="hidden" name="submissionId" value="{$pubObject->getId()|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="tabPos" value="1" />
|
||||
<input type="hidden" name="displayedInContainer" value="{$formParams.displayedInContainer|escape}" />
|
||||
<input type="hidden" name="tab" value="identifiers" />
|
||||
{elseif $pubObject instanceof \PKP\galley\Galley}
|
||||
<form class="pkp_form" id="publicIdentifiersForm" method="post" action="{url component="grid.articleGalleys.ArticleGalleyGridHandler" op="updateIdentifiers" submissionId=$submissionId publicationId=$pubObject->getData('publicationId') representationId=$pubObject->getId() escape=false}">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="representationIdentifiersFormFieldsNotification"}
|
||||
{elseif $pubObject instanceof SubmissionFile}
|
||||
<form class="pkp_form" id="publicIdentifiersForm" method="post" action="{url component="api.file.ManageFileApiHandler" op="updateIdentifiers" fileId=$pubObject->getId() submissionId=$pubObject->getData('submissionId') stageId=$stageId fileStageId=$pubObject->getFileStage() escape=false}">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="fileIdentifiersFormFieldsNotification"}
|
||||
{else} {* $pubObject instanceof Issue *}
|
||||
<form class="pkp_form" id="publicIdentifiersForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="updateIdentifiers" issueId=$pubObject->getId()}">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="issueIdentifiersFormFieldsNotification"}
|
||||
{/if}
|
||||
{csrf}
|
||||
|
||||
{* Help Link *}
|
||||
{help file="issue-management" section="edit-issue-identifiers" class="pkp_help_tab"}
|
||||
|
||||
{*include file="common/formErrors.tpl"*}
|
||||
{if $enablePublisherId}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="text" label="submission.publisherId" id="publisherId" name="publisherId" value=$publisherId size=$fbvStyles.size.MEDIUM disabled=$formDisabled}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{foreach from=$pubIdPlugins item=pubIdPlugin}
|
||||
{assign var=pubIdMetadataFile value=$pubIdPlugin->getPubIdMetadataFile()}
|
||||
{assign var=canBeAssigned value=$pubIdPlugin->canBeAssigned($pubObject)}
|
||||
{include file="$pubIdMetadataFile" pubObject=$pubObject canBeAssigned=$canBeAssigned formDisabled=$formDisabled}
|
||||
{/foreach}
|
||||
{call_hook name="Templates::Controllers::Tab::PubIds::Form::PublicIdentifiersForm"}
|
||||
{fbvFormButtons id="publicIdentifiersFormSubmit" submitText="common.save" submitDisabled=$formDisabled hideCancel=$formDisabled}
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,31 @@
|
||||
{**
|
||||
* templates/controllers/tab/workflow/production.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.
|
||||
*
|
||||
* Production workflow stage
|
||||
*}
|
||||
|
||||
{* Help tab *}
|
||||
{help file="editorial-workflow/production" class="pkp_help_tab"}
|
||||
|
||||
<div id="production">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="productionNotification" requestOptions=$productionNotificationRequestOptions refreshOn="stageStatusUpdated"}
|
||||
|
||||
<div class="pkp_workflow_sidebar">
|
||||
{capture assign=productionEditorDecisionsUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="workflow" op="editorDecisionActions" submissionId=$submission->getId() stageId=$stageId escape=false}{/capture}
|
||||
{load_url_in_div id="productionEditorDecisionsDiv" url=$productionEditorDecisionsUrl class="editorDecisionActions pkp_tab_actions"}
|
||||
{capture assign=stageParticipantGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.users.stageParticipant.StageParticipantGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId escape=false}{/capture}
|
||||
{load_url_in_div id="stageParticipantGridContainer" url=$stageParticipantGridUrl class="pkp_participants_grid"}
|
||||
</div>
|
||||
|
||||
<div class="pkp_workflow_content">
|
||||
{capture assign=productionReadyFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.productionReady.ProductionReadyFilesGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId escape=false}{/capture}
|
||||
{load_url_in_div id="productionReadyFilesGridDiv" url=$productionReadyFilesGridUrl}
|
||||
{capture assign=queriesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.queries.QueriesGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId escape=false}{/capture}
|
||||
{load_url_in_div id="queriesGrid" url=$queriesGridUrl}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
{**
|
||||
* templates/frontend/components/breadcrumbs_article.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 a breadcrumb nav item showing the current page. This basic
|
||||
* version is for top-level pages which only need to show the Home link. For
|
||||
* category- and series-specific breadcrumb generation, see
|
||||
* templates/frontend/components/breadcrumbs_catalog.tpl.
|
||||
*
|
||||
* @uses $currentTitle string The title to use for the current page.
|
||||
* @uses $currentTitleKey string Translation key for title of current page.
|
||||
* @uses $issue Issue Issue this article was published in.
|
||||
*}
|
||||
|
||||
<nav class="cmp_breadcrumbs" role="navigation" aria-label="{translate key="navigation.breadcrumbLabel"}">
|
||||
<ol>
|
||||
<li>
|
||||
<a href="{url page="index" router=\PKP\core\PKPApplication::ROUTE_PAGE}">
|
||||
{translate key="common.homepageNavigationLabel"}
|
||||
</a>
|
||||
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
|
||||
{translate key="navigation.archives"}
|
||||
</a>
|
||||
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
|
||||
</li>
|
||||
{if $issue}
|
||||
<li>
|
||||
<a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
|
||||
{$issue->getIssueIdentification()}
|
||||
</a>
|
||||
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
|
||||
</li>
|
||||
{/if}
|
||||
<li class="current" aria-current="page">
|
||||
<span aria-current="page">
|
||||
{if $currentTitleKey}
|
||||
{translate key=$currentTitleKey}
|
||||
{else}
|
||||
{$currentTitle|escape}
|
||||
{/if}
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
@@ -0,0 +1,41 @@
|
||||
{**
|
||||
* templates/frontend/components/breadcrumbs_issue.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 a breadcrumb nav item showing the current page. This basic
|
||||
* version is for top-level pages which only need to show the Home link. For
|
||||
* category- and series-specific breadcrumb generation, see
|
||||
* templates/frontend/components/breadcrumbs_catalog.tpl.
|
||||
*
|
||||
* @uses $currentTitle string The title to use for the current page.
|
||||
* @uses $currentTitleKey string Translation key for title of current page.
|
||||
*}
|
||||
|
||||
<nav class="cmp_breadcrumbs" role="navigation" aria-label="{translate key="navigation.breadcrumbLabel"}">
|
||||
<ol>
|
||||
<li>
|
||||
<a href="{url page="index" router=\PKP\core\PKPApplication::ROUTE_PAGE}">
|
||||
{translate key="common.homepageNavigationLabel"}
|
||||
</a>
|
||||
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
|
||||
{translate key="navigation.archives"}
|
||||
</a>
|
||||
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
|
||||
</li>
|
||||
<li class="current" aria-current="page">
|
||||
<span aria-current="page">
|
||||
{if $currentTitleKey}
|
||||
{translate key=$currentTitleKey}
|
||||
{else}
|
||||
{$currentTitle|escape}
|
||||
{/if}
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
@@ -0,0 +1,21 @@
|
||||
{**
|
||||
* templates/frontend/components/notification.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 View of an embedded notification element. Intended to be basic and highly
|
||||
* reusable.
|
||||
*
|
||||
* @uses $type string A class which will be added to the notification element
|
||||
* @uses $message string The notification message
|
||||
* @uses $messageKey string Optional translation key to generate the message
|
||||
*}
|
||||
<div class="cmp_notification {$type|escape|replace:' ':'_'}">
|
||||
{if $messageKey}
|
||||
{translate key=$messageKey}
|
||||
{else}
|
||||
{$message}
|
||||
{/if}
|
||||
</div>
|
||||
@@ -0,0 +1,67 @@
|
||||
{**
|
||||
* templates/frontend/components/primaryNavMenu.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.
|
||||
*
|
||||
* Primary navigation menu list for OJS
|
||||
*}
|
||||
<ul id="navigationPrimary" class="pkp_navigation_primary pkp_nav_list">
|
||||
|
||||
{if $enableAnnouncements}
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="announcement"}">
|
||||
{translate key="announcement.announcements"}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
{if $currentJournal}
|
||||
|
||||
{if $currentJournal->getData('publishingMode') != \APP\journal\Journal::PUBLISHING_MODE_NONE}
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="current"}">
|
||||
{translate key="navigation.current"}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
|
||||
{translate key="navigation.archives"}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about"}">
|
||||
{translate key="navigation.about"}
|
||||
</a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about"}">
|
||||
{translate key="about.aboutContext"}
|
||||
</a>
|
||||
</li>
|
||||
{if $currentJournal->getLocalizedData('editorialTeam')}
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="editorialTeam"}">
|
||||
{translate key="about.editorialTeam"}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="submissions"}">
|
||||
{translate key="about.submissions"}
|
||||
</a>
|
||||
</li>
|
||||
{if $currentJournal->getData('mailingAddress') || $currentJournal->getData('contactName')}
|
||||
<li>
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="contact"}">
|
||||
{translate key="about.contact"}
|
||||
</a>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
@@ -0,0 +1,26 @@
|
||||
{**
|
||||
* templates/frontend/components/skipLinks.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.
|
||||
*
|
||||
* Skip links to aid navigation when tabbing for screen reader accessibility
|
||||
*}
|
||||
|
||||
<nav class="cmp_skip_to_content" aria-label="{translate key="navigation.skip.description"}">
|
||||
<a href="#pkp_content_main">{translate key="navigation.skip.main"}</a>
|
||||
<a href="#siteNav">{translate key="navigation.skip.nav"}</a>
|
||||
{if !$requestedPage || $requestedPage === 'index'}
|
||||
{if $activeTheme && $activeTheme->getOption('showDescriptionInJournalIndex')}
|
||||
<a href="#homepageAbout">{translate key="navigation.skip.about"}</a>
|
||||
{/if}
|
||||
{if $numAnnouncementsHomepage && $announcements|@count}
|
||||
<a href="#homepageAnnouncements">{translate key="navigation.skip.announcements"}</a>
|
||||
{/if}
|
||||
{if $issue}
|
||||
<a href="#homepageIssue">{translate key="navigation.skip.issue"}</a>
|
||||
{/if}
|
||||
{/if}
|
||||
<a href="#pkp_content_footer">{translate key="navigation.skip.footer"}</a>
|
||||
</nav>
|
||||
@@ -0,0 +1,62 @@
|
||||
{**
|
||||
* templates/frontend/components/subscriptionContact.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 the contact details for a journal's subscriptions
|
||||
*
|
||||
* @uses $subscriptionAdditionalInformation string HTML text description
|
||||
* subcription information
|
||||
* @uses $subscriptionMailingAddress string Contact address for subscriptions
|
||||
* @uses $subscriptionName string Contact name for subscriptions
|
||||
* @uses $subscriptionPhone string Contact phone number for subscriptions
|
||||
* @uses $subscriptionEmail string Contact email address for subscriptions
|
||||
*}
|
||||
<div class="cmp_subscription_contact">
|
||||
{if $subscriptionAdditionalInformation}
|
||||
<div class="description">
|
||||
{$subscriptionAdditionalInformation|strip_unsafe_html}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $subscriptionName || $subscriptionPhone || $subscriptionEmail}
|
||||
<div class="contact">
|
||||
<h3>
|
||||
{translate key="about.subscriptionsContact"}
|
||||
</h3>
|
||||
|
||||
{if $subscriptionName}
|
||||
<div class="name">
|
||||
{$subscriptionName|escape}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $subscriptionMailingAddress}
|
||||
<div class="address">
|
||||
{$subscriptionMailingAddress|nl2br|strip_unsafe_html}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $subscriptionPhone}
|
||||
<div class="phone">
|
||||
<span class="label">
|
||||
{translate key="about.contact.phone"}
|
||||
</span>
|
||||
<span class="value">
|
||||
{$subscriptionPhone|escape}
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $subscriptionEmail}
|
||||
<div class="email">
|
||||
<a href="mailto:{$subscriptionEmail|escape}">
|
||||
{$subscriptionEmail|escape}
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -0,0 +1,459 @@
|
||||
{**
|
||||
* templates/frontend/objects/article_details.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 View of an Article which displays all details about the article.
|
||||
* Expected to be primary object on the page.
|
||||
*
|
||||
* Many journals will want to add custom data to this object, either through
|
||||
* plugins which attach to hooks on the page or by editing the template
|
||||
* themselves. In order to facilitate this, a flexible layout markup pattern has
|
||||
* been implemented. If followed, plugins and other content can provide markup
|
||||
* in a way that will render consistently with other items on the page. This
|
||||
* pattern is used in the .main_entry column and the .entry_details column. It
|
||||
* consists of the following:
|
||||
*
|
||||
* <!-- Wrapper class which provides proper spacing between components -->
|
||||
* <div class="item">
|
||||
* <!-- Title/value combination -->
|
||||
* <div class="label">Abstract</div>
|
||||
* <div class="value">Value</div>
|
||||
* </div>
|
||||
*
|
||||
* All styling should be applied by class name, so that titles may use heading
|
||||
* elements (eg, <h3>) or any element required.
|
||||
*
|
||||
* <!-- Example: component with multiple title/value combinations -->
|
||||
* <div class="item">
|
||||
* <div class="sub_item">
|
||||
* <div class="label">DOI</div>
|
||||
* <div class="value">12345678</div>
|
||||
* </div>
|
||||
* <div class="sub_item">
|
||||
* <div class="label">Published Date</div>
|
||||
* <div class="value">2015-01-01</div>
|
||||
* </div>
|
||||
* </div>
|
||||
*
|
||||
* <!-- Example: component with no title -->
|
||||
* <div class="item">
|
||||
* <div class="value">Whatever you'd like</div>
|
||||
* </div>
|
||||
*
|
||||
* Core components are produced manually below, but can also be added via
|
||||
* plugins using the hooks provided:
|
||||
*
|
||||
* Templates::Article::Main
|
||||
* Templates::Article::Details
|
||||
*
|
||||
* @uses $article Submission This article
|
||||
* @uses $publication Publication The publication being displayed
|
||||
* @uses $firstPublication Publication The first published version of this article
|
||||
* @uses $currentPublication Publication The most recently published version of this article
|
||||
* @uses $issue Issue The issue this article is assigned to
|
||||
* @uses $section Section The journal section this article is assigned to
|
||||
* @uses $categories Category The category this article is assigned to
|
||||
* @uses $primaryGalleys array List of article galleys that are not supplementary or dependent
|
||||
* @uses $supplementaryGalleys array List of article galleys that are supplementary
|
||||
* @uses $keywords array List of keywords assigned to this article
|
||||
* @uses $pubIdPlugins Array of pubId plugins which this article may be assigned
|
||||
* @uses $licenseTerms string License terms.
|
||||
* @uses $licenseUrl string URL to license. Only assigned if license should be
|
||||
* included with published submissions.
|
||||
* @uses $ccLicenseBadge string An image and text with details about the license
|
||||
*}
|
||||
{if !$heading}
|
||||
{assign var="heading" value="h3"}
|
||||
{/if}
|
||||
<article class="obj_article_details">
|
||||
|
||||
{* Indicate if this is only a preview *}
|
||||
{if $publication->getData('status') !== \PKP\submission\PKPSubmission::STATUS_PUBLISHED}
|
||||
<div class="cmp_notification notice">
|
||||
{capture assign="submissionUrl"}{url page="workflow" op="access" path=$article->getId()}{/capture}
|
||||
{translate key="submission.viewingPreview" url=$submissionUrl}
|
||||
</div>
|
||||
{* Notification that this is an old version *}
|
||||
{elseif $currentPublication->getId() !== $publication->getId()}
|
||||
<div class="cmp_notification notice">
|
||||
{capture assign="latestVersionUrl"}{url page="article" op="view" path=$article->getBestId()}{/capture}
|
||||
{translate key="submission.outdatedVersion"
|
||||
datePublished=$publication->getData('datePublished')|date_format:$dateFormatShort
|
||||
urlRecentVersion=$latestVersionUrl|escape
|
||||
}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<h1 class="page_title">
|
||||
{$publication->getLocalizedTitle(null, 'html')|strip_unsafe_html}
|
||||
</h1>
|
||||
|
||||
{if $publication->getLocalizedData('subtitle')}
|
||||
<h2 class="subtitle">
|
||||
{$publication->getLocalizedSubTitle(null, 'html')|strip_unsafe_html}
|
||||
</h2>
|
||||
{/if}
|
||||
|
||||
<div class="row">
|
||||
<div class="main_entry">
|
||||
|
||||
{if $publication->getData('authors')}
|
||||
<section class="item authors">
|
||||
<h2 class="pkp_screen_reader">{translate key="article.authors"}</h2>
|
||||
<ul class="authors">
|
||||
{foreach from=$publication->getData('authors') item=author}
|
||||
<li>
|
||||
<span class="name">
|
||||
{$author->getFullName()|escape}
|
||||
</span>
|
||||
{if $author->getLocalizedData('affiliation')}
|
||||
<span class="affiliation">
|
||||
{$author->getLocalizedData('affiliation')|escape}
|
||||
{if $author->getData('rorId')}
|
||||
<a href="{$author->getData('rorId')|escape}">{$rorIdIcon}</a>
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
{assign var=authorUserGroup value=$userGroupsById[$author->getData('userGroupId')]}
|
||||
{if $authorUserGroup->getShowTitle()}
|
||||
<span class="userGroup">
|
||||
{$authorUserGroup->getLocalizedName()|escape}
|
||||
</span>
|
||||
{/if}
|
||||
{if $author->getData('orcid')}
|
||||
<span class="orcid">
|
||||
{if $author->getData('orcidAccessToken')}
|
||||
{$orcidIcon}
|
||||
{/if}
|
||||
<a href="{$author->getData('orcid')|escape}" target="_blank">
|
||||
{$author->getData('orcid')|escape}
|
||||
</a>
|
||||
</span>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* DOI *}
|
||||
{assign var=doiObject value=$article->getCurrentPublication()->getData('doiObject')}
|
||||
{if $doiObject}
|
||||
{assign var="doiUrl" value=$doiObject->getData('resolvingUrl')|escape}
|
||||
<section class="item doi">
|
||||
<h2 class="label">
|
||||
{capture assign=translatedDOI}{translate key="doi.readerDisplayName"}{/capture}
|
||||
{translate key="semicolon" label=$translatedDOI}
|
||||
</h2>
|
||||
<span class="value">
|
||||
<a href="{$doiUrl}">
|
||||
{$doiUrl}
|
||||
</a>
|
||||
</span>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
|
||||
{* Keywords *}
|
||||
{if !empty($publication->getLocalizedData('keywords'))}
|
||||
<section class="item keywords">
|
||||
<h2 class="label">
|
||||
{capture assign=translatedKeywords}{translate key="article.subject"}{/capture}
|
||||
{translate key="semicolon" label=$translatedKeywords}
|
||||
</h2>
|
||||
<span class="value">
|
||||
{foreach name="keywords" from=$publication->getLocalizedData('keywords') item="keyword"}
|
||||
{$keyword|escape}{if !$smarty.foreach.keywords.last}{translate key="common.commaListSeparator"}{/if}
|
||||
{/foreach}
|
||||
</span>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* Abstract *}
|
||||
{if $publication->getLocalizedData('abstract')}
|
||||
<section class="item abstract">
|
||||
<h2 class="label">{translate key="article.abstract"}</h2>
|
||||
{$publication->getLocalizedData('abstract')|strip_unsafe_html}
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{call_hook name="Templates::Article::Main"}
|
||||
|
||||
{* Usage statistics chart*}
|
||||
{if $activeTheme->getOption('displayStats') != 'none'}
|
||||
{$activeTheme->displayUsageStatsGraph($article->getId())}
|
||||
<section class="item downloads_chart">
|
||||
<h2 class="label">
|
||||
{translate key="plugins.themes.default.displayStats.downloads"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
<canvas class="usageStatsGraph" data-object-type="Submission" data-object-id="{$article->getId()|escape}"></canvas>
|
||||
<div class="usageStatsUnavailable" data-object-type="Submission" data-object-id="{$article->getId()|escape}">
|
||||
{translate key="plugins.themes.default.displayStats.noStats"}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* Author biographies *}
|
||||
{assign var="hasBiographies" value=0}
|
||||
{foreach from=$publication->getData('authors') item=author}
|
||||
{if $author->getLocalizedData('biography')}
|
||||
{assign var="hasBiographies" value=$hasBiographies+1}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if $hasBiographies}
|
||||
<section class="item author_bios">
|
||||
<h2 class="label">
|
||||
{if $hasBiographies > 1}
|
||||
{translate key="submission.authorBiographies"}
|
||||
{else}
|
||||
{translate key="submission.authorBiography"}
|
||||
{/if}
|
||||
</h2>
|
||||
<ul class="authors">
|
||||
{foreach from=$publication->getData('authors') item=author}
|
||||
{if $author->getLocalizedData('biography')}
|
||||
<li class="sub_item">
|
||||
<div class="label">
|
||||
{if $author->getLocalizedData('affiliation')}
|
||||
{capture assign="authorName"}{$author->getFullName()|escape}{/capture}
|
||||
{capture assign="authorAffiliation"} {$author->getLocalizedData('affiliation')|escape} {/capture}
|
||||
{translate key="submission.authorWithAffiliation" name=$authorName affiliation=$authorAffiliation}
|
||||
{else}
|
||||
{$author->getFullName()|escape}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="value">
|
||||
{$author->getLocalizedData('biography')|strip_unsafe_html}
|
||||
</div>
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* References *}
|
||||
{if $parsedCitations || $publication->getData('citationsRaw')}
|
||||
<section class="item references">
|
||||
<h2 class="label">
|
||||
{translate key="submission.citations"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
{if $parsedCitations}
|
||||
{foreach from=$parsedCitations item="parsedCitation"}
|
||||
<p>{$parsedCitation->getCitationWithLinks()|strip_unsafe_html} {call_hook name="Templates::Article::Details::Reference" citation=$parsedCitation}</p>
|
||||
{/foreach}
|
||||
{else}
|
||||
{$publication->getData('citationsRaw')|escape|nl2br}
|
||||
{/if}
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
</div><!-- .main_entry -->
|
||||
|
||||
<div class="entry_details">
|
||||
|
||||
{* Article/Issue cover image *}
|
||||
{if $publication->getLocalizedData('coverImage') || ($issue && $issue->getLocalizedCoverImage())}
|
||||
<div class="item cover_image">
|
||||
<div class="sub_item">
|
||||
{if $publication->getLocalizedData('coverImage')}
|
||||
{assign var="coverImage" value=$publication->getLocalizedData('coverImage')}
|
||||
<img
|
||||
src="{$publication->getLocalizedCoverImageUrl($article->getData('contextId'))|escape}"
|
||||
alt="{$coverImage.altText|escape|default:''}"
|
||||
>
|
||||
{else}
|
||||
<a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
|
||||
<img src="{$issue->getLocalizedCoverImageUrl()|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:''}">
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Article Galleys *}
|
||||
{if $primaryGalleys}
|
||||
<div class="item galleys">
|
||||
<h2 class="pkp_screen_reader">
|
||||
{translate key="submission.downloads"}
|
||||
</h2>
|
||||
<ul class="value galleys_links">
|
||||
{foreach from=$primaryGalleys item=galley}
|
||||
<li>
|
||||
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication galley=$galley purchaseFee=$currentJournal->getData('purchaseArticleFee') purchaseCurrency=$currentJournal->getData('currency')}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
{if $supplementaryGalleys}
|
||||
<div class="item galleys">
|
||||
<h3 class="pkp_screen_reader">
|
||||
{translate key="submission.additionalFiles"}
|
||||
</h3>
|
||||
<ul class="value supplementary_galleys_links">
|
||||
{foreach from=$supplementaryGalleys item=galley}
|
||||
<li>
|
||||
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication galley=$galley isSupplementary="1"}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $publication->getData('datePublished')}
|
||||
<div class="item published">
|
||||
<section class="sub_item">
|
||||
<h2 class="label">
|
||||
{translate key="submissions.published"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
{* If this is the original version *}
|
||||
{if $firstPublication->getId() === $publication->getId()}
|
||||
<span>{$firstPublication->getData('datePublished')|date_format:$dateFormatShort}</span>
|
||||
{* If this is an updated version *}
|
||||
{else}
|
||||
<span>{translate key="submission.updatedOn" datePublished=$firstPublication->getData('datePublished')|date_format:$dateFormatShort dateUpdated=$publication->getData('datePublished')|date_format:$dateFormatShort}</span>
|
||||
{/if}
|
||||
</div>
|
||||
</section>
|
||||
{if count($article->getPublishedPublications()) > 1}
|
||||
<section class="sub_item versions">
|
||||
<h2 class="label">
|
||||
{translate key="submission.versions"}
|
||||
</h2>
|
||||
<ul class="value">
|
||||
{foreach from=array_reverse($article->getPublishedPublications()) item=iPublication}
|
||||
{capture assign="name"}{translate key="submission.versionIdentity" datePublished=$iPublication->getData('datePublished')|date_format:$dateFormatShort version=$iPublication->getData('version')}{/capture}
|
||||
<li>
|
||||
{if $iPublication->getId() === $publication->getId()}
|
||||
{$name}
|
||||
{elseif $iPublication->getId() === $currentPublication->getId()}
|
||||
<a href="{url page="article" op="view" path=$article->getBestId()}">{$name}</a>
|
||||
{else}
|
||||
<a href="{url page="article" op="view" path=$article->getBestId()|to_array:"version":$iPublication->getId()}">{$name}</a>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</section>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Data Availability Statement *}
|
||||
{if $publication->getLocalizedData('dataAvailability')}
|
||||
<section class="item dataAvailability">
|
||||
<h2 class="label">{translate key="submission.dataAvailability"}</h2>
|
||||
{$publication->getLocalizedData('dataAvailability')|strip_unsafe_html}
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* Issue article appears in *}
|
||||
{if $issue || $section || $categories}
|
||||
<div class="item issue">
|
||||
|
||||
{if $issue}
|
||||
<section class="sub_item">
|
||||
<h2 class="label">
|
||||
{translate key="issue.issue"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
<a class="title" href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
|
||||
{$issue->getIssueIdentification()}
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{if $section}
|
||||
<section class="sub_item">
|
||||
<h2 class="label">
|
||||
{translate key="section.section"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
{$section->getLocalizedTitle()|escape}
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{if $categories}
|
||||
<section class="sub_item">
|
||||
<h2 class="label">
|
||||
{translate key="category.category"}
|
||||
</h2>
|
||||
<div class="value">
|
||||
<ul class="categories">
|
||||
{foreach from=$categories item=category}
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|escape}">{$category->getLocalizedTitle()|escape}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* PubIds (requires plugins) *}
|
||||
{foreach from=$pubIdPlugins item=pubIdPlugin}
|
||||
{if $pubIdPlugin->getPubIdType() == 'doi'}
|
||||
{continue}
|
||||
{/if}
|
||||
{assign var=pubId value=$article->getStoredPubId($pubIdPlugin->getPubIdType())}
|
||||
{if $pubId}
|
||||
<section class="item pubid">
|
||||
<h2 class="label">
|
||||
{$pubIdPlugin->getPubIdDisplayType()|escape}
|
||||
</h2>
|
||||
<div class="value">
|
||||
{if $pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
|
||||
<a id="pub-id::{$pubIdPlugin->getPubIdType()|escape}" href="{$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}">
|
||||
{$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
|
||||
</a>
|
||||
{else}
|
||||
{$pubId|escape}
|
||||
{/if}
|
||||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{* Licensing info *}
|
||||
{if $currentContext->getLocalizedData('licenseTerms') || $publication->getData('licenseUrl')}
|
||||
<div class="item copyright">
|
||||
<h2 class="label">
|
||||
{translate key="submission.license"}
|
||||
</h2>
|
||||
{if $publication->getData('licenseUrl')}
|
||||
{if $ccLicenseBadge}
|
||||
{if $publication->getLocalizedData('copyrightHolder')}
|
||||
<p>{translate key="submission.copyrightStatement" copyrightHolder=$publication->getLocalizedData('copyrightHolder') copyrightYear=$publication->getData('copyrightYear')}</p>
|
||||
{/if}
|
||||
{$ccLicenseBadge}
|
||||
{else}
|
||||
<a href="{$publication->getData('licenseUrl')|escape}" class="copyright">
|
||||
{if $publication->getLocalizedData('copyrightHolder')}
|
||||
{translate key="submission.copyrightStatement" copyrightHolder=$publication->getLocalizedData('copyrightHolder') copyrightYear=$publication->getData('copyrightYear')}
|
||||
{else}
|
||||
{translate key="submission.license"}
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
{$currentContext->getLocalizedData('licenseTerms')}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{call_hook name="Templates::Article::Details"}
|
||||
|
||||
</div><!-- .entry_details -->
|
||||
</div><!-- .row -->
|
||||
|
||||
</article>
|
||||
@@ -0,0 +1,106 @@
|
||||
{**
|
||||
* templates/frontend/objects/article_summary.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 View of an Article summary which is shown within a list of articles.
|
||||
*
|
||||
* @uses $article Article The article
|
||||
* @uses $authorUserGroups Traversible The set of author user groups
|
||||
* @uses $hasAccess bool Can this user access galleys for this context? The
|
||||
* context may be an issue or an article
|
||||
* @uses $showDatePublished bool Show the date this article was published?
|
||||
* @uses $hideGalleys bool Hide the article galleys for this article?
|
||||
* @uses $primaryGenreIds array List of file genre ids for primary file types
|
||||
* @uses $heading string HTML heading element, default: h2
|
||||
*}
|
||||
{assign var=publication value=$article->getCurrentPublication()}
|
||||
|
||||
{assign var=articlePath value=$publication->getData('urlPath')|default:$article->getId()}
|
||||
{if !$heading}
|
||||
{assign var="heading" value="h2"}
|
||||
{/if}
|
||||
|
||||
{if (!$section.hideAuthor && $publication->getData('hideAuthor') == \APP\submission\Submission::AUTHOR_TOC_DEFAULT) || $publication->getData('hideAuthor') == \APP\submission\Submission::AUTHOR_TOC_SHOW}
|
||||
{assign var="showAuthor" value=true}
|
||||
{/if}
|
||||
|
||||
<div class="obj_article_summary">
|
||||
{if $publication->getLocalizedData('coverImage')}
|
||||
<div class="cover">
|
||||
<a {if $journal}href="{url journal=$journal->getPath() page="article" op="view" path=$articlePath}"{else}href="{url page="article" op="view" path=$articlePath}"{/if} class="file">
|
||||
{assign var="coverImage" value=$publication->getLocalizedData('coverImage')}
|
||||
<img
|
||||
src="{$publication->getLocalizedCoverImageUrl($article->getData('contextId'))|escape}"
|
||||
alt="{$coverImage.altText|escape|default:''}"
|
||||
>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<{$heading} class="title">
|
||||
<a id="article-{$article->getId()}" {if $journal}href="{url journal=$journal->getPath() page="article" op="view" path=$articlePath}"{else}href="{url page="article" op="view" path=$articlePath}"{/if}>
|
||||
{if $currentContext}
|
||||
{$publication->getLocalizedTitle(null, 'html')|strip_unsafe_html}
|
||||
{assign var=localizedSubtitle value=$publication->getLocalizedSubtitle(null, 'html')|strip_unsafe_html}
|
||||
{if $localizedSubtitle}
|
||||
<span class="subtitle">{$localizedSubtitle}</span>
|
||||
{/if}
|
||||
{else}
|
||||
{$publication->getLocalizedFullTitle(null, 'html')|strip_unsafe_html}
|
||||
<span class="subtitle">
|
||||
{$journal->getLocalizedName()|escape}
|
||||
</span>
|
||||
{/if}
|
||||
</a>
|
||||
</{$heading}>
|
||||
|
||||
{assign var=submissionPages value=$publication->getData('pages')}
|
||||
{assign var=submissionDatePublished value=$publication->getData('datePublished')}
|
||||
{if $showAuthor || $submissionPages || ($submissionDatePublished && $showDatePublished)}
|
||||
<div class="meta">
|
||||
{if $showAuthor}
|
||||
<div class="authors">
|
||||
{$publication->getAuthorString($authorUserGroups)|escape}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Page numbers for this article *}
|
||||
{if $submissionPages}
|
||||
<div class="pages">{$submissionPages|escape}</div>
|
||||
{/if}
|
||||
|
||||
{if $showDatePublished && $submissionDatePublished}
|
||||
<div class="published">
|
||||
{$submissionDatePublished|date_format:$dateFormatShort}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !$hideGalleys}
|
||||
<ul class="galleys_links">
|
||||
{foreach from=$article->getGalleys() item=galley}
|
||||
{if $primaryGenreIds}
|
||||
{assign var="file" value=$galley->getFile()}
|
||||
{if !$galley->getRemoteUrl() && !($file && in_array($file->getGenreId(), $primaryGenreIds))}
|
||||
{continue}
|
||||
{/if}
|
||||
{/if}
|
||||
<li>
|
||||
{assign var="hasArticleAccess" value=$hasAccess}
|
||||
{if $currentContext->getSetting('publishingMode') == \APP\journal\Journal::PUBLISHING_MODE_OPEN || $publication->getData('accessStatus') == \APP\submission\Submission::ARTICLE_ACCESS_OPEN}
|
||||
{assign var="hasArticleAccess" value=1}
|
||||
{/if}
|
||||
{assign var="id" value="article-{$article->getId()}-galley-{$galley->getId()}"}
|
||||
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication id=$id labelledBy="{$id} article-{$article->getId()}" hasAccess=$hasArticleAccess purchaseFee=$currentJournal->getData('purchaseArticleFee') purchaseCurrency=$currentJournal->getData('currency')}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
{call_hook name="Templates::Issue::Issue::Article"}
|
||||
</div>
|
||||
@@ -0,0 +1,84 @@
|
||||
{**
|
||||
* templates/frontend/objects/galley_link.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 View of a galley object as a link to view or download the galley, to be used
|
||||
* in a list of galleys.
|
||||
*
|
||||
* @uses $galley Galley
|
||||
* @uses $parent Issue|Article Object which these galleys are attached to
|
||||
* @uses $publication Publication Optionally the publication (version) to which this galley is attached
|
||||
* @uses $isSupplementary bool Is this a supplementary file?
|
||||
* @uses $hasAccess bool Can this user access galleys for this context?
|
||||
* @uses $restrictOnlyPdf bool Is access only restricted to PDF galleys?
|
||||
* @uses $purchaseArticleEnabled bool Can this article be purchased?
|
||||
* @uses $currentJournal Journal The current journal context
|
||||
* @uses $journalOverride Journal An optional argument to override the current
|
||||
* journal with a specific context
|
||||
*}
|
||||
|
||||
{* Override the $currentJournal context if desired *}
|
||||
{if $journalOverride}
|
||||
{assign var="currentJournal" value=$journalOverride}
|
||||
{/if}
|
||||
|
||||
{* Determine galley type and URL op *}
|
||||
{if $galley->isPdfGalley()}
|
||||
{assign var="type" value="pdf"}
|
||||
{else}
|
||||
{assign var="type" value="file"}
|
||||
{/if}
|
||||
|
||||
{* Get path for URL *}
|
||||
{if $parent instanceOf \APP\issue\Issue}
|
||||
{assign var="page" value="issue"}
|
||||
{assign var="parentId" value=$parent->getBestIssueId()}
|
||||
{assign var="path" value=$parentId|to_array:$galley->getBestGalleyId()}
|
||||
{else}{* \APP\submission\Submission *}
|
||||
{assign var="page" value="article"}
|
||||
{if $publication}
|
||||
{if $publication->getId() !== $parent->getData('currentPublicationId')}
|
||||
{* Get a versioned link if we have an older publication *}
|
||||
{assign var="path" value=$parent->getBestId()|to_array:"version":$publication->getId():$galley->getBestGalleyId()}
|
||||
{else}
|
||||
{assign var="parentId" value=$publication->getData('urlPath')|default:$article->getId()}
|
||||
{assign var="path" value=$parentId|to_array:$galley->getBestGalleyId()}
|
||||
{/if}
|
||||
{else}
|
||||
{assign var="path" value=$parent->getBestId()|to_array:$galley->getBestGalleyId()}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{* Get user access flag *}
|
||||
{if !$hasAccess}
|
||||
{if $restrictOnlyPdf && $type=="pdf"}
|
||||
{assign var=restricted value="1"}
|
||||
{elseif !$restrictOnlyPdf}
|
||||
{assign var=restricted value="1"}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{* Don't be frightened. This is just a link *}
|
||||
<a class="{if $isSupplementary}obj_galley_link_supplementary{else}obj_galley_link{/if} {$type|escape}{if $restricted} restricted{/if}" href="{url page=$page op="view" path=$path}"{if $id} id="{$id}"{/if}{if $labelledBy} aria-labelledby="{$labelledBy}"{/if}>
|
||||
{* Add some screen reader text to indicate if a galley is restricted *}
|
||||
{if $restricted}
|
||||
<span class="pkp_screen_reader">
|
||||
{if $purchaseArticleEnabled}
|
||||
{translate key="reader.subscriptionOrFeeAccess"}
|
||||
{else}
|
||||
{translate key="reader.subscriptionAccess"}
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
{$galley->getGalleyLabel()|escape}
|
||||
|
||||
{if $restricted && $purchaseFee && $purchaseCurrency}
|
||||
<span class="purchase_cost">
|
||||
{translate key="reader.purchasePrice" price=$purchaseFee currency=$purchaseCurrency}
|
||||
</span>
|
||||
{/if}
|
||||
</a>
|
||||
@@ -0,0 +1,44 @@
|
||||
{**
|
||||
* templates/frontend/objects/issue_summary.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 View of an Issue which displays a summary for use in lists
|
||||
*
|
||||
* @uses $issue Issue The issue
|
||||
*}
|
||||
{if $issue->getShowTitle()}
|
||||
{assign var=issueTitle value=$issue->getLocalizedTitle()|escape}
|
||||
{/if}
|
||||
{assign var=issueSeries value=$issue->getIssueSeries()}
|
||||
{assign var=issueCover value=$issue->getLocalizedCoverImageUrl()}
|
||||
|
||||
<div class="obj_issue_summary">
|
||||
|
||||
{if $issueCover}
|
||||
<a class="cover" href="{url op="view" path=$issue->getBestIssueId()}">
|
||||
<img src="{$issueCover|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:''}">
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
<h2>
|
||||
<a class="title" href="{url op="view" path=$issue->getBestIssueId()}">
|
||||
{if $issueTitle}
|
||||
{$issueTitle|escape}
|
||||
{else}
|
||||
{$issueSeries|escape}
|
||||
{/if}
|
||||
</a>
|
||||
{if $issueTitle && $issueSeries}
|
||||
<div class="series">
|
||||
{$issueSeries|escape}
|
||||
</div>
|
||||
{/if}
|
||||
</h2>
|
||||
|
||||
<div class="description">
|
||||
{$issue->getLocalizedDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
</div><!-- .obj_issue_summary -->
|
||||
@@ -0,0 +1,147 @@
|
||||
{**
|
||||
* templates/frontend/objects/issue_toc.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 View of an Issue which displays a full table of contents.
|
||||
*
|
||||
* @uses $issue Issue The issue
|
||||
* @uses $issueTitle string Title of the issue. May be empty
|
||||
* @uses $issueSeries string Vol/No/Year string for the issue
|
||||
* @uses $issueGalleys array Galleys for the entire issue
|
||||
* @uses $hasAccess bool Can this user access galleys for this context?
|
||||
* @uses $publishedSubmissions array Lists of articles published in this issue
|
||||
* sorted by section.
|
||||
* @uses $primaryGenreIds array List of file genre ids for primary file types
|
||||
* @uses $heading string HTML heading element, default: h2
|
||||
*}
|
||||
{if !$heading}
|
||||
{assign var="heading" value="h2"}
|
||||
{/if}
|
||||
{assign var="articleHeading" value="h3"}
|
||||
{if $heading == "h3"}
|
||||
{assign var="articleHeading" value="h4"}
|
||||
{elseif $heading == "h4"}
|
||||
{assign var="articleHeading" value="h5"}
|
||||
{elseif $heading == "h5"}
|
||||
{assign var="articleHeading" value="h6"}
|
||||
{/if}
|
||||
<div class="obj_issue_toc">
|
||||
|
||||
{* Indicate if this is only a preview *}
|
||||
{if !$issue->getPublished()}
|
||||
{include file="frontend/components/notification.tpl" type="warning" messageKey="editor.issues.preview"}
|
||||
{/if}
|
||||
|
||||
{* Issue introduction area above articles *}
|
||||
<div class="heading">
|
||||
|
||||
{* Issue cover image *}
|
||||
{assign var=issueCover value=$issue->getLocalizedCoverImageUrl()}
|
||||
{if $issueCover}
|
||||
<div class="cover">
|
||||
{capture assign="defaultAltText"}
|
||||
{translate key="issue.viewIssueIdentification" identification=$issue->getIssueIdentification()|escape}
|
||||
{/capture}
|
||||
<img src="{$issueCover|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:$defaultAltText}">
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Description *}
|
||||
{if $issue->hasDescription()}
|
||||
<div class="description">
|
||||
{$issue->getLocalizedDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* PUb IDs (eg - URN) *}
|
||||
{foreach from=$pubIdPlugins item=pubIdPlugin}
|
||||
{assign var=pubId value=$issue->getStoredPubId($pubIdPlugin->getPubIdType())}
|
||||
{if $pubId}
|
||||
{assign var="resolvingUrl" value=$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
|
||||
<div class="pub_id {$pubIdPlugin->getPubIdType()|escape}">
|
||||
<span class="type">
|
||||
{$pubIdPlugin->getPubIdDisplayType()|escape}:
|
||||
</span>
|
||||
<span class="id">
|
||||
{if $resolvingUrl}
|
||||
<a href="{$resolvingUrl|escape}">
|
||||
{$resolvingUrl}
|
||||
</a>
|
||||
{else}
|
||||
{$pubId}
|
||||
{/if}
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{* DOI *}
|
||||
{assign var=doiObject value=$issue->getData('doiObject')}
|
||||
{if $doiObject}
|
||||
{assign var="doiUrl" value=$doiObject->getData('resolvingUrl')|escape}
|
||||
<div class="pub_id doi">
|
||||
<span class="type">
|
||||
DOI:
|
||||
</span>
|
||||
<span class="id">
|
||||
<a href="{$doiUrl|escape}">
|
||||
{$doiUrl}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Published date *}
|
||||
{if $issue->getDatePublished()}
|
||||
<div class="published">
|
||||
<span class="label">
|
||||
{translate key="submissions.published"}:
|
||||
</span>
|
||||
<span class="value">
|
||||
{$issue->getDatePublished()|date_format:$dateFormatShort}
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{* Full-issue galleys *}
|
||||
{if $issueGalleys}
|
||||
<div class="galleys">
|
||||
<{$heading} id="issueTocGalleyLabel">
|
||||
{translate key="issue.fullIssue"}
|
||||
</{$heading}>
|
||||
<ul class="galleys_links">
|
||||
{foreach from=$issueGalleys item=galley}
|
||||
<li>
|
||||
{include file="frontend/objects/galley_link.tpl" parent=$issue labelledBy="issueTocGalleyLabel" purchaseFee=$currentJournal->getData('purchaseIssueFee') purchaseCurrency=$currentJournal->getData('currency')}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Articles *}
|
||||
<div class="sections">
|
||||
{foreach name=sections from=$publishedSubmissions item=section}
|
||||
<div class="section">
|
||||
{if $section.articles}
|
||||
{if $section.title}
|
||||
<{$heading}>
|
||||
{$section.title|escape}
|
||||
</{$heading}>
|
||||
{/if}
|
||||
<ul class="cmp_article_list articles">
|
||||
{foreach from=$section.articles item=article}
|
||||
<li>
|
||||
{include file="frontend/objects/article_summary.tpl" heading=$articleHeading}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div><!-- .sections -->
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
{**
|
||||
* templates/frontend/pages/aboutThisPublishingSystem.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 the page to view details about the OJS software.
|
||||
*
|
||||
* @uses $currentContext Journal The journal currently being viewed
|
||||
* @uses $appVersion string Current version of OJS
|
||||
* @uses $contactUrl string URL to the journal's contact page
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="about.aboutSoftware"}
|
||||
|
||||
<div class="page page_about_publishing_system">
|
||||
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.aboutSoftware"}
|
||||
<h1>
|
||||
{translate key="about.aboutSoftware"}
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
{if $currentContext}
|
||||
{translate key="about.aboutOJSJournal" ojsVersion=$appVersion contactUrl=$contactUrl}
|
||||
{else}
|
||||
{translate key="about.aboutOJSSite" ojsVersion=$appVersion}
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,36 @@
|
||||
{**
|
||||
* templates/frontend/pages/article.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 the page to view an article with all of it's details.
|
||||
*
|
||||
* @uses $article Submission This article
|
||||
* @uses $publication Publication The publication being displayed
|
||||
* @uses $firstPublication Publication The first published version of this article
|
||||
* @uses $currentPublication Publication The most recently published version of this article
|
||||
* @uses $issue Issue The issue this article is assigned to
|
||||
* @uses $section Section The journal section this article is assigned to
|
||||
* @uses $journal Journal The journal currently being viewed.
|
||||
* @uses $primaryGalleys array List of article galleys that are not supplementary or dependent
|
||||
* @uses $supplementaryGalleys array List of article galleys that are supplementary
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitleTranslated=$article->getCurrentPublication()->getLocalizedFullTitle(null, 'html')|strip_unsafe_html}
|
||||
|
||||
<div class="page page_article">
|
||||
{if $section}
|
||||
{include file="frontend/components/breadcrumbs_article.tpl" currentTitle=$section->getLocalizedTitle()}
|
||||
{else}
|
||||
{include file="frontend/components/breadcrumbs_article.tpl" currentTitleKey="common.publication"}
|
||||
{/if}
|
||||
|
||||
{* Show article overview *}
|
||||
{include file="frontend/objects/article_details.tpl"}
|
||||
|
||||
{call_hook name="Templates::Article::Footer::PageFooter"}
|
||||
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,103 @@
|
||||
{**
|
||||
* templates/frontend/pages/catalogCategory.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 the page to view a category of the catalog.
|
||||
*
|
||||
* @uses $category Category Current category being viewed
|
||||
* @uses $publishedSubmissions array List of published submissions in this category
|
||||
* @uses $parentCategory Category Parent category if one exists
|
||||
* @uses $subcategories array List of subcategories if they exist
|
||||
* @uses $prevPage int The previous page number
|
||||
* @uses $nextPage int The next page number
|
||||
* @uses $showingStart int The number of the first item on this page
|
||||
* @uses $showingEnd int The number of the last item on this page
|
||||
* @uses $total int Count of all published submissions in this category
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitleTranslated=$category->getLocalizedTitle()|escape}
|
||||
|
||||
<div class="page page_catalog_category">
|
||||
|
||||
{* Breadcrumb *}
|
||||
{include file="frontend/components/breadcrumbs_catalog.tpl" type="category" parent=$parentCategory currentTitle=$category->getLocalizedTitle()|escape}
|
||||
<h1>
|
||||
{$category->getLocalizedTitle()|escape}
|
||||
</h1>
|
||||
|
||||
{* Count of articles in this category *}
|
||||
<div class="article_count">
|
||||
{translate key="catalog.browseTitles" numTitles=$total}
|
||||
</div>
|
||||
|
||||
{* Image and description *}
|
||||
{assign var="image" value=$category->getImage()}
|
||||
{assign var="description" value=$category->getLocalizedDescription()|strip_unsafe_html}
|
||||
<div class="about_section{if $image} has_image{/if}{if $description} has_description{/if}">
|
||||
{if $image}
|
||||
<div class="cover" href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="fullSize" type="category" id=$category->getId()}">
|
||||
<img src="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="thumbnail" type="category" id=$category->getId()}" alt="null" />
|
||||
</div>
|
||||
{/if}
|
||||
<div class="description">
|
||||
{$description|strip_unsafe_html}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $subcategories|@count}
|
||||
<nav class="subcategories" role="navigation">
|
||||
<h2>
|
||||
{translate key="catalog.category.subcategories"}
|
||||
</h2>
|
||||
<ul>
|
||||
{foreach from=$subcategories item=subcategory}
|
||||
<li>
|
||||
<a href="{url op="category" path=$subcategory->getPath()}">
|
||||
{$subcategory->getLocalizedTitle()|escape}
|
||||
</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</nav>
|
||||
{/if}
|
||||
|
||||
<h2 class="title">
|
||||
{translate key="catalog.category.heading"}
|
||||
</h2>
|
||||
|
||||
{* No published titles in this category *}
|
||||
{if empty($publishedSubmissions)}
|
||||
<p>{translate key="catalog.category.noItems"}</p>
|
||||
{else}
|
||||
<ul class="cmp_article_list articles">
|
||||
{foreach from=$publishedSubmissions item=article}
|
||||
<li>
|
||||
{include file="frontend/objects/article_summary.tpl" article=$article hideGalleys=true heading="h3"}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
{* Pagination *}
|
||||
{if $prevPage > 1}
|
||||
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|to_array:$prevPage}{/capture}
|
||||
{elseif $prevPage === 1}
|
||||
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()}{/capture}
|
||||
{/if}
|
||||
{if $nextPage}
|
||||
{capture assign=nextUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|to_array:$nextPage}{/capture}
|
||||
{/if}
|
||||
{include
|
||||
file="frontend/components/pagination.tpl"
|
||||
prevUrl=$prevUrl
|
||||
nextUrl=$nextUrl
|
||||
showingStart=$showingStart
|
||||
showingEnd=$showingEnd
|
||||
total=$total
|
||||
}
|
||||
{/if}
|
||||
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,67 @@
|
||||
{**
|
||||
* templates/frontend/pages/indexJournal.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 the index page for a journal
|
||||
*
|
||||
* @uses $currentJournal Journal This journal
|
||||
* @uses $journalDescription string Journal description from HTML text editor
|
||||
* @uses $homepageImage object Image to be displayed on the homepage
|
||||
* @uses $additionalHomeContent string Arbitrary input from HTML text editor
|
||||
* @uses $announcements array List of announcements
|
||||
* @uses $numAnnouncementsHomepage int Number of announcements to display on the
|
||||
* homepage
|
||||
* @uses $issue Issue Current issue
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitleTranslated=$currentJournal->getLocalizedName()}
|
||||
|
||||
<div class="page_index_journal">
|
||||
|
||||
{call_hook name="Templates::Index::journal"}
|
||||
|
||||
{if !$activeTheme->getOption('useHomepageImageAsHeader') && $homepageImage}
|
||||
<div class="homepage_image">
|
||||
<img src="{$publicFilesDir}/{$homepageImage.uploadName|escape:"url"}"{if $homepageImage.altText} alt="{$homepageImage.altText|escape}"{/if}>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Journal Description *}
|
||||
{if $activeTheme->getOption('showDescriptionInJournalIndex')}
|
||||
<section class="homepage_about">
|
||||
<a id="homepageAbout"></a>
|
||||
<h2>{translate key="about.aboutContext"}</h2>
|
||||
{$currentContext->getLocalizedData('description')}
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{include file="frontend/objects/announcements_list.tpl" numAnnouncements=$numAnnouncementsHomepage}
|
||||
|
||||
{* Latest issue *}
|
||||
{if $issue}
|
||||
<section class="current_issue">
|
||||
<a id="homepageIssue"></a>
|
||||
<h2>
|
||||
{translate key="journal.currentIssue"}
|
||||
</h2>
|
||||
<div class="current_issue_title">
|
||||
{$issue->getIssueIdentification()|strip_unsafe_html}
|
||||
</div>
|
||||
{include file="frontend/objects/issue_toc.tpl" heading="h3"}
|
||||
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}" class="read_more">
|
||||
{translate key="journal.viewAllIssues"}
|
||||
</a>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
{* Additional Homepage Content *}
|
||||
{if $additionalHomeContent}
|
||||
<div class="additional_content">
|
||||
{$additionalHomeContent}
|
||||
</div>
|
||||
{/if}
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,76 @@
|
||||
{**
|
||||
* templates/frontend/pages/indexSite.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.
|
||||
*
|
||||
* Site index.
|
||||
*
|
||||
*}
|
||||
{include file="frontend/components/header.tpl"}
|
||||
|
||||
<div class="page_index_site">
|
||||
|
||||
{if $about}
|
||||
<div class="about_site">
|
||||
{$about}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{include file="frontend/objects/announcements_list.tpl" numAnnouncements=$numAnnouncementsHomepage}
|
||||
|
||||
<div class="journals">
|
||||
<h2>
|
||||
{translate key="context.contexts"}
|
||||
</h2>
|
||||
{if !$journals|@count}
|
||||
{translate key="site.noJournals"}
|
||||
{else}
|
||||
<ul>
|
||||
{foreach from=$journals item=journal}
|
||||
{capture assign="url"}{url journal=$journal->getPath()}{/capture}
|
||||
{assign var="thumb" value=$journal->getLocalizedData('journalThumbnail')}
|
||||
{assign var="description" value=$journal->getLocalizedDescription()}
|
||||
<li{if $thumb} class="has_thumb"{/if}>
|
||||
{if $thumb}
|
||||
<div class="thumb">
|
||||
<a href="{$url}">
|
||||
<img src="{$journalFilesPath}{$journal->getId()}/{$thumb.uploadName|escape:"url"}"{if $thumb.altText} alt="{$thumb.altText|escape|default:''}"{/if}>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="body">
|
||||
<h3>
|
||||
<a href="{$url}" rel="bookmark">
|
||||
{$journal->getLocalizedName()|escape}
|
||||
</a>
|
||||
</h3>
|
||||
{if $description}
|
||||
<div class="description">
|
||||
{$description}
|
||||
</div>
|
||||
{/if}
|
||||
<ul class="links">
|
||||
<li class="view">
|
||||
<a href="{$url}">
|
||||
{translate key="site.journalView"}
|
||||
</a>
|
||||
</li>
|
||||
<li class="current">
|
||||
<a href="{url journal=$journal->getPath() page="issue" op="current"}">
|
||||
{translate key="site.journalCurrent"}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,39 @@
|
||||
{**
|
||||
* templates/frontend/pages/issue.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 a landing page for a single issue. It will show the table of contents
|
||||
* (toc) or a cover image, with a click through to the toc.
|
||||
*
|
||||
* @uses $issue Issue The issue
|
||||
* @uses $issueIdentification string Label for this issue, consisting of one or
|
||||
* more of the volume, number, year and title, depending on settings
|
||||
* @uses $issueGalleys array Galleys for the entire issue
|
||||
* @uses $primaryGenreIds array List of file genre IDs for primary types
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitleTranslated=$issueIdentification}
|
||||
|
||||
<div class="page page_issue">
|
||||
|
||||
{* Display a message if no current issue exists *}
|
||||
{if !$issue}
|
||||
{include file="frontend/components/breadcrumbs_issue.tpl" currentTitleKey="current.noCurrentIssue"}
|
||||
<h1>
|
||||
{translate key="current.noCurrentIssue"}
|
||||
</h1>
|
||||
{include file="frontend/components/notification.tpl" type="warning" messageKey="current.noCurrentIssueDesc"}
|
||||
|
||||
{* Display an issue with the Table of Contents *}
|
||||
{else}
|
||||
{include file="frontend/components/breadcrumbs_issue.tpl" currentTitle=$issueIdentification}
|
||||
<h1>
|
||||
{$issueIdentification|escape}
|
||||
</h1>
|
||||
{include file="frontend/objects/issue_toc.tpl"}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,66 @@
|
||||
{**
|
||||
* templates/frontend/pages/issueArchive.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 a list of recent issues.
|
||||
*
|
||||
* @uses $issues Array Collection of issues to display
|
||||
* @uses $prevPage int The previous page number
|
||||
* @uses $nextPage int The next page number
|
||||
* @uses $showingStart int The number of the first item on this page
|
||||
* @uses $showingEnd int The number of the last item on this page
|
||||
* @uses $total int Count of all published monographs
|
||||
*}
|
||||
{capture assign="pageTitle"}
|
||||
{if $prevPage}
|
||||
{translate key="archive.archivesPageNumber" pageNumber=$prevPage+1}
|
||||
{else}
|
||||
{translate key="archive.archives"}
|
||||
{/if}
|
||||
{/capture}
|
||||
{include file="frontend/components/header.tpl" pageTitleTranslated=$pageTitle}
|
||||
|
||||
<div class="page page_issue_archive">
|
||||
{include file="frontend/components/breadcrumbs.tpl" currentTitle=$pageTitle}
|
||||
<h1>
|
||||
{$pageTitle|escape}
|
||||
</h1>
|
||||
|
||||
{* No issues have been published *}
|
||||
{if empty($issues)}
|
||||
<p>{translate key="current.noCurrentIssueDesc"}</p>
|
||||
|
||||
{* List issues *}
|
||||
{else}
|
||||
<ul class="issues_archive">
|
||||
{foreach from=$issues item="issue"}
|
||||
<li>
|
||||
{include file="frontend/objects/issue_summary.tpl"}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
{* Pagination *}
|
||||
{if $prevPage > 1}
|
||||
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive" path=$prevPage}{/capture}
|
||||
{elseif $prevPage === 1}
|
||||
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}{/capture}
|
||||
{/if}
|
||||
{if $nextPage}
|
||||
{capture assign=nextUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive" path=$nextPage}{/capture}
|
||||
{/if}
|
||||
{include
|
||||
file="frontend/components/pagination.tpl"
|
||||
prevUrl=$prevUrl
|
||||
nextUrl=$nextUrl
|
||||
showingStart=$showingStart
|
||||
showingEnd=$showingEnd
|
||||
total=$total
|
||||
}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,53 @@
|
||||
{**
|
||||
* templates/frontend/pages/purchaseIndividualSubscription.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.
|
||||
*
|
||||
* User purchase individual subscription form
|
||||
*
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.purchaseIndividualSubscription"}
|
||||
|
||||
<div class="pkp_page_content pkp_page_purchaseIndividualSubscription">
|
||||
<form class="cmp_form purchase_subscription" method="post" id="subscriptionForm" action="{url op="payPurchaseSubscription" path="individual"|to_array:$subscriptionId}">
|
||||
{csrf}
|
||||
|
||||
<fieldset>
|
||||
<legend>
|
||||
{translate key="payment.subscription.purchase"}
|
||||
</legend>
|
||||
<div class="fields">
|
||||
<div class="subscription_type">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.typeId"}
|
||||
</span>
|
||||
<select name="typeId" id="typeId">
|
||||
{foreach name=types from=$subscriptionTypes key=thisTypeId item=subscriptionType}
|
||||
<option value="{$thisTypeId|escape}"{if $typeId == $thisTypeId} selected{/if}>{$subscriptionType|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="subscription_membership">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.membership"}
|
||||
</span>
|
||||
<input type="text" name="membership" id="membership" value="{$membership|escape}">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="buttons">
|
||||
<button class="submit" type="submit">
|
||||
{translate key="common.save"}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,111 @@
|
||||
{**
|
||||
* templates/payments/userInstitutionalSubscriptionForm.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 purchase institutional subscription form
|
||||
*
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.purchaseInstitutionalSubscription"}
|
||||
|
||||
<div class="pkp_page_content pkp_page_purchaseInstitutionalSubscription">
|
||||
<h1 class="page_title">
|
||||
{translate key="user.subscriptions.purchaseInstitutionalSubscription"}
|
||||
</h1>
|
||||
|
||||
{assign var="formPath" value="institutional"}
|
||||
{if $subscriptionId}
|
||||
{assign var="formPath" value="institutional"|to_array:$subscriptionId}
|
||||
{/if}
|
||||
<form class="cmp_form purchase_subscription" method="post" id="subscriptionForm" action="{url op="payPurchaseSubscription" path=$formPath}">
|
||||
{csrf}
|
||||
|
||||
{include file="common/formErrors.tpl"}
|
||||
|
||||
<fieldset>
|
||||
<legend>
|
||||
{translate key="payment.subscription.purchase"}
|
||||
</legend>
|
||||
<div class="fields">
|
||||
<div class="subscription_type">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.typeId"}
|
||||
<span class="required">*</span>
|
||||
<span class="pkp_screen_reader">
|
||||
{translate key="common.required"}
|
||||
</span>
|
||||
</span>
|
||||
<select name="typeId" id="typeId" required>
|
||||
{foreach name=types from=$subscriptionTypes item=subscriptionType}
|
||||
<option value="{$subscriptionType->getId()}"{if $typeId == $subscriptionType->getId()} selected{/if}>{$subscriptionType->getSummaryString()|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="subscription_membership">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.membership"}
|
||||
</span>
|
||||
<input type="text" name="membership" id="membership" value="{$membership|escape}" aria-describedby="subscriptionMembershipDescription">
|
||||
</label>
|
||||
<p class="description" id="subscriptionMembershipDescription">{translate key="user.subscriptions.form.membershipInstructions"}</p>
|
||||
</div>
|
||||
<div class="subscription_institution">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.institutionName"}
|
||||
</span>
|
||||
<input type="text" name="institutionName" id="institutionName" value="{$institutionName|escape}">
|
||||
</label>
|
||||
</div>
|
||||
<div class="subscription_address">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.institutionMailingAddress"}
|
||||
</span>
|
||||
<textarea name="institutionMailingAddress" id="institutionMailingAddress">{$institutionMailingAddress|escape}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<div class="fields">
|
||||
<div class="subscription_domain">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.domain"}
|
||||
</span>
|
||||
<input type="text" name="domain" id="domain" value="{$domain|escape}" aria-describedby="subscriptionDomainDescription">
|
||||
</label>
|
||||
<p class="description" id="subscriptionDomainDescription">{translate key="user.subscriptions.form.domainInstructions"}</p>
|
||||
</div>
|
||||
<div class="subscription_ips">
|
||||
<label>
|
||||
<span class="label">
|
||||
{translate key="user.subscriptions.form.ipRange"}
|
||||
</span>
|
||||
<textarea name="ipRanges" id="ipRanges">{$ipRanges|escape}</textarea>
|
||||
</label>
|
||||
<p class="description" id="subscriptionIPDescription">{translate key="user.subscriptions.form.ipRangeInstructions"}</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="buttons">
|
||||
<button class="submit" type="submit">
|
||||
{translate key="common.continue"}
|
||||
</button>
|
||||
<a class="cmp_button_link" href="{url page="user" op="subscriptions"}">
|
||||
{translate key="common.cancel"}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,142 @@
|
||||
{**
|
||||
* templates/frontend/pages/search.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 the page to search and view search results.
|
||||
*
|
||||
* @uses $query Value of the primary search query
|
||||
* @uses $authors Value of the authors search filter
|
||||
* @uses $dateFrom Value of the date from search filter (published after).
|
||||
* Value is a single string: YYYY-MM-DD HH:MM:SS
|
||||
* @uses $dateTo Value of the date to search filter (published before).
|
||||
* Value is a single string: YYYY-MM-DD HH:MM:SS
|
||||
* @uses $yearStart Earliest year that can be used in from/to filters
|
||||
* @uses $yearEnd Latest year that can be used in from/to filters
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="common.search"}
|
||||
|
||||
{if !$heading}
|
||||
{assign var="heading" value="h2"}
|
||||
{/if}
|
||||
|
||||
<div class="page page_search">
|
||||
|
||||
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="common.search"}
|
||||
<h1>
|
||||
{translate key="common.search"}
|
||||
</h1>
|
||||
|
||||
{capture name="searchFormUrl"}{url escape=false}{/capture}
|
||||
{assign var=formUrlParameters value=[]}{* Prevent Smarty warning *}
|
||||
{$smarty.capture.searchFormUrl|parse_url:$smarty.const.PHP_URL_QUERY|default:""|parse_str:$formUrlParameters}
|
||||
<form class="cmp_form" method="get" action="{$smarty.capture.searchFormUrl|strtok:"?"|escape}" role="form">
|
||||
{foreach from=$formUrlParameters key=paramKey item=paramValue}
|
||||
<input type="hidden" name="{$paramKey|escape}" value="{$paramValue|escape}"/>
|
||||
{/foreach}
|
||||
|
||||
{* Repeat the label text just so that screen readers have a clear
|
||||
label/input relationship *}
|
||||
<div class="search_input">
|
||||
<label class="pkp_screen_reader" for="query">
|
||||
{translate key="search.searchFor"}
|
||||
</label>
|
||||
{block name=searchQuery}
|
||||
<input type="text" id="query" name="query" value="{$query|escape}" class="query" placeholder="{translate|escape key="common.search"}">
|
||||
{/block}
|
||||
</div>
|
||||
|
||||
<fieldset class="search_advanced">
|
||||
<legend>
|
||||
{translate key="search.advancedFilters"}
|
||||
</legend>
|
||||
<div class="date_range">
|
||||
<div class="from">
|
||||
{capture assign="dateFromLegend"}{translate key="search.dateFrom"}{/capture}
|
||||
{html_select_date_a11y legend=$dateFromLegend prefix="dateFrom" time=$dateFrom start_year=$yearStart end_year=$yearEnd}
|
||||
</div>
|
||||
<div class="to">
|
||||
{capture assign="dateFromTo"}{translate key="search.dateTo"}{/capture}
|
||||
{html_select_date_a11y legend=$dateFromTo prefix="dateTo" time=$dateTo start_year=$yearStart end_year=$yearEnd}
|
||||
</div>
|
||||
</div>
|
||||
<div class="author">
|
||||
<label class="label" for="authors">
|
||||
{translate key="search.author"}
|
||||
</label>
|
||||
{block name=searchAuthors}
|
||||
<input type="text" id="authors" name="authors" value="{$authors|escape}">
|
||||
{/block}
|
||||
|
||||
{if $searchableContexts}
|
||||
<label class="label label_contexts" for="searchJournal">
|
||||
{translate key="context.context"}
|
||||
</label>
|
||||
<select name="searchJournal" id="searchJournal">
|
||||
<option></option>
|
||||
{foreach from=$searchableContexts item="searchableContext"}
|
||||
<option value="{$searchableContext->id}" {if $searchJournal == $searchableContext->id}selected{/if}>
|
||||
{$searchableContext->name|escape}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/if}
|
||||
</div>
|
||||
{call_hook name="Templates::Search::SearchResults::AdditionalFilters"}
|
||||
</fieldset>
|
||||
|
||||
<div class="submit">
|
||||
<button class="submit" type="submit">{translate key="common.search"}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{call_hook name="Templates::Search::SearchResults::PreResults"}
|
||||
|
||||
<h2 class="pkp_screen_reader">{translate key="search.searchResults"}</h2>
|
||||
|
||||
{* Results pagination *}
|
||||
{if !$results->wasEmpty()}
|
||||
{assign var="count" value=$results->count}
|
||||
<div class="pkp_screen_reader" role="status">
|
||||
{if $results->count > 1}
|
||||
{translate key="search.searchResults.foundPlural" count=$results->count}
|
||||
{else}
|
||||
{translate key="search.searchResults.foundSingle"}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Search results, finally! *}
|
||||
<ul class="search_results">
|
||||
{iterate from=results item=result}
|
||||
<li>
|
||||
{include file="frontend/objects/article_summary.tpl" article=$result.publishedSubmission journal=$result.journal showDatePublished=true hideGalleys=true heading="h3"}
|
||||
</li>
|
||||
{/iterate}
|
||||
</ul>
|
||||
|
||||
{* No results found *}
|
||||
{if $results->wasEmpty()}
|
||||
<span role="status">
|
||||
{if $error}
|
||||
{include file="frontend/components/notification.tpl" type="error" message=$error|escape}
|
||||
{else}
|
||||
{include file="frontend/components/notification.tpl" type="notice" messageKey="search.noResults"}
|
||||
{/if}
|
||||
</span>
|
||||
|
||||
{* Results pagination *}
|
||||
{else}
|
||||
<div class="cmp_pagination">
|
||||
{page_info iterator=$results}
|
||||
{page_links anchor="results" iterator=$results name="search" query=$query searchJournal=$searchJournal authors=$authors dateFromMonth=$dateFromMonth dateFromDay=$dateFromDay dateFromYear=$dateFromYear dateToMonth=$dateToMonth dateToDay=$dateToDay dateToYear=$dateToYear}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Search Syntax Instructions *}
|
||||
{block name=searchSyntaxInstructions}{/block}
|
||||
</div><!-- .page -->
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,27 @@
|
||||
{**
|
||||
* templates/frontend/pages/submissions.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2023 Simon Fraser University
|
||||
* Copyright (c) 2003-2023 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief Display the page to view information about submissions.
|
||||
*}
|
||||
{capture assign="submissionChecklistAfterContent"}
|
||||
{foreach from=$sections item="section"}
|
||||
{if $section->getLocalizedPolicy()}
|
||||
<div class="section_policy">
|
||||
<h2>{$section->getLocalizedTitle()|escape}</h2>
|
||||
{$section->getLocalizedPolicy()}
|
||||
{if $isUserLoggedIn}
|
||||
{capture assign="sectionSubmissionUrl"}{url page="submission" sectionId=$section->getId()}{/capture}
|
||||
<p>
|
||||
{translate key="about.onlineSubmissions.submitToSection" name=$section->getLocalizedTitle()|escape url=$sectionSubmissionUrl}
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/capture}
|
||||
|
||||
{include file="core:frontend/pages/submissions.tpl"}
|
||||
@@ -0,0 +1,94 @@
|
||||
{**
|
||||
* templates/frontend/pages/subscriptions.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.
|
||||
*
|
||||
* About the Journal Subscriptions.
|
||||
*
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="about.subscriptions"}
|
||||
|
||||
<div class="page page_subscriptions">
|
||||
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.subscriptions"}
|
||||
<h1>
|
||||
{translate key="about.subscriptions"}
|
||||
</h1>
|
||||
{include file="frontend/components/subscriptionContact.tpl"}
|
||||
|
||||
<a name="subscriptionTypes"></a>
|
||||
{if $individualSubscriptionTypes|@count}
|
||||
<div class="subscriptions_institutional">
|
||||
<h3>{translate key="about.subscriptions.individual"}</h3>
|
||||
<p>{translate key="subscriptions.individualDescription"}</p>
|
||||
<table class="cmp_table">
|
||||
<tr>
|
||||
<th>{translate key="about.subscriptionTypes.name"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.format"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.duration"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.cost"}</th>
|
||||
</tr>
|
||||
{foreach from=$individualSubscriptionTypes item=subscriptionType}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="subscription_name">
|
||||
{$subscriptionType->getLocalizedName()|escape}
|
||||
</div>
|
||||
<div class="subscription_description">
|
||||
{$subscriptionType->getLocalizedDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
</td>
|
||||
<td>{translate key=$subscriptionType->getFormatString()}</td>
|
||||
<td>{$subscriptionType->getDurationYearsMonths()|escape}</td>
|
||||
<td>{$subscriptionType->getCost()|string_format:"%.2f"} ({$subscriptionType->getCurrencyStringShort()|escape})</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
{if $isUserLoggedIn}
|
||||
<div class="subscriptions_individual_purchase">
|
||||
<a class="action" href="{url page="user" op="purchaseSubscription" path="individual"}">
|
||||
{translate key="user.subscriptions.purchaseNewSubscription"}
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $institutionalSubscriptionTypes|@count}
|
||||
<h3>{translate key="about.subscriptions.institutional"}</h3>
|
||||
<p>{translate key="subscriptions.institutionalDescription"}</p>
|
||||
<table class="cmp_table">
|
||||
<tr>
|
||||
<th>{translate key="about.subscriptionTypes.name"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.format"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.duration"}</th>
|
||||
<th>{translate key="about.subscriptionTypes.cost"}</th>
|
||||
</tr>
|
||||
{foreach from=$institutionalSubscriptionTypes item=subscriptionType}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="subscription_name">
|
||||
{$subscriptionType->getLocalizedName()|escape}
|
||||
</div>
|
||||
<div class="subscription_description">
|
||||
{$subscriptionType->getLocalizedDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
</td>
|
||||
<td>{translate key=$subscriptionType->getFormatString()}</td>
|
||||
<td>{$subscriptionType->getDurationYearsMonths()|escape}</td>
|
||||
<td>{$subscriptionType->getCost()|string_format:"%.2f"} ({$subscriptionType->getCurrencyStringShort()|escape})</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
{if $isUserLoggedIn}
|
||||
<div class="subscriptions_institutional_purchase">
|
||||
<a class="action" href="{url page="user" op="purchaseSubscription" path="institutional"}">
|
||||
{translate key="user.subscriptions.purchaseNewSubscription"}
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,237 @@
|
||||
{**
|
||||
* templates/frontend/pages/userSubscriptions.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 Page where users can view and manage their subscriptions.
|
||||
*
|
||||
* @uses $paymentsEnabled boolean
|
||||
* @uses $individualSubscriptionTypesExist boolean Have any individual
|
||||
* subscription types been created?
|
||||
* @uses $userIndividualSubscription IndividualSubscription
|
||||
* @uses $institutionalSubscriptionTypesExist boolean Have any institutional
|
||||
* subscription types been created?
|
||||
* @uses $userInstitutionalSubscriptions array
|
||||
*}
|
||||
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.mySubscriptions"}
|
||||
|
||||
<div class="page page_user_subscriptions">
|
||||
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="user.subscriptions.mySubscriptions"}
|
||||
<h1>
|
||||
{translate key="user.subscriptions.mySubscriptions"}
|
||||
</h1>
|
||||
{include file="frontend/components/subscriptionContact.tpl"}
|
||||
|
||||
{if $paymentsEnabled}
|
||||
<div class="my_subscription_payments">
|
||||
<h3>{translate key="user.subscriptions.subscriptionStatus"}</h3>
|
||||
<p>{translate key="user.subscriptions.statusInformation"}</p>
|
||||
<table class="cmp_table">
|
||||
<tr>
|
||||
<th>{translate key="user.subscriptions.status"}</th>
|
||||
<th>{translate key="user.subscriptions.statusDescription"}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{translate key="subscriptions.status.needsInformation"}</td>
|
||||
<td>{translate key="user.subscriptions.status.needsInformationDescription"}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{translate key="subscriptions.status.needsApproval"}</td>
|
||||
<td>{translate key="user.subscriptions.status.needsApprovalDescription"}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{translate key="subscriptions.status.awaitingManualPayment"}</td>
|
||||
<td>{translate key="user.subscriptions.status.awaitingManualPaymentDescription"}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{translate key="subscriptions.status.awaitingOnlinePayment"}</td>
|
||||
<td>{translate key="user.subscriptions.status.awaitingOnlinePaymentDescription"}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $individualSubscriptionTypesExist}
|
||||
<div class="my_subscription_individual">
|
||||
<h3>{translate key="user.subscriptions.individualSubscriptions"}</h3>
|
||||
<p>{translate key="subscriptions.individualDescription"}</p>
|
||||
{if $userIndividualSubscription}
|
||||
<table class="cmp_table">
|
||||
<tr>
|
||||
<th>{translate key="user.subscriptions.form.typeId"}</th>
|
||||
<th>{translate key="subscriptions.status"}</th>
|
||||
{if $paymentsEnabled}
|
||||
<th></th>
|
||||
{/if}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$userIndividualSubscription->getSubscriptionTypeName()|escape}</td>
|
||||
<td>
|
||||
{assign var="subscriptionStatus" value=$userIndividualSubscription->getStatus()}
|
||||
{assign var="isNonExpiring" value=$userIndividualSubscription->isNonExpiring()}
|
||||
{if $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.status.awaitingOnlinePayment"}
|
||||
</span>
|
||||
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.status.awaitingManualPayment"}
|
||||
</span>
|
||||
{elseif $subscriptionStatus != \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.inactive"}
|
||||
</span>
|
||||
{else}
|
||||
{if $isNonExpiring}
|
||||
{translate key="subscriptionTypes.nonExpiring"}
|
||||
{else}
|
||||
{assign var="isExpired" value=$userIndividualSubscription->isExpired()}
|
||||
{if $isExpired}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="user.subscriptions.expired" date=$userIndividualSubscription->getDateEnd()|date_format:$dateFormatShort}
|
||||
</span>
|
||||
{else}
|
||||
<span class="subscription_active">
|
||||
{translate key="user.subscriptions.expires" date=$userIndividualSubscription->getDateEnd()|date_format:$dateFormatShort}
|
||||
</span>
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{if $paymentsEnabled}
|
||||
<td>
|
||||
{if $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
|
||||
<a class="cmp_button" href="{url op="completePurchaseSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
|
||||
{translate key="user.subscriptions.purchase"}
|
||||
</a>
|
||||
{elseif $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
|
||||
{if !$isNonExpiring}
|
||||
<a class="cmp_button" href="{url op="payRenewSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
|
||||
{translate key="user.subscriptions.renew"}
|
||||
</a>
|
||||
{/if}
|
||||
<a class="cmp_button" href="{url op="purchaseSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
|
||||
{translate key="user.subscriptions.purchase"}
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
{/if}
|
||||
</tr>
|
||||
</table>
|
||||
{elseif $paymentsEnabled}
|
||||
<p>
|
||||
<a class="action" href="{url op="purchaseSubscription" path="individual"}">
|
||||
{translate key="user.subscriptions.purchaseNewSubscription"}
|
||||
</a>
|
||||
</p>
|
||||
{else}
|
||||
<p>
|
||||
<a href="{url page="about" op="subscriptions" anchor="subscriptionTypes"}">
|
||||
{translate key="user.subscriptions.viewSubscriptionTypes"}
|
||||
</a>
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $institutionalSubscriptionTypesExist}
|
||||
<div class="my_subscriptions_institutional">
|
||||
<h3>{translate key="user.subscriptions.institutionalSubscriptions"}</h3>
|
||||
<p>
|
||||
{translate key="subscriptions.institutionalDescription"}
|
||||
{if $paymentsEnabled}
|
||||
{translate key="subscriptions.institutionalOnlinePaymentDescription"}
|
||||
{/if}
|
||||
</p>
|
||||
{if $userInstitutionalSubscriptions}
|
||||
<table class="cmp_table">
|
||||
<tr>
|
||||
<th>{translate key="user.subscriptions.form.typeId"}</th>
|
||||
<th>{translate key="user.subscriptions.form.institutionName"}</th>
|
||||
<th>{translate key="subscriptions.status"}</th>
|
||||
{if $paymentsEnabled}
|
||||
<th></th>
|
||||
{/if}
|
||||
</tr>
|
||||
{iterate from=userInstitutionalSubscriptions item=userInstitutionalSubscription}
|
||||
<tr>
|
||||
<td>{$userInstitutionalSubscription->getSubscriptionTypeName()|escape}</td>
|
||||
<td>{$institutions[$userInstitutionalSubscription->getId()]->getLocalizedName()|escape}</td>
|
||||
<td>
|
||||
{assign var="subscriptionStatus" value=$userInstitutionalSubscription->getStatus()}
|
||||
{assign var="isNonExpiring" value=$userInstitutionalSubscription->isNonExpiring()}
|
||||
{if $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.status.awaitingOnlinePayment"}
|
||||
</span>
|
||||
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.status.awaitingManualPayment"}
|
||||
</span>
|
||||
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_NEEDS_APPROVAL}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.status.needsApproval"}
|
||||
</span>
|
||||
{elseif $subscriptionStatus != \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="subscriptions.inactive"}
|
||||
</span>
|
||||
{else}
|
||||
{if $isNonExpiring}
|
||||
<span class="subscription_active">
|
||||
{translate key="subscriptionTypes.nonExpiring"}
|
||||
</span>
|
||||
{else}
|
||||
{assign var="isExpired" value=$userInstitutionalSubscription->isExpired()}
|
||||
{if $isExpired}
|
||||
<span class="subscription_disabled">
|
||||
{translate key="user.subscriptions.expired" date=$userInstitutionalSubscription->getDateEnd()|date_format:$dateFormatShort}
|
||||
</span>
|
||||
{else}
|
||||
<span class="subscription_enabled">
|
||||
{translate key="user.subscriptions.expires" date=$userInstitutionalSubscription->getDateEnd()|date_format:$dateFormatShort}
|
||||
</span>
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{if $paymentsEnabled}
|
||||
<td>
|
||||
{if $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
|
||||
<a class="cmp_button" href="{url op="completePurchaseSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
|
||||
{translate key="user.subscriptions.purchase"}
|
||||
</a>
|
||||
{elseif $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
|
||||
{if !$isNonExpiring}
|
||||
<a class="cmp_button" href="{url op="payRenewSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
|
||||
{translate key="user.subscriptions.renew"}
|
||||
</a>
|
||||
{/if}
|
||||
<a class="cmp_button" href="{url op="purchaseSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
|
||||
{translate key="user.subscriptions.purchase"}
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/iterate}
|
||||
</table>
|
||||
{/if}
|
||||
<p>
|
||||
{if $paymentsEnabled}
|
||||
<a class="action" href="{url page="user" op="purchaseSubscription" path="institutional"}">
|
||||
{translate key="user.subscriptions.purchaseNewSubscription"}
|
||||
</a>
|
||||
{else}
|
||||
<a href="{url page="about" op="subscriptions" anchor="subscriptionTypes"}">
|
||||
{translate key="user.subscriptions.viewSubscriptionTypes"}
|
||||
</a>
|
||||
{/if}
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
@@ -0,0 +1,126 @@
|
||||
{**
|
||||
* templates/gateway/clockss.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Adapted from lockss.tpl by Martin Paul Eve
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* CLOCKSS Publisher Manifest gateway page.
|
||||
* NOTE: This page is not localized in order to provide a consistent interface to CLOCKSS across all OJS installations. It is not meant to be accessed by humans.
|
||||
*
|
||||
*}
|
||||
{strip}
|
||||
{assign var="pageTitleTranslated" value="CLOCKSS Publisher Manifest"}
|
||||
{include file="frontend/components/header.tpl"}
|
||||
{/strip}
|
||||
<div class="page clockss">
|
||||
{if $journals}
|
||||
<h3>Archive of Published Issues</h3>
|
||||
|
||||
<ul>
|
||||
{iterate from=journals item=journal}
|
||||
{if $journal->getData('enableClockss')}<li><a href="{url journal=$journal->getPath() page="gateway" op="clockss"}">{$journal->getLocalizedName()|escape}</a></li>{/if}
|
||||
{/iterate}
|
||||
</ul>
|
||||
{else}
|
||||
|
||||
<p>{if $prevYear !== null}<a href="{url op="clockss" year=$prevYear}" class="action"><< Previous</a>{else}<span class="disabled heading"><< Previous</span>{/if} | {if $nextYear !== null}<a href="{url op="clockss" year=$nextYear}" class="action">Next >></a>{else}<span class="disabled heading">Next >></span>{/if}</p>
|
||||
|
||||
<h3>Archive of Published Issues: {$year|default:''|escape}</h3>
|
||||
|
||||
<ul>
|
||||
{foreach from=$issues item=issue}
|
||||
<li><a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">{$issue->getIssueIdentification()|strip_unsafe_html|nl2br}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
<h3>Front Matter</h3>
|
||||
|
||||
<p>Front Matter associated with this Archival Unit includes:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="{url page="about"}">About the Journal</a></li>
|
||||
<li><a href="{url page="about" op="submissions"}">Submission Guidelines</a></li>
|
||||
<li><a href="{url page="about" op="contact"}">Contact Information</a></li>
|
||||
</ul>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
<h3>Metadata</h3>
|
||||
|
||||
<p>Metadata associated with this Archival Unit includes:</p>
|
||||
|
||||
<table class="data">
|
||||
<tr>
|
||||
<td width="15%" class="label">Journal URL</td>
|
||||
<td width="85%" class="value"><a href="{url journal=$journal->getPath()}">{url journal=$journal->getPath()|escape}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Title</td>
|
||||
<td class="value">{$journal->getLocalizedName()|escape}</td>
|
||||
</tr>
|
||||
{if $journal->getSetting('publisherInstitution')}
|
||||
<tr>
|
||||
<td class="label">Publisher</td>
|
||||
<td class="value">{$journal->getData('publisherInstitution')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedSetting('searchDescription')}
|
||||
<tr>
|
||||
<td class="label">Description</td>
|
||||
<td class="value">{$journal->getLocalizedData('searchDescription')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getData('onlineIssn')}
|
||||
<tr>
|
||||
<td class="label">ISSN</td>
|
||||
<td class="value">{$journal->getData('onlineIssn')|escape}</td>
|
||||
</tr>
|
||||
{elseif $journal->getData('printIssn')}
|
||||
<tr>
|
||||
<td class="label">ISSN</td>
|
||||
<td class="value">{$journal->getData('printIssn')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td class="label">Language(s)</td>
|
||||
<td class="value">{foreach from=$locales key=localeKey item=localeName}{$localeName|escape} ({$localeKey|escape})<br />{/foreach}</td>
|
||||
</tr>
|
||||
{if $journal->getSetting('contactEmail')}
|
||||
<tr>
|
||||
<td class="label">Publisher Email</td>
|
||||
<td class="value">{mailto address=$journal->getData('contactEmail')|escape encode="hex"}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedData('copyrightNotice')}
|
||||
<tr>
|
||||
<td class="label">Copyright</td>
|
||||
<td class="value">{$journal->getLocalizedData('licenseTerms')|nl2br}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedData('openAccessPolicy')}
|
||||
<tr>
|
||||
<td class="label">Rights</td>
|
||||
<td class="value">{$journal->getLocalizedData('openAccessPolicy')|nl2br}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
<p>CLOCKSS system has permission to ingest, preserve, and serve this Archival Unit.</p>
|
||||
|
||||
<p><a href="https://pkp.sfu.ca/"><img src="{$baseUrl}/lib/pkp/templates/images/pkp.gif" style="border: 0;" alt="The Public Knowledge Project" /></a></p>
|
||||
<p>Open Journal Systems was developed by the Public Knowledge Project.</p>
|
||||
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
{**
|
||||
* templates/gateway/lockss.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Adapted from lockss.tpl by Martin Paul Eve
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* LOCKSS Publisher Manifest gateway page.
|
||||
* NOTE: This page is not localized in order to provide a consistent interface to LOCKSS across all OJS installations. It is not meant to be accessed by humans.
|
||||
*
|
||||
*}
|
||||
{strip}
|
||||
{assign var="pageTitleTranslated" value="LOCKSS Publisher Manifest"}
|
||||
{include file="frontend/components/header.tpl"}
|
||||
{/strip}
|
||||
<div class="page lockss">
|
||||
{if $journals}
|
||||
<h3>Archive of Published Issues</h3>
|
||||
|
||||
<ul>
|
||||
{iterate from=journals item=journal}
|
||||
{if $journal->getData('enableLockss')}<li><a href="{url journal=$journal->getPath() page="gateway" op="lockss"}">{$journal->getLocalizedName()|escape}</a></li>{/if}
|
||||
{/iterate}
|
||||
</ul>
|
||||
{else}
|
||||
|
||||
<p>{if $prevYear !== null}<a href="{url op="lockss" year=$prevYear}" class="action"><< Previous</a>{else}<span class="disabled heading"><< Previous</span>{/if} | {if $nextYear !== null}<a href="{url op="lockss" year=$nextYear}" class="action">Next >></a>{else}<span class="disabled heading">Next >></span>{/if}</p>
|
||||
|
||||
<h3>Archive of Published Issues: {$year|default:''|escape}</h3>
|
||||
|
||||
<ul>
|
||||
{foreach from=$issues item=issue}
|
||||
<li><a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">{$issue->getIssueIdentification()|strip_unsafe_html|nl2br}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
<h3>Front Matter</h3>
|
||||
|
||||
<p>Front Matter associated with this Archival Unit includes:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="{url page="about"}">About the Journal</a></li>
|
||||
<li><a href="{url page="about" op="submissions"}">Submission Guidelines</a></li>
|
||||
<li><a href="{url page="about" op="contact"}">Contact Information</a></li>
|
||||
</ul>
|
||||
|
||||
<br />
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
<h3>Metadata</h3>
|
||||
|
||||
<p>Metadata associated with this Archival Unit includes:</p>
|
||||
|
||||
<table class="data">
|
||||
<tr>
|
||||
<td width="15%" class="label">Journal URL</td>
|
||||
<td width="85%" class="value"><a href="{url journal=$journal->getPath()}">{url journal=$journal->getPath()|escape}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Title</td>
|
||||
<td class="value">{$journal->getLocalizedName()|escape}</td>
|
||||
</tr>
|
||||
{if $journal->getData('publisherInstitution')}
|
||||
<tr>
|
||||
<td class="label">Publisher</td>
|
||||
<td class="value">{$journal->getData('publisherInstitution')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedData('searchDescription')}
|
||||
<tr>
|
||||
<td class="label">Description</td>
|
||||
<td class="value">{$journal->getLocalizedData('searchDescription')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getData('onlineIssn')}
|
||||
<tr>
|
||||
<td class="label">ISSN</td>
|
||||
<td class="value">{$journal->getData('onlineIssn')|escape}</td>
|
||||
</tr>
|
||||
{elseif $journal->getData('printIssn')}
|
||||
<tr>
|
||||
<td class="label">ISSN</td>
|
||||
<td class="value">{$journal->getData('printIssn')|escape}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td class="label">Language(s)</td>
|
||||
<td class="value">{foreach from=$locales key=localeKey item=localeName}{$localeName|escape} ({$localeKey|escape})<br />{/foreach}</td>
|
||||
</tr>
|
||||
{if $journal->getData('contactEmail')}
|
||||
<tr>
|
||||
<td class="label">Publisher Email</td>
|
||||
<td class="value">{mailto address=$journal->getData('contactEmail')|escape encode="hex"}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedData('copyrightNotice')}
|
||||
<tr>
|
||||
<td class="label">Copyright</td>
|
||||
<td class="value">{$journal->getLocalizedData('licenseTerms')|nl2br}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $journal->getLocalizedData('openAccessPolicy')}
|
||||
<tr>
|
||||
<td class="label">Rights</td>
|
||||
<td class="value">{$journal->getLocalizedData('openAccessPolicy')|nl2br}</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
|
||||
<a href="https://www.lockss.org/"><img src="{$baseUrl}/templates/images/lockss.gif" style="border: 0;" alt="LOCKSS" /></a>
|
||||
<p>LOCKSS system has permission to collect, preserve, and serve this Archival Unit.</p>
|
||||
|
||||
<p><a href="https://pkp.sfu.ca/"><img src="{$baseUrl}/lib/pkp/templates/images/pkp.gif" style="border: 0;" alt="The Public Knowledge Project" /></a></p>
|
||||
<p>Open Journal Systems was developed by the Public Knowledge Project.</p>
|
||||
|
||||
</div>
|
||||
|
||||
{include file="frontend/components/footer.tpl"}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 90 B |
Binary file not shown.
|
After Width: | Height: | Size: 82 B |
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 9.8 KiB |
@@ -0,0 +1,29 @@
|
||||
{**
|
||||
* templates/manageIssues/issues.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 issue management page.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="editor.navigation.issues"}
|
||||
</h1>
|
||||
|
||||
<tabs :track-history="true">
|
||||
<tab id="future" label="{translate key="editor.navigation.futureIssues"}">
|
||||
{help file="issue-management" class="pkp_help_tab"}
|
||||
{capture assign=futureIssuesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.issues.FutureIssueGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="futureIssuesGridContainer" url=$futureIssuesGridUrl}
|
||||
</tab>
|
||||
<tab id="back" label="{translate key="editor.navigation.issueArchive"}">
|
||||
{help file="issue-management" class="pkp_help_tab"}
|
||||
{capture assign=backIssuesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.issues.BackIssueGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="backIssuesGridContainer" url=$backIssuesGridUrl}
|
||||
</tab>
|
||||
</tabs>
|
||||
{/block}
|
||||
@@ -0,0 +1,35 @@
|
||||
{**
|
||||
* templates/management/additionalDistributionTabs.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 OJS-specific tabs for the distribution settings page
|
||||
*}
|
||||
|
||||
<tab id="access" label="{translate key="manager.distribution.access"}">
|
||||
{help file="settings/distribution-settings" section="access" class="pkp_help_tab"}
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_ACCESS}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="archive" label="{translate key="manager.website.archiving"}">
|
||||
{help file="settings/distribution-settings" section="archiving" class="pkp_help_tab"}
|
||||
<tabs :is-side-tabs="true" :track-history="true">
|
||||
<tab id="pln" label="{translate key="manager.setup.plnPluginArchiving"}">
|
||||
<pkp-form
|
||||
v-bind="components.archivePn"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="lockss" label="{translate key="manager.setup.otherLockss"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_ARCHIVING_LOCKSS}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{call_hook name="Template::Settings::distribution::archiving"}
|
||||
</tabs>
|
||||
</tab>
|
||||
@@ -0,0 +1,55 @@
|
||||
{**
|
||||
* templates/management/context.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 journal settings page.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="manager.setup"}
|
||||
</h1>
|
||||
|
||||
{if $newVersionAvailable}
|
||||
<notification>
|
||||
{translate key="site.upgradeAvailable.manager" currentVersion=$currentVersion latestVersion=$latestVersion siteAdminName=$siteAdmin->getFullName() siteAdminEmail=$siteAdmin->getEmail()}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
{if $currentContext->getData('disableSubmissions')}
|
||||
<notification>
|
||||
{translate key="manager.setup.disableSubmissions.notAccepting"}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
<tabs :track-history="true">
|
||||
<tab id="masthead" label="{translate key="manager.setup.masthead"}">
|
||||
{help file="settings/journal-settings" class="pkp_help_tab"}
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_MASTHEAD}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="contact" label="{translate key="about.contact"}">
|
||||
{help file="settings/journal-settings" section="contact" class="pkp_help_tab"}
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_CONTACT}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="sections" label="{translate key="section.sections"}">
|
||||
{help file="settings/journal-settings" section="sections" class="pkp_help_tab"}
|
||||
{capture assign=sectionsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.sections.SectionGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="sectionsGridContainer" url=$sectionsGridUrl}
|
||||
</tab>
|
||||
<tab id="categories" label="{translate key="grid.category.categories"}">
|
||||
{help file="settings/journal-settings" section="categories" class="pkp_help_tab"}
|
||||
{capture assign=categoriesUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.category.CategoryCategoryGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="categoriesContainer" url=$categoriesUrl}
|
||||
</tab>
|
||||
</tabs>
|
||||
{/block}
|
||||
@@ -0,0 +1,33 @@
|
||||
{extends file="layouts/backend.tpl"}
|
||||
{block name="page"}
|
||||
<!-- Add page content here -->
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="doi.manager.displayName"}
|
||||
</h1>
|
||||
|
||||
{if $currentContext->getData('enableDois') && !$currentContext->getData('doiPrefix')}
|
||||
{capture assign=doiSettingsUrl}{url page="management" op="settings" path="distribution" anchor="dois"}{/capture}
|
||||
<notification class="pkpNotification--backendPage__header" type="warning">{translate key="manager.dois.settings.prefixRequired" doiSettingsUrl=$doiSettingsUrl}</notification>
|
||||
{/if}
|
||||
|
||||
<tabs :track-history="true">
|
||||
{if $displaySubmissionsTab}
|
||||
<tab id="submission-doi-management" label="{translate key="article.articles"}">
|
||||
<h1>{translate key="article.articles"}</h1>
|
||||
<doi-list-panel
|
||||
v-bind="components.submissionDoiListPanel"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $displayIssuesTab}
|
||||
<tab id="issue-doi-management" label="{translate key="issue.issues"}">
|
||||
<h1>{translate key="issue.issues"}</h1>
|
||||
<doi-list-panel
|
||||
v-bind="components.issueDoiListPanel"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
</tabs>
|
||||
{/block}
|
||||
@@ -0,0 +1,33 @@
|
||||
{**
|
||||
* templates/payments/index.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.
|
||||
*
|
||||
* Subscription index.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="manager.subscriptions"}
|
||||
</h1>
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#subscriptionsTabs').pkpHandler('$.pkp.controllers.TabHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="subscriptionsTabs" class="pkp_controllers_tab">
|
||||
<ul>
|
||||
<li><a name="individualSubscription" href="{url op="subscriptions" path="individual"}">{translate key="subscriptionManager.individualSubscriptions"}</a></li>
|
||||
<li><a name="institutionalSubscriptions" href="{url op="subscriptions" path="institutional"}">{translate key="subscriptionManager.institutionalSubscriptions"}</a></li>
|
||||
<li><a name="subscriptionTypes" href="{url op="subscriptionTypes"}">{translate key="subscriptionManager.subscriptionTypes"}</a></li>
|
||||
<li><a name="subscriptionPolicies" href="{url op="subscriptionPolicies"}">{translate key="manager.subscriptionPolicies"}</a></li>
|
||||
<li><a name="paymentTypes" href="{url op="paymentTypes"}">{translate key="manager.paymentTypes"}</a></li>
|
||||
<li><a name="payments" href="{url op="payments"}">{translate key="manager.paymentMethod"}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,53 @@
|
||||
{**
|
||||
* templates/payments/individualSubscriptionForm.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.
|
||||
*
|
||||
* Individual subscription form under journal management.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#individualSubscriptionForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" method="post" id="individualSubscriptionForm" action="{url op="updateSubscription"}">
|
||||
{if $subscriptionId}
|
||||
<input type="hidden" name="subscriptionId" value="{$subscriptionId|escape}" />
|
||||
{/if}
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="individualSubscriptionNotification"}
|
||||
|
||||
{capture assign=subscriberSelectGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.users.subscriberSelect.SubscriberSelectGridHandler" op="fetchGrid" escape=false userId=$userId}{/capture}
|
||||
{load_url_in_div id='subscriberSelectGridContainer' url=$subscriberSelectGridUrl}
|
||||
|
||||
{fbvFormArea id="individualSubscriptionFormArea"}
|
||||
{fbvFormSection title="manager.subscriptions.form.typeId"}
|
||||
{fbvElement type="select" required=true name="typeId" id="typeId" selected=$typeId from=$subscriptionTypes label="manager.subscriptions.form.typeId" size=$fbvStyles.size.MEDIUM inline=true translate=false}
|
||||
{fbvElement type="select" required=true name="status" id="status" selected=$status from=$validStatus label="manager.subscriptions.form.status" size=$fbvStyles.size.SMALL inline=true}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="common.date"}
|
||||
{fbvElement type="text" name="dateStart" id="dateStart" value=$dateStart label="manager.subscriptions.form.dateStart" size=$fbvStyles.size.SMALL inline=true class="datepicker"}
|
||||
{fbvElement type="text" name="dateEnd" id="dateEnd" value=$dateEnd label="manager.subscriptions.form.dateEnd" size=$fbvStyles.size.SMALL inline=true class="datepicker"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvElement type="text" label="manager.subscriptions.form.membership" name="membership" id="membership" value=$membership size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{fbvElement type="text" label="manager.subscriptions.form.referenceNumber" name="referenceNumber" id="referenceNumber" value=$referenceNumber size=$fbvStyles.size.MEDIUM inline=true}
|
||||
|
||||
{fbvFormSection label="manager.subscriptions.form.notes"}
|
||||
{fbvElement type="textarea" name="notes" id="notes" value=$notes rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection for="notifyEmail" list=true}
|
||||
{fbvElement type="checkbox" label="manager.subscriptions.form.notifyEmail" name="notifyEmail" id="notifyEmail"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
<span class="formRequired">{translate key="common.requiredField"}</span>
|
||||
|
||||
{fbvFormButtons id="individualSubscriptionFormSubmit" submitText="common.save" hideCancel=true}
|
||||
</form>
|
||||
@@ -0,0 +1,59 @@
|
||||
{**
|
||||
* templates/payments/institutionalSubscriptionForm.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.
|
||||
*
|
||||
* Individual subscription form under journal management.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#institutionalSubscriptionForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" method="post" id="institutionalSubscriptionForm" action="{url op="updateSubscription"}">
|
||||
{if $subscriptionId}
|
||||
<input type="hidden" name="subscriptionId" value="{$subscriptionId|escape}" />
|
||||
{/if}
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="institutionalSubscriptionNotification"}
|
||||
|
||||
{capture assign=subscriberSelectGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.users.subscriberSelect.SubscriberSelectGridHandler" op="fetchGrid" escape=false userId=$userId}{/capture}
|
||||
{load_url_in_div id='subscriberSelectGridContainer' url=$subscriberSelectGridUrl}
|
||||
|
||||
{fbvFormArea id="institutionalSubscriptionFormArea"}
|
||||
{fbvFormSection title="manager.subscriptions.form.typeId"}
|
||||
{fbvElement type="select" required=true name="typeId" id="typeId" selected=$typeId from=$subscriptionTypes label="manager.subscriptions.form.typeId" size=$fbvStyles.size.MEDIUM inline=true translate=false}
|
||||
{fbvElement type="select" required=true name="status" id="status" selected=$status from=$validStatus label="manager.subscriptions.form.status" size=$fbvStyles.size.SMALL inline=true}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="common.date"}
|
||||
{fbvElement type="text" name="dateStart" id="dateStart" value=$dateStart label="manager.subscriptions.form.dateStart" size=$fbvStyles.size.SMALL inline=true class="datepicker"}
|
||||
{fbvElement type="text" name="dateEnd" id="dateEnd" value=$dateEnd label="manager.subscriptions.form.dateEnd" size=$fbvStyles.size.SMALL inline=true class="datepicker"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvElement type="select" required=true name="institutionId" id="institutionId" selected=$institutionId from=$institutions label="manager.subscriptions.form.institution" size=$fbvStyles.size.MEDIUM inline=true translate=false}
|
||||
|
||||
{fbvElement type="textarea" label="manager.subscriptions.form.institutionMailingAddress" name="institutionMailingAddress" id="institutionMailingAddress" value=$institutionMailingAddress}
|
||||
|
||||
<span class="instructions">{translate key="manager.subscriptions.form.domainInstructions"}</span>
|
||||
{fbvElement type="text" label="manager.subscriptions.form.domain" name="domain" id="domain" value=$domain size=$fbvStyles.size.MEDIUM}
|
||||
|
||||
{fbvElement type="text" label="manager.subscriptions.form.referenceNumber" name="referenceNumber" id="referenceNumber" value=$referenceNumber size=$fbvStyles.size.MEDIUM}
|
||||
|
||||
{fbvFormSection label="manager.subscriptions.form.notes"}
|
||||
{fbvElement type="textarea" name="notes" id="notes" value=$notes rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection for="notifyEmail" list=true}
|
||||
{fbvElement type="checkbox" label="manager.subscriptions.form.notifyEmail" name="notifyEmail" id="notifyEmail"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
<span class="formRequired">{translate key="common.requiredField"}</span>
|
||||
|
||||
{fbvFormButtons id="institutionalSubscriptionFormSubmit" submitText="common.save" hideCancel=true}
|
||||
</form>
|
||||
@@ -0,0 +1,46 @@
|
||||
{**
|
||||
* templates/payments/paymentTypes.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.
|
||||
*
|
||||
* Payment type form.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#paymentTypesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="paymentTypesForm" method="post" action="{url op="savePaymentTypes"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="paymentTypesFormNotification"}
|
||||
|
||||
{fbvFormSection title="manager.payment.authorFees"}
|
||||
<p>{translate key="manager.payment.authorFeesDescription"}
|
||||
{if $publicationFee==0}{assign var=publicationFee value=""}{/if}
|
||||
{fbvElement type="text" name="publicationFee" id="publicationFee" label="manager.payment.options.publicationFee" value=$publicationFee size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.payment.readerFees"}
|
||||
<p>{translate key="manager.payment.readerFeesDescription"}
|
||||
{if $purchaseIssueFee==0}{assign var=purchaseIssueFee value=""}{/if}
|
||||
{fbvElement type="text" name="purchaseIssueFee" id="purchaseIssueFee" label="manager.payment.options.purchaseIssueFee" value=$purchaseIssueFee size=$fbvStyles.size.SMALL}
|
||||
{if $purchaseArticleFee==0}{assign var=purchaseArticleFee value=""}{/if}
|
||||
{fbvElement type="text" name="purchaseArticleFee" id="purchaseArticleFee" label="manager.payment.options.purchaseArticleFee" value=$purchaseArticleFee size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection list=true}
|
||||
{fbvElement type="checkbox" name="restrictOnlyPdf" id="restrictOnlyPdf" checked=$restrictOnlyPdf label="manager.payment.options.onlypdf" value="1"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.payment.generalFees"}
|
||||
<p>{translate key="manager.payment.generalFeesDescription"}
|
||||
{if $membershipFee==0}{assign var=membershipFee value=""}{/if}
|
||||
{fbvElement type="text" name="membershipFee" id="membershipFee" label="manager.payment.options.membershipFee" value=$membershipFee size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons hideCancel=true submitText="common.save"}
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
</form>
|
||||
@@ -0,0 +1,76 @@
|
||||
{**
|
||||
* templates/payments/subscriptionPolicyForm.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.
|
||||
*
|
||||
* Setup subscription policies.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#subscriptionPolicies').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="subscriptionPolicies" method="post" action="{url op="saveSubscriptionPolicies"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="subscriptionPolicyFormNotification"}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionPolicies.subscriptionContact"}
|
||||
<p>{translate key="manager.subscriptionPolicies.subscriptionContactDescription"}</p>
|
||||
{fbvElement type="text" label="user.name" required=true id="subscriptionName" value=$subscriptionName maxlength="60" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="email" label="user.email" id="subscriptionEmail" value=$subscriptionEmail size=$fbvStyles.size.MEDIUM required=true}
|
||||
{fbvElement type="tel" label="user.phone" name="subscriptionPhone" id="subscriptionPhone" value=$subscriptionPhone maxlength="24" size=$fbvStyles.size.SMALL}
|
||||
{fbvElement type="textarea" id="subscriptionMailingAddress" value=$subscriptionMailingAddress height=$fbvStyles.height.SHORT required=true label="common.mailingAddress"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionPolicies.subscriptionAdditionalInformation"}
|
||||
<p>{translate key="manager.subscriptionPolicies.subscriptionAdditionalInformationDescription"}</p>
|
||||
{fbvElement type="textarea" id="subscriptionAdditionalInformation" value=$subscriptionAdditionalInformation rich=true multilingual=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionPolicies.expiry" list=1}
|
||||
<p>{translate key="manager.subscriptionPolicies.expiryDescription"}</p>
|
||||
{fbvElement type="radio" id="subscriptionExpiryPartial-0" name="subscriptionExpiryPartial" value=0 checked=$subscriptionExpiryPartial|compare:0 label="manager.subscriptionPolicies.expiryFull"}
|
||||
<span>{translate key="manager.subscriptionPolicies.expiryFullDescription"}</span>
|
||||
{fbvElement type="radio" id="subscriptionExpiryPartial-1" name="subscriptionExpiryPartial" value=1 checked=$subscriptionExpiryPartial|compare:1 label="manager.subscriptionPolicies.expiryPartial"}
|
||||
<span>{translate key="manager.subscriptionPolicies.expiryPartialDescription"}</span>
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionPolicies.expiryReminders"}
|
||||
<p>{translate key="manager.subscriptionPolicies.expiryRemindersDescription"}</p>
|
||||
{fbvElement type="select" id="numMonthsBeforeSubscriptionExpiryReminder" name="numMonthsBeforeSubscriptionExpiryReminder" selected=$numMonthsBeforeSubscriptionExpiryReminder from=$validNumMonthsBeforeExpiry label="manager.subscriptionPolicies.expiryReminderBeforeMonths" disabled=$scheduledTasksEnabled|compare:0 size=$fbvStyles.size.MEDIUM translate=false inline=true}
|
||||
{fbvElement type="select" id="numWeeksBeforeSubscriptionExpiryReminder" name="numWeeksBeforeSubscriptionExpiryReminder" selected=$numWeeksBeforeSubscriptionExpiryReminder from=$validNumWeeksBeforeExpiry label="manager.subscriptionPolicies.expiryReminderBeforeWeeks" disabled=$scheduledTasksEnabled|compare:0 size=$fbvStyles.size.MEDIUM translate=false inline=true}
|
||||
{fbvElement type="select" id="numMonthsAfterSubscriptionExpiryReminder" name="numMonthsAfterSubscriptionExpiryReminder" selected=$numMonthsAfterSubscriptionExpiryReminder from=$validNumMonthsAfterExpiry label="manager.subscriptionPolicies.expiryReminderAfterMonths" disabled=$scheduledTasksEnabled|compare:0 size=$fbvStyles.size.MEDIUM translate=false inline=true}
|
||||
{fbvElement type="select" id="numWeeksAfterSubscriptionExpiryReminder" name="numWeeksAfterSubscriptionExpiryReminder" selected=$numWeeksAfterSubscriptionExpiryReminder from=$validNumWeeksAfterExpiry label="manager.subscriptionPolicies.expiryReminderAfterWeeks" disabled=$scheduledTasksEnabled|compare:0 size=$fbvStyles.size.MEDIUM translate=false inline=true}
|
||||
|
||||
{if !$scheduledTasksEnabled}
|
||||
<span>{translate key="manager.subscriptionPolicies.expiryRemindersDisabled"}</span>
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionPolicies.onlinePaymentNotifications" list=true}
|
||||
{if $paymentsEnabled}
|
||||
{assign var=paymentsEnabled value=true}
|
||||
{/if}
|
||||
<p>{translate key="manager.subscriptionPolicies.onlinePaymentNotificationsDescription"}</p>
|
||||
|
||||
{fbvElement type="checkbox" id="enableSubscriptionOnlinePaymentNotificationPurchaseIndividual" name="enableSubscriptionOnlinePaymentNotificationPurchaseIndividual" value=1 checked=$enableSubscriptionOnlinePaymentNotificationPurchaseIndividual label="manager.subscriptionPolicies.enableSubscriptionOnlinePaymentNotificationPurchaseIndividual" disabled=$paymentsEnabled|compare:0}
|
||||
{fbvElement type="checkbox" id="enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional" name="enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional" value=1 checked=$enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional label="manager.subscriptionPolicies.enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional" disabled=$paymentsEnabled|compare:0}
|
||||
{fbvElement type="checkbox" id="enableSubscriptionOnlinePaymentNotificationRenewIndividual" name="enableSubscriptionOnlinePaymentNotificationRenewIndividual" value=1 checked=$enableSubscriptionOnlinePaymentNotificationRenewIndividual label="manager.subscriptionPolicies.enableSubscriptionOnlinePaymentNotificationRenewIndividual" disabled=$paymentsEnabled|compare:0}
|
||||
{fbvElement type="checkbox" id="enableSubscriptionOnlinePaymentNotificationRenewInstitutional" name="enableSubscriptionOnlinePaymentNotificationRenewInstitutional" value=1 checked=$enableSubscriptionOnlinePaymentNotificationRenewInstitutional label="manager.subscriptionPolicies.enableSubscriptionOnlinePaymentNotificationRenewInstitutional" disabled=$paymentsEnabled|compare:0}
|
||||
|
||||
{if !$paymentsEnabled}
|
||||
<span>{translate key="manager.subscriptionPolicies.onlinePaymentDisabled"}<span>
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection label="manager.subscriptionPolicies.openAccessOptions" list=true}
|
||||
{fbvElement type="checkbox" id="enableOpenAccessNotification" name="enableOpenAccessNotification" value=1 checked=$enableOpenAccessNotification label="manager.subscriptionPolicies.openAccessNotificationDescription" disabled=$scheduledTasksEnabled|compare:0}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons hideCancel=true submitText="common.save"}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
</form>
|
||||
@@ -0,0 +1,67 @@
|
||||
{**
|
||||
* templates/payments/subscriptionTypeForm.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.
|
||||
*
|
||||
* Subscription type form under journal management.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#subscriptionTypeForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
$('#individual, #institutional').on('change', function() {ldelim}
|
||||
if ($('#institutional').prop('checked')) {ldelim}
|
||||
$('#membership').prop('checked', false).prop('disabled', true);
|
||||
{rdelim} else {ldelim}
|
||||
$('#membership').prop('disabled', false);
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="subscriptionTypeForm" method="post" action="{url op="updateSubscriptionType"}">
|
||||
{csrf}
|
||||
{if $typeId}
|
||||
<input type="hidden" name="typeId" value="{$typeId|escape}" />
|
||||
{/if}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="subscriptionTypeNotification"}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionTypes.form.typeName"}
|
||||
{fbvElement type="text" required=true name="name" id="typeName" value=$name size=$fbvStyles.size.MEDIUM multilingual=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionTypes.form.description"}
|
||||
{fbvElement type="textarea" name="description" id="description" value=$description rich=true multilingual=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.subscriptionTypes.form.cost"}
|
||||
{fbvElement type="select" required=true name="currency" id="currency" selected=$currency from=$validCurrencies label="manager.subscriptionTypes.form.currency" size=$fbvStyles.size.SMALL inline=true translate=false}
|
||||
{fbvElement type="text" required=true name="cost" id="cost" value=$cost label="manager.subscriptionTypes.form.cost" description="manager.subscriptionTypes.form.costInstructions" size=$fbvStyles.size.SMALL inline=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionTypes.form.format"}
|
||||
{fbvElement type="select" required=true name="format" id="format" selected=$format from=$validFormats size=$fbvStyles.size.SMALL translate=false inline=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="manager.subscriptionTypes.form.duration"}
|
||||
{fbvElement type="text" name="duration" id="duration" value=$duration size=$fbvStyles.size.SMALL label="manager.subscriptionTypes.form.durationInstructions" inline=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.subscriptionTypes.form.subscriptions" list=true}
|
||||
{fbvElement type="radio" name="institutional" id="individual" checked=$institutional|compare:"0" label="manager.subscriptionTypes.form.individual" value="0" disabled=$typeId}
|
||||
{fbvElement type="radio" name="institutional" id="institutional" checked=$institutional|compare:"1" label="manager.subscriptionTypes.form.institutional" value="1" disabled=$typeId}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.subscriptionTypes.form.options" list=true}
|
||||
{fbvElement type="checkbox" name="membership" id="membership" checked=$membership value="1" label="manager.subscriptionTypes.form.membership"}
|
||||
{fbvElement type="checkbox" name="disable_public_display" id="disable_public_display" checked=$disable_public_display value="1" label="manager.subscriptionTypes.form.public"}
|
||||
{/fbvFormSection}
|
||||
|
||||
<span class="formRequired">{translate key="common.requiredField"}</span>
|
||||
|
||||
{fbvFormButtons id="mastheadFormSubmit" submitText="common.save" hideCancel=true}
|
||||
</form>
|
||||
@@ -0,0 +1,13 @@
|
||||
{**
|
||||
* templates/reviewer/review/reviewerRecommendations.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.
|
||||
*
|
||||
* Include reviewer recommendations for OJS review assignment responses.
|
||||
*}
|
||||
|
||||
{fbvFormSection label="reviewer.article.recommendation" description=$description|default:"reviewer.article.selectRecommendation"}
|
||||
{fbvElement type="select" id="recommendation" from=$reviewerRecommendationOptions selected=$reviewAssignment->getRecommendation() size=$fbvStyles.size.MEDIUM required=$required|default:true disabled=$readOnly}
|
||||
{/fbvFormSection}
|
||||
@@ -0,0 +1,11 @@
|
||||
{**
|
||||
* templates/reviewer/review/step1.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 step 1 review page
|
||||
*}
|
||||
{assign var=descriptionFieldKey value="article.abstract"}
|
||||
{include file="core:reviewer/review/step1.tpl"}
|
||||
@@ -0,0 +1,14 @@
|
||||
{**
|
||||
* templates/reviewer/review/step3.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 step 3 review page
|
||||
*}
|
||||
{capture assign="additionalFormFields"}
|
||||
{include file="reviewer/review/reviewerRecommendations.tpl"}
|
||||
{/capture}
|
||||
|
||||
{include file="core:reviewer/review/step3.tpl"}
|
||||
@@ -0,0 +1,250 @@
|
||||
{**
|
||||
* templates/stats/issues.tpl
|
||||
*
|
||||
* Copyright (c) 2022 Simon Fraser University
|
||||
* Copyright (c) 2022 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* The issues statistics page.
|
||||
*
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
|
||||
<div class="pkpStats">
|
||||
<pkp-header>
|
||||
<h1>{translate key="issue.issues"}</h1>
|
||||
<spinner v-if="isLoadingTimeline"></spinner>
|
||||
<template slot="actions">
|
||||
<date-range
|
||||
unique-id="issue-stats-date-range"
|
||||
:date-start="dateStart"
|
||||
:date-start-min="dateStartMin"
|
||||
:date-end="dateEnd"
|
||||
:date-end-max="dateEndMax"
|
||||
:options="dateRangeOptions"
|
||||
date-range-label="{translate key="stats.dateRange"}"
|
||||
date-format-instructions-label="{translate key="stats.dateRange.instructions"}"
|
||||
change-date-range-label="{translate key="stats.dateRange.change"}"
|
||||
since-date-label="{translate key="stats.dateRange.sinceDate"}"
|
||||
until-date-label="{translate key="stats.dateRange.untilDate"}"
|
||||
all-dates-label="{translate key="stats.dateRange.allDates"}"
|
||||
custom-range-label="{translate key="stats.dateRange.customRange"}"
|
||||
from-date-label="{translate key="stats.dateRange.from"}"
|
||||
to-date-label="{translate key="stats.dateRange.to"}"
|
||||
apply-label="{translate key="stats.dateRange.apply"}"
|
||||
invalid-date-label="{translate key="stats.dateRange.invalidDate"}"
|
||||
date-does-not-exist-label="{translate key="stats.dateRange.dateDoesNotExist"}"
|
||||
invalid-date-range-label="{translate key="stats.dateRange.invalidDateRange"}"
|
||||
invalid-end-date-max-label="{translate key="stats.dateRange.invalidEndDateMax"}"
|
||||
invalid-start-date-min-label="{translate key="stats.dateRange.invalidStartDateMin"}"
|
||||
@set-range="setDateRange"
|
||||
></date-range>
|
||||
</template>
|
||||
</pkp-header>
|
||||
<div class="pkpStats__container -pkpClearfix">
|
||||
<div class="pkpStats__content">
|
||||
<div v-if="chartData" class="pkpStats__graph">
|
||||
<div class="pkpStats__graphHeader">
|
||||
<h2 class="pkpStats__graphTitle -screenReader" id="issue-stats-graph-title">
|
||||
{translate key="stats.views"}
|
||||
</h2>
|
||||
<div class="pkpStats__graphSelectors">
|
||||
<div class="pkpStats__graphSelector pkpStats__graphSelector--timelineType">
|
||||
<pkp-button
|
||||
:aria-pressed="timelineType === 'toc'"
|
||||
aria-describedby="issue-stats-graph-title"
|
||||
@click="setTimelineType('toc')"
|
||||
>
|
||||
{translate key="stats.views"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
:aria-pressed="timelineType === 'files'"
|
||||
aria-describedby="issue-stats-graph-title"
|
||||
@click="setTimelineType('files')"
|
||||
>
|
||||
{translate key="stats.downloads"}
|
||||
</pkp-button>
|
||||
</div>
|
||||
<div class="pkpStats__graphSelector pkpStats__graphSelector--timelineInterval">
|
||||
<pkp-button
|
||||
:aria-pressed="timelineInterval === 'day'"
|
||||
aria-describedby="issue-stats-graph-title"
|
||||
:disabled="!isDailyIntervalEnabled"
|
||||
@click="setTimelineInterval('day')"
|
||||
>
|
||||
{translate key="stats.daily"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
:aria-pressed="timelineInterval === 'month'"
|
||||
aria-describedby="issue-stats-graph-title"
|
||||
:disabled="!isMonthlyIntervalEnabled"
|
||||
@click="setTimelineInterval('month')"
|
||||
>
|
||||
{translate key="stats.monthly"}
|
||||
</pkp-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="-screenReader" role="region" aria-live="polite">
|
||||
<caption v-if="timelineType === 'files'">{translate key="stats.downloads.timelineInterval"}</caption>
|
||||
<caption v-else>{translate key="stats.views.timelineInterval"}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{translate key="common.date"}</th>
|
||||
<th v-if="timelineType === 'files'" scope="col">{translate key="stats.downloads"}</th>
|
||||
<th v-else scope="col">{translate key="stats.views"}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="segment in timeline" :key="segment.date">
|
||||
<th scope="row">{{ segment.label }}</th>
|
||||
<td>{{ segment.value }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<line-chart :chart-data="chartData" aria-hidden="true"></line-chart>
|
||||
<span v-if="isLoadingTimeline" class="pkpStats__loadingCover">
|
||||
<spinner></spinner>
|
||||
</span>
|
||||
</div>
|
||||
<div class="pkpStats__panel" role="region" aria-live="polite">
|
||||
<pkp-header>
|
||||
<h2>
|
||||
{translate key="stats.issues.details"}
|
||||
<tooltip
|
||||
tooltip="{translate key="stats.issues.tooltip.text"}"
|
||||
label="{translate key="stats.issues.tooltip.label"}"
|
||||
></tooltip>
|
||||
<spinner v-if="isLoadingItems"></spinner>
|
||||
</h2>
|
||||
<template slot="actions">
|
||||
<div class="pkpStats__itemsOfTotal">
|
||||
{{
|
||||
replaceLocaleParams(itemsOfTotalLabel, {
|
||||
count: items.length,
|
||||
total: itemsMax
|
||||
})
|
||||
}}
|
||||
<a
|
||||
v-if="items.length < itemsMax"
|
||||
href="#issueDetailTablePagination"
|
||||
class="-screenReader"
|
||||
>
|
||||
{translate key="common.pagination.label"}
|
||||
</a>
|
||||
</div>
|
||||
<pkp-button
|
||||
ref="downloadReportModalButton"
|
||||
@click="$modal.show('downloadReport')"
|
||||
>
|
||||
{translate key="common.downloadReport"}
|
||||
</pkp-button>
|
||||
<modal
|
||||
close-label="{translate key="common.close"}"
|
||||
name="downloadReport"
|
||||
title={translate key="common.download"}
|
||||
@closed="setFocusToRef('downloadReportModalButton')"
|
||||
>
|
||||
<p>{translate key="stats.issues.downloadReport.description"}</p>
|
||||
<table class="pkpTable pkpStats__reportParams">
|
||||
<tr class="pkpTable__row">
|
||||
<th>{translate key="stats.dateRange"}</th>
|
||||
<td>{{ getDateRangeDescription() }}</th>
|
||||
</tr>
|
||||
<tr
|
||||
v-if="searchPhrase"
|
||||
class="pkpTable__row">
|
||||
<th>{translate key="common.searchPhrase"}</th>
|
||||
<td>{{ searchPhrase }}</th>
|
||||
</tr>
|
||||
</table>
|
||||
<action-panel class="pkpStats__reportAction">
|
||||
<h2>{translate key="issue.issues"}</h2>
|
||||
<p>
|
||||
{translate key="stats.issues.downloadReport.downloadIssues.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
@click="downloadReport"
|
||||
>
|
||||
{translate key="stats.issues.downloadReport.downloadIssues"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel class="pkpStats__reportAction">
|
||||
<h2>{translate key="stats.timeline"}</h2>
|
||||
<p>
|
||||
{{ getTimelineDescription() }}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
@click="downloadReport('timeline')"
|
||||
>
|
||||
{translate key="stats.timeline.downloadReport.downloadTimeline"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</action-panel>
|
||||
</modal>
|
||||
</template>
|
||||
</pkp-header>
|
||||
<pkp-table
|
||||
labelled-by="issueDetailTableLabel"
|
||||
:class="tableClasses"
|
||||
:columns="tableColumns"
|
||||
:rows="items"
|
||||
:order-by="orderBy"
|
||||
:order-direction="orderDirection"
|
||||
@order-by="setOrderBy"
|
||||
>
|
||||
<search
|
||||
slot="thead-title"
|
||||
class="pkpStats__titleSearch"
|
||||
:search-phrase="searchPhrase"
|
||||
search-label="{translate key="stats.issues.searchIssueDescription"}"
|
||||
@search-phrase-changed="setSearchPhrase"
|
||||
></search>
|
||||
<template slot-scope="{ row, rowIndex }">
|
||||
<table-cell
|
||||
v-for="(column, columnIndex) in tableColumns"
|
||||
:key="column.name"
|
||||
:column="column"
|
||||
:row="row"
|
||||
:tabindex="!rowIndex && !columnIndex ? 0 : -1"
|
||||
>
|
||||
<template v-if="column.name === 'title'">
|
||||
<a
|
||||
:href="row.issue.publishedUrl"
|
||||
class="pkpStats__itemLink"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="pkpStats__itemTitle">{{ row.issue.identification }}</span>
|
||||
</a>
|
||||
</template>
|
||||
</table-cell>
|
||||
</template>
|
||||
</pkp-table>
|
||||
<div v-if="!items.length" class="pkpStats__noRecords">
|
||||
<template v-if="isLoadingItems">
|
||||
<spinner></spinner>
|
||||
{translate key="common.loading"}
|
||||
</template>
|
||||
<template v-else>
|
||||
{translate key="stats.issues.none"}
|
||||
</template>
|
||||
</div>
|
||||
<pagination
|
||||
v-if="lastPage > 1"
|
||||
id="issueDetailTablePagination"
|
||||
:current-page="currentPage"
|
||||
:is-loading="isLoadingItems"
|
||||
:last-page="lastPage"
|
||||
@set-page="setPage"
|
||||
></pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{**
|
||||
* templates/submission/form/sectionPolicy.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.
|
||||
*
|
||||
* Include section policy for submissions.
|
||||
*
|
||||
* @deprecated 3.4
|
||||
*}
|
||||
{assign var=class value="section-policy section-id-`$sectionId` `$class`"}
|
||||
|
||||
{fbvFormSection title="section.policy" class=$class}
|
||||
{$content}
|
||||
{/fbvFormSection}
|
||||
@@ -0,0 +1,247 @@
|
||||
{**
|
||||
* templates/workflow/workflow.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 workflow tab structure.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<pkp-header :is-one-line="true" class="pkpWorkflow__header">
|
||||
<h1 class="pkpWorkflow__identification">
|
||||
<badge
|
||||
v-if="submission.status === getConstant('STATUS_PUBLISHED')"
|
||||
class="pkpWorkflow__identificationStatus"
|
||||
:is-success="true"
|
||||
>
|
||||
{translate key="publication.status.published"}
|
||||
</badge>
|
||||
<badge
|
||||
v-else-if="submission.status === getConstant('STATUS_SCHEDULED')"
|
||||
class="pkpWorkflow__identificationStatus"
|
||||
:is-primary="true"
|
||||
>
|
||||
{translate key="publication.status.scheduled"}
|
||||
</badge>
|
||||
<badge
|
||||
v-else-if="submission.status === getConstant('STATUS_DECLINED')"
|
||||
class="pkpWorkflow__identificationStatus"
|
||||
:is-warnable="true"
|
||||
>
|
||||
{translate key="common.declined"}
|
||||
</badge>
|
||||
{include file="workflow/submissionIdentification.tpl"}
|
||||
</h1>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
v-if="submission.status === getConstant('STATUS_PUBLISHED')"
|
||||
element="a"
|
||||
:href="submission.urlPublished"
|
||||
>
|
||||
{{ __('common.view') }}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
v-else-if="submission.status !== getConstant('STATUS_PUBLISHED') && submission.stageId >= getConstant('WORKFLOW_STAGE_ID_EDITING')"
|
||||
element="a"
|
||||
:href="submission.urlPublished"
|
||||
>
|
||||
{translate key="common.preview"}
|
||||
</pkp-button>
|
||||
{if $submissionPaymentsEnabled}
|
||||
<dropdown
|
||||
class="pkpWorkflow__submissionPayments"
|
||||
label="{translate key="common.payments"}"
|
||||
>
|
||||
<pkp-form class="pkpWorkflow__submissionPaymentsForm" v-bind="components.{$smarty.const.FORM_SUBMISSION_PAYMENTS}" @set="set">
|
||||
</dropdown>
|
||||
{/if}
|
||||
{if $canAccessEditorialHistory}
|
||||
<pkp-button
|
||||
ref="activityButton"
|
||||
@click="openActivity"
|
||||
>
|
||||
{translate key="editor.activityLog"}
|
||||
</pkp-button>
|
||||
{/if}
|
||||
<pkp-button
|
||||
ref="library"
|
||||
@click="openLibrary"
|
||||
>
|
||||
{translate key="editor.submissionLibrary"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</pkp-header>
|
||||
<tabs default-tab="workflow" :track-history="true">
|
||||
<tab id="workflow" label="{translate key="manager.workflow"}">
|
||||
<script type="text/javascript">
|
||||
// Initialize JS handler.
|
||||
$(function() {ldelim}
|
||||
$('#submissionWorkflow').pkpHandler(
|
||||
'$.pkp.pages.workflow.WorkflowHandler'
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<div id="submissionWorkflow" class="pkp_submission_workflow">
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="workflowNotification" requestOptions=$workflowNotificationRequestOptions}
|
||||
{capture assign=submissionProgressBarUrl}{url op="submissionProgressBar" submissionId=$submission->getId() stageId=$requestedStageId contextId="submission" escape=false}{/capture}
|
||||
{load_url_in_div id="submissionProgressBarDiv" url=$submissionProgressBarUrl}
|
||||
</div>
|
||||
|
||||
{* Modal to select one of the revision decisions *}
|
||||
<modal
|
||||
:close-label="__('common.close')"
|
||||
name="selectRevisionDecision"
|
||||
title="Revisions"
|
||||
>
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_SELECT_REVISION_DECISION}" @set="set" @success="goToRevisionDecision" />
|
||||
</modal>
|
||||
|
||||
{* Modal to select one of the revision recommendations *}
|
||||
<modal
|
||||
:close-label="__('common.close')"
|
||||
name="selectRevisionRecommendation"
|
||||
title="Revisions"
|
||||
>
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_SELECT_REVISION_RECOMMENDATION}" @set="set" @success="goToRevisionDecision" />
|
||||
</modal>
|
||||
</tab>
|
||||
{if $canAccessPublication}
|
||||
<tab id="publication" label="{translate key="submission.publication"}">
|
||||
{help file="editorial-workflow/publication" class="pkp_help_tab"}
|
||||
<div class="pkpPublication" ref="publication" aria-live="polite">
|
||||
<pkp-header class="pkpPublication__header" :is-one-line="false">
|
||||
<span class="pkpPublication__status">
|
||||
<strong>{{ statusLabel }}</strong>
|
||||
<span v-if="workingPublication.status === getConstant('STATUS_QUEUED') && workingPublication.id === currentPublication.id" class="pkpPublication__statusUnpublished">{translate key="publication.status.unscheduled"}</span>
|
||||
<span v-else-if="workingPublication.status === getConstant('STATUS_SCHEDULED')">{translate key="publication.status.scheduled"}</span>
|
||||
<span v-else-if="workingPublication.status === getConstant('STATUS_PUBLISHED')" class="pkpPublication__statusPublished">{translate key="publication.status.published"}</span>
|
||||
<span v-else class="pkpPublication__statusUnpublished">{translate key="publication.status.unpublished"}</span>
|
||||
</span>
|
||||
<span v-if="publicationList.length > 1" class="pkpPublication__version">
|
||||
<strong tabindex="0">{{ versionLabel }}</strong> {{ workingPublication.version }}
|
||||
<dropdown
|
||||
class="pkpPublication__versions"
|
||||
label="{translate key="publication.version.all"}"
|
||||
:is-link="true"
|
||||
submenu-label="{translate key="common.submenu"}"
|
||||
>
|
||||
<ul>
|
||||
<li v-for="publication in publicationList" :key="publication.id">
|
||||
<button
|
||||
class="pkpDropdown__action"
|
||||
:disabled="publication.id === workingPublication.id"
|
||||
@click="setWorkingPublicationById(publication.id)"
|
||||
>
|
||||
{{ publication.version }} /
|
||||
<template v-if="publication.status === getConstant('STATUS_QUEUED') && publication.id === currentPublication.id">{translate key="publication.status.unscheduled"}</template>
|
||||
<template v-else-if="publication.status === getConstant('STATUS_SCHEDULED')">{translate key="publication.status.scheduled"}</template>
|
||||
<template v-else-if="publication.status === getConstant('STATUS_PUBLISHED')">{{ publication.datePublished }}</template>
|
||||
<template v-else>{translate key="publication.status.unpublished"}</template>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</dropdown>
|
||||
</span>
|
||||
{if $canPublish}
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
v-if="workingPublication.status !== getConstant('STATUS_PUBLISHED') && submission.stageId >= getConstant('WORKFLOW_STAGE_ID_EDITING')"
|
||||
element="a"
|
||||
:href="workingPublication.urlPublished"
|
||||
>
|
||||
{translate key="common.preview"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
v-if="workingPublication.status === getConstant('STATUS_QUEUED')"
|
||||
ref="publish"
|
||||
@click="workingPublication.issueId ? openPublish() : openAssignToIssue()"
|
||||
>
|
||||
{{ submission.status === getConstant('STATUS_PUBLISHED') ? publishLabel : schedulePublicationLabel }}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
v-else-if="workingPublication.status === getConstant('STATUS_SCHEDULED')"
|
||||
:is-warnable="true"
|
||||
@click="openUnpublish"
|
||||
>
|
||||
{translate key="publication.unschedule"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
v-else-if="workingPublication.status === getConstant('STATUS_PUBLISHED')"
|
||||
:is-warnable="true"
|
||||
@click="openUnpublish"
|
||||
>
|
||||
{translate key="publication.unpublish"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
v-if="canCreateNewVersion"
|
||||
ref="createVersion"
|
||||
@click="openCreateVersionPrompt"
|
||||
>
|
||||
{translate key="publication.createVersion"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
{/if}
|
||||
</pkp-header>
|
||||
<div
|
||||
v-if="workingPublication.status === getConstant('STATUS_PUBLISHED')"
|
||||
class="pkpPublication__versionPublished"
|
||||
>
|
||||
{translate key="publication.editDisabled"}
|
||||
</div>
|
||||
<tabs class="pkpPublication__tabs" :is-side-tabs="true" :track-history="true" :label="currentPublicationTabsLabel">
|
||||
<tab id="titleAbstract" label="{translate key="publication.titleAbstract"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_TITLE_ABSTRACT}" @set="set" />
|
||||
</tab>
|
||||
<tab id="contributors" label="{translate key="publication.contributors"}">
|
||||
<contributors-list-panel
|
||||
v-bind="components.contributors"
|
||||
class="pkpWorkflow__contributors"
|
||||
@set="set"
|
||||
:items="workingPublication.authors"
|
||||
:publication="workingPublication"
|
||||
:publication-api-url="submissionApiUrl + '/publications/' + workingPublication.id"
|
||||
@updated:publication="setWorkingPublication"
|
||||
@updated:contributors="setContributors"
|
||||
></contributors-list-panel>
|
||||
</tab>
|
||||
{if $metadataEnabled}
|
||||
<tab id="metadata" label="{translate key="submission.informationCenter.metadata"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_METADATA}" @set="set" />
|
||||
</tab>
|
||||
{/if}
|
||||
<tab v-if="supportsReferences" id="citations" label="{translate key="submission.citations"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_CITATIONS}" @set="set" />
|
||||
</tab>
|
||||
{if $identifiersEnabled}
|
||||
<tab id="identifiers" label="{translate key="submission.identifiers"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_PUBLICATION_IDENTIFIERS}" @set="set" />
|
||||
</tab>
|
||||
{/if}
|
||||
{if $canAccessProduction}
|
||||
<tab id="galleys" label="{translate key="submission.layout.galleys"}">
|
||||
<div id="representations-grid" ref="representations">
|
||||
<spinner></spinner>
|
||||
</div>
|
||||
</tab>
|
||||
<tab id="license" label="{translate key="publication.publicationLicense"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_PUBLICATION_LICENSE}" @set="set" />
|
||||
</tab>
|
||||
<tab id="issue" label="{translate key="issue.issue"}">
|
||||
<pkp-form v-bind="components.{$smarty.const.FORM_ISSUE_ENTRY}" @set="set" />
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Workflow::Publication"}
|
||||
</tabs>
|
||||
<span class="pkpPublication__mask" :class="publicationMaskClasses">
|
||||
<spinner></spinner>
|
||||
</span>
|
||||
</div>
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Workflow"}
|
||||
</tabs>
|
||||
{/block}
|
||||
Reference in New Issue
Block a user