mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
Fixed tagsinput bug related to shallow clone of dashboard
This commit is contained in:
parent
7d9141a055
commit
9fc6d3d6f0
25
src/app/directives/bootstrap-tagsinput.js
vendored
25
src/app/directives/bootstrap-tagsinput.js
vendored
@ -53,10 +53,6 @@ function (angular, $) {
|
||||
scope.$parent[attrs.tagclass] : function() { return attrs.tagclass; }
|
||||
});
|
||||
|
||||
for (var i = 0; i < scope.model.length; i++) {
|
||||
select.tagsinput('add', scope.model[i]);
|
||||
}
|
||||
|
||||
select.on('itemAdded', function(event) {
|
||||
if (scope.model.indexOf(event.item) === -1) {
|
||||
scope.model.push(event.item);
|
||||
@ -74,25 +70,16 @@ function (angular, $) {
|
||||
// diff when model changes
|
||||
var prev = scope.model.slice();
|
||||
scope.$watch("model", function() {
|
||||
|
||||
var added = scope.model.filter(function(i) {return prev.indexOf(i) === -1;}),
|
||||
removed = prev.filter(function(i) {return scope.model.indexOf(i) === -1;}),
|
||||
i;
|
||||
|
||||
prev = scope.model.slice();
|
||||
|
||||
// Remove tags no longer in binded model
|
||||
for (i = 0; i < removed.length; i++) {
|
||||
select.tagsinput('remove', removed[i]);
|
||||
if (!angular.isArray(scope.model)) {
|
||||
scope.model = [];
|
||||
}
|
||||
|
||||
// Refresh remaining tags
|
||||
select.tagsinput('refresh');
|
||||
select.tagsinput('removeAll');
|
||||
|
||||
// Add new items in model as tags
|
||||
for (i = 0; i < added.length; i++) {
|
||||
select.tagsinput('add', added[i]);
|
||||
for (var i = 0; i < scope.model.length; i++) {
|
||||
select.tagsinput('add', scope.model[i]);
|
||||
}
|
||||
|
||||
}, true);
|
||||
|
||||
}
|
||||
|
@ -120,7 +120,8 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
|
||||
};
|
||||
|
||||
var dash_defaults = function(dashboard) {
|
||||
_.defaults(dashboard,_dash);
|
||||
|
||||
_.defaults(dashboard, _dash);
|
||||
_.defaults(dashboard.loader,_dash.loader);
|
||||
|
||||
var filtering = _.findWhere(dashboard.pulldowns, {type: 'filtering'});
|
||||
@ -153,7 +154,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
|
||||
dashboard = dash_defaults(dashboard);
|
||||
|
||||
// Set the current dashboard
|
||||
self.current = _.clone(dashboard);
|
||||
self.current = angular.copy(dashboard);
|
||||
|
||||
// Delay this until we're sure that querySrv and filterSrv are ready
|
||||
$timeout(function() {
|
||||
|
Loading…
Reference in New Issue
Block a user