diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 000000000..5dda5d30d --- /dev/null +++ b/.jshintrc @@ -0,0 +1,31 @@ +{ + "bitwise": true, + "curly": true, + "eqeqeq": true, + "forin": true, + "freeze": true, + "futurehostile": true, + "latedef": true, + "maxdepth": 3, + "noarg": true, + "nocomma": true, + "nonbsp": true, + "nonew": true, + "plusplus": true, + "strict": false, + "supernew": true, + "trailing": true, + "undef": true, + "unused": true, + + "browser": true, + + "globals": { + "jQuery": false, + "marked": false, + "Modernizr": false, + "modulejs": false, + "Prism": false, + "_": false + } +} diff --git a/mkrfile.js b/mkrfile.js index 2d25ccd7e..287484695 100644 --- a/mkrfile.js +++ b/mkrfile.js @@ -70,28 +70,11 @@ module.exports = function (suite) { suite.target('lint', [], 'lint all JavaScript files with JSHint').task(function () { - var jshint = { - // Enforcing Options - bitwise: true, - curly: true, - eqeqeq: true, - forin: true, - latedef: true, - newcap: true, - noempty: true, - plusplus: true, - trailing: true, - undef: true, - - // Environments - browser: true - }; - var globals = { - modulejs: true - }; + var fs = require('fs'); + var jshint = JSON.parse(fs.readFileSync('.jshintrc', 'utf8')); $(src + '/_h5ai/client/js: **/*.js, ! lib/**') - .jshint(jshint, globals); + .jshint(jshint, jshint.globals); }); diff --git a/src/_h5ai/client/js/inc/core/event.js b/src/_h5ai/client/js/inc/core/event.js index 8d5f60d93..5d8510927 100644 --- a/src/_h5ai/client/js/inc/core/event.js +++ b/src/_h5ai/client/js/inc/core/event.js @@ -23,7 +23,7 @@ modulejs.define('core/event', ['_'], function (_) { } } - function pub(topic, data) { + function pub(topic) { var args = slice.call(arguments, 1); diff --git a/src/_h5ai/client/js/inc/ext/contextmenu.js b/src/_h5ai/client/js/inc/ext/contextmenu.js index a15519ec3..4086600eb 100644 --- a/src/_h5ai/client/js/inc/ext/contextmenu.js +++ b/src/_h5ai/client/js/inc/ext/contextmenu.js @@ -81,9 +81,9 @@ modulejs.define('ext/contextmenu', ['_', '$', 'core/settings', 'core/resource'], var overlayWidth = $overlay.outerWidth(true); var overlayHeight = $overlay.outerHeight(true); - var panelOffset = $panel.offset(); - var panelLeft = panelOffset.left; - var panelTop = panelOffset.top; + // var panelOffset = $panel.offset(); + // var panelLeft = panelOffset.left; + // var panelTop = panelOffset.top; var panelWidth = $panel.outerWidth(true); var panelHeight = $panel.outerHeight(true); diff --git a/src/_h5ai/client/js/inc/ext/custom.js b/src/_h5ai/client/js/inc/ext/custom.js index e9e503c4d..c7f7c8784 100644 --- a/src/_h5ai/client/js/inc/ext/custom.js +++ b/src/_h5ai/client/js/inc/ext/custom.js @@ -1,4 +1,4 @@ -modulejs.define('ext/custom', ['_', '$', 'marked', 'core/settings', 'core/server', 'core/event', 'core/resource'], function (_, $, marked, allsettings, server, event, resource) { +modulejs.define('ext/custom', ['_', '$', 'marked', 'core/settings', 'core/server', 'core/event'], function (_, $, marked, allsettings, server, event) { var settings = _.extend({ enabled: false diff --git a/src/_h5ai/client/js/inc/ext/download.js b/src/_h5ai/client/js/inc/ext/download.js index e5726dc19..67cf2d993 100644 --- a/src/_h5ai/client/js/inc/ext/download.js +++ b/src/_h5ai/client/js/inc/ext/download.js @@ -25,7 +25,7 @@ modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'co } } - function onClick(event) { + function onClick() { var type = settings.type; var name = settings.packageName; diff --git a/src/_h5ai/client/js/inc/ext/info.js b/src/_h5ai/client/js/inc/ext/info.js index 2a18a4834..87451846b 100644 --- a/src/_h5ai/client/js/inc/ext/info.js +++ b/src/_h5ai/client/js/inc/ext/info.js @@ -27,7 +27,6 @@ modulejs.define('ext/info', ['_', '$', 'modernizr', 'core/settings', 'core/resou 'view-info' + '' + ''; - var sepTemplate = ''; var storekey = 'ext/info'; var $img; var $label; @@ -108,7 +107,7 @@ modulejs.define('ext/info', ['_', '$', 'modernizr', 'core/settings', 'core/resou update(item); } - function onMouseleave(item) { + function onMouseleave() { update(currentFolder); } diff --git a/src/_h5ai/client/js/inc/ext/preview-aud.js b/src/_h5ai/client/js/inc/ext/preview-aud.js index 941bc47d4..ca5dd7c46 100644 --- a/src/_h5ai/client/js/inc/ext/preview-aud.js +++ b/src/_h5ai/client/js/inc/ext/preview-aud.js @@ -103,7 +103,7 @@ modulejs.define('ext/preview-audio', ['_', '$', 'core/settings', 'core/event', ' _.each(item.content, initItem); } - function onLocationRefreshed(item, added, removed) { + function onLocationRefreshed(item, added) { _.each(added, initItem); } diff --git a/src/_h5ai/client/js/inc/ext/preview-img.js b/src/_h5ai/client/js/inc/ext/preview-img.js index c1edab332..0d3f7499f 100644 --- a/src/_h5ai/client/js/inc/ext/preview-img.js +++ b/src/_h5ai/client/js/inc/ext/preview-img.js @@ -5,7 +5,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/event', 'co size: null, types: [] }, allsettings['preview-img']); - var templateLoading = ''; var spinnerThreshold = 200; var spinnerTimeoutId; var currentItems; @@ -139,7 +138,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/event', 'co _.each(item.content, initItem); } - function onLocationRefreshed(item, added, removed) { + function onLocationRefreshed(item, added) { _.each(added, initItem); } diff --git a/src/_h5ai/client/js/inc/ext/preview-txt.js b/src/_h5ai/client/js/inc/ext/preview-txt.js index abf95cae8..4e33b9b21 100644 --- a/src/_h5ai/client/js/inc/ext/preview-txt.js +++ b/src/_h5ai/client/js/inc/ext/preview-txt.js @@ -19,7 +19,7 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/settings' callback(content); // setTimeout(function () { callback(content); }, 1000); // for testing }) - .fail(function (jqXHR, textStatus, errorThrown) { + .fail(function (jqXHR, textStatus) { callback('[ajax error] ' + textStatus); }); @@ -119,7 +119,7 @@ modulejs.define('ext/preview-txt', ['_', '$', 'marked', 'prism', 'core/settings' _.each(item.content, initItem); } - function onLocationRefreshed(item, added, removed) { + function onLocationRefreshed(item, added) { _.each(added, initItem); } diff --git a/src/_h5ai/client/js/inc/ext/preview-vid.js b/src/_h5ai/client/js/inc/ext/preview-vid.js index 60dc58a05..2048e3383 100644 --- a/src/_h5ai/client/js/inc/ext/preview-vid.js +++ b/src/_h5ai/client/js/inc/ext/preview-vid.js @@ -104,7 +104,7 @@ modulejs.define('ext/preview-vid', ['_', '$', 'core/settings', 'core/event', 'ex _.each(item.content, initItem); } - function onLocationRefreshed(item, added, removed) { + function onLocationRefreshed(item, added) { _.each(added, initItem); } diff --git a/src/_h5ai/client/js/inc/ext/preview.js b/src/_h5ai/client/js/inc/ext/preview.js index 0f16592e0..fc296a070 100644 --- a/src/_h5ai/client/js/inc/ext/preview.js +++ b/src/_h5ai/client/js/inc/ext/preview.js @@ -22,8 +22,6 @@ modulejs.define('ext/preview', ['_', '$', 'core/settings', 'core/resource', 'cor '' + ''; var storekey = 'ext/preview'; - var currentEntries = []; - var currentIdx = 0; var isFullscreen = store.get(storekey) || false; var userAliveTimeoutId = null; var onIndexChange = null; diff --git a/src/_h5ai/client/js/inc/ext/select.js b/src/_h5ai/client/js/inc/ext/select.js index 225de2c03..0a978167e 100644 --- a/src/_h5ai/client/js/inc/ext/select.js +++ b/src/_h5ai/client/js/inc/ext/select.js @@ -207,7 +207,7 @@ modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/resource', 'core ev.stopImmediatePropagation(); ev.preventDefault(); }) - .on('click', function (ev) { + .on('click', function () { $('#items .item').removeClass('selected'); publish(); diff --git a/src/_h5ai/client/js/inc/ext/sort.js b/src/_h5ai/client/js/inc/ext/sort.js index c349f36d8..60632c49f 100644 --- a/src/_h5ai/client/js/inc/ext/sort.js +++ b/src/_h5ai/client/js/inc/ext/sort.js @@ -110,7 +110,7 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e } } - function onContentChanged(item) { + function onContentChanged() { var order = store.get(storekey); var column = order && order.column || settings.column; diff --git a/src/_h5ai/client/js/inc/ext/thumbnails.js b/src/_h5ai/client/js/inc/ext/thumbnails.js index eadca1ebd..187cb41da 100644 --- a/src/_h5ai/client/js/inc/ext/thumbnails.js +++ b/src/_h5ai/client/js/inc/ext/thumbnails.js @@ -1,4 +1,4 @@ -modulejs.define('ext/thumbnails', ['_', 'core/settings', 'core/event', 'core/server', 'core/resource'], function (_, allsettings, event, server, resource) { +modulejs.define('ext/thumbnails', ['_', 'core/settings', 'core/event', 'core/server'], function (_, allsettings, event, server) { var settings = _.extend({ enabled: false, @@ -71,7 +71,7 @@ modulejs.define('ext/thumbnails', ['_', 'core/settings', 'core/event', 'core/ser }, settings.delay); } - function onLocationRefreshed(item, added, removed) { + function onLocationRefreshed(item, added) { _.each(added, checkItem); } diff --git a/src/_h5ai/client/js/inc/ext/tree.js b/src/_h5ai/client/js/inc/ext/tree.js index 78331c414..190256986 100644 --- a/src/_h5ai/client/js/inc/ext/tree.js +++ b/src/_h5ai/client/js/inc/ext/tree.js @@ -109,8 +109,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/s function createOnIndicatorClick() { - var $tree = $('#tree'); - function slide(item, $indicator, $content, down) { item.isContentVisible = down; diff --git a/src/_h5ai/client/js/inc/view/ensure.js b/src/_h5ai/client/js/inc/view/ensure.js index 17bd50b12..7bc6201a0 100644 --- a/src/_h5ai/client/js/inc/view/ensure.js +++ b/src/_h5ai/client/js/inc/view/ensure.js @@ -1,4 +1,4 @@ -modulejs.define('view/ensure', ['$', 'config', 'core/event'], function ($, config, event) { +modulejs.define('view/ensure', ['$', 'config'], function ($, config) { var templateTopbar = '
' + diff --git a/src/_h5ai/client/js/inc/view/items.js b/src/_h5ai/client/js/inc/view/items.js index cae282370..e63e5a0b3 100644 --- a/src/_h5ai/client/js/inc/view/items.js +++ b/src/_h5ai/client/js/inc/view/items.js @@ -16,7 +16,6 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core '' + '' + ''; - var hintTemplate = ''; var contentTemplate = '
' + '
' + @@ -149,7 +148,7 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core var $content = $(contentTemplate); var $view = $content.find('#view'); var $items = $view.find('#items'); - var $emtpy = $view.find('.empty').hide(); + $view.find('.empty').hide(); format.setDefaultMetric(settings.binaryPrefix); diff --git a/src/_h5ai/client/js/scripts.js b/src/_h5ai/client/js/scripts.js index 8244c6528..de2b4924b 100644 --- a/src/_h5ai/client/js/scripts.js +++ b/src/_h5ai/client/js/scripts.js @@ -9,12 +9,11 @@ (function () { 'use strict'; - /*global jQuery, marked, Modernizr, Prism, _ */ modulejs.define('$', function () { return jQuery; }); + modulejs.define('_', function () { return _; }); modulejs.define('marked', function () { return marked; }); modulejs.define('modernizr', function () { return Modernizr; }); modulejs.define('prism', function () { return Prism; }); - modulejs.define('_', function () { return _; }); // @include "inc/**/*.js"