63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
/**
|
|
* @defgroup js_controllers_tab_workflow
|
|
*/
|
|
/**
|
|
* @file js/controllers/tab/workflow/WorkflowTabHandler.js
|
|
*
|
|
* 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.
|
|
*
|
|
* @class WorkflowTabHandler
|
|
* @ingroup js_controllers_tab_workflow
|
|
*
|
|
* @brief A subclass of TabHandler for handling requests to load stages
|
|
* of the workflow.
|
|
*/
|
|
(function($) {
|
|
|
|
/** @type {Object} */
|
|
$.pkp.controllers.tab =
|
|
$.pkp.controllers.tab || {};
|
|
|
|
|
|
/** @type {Object} */
|
|
$.pkp.controllers.tab.workflow =
|
|
$.pkp.controllers.tab.workflow || {};
|
|
|
|
|
|
|
|
/**
|
|
* @constructor
|
|
*
|
|
* @extends $.pkp.controllers.TabHandler
|
|
*
|
|
* @param {jQueryObject} $tabs A wrapped HTML element that
|
|
* represents the tabbed interface.
|
|
* @param {Object} options Handler options.
|
|
*/
|
|
$.pkp.controllers.tab.workflow.WorkflowTabHandler =
|
|
function($tabs, options) {
|
|
|
|
var pageUrl, stage, pattern, i, tabAnchors, matches;
|
|
this.parent($tabs, options);
|
|
|
|
pageUrl = document.location.toString();
|
|
matches = pageUrl.match('workflow/([^/]+)/');
|
|
if (matches) {
|
|
stage = matches[1];
|
|
tabAnchors = $tabs.find('li a');
|
|
for (i = 0; i < tabAnchors.length; i++) {
|
|
pattern = new RegExp(stage);
|
|
if (tabAnchors[i].getAttribute('class').match(pattern)) {
|
|
options.selected = i;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
$.pkp.classes.Helper.inherits(
|
|
$.pkp.controllers.tab.workflow.WorkflowTabHandler,
|
|
$.pkp.controllers.TabHandler);
|
|
|
|
}(jQuery));
|