Details
diff --git a/ui/src/app/alarm/alarm-details-dialog.controller.js b/ui/src/app/alarm/alarm-details-dialog.controller.js
index 6c82e20..d97d299 100644
--- a/ui/src/app/alarm/alarm-details-dialog.controller.js
+++ b/ui/src/app/alarm/alarm-details-dialog.controller.js
@@ -24,20 +24,23 @@ const js_beautify = beautify.js;
/*@ngInject*/
export default function AlarmDetailsDialogController($mdDialog, $filter, $translate, types,
- alarmService, alarmId, allowAcknowledgment, allowClear, showingCallback) {
+ alarmService, alarmId, allowAcknowledgment, allowClear, displayDetails, showingCallback) {
var vm = this;
vm.alarmId = alarmId;
vm.allowAcknowledgment = allowAcknowledgment;
vm.allowClear = allowClear;
+ vm.displayDetails = displayDetails;
vm.types = types;
vm.alarm = null;
vm.alarmUpdated = false;
showingCallback.onShowing = function(scope, element) {
- updateEditorSize(element);
+ if (vm.displayDetails) {
+ updateEditorSize(element);
+ }
}
vm.alarmDetailsOptions = {
diff --git a/ui/src/app/alarm/alarm-details-dialog.tpl.html b/ui/src/app/alarm/alarm-details-dialog.tpl.html
index 48f991c..c09a1fc 100644
--- a/ui/src/app/alarm/alarm-details-dialog.tpl.html
+++ b/ui/src/app/alarm/alarm-details-dialog.tpl.html
@@ -74,8 +74,8 @@
<input ng-model="vm.alarmStatus" readonly>
</md-input-container>
</div>
- <div class="md-caption" style="padding-left: 3px; padding-bottom: 10px; color: rgba(0,0,0,0.57);" translate>alarm.details</div>
- <div flex class="tb-alarm-details-panel" layout="column">
+ <div ng-if="vm.displayDetails" class="md-caption" style="padding-left: 3px; padding-bottom: 10px; color: rgba(0,0,0,0.57);" translate>alarm.details</div>
+ <div ng-if="vm.displayDetails" flex class="tb-alarm-details-panel" layout="column">
<div flex id="tb-alarm-details" readonly
ui-ace="vm.alarmDetailsOptions"
ng-model="vm.alarmDetails">
diff --git a/ui/src/app/alarm/alarm-row.directive.js b/ui/src/app/alarm/alarm-row.directive.js
index 09c04f9..62bed11 100644
--- a/ui/src/app/alarm/alarm-row.directive.js
+++ b/ui/src/app/alarm/alarm-row.directive.js
@@ -44,6 +44,7 @@ export default function AlarmRowDirective($compile, $templateCache, types, $mdDi
alarmId: scope.alarm.id.id,
allowAcknowledgment: true,
allowClear: true,
+ displayDetails: true,
showingCallback: onShowingCallback
},
parent: angular.element($document[0].body),
diff --git a/ui/src/app/dashboard/states/default-state-controller.js b/ui/src/app/dashboard/states/default-state-controller.js
index 8d85c59..6f51724 100644
--- a/ui/src/app/dashboard/states/default-state-controller.js
+++ b/ui/src/app/dashboard/states/default-state-controller.js
@@ -22,6 +22,8 @@ export default function DefaultStateController($scope, $timeout, $location, $sta
vm.inited = false;
+ vm.skipStateChange = false;
+
vm.openState = openState;
vm.updateState = updateState;
vm.resetState = resetState;
@@ -48,10 +50,9 @@ export default function DefaultStateController($scope, $timeout, $location, $sta
params: params
}
//append new state
- stopWatchStateObject();
vm.stateObject[0] = newState;
gotoState(vm.stateObject[0].id, true, openRightLayout);
- watchStateObject();
+ vm.skipStateChange = true;
}
}
@@ -68,10 +69,9 @@ export default function DefaultStateController($scope, $timeout, $location, $sta
params: params
}
//replace with new state
- stopWatchStateObject();
vm.stateObject[0] = newState;
gotoState(vm.stateObject[0].id, true, openRightLayout);
- watchStateObject();
+ vm.skipStateChange = true;
}
}
@@ -87,10 +87,9 @@ export default function DefaultStateController($scope, $timeout, $location, $sta
function navigatePrevState(index) {
if (index < vm.stateObject.length-1) {
- stopWatchStateObject();
vm.stateObject.splice(index+1, vm.stateObject.length-index-1);
gotoState(vm.stateObject[vm.stateObject.length-1].id, true);
- watchStateObject();
+ vm.skipStateChange = true;
}
}
@@ -221,31 +220,23 @@ export default function DefaultStateController($scope, $timeout, $location, $sta
$scope.$watch('vm.dashboardCtrl.dashboardCtx.state', function () {
if (vm.stateObject[0].id !== vm.dashboardCtrl.dashboardCtx.state) {
- stopWatchStateObject();
vm.stateObject[0].id = vm.dashboardCtrl.dashboardCtx.state;
updateLocation();
- watchStateObject();
+ vm.skipStateChange = true;
}
});
- watchStateObject();
+ $scope.$watch('vm.stateObject', function(newVal, prevVal) {
+ if (!angular.equals(newVal, prevVal) && newVal) {
+ if (vm.skipStateChange) {
+ vm.skipStateChange = false;
+ } else {
+ gotoState(vm.stateObject[0].id, true);
+ }
+ }
+ }, true);
});
}
- function stopWatchStateObject() {
- if (vm.stateObjectWatcher) {
- vm.stateObjectWatcher();
- vm.stateObjectWatcher = null;
- }
- }
-
- function watchStateObject() {
- vm.stateObjectWatcher = $scope.$watch('vm.stateObject', function(newVal, prevVal) {
- if (!angular.equals(newVal, prevVal) && newVal) {
- gotoState(vm.stateObject[0].id, true);
- }
- }, true);
- }
-
function gotoState(stateId, update, openRightLayout) {
if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
vm.dashboardCtrl.openDashboardState(stateId, openRightLayout);
diff --git a/ui/src/app/dashboard/states/entity-state-controller.js b/ui/src/app/dashboard/states/entity-state-controller.js
index ba2bc64..527cd08 100644
--- a/ui/src/app/dashboard/states/entity-state-controller.js
+++ b/ui/src/app/dashboard/states/entity-state-controller.js
@@ -24,6 +24,8 @@ export default function EntityStateController($scope, $timeout, $location, $stat
vm.inited = false;
+ vm.skipStateChange = false;
+
vm.openState = openState;
vm.updateState = updateState;
vm.resetState = resetState;
@@ -50,11 +52,10 @@ export default function EntityStateController($scope, $timeout, $location, $stat
params: params
}
//append new state
- stopWatchStateObject();
vm.stateObject.push(newState);
vm.selectedStateIndex = vm.stateObject.length-1;
gotoState(vm.stateObject[vm.stateObject.length-1].id, true, openRightLayout);
- watchStateObject();
+ vm.skipStateChange = true;
}
);
}
@@ -73,10 +74,9 @@ export default function EntityStateController($scope, $timeout, $location, $stat
params: params
}
//replace with new state
- stopWatchStateObject();
vm.stateObject[vm.stateObject.length - 1] = newState;
gotoState(vm.stateObject[vm.stateObject.length - 1].id, true, openRightLayout);
- watchStateObject();
+ vm.skipStateChange = true;
}
);
}
@@ -94,11 +94,10 @@ export default function EntityStateController($scope, $timeout, $location, $stat
function navigatePrevState(index) {
if (index < vm.stateObject.length-1) {
- stopWatchStateObject();
vm.stateObject.splice(index+1, vm.stateObject.length-index-1);
vm.selectedStateIndex = vm.stateObject.length-1;
gotoState(vm.stateObject[vm.stateObject.length-1].id, true);
- watchStateObject();
+ vm.skipStateChange = true;
}
}
@@ -266,14 +265,22 @@ export default function EntityStateController($scope, $timeout, $location, $stat
$scope.$watch('vm.dashboardCtrl.dashboardCtx.state', function () {
if (vm.stateObject[vm.stateObject.length - 1].id !== vm.dashboardCtrl.dashboardCtx.state) {
- stopWatchStateObject();
vm.stateObject[vm.stateObject.length - 1].id = vm.dashboardCtrl.dashboardCtx.state;
updateLocation();
- watchStateObject();
+ vm.skipStateChange = true;
}
});
- watchStateObject();
+ $scope.$watch('vm.stateObject', function(newVal, prevVal) {
+ if (!angular.equals(newVal, prevVal) && newVal) {
+ if (vm.skipStateChange) {
+ vm.skipStateChange = false;
+ } else {
+ vm.selectedStateIndex = vm.stateObject.length - 1;
+ gotoState(vm.stateObject[vm.stateObject.length - 1].id, true);
+ }
+ }
+ }, true);
if (vm.dashboardCtrl.isMobile) {
watchSelectedStateIndex();
@@ -292,22 +299,6 @@ export default function EntityStateController($scope, $timeout, $location, $stat
}
- function stopWatchStateObject() {
- if (vm.stateObjectWatcher) {
- vm.stateObjectWatcher();
- vm.stateObjectWatcher = null;
- }
- }
-
- function watchStateObject() {
- vm.stateObjectWatcher = $scope.$watch('vm.stateObject', function(newVal, prevVal) {
- if (!angular.equals(newVal, prevVal) && newVal) {
- vm.selectedStateIndex = vm.stateObject.length-1;
- gotoState(vm.stateObject[vm.stateObject.length-1].id, true);
- }
- }, true);
- }
-
function stopWatchSelectedStateIndex() {
if (vm.selectedStateIndexWatcher) {
vm.selectedStateIndexWatcher();
diff --git a/ui/src/app/widget/lib/alarms-table-widget.js b/ui/src/app/widget/lib/alarms-table-widget.js
index 10e7aa3..3af7ac7 100644
--- a/ui/src/app/widget/lib/alarms-table-widget.js
+++ b/ui/src/app/widget/lib/alarms-table-widget.js
@@ -333,6 +333,7 @@ function AlarmsTableWidgetController($element, $scope, $filter, $mdMedia, $mdDia
alarmId: alarm.id.id,
allowAcknowledgment: vm.allowAcknowledgment,
allowClear: vm.allowClear,
+ displayDetails: true,
showingCallback: onShowingCallback
},
parent: angular.element($document[0].body),