first commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
{**
|
||||
* templates/admin/contextSettings.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 Admin page for configuring high-level details about a context.
|
||||
*
|
||||
* @uses $editContext Context The context that is being edited.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="manager.settings.wizard"}
|
||||
</h1>
|
||||
|
||||
<tabs :track-history="true">
|
||||
<tab id="setup" label="{translate key="manager.setup"}">
|
||||
<tabs :is-side-tabs="true" :track-history="true">
|
||||
<tab id="context" label="{translate key="context.context"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_CONTEXT}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="appearance" label="{translate key="manager.website.appearance"}">
|
||||
<theme-form
|
||||
v-bind="components.{$smarty.const.FORM_THEME}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="languages" label="{translate key="common.languages"}">
|
||||
{capture assign=languagesUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT context=$editContext->getPath() component="grid.settings.languages.ManageLanguageGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="languageGridContainer" url=$languagesUrl}
|
||||
</tab>
|
||||
<tab id="indexing" label="{translate key="manager.setup.searchEngineIndexing"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SEARCH_INDEXING}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
<tab id="restrictBulkEmails" label="{translate key="admin.settings.restrictBulkEmails"}">
|
||||
{if $bulkEmailsEnabled}
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_RESTRICT_BULK_EMAILS}"
|
||||
@set="set"
|
||||
/>
|
||||
{else}
|
||||
{capture assign="siteSettingsUrl"}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="admin" op="settings" anchor="setup/bulkEmails"}{/capture}
|
||||
<p>{translate key="admin.settings.disableBulkEmailRoles.contextDisabled" siteSettingsUrl=$siteSettingsUrl}</p>
|
||||
{/if}
|
||||
</tab>
|
||||
{call_hook name="Template::Settings::admin::contextSettings::setup"}
|
||||
</tabs>
|
||||
</tab>
|
||||
<tab id="plugins" label="{translate key="common.plugins"}">
|
||||
<tabs :track-history="true">
|
||||
<tab id="installed" label="{translate key="manager.plugins.installed"}">
|
||||
{capture assign=pluginGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT context=$editContext->getPath() component="grid.settings.plugins.SettingsPluginGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="pluginGridContainer" url=$pluginGridUrl}
|
||||
</tab>
|
||||
<tab id="gallery" label="{translate key="manager.plugins.pluginGallery"}">
|
||||
{capture assign=pluginGalleryGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT context=$editContext->getPath() component="grid.plugins.PluginGalleryGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="pluginGalleryGridContainer" url=$pluginGalleryGridUrl}
|
||||
</tab>
|
||||
{call_hook name="Template::Settings::admin::contextSettings::plugins"}
|
||||
</tabs>
|
||||
</tab>
|
||||
<tab id="users" label="{translate key="manager.users"}">
|
||||
{capture assign=usersUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT context=$editContext->getPath() component="grid.settings.user.UserGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="userGridContainer" url=$usersUrl}
|
||||
</tab>
|
||||
{call_hook name="Template::Settings::admin::contextSettings"}
|
||||
</tabs>
|
||||
{/block}
|
||||
@@ -0,0 +1,23 @@
|
||||
{**
|
||||
* templates/admin/contexts.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 list of contexts in administration.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
|
||||
{if $newVersionAvailable}
|
||||
<notification>
|
||||
{translate key="site.upgradeAvailable.admin" currentVersion=$currentVersion->getVersionString(false) latestVersion=$latestVersion}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
{capture assign=contextsUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.admin.context.ContextGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="contextGridContainer" url=$contextsUrl}
|
||||
|
||||
{/block}
|
||||
@@ -0,0 +1,22 @@
|
||||
{**
|
||||
* templates/admin/editContext.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 form to add or edit a context
|
||||
*}
|
||||
<div id="editContext">
|
||||
{if $isAddingNewContext}
|
||||
<add-context-form
|
||||
{else}
|
||||
<pkp-form
|
||||
{/if}
|
||||
v-bind="components.{$smarty.const.FORM_CONTEXT}"
|
||||
@set="set"
|
||||
/>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
pkp.registry.init('editContext', 'AddContextContainer', {$containerData|json_encode});
|
||||
</script>
|
||||
@@ -0,0 +1,37 @@
|
||||
{**
|
||||
* templates/admin/failedJobDetails.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2022 Simon Fraser University
|
||||
* Copyright (c) 2003-2022 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Failed Jobs Details
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key=$pageTitle}
|
||||
</h1>
|
||||
<div class="app__contentPanel app__contentPanel__overflow">
|
||||
<pkp-table
|
||||
:columns="columns"
|
||||
:rows="rows"
|
||||
:label="label"
|
||||
>
|
||||
<template slot-scope="{ row, rowIndex }">
|
||||
<table-cell
|
||||
v-for="(column, columnIndex) in columns"
|
||||
:key="column.name"
|
||||
:column="column"
|
||||
:row="row"
|
||||
:tabindex="!rowIndex && !columnIndex ? 0 : -1"
|
||||
>
|
||||
<span v-if="column.name === 'value' && isValidJson(row.value)">
|
||||
<pre>{{ row.value }}</pre>
|
||||
</span>
|
||||
</table-cell>
|
||||
</template>
|
||||
</pkp-table>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,66 @@
|
||||
{**
|
||||
* templates/admin/failedJobs.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2022 Simon Fraser University
|
||||
* Copyright (c) 2003-2022 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Failed Jobs index
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key=$pageTitle}
|
||||
</h1>
|
||||
<div class="app__contentPanel">
|
||||
<pkp-table
|
||||
:columns="columns"
|
||||
:rows="rows"
|
||||
:description="description"
|
||||
:label="label"
|
||||
>
|
||||
<template v-slot:label v-if="total > 0">
|
||||
<div>
|
||||
<span class="pkp_helpers_half pkp_helpers_align_left">{{ label }}</span>
|
||||
<span class="pkp_helpers_half pkp_helpers_align_right pkp_helpers_text_right">
|
||||
<spinner v-if="isLoadingItems"></spinner>
|
||||
<pkp-button @click="requeueAll">
|
||||
{translate key="admin.jobs.failed.action.redispatch.all"}
|
||||
</pkp-button>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template slot-scope="{ row, rowIndex }">
|
||||
<table-cell
|
||||
v-for="(column, columnIndex) in columns"
|
||||
:key="column.name"
|
||||
:column="column"
|
||||
:row="row"
|
||||
:tabindex="!rowIndex && !columnIndex ? 0 : -1"
|
||||
>
|
||||
<button-row v-if="column.name === 'actions'">
|
||||
<pkp-button @click="redispatch(row)">
|
||||
{translate key="admin.jobs.failed.action.redispatch"}
|
||||
</pkp-button>
|
||||
<pkp-button is-warnable @click="remove(row)">
|
||||
{translate key="common.delete"}
|
||||
</pkp-button>
|
||||
<pkp-button element="a" is-link :href="row._hrefs._details">
|
||||
{translate key="common.details"}
|
||||
</pkp-button>
|
||||
</button-row>
|
||||
</table-cell>
|
||||
</template>
|
||||
</pkp-table>
|
||||
|
||||
<pagination
|
||||
v-if="lastPage > 1"
|
||||
:current-page="currentPage"
|
||||
:last-page="lastPage"
|
||||
:is-loading="isLoadingItems"
|
||||
@set-page="handlePagination"
|
||||
/>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,119 @@
|
||||
{**
|
||||
* templates/admin/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.
|
||||
*
|
||||
* Site administration index.
|
||||
*
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="navigation.admin"}
|
||||
</h1>
|
||||
|
||||
{if $newVersionAvailable}
|
||||
<notification>
|
||||
{translate key="site.upgradeAvailable.admin" currentVersion=$currentVersion->getVersionString(false) latestVersion=$latestVersion}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
<action-panel>
|
||||
<h2>{translate key="admin.siteManagement"}</h2>
|
||||
<p>
|
||||
{translate key="admin.siteManagement.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
element="a"
|
||||
href="{url op="contexts"}"
|
||||
>
|
||||
{translate key="admin.hostedContexts"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
element="a"
|
||||
href="{url op="settings"}"
|
||||
>
|
||||
{translate key="admin.siteSettings"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel>
|
||||
<h2>{translate key="admin.systemInformation"}</h2>
|
||||
<p>
|
||||
{translate key="admin.systemInformation.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
element="a"
|
||||
href="{url op="systemInfo"}"
|
||||
>
|
||||
{translate key="admin.systemInformation.view"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel>
|
||||
<h2>{translate key="admin.expireSessions"}</h2>
|
||||
<p>
|
||||
{translate key="admin.expireSessions.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<form type="post" action="{url op="expireSessions"}">
|
||||
{csrf}
|
||||
<button class="pkpButton pkpButton--isWarnable" onclick="return confirm({translate|json_encode|escape key="admin.confirmExpireSessions"})">{translate key="admin.expireSessions"}</button>
|
||||
</form>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel>
|
||||
<h2>{translate key="admin.deleteCache"}</h2>
|
||||
<p>
|
||||
{translate key="admin.deleteCache.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<form type="post" action="{url op="clearDataCache"}">
|
||||
{csrf}
|
||||
<button class="pkpButton pkpButton--isWarnable">{translate key="admin.clearDataCache"}</button>
|
||||
</form>
|
||||
<form type="post" action="{url op="clearTemplateCache"}">
|
||||
{csrf}
|
||||
<button class="pkpButton pkpButton--isWarnable" onclick="return confirm({translate|json_encode|escape key="admin.confirmClearTemplateCache"})">{translate key="admin.clearTemplateCache"}</button>
|
||||
</form>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel>
|
||||
<h2>{translate key="admin.scheduledTask.clearLogs"}</h2>
|
||||
<p>
|
||||
{translate key="admin.scheduledTask.clearLogs.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<form type="post" action="{url op="clearScheduledTaskLogFiles"}">
|
||||
{csrf}
|
||||
<button class="pkpButton pkpButton--isWarnable" onclick="return confirm({translate|json_encode|escape key="admin.scheduledTask.confirmClearLogs"})">{translate key="admin.scheduledTask.clearLogs.delete"}</button>
|
||||
</form>
|
||||
</template>
|
||||
</action-panel>
|
||||
<action-panel>
|
||||
<h2>{translate key="navigation.tools.jobs"}</h2>
|
||||
<p>
|
||||
{translate key="navigation.tools.jobs.description"}
|
||||
</p>
|
||||
<template slot="actions">
|
||||
<pkp-button
|
||||
element="a"
|
||||
href="{url op="jobs"}"
|
||||
>
|
||||
{translate key="navigation.tools.jobs.view"}
|
||||
</pkp-button>
|
||||
<pkp-button
|
||||
element="a"
|
||||
href="{url op="failedJobs"}"
|
||||
>
|
||||
{translate key="navigation.tools.jobs.failed.view"}
|
||||
</pkp-button>
|
||||
</template>
|
||||
</action-panel>
|
||||
{call_hook name="Templates::Admin::Index::AdminFunctions"}
|
||||
{/block}
|
||||
@@ -0,0 +1,31 @@
|
||||
{**
|
||||
* templates/admin/jobs.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2022 Simon Fraser University
|
||||
* Copyright (c) 2003-2022 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Jobs index
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key=$pageTitle}
|
||||
</h1>
|
||||
<div class="app__contentPanel">
|
||||
<pkp-table
|
||||
:columns="columns"
|
||||
:rows="rows"
|
||||
:description="description"
|
||||
:label="label"
|
||||
></pkp-table>
|
||||
|
||||
<pagination v-if="lastPage > 1"
|
||||
:current-page="currentPage"
|
||||
:last-page="lastPage"
|
||||
:is-loading="isLoadingItems"
|
||||
@set-page="handlePagination"
|
||||
/>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,147 @@
|
||||
{**
|
||||
* templates/admin/settings.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.
|
||||
*
|
||||
* Administration settings page.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="admin.siteSettings"}
|
||||
</h1>
|
||||
|
||||
{if $newVersionAvailable}
|
||||
<notification>
|
||||
{translate key="site.upgradeAvailable.admin" currentVersion=$currentVersion->getVersionString(false) latestVersion=$latestVersion}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
<tabs :track-history="true">
|
||||
{if $componentAvailability['siteSetup']}
|
||||
<tab id="setup" label="{translate key="admin.siteSetup"}">
|
||||
<tabs :is-side-tabs="true" :track-history="true">
|
||||
{if $componentAvailability['siteConfig']}
|
||||
<tab id="settings" label="{translate key="admin.settings"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SITE_CONFIG}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['siteInfo']}
|
||||
<tab id="info" label="{translate key="manager.setup.information"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SITE_INFO}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['languages']}
|
||||
<tab id="languages" label="{translate key="common.languages"}">
|
||||
{capture assign=languagesUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.admin.languages.AdminLanguageGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="languageGridContainer" url=$languagesUrl}
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['navigationMenus']}
|
||||
<tab id="nav" label="{translate key="manager.navigationMenus"}">
|
||||
{capture assign=navigationMenusGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenusGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="navigationMenuGridContainer" url=$navigationMenusGridUrl}
|
||||
{capture assign=navigationMenuItemsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenuItemsGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="navigationMenuItemsGridContainer" url=$navigationMenuItemsGridUrl}
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['highlights']}
|
||||
<tab id="highlights" label="{translate key="common.highlights"}">
|
||||
<highlights-list-panel
|
||||
v-bind="components.highlights"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['bulkEmails']}
|
||||
<tab id="bulkEmails" label="{translate key="admin.settings.enableBulkEmails.label"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SITE_BULK_EMAILS}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['statistics']}
|
||||
<tab id="statistics" label="{translate key="manager.setup.statistics"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SITE_STATISTICS}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Settings::admin::setup"}
|
||||
</tabs>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['siteAppearance']}
|
||||
<tab id="appearance" label="{translate key="manager.website.appearance"}">
|
||||
<tabs :is-side-tabs="true" :track-history="true">
|
||||
{if $componentAvailability['siteTheme']}
|
||||
<tab id="theme" label="{translate key="manager.setup.theme"}">
|
||||
<theme-form
|
||||
v-bind="components.{$smarty.const.FORM_THEME}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['siteAppearanceSetup']}
|
||||
<tab id="setup" label="{translate key="navigation.setup"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_SITE_APPEARANCE}"
|
||||
@set="set"
|
||||
/>
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Settings::admin::appearance"}
|
||||
</tabs>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['announcements']}
|
||||
<tab id="announcements" label="{translate key="announcement.announcements"}">
|
||||
<tabs :is-side-tabs="true" :track-history="true">
|
||||
<tab id="announcement-settings" label="{translate key="admin.settings"}">
|
||||
<pkp-form
|
||||
v-bind="components.{$smarty.const.FORM_ANNOUNCEMENT_SETTINGS}"
|
||||
@set="set"
|
||||
></pkp-form>
|
||||
</tab>
|
||||
<tab id="announcement-items" label="{translate key="announcement.announcements"}">
|
||||
<announcements-list-panel
|
||||
v-if="announcementsEnabled"
|
||||
v-bind="components.announcements"
|
||||
@set="set"
|
||||
></announcements-list-panel>
|
||||
<p v-else>
|
||||
{translate key="manager.announcements.notEnabled"}
|
||||
</p>
|
||||
</tab>
|
||||
<tab id="announcement-types" label="{translate key="manager.announcementTypes"}">
|
||||
<template v-if="announcementsEnabled">
|
||||
{capture assign=announcementTypeGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.announcements.AnnouncementTypeGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="announcementTypeGridContainer" url=$announcementTypeGridUrl inVueEl=true}
|
||||
</template>
|
||||
<p v-else>
|
||||
{translate key="manager.announcements.notEnabled"}
|
||||
</p>
|
||||
</tab>
|
||||
</tabs>
|
||||
</tab>
|
||||
{/if}
|
||||
{if $componentAvailability['sitePlugins']}
|
||||
<tab id="plugins" label="{translate key="common.plugins"}">
|
||||
{capture assign=pluginGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.admin.plugins.AdminPluginGridHandler" op="fetchGrid" escape=false}{/capture}
|
||||
{load_url_in_div id="pluginGridContainer" url=$pluginGridUrl}
|
||||
</tab>
|
||||
{/if}
|
||||
{call_hook name="Template::Settings::admin"}
|
||||
</tabs>
|
||||
{/block}
|
||||
@@ -0,0 +1,115 @@
|
||||
{**
|
||||
* systemInfo.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 system information.
|
||||
*}
|
||||
{extends file="layouts/backend.tpl"}
|
||||
|
||||
{block name="page"}
|
||||
<h1 class="app__pageHeading">
|
||||
{translate key="admin.systemInformation"}
|
||||
</h1>
|
||||
|
||||
{if $newVersionAvailable}
|
||||
<notification>
|
||||
{translate key="site.upgradeAvailable.admin" currentVersion=$currentVersion->getVersionString(false) latestVersion=$latestVersion}
|
||||
</notification>
|
||||
{/if}
|
||||
|
||||
<div class="app__contentPanel">
|
||||
|
||||
<h2>{translate key="admin.currentVersion"}: {$currentVersion->getVersionString(false)} ({$currentVersion->getDateInstalled()|date_format:$datetimeFormatLong})</h2>
|
||||
|
||||
{if $latestVersionInfo}
|
||||
<p>{translate key="admin.version.latest"}: {$latestVersionInfo.release|escape} ({$latestVersionInfo.date|date_format:$dateFormatLong})</p>
|
||||
{if $currentVersion->compare($latestVersionInfo.version) < 0}
|
||||
<p><strong>{translate key="admin.version.updateAvailable"}</strong>: <a href="{$latestVersionInfo.package|escape}">{translate key="admin.version.downloadPackage"}</a> | {if $latestVersionInfo.patch}<a href="{$latestVersionInfo.patch|escape}">{translate key="admin.version.downloadPatch"}</a>{else}{translate key="admin.version.downloadPatch"}{/if} | <a href="{$latestVersionInfo.info|escape}">{translate key="admin.version.moreInfo"}</a></p>
|
||||
{else}
|
||||
<p><strong>{translate key="admin.version.upToDate"}</strong></p>
|
||||
{/if}
|
||||
{else}
|
||||
<p><a href="{url versionCheck=1}">{translate key="admin.version.checkForUpdates"}</a></p>
|
||||
{/if}
|
||||
|
||||
<h2 id="versionHistory">{translate key="admin.versionHistory"}</h2>
|
||||
|
||||
<table class="pkpTable" aria-labelledby="versionHistory">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{translate key="admin.version"}</th>
|
||||
<th>{translate key="admin.versionMajor"}</th>
|
||||
<th>{translate key="admin.versionMinor"}</th>
|
||||
<th>{translate key="admin.versionRevision"}</th>
|
||||
<th>{translate key="admin.versionBuild"}</th>
|
||||
<th>{translate key="admin.dateInstalled"}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$versionHistory item="version"}
|
||||
<tr>
|
||||
<td>{$version->getVersionString(false)}</td>
|
||||
<td>{$version->getMajor()}</td>
|
||||
<td>{$version->getMinor()}</td>
|
||||
<td>{$version->getRevision()}</td>
|
||||
<td>{$version->getBuild()}</td>
|
||||
<td>{$version->getDateInstalled()|date_format:$dateFormatShort}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2 id="serverInformation">{translate key="admin.serverInformation"}</h2>
|
||||
|
||||
<table class="pkpTable" aria-labelledby="serverInformation">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{translate key="admin.systemInfo.settingName"}</th>
|
||||
<th>{translate key="admin.systemInfo.settingValue"}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$serverInfo item="value" key="name"}
|
||||
<tr>
|
||||
<td>{translate key=$name}</td>
|
||||
<td>{$value|escape}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>{translate key="admin.systemConfiguration"}</h2>
|
||||
|
||||
<table class="pkpTable" aria-labelledby="systemConfiguration{$key}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{translate key="admin.systemInfo.settingName"}</th>
|
||||
<th>{translate key="admin.systemInfo.settingValue"}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{foreach from=$configData item="settings" key="category"}
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2" class="app--admin__systemInfoGroup">{$category}</td>
|
||||
</tr>
|
||||
{foreach from=$settings item="value" key="name"}
|
||||
<tr>
|
||||
<td>{$name|escape}</td>
|
||||
{if $name === "password"}
|
||||
<td>**************</td>
|
||||
{else}
|
||||
<td>{$value|escape}</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
{/foreach}
|
||||
</table>
|
||||
|
||||
|
||||
<a href="{url op="phpinfo"}" target="_blank">{translate key="admin.phpInfo"}</a>
|
||||
</div><!-- .pkp_page_content -->
|
||||
{/block}
|
||||
@@ -0,0 +1,31 @@
|
||||
{**
|
||||
* templates/authorDashboard/reviewRoundInfo.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display submission review details in author dashboard page.
|
||||
*}
|
||||
|
||||
<!-- Display round status -->
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="reviewRoundNotification_"|concat:$reviewRoundId requestOptions=$reviewRoundNotificationRequestOptions}
|
||||
|
||||
<!-- Display editor's message to the author -->
|
||||
{include file="authorDashboard/submissionEmails.tpl" submissionEmails=$submissionEmails}
|
||||
|
||||
{* Reviewer grid *}
|
||||
{if $showReviewerGrid}
|
||||
{capture assign="reviewersGridUrl"}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.users.reviewer.AuthorReviewerGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{load_url_in_div id="reviewersGrid-round_"|concat:$reviewRoundId url=$reviewersGridUrl}
|
||||
{/if}
|
||||
|
||||
<!-- Display review attachments grid -->
|
||||
{if $showReviewAttachments}
|
||||
{** need to use the stage id in the div because two of these grids can appear in the dashboard at the same time (one for each stage). *}
|
||||
{capture assign=reviewAttachmentsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.attachment.AuthorReviewAttachmentsGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{load_url_in_div id="reviewAttachmentsGridContainer-`$stageId`-`$reviewRoundId`" url=$reviewAttachmentsGridUrl}
|
||||
|
||||
{capture assign=revisionsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.AuthorReviewRevisionsGridHandler" op="fetchGrid" submissionId=$submission->getId() stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{load_url_in_div id="revisionsGrid-`$stageId`-`$reviewRoundId`" url=$revisionsGridUrl}
|
||||
{/if}
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/authorDashboard/reviewRoundTab.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.
|
||||
*
|
||||
* Build a review round tab markup (for any review stage).
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#{$reviewRoundTabsId}').pkpHandler(
|
||||
'$.pkp.controllers.TabHandler',
|
||||
{ldelim}
|
||||
{assign var=roundIndex value=$lastReviewRoundNumber-1}
|
||||
selected: {$roundIndex}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="{$reviewRoundTabsId}" class="pkp_controllers_tab">
|
||||
<ul>
|
||||
{foreach from=$reviewRounds item=reviewRound}
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="tab.authorDashboard.AuthorDashboardReviewRoundTabHandler" op="fetchReviewRoundInfo" submissionId=$submission->getId() stageId=$reviewRound->getStageId() reviewRoundId=$reviewRound->getId() escape=false}">{translate key="submission.round" round=$reviewRound->getRound()}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
{**
|
||||
* templates/authorDashboard/submissionEmail.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.
|
||||
*
|
||||
* Render a single submission email.
|
||||
*}
|
||||
<div class="pkp_submission_email">
|
||||
<h2>
|
||||
{$submissionEmail->getSubject()|escape}
|
||||
</h2>
|
||||
<div class="date">
|
||||
{$submissionEmail->getDateSent()|date_format:$datetimeFormatShort}
|
||||
</div>
|
||||
<div class="email_entry">
|
||||
{$submissionEmail->getBody()|strip_unsafe_html}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,51 @@
|
||||
{**
|
||||
* templates/authorDashboard/submissionEmails.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display submission emails to authors.
|
||||
*}
|
||||
|
||||
{if $submissionEmails && $submissionEmails->getCount()}
|
||||
|
||||
<div class="pkp_submission_emails">
|
||||
<h3>{translate key="notification.notifications"}</h3>
|
||||
|
||||
<ul>
|
||||
{iterate from=submissionEmails item=submissionEmail}
|
||||
|
||||
{capture assign=submissionEmailLinkId}submissionEmail-{$submissionEmail->getId()}{/capture}
|
||||
<script type="text/javascript">
|
||||
// Initialize JS handler.
|
||||
$(function() {ldelim}
|
||||
$('#{$submissionEmailLinkId|escape:"javascript"}').pkpHandler(
|
||||
'$.pkp.pages.authorDashboard.SubmissionEmailHandler',
|
||||
{ldelim}
|
||||
{* Parameters for parent LinkActionHandler *}
|
||||
actionRequest: '$.pkp.classes.linkAction.ModalRequest',
|
||||
actionRequestOptions: {ldelim}
|
||||
titleIcon: 'modal_information',
|
||||
title: {translate|json_encode key="notification.notifications"},
|
||||
modalHandler: '$.pkp.controllers.modal.AjaxModalHandler',
|
||||
url: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_PAGE page="authorDashboard" op="readSubmissionEmail" submissionId=$submission->getId() stageId=$stageId reviewRoundId=$reviewRoundId submissionEmailId=$submissionEmail->getId() escape=false}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<li>
|
||||
<span class="message">
|
||||
<a href="#" id="{$submissionEmailLinkId|escape}">{$submissionEmail->getSubject()|escape}</a>
|
||||
</span>
|
||||
<span class="date">
|
||||
{$submissionEmail->getDateSent()|date_format:$datetimeFormatShort}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
{/iterate}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -0,0 +1,25 @@
|
||||
{**
|
||||
* lib/pkp/templates/common/formErrors.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.
|
||||
*
|
||||
* List errors that occurred during form processing.
|
||||
*}
|
||||
{if $isError}
|
||||
<div id="formErrors">
|
||||
<span class="pkp_form_error">{translate key="form.errorsOccurred"}:</span>
|
||||
<ul class="pkp_form_error_list">
|
||||
{foreach key=field item=message from=$errors}
|
||||
<li><a href="#{$field|escape}">{$message}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
<script>{literal}
|
||||
<!--
|
||||
// Jump to form errors.
|
||||
window.location.hash="formErrors";
|
||||
// -->
|
||||
{/literal}</script>
|
||||
{/if}
|
||||
@@ -0,0 +1,24 @@
|
||||
{**
|
||||
* templates/common/helpLink.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief A link which can request the help panel open to a specific chapter
|
||||
* and section
|
||||
*
|
||||
* @uses $helpFile string Markdown filename, eg - chapter_6_submissions.md
|
||||
* @uses $helpSection string Section reference, eg - second
|
||||
* @uses $helpText string Text for the link
|
||||
* @uses $helpTextKey string Locale key for the link text
|
||||
* @uses $helpClass string Class to add to the help link
|
||||
*}
|
||||
<button class="requestHelpPanel pkp_help_link {$helpClass|escape}" data-topic="{$helpFile|escape}"{if $helpSection} data-section="{$helpSection|escape}"{/if}>
|
||||
<span class="fa fa-info-circle pkpIcon--inline" aria-hidden="true"></span>
|
||||
{if $helpText}
|
||||
{$text|escape}
|
||||
{else}
|
||||
{translate key=$helpTextKey}
|
||||
{/if}
|
||||
</button>
|
||||
@@ -0,0 +1,15 @@
|
||||
{**
|
||||
* loadingContainer.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* The default HTML to display in a grid before it is loaded.
|
||||
*
|
||||
*}
|
||||
|
||||
<div class="pkp_loading">
|
||||
<span class="pkp_spinner"></span>
|
||||
<span class="message">{translate key="common.loading"}</span>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
{**
|
||||
* templates/common/urlInEl.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.
|
||||
*
|
||||
* Include the contents of a URL in a DIV, AJAX-style.
|
||||
*
|
||||
* @param ?bool $inVueEl Whether or not this div is used in HTML code that is
|
||||
* processed by Vue.js's template compiler.
|
||||
*
|
||||
*}
|
||||
|
||||
{if $inVueEl}
|
||||
<component is="script">
|
||||
{else}
|
||||
<script>
|
||||
{/if}
|
||||
// Initialize JS handler.
|
||||
$(function() {ldelim}
|
||||
$('#{$inElElId|escape:javascript}').pkpHandler(
|
||||
'$.pkp.controllers.UrlInDivHandler',
|
||||
{ldelim}
|
||||
sourceUrl: {$inElUrl|json_encode},
|
||||
refreshOn: {$refreshOn|json_encode}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
{if $inVueEl}
|
||||
</component>
|
||||
{else}
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
<{$inEl} id="{$inElElId|escape}"{if $inElClass} class="{$inElClass|escape}"{/if}>{$inElPlaceholder}</{$inEl}>
|
||||
@@ -0,0 +1,172 @@
|
||||
{**
|
||||
* templates/common/userDetails.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.
|
||||
*
|
||||
* Common user details form.
|
||||
*
|
||||
* Parameters:
|
||||
* $disableUserNameSection: Disable UserName section
|
||||
* $disableEmailSection: Disable Email section
|
||||
* $disablePasswordSection: Disable Password section
|
||||
* $disableSendNotifySection: Disable SendNotify section
|
||||
* $disablePhoneSection: Disable Phone section
|
||||
* $disableLocaleSection: Disable Locale section
|
||||
* $disableInterestsSection: Disable Interests section
|
||||
* $disableMailingSection: Disable Mailing section
|
||||
* $disableSignatureSection: Disable Signature section
|
||||
*
|
||||
* $countryRequired: Whether or not the country select is a required field
|
||||
* $extraContentSectionUnfolded: Whether or not the extra content section is unfolded by default
|
||||
*}
|
||||
|
||||
{fbvFormArea id="userDetails"}
|
||||
{fbvFormSection title="user.name"}
|
||||
{fbvElement type="text" label="user.givenName" multilingual="true" name="givenName" id="givenName" value=$givenName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM required="true"}
|
||||
{fbvElement type="text" label="user.familyName" multilingual="true" name="familyName" id="familyName" value=$familyName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection for="preferredPublicName" description="user.preferredPublicName.description"}
|
||||
{fbvElement type="text" label="user.preferredPublicName" multilingual="true" name="preferredPublicName" id="preferredPublicName" value=$preferredPublicName size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if !$disableUserNameSection}
|
||||
{if !$userId}{capture assign="usernameInstruction"}{translate key="user.register.usernameRestriction"}{/capture}{/if}
|
||||
{fbvFormSection for="username" description=$usernameInstruction translate=false}
|
||||
{if !$userId}
|
||||
{fbvElement type="text" label="user.username" id="username" required="true" value=$username maxlength="32" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="button" label="common.suggest" id="suggestUsernameButton" inline=true class="default"}
|
||||
{else}
|
||||
{fbvFormSection title="user.username" suppressId="true"}
|
||||
{$username|escape}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{if !$disableEmailSection}
|
||||
{fbvFormSection title="about.contact"}
|
||||
{fbvElement type="email" label="user.email" id="email" required="true" value=$email maxlength="90" size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{if !$disablePasswordSection}
|
||||
{if $userId}{capture assign="passwordInstruction"}{translate key="user.profile.leavePasswordBlank"} {translate key="user.register.form.passwordLengthRestriction" length=$minPasswordLength}{/capture}{/if}
|
||||
{fbvFormArea id="passwordSection" title="user.password"}
|
||||
{fbvFormSection for="password" description=$passwordInstruction translate=false}
|
||||
{fbvElement type="text" label="user.password" required=$passwordRequired name="password" id="password" password="true" value=$password maxlength="32" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="text" label="user.repeatPassword" required=$passwordRequired name="password2" id="password2" password="true" value=$password2 maxlength="32" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if !$userId}
|
||||
{fbvFormSection title="grid.user.generatePassword" for="generatePassword" list=true}
|
||||
{if $generatePassword}
|
||||
{assign var="checked" value=true}
|
||||
{else}
|
||||
{assign var="checked" value=false}
|
||||
{/if}
|
||||
{fbvElement type="checkbox" name="generatePassword" id="generatePassword" checked=$checked label="grid.user.generatePasswordDescription" translate="true"}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{fbvFormSection title="grid.user.mustChangePassword" for="mustChangePassword" list=true}
|
||||
{if $mustChangePassword}
|
||||
{assign var="checked" value=true}
|
||||
{else}
|
||||
{assign var="checked" value=false}
|
||||
{/if}
|
||||
{fbvElement type="checkbox" name="mustChangePassword" id="mustChangePassword" checked=$checked label="grid.user.mustChangePasswordDescription" translate="true"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
{/if}
|
||||
|
||||
{if $countryRequired}
|
||||
{assign var="countryRequired" value=true}
|
||||
{else}
|
||||
{assign var="countryRequired" value=false}
|
||||
{/if}
|
||||
{fbvFormSection for="country" title="common.country"}
|
||||
{fbvElement type="select" label="common.country" name="country" id="country" required=$countryRequired defaultLabel="" defaultValue="" from=$countries selected=$country translate="0" size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if !$disableSendNotifySection}
|
||||
{fbvFormSection title="grid.user.notifyUser" for="sendNotify" list=true}
|
||||
{if $sendNotify}
|
||||
{assign var="checked" value=true}
|
||||
{else}
|
||||
{assign var="checked" value=false}
|
||||
{/if}
|
||||
{fbvElement type="checkbox" name="sendNotify" id="sendNotify" checked=$checked label="grid.user.notifyUserDescription" translate="true"}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{/fbvFormArea}
|
||||
{call_hook name="Common::UserDetails::AdditionalItems"}
|
||||
{capture assign="extraContent"}
|
||||
{fbvFormArea id="userFormExtendedLeft"}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="text" label="user.url" name="userUrl" id="userUrl" value=$userUrl maxlength="255" inline=true size=$fbvStyles.size.SMALL}
|
||||
{if !$disablePhoneSection}
|
||||
{fbvElement type="tel" label="user.phone" name="phone" id="phone" value=$phone maxlength="24" inline=true size=$fbvStyles.size.SMALL}
|
||||
{/if}
|
||||
{fbvElement type="text" label="user.orcid" name="orcid" id="orcid" value=$orcid maxlength="46" inline=true size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if !$disableLocaleSection && count($availableLocales) > 1}
|
||||
{fbvFormSection title="user.workingLanguages" list=true}
|
||||
{foreach from=$availableLocales key=localeKey item=localeName}
|
||||
{if $locales && in_array($localeKey, $locales)}
|
||||
{assign var="checked" value=true}
|
||||
{else}
|
||||
{assign var="checked" value=false}
|
||||
{/if}
|
||||
{fbvElement type="checkbox" name="locales[]" id="locales-$localeKey" value=$localeKey checked=$checked label=$localeName|escape translate=false}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{if !$disableInterestsSection}
|
||||
{fbvFormSection for="interests"}
|
||||
{fbvElement type="interests" id="interests" interests=$interests label="user.interests"}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{fbvFormSection for="affiliation"}
|
||||
{fbvElement type="text" label="user.affiliation" multilingual="true" name="affiliation" id="affiliation" value=$affiliation inline=true size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection}
|
||||
{fbvElement type="textarea" label="user.biography" multilingual="true" name="biography" id="biography" rich=true value=$biography}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if !$disableMailingSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="textarea" label="common.mailingAddress" name="mailingAddress" id="mailingAddress" rich=true value=$mailingAddress}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{if !$disableSignatureSection}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="textarea" label="user.signature" multilingual="true" name="signature" id="signature" value=$signature rich=true}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{/fbvFormArea}
|
||||
{/capture}
|
||||
|
||||
{fbvFormSection}
|
||||
{if $extraContentSectionUnfolded}
|
||||
{fbvFormSection title="grid.user.userDetails"}
|
||||
{$extraContent}
|
||||
{/fbvFormSection}
|
||||
{else}
|
||||
<div id="userExtraFormFields" class="left full">
|
||||
{include file="controllers/extrasOnDemand.tpl"
|
||||
id="userExtras"
|
||||
widgetWrapper="#userExtraFormFields"
|
||||
moreDetailsText="grid.user.moreDetails"
|
||||
lessDetailsText="grid.user.lessDetails"
|
||||
extraContent=$extraContent
|
||||
}
|
||||
</div>
|
||||
{/if}
|
||||
{/fbvFormSection}
|
||||
@@ -0,0 +1,41 @@
|
||||
{**
|
||||
* templates/common/userDetailsReadOnly.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2022 Simon Fraser University
|
||||
* Copyright (c) 2003-2022 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* User details view only
|
||||
*}
|
||||
<h4>{translate key="grid.user.userDetails"}</h4>
|
||||
|
||||
<div id="userDetailsReadOnly">
|
||||
<div class="section">
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="user.givenName"}</span><br />
|
||||
<span>{$user->getLocalizedData('givenName', $site->getPrimaryLocale())|escape}</span>
|
||||
</div>
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="user.familyName"}</span><br />
|
||||
<span>{$user->getLocalizedData('familyName', $site->getPrimaryLocale())|escape}</span>
|
||||
</div>
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="user.preferredPublicName"}</span><br />
|
||||
<span>{$user->getLocalizedData('preferredPublicName', $site->getPrimaryLocale())|escape}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="user.email"}</span><br />
|
||||
<span>{$email|escape}</span>
|
||||
</div>
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="common.country"}</span><br />
|
||||
<span>{$countries[$user->getCountry()]|escape}</span>
|
||||
</div>
|
||||
<div class="inline pkp_helpers_third">
|
||||
<span class="pkp_helpers_form_input_title_text">{translate key="user.phone"}</span><br />
|
||||
<span>{$user->getPhone()|escape}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
{**
|
||||
* templates/controllers/api/file/editMetadata.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* The "edit proof submission file" tabset.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#editFileMetadataTabs').pkpHandler('$.pkp.controllers.TabHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="editFileMetadataTabs">
|
||||
<ul>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="editMetadataTab" submissionFileId=$submissionFile->getId() submissionId=$submissionFile->getData('submissionId') stageId=$stageId}">{translate key="grid.action.editMetadata"}</a></li>
|
||||
{if $showIdentifierTab}
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="identifiers" submissionFileId=$submissionFile->getId() submissionId=$submissionFile->getData('submissionId') stageId=$stageId}">{translate key="submission.identifiers"}</a></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
{**
|
||||
* controllers/extrasOnDemand.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Basic markup for extras on demand widget.
|
||||
*}
|
||||
<script>
|
||||
// Initialise JS handler.
|
||||
$(function() {ldelim}
|
||||
$('#{$id}').pkpHandler(
|
||||
'$.pkp.controllers.ExtrasOnDemandHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="{$id}" class="pkp_controllers_extrasOnDemand">
|
||||
<a href="#" class="toggleExtras">
|
||||
<span class="toggleExtras-inactive">{translate key=$moreDetailsText}</span>
|
||||
<span class="toggleExtras-active">{translate key=$lessDetailsText}</span>
|
||||
<span class="fa fa-plus"></span>
|
||||
</a>
|
||||
<div class="extrasContainer container">
|
||||
{$extraContent}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,81 @@
|
||||
{**
|
||||
* controllers/fileUploadContainer.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Markup for file uploader widget.
|
||||
*
|
||||
* @uses $id string ID for the HTML element wrapper. Typically used by parent
|
||||
* forms to instantiate the plupload utility.
|
||||
* @uses $stringDragFile string (optional) Translation key for the drag and
|
||||
* drop zone label
|
||||
* @uses $stringAddFile string (optional) Translation key for the add file
|
||||
* button
|
||||
* @uses $stringChangeFile string (optional) Translation key for the change
|
||||
* file button
|
||||
* @uses $browseButton string (optional) Element id for the browse button. When
|
||||
* a custom id is used, FileUploadFormHandler must pass this id in the
|
||||
* `uploaderOptions`.
|
||||
*}
|
||||
{if !$stringDragFile}
|
||||
{assign var=stringDragFile value="common.upload.dragFile"}
|
||||
{/if}
|
||||
{if !$stringAddFile}
|
||||
{assign var=stringAddFile value="common.upload.addFile"}
|
||||
{/if}
|
||||
{if !$stringChangeFile}
|
||||
{assign var=stringChangeFile value="common.upload.changeFile"}
|
||||
{/if}
|
||||
{if !$browseButton}
|
||||
{assign var=browseButton value="pkpUploaderButton"}
|
||||
{/if}
|
||||
|
||||
|
||||
<div id="{$id}" class="pkp_controller_fileUpload loading">
|
||||
<div class="pkp_uploader_loading">
|
||||
{**
|
||||
* This wrapper div is a hack to emulate the inPlaceNotification.tpl
|
||||
* structure. There's currently not a way to use these notifications
|
||||
* without loading the JavaScript handler, but in this case we don't
|
||||
* have the required settings.
|
||||
*}
|
||||
<div class="pkp_notification">
|
||||
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=$id
|
||||
notificationStyleClass="notifyWarning" notificationContents=$warningMessage
|
||||
warningTitle="common.warning"|translate warningMessage="common.fileUploaderError"|translate}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{* The file upload and drag-and-drop area *}
|
||||
<div id="{$id}-pkpUploaderDropZone" class="pkp_uploader_drop_zone">
|
||||
|
||||
<div class="pkp_uploader_drop_zone_label">
|
||||
{translate key=$stringDragFile}
|
||||
</div>
|
||||
|
||||
<div class="pkp_uploader_details">
|
||||
<span class="pkpUploaderProgress">
|
||||
{translate key="common.percentage" percentage='<span class="percentage">0</span>'}
|
||||
</span>{* Live progress (%) *}
|
||||
<div class="pkp_uploader_progress_bar_wrapper">
|
||||
<span class="pkpUploaderProgressBar"></span>{* Live progress bar*}
|
||||
</div>
|
||||
<span class="pkpUploaderFilename"></span>{* Uploaded file name *}
|
||||
</div>
|
||||
|
||||
{* Placeholder for errors during upload *}
|
||||
<div class="pkpUploaderError"></div>
|
||||
|
||||
{* Button to add/change file *}
|
||||
<button id="{$browseButton|escape}" class="pkp_uploader_button pkp_button" tabindex="-1">
|
||||
<span class="pkp_uploader_button_add">
|
||||
{translate key=$stringAddFile}
|
||||
</span>
|
||||
<span class="pkp_uploader_button_change">
|
||||
{translate key=$stringChangeFile}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
{**
|
||||
* templates/controllers/grid/announcements/form/announcementTypeForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to read/create/edit announcement types.
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#announcementTypeForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="announcementTypeForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.announcements.AnnouncementTypeGridHandler" op="updateAnnouncementType"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="announcementTypeFormNotification"}
|
||||
{fbvFormArea id="announcementTypeInfo"}
|
||||
{if $typeId}
|
||||
<input type="hidden" name="announcementTypeId" value="{$typeId|escape}" />
|
||||
{/if}
|
||||
{fbvFormSection title="manager.announcementTypes.form.typeName" for="title" required="true"}
|
||||
{fbvElement type="text" multilingual="true" id="name" value=$name maxlength="255" required="true"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons id="announcementTypeFormSubmit" submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,22 @@
|
||||
{**
|
||||
* templates/controllers/grid/columnGroup.tpl
|
||||
*
|
||||
* Copyright (c) 2016-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Column group HTML markup for grids.
|
||||
*}
|
||||
|
||||
<colgroup>
|
||||
{foreach from=$columns item=column}
|
||||
{* @todo indent columns should be killed at their source *}
|
||||
{if $column->hasFlag('indent')}
|
||||
{continue}
|
||||
{/if}
|
||||
<col class="grid-column column-{$column->getId()}"
|
||||
{if $column->hasFlag('width')}
|
||||
style="width: {$column->getFlag('width')}%;"
|
||||
{/if} />
|
||||
{/foreach}
|
||||
</colgroup>
|
||||
@@ -0,0 +1,16 @@
|
||||
{**
|
||||
* templates/controllers/grid/common/cell/checkMarkCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Cell to represent a boolean true with a check mark.
|
||||
*
|
||||
*}
|
||||
{if $isChecked}
|
||||
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
|
||||
{else}
|
||||
<div id="notChecked"><div href="#" class='pkp_helpers_container_center notChecked'></div></div>
|
||||
{/if}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{**
|
||||
* templates/controllers/grid/common/cell/radioButtonCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a regular grid cell (with or without actions)
|
||||
*}
|
||||
{assign var=cellId value="cell-"|concat:$id}
|
||||
<span id="{$cellId}">
|
||||
{if count($actions) gt 0}
|
||||
{assign var=defaultCellAction value=$actions[0]}
|
||||
{include file="linkAction/buttonGenericLinkAction.tpl" action=$defaultCellAction buttonSelector="#select-"|concat:$cellId}
|
||||
{/if}
|
||||
<input type="radio" id="select-{$cellId}" style="height: 15px; width: 15px;" {if $selected}checked="checked"{/if} {if $disabled}disabled="disabled"{/if}/>
|
||||
</span>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{**
|
||||
* templates/controllers/grid/common/cell/selectStatusCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a regular grid cell (with or without actions)
|
||||
*}
|
||||
{assign var=cellId value="cell-"|concat:$id|uniqid}
|
||||
<span id="{$cellId}">
|
||||
{if count($actions) gt 0}
|
||||
{assign var=defaultCellAction value=$actions[0]}
|
||||
{include file="linkAction/buttonGenericLinkAction.tpl" action=$defaultCellAction buttonSelector="#select-"|concat:$cellId}
|
||||
{/if}
|
||||
<input type="checkbox" id="select-{$cellId}" {if $name}name="{$name|escape}"{/if} {if $value}value="{$value|escape}"{/if} style="height: 15px; width: 15px;" {if $selected}checked="checked"{/if} {if $disabled}disabled="disabled"{/if}/>
|
||||
</span>
|
||||
@@ -0,0 +1,21 @@
|
||||
{**
|
||||
* templates/controllers/grid/common/cell/statusCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a regular grid cell (with or without actions)
|
||||
*}
|
||||
{assign var=cellId value="cell-"|concat:$id}
|
||||
<span id="{$cellId}" class="pkp_linkActions">
|
||||
{if count($actions) gt 0}
|
||||
{assign var=defaultCellAction value=$actions[0]}
|
||||
{* TODO imageClass doesn't appear to be used. Perhaps it should be image,
|
||||
or maybe it can be removed. *}
|
||||
{include file="linkAction/linkAction.tpl" action=$defaultCellAction contextId=$cellId imageClass="task"}
|
||||
{elseif $status}
|
||||
{capture assign="statusTitle"}{translate key="grid.task.status."|concat:$status}{/capture}
|
||||
<a title="{$statusTitle|escape}" class="task {$status|escape}">status</a>
|
||||
{/if}
|
||||
</span>
|
||||
@@ -0,0 +1,21 @@
|
||||
{**
|
||||
* controllers/grid/eventLog/eventLogGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for the event log entry list grid.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#eventLogFilterForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
|
||||
</script>
|
||||
<form class="pkp_form" id="eventLogFilterForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="allEventsFilterArea"}
|
||||
{fbvFormSection list="true"}
|
||||
{fbvElement type="checkbox" id="allEvents" checked=$filterSelectionData.allEvents label="submission.informationCenter.history.allEvents" size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,10 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/collapsibleGridFeature.tpl
|
||||
*
|
||||
* Copyright (c) 2016-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Control for the collpsible grid functionality.
|
||||
*}
|
||||
{include file="linkAction/linkAction.tpl" action=$controlLink contextId='collapsibleGridControl'}
|
||||
@@ -0,0 +1,21 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/featuresOptions.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid features js options.
|
||||
*}
|
||||
{ldelim}
|
||||
{foreach name=features from=$features item=feature}
|
||||
{$feature->getId()|json_encode}: {ldelim}
|
||||
JSClass: {$feature->getJSClass()|json_encode},
|
||||
options: {ldelim}
|
||||
{foreach name=featureOptions from=$feature->getOptions() key=optionName item=optionValue}
|
||||
{$optionName}: {if $optionValue}'{$optionValue|escape:javascript}'{else}false{/if}{if !$smarty.foreach.featureOptions.last},{/if}
|
||||
{/foreach}
|
||||
{rdelim}
|
||||
{rdelim}{if !$smarty.foreach.features.last},{/if}
|
||||
{/foreach}
|
||||
{rdelim}
|
||||
@@ -0,0 +1,17 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/gridOrderFinishControls.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Controls (button and link) to finish the ordering action in grids.
|
||||
*}
|
||||
<div class="grid_controls order_finish_controls">
|
||||
<a href="#" id="{$gridId|concat}-saveButton" class="saveButton">
|
||||
{translate key="common.done"}
|
||||
</a>
|
||||
<a href="#" id="{$gridId|concat}-cancel" class="cancelFormButton">
|
||||
{translate key="grid.action.cancelOrdering"}
|
||||
</a>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/gridOrderNonOrderableMessage.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Message to be presented while hovering for non orderable grid rows in ordering mode.
|
||||
*}
|
||||
|
||||
<div class="order_message">{$orderMessage}</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/gridPaging.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid paging markup.
|
||||
*}
|
||||
|
||||
<div class="gridPaging">
|
||||
<div class="gridItemsPerPage">
|
||||
{translate key="common.itemsPerPage"}:<select class="itemsPerPage"></select>
|
||||
</div>
|
||||
<div class="gridPages">
|
||||
{page_info iterator=$iterator itemsPerPage=$currentItemsPerPage}
|
||||
{page_links name=$grid->getId() iterator=$iterator}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
{**
|
||||
* templates/controllers/grid/feature/infiniteScrolling.tpl
|
||||
*
|
||||
* Copyright (c) 2016-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid infinite scrolling markup.
|
||||
*}
|
||||
{if $iterator->getCount()}
|
||||
<div class="gridPagingScrolling">
|
||||
{if $moreItemsLinkAction}
|
||||
{include file="linkAction/linkAction.tpl" action=$moreItemsLinkAction}
|
||||
{/if}
|
||||
<span class="item_count">
|
||||
{translate key="navigation.items.shownTotal" shown=$shown total=$iterator->getCount()}
|
||||
</span>
|
||||
{include file="common/loadingContainer.tpl"}
|
||||
</div>
|
||||
{/if}
|
||||
@@ -0,0 +1,31 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/copyedit/manageCopyeditFiles.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Allows users to manage the list of copyedit files, potentially adding more
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#manageCopyeditFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="manageCopyeditFilesForm" action="{url component="grid.files.copyedit.ManageCopyeditFilesGridHandler" op="updateCopyeditFiles" submissionId=$submissionId stageId=$smarty.const.WORKFLOW_STAGE_ID_EDITING}" method="post">
|
||||
<!-- Current copyedited files -->
|
||||
<div id="existingFilesContainer">
|
||||
{csrf}
|
||||
{fbvFormArea id="manageCopyeditFiles"}
|
||||
{fbvFormSection}
|
||||
{capture assign=manageCopyeditFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.copyedit.ManageCopyeditFilesGridHandler" op="fetchGrid" submissionId=$submissionId escape=false}{/capture}
|
||||
{load_url_in_div id="manageCopyeditFilesGrid" url=$manageCopyeditFilesGridUrl}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons}
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/filesGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2016-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for submission file lists.
|
||||
*}
|
||||
{assign var="formId" value="submissionFilesListFilter-"|concat:$filterData.gridId:"-"|uniqid}
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#{$formId}').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: false
|
||||
{rdelim}
|
||||
);
|
||||
</script>
|
||||
<form class="pkp_form filter" id="{$formId}" action="{url op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="submissionFilesSearchFormArea"|concat:$filterData.gridId}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="search" name="search" id="search"|concat:$filterData.gridId value=$filterSelectionData.search size=$fbvStyles.size.MEDIUM inline="true"}
|
||||
{fbvElement type="select" name="column" id="column"|concat:$filterData.gridId from=$filterData.columns selected=$filterSelectionData.column size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,33 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/final/manageFinalDraftFiles.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Allows editor to add more file to the review (that weren't added when the submission was sent to review)
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#manageFinalDraftFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="manageFinalDraftFilesForm" action="{url component="grid.files.final.ManageFinalDraftFilesGridHandler" op="updateFinalDraftFiles" submissionId=$submissionId}" method="post">
|
||||
<!-- Current final draft files -->
|
||||
<div id="existingFilesContainer">
|
||||
{csrf}
|
||||
{fbvFormArea id="manageFinalDraftFiles"}
|
||||
{fbvFormSection}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$smarty.const.WORKFLOW_STAGE_ID_EDITING}" />
|
||||
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.final.ManageFinalDraftFilesGridHandler" op="fetchGrid" submissionId=$submissionId escape=false}{/capture}
|
||||
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons}
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,39 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/proof/manageProofFiles.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Allows editor to add more files to the publication format
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#manageProofFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="manageProofFilesForm" action="{url component="grid.files.proof.ManageProofFilesGridHandler" op="updateProofFiles" submissionId=$submissionId}" method="post">
|
||||
<!-- Current proof files -->
|
||||
<p>{translate key="editor.submission.proof.manageProofFilesDescription"}</p>
|
||||
|
||||
<div id="existingFilesContainer">
|
||||
{csrf}
|
||||
{fbvFormArea id="manageProofFiles"}
|
||||
{fbvFormSection}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$smarty.const.WORKFLOW_STAGE_ID_PRODUCTION}" />
|
||||
<input type="hidden" name="representationId" value="{$representationId|escape}" />
|
||||
{if $publicationId}
|
||||
<input type="hidden" name="publicationId" value="{$publicationId|escape}">
|
||||
{/if}
|
||||
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.proof.ManageProofFilesGridHandler" op="fetchGrid" submissionId=$submissionId publicationId=$publicationId representationId=$representationId escape=false}{/capture}
|
||||
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons}
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,33 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/query/manageQueryNoteFiles.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Allows users to manage the list of files available to a query.
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#manageQueryNoteFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="manageQueryNoteFilesForm" action="{url component="grid.files.query.ManageQueryNoteFilesGridHandler" op="updateQueryNoteFiles" params=$actionArgs submissionId=$submissionId queryId=$queryId noteId=$noteId stageId=$smarty.const.WORKFLOW_STAGE_ID_EDITING}" method="post">
|
||||
<!-- Current query files -->
|
||||
<p>{translate key="editor.submission.query.manageQueryNoteFilesDescription"}</p>
|
||||
|
||||
<div id="existingFilesContainer">
|
||||
{csrf}
|
||||
{fbvFormArea id="manageQueryNoteFiles"}
|
||||
{fbvFormSection}
|
||||
{capture assign=manageQueryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.ManageQueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs submissionId=$submissionId queryId=$queryId noteId=$noteId escape=false}{/capture}
|
||||
{load_url_in_div id="manageQueryNoteFilesGrid" url=$manageQueryNoteFilesGridUrl}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons}
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,26 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/review/manageReviewFiles.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Allows editor to add more file to the review (that weren't added when the submission was sent to review)
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#manageReviewFilesForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="manageReviewFilesForm" action="{url component="grid.files.review.ManageReviewFilesGridHandler" op="updateReviewFiles" submissionId=$submissionId|escape stageId=$stageId|escape reviewRoundId=$reviewRoundId|escape}" method="post">
|
||||
<!-- Current review files -->
|
||||
<div id="existingFilesContainer">
|
||||
{csrf}
|
||||
<!-- Available submission files -->
|
||||
{capture assign=availableReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.ManageReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{load_url_in_div id="availableReviewFilesGrid" url=$availableReviewFilesGridUrl}
|
||||
{fbvFormButtons}
|
||||
</div>
|
||||
</form>
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/selectableSubmissionFileListCategoryGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for selectable submission file list category grid.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#fileListFilterForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
|
||||
</script>
|
||||
<form class="pkp_form filter" id="fileListFilterForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="includeAllStagesArea"}
|
||||
{fbvFormSection list="true"}
|
||||
{fbvElement type="checkbox" id="allStages" checked=$filterSelectionData.allStages label="editor.submission.fileList.includeAllStages"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,57 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/submissionDocuments/form/editFileForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Library Files form for editing an existing file
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the file upload form handler.
|
||||
$(function() {ldelim}
|
||||
$('#uploadForm').pkpHandler(
|
||||
'$.pkp.controllers.form.AjaxFormHandler'
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="uploadForm" action="{url op="updateFile" fileId=$libraryFile->getId()}" method="post">
|
||||
{csrf}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
{fbvFormArea id="name"}
|
||||
{fbvFormSection title="common.name" required=true}
|
||||
{fbvElement type="text" id="libraryFileName" value=$libraryFileName maxlength="255" multilingual=true required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="type"}
|
||||
{fbvFormSection title="common.type" required=true}
|
||||
{fbvElement type="select" from=$fileTypes id="fileType" selected=$libraryFile->getType() defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="file"}
|
||||
{fbvFormSection title="common.file"}
|
||||
<table id="fileInfo" class="data" width="100%">
|
||||
<tr valign="top">
|
||||
<td width="20%" class="label">{translate key="common.fileName"}</td>
|
||||
<td width="80%" class="value">{$libraryFile->getOriginalFileName()|escape}</a></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td class="label">{translate key="common.fileSize"}</td>
|
||||
<td class="value">{$libraryFile->getNiceFileSize()}</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td class="label">{translate key="common.dateUploaded"}</td>
|
||||
<td class="value">{$libraryFile->getDateUploaded()|date_format:$datetimeFormatShort}</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,55 @@
|
||||
{**
|
||||
* templates/controllers/grid/files/submissionDocuments/form/newFileForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Library Files form
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the file upload form handler.
|
||||
$(function() {ldelim}
|
||||
$('#uploadForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#plupload'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType submissionId=$submissionId escape=false},
|
||||
baseUrl: {$baseUrl|json_encode}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="uploadForm" action="{url op="saveFile"}" method="post">
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="libraryFileUploadNotification"}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
|
||||
{fbvFormArea id="name"}
|
||||
{fbvFormSection title="common.name" required=true}
|
||||
{fbvElement type="text" multilingual="true" id="libraryFileName" value=$libraryFileName maxlength="255" required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="type"}
|
||||
{fbvFormSection title="common.type" required=true}
|
||||
{fbvElement type="select" from=$fileTypes id="fileType" selected=$fileType defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="file"}
|
||||
{fbvFormSection title="common.file" required=true}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,114 @@
|
||||
{**
|
||||
* templates/controllers/grid/grid.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid HTML markup and construction
|
||||
*}
|
||||
|
||||
{assign var=staticId value="component-"|concat:$grid->getId()}
|
||||
{assign var=gridId value=$staticId|concat:'-'|uniqid}
|
||||
{assign var=gridTableId value=$gridId|concat:"-table"}
|
||||
{assign var=gridActOnId value=$gridTableId}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
{foreach from=$gridConstants key=$constant item=$value}
|
||||
$.pkp.cons.{$constant} = {$value};
|
||||
{/foreach}
|
||||
$('#{$gridId|escape:javascript}').pkpHandler(
|
||||
'{$grid->getJSHandler()|escape:javascript}',
|
||||
{ldelim}
|
||||
gridId: {$grid->getId()|json_encode},
|
||||
{foreach from=$grid->getUrls() key=key item=itemUrl name=gridUrls}
|
||||
{$key|json_encode}: {$itemUrl|json_encode},
|
||||
{/foreach}
|
||||
bodySelector: '#{$gridActOnId|escape:javascript}',
|
||||
{if $grid->getPublishChangeEvents()}
|
||||
publishChangeEvents: {$grid->getPublishChangeEvents()|@json_encode},
|
||||
{/if}
|
||||
features: {include file='controllers/grid/feature/featuresOptions.tpl' features=$features},
|
||||
csrfToken: {csrf type="json"}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<div id="{$gridId|escape}" class="pkp_controllers_grid{if is_a($grid, 'CategoryGridHandler')} pkp_grid_category{/if}{if !$grid->getTitle()} pkp_grid_no_title{/if}">
|
||||
{include file="controllers/grid/gridHeader.tpl"}
|
||||
<table id="{$gridTableId|escape}">
|
||||
{include file="controllers/grid/columnGroup.tpl" columns=$columns}
|
||||
<thead>
|
||||
{** build the column headers **}
|
||||
<tr>
|
||||
{foreach name=columns from=$columns item=column}
|
||||
{* @todo indent columns should be killed at their source *}
|
||||
{if $column->hasFlag('indent')}
|
||||
{continue}
|
||||
{/if}
|
||||
{if $column->hasFlag('alignment')}
|
||||
{assign var=alignment value=$column->getFlag('alignment')}
|
||||
{else}
|
||||
{assign var=alignment value=\PKP\controllers\grid\GridColumn::COLUMN_ALIGNMENT_LEFT}
|
||||
{/if}
|
||||
<th scope="col" style="text-align: {$alignment};">
|
||||
{$column->getLocalizedTitle()}
|
||||
{* TODO: Remove this stuff. Actions should not ever appear in the TH of a grid. *}
|
||||
{if $smarty.foreach.columns.last && $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_LASTCOL)}
|
||||
<span class="options pkp_linkActions">
|
||||
{foreach from=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_LASTCOL) item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$staticId}
|
||||
{/foreach}
|
||||
</span>
|
||||
{/if}
|
||||
</th>
|
||||
{/foreach}
|
||||
</tr>
|
||||
</thead>
|
||||
{if $grid->getIsSubcomponent() && !is_a($grid, 'CategoryGridHandler')}
|
||||
{* Create two separate tables so that the body part
|
||||
can be scrolled independently from the header in a
|
||||
cross-browser compatible way using only CSS. *}
|
||||
</table>
|
||||
<div class="scrollable">
|
||||
<table>
|
||||
{include file="controllers/grid/columnGroup.tpl" columns=$columns}
|
||||
{/if}
|
||||
{foreach from=$gridBodyParts item=bodyPart}
|
||||
{$bodyPart}
|
||||
{foreachelse}
|
||||
<tbody></tbody>
|
||||
{/foreach}
|
||||
<tbody class="empty"{if count($gridBodyParts) > 0} style="display: none;"{/if}>
|
||||
{**
|
||||
We need the last (=empty) line even if we have rows
|
||||
so that we can restore it if the user deletes all rows.
|
||||
**}
|
||||
<tr>
|
||||
<td colspan="{$grid->getColumnsCount('indent')}">{translate key=$grid->getEmptyRowText()}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{if $grid->getIsSubcomponent() && !is_a($grid, 'CategoryGridHandler')}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) || $grid->getFootNote()}
|
||||
<div class="footer">
|
||||
|
||||
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW)}
|
||||
{include file="controllers/grid/gridActionsBelow.tpl" actions=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) gridId=$staticId}
|
||||
{/if}
|
||||
|
||||
{if $grid->getFootNote()}
|
||||
<div class="footnote">
|
||||
{translate key=$grid->getFootNote()}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridActionsAbove.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Actions markup for upper grid actions
|
||||
*}
|
||||
|
||||
<ul class="actions">
|
||||
{foreach from=$actions item=action}
|
||||
<li>
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$gridId}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
@@ -0,0 +1,17 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridActionsBelow.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid actions in bottom position
|
||||
*}
|
||||
|
||||
<ul class="actions btm">
|
||||
{foreach from=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_BELOW) item=action}
|
||||
<li>
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$gridId}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
@@ -0,0 +1,16 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridBodyPart.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a set of grid rows within a tbody
|
||||
*}
|
||||
<tbody>
|
||||
{foreach from=$rows item=row}
|
||||
{$row}
|
||||
{/foreach}
|
||||
<tr></tr>
|
||||
</tbody>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridBodyPartWithCategory.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a set of grid rows with a category row at the beginning
|
||||
*}
|
||||
{assign var=categoryId value="component-"|concat:$categoryRow->getGridId():"-category-":$categoryRow->getId()|escape}
|
||||
<tbody id="{$categoryId|escape}" class="element{$categoryRow->getId()|escape} category_grid_body">
|
||||
{$renderedCategoryRow}
|
||||
{if $grid->getIsSubcomponent()}
|
||||
</tbody></table>
|
||||
<div class="scrollable"><table>
|
||||
{include file="controllers/grid/columnGroup.tpl" columns=$grid->getColumns()}
|
||||
<tbody>
|
||||
{/if}
|
||||
{** the regular data rows **}
|
||||
{foreach from=$rows item=row}
|
||||
{$row}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
<tbody id="{$categoryId|concat:'-emptyPlaceholder'|escape}" class="empty category_placeholder"{if count($rows) > 0} style="display: none;"{/if}>
|
||||
{**
|
||||
We need the last (=empty) line even if we have rows
|
||||
so that we can restore it if the user deletes all rows.
|
||||
**}
|
||||
<tr>
|
||||
<td colspan="{$grid->getColumnsCount('indent')}">{translate key=$grid->getEmptyCategoryRowText()}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
{if $grid->getIsSubcomponent()}
|
||||
</table></div><table>
|
||||
{include file="controllers/grid/columnGroup.tpl" columns=$grid->getColumns()}
|
||||
{/if}
|
||||
@@ -0,0 +1,18 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a regular grid cell (with or without actions)
|
||||
*}
|
||||
{if $id}
|
||||
{assign var=cellId value="cell-"|concat:$id}
|
||||
{else}
|
||||
{assign var=cellId value=""}
|
||||
{/if}
|
||||
<span {if $cellId}id="{$cellId|escape}" {/if}class="gridCellContainer">
|
||||
{include file="controllers/grid/gridCellContents.tpl"}
|
||||
</span>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridCellContents.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* a regular grid cell's contents
|
||||
*}
|
||||
|
||||
{* Preserve the value in case it's used externally *}
|
||||
{assign var=_label value=$label}
|
||||
|
||||
{* Prepare multilingual content for display *}
|
||||
{if $column->hasFlag('multilingual')}
|
||||
{* Multilingual column *}
|
||||
{if isset($_label.$currentLocale)}
|
||||
{assign var=_label value=$_label.$currentLocale}
|
||||
{else}
|
||||
{assign var=_primaryLocale value=\PKP\facades\Locale::getPrimaryLocale()}
|
||||
{assign var=_label value=$_label.$_primaryLocale}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $column->hasFlag('format')}
|
||||
{assign var=_format value=$column->getFlag('format')|lower}
|
||||
{else}
|
||||
{assign var=_format value='text'|lower}
|
||||
{/if}
|
||||
|
||||
{* Handle escaping as needed *}
|
||||
{if $column->hasFlag('anyhtml')}
|
||||
{* Any HTML is allowed; do not escape anything *}
|
||||
{elseif $column->hasFlag('html')}
|
||||
{* Limited HTML is allowed *}
|
||||
{assign var=_label value=$_label|strip_unsafe_html}
|
||||
{else}
|
||||
{* No HTML allowed; escape the label. *}
|
||||
{assign var=_label value=$_label|escape}
|
||||
{/if}
|
||||
|
||||
{if $_label != ''}
|
||||
<span class="label{if count($actions) gt 0} before_actions{/if}">
|
||||
{if $column->hasFlag('maxLength')}
|
||||
{assign var="maxLength" value=$column->getFlag('maxLength')}
|
||||
{$_label|truncate:$maxLength}
|
||||
{else}
|
||||
{$_label}
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
{if count($actions) gt 0}
|
||||
{foreach from=$actions item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$cellId anyhtml=$column->hasFlag('anyhtml') html=$column->hasFlag('html')}
|
||||
{/foreach}
|
||||
{/if}
|
||||
@@ -0,0 +1,25 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridHeader.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Grid header HTML markup
|
||||
*}
|
||||
<div class="header">
|
||||
|
||||
{if $grid->getTitle()}
|
||||
<h4>
|
||||
{$grid->getTitle()|translate}
|
||||
</h4>
|
||||
{/if}
|
||||
|
||||
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE)}
|
||||
{if $grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE)}
|
||||
{include file="controllers/grid/gridActionsAbove.tpl" actions=$grid->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_ABOVE) gridId=$staticId}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{$gridFilterForm}
|
||||
@@ -0,0 +1,86 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridRow.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* A grid row.
|
||||
*}
|
||||
{if !is_null($row->getId())}
|
||||
{assign var=rowIdPrefix value="component-"|concat:$row->getGridId()}
|
||||
{if $categoryId|@strlen > 0}
|
||||
{assign var=rowIdPrefix value=$rowIdPrefix|concat:"-category-":$categoryId|escape}
|
||||
{/if}
|
||||
{assign var=rowId value=$rowIdPrefix|concat:"-row-":$row->getId()}
|
||||
{else}
|
||||
{assign var=rowId value=""}
|
||||
{/if}
|
||||
|
||||
{assign var="row_class" value="gridRow"}
|
||||
{if is_a($row, 'GridCategoryRow')}
|
||||
{assign var="row_class" value=$row_class|cat:' category'}
|
||||
{if !$row->hasFlag('gridRowStyle')}
|
||||
{assign var="row_class" value=$row_class|cat:' default_category_style'}
|
||||
{/if}
|
||||
{/if}
|
||||
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
|
||||
{assign var="row_class" value=$row_class|cat:' has_extras'}
|
||||
{/if}
|
||||
|
||||
<tr {if $rowId}id="{$rowId|escape|replace:" ":"_"}" {/if} class="{$row_class}">
|
||||
{foreach name=columnLoop from=$columns key=columnId item=column}
|
||||
|
||||
{* @todo indent columns should be killed at their source *}
|
||||
{if $column->hasFlag('indent')}
|
||||
{continue}
|
||||
{/if}
|
||||
|
||||
{assign var=col_class value=""}
|
||||
{if $column->hasFlag('firstColumn')}
|
||||
{assign var="col_class" value=$col_class|cat:'first_column'}
|
||||
{/if}
|
||||
|
||||
{if $column->hasFlag('alignment')}
|
||||
{assign var="col_class" value=$col_class|cat:' pkp_helpers_text_'}
|
||||
{assign var="col_class" value=$col_class|cat:$column->getFlag('alignment')}
|
||||
{/if}
|
||||
|
||||
<td{if $col_class} class="{$col_class}"{/if}>
|
||||
{if $row->hasActions() && $column->hasFlag('firstColumn')}
|
||||
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
|
||||
<a href="#" class="show_extras">
|
||||
<span class="pkp_screen_reader">{translate key="grid.settings"}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{$cells[$smarty.foreach.columnLoop.index]}
|
||||
{if is_a($row, 'GridCategoryRow') && $column->hasFlag('showTotalItemsNumber')}
|
||||
<span class="category_items_number">({$grid->getCategoryItemsCount($categoryRow->getData(), $request)})</span>
|
||||
{/if}
|
||||
<div class="row_actions">
|
||||
{if $row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT)}
|
||||
{foreach from=$row->getActions(\PKP\controllers\grid\GridRow::GRID_ACTION_POSITION_ROW_LEFT) item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$rowId|replace:" ":"_"}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
{else}
|
||||
{$cells[$smarty.foreach.columnLoop.index]}
|
||||
{if is_a($row, 'GridCategoryRow') && $column->hasFlag('showTotalItemsNumber')}
|
||||
<span class="category_items_number">({$grid->getCategoryItemsCount($categoryRow->getData(), $request)})</span>
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{/foreach}
|
||||
</tr>
|
||||
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
|
||||
<tr id="{$rowId|escape|replace:" ":"_"}-control-row" class="row_controls{if is_a($row, 'GridCategoryRow')} category_controls{/if}">
|
||||
<td colspan="{$grid->getColumnsCount('indent')}">
|
||||
{if $row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT)}
|
||||
{foreach from=$row->getActions(\PKP\controllers\grid\GridHandler::GRID_ACTION_POSITION_DEFAULT) item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId=$rowId|replace:" ":"_"}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
@@ -0,0 +1,10 @@
|
||||
{**
|
||||
* templates/controllers/grid/gridRowSelectInput.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display a checkbox that allows users to select a grid row when ticked
|
||||
*}
|
||||
<input type="checkbox" id="select-{$elementId|escape}" name="{$selectName|escape}[]" style="height: 15px; width: 15px;" value="{$elementId|escape}" {if $selected}checked="checked"{/if} />
|
||||
@@ -0,0 +1,35 @@
|
||||
{**
|
||||
* controllers/grid/languages/installLanguageForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to install languages.
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#installLanguageForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="installLanguageForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.admin.languages.AdminLanguageGridHandler" op="saveInstallLocale"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="installLanguageFormNotification"}
|
||||
|
||||
{fbvFormArea id="availableLocalesFormArea" title="admin.languages.availableLocales"}
|
||||
{fbvFormSection list="true" description="admin.languages.installNewLocalesInstructions"}
|
||||
{foreach name=locales from=$notInstalledLocales item=locale}
|
||||
{fbvElement type="checkbox" id="locale-$locale" name="localesToInstall[$locale]" value=$locale label=$allLocales.$locale|escape translate=false}
|
||||
{foreachelse}
|
||||
<p>{translate key="admin.languages.noLocalesAvailable"}</p>
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{if not empty($notInstalledLocales)}
|
||||
{fbvFormButtons id="installLanguageFormSubmit" submitText="common.save"}
|
||||
{/if}
|
||||
</form>
|
||||
@@ -0,0 +1,22 @@
|
||||
{**
|
||||
* templates/controllers/grid/languages/localeNameCell.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Language grid handler locale name cell.
|
||||
*}
|
||||
{if $id}
|
||||
{assign var=cellId value="cell-"|concat:$id}
|
||||
{else}
|
||||
{assign var=cellId value=""}
|
||||
{/if}
|
||||
<span {if $cellId}id="{$cellId|escape}" {/if}class="gridCellContainer">
|
||||
{$label}
|
||||
</span>
|
||||
{if $incomplete}
|
||||
<span class="pkp_form_error">*</span>
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/navigationMenus/customNMIType.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Custom Custom NMI Type edit form part
|
||||
*}
|
||||
<div id="NMI_TYPE_CUSTOM" class="NMI_TYPE_CUSTOM_EDIT">
|
||||
{fbvFormSection}
|
||||
{fbvFormSection title="manager.navigationMenus.form.path" for="path" required="true"}
|
||||
{fbvElement type="text" id="path" value=$path required="true"}
|
||||
<p>
|
||||
{capture assign=exampleUrl}{url|replace:"REPLACEME":"%PATH%" router=\PKP\core\PKPApplication::ROUTE_PAGE page="REPLACEME"}{/capture}
|
||||
{translate key="manager.navigationMenus.form.viewInstructions" pagesPath=$exampleUrl}
|
||||
</p>
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection label="manager.navigationMenus.form.content" for="content"}
|
||||
{fbvElement type="textarea" multilingual=true name="content" id="content" value=$content rich=true height=$fbvStyles.height.TALL variables=$allowedVariables}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection class="formButtons"}
|
||||
{fbvElement type="button" class="pkp_button_link" id="previewButton" label="common.preview"}
|
||||
{/fbvFormSection}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
{**
|
||||
* templates/controllers/grid/navigationMenus/form/navigationMenuForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to read/create/edit NavigationMenus.
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#navigationMenuForm').pkpHandler('$.pkp.controllers.grid.navigationMenus.form.NavigationMenuFormHandler',
|
||||
{ldelim}
|
||||
submenuWarning: {translate|json_encode key="manager.navigationMenus.form.submenuWarning"},
|
||||
itemTypeConditionalWarnings: {$navigationMenuItemTypeConditionalWarnings},
|
||||
okButton: {translate|json_encode key="common.ok"},
|
||||
warningModalTitle: {translate|json_encode key="common.notice"}
|
||||
{rdelim}
|
||||
);
|
||||
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="navigationMenuForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenusGridHandler" op="updateNavigationMenu"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="navigationMenuFormNotification"}
|
||||
{fbvFormArea id="navigationMenuInfo"}
|
||||
{if $navigationMenuId}
|
||||
<input type="hidden" name="navigationMenuId" value="{$navigationMenuId|escape}" />
|
||||
{/if}
|
||||
{fbvFormSection title="manager.navigationMenus.form.title" for="title" required="true"}
|
||||
{fbvElement type="text" id="title" value=$title maxlength="255" required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="manager.navigationMenus.form.navigationMenuArea" for="areaName"}
|
||||
{fbvElement type="select" id="areaName" from=$activeThemeNavigationAreas selected=$navigationMenuArea label="manager.navigationMenus.form.navigationMenuAreaMessage" translate=false}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
{fbvFormArea id="navigationMenuItems"}
|
||||
<div id="pkpNavManagement" class="pkp_nav_management">
|
||||
<div class="pkp_nav_assigned">
|
||||
<div class="pkp_nav_management_header">
|
||||
{translate key="manager.navigationMenus.assignedMenuItems"}
|
||||
</div>
|
||||
<ul id="pkpNavAssigned">
|
||||
{foreach from=$menuTree item="assignment"}
|
||||
{assign var="itemType" value=$assignment->navigationMenuItem->getType()}
|
||||
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
|
||||
{assign var="hasConditionalDisplay" value=true}
|
||||
{else}
|
||||
{assign var="hasConditionalDisplay" value=false}
|
||||
{/if}
|
||||
<li data-id="{$assignment->getMenuItemId()|escape}" data-type="{$itemType|escape}">
|
||||
<div class="item">
|
||||
<div class="item_title">
|
||||
<span class="fa fa-sort"></span>
|
||||
{$assignment->navigationMenuItem->getLocalizedTitle()|escape}
|
||||
</div>
|
||||
<div class="item_buttons">
|
||||
{if $hasConditionalDisplay}
|
||||
<button class="btnConditionalDisplay">
|
||||
<span class="fa fa-eye-slash"></span>
|
||||
<span class="-screenReader">
|
||||
{translate key="manager.navigationMenus.form.conditionalDisplay"}
|
||||
</span>
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if !empty($assignment->children)}
|
||||
<ul>
|
||||
{foreach from=$assignment->children item="childAssignment"}
|
||||
{assign var="itemType" value=$childAssignment->navigationMenuItem->getType()}
|
||||
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
|
||||
{assign var="hasConditionalDisplay" value=true}
|
||||
{else}
|
||||
{assign var="hasConditionalDisplay" value=false}
|
||||
{/if}
|
||||
<li data-id="{$childAssignment->getMenuItemId()|escape}" data-type="{$itemType|escape}">
|
||||
<div class="item">
|
||||
<div class="item_title">
|
||||
<span class="fa fa-sort"></span>
|
||||
{$childAssignment->navigationMenuItem->getLocalizedTitle()|escape}
|
||||
</div>
|
||||
<div class="item_buttons">
|
||||
{if $hasConditionalDisplay}
|
||||
<button class="btnConditionalDisplay">
|
||||
<span class="fa fa-eye-slash"></span>
|
||||
<span class="-screenReader">
|
||||
{translate key="manager.navigationMenus.form.conditionalDisplay"}
|
||||
</span>
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pkp_nav_unassigned">
|
||||
<div class="pkp_nav_management_header">
|
||||
{translate key="manager.navigationMenus.unassignedMenuItems"}
|
||||
</div>
|
||||
<ul id="pkpNavUnassigned">
|
||||
{foreach from=$unassignedItems item="unassignedItem"}
|
||||
{assign var="itemType" value=$unassignedItem->getType()}
|
||||
{if !empty($navigationMenuItemTypes.$itemType.conditionalWarning)}
|
||||
{assign var="hasConditionalDisplay" value=true}
|
||||
{else}
|
||||
{assign var="hasConditionalDisplay" value=false}
|
||||
{/if}
|
||||
<li data-id="{$unassignedItem->getId()|escape}" data-type="{$itemType|escape}">
|
||||
<div class="item">
|
||||
<div class="item_title">
|
||||
<span class="fa fa-sort"></span>
|
||||
{$unassignedItem->getLocalizedTitle()|escape}
|
||||
</div>
|
||||
<div class="item_buttons">
|
||||
{if $hasConditionalDisplay}
|
||||
<button class="btnConditionalDisplay">
|
||||
<span class="fa fa-eye-slash"></span>
|
||||
<span class="-screenReader">
|
||||
{translate key="manager.navigationMenus.form.conditionalDisplay"}
|
||||
</span>
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{foreach from=$menuTree item="assignment"}
|
||||
<input type="hidden" name="menuTree[{$assignment->getMenuItemId()|escape}][seq]" value="{$assignment->getSequence()|escape}">
|
||||
{foreach from=$assignment->children item="childAssignment"}
|
||||
<input type="hidden" name="menuTree[{$childAssignment->getMenuItemId()|escape}][seq]" value="{$childAssignment->getSequence()|escape}">
|
||||
<input type="hidden" name="menuTree[{$childAssignment->getMenuItemId()|escape}][parentId]" value="{$childAssignment->getParentId()|escape}">
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/fbvFormArea}
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons id="navigationMenuFormSubmit" submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,49 @@
|
||||
{**
|
||||
* templates/controllers/grid/navigationMenus/form/navigationMenuItemsForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to read/create/edit navigation menu Items.
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#navigationMenuItemsForm').pkpHandler(
|
||||
'$.pkp.controllers.grid.navigationMenus.form.NavigationMenuItemsFormHandler',
|
||||
{ldelim}
|
||||
previewUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_PAGE page="navigationMenu" op="preview"},
|
||||
itemTypeDescriptions: {$navigationMenuItemTypeDescriptions},
|
||||
itemTypeConditionalWarnings: {$navigationMenuItemTypeConditionalWarnings}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="navigationMenuItemsForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.navigationMenus.NavigationMenuItemsGridHandler" op="updateNavigationMenuItem"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="navigationMenuItemFormNotification"}
|
||||
{fbvFormArea id="navigationMenuItemInfo"}
|
||||
{if $navigationMenuItemId}
|
||||
<input type="hidden" name="navigationMenuItemId" value="{$navigationMenuItemId|escape}" />
|
||||
{/if}
|
||||
|
||||
{fbvFormSection title="manager.navigationMenus.form.title" for="title" required="true"}
|
||||
{fbvElement type="text" multilingual="true" id="title" value=$title maxlength="255" required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection id="menuItemTypeSection" title="manager.navigationMenus.form.navigationMenuItemType" for="menuItemType"}
|
||||
{fbvElement type="select" id="menuItemType" required=true from=$navigationMenuItemTypeTitles selected=$menuItemType label="manager.navigationMenus.form.navigationMenuItemTypeMessage" translate=false}
|
||||
{/fbvFormSection}
|
||||
|
||||
{foreach from=$customTemplates key=nmiType item=customTemplate}
|
||||
{include file=$customTemplate.template}
|
||||
{/foreach}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormSection class="formButtons"}
|
||||
{fbvElement type="submit" class="submitFormButton pkp_helpers_align_left pkp_button_primary" id="saveButton" label="common.save"}
|
||||
{assign var=buttonId value="submitFormButton"|concat:"-"|uniqid}
|
||||
{/fbvFormSection}
|
||||
</form>
|
||||
@@ -0,0 +1,13 @@
|
||||
{**
|
||||
* templates/controllers/grid/navigationMenus/remoteUrlNMIType.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Custom remote Url NMI Type edit form part
|
||||
*}
|
||||
{fbvFormSection id="NMI_TYPE_REMOTE_URL" class="NMI_TYPE_CUSTOM_EDIT" title="manager.navigationMenus.form.url" for="remoteUrl" list=true required="true"}
|
||||
{fbvElement type="text" multilingual=true id="remoteUrl" value=$remoteUrl maxlength="255" required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{**
|
||||
* templates/controllers/grid/plugins/uploadPluginForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to upload plugin files.
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the upload form handler.
|
||||
$('#uploadPluginForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#plupload'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="uploadPluginFile" function=$function escape=false},
|
||||
baseUrl: {$baseUrl|json_encode}
|
||||
{rdelim}
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="uploadPluginForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="saveUploadPlugin" function=$function category=$category plugin=$plugin}" method="post">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="uploadPluginNotification"}
|
||||
|
||||
{fbvFormArea id="file"}
|
||||
{if $function == 'install'}
|
||||
<p>{translate key="manager.plugins.uploadDescription"}</p>
|
||||
{elseif $function == 'upgrade'}
|
||||
<p>{translate key="manager.plugins.upgradeDescription"}</p>
|
||||
{/if}
|
||||
{fbvFormSection title="manager.plugins.uploadPluginDir" required=true}
|
||||
{fbvElement type="hidden" id="temporaryFileId" value=""}
|
||||
{* The uploader widget *}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormButtons id="uploadPluginFormSubmit" submitText="common.save"}
|
||||
</form>
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/plugins/pluginGalleryGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for plugin gallery grid.
|
||||
*}
|
||||
<script>
|
||||
// Attach the form handler to the form.
|
||||
$('#pluginGallerySearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: false
|
||||
{rdelim}
|
||||
);
|
||||
</script>
|
||||
<form class="pkp_form filter" id="pluginGallerySearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="userSearchFormArea"}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" id="category" from=$filterData.categories selected=$filterSelectionData.category translate=false size=$fbvStyles.size.SMALL inline=true}
|
||||
{fbvElement type="text" id="pluginText" value=$filterSelectionData.pluginText size=$fbvStyles.size.LARGE inline=true}
|
||||
{/fbvFormSection}
|
||||
{* Buttons generate their own section *}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/plugins/pluginGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for plugin grid.
|
||||
*}
|
||||
<script>
|
||||
// Attach the form handler to the form.
|
||||
$('#pluginSearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: false
|
||||
{rdelim}
|
||||
);
|
||||
</script>
|
||||
<form class="pkp_form filter" id="pluginSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="userSearchFormArea"}
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" id="category" from=$filterData.categories selected=$filterSelectionData.category translate=false size=$fbvStyles.size.SMALL inline=true}
|
||||
{fbvElement type="text" id="pluginName" value=$filterSelectionData.pluginName size=$fbvStyles.size.LARGE inline=true}
|
||||
{/fbvFormSection}
|
||||
{* Buttons generate their own section *}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,88 @@
|
||||
{**
|
||||
* templates/controllers/grid/plugins/viewPlugin.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief View a plugin gallery plugin's details.
|
||||
*
|
||||
* @uses $plugin Plugin The plugin being displayed
|
||||
* @uses $statusKey string The locale string describing the plugin's install
|
||||
* status
|
||||
* @uses $statusClass string A class corresponding to the status
|
||||
*}
|
||||
<div class="pkp_plugin_details">
|
||||
|
||||
<div class="status {$statusClass|escape}">
|
||||
<div class="pkp_screen_reader">
|
||||
{translate key="manager.plugins.pluginGallery.latestCompatible"}
|
||||
</div>
|
||||
|
||||
{if $installAction && ($statusClass == 'older' || $statusClass == 'notinstalled')}
|
||||
<div class="action_button">
|
||||
{include file="linkAction/linkAction.tpl" action=$installAction contextId="pluginGallery"}
|
||||
</div>
|
||||
{else}
|
||||
<div class="status_notice">
|
||||
{translate key=$statusKey}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $statusClass != 'incompatible'}
|
||||
|
||||
<ul class="certifications">
|
||||
{foreach from=$plugin->getReleaseCertifications() item=certification}
|
||||
<li class="certification_{$certification|escape}">
|
||||
<span class="label">
|
||||
{translate key="manager.plugins.pluginGallery.certifications.$certification"}
|
||||
</span>
|
||||
<span class="description">
|
||||
{translate key="manager.plugins.pluginGallery.certifications.$certification.description"}
|
||||
</span>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
<div class="release">
|
||||
{translate key="manager.plugins.pluginGallery.version" version=$plugin->getVersion()|escape date=$plugin->getDate()|date_format:$dateFormatShort}
|
||||
</div>
|
||||
<div class="release_description">
|
||||
{$plugin->getLocalizedReleaseDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<h4 class="pkp_screen_reader">
|
||||
{translate key="manager.plugins.pluginGallery.summary"}
|
||||
</h4>
|
||||
|
||||
<div class="maintainer">
|
||||
<div class="author">
|
||||
{if $plugin->getContactEmail()}
|
||||
<a href="mailto:{$plugin->getContactEmail()|escape}">
|
||||
{$plugin->getContactName()|escape}
|
||||
</a>
|
||||
{else}
|
||||
{$plugin->getContactName()|escape}
|
||||
{/if}
|
||||
</div>
|
||||
<div class="institution">
|
||||
{$plugin->getContactInstitutionName()|escape}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="url">
|
||||
<a href="{$plugin->getHomepage()|escape}" target="_blank">{$plugin->getHomepage()|escape}</a>
|
||||
</div>
|
||||
|
||||
<div class="description">
|
||||
{include file="controllers/revealMore.tpl" content=$plugin->getLocalizedDescription()|strip_unsafe_html}
|
||||
</div>
|
||||
|
||||
{if $plugin->getLocalizedInstallationInstructions()}
|
||||
<div class="installation">
|
||||
{include file="controllers/revealMore.tpl" content=$plugin->getLocalizedInstallationInstructions()|strip_unsafe_html}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -0,0 +1,71 @@
|
||||
{**
|
||||
* templates/controllers/grid/queries/form/queryForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief Query grid form
|
||||
*
|
||||
*}
|
||||
|
||||
{if !count($allParticipants)}
|
||||
{translate key="submission.query.noParticipantOptions"}
|
||||
{else}
|
||||
<script>
|
||||
// Attach the handler.
|
||||
$(function() {ldelim}
|
||||
$('#queryForm').pkpHandler(
|
||||
'$.pkp.controllers.grid.queries.QueryFormHandler',
|
||||
{ldelim}
|
||||
cancelUrl: {if $isNew}{url|json_encode op="deleteQuery" queryId=$queryId csrfToken=$csrfToken params=$actionArgs escape=false}{else}null{/if},
|
||||
templateUrl: {url|json_encode router=$smarty.const.ROUTE_COMPONENT component='grid.queries.QueriesGridHandler' op='fetchTemplateBody' stageId=$stageId submissionId=$assocId escape=false},
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="queryForm" method="post" action="{url op="updateQuery" queryId=$queryId params=$actionArgs wasNew=$isNew}">
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="queryFormNotification"}
|
||||
|
||||
{fbvFormSection list=true title="editor.submission.stageParticipants"}
|
||||
{foreach from=$allParticipants item="participant" key="id"}
|
||||
{fbvElement type="checkbox" id="users[]" value=$id checked=in_array($id, $assignedParticipants) label=$participant|escape translate=false}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if count($templates)}
|
||||
{fbvFormArea id="queryTemplateArea"}
|
||||
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
|
||||
{fbvElement type="select" from=$templates translate=false id="template" selected=$template defaultValue="" defaultLabel=""}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
{/if}
|
||||
|
||||
{fbvFormArea id="queryContentsArea"}
|
||||
{fbvFormSection title="common.subject" for="subject" required="true"}
|
||||
{fbvElement type="text" id="subject" value=$subject required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="stageParticipants.notify.message" for="comment" required="true"}
|
||||
{fbvElement type="textarea" id="comment" rich=true value=$comment required="true"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="queryNoteFilesArea"}
|
||||
{capture assign=queryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.QueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs queryId=$queryId noteId=$noteId escape=false}{/capture}
|
||||
{load_url_in_div id="queryNoteFilesGrid" url=$queryNoteFilesGridUrl}
|
||||
{/fbvFormArea}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{if $allowedEditTimeNotice['show']}
|
||||
<p><span class="sub_label">{translate key="submission.query.allowedEditTime" allowedEditTimeNoticeLimit=$allowedEditTimeNotice['limit']}</span></p>
|
||||
{/if}
|
||||
|
||||
{fbvFormButtons id="addQueryButton"}
|
||||
|
||||
</form>
|
||||
{/if}
|
||||
@@ -0,0 +1,37 @@
|
||||
{**
|
||||
* templates/controllers/grid/queries/queryNoteForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Read a query.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
// Attach the handler.
|
||||
$(function() {ldelim}
|
||||
$('#noteForm').pkpHandler(
|
||||
'$.pkp.controllers.form.CancelActionAjaxFormHandler',
|
||||
{ldelim}
|
||||
cancelUrl: {url|json_encode op="deleteNote" params=$actionArgs csrfToken=$csrfToken noteId=$noteId escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="noteForm" action="{url op="insertNote" params=$actionArgs noteId=$noteId escape=false}" method="post">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="queryNoteFormNotification"}
|
||||
|
||||
{fbvFormSection title="stageParticipants.notify.message" for="comment" required="true"}
|
||||
{fbvElement type="textarea" id="comment" rich=true value=$comment required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormArea id="queryNoteFilesArea"}
|
||||
{capture assign=queryNoteFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.query.QueryNoteFilesGridHandler" op="fetchGrid" params=$actionArgs noteId=$noteId escape=false}{/capture}
|
||||
{load_url_in_div id="queryNoteFilesGrid" url=$queryNoteFilesGridUrl}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormButtons id="addNoteButton"}
|
||||
</form>
|
||||
@@ -0,0 +1,13 @@
|
||||
{**
|
||||
* templates/controllers/grid/queries/participants.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Show the list of participants.
|
||||
*
|
||||
*}
|
||||
{foreach from=$participants item=user}
|
||||
<li>{$user->getFullName()|escape} ({$user->getUsername()|escape})</li>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,48 @@
|
||||
{**
|
||||
* templates/controllers/grid/queries/readQuery.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Read a query.
|
||||
*
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
$('#readQueryContainer').pkpHandler(
|
||||
'$.pkp.controllers.grid.queries.ReadQueryHandler',
|
||||
{ldelim}
|
||||
fetchNoteFormUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component=$queryNotesGridHandlerName op="addNote" params=$requestArgs queryId=$query->getId() escape=false},
|
||||
fetchParticipantsListUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.queries.QueriesGridHandler" op="participants" params=$requestArgs queryId=$query->getId() escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<div id="readQueryContainer" class="pkp_controllers_query">
|
||||
<h4>
|
||||
{translate key="editor.submission.stageParticipants"}
|
||||
{if $editAction}
|
||||
{include file="linkAction/linkAction.tpl" action=$editAction contextId="editQuery"}
|
||||
{/if}
|
||||
</h4>
|
||||
<ul id="participantsListPlaceholder" class="participants"></ul>
|
||||
|
||||
{capture assign=queryNotesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component=$queryNotesGridHandlerName op="fetchGrid" params=$requestArgs queryId=$query->getId() escape=false}{/capture}
|
||||
{load_url_in_div id="queryNotesGrid" url=$queryNotesGridUrl}
|
||||
|
||||
<div class="queryEditButtons">
|
||||
<div class="openNoteForm add_note">
|
||||
<a href="#">
|
||||
{translate key="submission.query.addNote"}
|
||||
</a>
|
||||
</div>
|
||||
<div class="leaveQueryForm leave_query" {if !$showLeaveQueryButton}style="display: none;"{/if}">
|
||||
{include file="linkAction/linkAction.tpl" action=$leaveQueryLinkAction contextId="leaveQueryForm"}
|
||||
</div>
|
||||
<div class="pkp_spinner"></div>
|
||||
</div>
|
||||
|
||||
<div id="newNotePlaceholder"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,99 @@
|
||||
{**
|
||||
* lib/pkp/templates/controllers/grid/settings/category/form/categoryForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to edit or create a category
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#categoryForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
publishChangeEvents: ['updateSidebar'],
|
||||
$uploader: $('#plupload'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="uploadImage" escape=false},
|
||||
baseUrl: {$baseUrl|json_encode},
|
||||
filters: {ldelim}
|
||||
mime_types : [
|
||||
{ldelim} title : "Image files", extensions : "jpg,jpeg,png" {rdelim}
|
||||
]
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="categoryForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.category.CategoryCategoryGridHandler" op="updateCategory" categoryId=$categoryId}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="categoryFormNotification"}
|
||||
|
||||
{fbvFormArea id="categoryDetails"}
|
||||
|
||||
<h3>{translate key="grid.category.categoryDetails"}</h3>
|
||||
|
||||
{fbvFormSection title="grid.category.name" for="name" required="true"}
|
||||
{fbvElement type="text" multilingual="true" name="name" value=$name id="name" required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="grid.category.parentCategory" for="context"}
|
||||
{fbvElement type="select" id="parentId" from=$rootCategories selected=$parentId translate=false disabled=$cannotSelectChild}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="grid.category.path" required=true for="path"}
|
||||
{capture assign="instruct"}
|
||||
{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path="path"}
|
||||
{translate key="grid.category.urlWillBe" sampleUrl=$sampleUrl}
|
||||
{/capture}
|
||||
{fbvElement type="text" id="path" value=$path maxlength="32" label=$instruct subLabelTranslate=false}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="grid.category.description" for="context"}
|
||||
{fbvElement type="textarea" multilingual="true" id="description" value=$description rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection label="catalog.sortBy" description="catalog.sortBy.categoryDescription" for="sortOption"}
|
||||
{fbvElement type="select" id="sortOption" from=$sortOptions selected=$sortOption translate=false}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="category.coverImage"}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
{/fbvFormSection}
|
||||
|
||||
{if $image}
|
||||
{fbvFormSection}
|
||||
{capture assign="altTitle"}{translate key="submission.currentCoverImage"}{/capture}
|
||||
<img class="pkp_helpers_container_center" height="{$image.thumbnailHeight}" width="{$image.thumbnailWidth}" src="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="thumbnail" type="category" id=$categoryId}" alt="{$altTitle|escape}" />
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{fbvFormSection list=true title="manager.sections.form.assignEditors"}
|
||||
<div>{translate key="manager.categories.form.assignEditors.description"}</div>
|
||||
{foreach from=$assignableUserGroups item="assignableUserGroup"}
|
||||
{assign var="role" value=$assignableUserGroup.userGroup->getLocalizedName()}
|
||||
{assign var="userGroupId" value=$assignableUserGroup.userGroup->getId()}
|
||||
{foreach from=$assignableUserGroup.users item=$username key="id"}
|
||||
{fbvElement
|
||||
type="checkbox"
|
||||
id="subEditors[{$userGroupId}][]"
|
||||
value=$id
|
||||
checked=(isset($subeditorUserGroups[$id]) && in_array($userGroupId, $subeditorUserGroups[$id]))
|
||||
label={translate key="manager.sections.form.assignEditorAs" name=$username|escape role=$role|escape}
|
||||
translate=false
|
||||
}
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons}
|
||||
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,53 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/genre/form/genreForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Genre form under context management.
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#genreForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="genreForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.genre.GenreGridHandler" op="updateGenre"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="genreFormNotification"}
|
||||
|
||||
{fbvFormArea id="genreInfo"}
|
||||
{fbvFormSection title="common.name" for="name" required="true"}
|
||||
{fbvElement type="text" multilingual="true" id="name" value=$name maxlength="80" required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection list="true" title="manager.setup.genres.label"}
|
||||
{fbvElement type="checkbox" id="dependent" checked=$dependent label="manager.setup.genres.dependent"}
|
||||
{fbvElement type="checkbox" id="supplementary" checked=$supplementary label="manager.setup.genres.supplementary"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection label="manager.setup.genres.metatadata" description="manager.setup.genres.metatadata.description" for="category"}
|
||||
{fbvElement type="select" id="category" from=$submissionFileCategories selected=$category translate=false}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection list="true" label="manager.setup.genres.submitRequired.label" description="manager.setup.genres.submitRequired.description"}
|
||||
{fbvElement type="radio" id="required1" name="required" value=1 checked=$required label="manager.setup.genres.submitRequired.yes"}
|
||||
{fbvElement type="radio" id="required0" name="required" value=0 checked=!$required label="manager.setup.genres.submitRequired.no"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection label="manager.setup.genres.key" description="manager.setup.genres.key.description" for="key"}
|
||||
{fbvElement type="text" id="key" value=$key maxlength="30" readonly=$keyReadOnly size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{if $gridId}
|
||||
<input type="hidden" name="gridId" value="{$gridId|escape}" />
|
||||
{/if}
|
||||
{if $rowId}
|
||||
<input type="hidden" name="rowId" value="{$rowId|escape}" />
|
||||
{/if}
|
||||
{if $genreId}
|
||||
<input type="hidden" name="genreId" value="{$genreId|escape}" />
|
||||
{/if}
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,77 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/library/form/editFileForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Library Files form for editing an existing file
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the file upload form handler.
|
||||
$(function() {ldelim}
|
||||
$('#uploadForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#plupload'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType escape=false},
|
||||
baseUrl: {$baseUrl|json_encode}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="uploadForm" action="{url op="updateFile" fileId=$libraryFile->getId()}" method="post">
|
||||
{csrf}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
{fbvFormArea id="name"}
|
||||
{fbvFormSection title="common.name" required=true}
|
||||
{fbvElement type="text" id="libraryFileName" value=$libraryFileName maxlength="255" multilingual=true required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="type"}
|
||||
{fbvFormSection title="common.type" required=true}
|
||||
{fbvElement type="select" from=$fileTypes id="fileType" selected=$libraryFile->getType() defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="file"}
|
||||
{fbvFormSection title="common.file"}
|
||||
<table id="fileInfo" class="data" width="100%">
|
||||
<tr valign="top">
|
||||
<td width="20%" class="label">{translate key="common.fileName"}</td>
|
||||
<td width="80%" class="value">{$libraryFile->getOriginalFileName()|escape}</a></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td class="label">{translate key="common.fileSize"}</td>
|
||||
<td class="value">{$libraryFile->getNiceFileSize()}</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td class="label">{translate key="common.dateUploaded"}</td>
|
||||
<td class="value">{$libraryFile->getDateUploaded()|date_format:$datetimeFormatShort}</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td class="label">{translate key="common.replaceFile"}</td>
|
||||
<td class="value">{include file="controllers/fileUploadContainer.tpl" id="plupload"}</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormSection list="true" translate=false}
|
||||
{capture assign=enablePublicAccess}{translate key="common.publicAccess"}{/capture}
|
||||
{fbvElement type="checkbox" id="publicAccess" value="1" checked=$publicAccess label=$enablePublicAccess translate=false}
|
||||
<p>
|
||||
{capture assign=downloadUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="libraryFiles" op="downloadPublic" path=$libraryFile->getId()}{/capture}
|
||||
{translate key="settings.libraryFiles.public.viewInstructions" downloadUrl=$downloadUrl}
|
||||
</p>
|
||||
{/fbvFormSection}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,61 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/library/form/newFileForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Library Files form
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the file upload form handler.
|
||||
$(function() {ldelim}
|
||||
$('#uploadForm').pkpHandler(
|
||||
'$.pkp.controllers.form.FileUploadFormHandler',
|
||||
{ldelim}
|
||||
$uploader: $('#plupload'),
|
||||
uploaderOptions: {ldelim}
|
||||
uploadUrl: {url|json_encode op="uploadFile" fileType=$fileType escape=false},
|
||||
baseUrl: {$baseUrl|json_encode}
|
||||
{rdelim}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="uploadForm" action="{url op="saveFile"}" method="post">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="libraryFileUploadNotification"}
|
||||
<input type="hidden" name="temporaryFileId" id="temporaryFileId" value="" />
|
||||
{fbvFormArea id="name"}
|
||||
{fbvFormSection title="common.name" required=true}
|
||||
{fbvElement type="text" multilingual="true" id="libraryFileName" value=$libraryFileName maxlength="255" required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="type"}
|
||||
{fbvFormSection title="common.type" required=true}
|
||||
{fbvElement type="select" from=$fileTypes id="fileType" selected=$fileType defaultValue="" defaultLabel="common.chooseOne"|translate required=true}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormArea id="file"}
|
||||
{fbvFormSection title="common.file" required=true}
|
||||
{include file="controllers/fileUploadContainer.tpl" id="plupload"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{fbvFormSection list="true" translate=false}
|
||||
{capture assign=enablePublicAccess}{translate key="common.publicAccess"}{/capture}
|
||||
{fbvElement type="checkbox" id="publicAccess" value="1" checked=false label=$enablePublicAccess translate=false}
|
||||
<p>
|
||||
{capture assign=downloadUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="libraryFiles" op="downloadPublic" path="id"}{/capture}
|
||||
{translate key="settings.libraryFiles.public.viewInstructions" downloadUrl=$downloadUrl}
|
||||
</p>
|
||||
{/fbvFormSection}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,28 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/reviewForms/editReviewForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* The edit/preview a review form tabset.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the JS file tab handler.
|
||||
$(function() {ldelim}
|
||||
$('#editReviewFormTabs').pkpHandler(
|
||||
'$.pkp.controllers.TabHandler',
|
||||
{ldelim}
|
||||
{if !$canEdit}disabled: [0, 1],{/if}
|
||||
selected: {if $preview}2{else}0{/if}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
<div id="editReviewFormTabs" class="pkp_controllers_tab">
|
||||
<ul>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormBasics" reviewFormId=$reviewFormId}">{translate key="manager.reviewForms.edit"}</a></li>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormElements" reviewFormId=$reviewFormId}">{translate key="manager.reviewFormElements"}</a></li>
|
||||
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="reviewFormPreview" reviewFormId=$reviewFormId}">{translate key="manager.reviewForms.preview"}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,65 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/roles/form/userGroupForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form to edit or create a user group
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#userGroupForm').pkpHandler(
|
||||
'$.pkp.controllers.grid.settings.roles.form.UserGroupFormHandler', {ldelim}
|
||||
selfRegistrationRoleIds: {$selfRegistrationRoleIds|@json_encode},
|
||||
recommendOnlyRoleIds: {$recommendOnlyRoleIds|@json_encode},
|
||||
roleForbiddenStagesJSON: {$roleForbiddenStagesJSON},
|
||||
notChangeMetadataEditPermissionRoles: {$notChangeMetadataEditPermissionRoles|@json_encode},
|
||||
stagesSelector: '[id^="assignedStages"]'
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="userGroupForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.roles.UserGroupGridHandler" op="updateUserGroup"}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userGroupFormNotification"}
|
||||
|
||||
{if $userGroupId}
|
||||
<input type="hidden" id="userGroupId" name="userGroupId" value="{$userGroupId|escape}" />
|
||||
{/if}
|
||||
{fbvFormArea id="userGroupDetails"}
|
||||
<h3>{translate key="settings.roles.roleDetails"}</h3>
|
||||
{fbvFormSection title="settings.roles.from" for="roleId" required="true"}
|
||||
{fbvElement type="select" name="roleId" from=$roleOptions id="roleId" selected=$roleId disabled=$disableRoleSelect required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="settings.roles.roleName" for="name" required="true"}
|
||||
{fbvElement type="text" multilingual="true" name="name" value=$name id="name" required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="settings.roles.roleAbbrev" for="abbrev" required="true"}
|
||||
{fbvElement type="text" multilingual="true" name="abbrev" value=$abbrev id="abbrev" required="true"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
<div id="userGroupStageContainer" class="full left">
|
||||
{fbvFormArea id="userGroupRoles"}
|
||||
{fbvFormSection title="grid.roles.stageAssignment" for="assignedStages[]" list="true"}
|
||||
{fbvElement type="checkboxgroup" name="assignedStages" id="assignedStages" from=$stages selected=$assignedStages}
|
||||
{/fbvFormSection}
|
||||
<label for="stages[]" class="error pkp_form_hidden">{translate key="settings.roles.stageIdRequired"}</label>
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
<div id="userGroupOptionsContainer" class="full left">
|
||||
{fbvFormArea id="userGroupOptions"}
|
||||
{fbvFormSection title="settings.roles.roleOptions" list="true"}
|
||||
{fbvElement type="checkbox" name="showTitle" id="showTitle" checked=$showTitle label="settings.roles.showTitles"}
|
||||
{fbvElement type="checkbox" name="permitSelfRegistration" id="permitSelfRegistration" checked=$permitSelfRegistration label="settings.roles.permitSelfRegistration"}
|
||||
{fbvElement type="checkbox" name="recommendOnly" id="recommendOnly" checked=$recommendOnly label="settings.roles.recommendOnly"}
|
||||
{fbvElement type="checkbox" name="permitMetadataEdit" id="permitMetadataEdit" checked=$permitMetadataEdit label="settings.roles.permitMetadataEdit"}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
</div>
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,24 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/roles/userGroupsGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#userGroupSearchForm').pkpHandler('$.pkp.controllers.form.ToggleFormHandler');
|
||||
</script>
|
||||
<form class="pkp_form filter" id="userGroupSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.roles.UserGroupGridHandler" op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="userGroupSearchFormArea"}
|
||||
{fbvFormSection description="grid.userGroup.filter.listRoles" size=$fbvStyles.size.SMALL inline=true}
|
||||
{fbvElement type="select" id="selectedStageId" from=$filterData.stageOptions selected=$filterSelectionData.selectedStageId}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection description="grid.userGroup.filter.permissionLevel" size=$fbvStyles.size.SMALL inline=true}
|
||||
{fbvElement type="select" id="selectedRoleId" from=$filterData.roleOptions selected=$filterSelectionData.selectedRoleId}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,78 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/form/userDetailsForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form for creating/editing a user.
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#userDetailsForm').pkpHandler('$.pkp.controllers.grid.settings.user.form.UserDetailsFormHandler',
|
||||
{ldelim}
|
||||
fetchUsernameSuggestionUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="api.user.UserApiHandler" op="suggestUsername" givenName="GIVEN_NAME_PLACEHOLDER" familyName="FAMILY_NAME_PLACEHOLDER" escape=false},
|
||||
usernameSuggestionTextAlert: {translate|json_encode key="grid.user.mustProvideName"}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
{if !$userId}
|
||||
{assign var="passwordRequired" value="true"}
|
||||
{/if}{* !$userId *}
|
||||
|
||||
<form class="pkp_form" id="userDetailsForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="updateUser"}">
|
||||
{csrf}
|
||||
<input type="hidden" id="sitePrimaryLocale" name="sitePrimaryLocale" value="{$sitePrimaryLocale|escape}" />
|
||||
<div id="userDetailsFormContainer">
|
||||
<div id="userDetails" class="full left">
|
||||
{if !$userGroupUpdateOnly}
|
||||
{if $userId}
|
||||
<h3>{translate key="grid.user.userDetails"}</h3>
|
||||
{else}
|
||||
<h3>{translate key="grid.user.step1"}</h3>
|
||||
{/if}
|
||||
{/if}
|
||||
{if $userId}
|
||||
<input type="hidden" id="userId" name="userId" value="{$userId|escape}" />
|
||||
{/if}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userDetailsFormNotification"}
|
||||
</div>
|
||||
|
||||
{if !$userGroupUpdateOnly}
|
||||
{if $userId}
|
||||
{assign var="disableSendNotifySection" value=true}
|
||||
{/if}
|
||||
|
||||
{include
|
||||
file="common/userDetails.tpl"
|
||||
disableSendNotifySection=$disableSendNotifySection
|
||||
}
|
||||
|
||||
{if $canCurrentUserGossip}
|
||||
{fbvFormSection label="user.gossip" description="user.gossip.description"}
|
||||
{fbvElement type="textarea" name="gossip" id="gossip" rich=true value=$gossip}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $userGroupUpdateOnly}
|
||||
{include file="common/userDetailsReadOnly.tpl"}
|
||||
{/if}
|
||||
|
||||
{if $userId}
|
||||
{fbvFormSection}
|
||||
{fbvFormSection list=true title="grid.user.userRoles"}
|
||||
{foreach from=$allUserGroups item="userGroup" key="id"}
|
||||
{fbvElement type="checkbox" id="userGroupIds[]" value=$id checked=in_array($id, $assignedUserGroups) label=$userGroup|escape translate=false}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,33 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/form/userDisableForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display form to enable/disable a user.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#userDisableForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="userDisableForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="disableUser"}">
|
||||
{csrf}
|
||||
|
||||
<input type="hidden" name="userId" value="{$userId|escape}" />
|
||||
<input type="hidden" name="enable" value="{$enable|escape}" />
|
||||
|
||||
{if $enable}
|
||||
{fbvFormSection title="grid.user.enableReason" for="disableReason"}
|
||||
{fbvElement type="textarea" id="disableReason" value=$disableReason size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
{else}
|
||||
{fbvFormSection title="grid.user.disableReason" for="disableReason"}
|
||||
{fbvElement type="textarea" id="disableReason" value=$disableReason size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,36 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/form/userEmailForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display form to send user an email.
|
||||
*}
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#sendEmailForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="sendEmailForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="sendEmail"}" >
|
||||
{csrf}
|
||||
|
||||
<input type="hidden" name="userId" value="{$userId|escape}" />
|
||||
|
||||
{fbvFormSection title="email.subject" for="subject" required="true" size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{fbvElement type="text" id="subject" value=$subject required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="email.to" size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{fbvElement type="text" id="user" value=$userFullName|concat:" <":$userEmail:">" disabled="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="email.body" for="message" required="true"}
|
||||
{fbvElement type="textarea" id="message" value=$message rich=true required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons submitText="common.sendEmail"}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
</form>
|
||||
@@ -0,0 +1,34 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/form/userRoleForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Form for managing roles for a newly created user.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#userRoleForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="userRoleForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="updateUserRoles"}">
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="userRoleFormNotification"}
|
||||
|
||||
<h3>{translate key="grid.user.step2" userFullName=$userFullName|escape}</h3>
|
||||
|
||||
<input type="hidden" id="userId" name="userId" value="{$userId|escape}" />
|
||||
|
||||
{fbvFormSection}
|
||||
{fbvFormSection list=true title="grid.user.userRoles"}
|
||||
{foreach from=$allUserGroups item="userGroup" key="id"}
|
||||
{fbvElement type="checkbox" id="userGroupIds[]" value=$id checked=in_array($id, $assignedUserGroups) label=$userGroup|escape translate=false}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,46 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/userGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief Filter template for user grid.
|
||||
*
|
||||
* @uses int|null $filterData.oldUserId The user grid is re-used when merging
|
||||
* users. During the process, an $oldUserId is passed representing the user to
|
||||
* be merged. This is used to distinguish the grid filter IDs. The $oldUserId
|
||||
* must be submitted with the client form in order to ensure that the unique
|
||||
* IDs are used when the grid is refreshed. This ensures the filter form
|
||||
* binds to the correct grid when the filter is submitted and refreshed.
|
||||
*}
|
||||
{assign var=filterId value="userSearchForm"}
|
||||
{if $filterData.oldUserId}
|
||||
{assign var=filterId value=$filterId|concat:"-userMerge"}
|
||||
{/if}
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#{$filterId}').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: false
|
||||
{rdelim}
|
||||
);
|
||||
</script>
|
||||
<form class="pkp_form filter" id="{$filterId}" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{if $filterData.oldUserId}
|
||||
<input type="hidden" name="oldUserId" value="{$filterData.oldUserId|escape}">
|
||||
{/if}
|
||||
{fbvFormArea id="userSearchFormArea"}
|
||||
{fbvFormSection title="common.search" for="search"}
|
||||
{fbvElement type="search" name="search" id="search" value=$filterSelectionData.search size=$fbvStyles.size.LARGE inline="true"}
|
||||
{fbvElement type="select" name="userGroup" id="userGroup" from=$filterData.userGroupOptions selected=$filterSelectionData.userGroup size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection list=true}
|
||||
{if $filterSelectionData.includeNoRole}{assign var="checked" value="checked"}{/if}
|
||||
{fbvElement type="checkbox" name="includeNoRole" id="includeNoRole" value="1" checked=$checked label="user.noRoles.selectUsersWithoutRoles" translate="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,35 @@
|
||||
{**
|
||||
* templates/controllers/grid/tasks/task.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @brief A single task appearing in the task grid
|
||||
*
|
||||
* @uses $notificationMgr NotificationManager
|
||||
* @uses $notification Notification The notification object
|
||||
* @uses $context Journal|Press The journal or press which this notification
|
||||
* comes from.
|
||||
* @uses $notificationObjectTitle string The title of the object this
|
||||
* notification is about.
|
||||
* @uses $message string The message of the notification
|
||||
* @uses $isMultiContext bool Do we have multiple contexts?
|
||||
*}
|
||||
<div class="task{if !$notification->getDateRead()} unread{/if}">
|
||||
<span class="message">
|
||||
{$message}
|
||||
</span>
|
||||
<div class="details">
|
||||
{if $isMultiContext}
|
||||
<span class="acronym">
|
||||
{$context->getLocalizedAcronym()|escape}
|
||||
</span>
|
||||
{/if}
|
||||
{if $notificationObjectTitle && $notificationObjectTitle !== '—'}
|
||||
<span class="submission">
|
||||
{$notificationObjectTitle|escape}
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/author/form/authorForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Submission Contributor grid form
|
||||
* @deprecated 3.4
|
||||
*
|
||||
*}
|
||||
|
||||
<script>
|
||||
$(function() {ldelim}
|
||||
$('#editAuthor').pkpHandler(
|
||||
'$.pkp.controllers.form.AjaxFormHandler'
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="editAuthor" method="post" action="{url op="updateAuthor" authorId=$authorId}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="authorFormNotification"}
|
||||
|
||||
{include
|
||||
file="common/userDetails.tpl"
|
||||
disableUserNameSection=true
|
||||
disablePasswordSection=true
|
||||
disableSendNotifySection=true
|
||||
disableSalutationSection=true
|
||||
disableInitialsSection=true
|
||||
disablePhoneSection=true
|
||||
disableLocaleSection=true
|
||||
disableInterestsSection=true
|
||||
disableMailingSection=true
|
||||
disableSignatureSection=true
|
||||
extraContentSectionUnfolded=true
|
||||
countryRequired=true
|
||||
}
|
||||
|
||||
{fbvFormArea id="submissionSpecific"}
|
||||
{if $requireAuthorCompetingInterests}
|
||||
{fbvFormSection title="author.competingInterests"}
|
||||
{fbvElement id="competingInterests" type="textarea" multilingual=true rich=true label="author.competingInterests.description" value=$competingInterests}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{fbvFormSection id="userGroupId" title="submission.submit.contributorRole" list=true required=true}
|
||||
{foreach from=$authorUserGroups item=$userGroup}
|
||||
{if $userGroupId == $userGroup->getId()}{assign var="checked" value=true}{else}{assign var="checked" value=false}{/if}
|
||||
{fbvElement type="radio" id="userGroup"|concat:$userGroup->getId() name="userGroupId" value=$userGroup->getId() checked=$checked label=$userGroup->getLocalizedName() translate=false}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection list="true"}
|
||||
{fbvElement type="checkbox" label="submission.submit.selectPrincipalContact" id="primaryContact" checked=$primaryContact}
|
||||
{fbvElement type="checkbox" label="submission.submit.includeInBrowse" id="includeInBrowse" checked=$includeInBrowse}
|
||||
{$additionalCheckboxes}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
{if $submissionId}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
{/if}
|
||||
{if $publicationId}
|
||||
<input type="hidden" name="publicationId" value="{$publicationId|escape}" />
|
||||
{/if}
|
||||
{if $gridId}
|
||||
<input type="hidden" name="gridId" value="{$gridId|escape}" />
|
||||
{/if}
|
||||
{if $rowId}
|
||||
<input type="hidden" name="rowId" value="{$rowId|escape}" />
|
||||
{/if}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons id="step2Buttons" submitText="common.save"}
|
||||
</form>
|
||||
@@ -0,0 +1,15 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/author/includeInBrowse.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* User is included in browse lists cell
|
||||
*
|
||||
* @deprecated 3.4
|
||||
*}
|
||||
{if $includeInBrowse}
|
||||
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
|
||||
{/if}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/author/principalContact.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Principal contact cell
|
||||
*
|
||||
* @deprecated 3.4
|
||||
*}
|
||||
{if $isPrincipalContact}
|
||||
<div id="isChecked"><div href="#" class='pkp_helpers_container_center checked'></div></div>
|
||||
{/if}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{**
|
||||
* templates/controllers/grid/settings/user/userGridFilter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Filter template for user grid.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
// Attach the form handler to the form.
|
||||
$('#userSearchForm').pkpHandler('$.pkp.controllers.form.ClientFormHandler',
|
||||
{ldelim}
|
||||
trackFormChanges: false
|
||||
{rdelim}
|
||||
);
|
||||
</script>
|
||||
<form class="pkp_form filter" id="userSearchForm" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.user.UserGridHandler" op="fetchGrid"}" method="post">
|
||||
{csrf}
|
||||
{fbvFormArea id="userSearchFormArea"}
|
||||
{fbvFormSection title="common.search" for="search"}
|
||||
{fbvElement type="search" name="search" id="search" value=$filterSelectionData.search size=$fbvStyles.size.LARGE inline="true"}
|
||||
{fbvElement type="select" name="userGroup" id="userGroup" from=$filterData.userGroupOptions selected=$filterSelectionData.userGroup size=$fbvStyles.size.SMALL translate=false inline="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormButtons hideCancel=true submitText="common.search"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,60 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/authorReadReview.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Screen to let an author read an open review.
|
||||
*
|
||||
*}
|
||||
|
||||
{* Form handler attachment implemented in application-specific versions of this template. *}
|
||||
|
||||
<form class="pkp_form" id="readReviewForm" method="post" action="">
|
||||
{csrf}
|
||||
|
||||
{fbvFormSection}
|
||||
<div id="reviewAssignment-{$reviewAssignment->getId()|escape}">
|
||||
<h2>{$reviewAssignment->getReviewerFullName()|escape}</h2>
|
||||
|
||||
{if $reviewAssignment->getDateCompleted()}
|
||||
{fbvFormSection}
|
||||
<div class="pkp_controllers_informationCenter_itemLastEvent">
|
||||
{translate key="common.completed.date" dateCompleted=$reviewAssignment->getDateCompleted()|date_format:$datetimeFormatShort}
|
||||
</div>
|
||||
{/fbvFormSection}
|
||||
|
||||
{if $reviewAssignment->getRecommendation()}
|
||||
{fbvFormSection}
|
||||
<div class="pkp_controllers_informationCenter_itemLastEvent">
|
||||
{translate key="submission.recommendation" recommendation=$reviewAssignment->getLocalizedRecommendation()}
|
||||
</div>
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
{if $reviewAssignment->getReviewFormId()}
|
||||
{include file="reviewer/review/reviewFormResponse.tpl"}
|
||||
{elseif $comments->getCount()}
|
||||
<h3>{translate key="editor.review.reviewerComments"}</h3>
|
||||
{iterate from=comments item=comment}
|
||||
<h4>{translate key="submission.comments.canShareWithAuthor"}</h4>
|
||||
{include file="controllers/revealMore.tpl" content=$comment->getComments()|strip_unsafe_html}
|
||||
{/iterate}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
{/fbvFormSection}
|
||||
|
||||
<div class="pkp_notification" id="noFilesWarning" style="display: none;">
|
||||
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=noFilesWarningContent notificationStyleClass=notifyWarning notificationTitle="editor.review.noReviewFilesUploaded"|translate notificationContents="editor.review.noReviewFilesUploaded.details"|translate}
|
||||
</div>
|
||||
|
||||
{fbvFormArea id="readReview"}
|
||||
{fbvFormSection title="reviewer.submission.reviewerFiles"}
|
||||
{capture assign="reviewAttachmentsGridUrl"}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.attachment.AuthorOpenReviewAttachmentsGridHandler" op="fetchGrid" submissionId=$submission->getId() reviewId=$reviewAssignment->getId() stageId=$reviewAssignment->getStageId() reviewRoundId=$reviewAssignment->getReviewRoundId() escape=false}{/capture}
|
||||
{load_url_in_div id="readReviewAttachmentsGridContainer" url=$reviewAttachmentsGridUrl}
|
||||
{/fbvFormSection}
|
||||
{/fbvFormArea}
|
||||
|
||||
</form>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/advancedSearchReviewerAssignmentForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Assigns the reviewer (selected from the reviewerSelect grid) to review the submission.
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler for second form.
|
||||
$('#advancedSearchReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
|
||||
{ldelim}
|
||||
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
{* The form that will create the review assignment. A reviewer ID must be loaded in here via the grid above. *}
|
||||
<form class="pkp_form" id="advancedSearchReviewerForm" method="post" action="{url op="updateReviewer"}" >
|
||||
{csrf}
|
||||
{fbvElement type="hidden" id="reviewerId"}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
|
||||
|
||||
{fbvFormButtons submitText="editor.submission.addReviewer"}
|
||||
</form>
|
||||
@@ -0,0 +1,70 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/advancedSearchReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Advanced Search and assignment reviewer form.
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Handle moving the reviewer ID from the grid to the second form
|
||||
$('#advancedReviewerSearch').pkpHandler(
|
||||
'$.pkp.controllers.grid.users.reviewer.AdvancedReviewerSearchHandler',
|
||||
{ldelim}
|
||||
lastRoundReviewerIds: {$lastRoundReviewerIds|json_encode},
|
||||
reviewerMessages: {$reviewerMessages|json_encode}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<div id="advancedReviewerSearch" class="pkp_form pkp_form_advancedReviewerSearch">
|
||||
|
||||
<div id="searchGridAndButton">
|
||||
|
||||
{assign var="uuid" value=""|uniqid|escape}
|
||||
<div id="select-reviewer-{$uuid}">
|
||||
<select-reviewer-list-panel
|
||||
v-bind="components.selectReviewer"
|
||||
@set="set"
|
||||
/>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
pkp.registry.init('select-reviewer-{$uuid}', 'Container', {$selectReviewerListData|@json_encode});
|
||||
</script>
|
||||
|
||||
{** This button will get the reviewer selected in the grid and insert their ID into the form below **}
|
||||
{fbvFormSection class="form_buttons"}
|
||||
{foreach from=$reviewerActions item=action}
|
||||
{if $action->getId() == 'advancedSearch'}
|
||||
{continue}
|
||||
{/if}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
</div>
|
||||
|
||||
<div id="regularReviewerForm" class="pkp_reviewer_form">
|
||||
{** Display the name of the selected reviewer **}
|
||||
<div class="selected_reviewer">
|
||||
<div class="label">
|
||||
{translate key="editor.submission.selectedReviewer"}
|
||||
</div>
|
||||
<div class="value">
|
||||
<span id="selectedReviewerName" class="name"></span>
|
||||
<span class="actions">
|
||||
{foreach from=$reviewerActions item=action}
|
||||
{if $action->getId() == 'advancedSearch'}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/advancedSearchReviewerAssignmentForm.tpl"}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,76 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/createReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Create a reviewer and assign to a submission form.
|
||||
*
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#createReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
|
||||
{ldelim}
|
||||
fetchUsernameSuggestionUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="api.user.UserApiHandler" op="suggestUsername" givenName="GIVEN_NAME_PLACEHOLDER" familyName="FAMILY_NAME_PLACEHOLDER" escape=false},
|
||||
usernameSuggestionTextAlert: {translate|json_encode key="grid.user.mustProvideName"},
|
||||
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="createReviewerForm" method="post" action="{url op="createReviewer"}" >
|
||||
<input type="hidden" name="sitePrimaryLocale" value="{$sitePrimaryLocale|escape}">
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="createReviewerFormNotification"}
|
||||
|
||||
<div class="action_links">
|
||||
{foreach from=$reviewerActions item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId="createReviewerForm"}
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<h3>{translate key="editor.review.createReviewer"}</h3>
|
||||
|
||||
{if count($userGroups)>1}
|
||||
{fbvFormSection title="user.group" required="true"}
|
||||
{fbvElement type="select" name="userGroupId" id="userGroupId" from=$userGroups translate=false label="editor.review.userGroupSelect" required="true"}
|
||||
{/fbvFormSection}
|
||||
{elseif count($userGroups)==1}
|
||||
{foreach from=$userGroups key=userGroupId item=userGroupName}
|
||||
{fbvElement type="hidden" id="userGroupId" value=$userGroupId}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{fbvFormSection title="common.name"}
|
||||
{fbvElement type="text" label="user.givenName" multilingual="true" name="givenName" id="givenName" value=$givenName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM required="true"}
|
||||
{fbvElement type="text" label="user.familyName" multilingual="true" name="familyName" id="familyName" value=$familyName maxlength="255" inline=true size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="user.username" required="true"}
|
||||
{fbvElement type="text" label="user.register.usernameRestriction" id="username" required="true" value=$username size=$fbvStyles.size.MEDIUM inline=true}
|
||||
{fbvElement type="button" label="common.suggest" id="suggestUsernameButton" inline=true class="default"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="user.email" required="true"}
|
||||
{fbvElement type="email" id="email" required="true" value=$email maxlength="90" size=$fbvStyles.size.MEDIUM}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="manager.reviewerSearch.interests" for="interests"}
|
||||
{fbvElement type="interests" id="interests" interests=$interests}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="user.affiliation"}
|
||||
{fbvElement type="text" multilingual="true" name="affiliation" id="affiliation" value=$affiliation size=$fbvStyles.size.LARGE}
|
||||
{/fbvFormSection}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons submitText="editor.submission.addReviewer"}
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,29 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/defaultReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* A default reviewer selection form.
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#defaultReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
|
||||
{ldelim}
|
||||
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="defaultReviewerForm" method="post" action="{url op="updateReviewer"}" >
|
||||
{csrf}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
|
||||
|
||||
{fbvFormButtons submitText="editor.submission.addReviewer"}
|
||||
</form>
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/editReviewForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Limit the review files available to a reviewer who has already been
|
||||
* assigned to a submission.
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#editReviewForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.EditReviewFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="editReviewForm" method="post" action="{url op="updateReview"}">
|
||||
{csrf}
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
|
||||
|
||||
{fbvFormSection title="editor.review.importantDates"}
|
||||
{fbvElement type="text" id="responseDueDate" name="responseDueDate" label="submission.task.responseDueDate" value=$responseDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
|
||||
{fbvElement type="text" id="reviewDueDate" name="reviewDueDate" label="editor.review.reviewDueDate" value=$reviewDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection list=true title="editor.submissionReview.reviewType"}
|
||||
{foreach from=$reviewMethods key=methodId item=methodTranslationKey}
|
||||
{assign var=elementId value="reviewMethod"|concat:"-"|concat:$methodId}
|
||||
{if $reviewMethod == $methodId}
|
||||
{assign var=elementChecked value=true}
|
||||
{else}
|
||||
{assign var=elementChecked value=false}
|
||||
{/if}
|
||||
{fbvElement type="radio" name="reviewMethod" id=$elementId value=$methodId checked=$elementChecked label=$methodTranslationKey}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/noFilesWarning.tpl"}
|
||||
|
||||
<h3>{translate key="editor.submissionReview.restrictFiles"}</h3>
|
||||
{capture assign=limitReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.LimitReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId reviewAssignmentId=$reviewAssignmentId escape=false}{/capture}
|
||||
{load_url_in_div id="limitReviewFilesGrid" url=$limitReviewFilesGridUrl}
|
||||
|
||||
{if $reviewForms}
|
||||
{if count($reviewForms)>0}
|
||||
{fbvFormSection title="submission.reviewForm"}
|
||||
{fbvElement type="select" name="reviewFormId" id="reviewFormId" defaultLabel="manager.reviewForms.noneChosen"|translate defaultValue="0" translate=false from=$reviewForms selected=$reviewFormId}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,34 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/form/emailReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display form to send user an email.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#emailReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="emailReviewerForm" method="post" action="{url op="sendEmail" params=$requestArgs}" >
|
||||
{csrf}
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
|
||||
{fbvFormSection title="email.to" size=$fbvStyles.size.MEDIUM}
|
||||
{fbvElement type="text" id="user" value=$userFullName disabled="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="email.subject" for="subject" required="true"}
|
||||
{fbvElement type="text" id="subject" value=$subject required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="email.body" for="message" required="true"}
|
||||
{fbvElement type="textarea" id="message" value=$message rich=true required="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
{fbvFormButtons submitText="common.sendEmail"}
|
||||
</form>
|
||||
@@ -0,0 +1,48 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/enrollExistingReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Enroll existing user and assignment reviewer form.
|
||||
*
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#enrollExistingReviewerForm').pkpHandler('$.pkp.controllers.grid.users.reviewer.form.AddReviewerFormHandler',
|
||||
{ldelim}
|
||||
templateUrl: {url|json_encode router=\PKP\core\PKPApplication::ROUTE_COMPONENT component='grid.users.reviewer.ReviewerGridHandler' op='fetchTemplateBody' stageId=$stageId reviewRoundId=$reviewRoundId submissionId=$submissionId escape=false}
|
||||
{rdelim}
|
||||
);
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="enrollExistingReviewerForm" method="post" action="{url op="enrollReviewer"}" >
|
||||
{csrf}
|
||||
{include file="controllers/notification/inPlaceNotification.tpl" notificationId="enrollExistingReviewerFormNotification"}
|
||||
|
||||
<div class="action_links">
|
||||
{foreach from=$reviewerActions item=action}
|
||||
{include file="linkAction/linkAction.tpl" action=$action contextId="enrollExistingReviewerForm"}
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<h3>{translate key="editor.review.enrollReviewer"}</h3>
|
||||
|
||||
{fbvFormSection}
|
||||
{fbvElement type="select" name="userGroupId" id="userGroupId" from=$userGroups translate=false label="editor.review.userGroupSelect" required="true"}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection}
|
||||
{capture assign=autocompleteUrl}{url op="getUsersNotAssignedAsReviewers" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{fbvElement type="autocomplete" disableSync="true" required="true" autocompleteUrl=$autocompleteUrl id="userId" label="manager.reviewerSearch.searchByName.short"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/reviewerFormFooter.tpl"}
|
||||
|
||||
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
|
||||
|
||||
{fbvFormButtons submitText="editor.submission.addReviewer"}
|
||||
</form>
|
||||
@@ -0,0 +1,13 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/noFilesWarning.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Warning indicating that no files were selected.
|
||||
*
|
||||
*}
|
||||
<div class="pkp_notification" id="noFilesWarning" style="display: none;">
|
||||
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=noFilesWarningContent notificationStyleClass=notifyWarning notificationTitle="editor.submission.noReviewerFilesSelected"|translate notificationContents="editor.submission.noReviewerFilesSelected.details"|translate}
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/reinstateReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Enroll existing user and assignment reviewer form.
|
||||
*
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#reinstateReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="reinstateReviewerForm" method="post" action="{url op="updateReinstateReviewer"}" >
|
||||
{csrf}
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
|
||||
<input type="hidden" name="reviewerId" value="{$reviewerId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
|
||||
<!-- Message to reviewer textarea -->
|
||||
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
|
||||
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
<!-- Skip email checkbox -->
|
||||
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
|
||||
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons submitText="editor.review.reinstateReviewer"}
|
||||
</form>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/resendRequestReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Enroll existing user and assignment reviewer form.
|
||||
*
|
||||
*}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#resendRequestReviewerForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="resendRequestReviewerForm" method="post" action="{url op="updateResendRequestReviewer"}" >
|
||||
{csrf}
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
|
||||
<input type="hidden" name="reviewerId" value="{$reviewerId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
|
||||
<!-- Message to reviewer textarea -->
|
||||
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
|
||||
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
<!-- Skip email checkbox -->
|
||||
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
|
||||
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons submitText="editor.review.resendRequestReviewer"}
|
||||
</form>
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/reviewReminderForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display the form to send a review reminder--Contains a user-editable message field (all other fields are static)
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#sendReminderForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="sendReminderForm" method="post" action="{url op="sendReminder"}" >
|
||||
{csrf}
|
||||
{fbvFormArea id="sendReminder"}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
|
||||
{fbvFormSection title="user.role.reviewer"}
|
||||
{fbvElement type="text" id="reviewerName" value=$reviewerName disabled="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="editor.review.personalMessageToReviewer" for="message"}
|
||||
{fbvElement type="textarea" id="message" value=$message variables=$emailVariables rich=true}
|
||||
{/fbvFormSection}
|
||||
{fbvFormSection title="reviewer.submission.reviewSchedule"}
|
||||
{fbvElement type="text" id="dateNotified" label="reviewer.submission.reviewRequestDate" value=$reviewAssignment->getDateNotified()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
|
||||
{if $reviewAssignment->getDateConfirmed()}
|
||||
{fbvElement type="text" id="dateConfirmed" label="editor.review.dateAccepted" value=$reviewAssignment->getDateConfirmed()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
|
||||
{else}
|
||||
{fbvElement type="text" id="responseDue" label="reviewer.submission.responseDueDate" value=$reviewAssignment->getDateResponseDue()|date_format:$dateFormatShort readonly=true inline=true size=$fbvStyles.size.SMALL}
|
||||
{/if}
|
||||
{fbvElement type="text" id="reviewDueDate" label="reviewer.submission.reviewDueDate" value=$reviewDueDate readonly=true inline=true size=$fbvStyles.size.SMALL}
|
||||
{/fbvFormSection}
|
||||
{fbvFormButtons submitText="editor.review.sendReminder"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
@@ -0,0 +1,77 @@
|
||||
{**
|
||||
* templates/controllers/grid/user/reviewer/form/reviewerFormFooter.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* The non-searching part of the add reviewer form
|
||||
*
|
||||
*}
|
||||
<div id="reviewerFormFooter" class="reviewerFormFooterContainer">
|
||||
<!-- message template choice -->
|
||||
{if $hasCustomTemplates}
|
||||
{fbvFormSection title="stageParticipants.notify.chooseMessage" for="template" size=$fbvStyles.size.medium}
|
||||
{fbvElement type="select" from=$templates translate=false id="template"}
|
||||
{/fbvFormSection}
|
||||
{else}
|
||||
<!-- REVIEW_REQUEST or REVIEW_REQUEST_SUBSEQUENT -->
|
||||
<input type="hidden" name="template" value="{$templates|array_key_first}"/>
|
||||
{/if}
|
||||
|
||||
<!-- Message to reviewer textarea -->
|
||||
{fbvFormSection title="editor.review.personalMessageToReviewer" for="personalMessage"}
|
||||
{fbvElement type="textarea" name="personalMessage" id="personalMessage" value=$personalMessage variables=$emailVariables rich=true rows=25}
|
||||
{/fbvFormSection}
|
||||
|
||||
<!-- skip email checkbox -->
|
||||
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
|
||||
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="editor.review.importantDates"}
|
||||
{fbvElement type="text" id="responseDueDate" name="responseDueDate" label="submission.task.responseDueDate" value=$responseDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
|
||||
{fbvElement type="text" id="reviewDueDate" name="reviewDueDate" label="editor.review.reviewDueDate" value=$reviewDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{include file="controllers/grid/users/reviewer/form/noFilesWarning.tpl"}
|
||||
|
||||
{capture assign="extraContent"}
|
||||
<!-- Available review files -->
|
||||
{capture assign=limitReviewFilesGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.files.review.LimitReviewFilesGridHandler" op="fetchGrid" submissionId=$submissionId stageId=$stageId reviewRoundId=$reviewRoundId escape=false}{/capture}
|
||||
{load_url_in_div id="limitReviewFilesGrid" url=$limitReviewFilesGridUrl}
|
||||
{/capture}
|
||||
<div id="filesAccordian" class="section">
|
||||
{include file="controllers/extrasOnDemand.tpl"
|
||||
id="filesAccordianController"
|
||||
widgetWrapper="#filesAccordian"
|
||||
moreDetailsText="editor.submissionReview.restrictFiles"
|
||||
lessDetailsText="editor.submissionReview.restrictFiles.hide"
|
||||
extraContent=$extraContent
|
||||
}
|
||||
</div>
|
||||
|
||||
{fbvFormSection list=true title="editor.submissionReview.reviewType"}
|
||||
{foreach from=$reviewMethods key=methodId item=methodTranslationKey}
|
||||
{assign var=elementId value="reviewMethod"|concat:"-"|concat:$methodId}
|
||||
{if $reviewMethod == $methodId}
|
||||
{assign var=elementChecked value=true}
|
||||
{else}
|
||||
{assign var=elementChecked value=false}
|
||||
{/if}
|
||||
{fbvElement type="radio" name="reviewMethod" id=$elementId value=$methodId checked=$elementChecked label=$methodTranslationKey}
|
||||
{/foreach}
|
||||
{/fbvFormSection}
|
||||
|
||||
{if count($reviewForms)>0}
|
||||
{fbvFormSection title="submission.reviewForm"}
|
||||
{fbvElement type="select" name="reviewFormId" id="reviewFormId" defaultLabel="manager.reviewForms.noneChosen"|translate defaultValue="0" translate=false from=$reviewForms selected=$reviewFormId}
|
||||
{/fbvFormSection}
|
||||
{/if}
|
||||
|
||||
<!-- All of the hidden inputs -->
|
||||
<input type="hidden" name="selectionType" value="{$selectionType|escape}" />
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="reviewRoundId" value="{$reviewRoundId|escape}" />
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/form/reviewerGossipForm.tpl
|
||||
*
|
||||
* Copyright (c) 2013-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display form to gossip about a user.
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#reviewerGossipForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
<form class="pkp_form" id="reviewerGossipForm" method="post" action="{url op="gossip" params=$requestArgs}" >
|
||||
{csrf}
|
||||
|
||||
{fbvFormSection}
|
||||
{fbvElement type="textarea" name="gossip" id="gossip" label="user.gossip.description" rich=true value=$gossip}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons}
|
||||
</form>
|
||||
@@ -0,0 +1,40 @@
|
||||
{**
|
||||
* templates/controllers/grid/users/reviewer/thankReviewerForm.tpl
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* Display the form to send a thank you -- Contains a user-editable message field.
|
||||
*
|
||||
*}
|
||||
<script type="text/javascript">
|
||||
$(function() {ldelim}
|
||||
// Attach the form handler.
|
||||
$('#sendThankYouForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
|
||||
{rdelim});
|
||||
</script>
|
||||
|
||||
<form class="pkp_form" id="sendThankYouForm" method="post" action="{url op="thankReviewer"}" >
|
||||
{csrf}
|
||||
{fbvFormArea id="sendReminder"}
|
||||
<input type="hidden" name="submissionId" value="{$submissionId|escape}" />
|
||||
<input type="hidden" name="stageId" value="{$stageId|escape}" />
|
||||
<input type="hidden" name="reviewAssignmentId" value="{$reviewAssignmentId|escape}" />
|
||||
|
||||
{fbvFormSection title="user.role.reviewer"}
|
||||
{fbvElement type="text" id="reviewerName" value=$reviewerName disabled="true"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormSection title="editor.review.personalMessageToReviewer" for="message"}
|
||||
{fbvElement type="textarea" id="message" value=$message rich=true}
|
||||
{/fbvFormSection}
|
||||
|
||||
<!-- skip email checkbox -->
|
||||
{fbvFormSection for="skipEmail" size=$fbvStyles.size.MEDIUM list=true}
|
||||
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
|
||||
{/fbvFormSection}
|
||||
|
||||
{fbvFormButtons submitText="editor.review.thankReviewer"}
|
||||
{/fbvFormArea}
|
||||
</form>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user