summaryrefslogtreecommitdiffstats
path: root/rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts')
-rw-r--r--rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts297
1 files changed, 297 insertions, 0 deletions
diff --git a/rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts b/rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts
new file mode 100644
index 0000000..7f8d375
--- /dev/null
+++ b/rulemgt-frontend/src/app/correlation-ruleInfo/ruleInfo.component.ts
@@ -0,0 +1,297 @@
+/*
+ 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;
+ }
+ });
+ }
+ }
+ switch(): void {
+ // alert(this.queryRule.enabled);
+ this.queryRule.enabled == '0' ? this.queryRule.enabled = '1' : this.queryRule.enabled = '0';
+ }
+
+
+ initUpload(queryRule: RuleModel): void {
+ $('#fileName').text('');
+ $('#importFailTip').addClass('hide_panel');
+ $('#fileupload').fileupload({
+
+ dropZone: $('#dropzone'),
+ maxNumberOfFiles: 1,
+ maxChunkSize: 20000000,
+ autoUpload: false,
+ add: function (e, data) {
+ let 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);
+ let 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,
+ loopControlName: null
+ };
+ this.queryRule = {
+ ruleId: null,
+ ruleName: null,
+ description: null,
+ content: null,
+ createTime: null,
+ creator: null,
+ updateTime: null,
+ modifier: null,
+ enabled: 0,
+ loopControlName: ''
+ };
+
+ 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