mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Clear the node cache, when an node is created/updated to make sure - we
will always have latest data related to that type of node. Also, fixed
the cache_level for different node types.
This commit also contains fixes for the following issue:
* In extension module - use the 'node-list-by-name' instead of using a
custom 'node-ajax-options' control, and removed redundant template
schemas from it.
* When we tries to destroy the select2 object from
Select2Cell/Select2Control while releasing the properties view,
sometimes select2 can not find the instance related it for some
unknown reason. Hence - before removing it we will check for manual
instance existance using $.data('select2').
* When we traverse through the browser tree nodes very quickly, it tries
to remove the object before it gets created completely, and results
into an exception.
* Icon in the select2 drop down list was not visible due to some CSS
issues.
Apart of that, we will generate two new browser events -
'pgadmin-node:created:<NODE-TYPE>', 'pgadmin-node:updated:<NODE-TYPE>'
whenever a new node is created, or an existing node will be updated.
This commit is contained in:
@@ -79,22 +79,28 @@ function($, _, pgAdmin, Backbone, Backform, Alertify, Node) {
|
||||
if (url) {
|
||||
var node = this.field.get('schema_node'),
|
||||
node_info = this.field.get('node_info'),
|
||||
with_id = this.field.get('url_with_id') || false,
|
||||
full_url = node.generate_url.apply(
|
||||
node, [
|
||||
null, url, this.field.get('node_data'),
|
||||
this.field.get('url_with_id') || false, node_info
|
||||
null, url, this.field.get('node_data'), with_id, node_info
|
||||
]),
|
||||
cache_level = this.field.get('cache_level') || node.type,
|
||||
cache_level,
|
||||
cache_node = this.field.get('cache_node');
|
||||
|
||||
cache_node = (cache_node && pgAdmin.Browser.Nodes['cache_node']) || node;
|
||||
|
||||
if (this.field.has('cache_level')) {
|
||||
cache_level = this.field.get('cache_level');
|
||||
} else {
|
||||
cache_level = cache_node.cache_level(node_info, with_id);
|
||||
}
|
||||
|
||||
/*
|
||||
* We needs to check, if we have already cached data for this url.
|
||||
* If yes - use that, and do not bother about fetching it again,
|
||||
* and use it.
|
||||
*/
|
||||
var data = cache_node.cache(url, node_info, cache_level);
|
||||
var data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
||||
|
||||
if (this.field.get('version_compatible') &&
|
||||
(_.isUndefined(data) || _.isNull(data))) {
|
||||
@@ -107,7 +113,7 @@ function($, _, pgAdmin, Backbone, Backform, Alertify, Node) {
|
||||
* We will cache this data for short period of time for avoiding
|
||||
* same calls.
|
||||
*/
|
||||
data = cache_node.cache(url, node_info, cache_level, res.data);
|
||||
data = cache_node.cache(node.type + '#' + url, node_info, cache_level, res.data);
|
||||
},
|
||||
error: function() {
|
||||
m.trigger('pgadmin:view:fetch:error', m, self.field);
|
||||
@@ -341,22 +347,28 @@ function($, _, pgAdmin, Backbone, Backform, Alertify, Node) {
|
||||
eventHandler = m.top || m,
|
||||
node = column.get('schema_node'),
|
||||
node_info = column.get('node_info'),
|
||||
with_id = column.get('url_with_id') || false,
|
||||
full_url = node.generate_url.apply(
|
||||
node, [
|
||||
null, url, column.get('node_data'),
|
||||
column.get('url_with_id') || false, node_info
|
||||
null, url, column.get('node_data'), with_id, node_info
|
||||
]),
|
||||
cache_level = column.get('cache_level') || node.type,
|
||||
cache_level,
|
||||
cache_node = column.get('cache_node');
|
||||
|
||||
cache_node = (cache_node && pgAdmin.Browser.Nodes['cache_node']) || node;
|
||||
|
||||
if (this.field.has('cache_level')) {
|
||||
cache_level = this.field.get('cache_level');
|
||||
} else {
|
||||
cache_level = cache_node.cache_level(node_info, with_id);
|
||||
}
|
||||
|
||||
/*
|
||||
* We needs to check, if we have already cached data for this url.
|
||||
* If yes - use that, and do not bother about fetching it again,
|
||||
* and use it.
|
||||
*/
|
||||
var data = cache_node.cache(url, node_info, cache_level);
|
||||
var data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
||||
|
||||
if (column.get('version_compatible') &&
|
||||
(_.isUndefined(data) || _.isNull(data))) {
|
||||
@@ -369,7 +381,7 @@ function($, _, pgAdmin, Backbone, Backform, Alertify, Node) {
|
||||
* We will cache this data for short period of time for avoiding
|
||||
* same calls.
|
||||
*/
|
||||
data = cache_node.cache(url, node_info, cache_level, res.data);
|
||||
data = cache_node.cache(node.type + '#' + url, node_info, cache_level, res.data);
|
||||
},
|
||||
error: function() {
|
||||
eventHandler.trigger('pgadmin:view:fetch:error', m, column);
|
||||
|
||||
Reference in New Issue
Block a user