diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 00000000..5dda5d30
--- /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 2d25ccd7..28748469 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 8d5f60d9..5d851092 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 a15519ec..4086600e 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 e9e503c4..c7f7c878 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 e5726dc1..67cf2d99 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 2a18a483..87451846 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
'' +
'' +
'';
- 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 941bc47d..ca5dd7c4 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 c1edab33..0d3f7499 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 abf95cae..4e33b9b2 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 60dc58a0..2048e338 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 0f16592e..fc296a07 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 225de2c0..0a978167 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 c349f36d..60632c49 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 eadca1eb..187cb41d 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 78331c41..19025698 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 17bd50b1..7bc6201a 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 =
'