Upgraded imagemagick and manually altered pdf to image module to handle changes....
[yaffs-website] / web / modules / contrib / permissions_by_term / js / node-form.js
1 /**
2  * @file
3  * Info behaviors on node edit form.
4  */
5
6 (function ($, window) {
7
8   'use strict';
9
10   if ($("#edit-permissions-by-term-info").length > 0) {
11
12     var relationFieldsPathByContentType = "/admin/permissions-by-term/access-info-by-content-type/",
13       relationFieldsPathByUrl = "/admin/permissions-by-term/access-info-by-url?url=";
14
15     /**
16      * @type {Drupal~behavior}
17      */
18     Drupal.behaviors.nodeForm = {
19       attach: function () {
20
21         var contentType = getContentType(),
22             getFormInfo = null;
23
24         if (contentType !== null) {
25           getFormInfo = $.get(relationFieldsPathByContentType + contentType);
26         } else {
27           getFormInfo = $.get(relationFieldsPathByUrl + window.location.pathname);
28         }
29
30         $.when(getFormInfo).done(function(formInfo){
31
32           if (formInfo['taxonomyRelationFieldNames'] !== null) {
33
34             var nodeForm = new NodeForm($),
35                 fieldWrapperCSSClasses = nodeForm.computeFieldWrapperCSSClasses(formInfo['taxonomyRelationFieldNames']);
36
37             initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo);
38
39             for (var index = 0; index < fieldWrapperCSSClasses.length; ++index) {
40
41               var formElementCssClass = fieldWrapperCSSClasses[index];
42
43               nodeForm.addFormElementCssClass(formElementCssClass);
44
45               $(formElementCssClass + ' select').change(function (){
46                 nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']);
47               });
48
49               $(formElementCssClass + ' input[type="text"]').on('autocomplete-select', function (){
50                 nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']);
51               });
52
53               $(formElementCssClass + ' input[type="text"]').on('keyup', function (){
54                 nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']);
55               });
56
57               $(formElementCssClass + ' input[type="checkbox"]').change(function (){
58                 nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']);
59               });
60             }
61           }
62
63         });
64
65         function initPermissionInfoByFormElements(nodeForm, fieldWrapperCSSClasses, formInfo) {
66           nodeForm.displayPermissionsBySelect(fieldWrapperCSSClasses, formInfo['permissions']);
67           nodeForm.displayPermissionsByAutocomplete(fieldWrapperCSSClasses, formInfo['permissions']);
68           nodeForm.displayPermissionsByCheckbox($(this).prop('value'), $(this).prop('checked'), formInfo['permissions']);
69         }
70
71         function getContentType() {
72           if (window.location.href.indexOf('/node/add') !== -1) {
73             return window.location.href.split("/").pop();
74           }
75
76           return null;
77         }
78
79       }
80     };
81
82     if (Drupal.autocomplete) {
83       /**
84        * Handles an auto-complete select event.
85        *
86        * Override the autocomplete method to add a custom event. Overriding is
87        * happening to get full input.
88        *
89        * @param {jQuery.Event} event
90        *   The event triggered.
91        * @param {object} ui
92        *   The jQuery UI settings object.
93        *
94        * @return {boolean}
95        *   Returns false to indicate the event status.
96        */
97       Drupal.autocomplete.options.select = function selectHandler(event, ui) {
98         var terms = Drupal.autocomplete.splitValues(event.target.value);
99         // Remove the current input.
100         terms.pop();
101         // Add the selected item.
102         if (ui.item.value.search(',') > 0) {
103           terms.push('"' + ui.item.value + '"');
104         }
105         else {
106           terms.push(ui.item.value);
107         }
108         event.target.value = terms.join(', ');
109         // Fire custom event that other controllers can listen to.
110         jQuery(event.target).trigger('autocomplete-select');
111
112         // Return false to tell jQuery UI that we've filled in the value already.
113         return false;
114       }
115     }
116   }
117
118 })(jQuery, window);