| Server IP : 195.134.90.114 / Your IP : 216.73.216.86 Web Server : Apache/2.4.58 System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/lib/pkp/js/classes/ |
Upload File : |
/**
* @file js/classes/VueRegistry.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 VueRegistry
* @ingroup js_classes
*
* @brief Registry and initialization class for Vue.js handlers
*/
export default {
/**
* Registry of all active vue instances
*/
_instances: {},
/**
* Initialize a Vue controller
*
* This method is often called directly from a <script> tag in a template
* file to spin up a Vue controller on-demand. This allows the Vue component
* lifecycle to be compatible with the legacy JS framework.
*
* @param string id Element ID to attach this controller to
* @param string type The type of controller to initialize
* @param object The data object to pass to the controller. Can include
* configuration parameters, translatable strings and initial data.
*/
init: function(id, type, data) {
if (pkp.controllers[type] === undefined) {
return;
}
var baseData = {};
if (typeof pkp.controllers[type].data === 'function') {
baseData = pkp.controllers[type].data();
}
var args = $.extend(true, {}, pkp.controllers[type], {
el: '#' + id,
data: $.extend(true, {}, baseData, data, {id: id})
});
pkp.registry._instances[id] = new pkp.Vue(args);
// Register with a parent handler from the legacy JS framework, so that
// those componments can destroy a Vue instance when removing HTML code
var $parents = $(pkp.registry._instances[id].$el).parents();
$parents.each(function(i) {
if ($.pkp.classes.Handler.hasHandler($($parents[i]))) {
$.pkp.classes.Handler.getHandler($($parents[i])).handlerChildren_.push(
pkp.registry._instances[id]
);
return false; // only attach to the closest parent handler
}
});
}
};