Force a full page reload for top menu links
Each page is a different page, so it makes more sense to do a full page
reload instead of using AJAX to load the main content.
This also avoid some possible issues with broken event handlers and
not properly loaded pages.
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
(cherry picked from commit 36a77f7476)
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
c4fb42e3c6
commit
b50fa31c45
@ -1,12 +1,12 @@
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="{{ url('/database/multi-table-query', {'db': db}) }}">
|
||||
<a class="nav-link active disableAjax" href="{{ url('/database/multi-table-query', {'db': db}) }}">
|
||||
{% trans 'Multi-table query' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/database/qbe', {'db': db}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/database/qbe', {'db': db}) }}">
|
||||
{% trans 'Query by example' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/database/multi-table-query', url_params) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/database/multi-table-query', url_params) }}">
|
||||
{% trans 'Multi-table query' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="{{ url('/database/qbe', url_params) }}">
|
||||
<a class="nav-link active disableAjax" href="{{ url('/database/qbe', url_params) }}">
|
||||
{% trans 'Query by example' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -2,49 +2,49 @@
|
||||
<div class="row">
|
||||
<ul id="user_prefs_tabs" class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/manage') }}" class="nav-link{{ route == '/preferences/manage' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/manage') }}" class="nav-link{{ route == '/preferences/manage' ? ' active' }} disableAjax">
|
||||
{% trans 'Manage your settings' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/two-factor') }}" class="nav-link{{ route == '/preferences/two-factor' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/two-factor') }}" class="nav-link{{ route == '/preferences/two-factor' ? ' active' }} disableAjax">
|
||||
{% trans 'Two-factor authentication' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/features') }}" class="nav-link{{ route == '/preferences/features' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/features') }}" class="nav-link{{ route == '/preferences/features' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_tblops', 'Features'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/sql') }}" class="nav-link{{ route == '/preferences/sql' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/sql') }}" class="nav-link{{ route == '/preferences/sql' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_sql', 'SQL queries'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/navigation') }}" class="nav-link{{ route == '/preferences/navigation' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/navigation') }}" class="nav-link{{ route == '/preferences/navigation' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_select', 'Navigation panel'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/main-panel') }}" class="nav-link{{ route == '/preferences/main-panel' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/main-panel') }}" class="nav-link{{ route == '/preferences/main-panel' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_props', 'Main panel'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/export') }}" class="nav-link{{ route == '/preferences/export' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/export') }}" class="nav-link{{ route == '/preferences/export' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_export', 'Export'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/preferences/import') }}" class="nav-link{{ route == '/preferences/import' ? ' active' }}">
|
||||
<a href="{{ url('/preferences/import') }}" class="nav-link{{ route == '/preferences/import' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_import', 'Import'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<div class="row">
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link{{ active == 'privileges' ? ' active' }}" href="{{ url('/server/privileges', {'viewing_mode': 'server'}) }}">
|
||||
<a class="nav-link{{ active == 'privileges' ? ' active' }} disableAjax" href="{{ url('/server/privileges', {'viewing_mode': 'server'}) }}">
|
||||
{% trans 'User accounts overview' %}
|
||||
</a>
|
||||
</li>
|
||||
{% if is_super_user %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link{{ active == 'user-groups' ? ' active' }}" href="{{ url('/server/user-groups') }}">
|
||||
<a class="nav-link{{ active == 'user-groups' ? ' active' }} disableAjax" href="{{ url('/server/user-groups') }}">
|
||||
{% trans 'User groups' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -2,32 +2,32 @@
|
||||
<div class="row">
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status') }}" class="nav-link{{ active == 'status' ? ' active' }}">
|
||||
<a href="{{ url('/server/status') }}" class="nav-link{{ active == 'status' ? ' active' }} disableAjax">
|
||||
{% trans 'Server' %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status/processes') }}" class="nav-link{{ active == 'processes' ? ' active' }}">
|
||||
<a href="{{ url('/server/status/processes') }}" class="nav-link{{ active == 'processes' ? ' active' }} disableAjax">
|
||||
{% trans 'Processes' %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status/queries') }}" class="nav-link{{ active == 'queries' ? ' active' }}">
|
||||
<a href="{{ url('/server/status/queries') }}" class="nav-link{{ active == 'queries' ? ' active' }} disableAjax">
|
||||
{% trans 'Query statistics' %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status/variables') }}" class="nav-link{{ active == 'variables' ? ' active' }}">
|
||||
<a href="{{ url('/server/status/variables') }}" class="nav-link{{ active == 'variables' ? ' active' }} disableAjax">
|
||||
{% trans 'All status variables' %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status/monitor') }}" class="nav-link{{ active == 'monitor' ? ' active' }}">
|
||||
<a href="{{ url('/server/status/monitor') }}" class="nav-link{{ active == 'monitor' ? ' active' }} disableAjax">
|
||||
{% trans 'Monitor' %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/server/status/advisor') }}" class="nav-link{{ active == 'advisor' ? ' active' }}">
|
||||
<a href="{{ url('/server/status/advisor') }}" class="nav-link{{ active == 'advisor' ? ' active' }} disableAjax">
|
||||
{% trans 'Advisor' %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
{{ get_icon('b_search', 'Table search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_select', 'Zoom search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link active disableAjax" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_find_replace', 'Find and replace'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
{% if relation_parameters.relationFeature is not null or is_foreign_key_supported %}
|
||||
<ul class="nav nav-pills m-2 d-print-none">
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/table/structure', {'db': db, 'table': table}) }}" id="table_structure_id" class="nav-link{{ route == '/table/structure' ? ' active' }}">
|
||||
<a href="{{ url('/table/structure', {'db': db, 'table': table}) }}" id="table_structure_id" class="nav-link{{ route == '/table/structure' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_props', 'Table structure'|trans, true) }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ url('/table/relation', {'db': db, 'table': table}) }}" id="table_relation_id" class="nav-link{{ route == '/table/relation' ? ' active' }}">
|
||||
<a href="{{ url('/table/relation', {'db': db, 'table': table}) }}" id="table_relation_id" class="nav-link{{ route == '/table/relation' ? ' active' }} disableAjax">
|
||||
{{ get_icon('b_relations', 'Relation view'|trans, true) }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
<a class="nav-link active disableAjax" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
{{ get_icon('b_search', 'Table search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_select', 'Zoom search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_find_replace', 'Find and replace'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
<ul class="nav nav-pills m-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/search', {'db': db, 'table': table, 'pos': 0}) }}">
|
||||
{{ get_icon('b_search', 'Table search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link active disableAjax" href="{{ url('/table/zoom-search', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_select', 'Zoom search'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
<a class="nav-link disableAjax" href="{{ url('/table/find-replace', {'db': db, 'table': table}) }}">
|
||||
{{ get_icon('b_find_replace', 'Find and replace'|trans, false, false, 'TabsMode') }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
<ul id="topmenu" class="navbar-nav">
|
||||
{% for tab in tabs %}
|
||||
<li class="nav-item{{ tab.active ? ' active' }}">
|
||||
<a class="nav-link text-nowrap" href="{{ url(tab.route, url_params|merge(tab.args ?? [])) }}">
|
||||
<a class="nav-link text-nowrap disableAjax" href="{{ url(tab.route, url_params|merge(tab.args ?? [])) }}">
|
||||
{{ get_icon(tab.icon, tab.text, false, true, 'TabsMode') }}
|
||||
{% if tab.active %}
|
||||
<span class="visually-hidden">{% trans %}(current){% notes %}Current page{% endtrans %}</span>
|
||||
|
||||
@ -28,8 +28,6 @@ class ServerSettingsTest extends TestBase
|
||||
$this->expandMore();
|
||||
$this->waitForElement('partialLinkText', 'Settings')->click();
|
||||
$this->waitAjax();
|
||||
|
||||
$this->waitForElement('xpath', "//a[@class='nav-link text-nowrap' and contains(., 'Settings')]");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -18,11 +18,7 @@ class CreateTest extends TestBase
|
||||
parent::setUp();
|
||||
|
||||
$this->login();
|
||||
$this->waitForElement('partialLinkText', 'Databases')->click();
|
||||
$this->waitAjax();
|
||||
|
||||
// go to specific database page
|
||||
$this->waitForElement('partialLinkText', $this->databaseName)->click();
|
||||
$this->navigateDatabase($this->databaseName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -220,8 +220,6 @@ class OperationsTest extends TestBase
|
||||
'//div[@class=\'alert alert-success\' and contains(., \'MySQL returned an empty result set\')]'
|
||||
);
|
||||
|
||||
$this->waitForElement('xpath', "//a[@class='nav-link text-nowrap' and contains(., 'Structure')]");
|
||||
|
||||
$this->dbQuery(
|
||||
'USE `' . $this->databaseName . '`;'
|
||||
. 'SHOW TABLES',
|
||||
|
||||
@ -953,8 +953,6 @@ abstract class TestBase extends TestCase
|
||||
// go to table page
|
||||
$this->waitForElement('xpath', "//th//a[contains(., '" . $table . "')]")->click();
|
||||
$this->waitAjax();
|
||||
|
||||
$this->waitForElement('xpath', "//a[@class='nav-link text-nowrap' and contains(., 'Browse')]");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -979,9 +977,6 @@ abstract class TestBase extends TestCase
|
||||
'//tr[(contains(@class, "db-row"))]//a[contains(., "' . $database . '")]'
|
||||
)->click();
|
||||
$this->waitAjax();
|
||||
|
||||
// Wait for it to load
|
||||
$this->waitForElement('xpath', "//a[@class='nav-link text-nowrap' and contains(., 'Structure')]");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user