X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fpermissions_by_term%2Fjs%2Fnode-form.js;fp=web%2Fmodules%2Fcontrib%2Fpermissions_by_term%2Fjs%2Fnode-form.js;h=a2d6d6db2b6ad2dceff556ce0429988dab8ad17c;hp=0ace453b51577a97c843cec3d0b13412ff45be5e;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/modules/contrib/permissions_by_term/js/node-form.js b/web/modules/contrib/permissions_by_term/js/node-form.js index 0ace453b5..a2d6d6db2 100644 --- a/web/modules/contrib/permissions_by_term/js/node-form.js +++ b/web/modules/contrib/permissions_by_term/js/node-form.js @@ -7,107 +7,112 @@ 'use strict'; - var relationFieldsPathByContentType = "/admin/permissions-by-term/access-info-by-content-type/", + if ($("#edit-permissions-by-term-info").length > 0) { + + var relationFieldsPathByContentType = "/admin/permissions-by-term/access-info-by-content-type/", relationFieldsPathByUrl = "/admin/permissions-by-term/access-info-by-url?url="; - /** - * @type {Drupal~behavior} - */ - Drupal.behaviors.nodeForm = { - attach: function () { + /** + * @type {Drupal~behavior} + */ + Drupal.behaviors.nodeForm = { + attach: function () { - var contentType = getContentType(), - getFormInfo = null; + var contentType = getContentType(), + getFormInfo = null; - if (contentType !== null) { - getFormInfo = $.get(relationFieldsPathByContentType + contentType); - } else { - getFormInfo = $.get(relationFieldsPathByUrl + window.location.pathname); - } + if (contentType !== null) { + getFormInfo = $.get(relationFieldsPathByContentType + contentType); + } else { + getFormInfo = $.get(relationFieldsPathByUrl + window.location.pathname); + } - $.when(getFormInfo).done(function(formInfo){ + $.when(getFormInfo).done(function(formInfo){ - if (formInfo['taxonomyRelationFieldNames'] !== null) { + if (formInfo['taxonomyRelationFieldNames'] !== null) { - var nodeForm = new NodeForm($), - fieldWrapperCSSClasses = nodeForm.computeFieldWrapperCSSClasses(formInfo['taxonomyRelationFieldNames']); + var nodeForm = new NodeForm($), + fieldWrapperCSSClasses = nodeForm.computeFieldWrapperCSSClasses(formInfo['taxonomyRelationFieldNames']); - initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo); + initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo); - for (var index = 0; index < fieldWrapperCSSClasses.length; ++index) { + for (var index = 0; index < fieldWrapperCSSClasses.length; ++index) { - var formElementCssClass = fieldWrapperCSSClasses[index]; + var formElementCssClass = fieldWrapperCSSClasses[index]; - nodeForm.addFormElementCssClass(formElementCssClass); + nodeForm.addFormElementCssClass(formElementCssClass); - $(formElementCssClass + ' select').change(function (){ - nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']); - }); + $(formElementCssClass + ' select').change(function (){ + nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']); + }); - $(formElementCssClass + ' input[type="text"]').on('autocomplete-select', function (){ - nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); - }); + $(formElementCssClass + ' input[type="text"]').on('autocomplete-select', function (){ + nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); + }); - $(formElementCssClass + ' input[type="text"]').on('keyup', function (){ - nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); - }); + $(formElementCssClass + ' input[type="text"]').on('keyup', function (){ + nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); + }); - $(formElementCssClass + ' input[type="checkbox"]').change(function (){ - nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']); - }); + $(formElementCssClass + ' input[type="checkbox"]').change(function (){ + nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']); + }); + } } - } - }); + }); - function initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo) { - nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']); - nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); - nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']); - } + function initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo) { + nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']); + nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']); + nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']); + } + + function getContentType() { + if (window.location.href.indexOf('/node/add') !== -1) { + return window.location.href.split("/").pop(); + } - function getContentType() { - if (window.location.href.indexOf('/node/add') !== -1) { - return window.location.href.split("/").pop(); + return null; } - return null; } + }; + + if (Drupal.autocomplete) { + /** + * Handles an auto-complete select event. + * + * Override the autocomplete method to add a custom event. Overriding is + * happening to get full input. + * + * @param {jQuery.Event} event + * The event triggered. + * @param {object} ui + * The jQuery UI settings object. + * + * @return {boolean} + * Returns false to indicate the event status. + */ + Drupal.autocomplete.options.select = function selectHandler(event, ui) { + var terms = Drupal.autocomplete.splitValues(event.target.value); + // Remove the current input. + terms.pop(); + // Add the selected item. + if (ui.item.value.search(',') > 0) { + terms.push('"' + ui.item.value + '"'); + } + else { + terms.push(ui.item.value); + } + event.target.value = terms.join(', '); + // Fire custom event that other controllers can listen to. + jQuery(event.target).trigger('autocomplete-select'); + // Return false to tell jQuery UI that we've filled in the value already. + return false; + } } - }; - - /** - * Handles an auto-complete select event. - * - * Override the autocomplete method to add a custom event. Overriding is - * happening to get full input. - * - * @param {jQuery.Event} event - * The event triggered. - * @param {object} ui - * The jQuery UI settings object. - * - * @return {boolean} - * Returns false to indicate the event status. - */ - Drupal.autocomplete.options.select = function selectHandler(event, ui) { - var terms = Drupal.autocomplete.splitValues(event.target.value); - // Remove the current input. - terms.pop(); - // Add the selected item. - if (ui.item.value.search(',') > 0) { - terms.push('"' + ui.item.value + '"'); - } - else { - terms.push(ui.item.value); - } - event.target.value = terms.join(', '); - // Fire custom event that other controllers can listen to. - jQuery(event.target).trigger('autocomplete-select'); - - // Return false to tell jQuery UI that we've filled in the value already. - return false; } -})(jQuery, window); \ No newline at end of file +})(jQuery, window);