Skip to content

Commit ab96edf

Browse files
committed
Extract Navigation object dependency from CommonParams
This removes a circular dependency. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent fafa7d2 commit ab96edf

12 files changed

Lines changed: 51 additions & 52 deletions

File tree

js/src/database/operations.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ AJAX.registerOnload('database/operations.js', function () {
6666
$.post(url, $('#rename_db_form').serialize() + CommonParams.get('arg_separator') + 'is_js_confirmed=1', function (data) {
6767
if (typeof data !== 'undefined' && data.success === true) {
6868
ajaxShowMessage(data.message);
69-
CommonParams.set('db', data.newname);
70-
69+
Navigation.update(CommonParams.set('db', data.newname));
7170
Navigation.reload(function () {
7271
$('#pma_navigation_tree')
7372
.find('a:not(\'.expander\')')
@@ -106,13 +105,13 @@ AJAX.registerOnload('database/operations.js', function () {
106105
$('.alert-success, .alert-danger').fadeOut();
107106
if (typeof data !== 'undefined' && data.success === true) {
108107
if ($('#checkbox_switch').is(':checked')) {
109-
CommonParams.set('db', data.newname);
108+
Navigation.update(CommonParams.set('db', data.newname));
110109
refreshMainContent(false);
111110
AJAX.callback = () => {
112111
ajaxShowMessage(data.message);
113112
};
114113
} else {
115-
CommonParams.set('db', data.db);
114+
Navigation.update(CommonParams.set('db', data.db));
116115
ajaxShowMessage(data.message);
117116
}
118117
Navigation.reload();
@@ -169,7 +168,7 @@ AJAX.registerOnload('database/operations.js', function () {
169168
if (typeof data !== 'undefined' && data.success) {
170169
// Database deleted successfully, refresh both the frames
171170
Navigation.reload();
172-
CommonParams.set('db', '');
171+
Navigation.update(CommonParams.set('db', ''));
173172
refreshMainContent('index.php?route=/server/databases');
174173
AJAX.callback = () => {
175174
ajaxShowMessage(data.message);

js/src/designer/move.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Functions } from '../modules/functions.js';
44
import { CommonParams } from '../modules/common.js';
55
import { ajaxRemoveMessage, ajaxShowMessage } from '../modules/ajax-message.js';
66
import refreshMainContent from '../modules/functions/refreshMainContent.js';
7+
import { Navigation } from '../modules/navigation.js';
78

89
/**
910
* @package PhpMyAdmin-Designer
@@ -1340,13 +1341,13 @@ DesignerMove.newRelation = function () {
13401341

13411342
// -------------------------- create tables -------------------------------------
13421343
DesignerMove.startTableNew = function () {
1343-
CommonParams.set('table', '');
1344+
Navigation.update(CommonParams.set('table', ''));
13441345
refreshMainContent('index.php?route=/table/create');
13451346
};
13461347

13471348
DesignerMove.startTabUpd = function (db, table) {
1348-
CommonParams.set('db', db);
1349-
CommonParams.set('table', table);
1349+
Navigation.update(CommonParams.set('db', db));
1350+
Navigation.update(CommonParams.set('table', table));
13501351
refreshMainContent('index.php?route=/table/structure');
13511352
};
13521353

js/src/modules/ajax.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ const AJAX = {
374374
}
375375
ajaxRemoveMessage(AJAX.$msgbox);
376376

377-
CommonParams.set('token', data.new_token);
377+
Navigation.update(CommonParams.set('token', data.new_token));
378378

379379
AJAX.scriptHandler.load([]);
380380

@@ -556,7 +556,7 @@ const AJAX = {
556556
$('#selflink').find('> a').attr('href', data.selflink);
557557
}
558558
if (data.params) {
559-
CommonParams.setAll(data.params);
559+
Navigation.update(CommonParams.setAll(data.params));
560560
}
561561
if (data.scripts) {
562562
AJAX.scriptHandler.load(data.scripts);

js/src/modules/common.js

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import $ from 'jquery';
2-
import { Navigation } from './navigation.js';
3-
41
/**
52
* Holds common parameters such as server, db, table, etc
63
*
@@ -23,10 +20,10 @@ const CommonParams = (function () {
2320
*
2421
* @param obj hash The input array
2522
*
26-
* @return {void}
23+
* @return {boolean}
2724
*/
2825
setAll: function (obj) {
29-
var updateNavigation = false;
26+
let updateNavigation = false;
3027
for (var i in obj) {
3128
if (params[i] !== undefined && params[i] !== obj[i]) {
3229
if (i === 'db' || i === 'table') {
@@ -35,11 +32,8 @@ const CommonParams = (function () {
3532
}
3633
params[i] = obj[i];
3734
}
38-
if (updateNavigation &&
39-
$('#pma_navigation_tree').hasClass('synced')
40-
) {
41-
Navigation.showCurrent();
42-
}
35+
36+
return updateNavigation;
4337
},
4438
/**
4539
* Retrieves a value given its key
@@ -58,22 +52,18 @@ const CommonParams = (function () {
5852
* @param {string} name The key
5953
* @param {string} value The value
6054
*
61-
* @return {CommonParams} For chainability
55+
* @return {boolean}
6256
*/
6357
set: function (name, value) {
64-
var updateNavigation = false;
58+
let updateNavigation = false;
6559
if (name === 'db' || name === 'table' &&
6660
params[name] !== value
6761
) {
6862
updateNavigation = true;
6963
}
7064
params[name] = value;
71-
if (updateNavigation &&
72-
$('#pma_navigation_tree').hasClass('synced')
73-
) {
74-
Navigation.showCurrent();
75-
}
76-
return this;
65+
66+
return updateNavigation;
7767
},
7868
/**
7969
* Returns the url query string using the saved parameters

js/src/modules/functions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ Functions.onloadIdleEvent = function () {
843843
});
844844
$('#input_username').trigger('focus');
845845
} else {
846-
CommonParams.set('token', data.new_token);
846+
Navigation.update(CommonParams.set('token', data.new_token));
847847
$('input[name=token]').val(data.new_token);
848848
}
849849
idleSecondsCounter = 0;

js/src/modules/indexes.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -733,8 +733,8 @@ Indexes.on = () => function () {
733733
}
734734
url += CommonParams.get('arg_separator') + 'ajax_request=true';
735735
Functions.indexEditorDialog(url, title, function (data) {
736-
CommonParams.set('db', data.params.db);
737-
CommonParams.set('table', data.params.table);
736+
Navigation.update(CommonParams.set('db', data.params.db));
737+
Navigation.update(CommonParams.set('table', data.params.table));
738738
refreshMainContent('index.php?route=/table/structure');
739739
});
740740
});
@@ -748,8 +748,8 @@ Indexes.on = () => function () {
748748
var title = window.Messages.strRenameIndex;
749749
url += CommonParams.get('arg_separator') + 'ajax_request=true';
750750
Functions.indexRenameDialog(url, title, function (data) {
751-
CommonParams.set('db', data.params.db);
752-
CommonParams.set('table', data.params.table);
751+
Navigation.update(CommonParams.set('db', data.params.db));
752+
Navigation.update(CommonParams.set('table', data.params.table));
753753
refreshMainContent('index.php?route=/table/structure');
754754
});
755755
});

js/src/modules/navigation.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ Navigation.onload = () => function () {
335335

336336
$(document).on('change', '#navi_db_select', function () {
337337
if (! $(this).val()) {
338-
CommonParams.set('db', '');
338+
Navigation.update(CommonParams.set('db', ''));
339339
Navigation.reload();
340340
}
341341
$(this).closest('form').trigger('submit');
@@ -1649,4 +1649,16 @@ Navigation.showFullName = function ($containerELem) {
16491649
});
16501650
};
16511651

1652+
/**
1653+
* @param {boolean} update
1654+
* @return {void}
1655+
*/
1656+
Navigation.update = update => {
1657+
if (update && $('#pma_navigation_tree').hasClass('synced')) {
1658+
Navigation.showCurrent();
1659+
}
1660+
};
1661+
1662+
window.Navigation = Navigation;
1663+
16521664
export { Navigation };

js/src/server/databases.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ function checkPrivilegesForDatabase () {
135135
$(this).on('click', function () {
136136
const db = $(this).attr('data');
137137
if (db !== CommonParams.get('db')) {
138-
CommonParams.setAll({ 'db': db, 'table': '' });
138+
Navigation.update(CommonParams.setAll({ 'db': db, 'table': '' }));
139139
}
140140
});
141141
});

js/src/sql.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -817,13 +817,13 @@ AJAX.registerOnload('sql.js', function () {
817817
}
818818

819819
if (data.params) {
820-
CommonParams.setAll(data.params);
820+
Navigation.update(CommonParams.setAll(data.params));
821821
}
822822

823823
if (typeof data.ajax_reload !== 'undefined') {
824824
if (data.ajax_reload.reload) {
825825
if (data.ajax_reload.table_name) {
826-
CommonParams.set('table', data.ajax_reload.table_name);
826+
Navigation.update(CommonParams.set('table', data.ajax_reload.table_name));
827827
refreshMainContent();
828828
} else {
829829
Navigation.reload();
@@ -832,7 +832,7 @@ AJAX.registerOnload('sql.js', function () {
832832
} else if (typeof data.reload !== 'undefined') {
833833
// this happens if a USE or DROP command was typed
834834
if (data.db !== CommonParams.get('db')) {
835-
CommonParams.setAll({ 'db': data.db, 'table': '' });
835+
Navigation.update(CommonParams.setAll({ 'db': data.db, 'table': '' }));
836836
}
837837

838838
var url;

js/src/table/operations.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ AJAX.registerOnload('table/operations.js', function () {
8484
$.post($form.attr('action'), $form.serialize() + argsep + 'submit_copy=Go', function (data) {
8585
if (typeof data !== 'undefined' && data.success === true) {
8686
if ($form.find('input[name=\'switch_to_new\']').prop('checked')) {
87-
CommonParams.set(
87+
Navigation.update(CommonParams.set(
8888
'db',
8989
$form.find('select[name=\'target_db\'],input[name=\'target_db\']').val()
90-
);
91-
CommonParams.set(
90+
));
91+
Navigation.update(CommonParams.set(
9292
'table',
9393
$form.find('input[name=\'new_name\']').val()
94-
);
94+
));
9595
refreshMainContent(false);
9696
AJAX.callback = () => {
9797
ajaxShowMessage(data.message);
@@ -117,8 +117,8 @@ AJAX.registerOnload('table/operations.js', function () {
117117
var argsep = CommonParams.get('arg_separator');
118118
$.post($form.attr('action'), $form.serialize() + argsep + 'submit_move=1', function (data) {
119119
if (typeof data !== 'undefined' && data.success === true) {
120-
CommonParams.set('db', data.params.db);
121-
CommonParams.set('table', data.params.table);
120+
Navigation.update(CommonParams.set('db', data.params.db));
121+
Navigation.update(CommonParams.set('table', data.params.table));
122122
refreshMainContent('index.php?route=/table/sql');
123123
AJAX.callback = () => {
124124
ajaxShowMessage(data.message);
@@ -168,7 +168,7 @@ AJAX.registerOnload('table/operations.js', function () {
168168
function submitOptionsForm () {
169169
$.post($form.attr('action'), $form.serialize(), function (data) {
170170
if (typeof data !== 'undefined' && data.success === true) {
171-
CommonParams.set('table', data.params.table);
171+
Navigation.update(CommonParams.set('table', data.params.table));
172172
refreshMainContent(false);
173173
AJAX.callback = () => {
174174
$('#page_content').html(data.message);
@@ -293,7 +293,7 @@ AJAX.registerOnload('table/operations.js', function () {
293293
ajaxRemoveMessage($msgbox);
294294
// Table deleted successfully, refresh both the frames
295295
Navigation.reload();
296-
CommonParams.set('table', '');
296+
Navigation.update(CommonParams.set('table', ''));
297297
refreshMainContent(CommonParams.get('opendb_url'));
298298
AJAX.callback = () => {
299299
ajaxShowMessage(data.message);
@@ -325,7 +325,7 @@ AJAX.registerOnload('table/operations.js', function () {
325325
ajaxRemoveMessage($msgbox);
326326
// Table deleted successfully, refresh both the frames
327327
Navigation.reload();
328-
CommonParams.set('table', '');
328+
Navigation.update(CommonParams.set('table', ''));
329329
refreshMainContent(CommonParams.get('opendb_url'));
330330
AJAX.callback = () => {
331331
ajaxShowMessage(data.message);

0 commit comments

Comments
 (0)