From ad862f4084d03b73af6017c9d4a736005073228e Mon Sep 17 00:00:00 2001 From: Nikhil Mohite Date: Fri, 7 Jan 2022 12:07:49 +0530 Subject: [PATCH] Port Maintenance dialog to React. Fixes #7019 --- docs/en_US/images/maintenance.png | Bin 44030 -> 88762 bytes docs/en_US/release_notes_6_4.rst | 1 + web/pgadmin/static/js/SchemaView/index.jsx | 5 +- .../grant_wizard/static/js/grant_wizard.js | 2 +- .../static/js/import_export_servers.js | 2 +- web/pgadmin/tools/maintenance/__init__.py | 4 +- .../maintenance/static/js/maintenance.js | 411 +++--------------- .../maintenance/static/js/maintenance.ui.js | 158 +++++++ .../schema_ui_files/maintenance.ui.spec.js | 52 +++ 9 files changed, 283 insertions(+), 352 deletions(-) create mode 100644 web/pgadmin/tools/maintenance/static/js/maintenance.ui.js create mode 100644 web/regression/javascript/schema_ui_files/maintenance.ui.spec.js diff --git a/docs/en_US/images/maintenance.png b/docs/en_US/images/maintenance.png index 8ad9fc286cca026a56cb13d97086219af7bc15d4..d0d84d3552d65c3039987f677edc46a1738744c7 100644 GIT binary patch literal 88762 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 z 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⪻N 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 literal 44030 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 S#KsB-z9hxuL`_ - Port Restore dialog to React. +| `Issue #7019 `_ - Port Maintenance dialog to React. Bug fixes ********* diff --git a/web/pgadmin/static/js/SchemaView/index.jsx b/web/pgadmin/static/js/SchemaView/index.jsx index 64feeb27a..fe9f6e29e 100644 --- a/web/pgadmin/static/js/SchemaView/index.jsx +++ b/web/pgadmin/static/js/SchemaView/index.jsx @@ -13,6 +13,7 @@ import {Accordion, AccordionSummary, AccordionDetails} from '@material-ui/core'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import SaveIcon from '@material-ui/icons/Save'; import PublishIcon from '@material-ui/icons/Publish'; +import DoneIcon from '@material-ui/icons/Done'; import SettingsBackupRestoreIcon from '@material-ui/icons/SettingsBackupRestore'; import CloseIcon from '@material-ui/icons/Close'; import InfoIcon from '@material-ui/icons/InfoRounded'; @@ -687,6 +688,8 @@ function SchemaDialogView({ const getButtonIcon = () => { if(props.customSaveBtnIconType == 'upload') { return ; + } else if(props.customSaveBtnIconType == 'done') { + return ; } return ; }; @@ -720,7 +723,7 @@ function SchemaDialogView({ } disabled={!dirty || saving} className={classes.buttonMargin}> {gettext('Reset')} - + {props.customSaveBtnName ? gettext(props.customSaveBtnName) : gettext('Save')} diff --git a/web/pgadmin/tools/grant_wizard/static/js/grant_wizard.js b/web/pgadmin/tools/grant_wizard/static/js/grant_wizard.js index 8e5fbe2ea..cb5e9f994 100644 --- a/web/pgadmin/tools/grant_wizard/static/js/grant_wizard.js +++ b/web/pgadmin/tools/grant_wizard/static/js/grant_wizard.js @@ -127,7 +127,7 @@ define([ Alertify.grantWizardDialog().elements.modal.style.overflow='visible'; Alertify.grantWizardDialog().elements.dimmer.style.display='none'; } - }, 500); + }, 10); }, prepare: function () { diff --git a/web/pgadmin/tools/import_export_servers/static/js/import_export_servers.js b/web/pgadmin/tools/import_export_servers/static/js/import_export_servers.js index d0948bd15..3b12000f6 100644 --- a/web/pgadmin/tools/import_export_servers/static/js/import_export_servers.js +++ b/web/pgadmin/tools/import_export_servers/static/js/import_export_servers.js @@ -93,7 +93,7 @@ export default class ImportExportServersModule { Alertify.importExportWizardDialog().elements.modal.style.overflow='visible'; Alertify.importExportWizardDialog().elements.dimmer.style.display='none'; } - }, 500); + }, 10); }, prepare: function () { diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py index ae67eb924..c641e49bb 100644 --- a/web/pgadmin/tools/maintenance/__init__.py +++ b/web/pgadmin/tools/maintenance/__init__.py @@ -139,9 +139,9 @@ class Message(IProcessDesc): res = _('VACUUM ({0})') opts = [] - if self.data['vacuum_full']: + if 'vacuum_full' in self.data and self.data['vacuum_full']: opts.append(_('FULL')) - if self.data['vacuum_freeze']: + if 'vacuum_freeze' in self.data and self.data['vacuum_freeze']: opts.append(_('FREEZE')) if self.data['verbose']: opts.append(_('VERBOSE')) diff --git a/web/pgadmin/tools/maintenance/static/js/maintenance.js b/web/pgadmin/tools/maintenance/static/js/maintenance.js index b6bce2774..1a6305e63 100644 --- a/web/pgadmin/tools/maintenance/static/js/maintenance.js +++ b/web/pgadmin/tools/maintenance/static/js/maintenance.js @@ -8,149 +8,27 @@ ////////////////////////////////////////////////////////////// import Notify from '../../../../static/js/helpers/Notifier'; +import {getUtilityView} from '../../../../browser/static/js/utility_view'; +import getApiInstance from 'sources/api_instance'; +import MaintenanceSchema, {getVacuumSchema} from './maintenance.ui'; define([ - 'sources/gettext', 'sources/url_for', 'jquery', 'underscore', - 'pgadmin.alertifyjs', 'sources/pgadmin', 'pgadmin.browser', 'backbone', - 'backgrid', 'backform', 'sources/utils', + 'sources/gettext', 'sources/url_for', 'sources/pgadmin', 'pgadmin.browser', 'tools/maintenance/static/js/menu_utils', - 'sources/nodes/supported_database_node', - 'pgadmin.backform', 'pgadmin.backgrid', - 'pgadmin.browser.node.ui', + 'sources/nodes/supported_database_node' ], function( - gettext, url_for, $, _, Alertify, pgAdmin, pgBrowser, Backbone, Backgrid, - Backform, commonUtils, - menuUtils, supportedNodes + gettext, url_for, pgAdmin, pgBrowser, menuUtils, supportedNodes ) { pgAdmin = pgAdmin || window.pgAdmin || {}; var pgTools = pgAdmin.Tools = pgAdmin.Tools || {}; + const api = getApiInstance(); // Return back, this has been called more than once if (pgAdmin.Tools.maintenance) return pgAdmin.Tools.maintenance; - // Main model for Maintenance functionality - var MaintenanceModel = Backbone.Model.extend({ - defaults: { - op: 'VACUUM', - vacuum_full: false, - vacuum_freeze: false, - vacuum_analyze: false, - verbose: true, - }, - initialize: function() { - var node_info = arguments[1]['node_info']; - // If node is Unique or Primary key then set op to reindex - if ('primary_key' in node_info || 'unique_constraint' in node_info || - 'index' in node_info) { - this.set('op', 'REINDEX'); - this.set('verbose', false); - } - }, - schema: [{ - id: 'op', - label: gettext('Maintenance operation'), - cell: 'string', - type: 'radioModern', - controlsClassName: 'pgadmin-controls col-12 col-sm-8', - controlLabelClassName: 'control-label col-sm-4 col-12', - group: gettext('Options'), - value: 'VACUUM', - options: [{ - 'label': 'VACUUM', - 'value': 'VACUUM', - }, - { - 'label': 'ANALYZE', - 'value': 'ANALYZE', - }, - { - 'label': 'REINDEX', - 'value': 'REINDEX', - }, - { - 'label': 'CLUSTER', - 'value': 'CLUSTER', - }, - ], - }, - { - type: 'nested', - control: 'fieldset', - label: gettext('Vacuum'), - group: gettext('Options'), - contentClass: 'row', - schema: [{ - id: 'vacuum_full', - group: gettext('Vacuum'), - disabled: 'isDisabled', - type: 'switch', - extraToggleClasses: 'pg-el-sm-4', - controlLabelClassName: 'control-label pg-el-sm-5 pg-el-12', - controlsClassName: 'pgadmin-controls pg-el-sm-7 pg-el-12', - label: gettext('FULL'), - deps: ['op'], - }, { - id: 'vacuum_freeze', - deps: ['op'], - disabled: 'isDisabled', - type: 'switch', - extraToggleClasses: 'pg-el-sm-4', - controlLabelClassName: 'control-label pg-el-sm-5 pg-el-12', - controlsClassName: 'pgadmin-controls pg-el-sm-7 pg-el-12', - label: gettext('FREEZE'), - group: gettext('Vacuum'), - }, { - id: 'vacuum_analyze', - deps: ['op'], - disabled: 'isDisabled', - type: 'switch', - extraToggleClasses: 'pg-el-sm-4', - controlLabelClassName: 'control-label pg-el-sm-5 pg-el-12', - controlsClassName: 'pgadmin-controls pg-el-sm-7 pg-el-12', - label: gettext('ANALYZE'), - group: gettext('Vacuum'), - }], - }, - { - id: 'verbose', - group: gettext('Options'), - deps: ['op'], - type: 'switch', - label: gettext('Verbose Messages'), - disabled: 'isDisabled', - }, - ], - - // Enable/Disable the items based on the user maintenance operation - // selection. - isDisabled: function(m) { - var node_info = this.node_info; - - switch (this.name) { - case 'vacuum_full': - case 'vacuum_freeze': - case 'vacuum_analyze': - return (m.get('op') != 'VACUUM'); - case 'verbose': - if ('primary_key' in node_info || 'unique_constraint' in node_info || - 'index' in node_info) { - if (m.get('op') == 'REINDEX') { - setTimeout(function() { - m.set('verbose', false); - }, 10); - return true; - } - } - return m.get('op') == 'REINDEX'; - default: - return false; - } - }, - }); - pgTools.maintenance = { init: function() { @@ -197,7 +75,33 @@ define([ } pgBrowser.add_menus(menus); }, + getUISchema: function(treeItem) { + let treeNodeInfo = pgBrowser.tree.getTreeNodeHierarchy(treeItem); + return new MaintenanceSchema( + ()=>getVacuumSchema(), + { + nodeInfo: treeNodeInfo + } + ); + }, + saveCallBack: function(data, dialog) { + if(data.errormsg) { + Notify.alert( + gettext('Utility not found'), + gettext(data.errormsg) + ); + } else { + Notify.success(data.data.info); + pgBrowser.Events.trigger('pgadmin-bgprocess:created', dialog); + } + }, + setExtraParameters(treeInfo) { + var extraData = {}; + extraData['database'] = treeInfo.database._label; + extraData['save_btn_icon'] = 'done'; + return extraData; + }, /* Open the dialog for the maintenance functionality */ @@ -224,12 +128,7 @@ define([ return; } - if (!commonUtils.hasBinariesConfiguration(pgBrowser, server_data, Alertify)) { - return; - } - - var self = this, - t = pgBrowser.tree; + var t = pgBrowser.tree; i = item || t.selected(); @@ -249,232 +148,50 @@ define([ return; } - if (!Alertify.MaintenanceDialog) { - Alertify.dialog('MaintenanceDialog', function factory() { - - return { - main: function(title) { - this.set('title', title); - }, - setup: function() { - return { - buttons: [{ - text: '', - className: 'btn btn-primary-icon pull-left fa fa-info pg-alertify-icon-button', - attrs: { - name: 'object_help', - type: 'button', - url: 'maintenance.html', - label: gettext('Maintenance'), - 'aria-label': gettext('Object Help'), - }, - }, { - text: '', - key: 112, - className: 'btn btn-primary-icon pull-left fa fa-question pg-alertify-icon-button', - attrs: { - name: 'dialog_help', - type: 'button', - label: gettext('Maintenance'), - 'aria-label': gettext('Help'), - url: url_for( - 'help.static', { - 'filename': 'maintenance_dialog.html', - } - ), - }, - }, { - text: gettext('Cancel'), - key: 27, - className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button', - 'data-btn-name': 'cancel', - }, { - text: gettext('OK'), - key: 13, - className: 'btn btn-primary fa fa-lg fa-check pg-alertify-button', - 'data-btn-name': 'ok', - }], - options: { - modal: 0, - pinnable: false, - //disable both padding and overflow control. - padding: !1, - overflow: !1, - }, - }; - }, - // Callback functions when click on the buttons of the Alertify dialogs - callback: function(e) { - var sel_item = pgBrowser.tree.selected(), - itemData = sel_item ? pgBrowser.tree.itemData(sel_item) : undefined, - sel_node = itemData && pgBrowser.Nodes[itemData._type]; - - if (e.button.element.name == 'dialog_help' || e.button.element.name == 'object_help') { - e.cancel = true; - pgBrowser.showHelp(e.button.element.name, e.button.element.getAttribute('url'), - sel_node, sel_item); - return; - } - - if (e.button['data-btn-name'] === 'ok') { - - var schema = undefined, - table = undefined, - primary_key = undefined, - unique_constraint = undefined, - index = undefined; - - if (!itemData) - return; - - var node_hierarchy = pgBrowser.tree.getTreeNodeHierarchy(sel_item); - - if (node_hierarchy.schema != undefined) { - schema = node_hierarchy.schema._label; - } - - if (node_hierarchy.partition != undefined) { - table = node_hierarchy.partition._label; - } else if (node_hierarchy.table != undefined) { - table = node_hierarchy.table._label; - } else if (node_hierarchy.mview != undefined) { - table = node_hierarchy.mview._label; - } - - if (node_hierarchy.primary_key != undefined) { - primary_key = node_hierarchy.primary_key._label; - } else if (node_hierarchy.unique_constraint != undefined) { - unique_constraint = node_hierarchy.unique_constraint._label; - } else if (node_hierarchy.index != undefined) { - index = node_hierarchy.index._label; - } - - this.view.model.set({ - 'database': node_hierarchy.database._label, - 'schema': schema, - 'table': table, - 'primary_key': primary_key, - 'unique_constraint': unique_constraint, - 'index': index, - }); - - $.ajax({ - url: url_for( - 'maintenance.create_job', { - 'sid': node_hierarchy.server._id, - 'did': node_hierarchy.database._id, - }), - method: 'POST', - data: { - 'data': JSON.stringify(this.view.model.toJSON()), - }, - }) - .done(function(res) { - if (res.data && res.data.status) { - //Do nothing as we are creating the job and exiting from the main dialog - Notify.success(res.data.info); - pgBrowser.Events.trigger('pgadmin-bgprocess:created', self); - } else { - Notify.alert( - gettext('Maintenance job creation failed.'), - res.errormsg - ); - } - }) - .fail(function() { - Notify.alert( - gettext('Maintenance job creation failed.') - ); - }); - } - }, - build: function() { - Alertify.pgDialogBuild.apply(this); - }, - hooks: { - onclose: function() { - if (this.view) { - this.view.remove({ - data: true, - internal: true, - silent: true, - }); - } - }, - onshow: function() { - var container = $(this.elements.body).find('.tab-content:first > .tab-pane.active:first'); - commonUtils.findAndSetFocus(container); - }, - }, - prepare: function() { - // Main maintenance tool dialog container - var $container = $('
'); - var tree = pgBrowser.tree, - sel_item = tree.selected(), - itemInfo = sel_item ? tree.itemData(sel_item) : undefined, - nodeData = itemInfo && pgBrowser.Nodes[itemInfo._type]; - - if (!itemInfo) - return; - - var treeData = tree.getTreeNodeHierarchy(sel_item); - - var newModel = new MaintenanceModel({}, { - node_info: treeData, - }), - fields = Backform.generateViewSchema( - treeData, newModel, 'create', nodeData, treeData.server, true - ); - - var view = this.view = new Backform.Dialog({ - el: $container, - model: newModel, - schema: fields, - }); - - $(this.elements.body.childNodes[0]).addClass('alertify_tools_dialog_properties obj_properties'); - view.render(); - - // If node is Index, Unique or Primary key then disable vacuum & analyze button - if (itemInfo._type == 'primary_key' || itemInfo._type == 'unique_constraint' || - itemInfo._type == 'index') { - var vacuum_analyze_btns = $container.find( - '.btn-group label.btn:lt(2)' - ).addClass('disabled'); - // Find reindex button element & add active class to it - var reindex_btn = vacuum_analyze_btns[1].nextElementSibling; - $(reindex_btn).trigger('click'); - } - - view.$el.attr('tabindex', -1); - this.elements.content.appendChild($container.get(0)); - }, - }; - }); - } - const baseUrl = url_for('maintenance.utility_exists', { 'sid': server_data._id, }); + let that = this; // Check psql utility exists or not. - $.ajax({ + api({ url: baseUrl, type:'GET', }) - .done(function(res) { - if (!res.success) { + .then(function(res) { + if (!res.data.success) { Notify.alert( gettext('Utility not found'), - res.errormsg + res.data.errormsg ); return; + } else{ + + pgBrowser.Node.registerUtilityPanel(); + var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md), + j = panel.$container.find('.obj_properties').first(); + + var schema = that.getUISchema(item); + panel.title(gettext('Maintenance')); + panel.focus(); + + let urlShortcut = 'maintenance.create_job', + baseUrl = url_for(urlShortcut, { + 'sid': treeInfo.server._id, + 'did': treeInfo.database._id + }); + let extraData = that.setExtraParameters(treeInfo); + + var sqlHelpUrl = 'maintenance.html', + helpUrl = url_for('help.static', { + 'filename': 'maintenance_dialog.html', + }); + + getUtilityView( + schema, treeInfo, 'select', 'dialog', j[0], panel, that.saveCallBack, extraData, 'OK', baseUrl, sqlHelpUrl, helpUrl); } - // Open the Alertify dialog - Alertify.MaintenanceDialog(gettext('Maintenance...')).set('resizable', true) - .resizeTo(pgAdmin.Browser.stdW.md,pgAdmin.Browser.stdH.md); }) - .fail(function() { + .catch(function() { Notify.alert( gettext('Utility not found'), gettext('Failed to fetch Utility information') diff --git a/web/pgadmin/tools/maintenance/static/js/maintenance.ui.js b/web/pgadmin/tools/maintenance/static/js/maintenance.ui.js new file mode 100644 index 000000000..3748ffbd6 --- /dev/null +++ b/web/pgadmin/tools/maintenance/static/js/maintenance.ui.js @@ -0,0 +1,158 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2022, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + +import BaseUISchema from 'sources/SchemaView/base_schema.ui'; +import gettext from 'sources/gettext'; + +export class VacuumSchema extends BaseUISchema { + constructor(fieldOptions={}) { + super(); + + this.fieldOptions = { + ...fieldOptions, + }; + } + + get idAttribute() { + return 'op'; + } + + + get baseFields() { + return [{ + id: 'vacuum_full', + group: gettext('Vacuum'), + disabled: function(state) { + if(state?.op) { + return (state.op != 'VACUUM'); + } else { + return false; + } + }, + type: 'switch', + label: gettext('FULL'), + deps: ['op'], + }, { + id: 'vacuum_freeze', + deps: ['op'], + disabled: function(state) { + if(state?.op) { + return (state.op != 'VACUUM'); + } else { + return false; + } + }, + type: 'switch', + label: gettext('FREEZE'), + group: gettext('Vacuum'), + }, { + id: 'vacuum_analyze', + deps: ['op'], + type: 'switch', + disabled: function(state) { + if(state?.op) { + return (state.op != 'VACUUM'); + } else { + return false; + } + }, + label: gettext('ANALYZE'), + group: gettext('Vacuum'), + }]; + } +} + +export function getVacuumSchema(fieldOptions) { + return new VacuumSchema(fieldOptions); +} + + +//Maintenance Schema +export default class MaintenanceSchema extends BaseUISchema { + + constructor(getVacuumSchema, fieldOptions = {}) { + super({ + op: 'VACUUM', + verbose: true, + vacuum_full: false, + vacuum_freeze: false, + vacuum_analyze: false, + }); + + this.fieldOptions = { + nodeInfo: null, + ...fieldOptions, + }; + + this.getVacuumSchema = getVacuumSchema; + this.nodeInfo = fieldOptions.nodeInfo; + } + + get idAttribute() { + return 'id'; + } + + get baseFields() { + var obj = this; + return [ + { + id: 'op', + label: gettext('Maintenance operation'), + type: 'toggle', + group: gettext('Options'), + options: [ + { + 'label': gettext('VACUUM'), + value: 'VACUUM', + }, + { + 'label': gettext('ANALYZE'), + value: 'ANALYZE', + }, + { + 'label': gettext('REINDEX'), + value: 'REINDEX', + }, + { + 'label': gettext('CLUSTER'), + value: 'CLUSTER', + }, + ], + }, + { + type: 'nested-fieldset', + label: gettext('Type of objects'), + schema: obj.getVacuumSchema(), + group: gettext('Options'), + }, + { + id: 'verbose', + group: gettext('Options'), + deps: ['op'], + type: 'switch', + label: gettext('Verbose Messages'), + disabled: function(state) { + var nodeInfo = this.nodeInfo; + if(state?.verbose) { + if ('primary_key' in nodeInfo || 'unique_constraint' in nodeInfo || + 'index' in nodeInfo) { + if (state.op == 'REINDEX') { + state.verbose = false; + return true; + } + } + return state.op == 'REINDEX'; + } else { + return false; + } + }, + }, + ]; + } +} diff --git a/web/regression/javascript/schema_ui_files/maintenance.ui.spec.js b/web/regression/javascript/schema_ui_files/maintenance.ui.spec.js new file mode 100644 index 000000000..0ef15cd9e --- /dev/null +++ b/web/regression/javascript/schema_ui_files/maintenance.ui.spec.js @@ -0,0 +1,52 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2022, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + +import React from 'react'; +import '../helper/enzyme.helper'; +import { createMount } from '@material-ui/core/test-utils'; +import SchemaView from '../../../pgadmin/static/js/SchemaView'; +import MaintenanceSchema, {getVacuumSchema} from '../../../pgadmin/tools/maintenance/static/js/maintenance.ui'; + + +describe('MaintenanceSchema', ()=>{ + let mount; + beforeAll(()=>{ + mount = createMount(); + }); + + afterAll(() => { + mount.cleanUp(); + }); + let backupSchemaObj = new MaintenanceSchema( + ()=> getVacuumSchema(), + { + nodeInfo: {schema: {label: 'public'}, server: {version: 90400}} + } + ); + + it('start maintenance', ()=>{ + mount({}} + onClose={()=>{}} + onHelp={()=>{}} + onDataChange={()=>{}} + confirmOnCloseReset={false} + hasSQL={false} + disableSqlHelp={false} + disableDialogHelp={false} + />); + }); + +}); +