3 * Run CSSLint in the browser against the servers CSS.
6 /* global jQuery:false */
7 /* global Drupal:false */
8 /* global CSSLint:false */
11 * Have clicks to advagg_validator_css classes run CSSLint clientside.
15 Drupal.behaviors.advagg_validator_css_simple = {
16 attach: function (context, settings) {
17 $('.advagg_validator_css', context).click(function (context) {
19 var results = $(this).siblings('.results');
20 // Clear out the results.
22 // Loop over each filename.
23 $.each($(this).siblings('.filenames'), function () {
24 var filename = $(this).val();
26 advagg_validator_css($, results, filename, settings);
37 * Have clicks to advagg_validator_recursive_css classes run CSSLint clientside.
41 Drupal.behaviors.advagg_validator_css_recursive = {
42 attach: function (context, settings) {
43 $('.advagg_validator_recursive_css', context).click(function (context) {
45 var results = $(this).siblings('.results');
46 // Clear out the results.
48 // Loop over each filename.
49 $.each($(this).parent().find('.filenames'), function () {
50 var filename = $(this).val();
52 advagg_validator_css($, results, filename, settings);
62 * Given the filename, run contents through CSSLint.
66 * @param object results
67 * jQuery object from the results class in the dom.
68 * @param string filename
69 * Name of the file, also includes the relative path.
70 * @param object settings
71 * The drupal settings object.
73 function advagg_validator_css($, results, filename, settings) {
76 // Use the current time to bust the browser cache.
77 var t = new Date().getTime();
79 url: settings.path.baseUrl + filename + '?t=' + t,
82 success: function (data) {
83 // File was downloaded; run through CSSLint.
84 var y = CSSLint.verify(data, settings.csslint.rules);
86 $(results).append('<p><h4>' + filename + '</h4><ul>');
87 for (var i = 0, len = z.length; i < len; i++) {
88 // Output lint errors.
89 var w = z[i].message + ' (line ' + z[i].line + ', col ' + z[i].col + ', rule ' + z[i].rule.id + ')';
90 $(results).append('<li class="' + z[i].type + '">' + w.replace(/ /g, ' ') + '</li>');
92 $(results).append('</ul></p>');
94 error: function (data, textStatus, errorThrown) {
95 // File could not be downloaded; display error.
96 $(results).append('<p><h4>' + filename + '</h4><ul>');
97 $(results).append('<li class="error">' + Drupal.t('Browser unable to read file. @error', {'@error': errorThrown}) + '</li>');
98 $(results).append('</ul></p>');
103 $(results).append(err);