diff --git a/web/pgadmin/browser/templates/browser/js/node.js b/web/pgadmin/browser/templates/browser/js/node.js
index e10653c..f35613e 100644
--- a/web/pgadmin/browser/templates/browser/js/node.js
+++ b/web/pgadmin/browser/templates/browser/js/node.js
@@ -730,9 +730,7 @@ define([
return;
// Here call data grid method to render query tool
- pgAdmin.DataGrid.show_query_tool.apply(
- this, [undefined, i]
- );
+ pgAdmin.DataGrid.show_query_tool('', i);
},
added: function(item, data, browser) {
var b = browser || pgBrowser,
diff --git a/web/pgadmin/static/css/webcabin.overrides.css b/web/pgadmin/static/css/webcabin.overrides.css
index 9c9b81a..f51592a 100644
--- a/web/pgadmin/static/css/webcabin.overrides.css
+++ b/web/pgadmin/static/css/webcabin.overrides.css
@@ -369,3 +369,16 @@ i.wcTabIcon {
position: absolute;
text-align: center;
}
+
+.wcPanelTab > div {
+ display: inline-block;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ max-width: 125px;
+}
+
+.wcPanelTabActive > div {
+ width: auto !important;
+ max-width: 100%;
+}
diff --git a/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js b/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
index 53deb78..ef58024 100644
--- a/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
+++ b/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
@@ -110,7 +110,6 @@ define([
// Creating a new pgAdmin.Browser frame to show the data.
var dataGridFrameType = new pgAdmin.Browser.Frame({
name: 'frm_datagrid',
- title: 'Edit Data',
showTitle: true,
isCloseable: true,
isPrivate: true,
@@ -162,7 +161,7 @@ define([
var baseUrl = "{{ url_for('datagrid.index') }}" + "initialize/datagrid/" + data.mnuid + "/" + d._type + "/" +
parentData.server._id + "/" + parentData.database._id + "/" + d._id;
- var grid_title = parentData.server.label + '-' + parentData.database.label + '-'
+ var grid_title = parentData.server.label + ' - ' + parentData.database.label + ' - '
+ nsp_name + '.' + d.label;
// Initialize the data grid.
@@ -306,8 +305,32 @@ define([
);
},
+ get_panel_title: function() {
+ // Get the parent data from the tree node hierarchy.
+ var tree = pgAdmin.Browser.tree,
+ selected_item = tree.selected(),
+ item_data = tree.itemData(selected_item);
+ var self = this;
+
+ var node = pgBrowser.Nodes[item_data._type],
+ parentData = node.getTreeNodeHierarchy(selected_item);
+
+ // If server, database is undefined then return from the function.
+ if (parentData.server === undefined) {
+ return;
+ }
+ // If Database is not available then use default db
+ var db_label = parentData.database ? parentData.database.label
+ : parentData.server.db;
+
+ var grid_title = db_label + ' on ' + parentData.server.user.name + '@' +
+ parentData.server.label;
+ return grid_title;
+ },
+
initialize_data_grid: function(baseUrl, grid_title, sql_filter) {
var self = this;
+ self.grid_title = grid_title;
/* Ajax call to initialize the edit grid, which creates
* an asynchronous connection and create appropriate query
@@ -324,23 +347,21 @@ define([
/* On successfully initialization find the dashboard panel,
* create new panel and add it to the dashboard panel.
*/
- var panel_title = ' Query-' + self.title_index;
- self.title_index += 1;
baseUrl = "{{ url_for('datagrid.index') }}" + "panel/" + res.data.gridTransId + "/false/"
- + encodeURIComponent(grid_title);
-
+ + encodeURIComponent(self.grid_title);
+ var grid_title = gettext('Edit Data - ') + self.grid_title;
if (res.data.newBrowserTab) {
var newWin = window.open(baseUrl, '_blank');
// add a load listener to the window so that the title gets changed on page load
newWin.addEventListener("load", function() {
- newWin.document.title = panel_title;
+ newWin.document.title = grid_title;
});
} else {
var dashboardPanel = pgBrowser.docker.findPanels('dashboard');
dataGridPanel = pgBrowser.docker.addPanel('frm_datagrid', wcDocker.DOCK.STACKED, dashboardPanel[0]);
- dataGridPanel.title(panel_title);
+ dataGridPanel.title(''+grid_title+'');
dataGridPanel.icon('fa fa-bolt');
dataGridPanel.focus();
@@ -408,21 +429,6 @@ define([
if (parentData.database) {
baseUrl += "/" + parentData.database._id;
}
- // If Database is not available then use default db
- var db_label = parentData.database ? parentData.database.label
- : parentData.server.db;
-
- var grid_title = db_label + ' on ' + parentData.server.user.name + '@' +
- parentData.server.label ;
-
- var panel_title = ' Query-';
-
- if (!_.isUndefined(self.title_index) && !isNaN(self.title_index)) {
- panel_title += self.title_index;
- self.title_index += 1;
- } else {
- panel_title += gettext(" untitled");
- }
$.ajax({
url: baseUrl,
@@ -431,16 +437,18 @@ define([
contentType: "application/json",
success: function(res) {
+ var grid_title = self.get_panel_title();
// Open the panel if frame is initialized
baseUrl = "{{ url_for('datagrid.index') }}" + "panel/" + res.data.gridTransId + "/true/"
+ encodeURIComponent(grid_title) + '?' + "query_url=" + encodeURI(sURL);
+ grid_title = gettext('Query - ') + grid_title;
if (res.data.newBrowserTab) {
var newWin = window.open(baseUrl, '_blank');
// add a load listener to the window so that the title gets changed on page load
newWin.addEventListener("load", function() {
- newWin.document.title = panel_title;
+ newWin.document.title = grid_title;
});
} else {
/* On successfully initialization find the dashboard panel,
@@ -448,7 +456,7 @@ define([
*/
var dashboardPanel = pgBrowser.docker.findPanels('dashboard');
queryToolPanel = pgBrowser.docker.addPanel('frm_datagrid', wcDocker.DOCK.STACKED, dashboardPanel[0]);
- queryToolPanel.title(panel_title);
+ queryToolPanel.title(''+grid_title+'');
queryToolPanel.icon('fa fa-bolt');
queryToolPanel.focus();
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index ea8fedb..cabc498 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -107,12 +107,11 @@ define([
// This function is used to render the template.
render: function() {
- var self = this;
+ var self = this,
+ filter = self.$el.find('#sql_filter');
$('.editor-title').text(_.unescape(self.editor_title));
- var filter = self.$el.find('#sql_filter');
-
self.filter_obj = CodeMirror.fromTextArea(filter.get(0), {
lineNumbers: true,
matchBrackets: true,