Rift.IO OSM R1 Initial Submission
[osm/UI.git] / skyquake / plugins / logging / src / loggingStore.js
1 /*
2 *
3 * Copyright 2016 RIFT.IO Inc
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18 import _ from 'lodash';
19 import LoggingActions from './loggingActions.js';
20 import LoggingSource from './loggingSource.js';
21
22 import alt from 'widgets/skyquake_container/skyquakeAltInstance';
23
24 class LoggingStore {
25 constructor() {
26 this.loggingConfig = {};
27 // initialLoggingConfig is the saved state
28 this.initialLoggingConfig = {};
29 this.bindActions(LoggingActions);
30 this.registerAsync(LoggingSource);
31 this.exportPublicMethods({
32 updateCategoryDefaultSeverity: this.updateCategoryDefaultSeverity,
33 updateAllowDuplicateEvents: this.updateAllowDuplicateEvents,
34 addDenyEvent: this.addDenyEvent,
35 updateDenyEvent: this.updateDenyEvent,
36 removeDenyEvent: this.removeDenyEvent,
37 updateSyslogViewerURL: this.updateSyslogViewerURL,
38 resetLoggingConfigData: this.resetLoggingConfigData
39 });
40 }
41
42 getLoggingConfigSuccess = (data) => {
43 console.log("LoggingStore.getLoggingConfigSuccess called. data=", data);
44 // Do we need to do a deep clone?
45 const initialLoggingConfig = _.cloneDeep(data);
46 console.log("initialLoggingConfig=", initialLoggingConfig);
47 this.setState({
48 loggingConfig: data,
49 initialLoggingConfig: initialLoggingConfig,
50 isLoading: false
51 });
52 }
53
54 getLoggingConfigError(data) {
55 console.log("LoggongStore.getLoggingConfigError called. data=", data);
56 }
57
58 putLoggingConfigSuccess = (data) => {
59 console.log("LoggingStore.putLoggingConfigSuccess called. data=", data);
60 const initialLoggingConfig = _.cloneDeep(this.loggingConfig);
61 this.setState({
62 isLoading: false,
63 initialLoggingConfig: initialLoggingConfig
64 });
65 }
66
67 putLoggingConfigError(data) {
68 console.log("LoggingStore.putLoggingConfigError called. data=", data);
69 }
70
71 resetLoggingConfigData = (data) => {
72 console.log('LoggingStore.resetLoggingConfigData called. data=', data);
73 // Do we need to do a deep clone?
74 const loggingConfig = _.cloneDeep(this.initialLoggingConfig);
75 this.setState({
76 loggingConfig: loggingConfig
77 });
78 }
79
80 updateCategoryDefaultSeverity = (catsev) => {
81 console.log("LoggingStore.updateCategoryDefaultSeverity:", catsev);
82 // find the category
83
84 let catIndex = _.findIndex(this.loggingConfig.defaultSeverities, function(o) {
85 return o.category == catsev.category;
86 });
87 console.log("catIndex=", catIndex);
88 if (catIndex != -1) {
89 const loggingConfig = this.loggingConfig;
90 loggingConfig.defaultSeverities[catIndex].severity = catsev.severity;
91
92 this.setState({
93 loggingConfig: loggingConfig
94 });
95 } else {
96 console.log("ERROR: catIndex not founds for default category", catsev.category);
97 }
98 }
99
100 updateAllowDuplicateEvents = (allowFlag) => {
101 console.log("LoggingStore.updateAllowDuplicateEvents called. allowFlag=", allowFlag);
102 const loggingConfig = this.loggingConfig;
103 loggingConfig.allowDuplicateEvents = allowFlag;
104 this.setState({
105 loggingConfig: loggingConfig
106 });
107 }
108
109 /**
110 * Add a new empty (null) deny event to loggingConfig
111 */
112 addDenyEvent = (event) => {
113 const loggingConfig = this.loggingConfig;
114 loggingConfig.denyEventIDs.push(null);
115 this.setState({
116 loggingConfig: loggingConfig
117 });
118 }
119
120 /**
121 * Update
122 */
123 updateDenyEvent = (index, eventID) => {
124 //console.log("LoggingStore.updateDenyEventID: index=", index);
125 //console.log(" -> eventID=", eventID);
126
127 const loggingConfig = this.loggingConfig;
128 loggingConfig.denyEventIDs[index] = eventID;
129 this.setState({
130 loggingConfig: loggingConfig
131 });
132 }
133
134 /**
135 *
136 */
137 removeDenyEvent = (index) => {
138 // console.log("LoggingStore.removeDenyEvent at index %s", index);
139 const loggingConfig = this.loggingConfig;
140 // Note: we are not validating index
141 loggingConfig.denyEventIDs.splice(index, 1);
142 this.setState({
143 loggingConfig: loggingConfig
144 });
145 }
146
147 /**
148 *
149 */
150 updateSyslogViewerURL = (syslogViewerURL) => {
151 const loggingConfig = this.loggingConfig;
152 loggingConfig.syslogviewer = syslogViewerURL;
153 this.setState({
154 loggingConfig: loggingConfig
155 });
156 }
157 }
158
159 export default alt.createStore(LoggingStore);