Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / advagg / advagg_validator / js / jshint_form.js
1 /**
2  * @file
3  * Run JSHINT in the browser against the servers JS.
4  */
5
6 /* global jQuery:false */
7 /* global Drupal:false */
8 /* global JSHINT:false */
9
10 /**
11  * Have clicks to advagg_validator_js classes run JSHINT clientside.
12  */
13 (function ($) {
14   'use strict';
15   Drupal.behaviors.advagg_validator_js_simple = {
16     attach: function (context, settings) {
17       $('.advagg_validator_js', context).click(function (context) {
18         // Get Results Div.
19         var results = $(this).siblings('.results');
20         // Clear out the results.
21         $(results).html('');
22         // Loop over each filename.
23         $.each($(this).siblings('.filenames'), function () {
24           var filename = $(this).val();
25           if (filename) {
26             try {
27               var t = new Date().getTime();
28               var x = jQuery.ajax({
29                 url: settings.path.baseUrl + filename + '?t=' + t,
30                 dataType: 'text',
31                 async: false
32               });
33               if (!JSHINT(x.responseText, drupalSettings.jshint, drupalSettings.jshint.predef)) {
34                 $(results).append('<p><h4>' + filename + '</h4><ul>');
35                 for (var i = 0; i < JSHINT.errors.length; i++) {
36                   var ignore = (drupalSettings.jshint && drupalSettings.jshint.ignore) ? drupalSettings.jshint.ignore.split(',') : [];
37                   if (ignore.indexOf(JSHINT.errors[i].code) === -1) {
38                     var w = JSHINT.errors[i].reason + ' (line ' + JSHINT.errors[i].line + ', col ' + JSHINT.errors[i].character + ', rule ' + JSHINT.errors[i].code + ')';
39                     $(results).append('<li class="' + JSHINT.errors[i].id.replace(/[()]/g, '') + '">' + w.replace(/ /g, '&nbsp;') + '</li>');
40                   }
41                 }
42                 $(results).append('</ul></p>');
43               }
44             }
45             catch (err) {
46               $(results).append(err);
47             }
48           }
49         });
50
51         return false;
52       });
53     }
54   };
55 }(jQuery));
56
57 /**
58  * Have clicks to advagg_validator_recursive_js classes run JSHINT clientside.
59  */
60 (function ($) {
61   'use strict';
62   Drupal.behaviors.advagg_validator_js_recursive = {
63     attach: function (context, settings) {
64       $('.advagg_validator_recursive_js', context).click(function (context) {
65         // Get Results Div.
66         var results = $(this).siblings('.results');
67         // Clear out the results.
68         $(results).html('');
69         // Loop over each filename.
70         $.each($(this).parent().find('.filenames'), function () {
71           var filename = $(this).val();
72           if (filename) {
73             try {
74               var t = new Date().getTime();
75               var x = jQuery.ajax({
76                 url: settings.path.baseUrl + filename + '?t=' + t,
77                 dataType: 'text',
78                 async: false
79               });
80               if (!JSHINT(x.responseText, drupalSettings.jshint, drupalSettings.jshint.predef)) {
81                 $(results).append('<p><h4>' + filename + '</h4><ul>');
82                 for (var i = 0; i < JSHINT.errors.length; i++) {
83                   var ignore = (drupalSettings.jshint && drupalSettings.jshint.ignore) ? drupalSettings.jshint.ignore.split(',') : [];
84                   if (ignore.indexOf(JSHINT.errors[i].code) === -1) {
85                     var w = JSHINT.errors[i].reason + ' (line ' + JSHINT.errors[i].line + ', col ' + JSHINT.errors[i].character + ', rule ' + JSHINT.errors[i].code + ')';
86                     $(results).append('<li class="' + JSHINT.errors[i].id.replace(/[()]/g, '') + '">' + w.replace(/ /g, '&nbsp;') + '</li>');
87                   }
88                 }
89                 $(results).append('</ul></p>');
90               }
91             }
92             catch (err) {
93               $(results).append(err);
94             }
95           }
96         });
97
98         return false;
99       });
100     }
101   };
102 }(jQuery));