83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
/**
|
|
* @defgroup plugins_pubIds_urn_js
|
|
*/
|
|
/**
|
|
* @file plugins/pubIds/urn/js/URNSettingsFormHandler.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 URNSettingsFormHandler.js
|
|
* @ingroup plugins_pubIds_urn_js
|
|
*
|
|
* @brief Handle the URN Settings form.
|
|
*/
|
|
(function($) {
|
|
|
|
/** @type {Object} */
|
|
$.pkp.plugins.pubIds.urn =
|
|
$.pkp.plugins.pubIds.urn ||
|
|
{ js: { } };
|
|
|
|
|
|
|
|
/**
|
|
* @constructor
|
|
*
|
|
* @extends $.pkp.controllers.form.AjaxFormHandler
|
|
*
|
|
* @param {jQueryObject} $form the wrapped HTML form element.
|
|
* @param {Object} options form options.
|
|
*/
|
|
$.pkp.plugins.pubIds.urn.js.URNSettingsFormHandler =
|
|
function($form, options) {
|
|
|
|
this.parent($form, options);
|
|
|
|
$(':radio, :checkbox', $form).click(
|
|
this.callbackWrapper(this.updatePatternFormElementStatus_));
|
|
//ping our handler to set the form's initial state.
|
|
this.callbackWrapper(this.updatePatternFormElementStatus_());
|
|
};
|
|
$.pkp.classes.Helper.inherits(
|
|
$.pkp.plugins.pubIds.urn.js.URNSettingsFormHandler,
|
|
$.pkp.controllers.form.AjaxFormHandler);
|
|
|
|
|
|
/**
|
|
* Callback to replace the element's content.
|
|
*
|
|
* @private
|
|
*/
|
|
$.pkp.plugins.pubIds.urn.js.URNSettingsFormHandler.prototype.
|
|
updatePatternFormElementStatus_ =
|
|
function() {
|
|
var $element = this.getHtmlElement(), pattern, $contentChoices;
|
|
if ($('[id^="urnSuffix"]').filter(':checked').val() == 'pattern') {
|
|
$contentChoices = $element.find(':checkbox');
|
|
pattern = new RegExp('enable(.*)URN');
|
|
$contentChoices.each(function() {
|
|
var patternCheckResult = pattern.exec($(this).attr('name')),
|
|
$correspondingTextField = $element.find('[id*="' +
|
|
patternCheckResult[1] + 'SuffixPattern"]').
|
|
filter(':text');
|
|
|
|
if (patternCheckResult !== null &&
|
|
patternCheckResult[1] !== 'undefined') {
|
|
if ($(this).is(':checked')) {
|
|
$correspondingTextField.removeAttr('disabled');
|
|
} else {
|
|
$correspondingTextField.attr('disabled', 'disabled');
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
$element.find('[id*="SuffixPattern"]').filter(':text').
|
|
attr('disabled', 'disabled');
|
|
}
|
|
};
|
|
|
|
/** @param {jQuery} $ jQuery closure. */
|
|
}(jQuery));
|