Skip to content

Commit

Permalink
Force a full page reload for top menu links
Browse files Browse the repository at this point in the history
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 36a77f7)
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed Aug 31, 2023
1 parent c4fb42e commit b50fa31
Show file tree
Hide file tree
Showing 14 changed files with 33 additions and 46 deletions.
4 changes: 2 additions & 2 deletions templates/database/multi_table_query/form.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
4 changes: 2 additions & 2 deletions templates/database/qbe/index.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
16 changes: 8 additions & 8 deletions templates/preferences/header.twig
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
4 changes: 2 additions & 2 deletions templates/server/privileges/subnav.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
12 changes: 6 additions & 6 deletions templates/server/status/base.twig
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
6 changes: 3 additions & 3 deletions templates/table/find_replace/index.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
4 changes: 2 additions & 2 deletions templates/table/page_with_secondary_tabs.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
6 changes: 3 additions & 3 deletions templates/table/search/index.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
6 changes: 3 additions & 3 deletions templates/table/zoom_search/index.twig
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
2 changes: 1 addition & 1 deletion templates/top_menu.twig
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
2 changes: 0 additions & 2 deletions test/selenium/ServerSettingsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ protected function setUp(): void
$this->expandMore();
$this->waitForElement('partialLinkText', 'Settings')->click();
$this->waitAjax();

$this->waitForElement('xpath', "//a[@class='nav-link text-nowrap' and contains(., 'Settings')]");
}

/**
Expand Down
6 changes: 1 addition & 5 deletions test/selenium/Table/CreateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ protected function setUp(): void
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);
}

/**
Expand Down
2 changes: 0 additions & 2 deletions test/selenium/Table/OperationsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,6 @@ public function testDropTable(): void
'//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',
Expand Down
5 changes: 0 additions & 5 deletions test/selenium/TestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -953,8 +953,6 @@ public function navigateTable(string $table, bool $gotoHomepageRequired = false)
// 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')]");
}

/**
Expand All @@ -979,9 +977,6 @@ public function navigateDatabase(string $database, bool $gotoHomepageRequired =
'//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')]");
}

/**
Expand Down

0 comments on commit b50fa31

Please sign in to comment.