diff --git a/js/src/database/query_generator.ts b/js/src/database/query_generator.ts index be0f684b30..4e165ac86c 100644 --- a/js/src/database/query_generator.ts +++ b/js/src/database/query_generator.ts @@ -45,7 +45,7 @@ function generateCondition (criteriaDiv, table) { return query; } -window.generateWhereBlock = function () { +function generateWhereBlock () { var count = 0; var query = ''; $('.tableNameSelect').each(function () { @@ -66,7 +66,7 @@ window.generateWhereBlock = function () { }); return query; -}; +} function generateJoin (newTable, tableAliases, fk) { var query = ''; @@ -126,7 +126,7 @@ function appendTable (table, tableAliases, usedTables, foreignKeys) { return query; } -window.generateFromBlock = (tableAliases, foreignKeys) => { +function generateFromBlock (tableAliases, foreignKeys) { var usedTables = []; var query = ''; for (var table in tableAliases) { @@ -136,4 +136,14 @@ window.generateFromBlock = (tableAliases, foreignKeys) => { } return query; -}; +} + +declare global { + interface Window { + generateWhereBlock: typeof generateWhereBlock; + generateFromBlock: typeof generateFromBlock; + } +} + +window.generateWhereBlock = generateWhereBlock; +window.generateFromBlock = generateFromBlock; diff --git a/js/src/designer/database.ts b/js/src/designer/database.ts index ab958d8880..8e2ea0c141 100644 --- a/js/src/designer/database.ts +++ b/js/src/designer/database.ts @@ -14,8 +14,6 @@ var designerTables = [ ]; var DesignerOfflineDB = (function () { - var designerDB: {[k: string]: any} = {}; - /** * @type {IDBDatabase|null} */ @@ -25,7 +23,7 @@ var DesignerOfflineDB = (function () { * @param {string} table * @return {IDBTransaction} */ - designerDB.getTransaction = function (table) { + const getTransaction = function (table) { return datastore.transaction([table], 'readwrite'); }; @@ -33,7 +31,7 @@ var DesignerOfflineDB = (function () { * @param {string} table * @return {IDBObjectStore} */ - designerDB.getObjectStore = function (table) { + const getObjectStore = function (table) { var transaction = designerDB.getTransaction(table); var objStore = transaction.objectStore(table); @@ -45,7 +43,7 @@ var DesignerOfflineDB = (function () { * @param {string} table * @return {IDBObjectStore} */ - designerDB.getCursorRequest = function (transaction, table) { + const getCursorRequest = function (transaction, table) { var objStore = transaction.objectStore(table); var keyRange = IDBKeyRange.lowerBound(0); var cursorRequest = objStore.openCursor(keyRange); @@ -56,7 +54,7 @@ var DesignerOfflineDB = (function () { /** * @param {Function} callback */ - designerDB.open = function (callback): void { + const open = function (callback): void { var version = 1; var request = window.indexedDB.open('pma_designer', version); @@ -96,7 +94,7 @@ var DesignerOfflineDB = (function () { * @param {string} id * @param {Function} callback */ - designerDB.loadObject = function (table, id, callback): void { + const loadObject = function (table, id, callback): void { if (datastore === null) { ajaxShowMessage(window.Messages.strIndexedDBNotWorking, null, 'error'); @@ -117,7 +115,7 @@ var DesignerOfflineDB = (function () { * @param {string} table * @param {Function} callback */ - designerDB.loadAllObjects = function (table, callback): void { + const loadAllObjects = function (table, callback): void { if (datastore === null) { ajaxShowMessage(window.Messages.strIndexedDBNotWorking, null, 'error'); @@ -149,7 +147,7 @@ var DesignerOfflineDB = (function () { * @param {string} table * @param {Function} callback */ - designerDB.loadFirstObject = function (table, callback): void { + const loadFirstObject = function (table, callback): void { if (datastore === null) { ajaxShowMessage(window.Messages.strIndexedDBNotWorking, null, 'error'); @@ -181,7 +179,7 @@ var DesignerOfflineDB = (function () { * @param {Object} obj * @param {Function} callback */ - designerDB.addObject = function (table, obj, callback): void { + const addObject = function (table, obj, callback = undefined): void { if (datastore === null) { ajaxShowMessage(window.Messages.strIndexedDBNotWorking, null, 'error'); @@ -205,7 +203,7 @@ var DesignerOfflineDB = (function () { * @param {string} id * @param {Function} callback */ - designerDB.deleteObject = function (table, id, callback): void { + const deleteObject = function (table, id, callback = undefined): void { if (datastore === null) { ajaxShowMessage(window.Messages.strIndexedDBNotWorking, null, 'error'); @@ -227,11 +225,24 @@ var DesignerOfflineDB = (function () { /** * @param {Error} e */ - designerDB.onerror = function (e): void { + const onerror = function (e): void { // eslint-disable-next-line no-console console.log(e); }; + var designerDB = { + getTransaction: getTransaction, + getObjectStore: getObjectStore, + getCursorRequest: getCursorRequest, + open: open, + loadObject: loadObject, + loadAllObjects: loadAllObjects, + loadFirstObject: loadFirstObject, + addObject: addObject, + deleteObject: deleteObject, + onerror: onerror, + }; + // Export the designerDB object. return designerDB; }()); diff --git a/js/src/designer/page.ts b/js/src/designer/page.ts index 24b8935a9b..869b5bcc15 100644 --- a/js/src/designer/page.ts +++ b/js/src/designer/page.ts @@ -6,9 +6,7 @@ import { DesignerOfflineDB } from './database.ts'; import { DesignerMove } from './move.ts'; import { DesignerObjects } from './objects.ts'; -var DesignerPage = {}; - -DesignerPage.showTablesInLandingPage = function (db) { +function showTablesInLandingPage (db) { DesignerPage.loadFirstPage(db, function (page) { if (page) { DesignerPage.loadHtmlForPage(page.pgNr); @@ -17,9 +15,9 @@ DesignerPage.showTablesInLandingPage = function (db) { DesignerPage.showNewPageTables(true); } }); -}; +} -DesignerPage.saveToNewPage = function (db, pageName, tablePositions, callback) { +function saveToNewPage (db, pageName, tablePositions, callback) { DesignerPage.createNewPage(db, pageName, function (page) { if (page) { var tblCords = []; @@ -41,9 +39,9 @@ DesignerPage.saveToNewPage = function (db, pageName, tablePositions, callback) { } } }); -}; +} -DesignerPage.saveToSelectedPage = function (db, pageId, pageName, tablePositions, callback) { +function saveToSelectedPage (db, pageId, pageName, tablePositions, callback) { DesignerPage.deletePage(pageId); DesignerPage.saveToNewPage(db, pageName, tablePositions, function (page) { if (typeof callback !== 'undefined') { @@ -52,9 +50,9 @@ DesignerPage.saveToSelectedPage = function (db, pageId, pageName, tablePositions DesignerConfig.selectedPage = page.pgNr; }); -}; +} -DesignerPage.createNewPage = function (db, pageName, callback) { +function createNewPage (db, pageName, callback) { var newPage = new DesignerObjects.PdfPage(db, pageName, []); DesignerOfflineDB.addObject('pdf_pages', newPage, function (pgNr) { newPage.pgNr = pgNr; @@ -62,13 +60,13 @@ DesignerPage.createNewPage = function (db, pageName, callback) { callback(newPage); } }); -}; +} -DesignerPage.saveTablePositions = function (positions, callback) { +function saveTablePositions (positions, callback) { DesignerOfflineDB.addObject('table_coords', positions, callback); -}; +} -DesignerPage.createPageList = function (db, callback) { +function createPageList (db, callback) { DesignerOfflineDB.loadAllObjects('pdf_pages', function (pages) { var html = ''; for (var p = 0; p < pages.length; p++) { @@ -83,9 +81,9 @@ DesignerPage.createPageList = function (db, callback) { callback(html); } }); -}; +} -DesignerPage.deletePage = function (pageId, callback) { +function deletePage (pageId, callback = undefined) { DesignerOfflineDB.loadObject('pdf_pages', pageId, function (page) { if (page) { for (var i = 0; i < page.tblCords.length; i++) { @@ -95,9 +93,9 @@ DesignerPage.deletePage = function (pageId, callback) { DesignerOfflineDB.deleteObject('pdf_pages', pageId, callback); } }); -}; +} -DesignerPage.loadFirstPage = function (db, callback) { +function loadFirstPage (db, callback) { DesignerOfflineDB.loadAllObjects('pdf_pages', function (pages) { var firstPage = null; for (var i = 0; i < pages.length; i++) { @@ -118,10 +116,10 @@ DesignerPage.loadFirstPage = function (db, callback) { callback(firstPage); }); -}; +} -DesignerPage.showNewPageTables = function (check) { - var allTables = $('#id_scroll_tab').find('td input:checkbox'); +function showNewPageTables (check) { + var allTables = ($('#id_scroll_tab').find('td input:checkbox') as JQuery); allTables.prop('checked', check); for (var tab = 0; tab < allTables.length; tab++) { var input = allTables[tab]; @@ -136,9 +134,9 @@ DesignerPage.showNewPageTables = function (check) { DesignerConfig.selectedPage = -1; $('#page_name').text(window.Messages.strUntitled); DesignerMove.markUnsaved(); -}; +} -DesignerPage.loadHtmlForPage = function (pageId) { +function loadHtmlForPage (pageId) { DesignerPage.showNewPageTables(true); DesignerPage.loadPageObjects(pageId, function (page, tblCords) { $('#name-panel').find('#page_name').text(page.pageDescr); @@ -154,7 +152,7 @@ DesignerPage.loadHtmlForPage = function (pageId) { table.style.top = tblCords[t].y + 'px'; table.style.left = tblCords[t].x + 'px'; - var checkbox = document.getElementById('check_vis_' + tbId); + var checkbox = (document.getElementById('check_vis_' + tbId) as HTMLInputElement); checkbox.checked = true; DesignerMove.visibleTab(checkbox, checkbox.value); } @@ -167,9 +165,9 @@ DesignerPage.loadHtmlForPage = function (pageId) { DesignerConfig.selectedPage = page.pgNr; }); -}; +} -DesignerPage.loadPageObjects = function (pageId, callback) { +function loadPageObjects (pageId, callback) { DesignerOfflineDB.loadObject('pdf_pages', pageId, function (page) { var tblCords = []; var count = page.tblCords.length; @@ -184,12 +182,27 @@ DesignerPage.loadPageObjects = function (pageId, callback) { }); } }); -}; +} -DesignerPage.getRandom = function (max, min) { +function getRandom (max, min) { var val = Math.random() * (max - min) + min; return Math.floor(val); +} + +const DesignerPage = { + showTablesInLandingPage: showTablesInLandingPage, + saveToNewPage: saveToNewPage, + saveToSelectedPage: saveToSelectedPage, + createNewPage: createNewPage, + saveTablePositions: saveTablePositions, + createPageList: createPageList, + deletePage: deletePage, + loadFirstPage: loadFirstPage, + showNewPageTables: showNewPageTables, + loadHtmlForPage: loadHtmlForPage, + loadPageObjects: loadPageObjects, + getRandom: getRandom, }; export { DesignerPage }; diff --git a/js/src/jquery.sortable-table.ts b/js/src/jquery.sortable-table.ts index 990f529708..cfc4439d06 100644 --- a/js/src/jquery.sortable-table.ts +++ b/js/src/jquery.sortable-table.ts @@ -278,7 +278,7 @@ import $ from 'jquery'; previewMove = null; } - function moveTo (elem, opts = {}) { + function moveTo (elem, opts: {pos?: any, duration?: any} = {}) { if (! opts.pos) { opts.pos = { left: 0, top: 0 }; } diff --git a/js/src/modules/config.ts b/js/src/modules/config.ts index aaf99cbf3f..a3d82eff07 100644 --- a/js/src/modules/config.ts +++ b/js/src/modules/config.ts @@ -801,7 +801,7 @@ function on () { if (! lsSupported) { disabled = $form.find('input[type=radio][value$=local_storage]').prop('checked'); } else if (! lsExists && $form.attr('name') === 'prefs_import' && - $('#import_local_storage')[0].checked + ($('#import_local_storage') as JQuery)[0].checked ) { disabled = true; } diff --git a/js/src/modules/navigation.ts b/js/src/modules/navigation.ts index 17a8660d1c..d303f8939d 100644 --- a/js/src/modules/navigation.ts +++ b/js/src/modules/navigation.ts @@ -624,7 +624,7 @@ function ensureSettings (selflink): void { * @param {object} paths stored navigation paths */ function reload (callback = null, paths = null): void { - var params = { + var params: { server: any; reload: boolean; no_debug: boolean, db?: string } = { 'reload': true, 'no_debug': true, 'server': CommonParams.get('server'), @@ -1070,8 +1070,7 @@ const FastFilter = { */ getSearchClause: function () { var retval = ''; - var $input = $('#pma_navigation_tree') - .find('li.fast_filter.db_fast_filter input.searchClause'); + var $input = ($('#pma_navigation_tree').find('li.fast_filter.db_fast_filter input.searchClause') as JQuery); if ($input.length && $input.val() !== $input[0].defaultValue) { retval = $input.val(); } @@ -1278,7 +1277,7 @@ FastFilter.Filter.prototype.request = function (): void { var params = self.$this.find('> ul > li > form.fast_filter').first().serialize(); if (self.$this.find('> ul > li > form.fast_filter').first().find('input[name=searchClause]').length === 0) { - var $input = $('#pma_navigation_tree').find('li.fast_filter.db_fast_filter input.searchClause'); + var $input = ($('#pma_navigation_tree').find('li.fast_filter.db_fast_filter input.searchClause') as JQuery); if ($input.length && $input.val() !== $input[0].defaultValue) { params += CommonParams.get('arg_separator') + 'searchClause=' + encodeURIComponent($input.val()); } diff --git a/js/src/name-conflict-fixes.ts b/js/src/name-conflict-fixes.ts index 8202aba9c0..834556669f 100644 --- a/js/src/name-conflict-fixes.ts +++ b/js/src/name-conflict-fixes.ts @@ -1,3 +1,4 @@ import $ from 'jquery'; +// @ts-ignore $.widget.bridge('uiTooltip', $.ui.tooltip); diff --git a/js/src/setup/scripts.ts b/js/src/setup/scripts.ts index 596f005917..7a8fe5b7be 100644 --- a/js/src/setup/scripts.ts +++ b/js/src/setup/scripts.ts @@ -102,8 +102,10 @@ function ajaxValidate (parent, id, values) { var error = {}; if (typeof response !== 'object') { + // @ts-ignore error[$parent.id] = [response]; } else if (typeof response.error !== 'undefined') { + // @ts-ignore error[$parent.id] = [response.error]; } else { for (var key in response) { @@ -189,6 +191,7 @@ $.extend(true, window.validators, { * @return {true} */ Server_login_options: function (isKeyUp) { // eslint-disable-line camelcase + // @ts-ignore return window.validators.fieldset.Server.apply(this, [isKeyUp]); }, /** diff --git a/js/src/table/zoom_plot_jqplot.ts b/js/src/table/zoom_plot_jqplot.ts index 757e7c0700..0156a0c491 100644 --- a/js/src/table/zoom_plot_jqplot.ts +++ b/js/src/table/zoom_plot_jqplot.ts @@ -28,6 +28,7 @@ function displayHelp () { * @param {number[]} array * @return {number} **/ +// @ts-ignore Array.max = function (array) { return Math.max.apply(Math, array); }; @@ -37,6 +38,7 @@ Array.max = function (array) { * @param {number[]} array * @return {number} **/ +// @ts-ignore Array.min = function (array) { return Math.min.apply(Math, array); };