/** * @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));