From 1288191ce27d81dd0bb0cd1731178e4465170bf4 Mon Sep 17 00:00:00 2001 From: YILI Date: Fri, 24 Feb 2017 16:20:20 +0800 Subject: Add rule info gui source code read rule manager gui info,inclode update and add,check Issue-ID:CLIENT-151 Change-Id: I43a92975e6993ce61dcd14de238b858ccfc85b77 Signed-off-by: YILI --- .../correlation-ruleInfo/ruleInfo.component.html | 153 +++++++++++ .../app/correlation-ruleInfo/ruleInfo.component.ts | 290 +++++++++++++++++++++ 2 files changed, 443 insertions(+) create mode 100644 alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.html create mode 100644 alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.ts (limited to 'alarm-analysis/src') diff --git a/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.html b/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.html new file mode 100644 index 00000000..95585133 --- /dev/null +++ b/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.html @@ -0,0 +1,153 @@ + +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+ +
+ +
+
+ + +
+ +
+
+
+ {{"file_import"|translate}} +
+
+
+ +
+
task2.zip
+ + + {{"common_browse"|translate}} + + + + + +
+ + +
+
+
+
+
+ +
+ +
+
+ + +
+
+
+ +
+
+ + + + +
+
+
+ +
+ + + + \ No newline at end of file diff --git a/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.ts b/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.ts new file mode 100644 index 00000000..2fc81602 --- /dev/null +++ b/alarm-analysis/src/main/webapp/alarm/app/correlation-ruleInfo/ruleInfo.component.ts @@ -0,0 +1,290 @@ +/* + Copyright 2017 ZTE Corporation. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Component,OnInit ,Input} from '@angular/core'; +import {RuleModel} from '../correlation-ruleList/alarmRule'; +import { ActivatedRoute, Params ,Router} from '@angular/router'; +import {AlarmRuleService} from '../correlation-ruleList/alarmRule.service'; +import {Http,Response,Headers} from '@angular/http'; +import {ModalService} from '../correlation-modal/modal.service'; +import {NgModel} from '@angular/forms'; +declare var $: any; +@Component({ + selector:'RuleInfo', + templateUrl:'./ruleInfo.component.html' +}) +export class RuleInfo implements OnInit{ + formModel:RuleModel; + queryRule:RuleModel; + id:number; + addBottonStatus:boolean; + constructor(private _ModalService:ModalService, private route: ActivatedRoute,private router:Router,private alarmRuleService:AlarmRuleService,http:Http){}; + + update(){ + this.queryRule.enabled = $('input:radio:checked').val(); + if(!this.queryRule.content.startsWith("package ")){ + let msg={title:"exception_content_error",message:"exception_package_error"}; + this._ModalService.getmodalObservable.next(msg); + }else{ + + this.alarmRuleService.checkContent(this.queryRule.content) + .then(res => { + if(res.status == 200){ + this.alarmRuleService.updateRule(this.queryRule) + .then(res =>{ + if(res.status == 200){ + let msg={title:"modalTitleUpdate",message:"message_update_rule_success"}; + this._ModalService.getmodalObservable.next(msg); + this.router.navigate(['alarmRule']); + }else if(res.status == 499){ + let msg={title:"modalTitleUpdate",message:"message_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + }else{ + let msg={title:"modalTitleUpdate",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + } + }).catch( + res =>{ + let msg={title:"modalTitleUpdate",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + } + ); + + }else if(res.status == 499){ + let msg={"title":"modalTitleCheck",message:"message_rule_content_repeat_error"}; + this._ModalService.getmodalObservable.next(msg); + return false; + }else{ + let msg={"title":"modalTitleCheck",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + return false; + } + }) + } + } + + onSubmit(obj:NgModel){ + this.save(); + } + + save(){ + if(!this.queryRule.content.startsWith("package ")){ + let msg={title:"exception_content_error",message:"exception_package_error"}; + this._ModalService.getmodalObservable.next(msg); + }else{ + this.alarmRuleService.checkContent(this.queryRule.content).then(res => { + if(res.status == 200){ + this.alarmRuleService.save(this.queryRule).then(res => { + if(res.status == 200){ + let msg={title:"modalTitleDefault",message:"message_add_rule_success"}; + this._ModalService.getmodalObservable.next(msg); + this.router.navigate(['alarmRule']); + }else if(res.status == 499){ + let msg={title:"modalTitleDefault",message:"message_rule_name_repeat_error"}; + this._ModalService.getmodalObservable.next(msg); + }else{ + let msg={"title":"modalTitleCheck",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + } + + }).catch(error =>{ + let msg={title:"modalTitleDefault",message:"message_rule_name_repeat_error"}; + this._ModalService.getmodalObservable.next(msg); + }); + return true; + }else if(res.status == 499){ + let msg={"title":"modalTitleCheck",message:"message_rule_content_repeat_error"}; + this._ModalService.getmodalObservable.next(msg); + return false; + }else{ + let msg={"title":"modalTitleCheck",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + return false; + } + }) + } + } + + getRuleInfo(id:string):void{ + this.route.params.switchMap((params:Params) =>this.alarmRuleService.search(id)) + .subscribe(rule =>{ + rule[0].enabled = ""+rule[0].enabled; + this.queryRule = rule[0] + }) + } + + checkContent(judge:string):void{ + if(!this.queryRule.content.startsWith("package ")){ + let msg={title:"exception_content_error",message:"exception_package_error"}; + this._ModalService.getmodalObservable.next(msg); + }else{ + this.alarmRuleService.checkContent(this.queryRule.content) + .then(res => { + if(res.status == 200){ + let msg={"title":"modalTitleCheck",message:"message_checkContent_rule_success"}; + this._ModalService.getmodalObservable.next(msg); + }else if(res.status == 499){ + let msg={"title":"modalTitleCheck",message:"message_rule_content_repeat_error"}; + this._ModalService.getmodalObservable.next(msg); + return false; + }else{ + let msg={"title":"modalTitleCheck",message:"message_other_exception_rule_fail"}; + this._ModalService.getmodalObservable.next(msg); + return false; + } + }); + } + } + + initUpload(queryRule:RuleModel):void{ + $("#fileName").text(""); + $("#importFailTip").addClass("hide_panel"); + $("#fileupload").fileupload({ + + dropZone: $('#dropzone'), + maxNumberOfFiles: 1, + maxChunkSize: 20000000, + autoUpload: false, + add: function (e, data) { + var fileName = data.files[0].name; + + $("#importFailTip").addClass("hide_panel"); + let suffix = fileName.substring(fileName.lastIndexOf("."),fileName.length) + + if (suffix != ".txt") { + $("#importFailTip").removeClass("hide_panel"); + return suffix; + } + + $("#bar").css('width', '0%'); + $("#persent").text('0%'); + $("#fileName").text(fileName); + $("#fileremove").attr("disabled", false); + $("#filesubmit").attr("disabled", false); + $("#filesubmit").click(function () { + this.file = data.files[0] + var reader = new FileReader(); + reader.readAsText(this.file); + reader.onload = function (data) { + queryRule.content = this.result; + } + $("#fileremove").click(); + $("#importDiv").hide(); + e.stopPropagation(); + }); + + $("#fileremove").click(function () { + $("#bar").css('width', '0%'); + $("#persent").text("0%"); + $("#fileName").text(""); + $("#filesubmit").attr("disabled", true); + $("#fileremove").attr("disabled", true); + }); + }, + done: function (e, data) { + + }, + fail: function (e, resp) { + }, + always: function (e, data) { + $(".progress").removeClass("active"); + $("#bar").css('width', '100%'); + $("#persent").text('100%'); + }, + progressall: function (e, data) { + } + }); + } + + initImportDiv(queryRule:RuleModel):void{ + this.initUpload(queryRule); + var importDiv = $("#importDiv"); + $(function (arg) { + $("#importBtn").click(function (e) { + e.preventDefault(); + $("[data-toggle='tooltip']").tooltip(); + $("#importFailTip").addClass("hide_panel"); + showDiv(); + $(document).one("click", function (e) { + $(importDiv).hide(); + }); + e.stopPropagation(); + }); + $(importDiv).click(function (e) { + e.stopPropagation(); + }); + $("#filesubmit").attr("disabled", true); + $("#fileremove").attr("disabled", true); + }); + function showDiv() { + $("#bar").css('width', '0%'); + $("#persent").text('0%'); + $(importDiv).fadeIn(); + } + } + ngOnInit(){ + this.formModel={ + ruleid:null, + rulename:null, + description:null, + content:null, + createtime:null, + creator:null, + updatetime:null, + modifier:null, + enabled:null, + } + this.queryRule={ + ruleid:null, + rulename:null, + description:null, + content:null, + createtime:null, + creator:null, + updatetime:null, + modifier:null, + enabled:0, + } + + this.route.params.subscribe((params) => { + + let id = params['id']; + if(typeof(id) == "string"){ + if(id.indexOf('&') == -1){ + $("#ruleNameInput").attr("disabled",true); + $("#saveLabel").hide(); + }else{ + this.addBottonStatus=false; + $("#saveLabel").hide(); + $("#checkLabel").hide(); + $("#updateLabel").hide(); + } + + let str = id.split("&"); + this.getRuleInfo(str[0]); + }else if(typeof(id) != "undefined"){ + this.getRuleInfo(id); + }else{ + $("#updateLabel").hide(); + } + if(typeof(this.queryRule.enabled) === "number"){ + this.queryRule.enabled = ""+this.queryRule.enabled; + } + }) + + this.initImportDiv(this.queryRule); + } + +} \ No newline at end of file -- cgit 1.2.3-korg