From c5ed2eb39bdd8b08d6ba40dc8a68774d910e668c Mon Sep 17 00:00:00 2001 From: Glomberg Date: Fri, 25 Oct 2024 13:21:48 +0300 Subject: [PATCH] Fix. Code. ES-Lint notices fixed. --- js/src/spbc-settings_tab--fswatcher.js | 240 ++++++++++++++----------- 1 file changed, 132 insertions(+), 108 deletions(-) diff --git a/js/src/spbc-settings_tab--fswatcher.js b/js/src/spbc-settings_tab--fswatcher.js index edcca1e4..5445e745 100644 --- a/js/src/spbc-settings_tab--fswatcher.js +++ b/js/src/spbc-settings_tab--fswatcher.js @@ -7,10 +7,10 @@ const secondFSWSelector = document.getElementById('fswatcher__second_date'); // FSW table body const fsWatcherTableBody = document.getElementById('spbc-table-fs_watcher-comparison'); // available types of events -const availableFSWDataSetNames = ['added','changed','deleted']; +const availableFSWDataSetNames = ['added', 'changed', 'deleted']; -if( document.readyState !== 'loading' ) { - FSWOnload(); +if ( document.readyState !== 'loading' ) { + FSWOnload(); // eslint-disable-line new-cap } else { document.addEventListener('DOMContentLoaded', FSWOnload); } @@ -21,17 +21,18 @@ document.getElementById('fswatcher__create_snapshot').addEventListener('click', firstFSWSelector.addEventListener('change', filterFSWSecondSelector); secondFSWSelector.addEventListener('change', filterFSWFirstSelector); - +// eslint-disable-next-line require-jsdoc function FSWOnload() { document.querySelector('#fswatcher__first_date').selectedIndex = 0; let secondDate = document.querySelector('#fswatcher__second_date'); secondDate.selectedIndex = secondDate.options.length - 1; - FSWCompare(new Event({})); + FSWCompare(new Event({})); // eslint-disable-line new-cap } /** * Main handler function. Run this on the button click. * @param {Event} e click event. + * @return {void|false} */ function FSWCompare(e) { e.preventDefault(); @@ -40,54 +41,59 @@ function FSWCompare(e) { document.querySelector('#fsw_preloader_compare').style.display = 'inline'; } - if ( typeof document.getElementById('fswatcher__first_date') === 'undefined' - || typeof document.getElementById('fswatcher__second_date') === 'undefined' ) { + if ( typeof document.getElementById('fswatcher__first_date') === 'undefined' || + typeof document.getElementById('fswatcher__second_date') === 'undefined' ) { return false; } - let first_date = document.getElementById('fswatcher__first_date').value; - let second_date = document.getElementById('fswatcher__second_date').value; + let firstDate = document.getElementById('fswatcher__first_date').value; + let secondDate = document.getElementById('fswatcher__second_date').value; let data = { action: 'spbct_fswatcher_compare', - fswatcher__first_date: first_date, - fswatcher__second_date: second_date + fswatcher__first_date: firstDate, + fswatcher__second_date: secondDate, }; let params = { - callback: function (response) { + callback: function(response) { let responseDataObj = {}; noFSWChangesDetected = true; if (typeof response === 'object') { responseDataObj = response; } else if (typeof response === 'string') { - responseDataObj = FSWDecodeJSON(response) + responseDataObj = FSWDecodeJSON(response); // eslint-disable-line new-cap if (responseDataObj.hasOwnProperty('error')) { alert(fswatcherTranslations['fs_err_parse_json']); - console.log('File System watcher JSON parse error: ' + responseDataObj.error) + console.log('File System watcher JSON parse error: ' + responseDataObj.error); return; } } - const validate_result = validateFSWResponse(responseDataObj) - if (true === validate_result) { - renderFSWatcherTableContent(responseDataObj) + const validateResult = validateFSWResponse(responseDataObj); + if (true === validateResult) { + renderFSWatcherTableContent(responseDataObj); if (noFSWChangesDetected) { - renderFSWTableRow( '', 'no_changes', '') + renderFSWTableRow( '', 'no_changes', ''); } } else { - alert(validate_result + ' ' + fswatcherTranslations['fs_err_valid_result'] + ' support@cleantalk.org'); - console.log('File System watcher response validating error: ' + validate_result) + alert(validateResult + ' ' + fswatcherTranslations['fs_err_valid_result'] + ' support@cleantalk.org'); + console.log('File System watcher response validating error: ' + validateResult); } resetFSWSelectors(); toggleFSWSelectorsInfo(true); document.querySelector('#fsw_preloader_compare').style.display = 'none'; - } + }, }; spbcSendAJAXRequest(data, params); } +/** + * Create snapshot handler. + * @param {Event} e + * @constructor + */ function FSWCreate(e) { e.preventDefault(); @@ -96,42 +102,42 @@ function FSWCreate(e) { } let data = { - action: 'spbct_fswatcher_create_snapshot' + action: 'spbct_fswatcher_create_snapshot', }; let params = { - callback: function (response) { - let responseDataObj = {}; + callback: function(response) { if (typeof response === 'string') { - responseDataObj = FSWDecodeJSON(response); + FSWDecodeJSON(response); // eslint-disable-line new-cap } document.querySelector('#fsw_preloader_create').style.display = 'none'; }, button: e.target, - timeout: 30000 + timeout: 30000, }; spbcSendAJAXRequest(data, params); } /** - * Show file view. - * @param {Node} el. + * View file content in modal window. + * @param {HTMLElement} el + * @constructor */ -function FSWViewFile(el) { - let wp_wrap = jQuery('#wpwrap') - let dialog_window = jQuery('#spbc_dialog') +function FSWViewFile(el) { // eslint-disable-line no-unused-vars + let wpWrap = jQuery('#wpwrap'); + let dialogWindow = jQuery('#spbc_dialog'); - dialog_window.dialog({ - modal:true, + dialogWindow.dialog({ + modal: true, title: fswatcherTranslations['fs_modal'] + ' ' + el.dataset.path, - position: { my: "center top", at: "center top+100px" , of: window }, - width: +(wp_wrap.width() / 100 * 90), - show: { effect: "blind", duration: 500 }, + position: {my: 'center top', at: 'center top+100px', of: window}, + width: +(wpWrap.width() / 100 * 90), + show: {effect: 'blind', duration: 500}, draggable: false, resizable: false, - closeText: "X", - classes: {"ui-dialog": 'spbc---top'}, + closeText: 'X', + classes: {'ui-dialog': 'spbc---top'}, open: function(event, ui) { event.target.style.overflow = 'auto'; jQuery('#spbc_dialog').height((document.documentElement.clientHeight) / 100 * 25); @@ -142,7 +148,7 @@ function FSWViewFile(el) { }, }); - dialog_window.append('Wait for downloading'); let spinner = jQuery('#spbc_file_view_preloader'); - let size_multiplier = (wp_wrap.width() * 0.0004); + let sizeMultiplier = (wpWrap.width() * 0.0004); - spinner.height(128 * size_multiplier); - spinner.width(128 * size_multiplier); - spinner.css({left: dialog_window.width()/2 - (128 * size_multiplier / 2)}); - spinner.css({top: dialog_window.height()/2 - (128 * size_multiplier / 2)}); + spinner.height(128 * sizeMultiplier); + spinner.width(128 * sizeMultiplier); + spinner.css({left: dialogWindow.width()/2 - (128 * sizeMultiplier / 2)}); + spinner.css({top: dialogWindow.height()/2 - (128 * sizeMultiplier / 2)}); - const firstSelectorId = jQuery('#fswatcher__first_date').val() - const secondSelectorId = jQuery('#fswatcher__second_date').val() + const firstSelectorId = jQuery('#fswatcher__first_date').val(); + const secondSelectorId = jQuery('#fswatcher__second_date').val(); let data = { action: 'spbct_fswatcher_view_file', @@ -171,29 +177,34 @@ function FSWViewFile(el) { let callback = function(response) { let content = ''; if (typeof response.error !== 'undefined') { - content = response.error + content = response.error; } else if (typeof response.data !== 'undefined') { content = response.data; } else { - content = 'Unknown error on reading file. Data is empty.' + content = 'Unknown error on reading file. Data is empty.'; } content = content.split('\n'); - let dialog_window = jQuery('#spbc_dialog'); - dialog_window.empty(); - jQuery('#spbc_file_view_preloader').css({display:'none'}) - let row_template = '
%s

