Просмотр исходного кода

began work on custom confirm modal

Torkel Ödegaard 11 лет назад
Родитель
Сommit
27ec0d532e

+ 6 - 3
src/app/controllers/row.js

@@ -76,9 +76,12 @@ function (angular, app, _) {
     };
 
     $scope.remove_panel_from_row = function(row, panel) {
-      if (confirm('Are you sure you want to remove this ' + panel.type + ' panel?')) {
-        row.panels = _.without(row.panels,panel);
-      }
+      $scope.appEvent('confirm-modal', {
+        title: 'Are you sure you want to remove this panel?',
+        onConfirm: function() {
+          row.panels = _.without(row.panels, panel);
+        }
+      });
     };
 
     $scope.replacePanel = function(newPanel, oldPanel) {

+ 2 - 2
src/app/panels/graph/legend.js

@@ -22,8 +22,8 @@ function (angular, app, _, kbn, $) {
         var data;
         var i;
 
-        scope.$on('render', function(event, renderData) {
-          data = renderData || data;
+        scope.$on('render', function() {
+          data = scope.seriesList;
           if (data) {
             render();
           }

+ 20 - 0
src/app/partials/confirm_modal.html

@@ -0,0 +1,20 @@
+<div class="modal-body">
+	<div class="dashboard-editor-header">
+		<div class="dashboard-editor-title">
+			<i class="icon icon-ok"></i>
+			Confirm
+		</div>
+	</div>
+
+	<div class="dashboard-editor-body">
+		<div class="row-fluid">
+		<span class="span4">
+				{{title}}
+		</span>
+	  <button type="button" class="btn btn-info span2" ng-click="dismiss()">Cancel</button>
+	  <button type="button" class="btn btn-success span2" ng-click="onConfirm();dismiss();">OK</button>
+		<span class="span4"></span>
+  </div>
+
+</div>
+

+ 24 - 1
src/app/services/alertSrv.js

@@ -7,7 +7,7 @@ function (angular, _) {
 
   var module = angular.module('grafana.services');
 
-  module.service('alertSrv', function($timeout, $sce, $rootScope) {
+  module.service('alertSrv', function($timeout, $sce, $rootScope, $modal, $q) {
     var self = this;
 
     this.init = function() {
@@ -20,6 +20,7 @@ function (angular, _) {
       $rootScope.onAppEvent('alert-success', function(e, alert) {
         self.set(alert[0], alert[1], 'success', 3000);
       });
+      $rootScope.onAppEvent('confirm-modal', this.showConfirmModal);
     };
 
     // List of all alert objects
@@ -57,5 +58,27 @@ function (angular, _) {
     this.clearAll = function() {
       self.list = [];
     };
+
+    this.showConfirmModal = function(e, payload) {
+      var scope = $rootScope.$new();
+
+      scope.title = payload.title;
+      scope.text = payload.text;
+      scope.onConfirm = payload.onConfirm;
+
+      var confirmModal = $modal({
+        template: './app/partials/confirm_modal.html',
+        persist: true,
+        show: false,
+        scope: scope,
+        keyboard: false
+      });
+
+      $q.when(confirmModal).then(function(modalEl) {
+        modalEl.modal('show');
+      });
+
+    };
+
   });
 });