Rift.IO OSM R1 Initial Submission
[osm/UI.git] / skyquake / plugins / logging / src / categorySeverityGrid.jsx
diff --git a/skyquake/plugins/logging/src/categorySeverityGrid.jsx b/skyquake/plugins/logging/src/categorySeverityGrid.jsx
new file mode 100644 (file)
index 0000000..86a42c1
--- /dev/null
@@ -0,0 +1,68 @@
+ /*
+ * 
+ *   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 React from 'react';
+
+import {DropList, RadioButtonGroup, CardSection } from './loggingWidgets.jsx';
+import { Grid } from './gridWidgets.jsx';
+import LoggingStore from './loggingStore.js';
+
+
+export default class CategorySeverityGrid extends React.Component {
+
+  generateRows(defaultSeverities, severityOptions) {
+    let self = this;
+    return defaultSeverities.map(function(catsev) {
+      let dropList = (<DropList options={severityOptions}
+        selectedOption={catsev.severity}
+        onChange={self.onChangeSeverity(catsev.category)} />);
+      return [catsev.category, dropList];
+    });
+  }
+
+  onChangeSeverity (category) {
+    return function(e) {
+      LoggingStore.updateCategoryDefaultSeverity({
+        category: category,
+        severity: e
+      });
+    }
+  }
+
+  render() {
+    const {cellLabels, severityOptions, defaultSeverities, columnClasses,
+       ...props} = this.props;
+    let rows = null;
+    if (defaultSeverities) {
+      rows = this.generateRows(defaultSeverities, severityOptions);
+    }
+    return (<Grid className="categorySeverityGrid"
+      cellLabels={cellLabels}
+      rows={rows}
+      columnClasses={columnClasses}
+      />);
+  }
+}
+
+CategorySeverityGrid.defaultProps = {
+  cellLabels: [
+    'Category', 'Severity'
+  ],
+  columnClasses: [
+    'category', 'severity'
+  ]
+}