From 664a9ec14abc6ec131ea48be8cd86b335b9fd807 Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Wed, 19 Sep 2018 14:11:35 -0400 Subject: [PATCH] JS style updates --- public/js/src/anime.js | 6 ++--- public/js/src/base/AnimeClient.js | 44 ++++++++++++++++++------------- public/js/src/base/events.js | 4 +-- public/js/src/manga.js | 4 +-- 4 files changed, 32 insertions(+), 26 deletions(-) diff --git a/public/js/src/anime.js b/public/js/src/anime.js index c15f2b93..c7118954 100644 --- a/public/js/src/anime.js +++ b/public/js/src/anime.js @@ -18,8 +18,8 @@ const search = (query) => { }; if (_.hasElement('.anime #search')) { - _.on('#search', 'keyup', _.throttle(250, function () { - const query = encodeURIComponent(this.value); + _.on('#search', 'keyup', _.throttle(250, (e) => { + const query = encodeURIComponent(e.target.value); if (query === '') { return; } @@ -82,7 +82,7 @@ _.on('body.anime.list', 'click', '.plus_one', (e) => { _.$('.completed_number', parentSel)[ 0 ].textContent = ++watchedCount; _.scrollToTop(); }, - error: (xhr, errorType, error) => { + error: () => { _.hide(_.$('#loading-shadow')[ 0 ]); _.showMessage('error', `Failed to update ${title}. `); _.scrollToTop(); diff --git a/public/js/src/base/AnimeClient.js b/public/js/src/base/AnimeClient.js index 07da0a5b..9d9fd3bc 100644 --- a/public/js/src/base/AnimeClient.js +++ b/public/js/src/base/AnimeClient.js @@ -45,7 +45,7 @@ export const AnimeClient = { * @param {string} selector * @returns {boolean} */ - hasElement(selector) { + hasElement (selector) { return AnimeClient.$(selector).length > 0; }, /** @@ -53,7 +53,7 @@ export const AnimeClient = { * * @return {void} */ - scrollToTop() { + scrollToTop () { window.scroll(0,0); }, /** @@ -62,7 +62,7 @@ export const AnimeClient = { * @param {string|Element} sel - the selector of the element to hide * @return {void} */ - hide(sel) { + hide (sel) { sel.setAttribute('hidden', 'hidden'); }, /** @@ -71,7 +71,7 @@ export const AnimeClient = { * @param {string|Element} sel - the selector of the element to hide * @return {void} */ - show(sel) { + show (sel) { sel.removeAttribute('hidden'); }, /** @@ -81,7 +81,7 @@ export const AnimeClient = { * @param {string} message - the message itself * @return {void} */ - showMessage(type, message) { + showMessage (type, message) { let template = `
@@ -103,7 +103,7 @@ export const AnimeClient = { * @param {string} parentSelector - selector for the parent element * @return {HTMLElement|null} - the parent element */ - closestParent(current, parentSelector) { + closestParent (current, parentSelector) { if (Element.prototype.closest !== undefined) { return current.closest(parentSelector); } @@ -124,7 +124,7 @@ export const AnimeClient = { * @param {string} path - url path * @return {string} - full url */ - url(path) { + url (path) { let uri = `//${document.location.host}`; uri += (path.charAt(0) === '/') ? path : `/${path}`; @@ -140,7 +140,7 @@ export const AnimeClient = { * @param {Object} [scope] - the 'this' object for the function * @return {Function} */ - throttle(interval, fn, scope) { + throttle (interval, fn, scope) { let wait = false; return function (...args) { const context = scope || this; @@ -193,8 +193,8 @@ function delegateEvent(sel, target, event, listener) { * @param {function} [listener] - event listener callback * @return {void} */ -AnimeClient.on = function (sel, event, target, listener) { - if (arguments.length === 3) { +AnimeClient.on = (sel, event, target, listener) => { + if (listener === undefined) { listener = target; AnimeClient.$(sel).forEach((el) => { addEvent(el, event, listener); @@ -246,15 +246,21 @@ function ajaxSerialize(data) { * @param {Object} config - the configuration object * @return {void} */ -AnimeClient.ajax = function(url, config) { +AnimeClient.ajax = (url, config) => { // Set some sane defaults - config = config || {}; - config.data = config.data || {}; - config.type = config.type || 'GET'; - config.dataType = config.dataType || ''; - config.success = config.success || AnimeClient.noop; - config.mimeType = config.mimeType || 'application/x-www-form-urlencoded'; - config.error = config.error || AnimeClient.noop; + const defaultConfig = { + data: {}, + type: 'GET', + dataType: '', + success: AnimeClient.noop, + mimeType: 'application/x-www-form-urlencoded', + error: AnimeClient.noop + } + + config = { + ...defaultConfig, + ...config, + } let request = new XMLHttpRequest(); let method = String(config.type).toUpperCase(); @@ -312,7 +318,7 @@ AnimeClient.ajax = function(url, config) { * @param {object|function} data * @param {function} [callback] */ -AnimeClient.get = function(url, data, callback = null) { +AnimeClient.get = (url, data, callback = null) => { if (callback === null) { callback = data; data = {}; diff --git a/public/js/src/base/events.js b/public/js/src/base/events.js index 71087841..e5fbf4bc 100644 --- a/public/js/src/base/events.js +++ b/public/js/src/base/events.js @@ -3,8 +3,8 @@ import _ from './AnimeClient.js'; * Event handlers */ // Close event for messages -_.on('header', 'click', '.message', function () { - _.hide(this); +_.on('header', 'click', '.message', (e) => { + _.hide(e.target); }); // Confirm deleting of list or library items diff --git a/public/js/src/manga.js b/public/js/src/manga.js index d881ef9c..e61232be 100644 --- a/public/js/src/manga.js +++ b/public/js/src/manga.js @@ -11,8 +11,8 @@ const search = (query) => { }; if (_.hasElement('.manga #search')) { - _.on('#search', 'keyup', _.throttle(250, function (e) { - let query = encodeURIComponent(this.value); + _.on('#search', 'keyup', _.throttle(250, (e) => { + let query = encodeURIComponent(e.target.value); if (query === '') { return; }