diff --git a/webroot/css/contrail.custom.css b/webroot/css/contrail.custom.css index e1b428c51..84634dd96 100644 --- a/webroot/css/contrail.custom.css +++ b/webroot/css/contrail.custom.css @@ -2888,7 +2888,10 @@ p.error, p.error-text { .circle.orange.filled { background-color: #ffbf87; } - +.alarms-circle-grid-style { + margin-top: 4px; + opacity:1; +} .chart-settings .color-selection .circle { display:inline-block; margin:0 5px; @@ -3543,4 +3546,13 @@ tr.collapsibleChildContainer{ } #port-tuples-collection td.action-cell{ padding-right:7px; -} \ No newline at end of file +} + +#dashboard-alerts-modal ul.grid-action-menu{ + margin-top:-95px; + margin-right:3px; +} + +.max-z-index { + z-index: 30000; +} diff --git a/webroot/js/common/core.labels.js b/webroot/js/common/core.labels.js index cf08f0d20..b51647ebf 100644 --- a/webroot/js/common/core.labels.js +++ b/webroot/js/common/core.labels.js @@ -194,6 +194,7 @@ define([ this.QE_FILTER_MODAL_SUFFIX = '-filter-modal'; //Alarms labels + this.ALARM_PREFIX_ID = 'alarms'; this.ALARMS_BREADCRUMB_DROPDOWN = "alarms-breadcrumb-dropdown"; this.ALARMS_LIST_ID = 'alarms-list-view'; this.MONITOR_ALARMS_PAGE_ID = "monitor-alarms-page"; diff --git a/webroot/js/models/NodeListModel.js b/webroot/js/models/NodeListModel.js index b8214f9bd..d619cb2e4 100644 --- a/webroot/js/models/NodeListModel.js +++ b/webroot/js/models/NodeListModel.js @@ -84,6 +84,7 @@ define([ self.alertListModel.addItem(alerts[i]); } }); + self.alertListModel.sort(dashboardUtils.sortInfraAlerts); self.nodeListModel.endUpdate(); self.alertListModel.endUpdate(); } diff --git a/webroot/js/views/AlarmGridView.js b/webroot/js/views/AlarmGridView.js index 8e655a7f9..ac94b2fb8 100644 --- a/webroot/js/views/AlarmGridView.js +++ b/webroot/js/views/AlarmGridView.js @@ -96,7 +96,7 @@ define([ { field: 'severity', name: '', - minWidth: 30, + width: 1, searchFn: function (d) { return d['severity']; }, @@ -105,15 +105,15 @@ define([ var formattedDiv; if(dc['ack']) { if(dc['severity'] === 4) { - formattedDiv = '
'; + formattedDiv = '
'; } else if (dc['severity'] === 3) { - formattedDiv = '
'; + formattedDiv = '
'; } } else { if(dc['severity'] === 3) { - formattedDiv = '
'; + formattedDiv = '
'; } else if (dc['severity'] === 4) { - formattedDiv = '
'; + formattedDiv = '
'; } } return formattedDiv; @@ -130,15 +130,27 @@ define([ { field: 'alarm_msg', name: 'Alarm', - minWidth: 250, -// formatter : function (r, c, v, cd, dc) { -// return dc.description[0].rule; -// } + minWidth: 200, }, { field: 'display_name', name: 'Source', minWidth: 100 + }, + { + field: 'acknowledge', + name:'', + formatter : function (r,c,v,cd,dc) { + var formattedDiv = ''; + if(!dc['ack']) { + formattedDiv = ''; + } + return formattedDiv; + }, + events: { + onClick: onAcknowledgeActionClicked + }, + width:1 } ]; var gridElementConfig = { @@ -152,11 +164,6 @@ define([ refreshable: true, searchable: true }, -// customControls: ['', -// '
', -// '
', -// '
', -// '
'] advanceControls: getHeaderActionConfig() }, body: { @@ -170,7 +177,6 @@ define([ $('#btnAcknowledge').removeClass('disabled-link'); } }, - actionCell: getRowActionConfig, detail: { template: cowu.generateDetailTemplateHTML(getAlarmDetailsTemplateConfig(), cowc.APP_CONTRAIL_CONTROLLER) } @@ -186,25 +192,22 @@ define([ return gridElementConfig; }; - function getRowActionConfig(rowData) { - var ret = []; - var dataView = $('#' + cowl.ALARMS_GRID_ID).data("contrailGrid")._dataView; - if(!rowData.ack) { - ret.push(getAcknowledgeAction(function (rowIndex) { - alarmsEditView.model = new AlarmsModel(); - alarmsEditView.renderAckAlarms ({ - "title": 'Acknowledge Alarms', - checkedRows: [dataView.getItem(rowIndex)], - callback: function () { - dataView.refreshData(); - $('#' + cowl.ALARMS_GRID_ID).data("contrailGrid").refreshView(); - } - }); - }) - ); - } - return ret; - }; + function onAcknowledge (checkedRows) { + alarmsEditView.model = new AlarmsModel(); + alarmsEditView.renderAckAlarms ({ + "title": 'Acknowledge Alarms', + checkedRows:checkedRows, + callback: function () { + var alarmGrid = $('#' + cowl.ALARMS_GRID_ID).data("contrailGrid"); + alarmGrid.refreshData(); + alarmGrid.setCheckedRows([]);//Clear the selected items + } + }); + } + + function onAcknowledgeActionClicked (e,rowData) { + onAcknowledge ([rowData]); + } function getHeaderActionConfig() { var headerActionConfig = [ @@ -216,14 +219,7 @@ define([ "onClick": function () { var gridElId = '#' + cowl.ALARMS_GRID_ID; var checkedRows = $(gridElId).data("contrailGrid").getCheckedRows(); - alarmsEditView.model = new AlarmsModel(); - alarmsEditView.renderAckAlarms ({ - "title": 'Acknowledge Alarms', - checkedRows:checkedRows, - callback: function () { - $('#' + cowl.ALARMS_GRID_ID).data("contrailGrid").refreshData(); - } - }); + onAcknowledge (checkedRows); } }, { diff --git a/webroot/js/views/AlarmsEditView.js b/webroot/js/views/AlarmsEditView.js index aa5a13792..b2c581cda 100644 --- a/webroot/js/views/AlarmsEditView.js +++ b/webroot/js/views/AlarmsEditView.js @@ -7,9 +7,8 @@ define([ 'contrail-view', 'knockback' ], function (_, ContrailView, Knockback) { - var gridElId = '#' + ctwl.CFG_IPAM_GRID_ID; - var prefixId = ctwl.CFG_IPAM_PREFIX_ID; - var modalId = 'configure-' + prefixId; + var prefixId = cowl.ALARM_PREFIX_ID; + var modalId = 'acknowledge-' + prefixId; var AlarmsEditView = ContrailView.extend({ @@ -20,7 +19,7 @@ define([ var self = this; var ackLayout = ackTemplate({prefixId: prefixId}); - cowu.createModal({'modalId': modalId, 'className': 'modal-480', + cowu.createModal({'modalId': modalId, 'className': 'modal-480 max-z-index', 'title': options['title'], 'btnName': 'Confirm', 'body': ackLayout, 'onSave': function () { diff --git a/webroot/js/views/GridView.js b/webroot/js/views/GridView.js index 02ba6d035..f980b5e39 100644 --- a/webroot/js/views/GridView.js +++ b/webroot/js/views/GridView.js @@ -1114,7 +1114,7 @@ define([ if (headerConfig.defaultControls.searchable) { template += '\
\ - \ + \ \ \ \