Skip to content

Commit 5e6541e

Browse files
committed
Move menuResizer related functions to menu-resizer.js
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent a6b733e commit 5e6541e

8 files changed

Lines changed: 41 additions & 28 deletions

File tree

js/src/main.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { PageSettings } from './modules/page_settings.js';
77
import { crossFramingProtection } from './modules/cross_framing_protection.js';
88
import { Indexes } from './modules/indexes.js';
99
import { Config } from './modules/config.js';
10+
import { initializeMenuResizer } from './modules/menu-resizer.js';
1011

1112
AJAX.registerOnload('main.js', () => AJAX.removeSubmitEvents());
1213
$(AJAX.loadEventHandler());
@@ -33,7 +34,7 @@ AJAX.registerTeardown('main.js', Functions.off());
3334
AJAX.registerOnload('main.js', Functions.on());
3435

3536
$(Functions.dismissNotifications());
36-
$(Functions.initializeMenuResizer());
37+
$(initializeMenuResizer());
3738
$(Functions.floatingMenuBar());
3839
$(Functions.breadcrumbScrollToTop());
3940

js/src/modules/ajax.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import $ from 'jquery';
22
import { Functions } from './functions.js';
33
import { Navigation } from './navigation.js';
44
import { CommonParams } from './common.js';
5+
import { initializeTopMenuResizer } from './menu-resizer.js';
56

67
/**
78
* This object handles ajax requests for pages. It also
@@ -221,7 +222,7 @@ const AJAX = {
221222
// Remove duplicate wrapper
222223
// TODO: don't send it in the response
223224
.children().first().remove();
224-
$('#topmenu').menuResizer(Functions.mainMenuResizerCallback);
225+
initializeTopMenuResizer();
225226
}
226227
},
227228
/**

js/src/modules/functions.js

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { CommonActions, CommonParams } from './common.js';
55
import { mysqlDocKeyword, mysqlDocBuiltin } from './doc-links.js';
66
import { Indexes } from './indexes.js';
77
import { Config } from './config.js';
8+
import { resizeTopMenu } from './menu-resizer.js';
89

910
/* global ChartType, ColumnType, DataTable, JQPlotChartFactory */ // js/chart.js
1011
/* global DatabaseStructure */ // js/database/structure.js
@@ -3300,24 +3301,6 @@ Functions.showHints = function ($div) {
33003301
});
33013302
};
33023303

3303-
Functions.mainMenuResizerCallback = function () {
3304-
// 5 px margin for jumping menu in Chrome
3305-
// eslint-disable-next-line compat/compat
3306-
return $(document.body).width() - 5;
3307-
};
3308-
3309-
/**
3310-
* @return {function}
3311-
*/
3312-
Functions.initializeMenuResizer = () => function () {
3313-
// Initialise the menu resize plugin
3314-
$('#topmenu').menuResizer(Functions.mainMenuResizerCallback);
3315-
// register resize event
3316-
$(window).on('resize', function () {
3317-
$('#topmenu').menuResizer('resize');
3318-
});
3319-
};
3320-
33213304
/**
33223305
* var toggleButton This is a function that creates a toggle
33233306
* sliding button given a jQuery reference
@@ -3840,7 +3823,7 @@ Functions.floatingMenuBar = () => function () {
38403823
'padding-top',
38413824
$('#floating_menubar').outerHeight(true)
38423825
);
3843-
$('#topmenu').menuResizer('resize');
3826+
resizeTopMenu();
38443827
}, 4);
38453828
}
38463829
};
Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import $ from 'jquery';
2-
import { Functions } from './modules/functions.js';
2+
import { Functions } from './functions.js';
33

44
/**
55
* Handles the resizing of a menu according to the available screen width
@@ -174,7 +174,7 @@ import { Functions } from './modules/functions.js';
174174
/**
175175
* Extend jQuery
176176
*
177-
* @param {string} method
177+
* @param {string|Function} method
178178
*
179179
* @return {any}
180180
*/
@@ -188,3 +188,33 @@ import { Functions } from './modules/functions.js';
188188
}
189189
};
190190
}($));
191+
192+
/**
193+
* @return {void}
194+
*/
195+
function resizeTopMenu () {
196+
$('#topmenu').menuResizer('resize');
197+
}
198+
199+
/**
200+
* @return {void}
201+
*/
202+
function initializeTopMenuResizer () {
203+
$('#topmenu').menuResizer(() => $(document.body).width() - 5);
204+
}
205+
206+
/**
207+
* @return {function}
208+
*/
209+
function initializeMenuResizer () {
210+
return function () {
211+
// Initialise the menu resize plugin
212+
initializeTopMenuResizer();
213+
// register resize event
214+
$(window).on('resize', function () {
215+
resizeTopMenu();
216+
});
217+
};
218+
}
219+
220+
export { initializeMenuResizer, initializeTopMenuResizer, resizeTopMenu };

js/src/modules/navigation.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import $ from 'jquery';
22
import { Functions } from './functions.js';
33
import { CommonParams } from './common.js';
44
import { Config } from './config.js';
5+
import { resizeTopMenu } from './menu-resizer.js';
56

67
/**
78
* function used in or for navigation panel
@@ -1197,7 +1198,7 @@ Navigation.ResizeHandler = function () {
11971198
this.mouseup = function (event) {
11981199
$('body').css('cursor', '');
11991200
Functions.configSet('NavigationWidth', event.data.resize_handler.getPos(event));
1200-
$('#topmenu').menuResizer('resize');
1201+
resizeTopMenu();
12011202
$(document)
12021203
.off('mousemove')
12031204
.off('mouseup');
@@ -1284,7 +1285,7 @@ Navigation.ResizeHandler = function () {
12841285
this.treeResize();
12851286
const callbackSuccessGetConfigValue = (data) => {
12861287
this.setWidth(data);
1287-
$('#topmenu').menuResizer('resize');
1288+
resizeTopMenu();
12881289
};
12891290
// Skip mobile
12901291
if (isLoadedOnMobile === false) {

libraries/classes/Header.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ private function addDefaultScripts(): void
140140
$this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js');
141141
$this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]);
142142
$this->scripts->addFile('shared.js');
143-
$this->scripts->addFile('menu_resizer.js');
144143
$this->scripts->addFile('main.js');
145144

146145
$this->scripts->addCode($this->getJsParamsCode());

test/classes/HeaderTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,6 @@ public function testAddedDefaultScripts(): void
262262
['name' => 'vendor/jquery/jquery-ui-timepicker-addon.js', 'fire' => 0],
263263
['name' => 'index.php', 'fire' => 0],
264264
['name' => 'shared.js', 'fire' => 0],
265-
['name' => 'menu_resizer.js', 'fire' => 1],
266265
['name' => 'main.js', 'fire' => 1],
267266
];
268267
$this->assertSame($expected, $scripts->getFiles());

webpack.config.cjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ module.exports = [
4343
'jquery.sortable-table': './js/src/jquery.sortable-table.js',
4444
'main': './js/src/main.js',
4545
'makegrid': './js/src/makegrid.js',
46-
'menu_resizer': './js/src/menu_resizer.js',
4746
'multi_column_sort': './js/src/multi_column_sort.js',
4847
'name-conflict-fixes': './js/src/name-conflict-fixes.js',
4948
'normalization': './js/src/normalization.js',

0 commit comments

Comments
 (0)