%s


'; + let dialogWindow = jQuery('#spbc_dialog'); + dialogWindow.empty(); + jQuery('#spbc_file_view_preloader').css({display: 'none'}); + let rowTemplate = '
' + + '%s' + + '

%s

' + + '
<' + + '/div>'; + // eslint-disable-next-line guard-for-in for (let row in content) { - dialog_window.append(row_template.printf(+row + 1, content[row])); + dialogWindow.append(rowTemplate.printf(+row + 1, content[row])); } - let content_height = Object.keys(content).length * 19 < 76 ? 76 : Object.keys(content).length * 19, - visible_height = (document.documentElement.clientHeight) / 100 * 75, - overflow = content_height < visible_height ? 'hidden' : 'scroll', - height = overflow === 'scroll' ? visible_height : content_height; + let contentHeight = Object.keys(content).length * 19 < 76 ? 76 : Object.keys(content).length * 19; + let visibleHeight = (document.documentElement.clientHeight) / 100 * 75; + let overflow = contentHeight < visibleHeight ? 'hidden' : 'scroll'; + let height = overflow === 'scroll' ? visibleHeight : contentHeight; - dialog_window.css({ + dialogWindow.css({ height: height, - overflow: overflow + overflow: overflow, }); }; @@ -203,10 +214,11 @@ function FSWViewFile(el) { /** * Try to decode JSON string from site response. * @param {string} response + * @return {obj} Json parsed obj or error obj. */ function FSWDecodeJSON(response) { try { - return JSON.parse(response) + return JSON.parse(response); } catch (e) { return {'error': e}; } @@ -219,30 +231,34 @@ function FSWDecodeJSON(response) { function renderFSWatcherTableContent(responseDataObj) { fsWatcherTableBody.innerHTML = ''; for (const dataSetName of availableFSWDataSetNames) { - if (handleFSWDataObject(responseDataObj, dataSetName)) - { + if (handleFSWDataObject(responseDataObj, dataSetName)) { noFSWChangesDetected = false; } } } +/** + * Validate response object from site. + * @param {obj} responseDataObj + * @return {*|boolean} + */ function validateFSWResponse(responseDataObj) { if ( !responseDataObj || typeof responseDataObj !== 'object' ) { - return fswatcherTranslations['fs_err_resp_obj'] + return fswatcherTranslations['fs_err_resp_obj']; } if (typeof responseDataObj.error !== 'undefined') { - return responseDataObj.error + return responseDataObj.error; } for (const dataSetName of availableFSWDataSetNames) { if ( !responseDataObj.hasOwnProperty(dataSetName) ) { - return fswatcherTranslations['fs_err_property'] + return fswatcherTranslations['fs_err_property']; } } @@ -251,14 +267,15 @@ function validateFSWResponse(responseDataObj) { /** * @param {object} responseDataObj - * @param {string|number} event_type + * @param {string|number} eventType + * @return {boolean} */ -function handleFSWDataObject(responseDataObj, event_type) { - const events_array = responseDataObj[event_type] - if (events_array.length > 0) { - for (let i = 0; i < events_array.length; i++) { - const row = convertFSWEventToRow(events_array[i], event_type); - renderFSWTableRow(row.path, row.event_type, row.date) +function handleFSWDataObject(responseDataObj, eventType) { + const eventsArray = responseDataObj[eventType]; + if (eventsArray.length > 0) { + for (let i = 0; i < eventsArray.length; i++) { + const row = convertFSWEventToRow(eventsArray[i], eventType); + renderFSWTableRow(row.path, row.event_type, row.date); } } else { return false; @@ -269,28 +286,39 @@ function handleFSWDataObject(responseDataObj, event_type) { /** * Convert a row of site response to the formatted data. * @param {object} event contains the date and the file path - * @param {string} event_type contains event type + * @param {string} eventType contains event type + * @return {{path: string, event_type: string, date: string}} row of the table */ -function convertFSWEventToRow(event, event_type) { +function convertFSWEventToRow(event, eventType) { let row = { 'path': 'unknown', - 'event_type': event_type.toUpperCase(), - 'date': 'unknown' - } + 'event_type': eventType.toUpperCase(), + 'date': 'unknown', + }; if (event.length === 2) { if (typeof event[0] === 'string') { row.path = event[0]; if (row.event_type !== 'DELETED') { - row.path += '
View'; + row.path += '
View'; // eslint-disable-line max-len } } if (typeof event[1] === 'string') { let d = new Date(Number(event[1]) * 1000); - shortMonthName = new Intl.DateTimeFormat("en-US", { month: "short" }).format; + shortMonthName = new Intl.DateTimeFormat('en-US', {month: 'short'}).format; let minutes = String(d.getMinutes()).padStart(2, '0'); let seconds = String(d.getSeconds()).padStart(2, '0'); - row.date = shortMonthName(d) + ' ' + d.getDate() + ' ' + d.getFullYear() + ' ' + d.getHours() + ':' + minutes + ':' + seconds + row.date = shortMonthName(d) + + ' ' + + d.getDate() + + ' ' + + d.getFullYear() + + ' ' + + d.getHours() + + ':' + + minutes + + ':' + + seconds; } } @@ -300,12 +328,11 @@ function convertFSWEventToRow(event, event_type) { /** * Render the row of FSW table. * @param {string} path the file path - * @param {string} event_type the event type + * @param {string} eventType the event type * @param {string} date the date of event */ -function renderFSWTableRow(path, event_type, date) { - - if (event_type === 'no_changes') { +function renderFSWTableRow(path, eventType, date) { + if (eventType === 'no_changes') { let tr = document.createElement('tr'); let td = document.createElement('td'); td.setAttribute('name', 'fswatcher-event-no-changes'); @@ -318,23 +345,23 @@ function renderFSWTableRow(path, event_type, date) { let tr = document.createElement('tr'); - let td_path = document.createElement('td'); - td_path.setAttribute('name', 'fswatcher-event-path'); - td_path.setAttribute('data-before', 'Path'); - td_path.innerHTML = path; - tr.appendChild(td_path); + let tdPath = document.createElement('td'); + tdPath.setAttribute('name', 'fswatcher-event-path'); + tdPath.setAttribute('data-before', 'Path'); + tdPath.innerHTML = path; + tr.appendChild(tdPath); - let td_type = document.createElement('td'); - td_type.setAttribute('name', 'fswatcher-event-type'); - td_type.setAttribute('data-before', 'Event'); - td_type.innerText = event_type; - tr.appendChild(td_type); + let tdType = document.createElement('td'); + tdType.setAttribute('name', 'fswatcher-event-type'); + tdType.setAttribute('data-before', 'Event'); + tdType.innerText = eventType; + tr.appendChild(tdType); - let td_date = document.createElement('td'); - td_date.setAttribute('name', 'fswatcher-event-date'); - td_date.setAttribute('data-before', 'Changed on date'); - td_date.innerText = date; - tr.appendChild(td_date); + let tdDate = document.createElement('td'); + tdDate.setAttribute('name', 'fswatcher-event-date'); + tdDate.setAttribute('data-before', 'Changed on date'); + tdDate.innerText = date; + tr.appendChild(tdDate); fsWatcherTableBody.appendChild(tr); } @@ -372,13 +399,12 @@ function resetFSWSelectors() { * @param {boolean} enable Set logs names if true, disable content if false. */ function toggleFSWSelectorsInfo(enable) { - let infoTag = document.getElementById('spbc--fs-watcher-table-handling-selects-info') + let infoTag = document.getElementById('spbc--fs-watcher-table-handling-selects-info'); if ( - enable - && typeof firstFSWSelector.options[firstFSWSelector.selectedIndex] !== 'undefined' - && typeof secondFSWSelector.options[secondFSWSelector.selectedIndex] !== 'undefined' - ) - { + enable && + typeof firstFSWSelector.options[firstFSWSelector.selectedIndex] !== 'undefined' && + typeof secondFSWSelector.options[secondFSWSelector.selectedIndex] !== 'undefined' + ) { const changesCountOnTRS = document.querySelectorAll('#spbc-table-fs_watcher-comparison > tr').length; const hasNoChangesTD = document.getElementsByName('fswatcher-event-no-changes').length; const changesCount = hasNoChangesTD > 0 ? 0 : changesCountOnTRS; @@ -389,7 +415,7 @@ function toggleFSWSelectorsInfo(enable) { fswatcherTranslations['fs_with'] + ' ' + secondFSWSelector.options[secondFSWSelector.selectedIndex].text + ' ' + fswatcherTranslations['fs_total'] + - ' ' + changesCount + '' + ' ' + changesCount + ''; } else { infoTag.innerText = ''; infoTag.style.display = 'none'; @@ -397,5 +423,3 @@ function toggleFSWSelectorsInfo(enable) { } - -