From ac358d45ae8095fed7f0ae4d75b2ad8fb5129446 Mon Sep 17 00:00:00 2001 From: Rahul Gurung Date: Tue, 4 Feb 2020 22:02:25 +0530 Subject: [PATCH] Fix #15810 - the modal heading Co-Authored-by: William Desportes In respect for the PR owner I am only co-autor but re-did all the work. Signed-off-by: Rahul Gurung --- js/rte.js | 4 +++- libraries/classes/Navigation/NavigationTree.php | 2 +- libraries/classes/Navigation/Nodes/NodeColumnContainer.php | 1 + libraries/classes/Navigation/Nodes/NodeDatabaseContainer.php | 4 +++- libraries/classes/Navigation/Nodes/NodeEventContainer.php | 4 +++- libraries/classes/Navigation/Nodes/NodeFunctionContainer.php | 1 + libraries/classes/Navigation/Nodes/NodeIndexContainer.php | 1 + libraries/classes/Navigation/Nodes/NodeProcedureContainer.php | 1 + libraries/classes/Navigation/Nodes/NodeTableContainer.php | 1 + libraries/classes/Navigation/Nodes/NodeTriggerContainer.php | 4 +++- libraries/classes/Navigation/Nodes/NodeViewContainer.php | 1 + 11 files changed, 19 insertions(+), 5 deletions(-) diff --git a/js/rte.js b/js/rte.js index 64bb590fd4..d87d55abf7 100644 --- a/js/rte.js +++ b/js/rte.js @@ -339,7 +339,9 @@ RTE.COMMON = { minWidth: 500, maxHeight: $(window).height(), buttons: that.buttonOptions, - title: data.title, + // Issue #15810 - use button titles for modals (eg: new procedure) + // Respect the order: title on href tag, href content, title sent in response + title: $this.attr('title') || $this.text() || $(data.title).text(), modal: true, open: function () { if ($('#rteDialog').parents('.ui-dialog').height() > $(window).height()) { diff --git a/libraries/classes/Navigation/NavigationTree.php b/libraries/classes/Navigation/NavigationTree.php index 911a35ce30..c5046a2603 100644 --- a/libraries/classes/Navigation/NavigationTree.php +++ b/libraries/classes/Navigation/NavigationTree.php @@ -1193,7 +1193,7 @@ class NavigationTree $args[] = urlencode($parent->realName); } $link = vsprintf($node->links['text'], $args); - $title = isset($node->links['title']) ? $node->links['title'] : ''; + $title = isset($node->links['title']) ? $node->links['title'] : $node->title ?? ''; if ($node->type == Node::CONTAINER) { $retval .= " "; $retval .= htmlspecialchars($node->name); diff --git a/libraries/classes/Navigation/Nodes/NodeColumnContainer.php b/libraries/classes/Navigation/Nodes/NodeColumnContainer.php index 22cba58dc3..b47c80f264 100644 --- a/libraries/classes/Navigation/Nodes/NodeColumnContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeColumnContainer.php @@ -41,6 +41,7 @@ class NodeColumnContainer extends Node ); $new->isNew = true; $new->icon = Util::getImage('b_column_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'tbl_addfield.php?server=' . $GLOBALS['server'] . '&db=%3$s&table=%2$s' diff --git a/libraries/classes/Navigation/Nodes/NodeDatabaseContainer.php b/libraries/classes/Navigation/Nodes/NodeDatabaseContainer.php index 9b5746f090..8170e04b53 100644 --- a/libraries/classes/Navigation/Nodes/NodeDatabaseContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeDatabaseContainer.php @@ -35,12 +35,14 @@ class NodeDatabaseContainer extends Node if ($GLOBALS['is_create_db_priv'] && $GLOBALS['cfg']['ShowCreateDb'] !== false ) { + $newLabel = _pgettext('Create new database', 'New'); $new = NodeFactory::getInstance( 'Node', - _pgettext('Create new database', 'New') + $newLabel ); $new->isNew = true; $new->icon = Util::getImage('b_newdb', ''); + $new->title = $newLabel; $new->links = [ 'text' => 'server_databases.php?server=' . $GLOBALS['server'], 'icon' => 'server_databases.php?server=' . $GLOBALS['server'], diff --git a/libraries/classes/Navigation/Nodes/NodeEventContainer.php b/libraries/classes/Navigation/Nodes/NodeEventContainer.php index 86c2937883..90bf7102fd 100644 --- a/libraries/classes/Navigation/Nodes/NodeEventContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeEventContainer.php @@ -34,12 +34,14 @@ class NodeEventContainer extends NodeDatabaseChildContainer ]; $this->realName = 'events'; + $newLabel = _pgettext('Create new event', 'New'); $new = NodeFactory::getInstance( 'Node', - _pgettext('Create new event', 'New') + $newLabel ); $new->isNew = true; $new->icon = Util::getImage('b_event_add', ''); + $new->title = $newLabel; $new->links = [ 'text' => 'db_events.php?server=' . $GLOBALS['server'] . '&db=%2$s&add_item=1', diff --git a/libraries/classes/Navigation/Nodes/NodeFunctionContainer.php b/libraries/classes/Navigation/Nodes/NodeFunctionContainer.php index 52715a3839..788c0909a5 100644 --- a/libraries/classes/Navigation/Nodes/NodeFunctionContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeFunctionContainer.php @@ -41,6 +41,7 @@ class NodeFunctionContainer extends NodeDatabaseChildContainer ); $new->isNew = true; $new->icon = Util::getImage('b_routine_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'db_routines.php?server=' . $GLOBALS['server'] . '&db=%2$s&add_item=1&item_type=FUNCTION', diff --git a/libraries/classes/Navigation/Nodes/NodeIndexContainer.php b/libraries/classes/Navigation/Nodes/NodeIndexContainer.php index 9be90d3019..16645a6c23 100644 --- a/libraries/classes/Navigation/Nodes/NodeIndexContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeIndexContainer.php @@ -41,6 +41,7 @@ class NodeIndexContainer extends Node ); $new->isNew = true; $new->icon = Util::getImage('b_index_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'tbl_indexes.php?server=' . $GLOBALS['server'] . '&create_index=1&added_fields=2' diff --git a/libraries/classes/Navigation/Nodes/NodeProcedureContainer.php b/libraries/classes/Navigation/Nodes/NodeProcedureContainer.php index 1978edea00..2b036fd0fb 100644 --- a/libraries/classes/Navigation/Nodes/NodeProcedureContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeProcedureContainer.php @@ -41,6 +41,7 @@ class NodeProcedureContainer extends NodeDatabaseChildContainer ); $new->isNew = true; $new->icon = Util::getImage('b_routine_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'db_routines.php?server=' . $GLOBALS['server'] . '&db=%2$s&add_item=1', diff --git a/libraries/classes/Navigation/Nodes/NodeTableContainer.php b/libraries/classes/Navigation/Nodes/NodeTableContainer.php index ec93203616..a8965ee056 100644 --- a/libraries/classes/Navigation/Nodes/NodeTableContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeTableContainer.php @@ -42,6 +42,7 @@ class NodeTableContainer extends NodeDatabaseChildContainer ); $new->isNew = true; $new->icon = Util::getImage('b_table_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'tbl_create.php?server=' . $GLOBALS['server'] . '&db=%2$s', diff --git a/libraries/classes/Navigation/Nodes/NodeTriggerContainer.php b/libraries/classes/Navigation/Nodes/NodeTriggerContainer.php index a5aa3b731a..a1abbeb619 100644 --- a/libraries/classes/Navigation/Nodes/NodeTriggerContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeTriggerContainer.php @@ -34,12 +34,14 @@ class NodeTriggerContainer extends Node ]; $this->realName = 'triggers'; + $newLabel = _pgettext('Create new trigger', 'New'); $new = NodeFactory::getInstance( 'Node', - _pgettext('Create new trigger', 'New') + $newLabel ); $new->isNew = true; $new->icon = Util::getImage('b_trigger_add', ''); + $new->title = $newLabel; $new->links = [ 'text' => 'db_triggers.php?server=' . $GLOBALS['server'] . '&db=%3$s&add_item=1', diff --git a/libraries/classes/Navigation/Nodes/NodeViewContainer.php b/libraries/classes/Navigation/Nodes/NodeViewContainer.php index f202904905..95dcff4b96 100644 --- a/libraries/classes/Navigation/Nodes/NodeViewContainer.php +++ b/libraries/classes/Navigation/Nodes/NodeViewContainer.php @@ -42,6 +42,7 @@ class NodeViewContainer extends NodeDatabaseChildContainer ); $new->isNew = true; $new->icon = Util::getImage('b_view_add', $newLabel); + $new->title = $newLabel; $new->links = [ 'text' => 'view_create.php?server=' . $GLOBALS['server'] . '&db=%2$s',