From 4f3bb3e2a07b8977de808403defe1569bab10ea1 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 5 Nov 2019 10:11:20 +0100 Subject: [PATCH] common functionality exrtacted to separate method --- .../main/js/gui/admin/AbstractAdminPanel.js | 25 +++++++++++++++++++ .../js/gui/admin/ConfigurationAdminPanel.js | 14 +++-------- .../src/main/js/gui/admin/GenomeAdminPanel.js | 14 +++-------- .../src/main/js/gui/admin/MapsAdminPanel.js | 18 ++++--------- .../src/main/js/gui/admin/PluginAdminPanel.js | 14 +++-------- .../src/main/js/gui/admin/UsersAdminPanel.js | 14 +++-------- 6 files changed, 42 insertions(+), 57 deletions(-) diff --git a/frontend-js/src/main/js/gui/admin/AbstractAdminPanel.js b/frontend-js/src/main/js/gui/admin/AbstractAdminPanel.js index b7a15daccb..eafd327e11 100644 --- a/frontend-js/src/main/js/gui/admin/AbstractAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/AbstractAdminPanel.js @@ -1,5 +1,7 @@ "use strict"; +var $ = require('jquery'); + /* exported logger */ /* exported Promise*/ @@ -85,6 +87,29 @@ AbstractAdminPanel.prototype.bindUserGuiPreference = function (params) { }; +/** + * + * @param {Object} param + * @param {HTMLElement} param.element + * @param {string} param.preferenceName + */ +AbstractAdminPanel.prototype.bindDataTablePageLengthToUserPreference = function (param) { + var jQueryObject = $(param.element); + return this.bindUserGuiPreference({ + jQueryObject: jQueryObject, + event: 'length.dt', + preferenceName: param.preferenceName, + defaultValue: '10', + getter: function () { + return jQueryObject.DataTable().page.len() + ''; + }, + setter: function (value) { + return jQueryObject.DataTable().page.len(value).draw(); + } + }) +}; + + /** * * @returns {Promise} diff --git a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js index 58752e135c..8bd3770e96 100644 --- a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js @@ -141,17 +141,9 @@ ConfigurationAdminPanel.prototype.createOptionsTable = function (options, type) self.getGuiUtils().addTab(self, {name: type, content: configurationDiv}); - return Promise.all([self.bindUserGuiPreference({ - jQueryObject: $(configurationTable), - event: 'length.dt', - preferenceName: 'admin-configuration-datatable-length', - defaultValue: '10', - getter: function () { - return $(configurationTable).DataTable().page.len() + ''; - }, - setter: function (value) { - return $(configurationTable).DataTable().page.len(value).draw(); - } + return Promise.all([self.bindDataTablePageLengthToUserPreference({ + element: configurationTable, + preferenceName: 'admin-configuration-datatable-length' }), self.bindUserGuiPreference({ jQueryObject: $(configurationTable), event: 'order.dt', diff --git a/frontend-js/src/main/js/gui/admin/GenomeAdminPanel.js b/frontend-js/src/main/js/gui/admin/GenomeAdminPanel.js index e9c7256370..f2f57eb863 100644 --- a/frontend-js/src/main/js/gui/admin/GenomeAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/GenomeAdminPanel.js @@ -90,17 +90,9 @@ GenomeAdminPanel.prototype._createGui = function () { }], order: [[1, "asc"], [4, "asc"]] }); - self.bindUserGuiPreference({ - jQueryObject: $(genomesTable), - event: 'length.dt', - preferenceName: 'admin-genome-datatable-length', - defaultValue: '10', - getter: function () { - return $(genomesTable).DataTable().page.len() + ''; - }, - setter: function (value) { - return $(genomesTable).DataTable().page.len(value).draw(); - } + self.bindDataTablePageLengthToUserPreference({ + element: genomesTable, + preferenceName: 'admin-genome-datatable-length' }); $(genomesTable).on("click", "[name='removeGenome']", function () { diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js index 89dd2ebe50..80e60bbc8a 100644 --- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js @@ -142,22 +142,14 @@ MapsAdminPanel.prototype._createProjectTableRow = function () { }, { title: 'Remove' }], - order: [[ 0, "asc" ]], + order: [[0, "asc"]], columnDefs: [ {"orderable": false, "targets": [7, 8]} ] }); - self.bindUserGuiPreference({ - jQueryObject: $(projectsTable), - event: 'length.dt', - preferenceName: 'admin-projects-datatable-length', - defaultValue: '10', - getter: function () { - return $(projectsTable).DataTable().page.len() + ''; - }, - setter: function (value) { - return $(projectsTable).DataTable().page.len(value).draw(); - } + self.bindDataTablePageLengthToUserPreference({ + element: projectsTable, + preferenceName: 'admin-projects-datatable-length' }); $(projectsTable).on("click", "[name='removeProject']", function () { @@ -191,7 +183,7 @@ MapsAdminPanel.prototype._createProjectTableRow = function () { */ MapsAdminPanel.prototype.init = function () { var self = this; - return AbstractAdminPanel.prototype.init.call(self).then(function() { + return AbstractAdminPanel.prototype.init.call(self).then(function () { return self.getServerConnector().getProjects(); }).then(function (projects) { return self.setProjects(projects); diff --git a/frontend-js/src/main/js/gui/admin/PluginAdminPanel.js b/frontend-js/src/main/js/gui/admin/PluginAdminPanel.js index 82e6b0dacb..57dbefbbd6 100644 --- a/frontend-js/src/main/js/gui/admin/PluginAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/PluginAdminPanel.js @@ -69,17 +69,9 @@ PluginAdminPanel.prototype._createGui = function () { }], order: [[1, "asc"]] }); - self.bindUserGuiPreference({ - jQueryObject: $(pluginsTable), - event: 'length.dt', - preferenceName: 'admin-plugins-datatable-length', - defaultValue: '10', - getter: function () { - return $(pluginsTable).DataTable().page.len() + ''; - }, - setter: function (value) { - return $(pluginsTable).DataTable().page.len(value).draw(); - } + self.bindDataTablePageLengthToUserPreference({ + element: pluginsTable, + preferenceName: 'admin-plugins-datatable-length' }); $(pluginsTable).on("click", "[name='removePlugin']", function () { diff --git a/frontend-js/src/main/js/gui/admin/UsersAdminPanel.js b/frontend-js/src/main/js/gui/admin/UsersAdminPanel.js index 34bc6cec1f..4d82ff4b55 100644 --- a/frontend-js/src/main/js/gui/admin/UsersAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/UsersAdminPanel.js @@ -137,17 +137,9 @@ UsersAdminPanel.prototype._createUsersTableRow = function () { ] }); - self.bindUserGuiPreference({ - jQueryObject: $(usersTable), - event: 'length.dt', - preferenceName: 'admin-users-datatable-length', - defaultValue: '10', - getter: function () { - return $(usersTable).DataTable().page.len() + ''; - }, - setter: function (value) { - return $(usersTable).DataTable().page.len(value).draw(); - } + self.bindDataTablePageLengthToUserPreference({ + element: usersTable, + preferenceName: 'admin-users-datatable-length' }); $(usersTable).on("click", "[name='removeUser']", function () { -- GitLab