summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJuuso Lapinlampi <wub@partyvan.eu>2015-09-28 15:51:17 +0200
committerJuuso Lapinlampi <wub@partyvan.eu>2015-09-28 15:57:22 +0200
commit043967a00987a840dffb3a5845246e5eef5a033b (patch)
treed566514dfda7e9a8487bcb4bb95907bea6666eed /js
parent990f6e493ec298870573b917f083056ae983b8bb (diff)
parent49d58d98f5866bb9ccc9069a16d131486f04bba2 (diff)
Merge branch 'fix-eslint-warnings' of wubthecaptain/pomf
Before this merge, ESLint reported about 114 problems (76 errors, 38 warnings). This merge reduces that to about 67 problems (29 errors, 38 warnings) using Airbnb ES5 config. OK ewhal@
Diffstat (limited to 'js')
-rw-r--r--js/cabinet.js2
-rw-r--r--js/cheesesteak.js79
-rw-r--r--js/pomf.js80
3 files changed, 92 insertions, 69 deletions
diff --git a/js/cabinet.js b/js/cabinet.js
index f6f5f20..2f3a3a6 100644
--- a/js/cabinet.js
+++ b/js/cabinet.js
@@ -37,9 +37,11 @@
} else {
input.trigger(inner);
}
+
if (prevent) {
e.preventDefault();
}
+
if (fn) {
fn(e);
}
diff --git a/js/cheesesteak.js b/js/cheesesteak.js
index a3cf991..ea3dc19 100644
--- a/js/cheesesteak.js
+++ b/js/cheesesteak.js
@@ -22,21 +22,25 @@
/* jshint browser:true, jquery:true */
(function() {
- /* Lightweight EventEmitter implementation */
+ // Lightweight EventEmitter implementation
EventEmitter = function() {};
+
EventEmitter.prototype.on = function(evt, fn) {
this._events = this._events || {};
this._events[evt] = this._events[evt] || [];
this._events[evt].push(fn);
};
+
EventEmitter.prototype.off = function(evt, fn) {
- if (!this.hasOwnProperty('_events') || evt in this._events === false) {
+ if (!this.hasOwnProperty('_events') || evt in this._events === false) {
return;
}
+
this._events[evt].splice(this._events[evt].indexOf(fn), 1);
};
+
EventEmitter.prototype.emit = function(evt) {
- if (!this.hasOwnProperty('_events') || evt in this._events === false) {
+ if (!this.hasOwnProperty('_events') || evt in this._events === false) {
return;
}
@@ -46,7 +50,7 @@
}
};
- /* Copy the stuff from Array to FileList */
+ // Copy the stuff from Array to FileList
FileList.prototype.forEach = Array.prototype.forEach;
FileList.prototype.every = Array.prototype.every;
FileList.prototype.some = Array.prototype.some;
@@ -55,7 +59,7 @@
FileList.prototype.reduce = Array.prototype.reduce;
FileList.prototype.reduceRight = Array.prototype.reduceRight;
- Object.defineProperty(FileList.prototype, "size", {
+ Object.defineProperty(FileList.prototype, 'size', {
get: function getSize() {
return this.reduce(function(prev, curr) {
return prev + curr.size;
@@ -63,29 +67,29 @@
}
});
- /* Utility to convert bytes into human units */
+ // Utility to convert bytes into human units
var humanSize = {
get: function humanSize() {
var units = [
- "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"
+ 'B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'
];
var e = Math.floor(Math.log(this.size) / Math.log(1024));
- return (this.size / Math.pow(1024, e)).toFixed(2) + " " + units[e];
+ return (this.size / Math.pow(1024, e)).toFixed(2) + ' ' + units[e];
}
};
- Object.defineProperty(FileList.prototype, "humanSize", humanSize);
- Object.defineProperty(File.prototype, "humanSize", humanSize);
+ Object.defineProperty(FileList.prototype, 'humanSize', humanSize);
+ Object.defineProperty(File.prototype, 'humanSize', humanSize);
var percentUploaded = {
get: function percentUploaded() {
return this.uploadedSize / this.size;
}
};
- Object.defineProperty(FileList.prototype, "percentUploaded",
+ Object.defineProperty(FileList.prototype, 'percentUploaded',
percentUploaded);
- Object.defineProperty(File.prototype, "percentUploaded", percentUploaded);
+ Object.defineProperty(File.prototype, 'percentUploaded', percentUploaded);
- Object.defineProperty(FileList.prototype, "uploadedSize", {
+ Object.defineProperty(FileList.prototype, 'uploadedSize', {
get: function getUploadedSize() {
return this.reduce(function(prev, curr) {
return prev + (curr.uploadedSize || 0);
@@ -93,8 +97,8 @@
}
});
- /* Object URL stuff */
- Object.defineProperty(File.prototype, "url", {
+ // Object URL stuff
+ Object.defineProperty(File.prototype, 'url', {
get: function getURL() {
return window.URL.createObjectURL(this);
}
@@ -109,10 +113,11 @@
for (var key in overlay) {
if (typeof overlay[key] === 'object') {
out[key] = merge(base[key], overlay[key]);
- } else {
+ } else {
out[key] = overlay[key];
}
}
+
return out;
};
@@ -123,11 +128,12 @@
opts = opts || {};
this.opts = merge({
- 'field': 'files[]',
- 'method': 'POST',
- 'data': {}
+ field: 'files[]',
+ method: 'POST',
+ data: {}
}, opts);
};
+
FileListUploader.prototype = Object.create(EventEmitter.prototype);
FileListUploader.prototype.upload = function(cb) {
if (cb) {
@@ -136,7 +142,7 @@
var opts = this.opts;
var files = this.files;
- var events = this;
+ var _this = this;
var data = new FormData();
files.forEach(function(file) {
@@ -151,14 +157,19 @@
files[i].uploadedSize = 0;
}
});
+
xhr.upload.addEventListener('progress', function(e) {
if (e.lengthComputable) {
size = e.loaded;
- // We know the size of the files, the order they're in, and how
- // much we've uploaded. Based on this data, we can do some magic
- // to figure out which file we're on, and how much we've uploaded
- // of that file.
- // TODO: This math has trouble on later uploads. Leak somewhere
+
+ /**
+ * We know the size of the files, the order they're in, and how
+ * much we've uploaded. Based on this data, we can do some magic
+ * to figure out which file we're on, and how much we've uploaded
+ * of that file.
+ */
+
+ // TODO: This math has trouble on later uploads. Leak somewhere.
for (var i = 0, l = files.length; i < l; i++) {
files[i].uploadedSize = Math.min(size, files[i].size);
size -= files[i].uploadedSize;
@@ -168,23 +179,29 @@
}
}
}
- events.emit('uploadprogress', e, files);
+
+ _this.emit('uploadprogress', e, files);
}, false);
+
xhr.upload.addEventListener('loadstart', function(e) {
- events.emit('uploadstart', e);
+ _this.emit('uploadstart', e);
});
+
xhr.upload.addEventListener('load', function(e) {
- events.emit('uploadcomplete', e);
+ _this.emit('uploadcomplete', e);
});
+
xhr.addEventListener('progress', function(e) {
- events.emit('progress', e);
+ _this.emit('progress', e);
});
+
xhr.addEventListener('load', function(e) {
- events.emit('load', e, xhr.responseText);
+ _this.emit('load', e, xhr.responseText);
});
xhr.send(data);
- /* TODO: Add more event passthroughs, maybe abstract it into a helper? */
+
+ // TODO: Add more event passthroughs, maybe abstract it into a helper?
};
FileList.prototype.upload = function uploadFileList(url, opts) {
diff --git a/js/pomf.js b/js/pomf.js
index bdd3174..7dd44ef 100644
--- a/js/pomf.js
+++ b/js/pomf.js
@@ -23,9 +23,9 @@
/* jshint browser:true, jquery:true */
$(function() {
- var uploadInput = $('#upload-input'),
- uploadBtn = $('#upload-btn'),
- uploadFiles = $('#upload-filelist');
+ var uploadInput = $('#upload-input');
+ var uploadBtn = $('#upload-btn');
+ var uploadFiles = $('#upload-filelist');
var btnContent = '';
@@ -56,12 +56,12 @@ $(function() {
$(this).html(btnContent);
break;
}
- } while (node = node.parentNode);
+ } while (node === node.parentNode);
});
var MAX_SIZE = (function(node) {
var max = node.attr('data-max-size') || '120MiB';
- var num = parseInt(/([0-9,]+).*/.exec(max)[1].replace(',', ''));
+ var num = parseInt(/([0-9,]+).*/.exec(max)[1].replace(',', ''), 10);
var unit = /(?:([KMGTPEZY])(i)?B|([BKMGTPEZY]))/.exec(max) || ['B', '', ''];
var oneUnit = Math.pow(
@@ -73,11 +73,11 @@ $(function() {
})(uploadInput);
var createRow = function(filename, size, extra) {
- var rowItem = $('<li class=file>'),
- rowName = $('<span class=file-name>'),
- rowProg = $('<div class="file-progress progress-outer">'),
- rowSize = $('<span class=file-size>'),
- rowUrl = $('<span class=file-url>');
+ var rowItem = $('<li class=file>');
+ var rowName = $('<span class=file-name>');
+ var rowProg = $('<div class="file-progress progress-outer">');
+ var rowSize = $('<span class=file-size>');
+ var rowUrl = $('<span class=file-url>');
rowItem.addClass(extra || '');
@@ -120,8 +120,8 @@ $(function() {
var eachRow = function(files, fn) {
var hits = {};
files.forEach(function(file) {
- ++hits[file.name] || (hits[file.name] = 0);
- var row = $($('li[data-filename="' +
+ ++hits[file.name];
+ var row = $($('li[data-filename="' +
escape(file.name) + '"]')[hits[file.name] || 0]);
fn.call(row, row, file, files);
});
@@ -131,6 +131,7 @@ $(function() {
eachRow(files, function(row, file, files) {
$('.progress-inner', row).width((file.percentUploaded * 100) + '%');
});
+
$('.progress-inner', totalRow).width((files.percentUploaded * 100) + '%');
});
@@ -139,36 +140,39 @@ $(function() {
totalName.html('Grabbing URLs&hellip;');
});
- up.on('load', function(e, res) {
+ up.on('load', function(e, response) {
switch (e.target.status) {
- case 200:
- var res = JSON.parse(res);
- if (!res.success) {
- uploadFiles.addClass('error');
- totalName.text(UPLOAD_ERR_FAILED);
- break;
- }
- eachRow(res.files, function(row, file, files) {
- var link = $('<a>');
-
- link.attr('href', file.url)
- .attr('target', '_BLANK')
- .text(file.url.replace('http://', '').replace('https://', ''));
-
- $('.file-url', row).append(link);
- });
- uploadFiles.addClass('completed');
- totalName.text('Done!');
- break;
- case 413:
- uploadFiles.addClass('error completed');
- totalName.html(UPLOAD_ERR_MAX_SIZE);
- break;
- default:
- uploadFiles.addClass('error completed');
+ case 200:
+ var res = JSON.parse(response);
+ if (!res.success) {
+ uploadFiles.addClass('error');
totalName.text(UPLOAD_ERR_FAILED);
+ break;
+ }
+
+ eachRow(res.files, function(row, file, files) {
+ var link = $('<a>');
+
+ link.attr('href', file.url)
+ .attr('target', '_BLANK')
+ .text(file.url.replace('http://', '').replace('https://', ''));
+
+ $('.file-url', row).append(link);
+ });
+
+ uploadFiles.addClass('completed');
+ totalName.text('Done!');
+ break;
+ case 413:
+ uploadFiles.addClass('error completed');
+ totalName.html(UPLOAD_ERR_MAX_SIZE);
+ break;
+ default:
+ uploadFiles.addClass('error completed');
+ totalName.text(UPLOAD_ERR_FAILED);
}
});
+
up.upload();
});
});