X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Flogging%2Fsrc%2FloggingStore.js;fp=skyquake%2Fplugins%2Flogging%2Fsrc%2FloggingStore.js;h=860ff9fc9da466201efd545e2eb89b2283f6ec4a;hb=e29efc315df33d546237e270470916e26df391d6;hp=0000000000000000000000000000000000000000;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9;p=osm%2FUI.git diff --git a/skyquake/plugins/logging/src/loggingStore.js b/skyquake/plugins/logging/src/loggingStore.js new file mode 100644 index 000000000..860ff9fc9 --- /dev/null +++ b/skyquake/plugins/logging/src/loggingStore.js @@ -0,0 +1,159 @@ +/* + * + * Copyright 2016 RIFT.IO Inc + * + * 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 _ from 'lodash'; +import LoggingActions from './loggingActions.js'; +import LoggingSource from './loggingSource.js'; + +import alt from 'widgets/skyquake_container/skyquakeAltInstance'; + +class LoggingStore { + constructor() { + this.loggingConfig = {}; + // initialLoggingConfig is the saved state + this.initialLoggingConfig = {}; + this.bindActions(LoggingActions); + this.registerAsync(LoggingSource); + this.exportPublicMethods({ + updateCategoryDefaultSeverity: this.updateCategoryDefaultSeverity, + updateAllowDuplicateEvents: this.updateAllowDuplicateEvents, + addDenyEvent: this.addDenyEvent, + updateDenyEvent: this.updateDenyEvent, + removeDenyEvent: this.removeDenyEvent, + updateSyslogViewerURL: this.updateSyslogViewerURL, + resetLoggingConfigData: this.resetLoggingConfigData + }); + } + + getLoggingConfigSuccess = (data) => { + console.log("LoggingStore.getLoggingConfigSuccess called. data=", data); + // Do we need to do a deep clone? + const initialLoggingConfig = _.cloneDeep(data); + console.log("initialLoggingConfig=", initialLoggingConfig); + this.setState({ + loggingConfig: data, + initialLoggingConfig: initialLoggingConfig, + isLoading: false + }); + } + + getLoggingConfigError(data) { + console.log("LoggongStore.getLoggingConfigError called. data=", data); + } + + putLoggingConfigSuccess = (data) => { + console.log("LoggingStore.putLoggingConfigSuccess called. data=", data); + const initialLoggingConfig = _.cloneDeep(this.loggingConfig); + this.setState({ + isLoading: false, + initialLoggingConfig: initialLoggingConfig + }); + } + + putLoggingConfigError(data) { + console.log("LoggingStore.putLoggingConfigError called. data=", data); + } + + resetLoggingConfigData = (data) => { + console.log('LoggingStore.resetLoggingConfigData called. data=', data); + // Do we need to do a deep clone? + const loggingConfig = _.cloneDeep(this.initialLoggingConfig); + this.setState({ + loggingConfig: loggingConfig + }); + } + + updateCategoryDefaultSeverity = (catsev) => { + console.log("LoggingStore.updateCategoryDefaultSeverity:", catsev); + // find the category + + let catIndex = _.findIndex(this.loggingConfig.defaultSeverities, function(o) { + return o.category == catsev.category; + }); + console.log("catIndex=", catIndex); + if (catIndex != -1) { + const loggingConfig = this.loggingConfig; + loggingConfig.defaultSeverities[catIndex].severity = catsev.severity; + + this.setState({ + loggingConfig: loggingConfig + }); + } else { + console.log("ERROR: catIndex not founds for default category", catsev.category); + } + } + + updateAllowDuplicateEvents = (allowFlag) => { + console.log("LoggingStore.updateAllowDuplicateEvents called. allowFlag=", allowFlag); + const loggingConfig = this.loggingConfig; + loggingConfig.allowDuplicateEvents = allowFlag; + this.setState({ + loggingConfig: loggingConfig + }); + } + + /** + * Add a new empty (null) deny event to loggingConfig + */ + addDenyEvent = (event) => { + const loggingConfig = this.loggingConfig; + loggingConfig.denyEventIDs.push(null); + this.setState({ + loggingConfig: loggingConfig + }); + } + + /** + * Update + */ + updateDenyEvent = (index, eventID) => { + //console.log("LoggingStore.updateDenyEventID: index=", index); + //console.log(" -> eventID=", eventID); + + const loggingConfig = this.loggingConfig; + loggingConfig.denyEventIDs[index] = eventID; + this.setState({ + loggingConfig: loggingConfig + }); + } + + /** + * + */ + removeDenyEvent = (index) => { + // console.log("LoggingStore.removeDenyEvent at index %s", index); + const loggingConfig = this.loggingConfig; + // Note: we are not validating index + loggingConfig.denyEventIDs.splice(index, 1); + this.setState({ + loggingConfig: loggingConfig + }); + } + + /** + * + */ + updateSyslogViewerURL = (syslogViewerURL) => { + const loggingConfig = this.loggingConfig; + loggingConfig.syslogviewer = syslogViewerURL; + this.setState({ + loggingConfig: loggingConfig + }); + } +} + +export default alt.createStore(LoggingStore);