From 64951351248a800c55009360697932406e3aab01 Mon Sep 17 00:00:00 2001 From: codl Date: Tue, 29 Aug 2017 18:38:54 +0200 Subject: [PATCH] eslint --- .eslintrc.yml | 17 ++++++++++++++++ assets/settings.js | 49 +++++++++++++++++++++++----------------------- 2 files changed, 41 insertions(+), 25 deletions(-) create mode 100644 .eslintrc.yml diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..d1a7cdf --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,17 @@ +env: + browser: true + es6: true +extends: 'eslint:recommended' +rules: + indent: + - error + - 4 + linebreak-style: + - error + - unix + quotes: + - error + - single + semi: + - error + - always diff --git a/assets/settings.js b/assets/settings.js index 95fd115..cff6fab 100644 --- a/assets/settings.js +++ b/assets/settings.js @@ -7,14 +7,14 @@ let settings_section = document.querySelector('#settings-section'); let form = document.forms.settings; - let backoff_level = 0 + let backoff_level = 0; function hide_status(){ status_display.classList.remove('error', 'success', 'saving'); status_display.classList.add('hidden'); status_display.innerHTML=''; } - function show_error(e){ + function show_error(){ hide_status(); status_display.textContent='Could not save. Retrying...'; status_display.classList.add('error'); @@ -26,6 +26,9 @@ status_display.classList.add('success'); status_display.classList.remove('hidden'); } + function show_still_saving(){ + status_display.textContent='Still saving...'; + } function show_saving(){ hide_status(); status_display.textContent='Saving...'; @@ -33,30 +36,26 @@ status_display.classList.remove('hidden'); status_timeout = setTimeout(show_still_saving, 5000); } - function show_still_saving(){ - status_display.textContent='Still saving...'; - } function save(){ hide_status(); clearTimeout(status_timeout); status_timeout = setTimeout(show_saving, 70); - promise = send_settings(get_all_inputs()) - .then(data => { + let promise = send_settings(get_all_inputs()) + .then(() => { show_success(); clearTimeout(status_timeout); status_timeout = setTimeout(hide_status, 3000); backoff_level = 0; }); - promise.catch(e => { - console.error('Fetch rejected:', e); - show_error(); - clearTimeout(status_timeout); - status_timeout = setTimeout(save, Math.pow(2, backoff_level)*1000); - backoff_level += 1; - backoff_level = Math.min(backoff_level, 5); - }); + promise.catch(() => { + show_error(); + clearTimeout(status_timeout); + status_timeout = setTimeout(save, Math.pow(2, backoff_level)*1000); + backoff_level += 1; + backoff_level = Math.min(backoff_level, 5); + }); promise.then(fetch_viewer).then(update_viewer); // remove server-rendered banner @@ -67,13 +66,13 @@ } function get_all_inputs(){ - let o = Object() - for(input of form.elements){ + let o = Object(); + for(let input of form.elements){ if(input.type != 'radio' || input.checked){ o[input.name] = input.value; } } - return o + return o; } function send_settings(body){ @@ -85,15 +84,15 @@ }, body: JSON.stringify(body) }) - .then(resp => { if(!resp.ok){ return Promise.reject(resp) }; return resp; }) + .then(resp => { if(!resp.ok){ return Promise.reject(resp); } return resp; }) .then(resp => resp.json()) .then(data => { - if(data.status == 'error'){ return Promise.reject(data) } - return data + if(data.status == 'error'){ return Promise.reject(data); } + return data; }); } - for(input of form.elements){ + for(let input of form.elements){ input.addEventListener('change', save); } @@ -116,14 +115,14 @@ return fetch('/api/viewer', { credentials: 'same-origin', }) - .then(resp => { if(!resp.ok){ return Promise.reject(resp) }; return resp; }) + .then(resp => { if(!resp.ok){ return Promise.reject(resp); } return resp; }) .then(resp => resp.json()); } - let last_viewer = {} + let last_viewer = {}; function update_viewer(viewer){ if(JSON.stringify(last_viewer) == JSON.stringify(viewer)){ - return + return; } document.querySelector('#post-count').textContent = viewer.post_count;