You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spot.apache.org by na...@apache.org on 2017/09/26 21:37:10 UTC
[04/18] incubator-spot git commit: syncing with master
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/ingest/ingest-summary.html
----------------------------------------------------------------------
diff --git a/spot-oa/ui/ingest/ingest-summary.html b/spot-oa/ui/ingest/ingest-summary.html
new file mode 100644
index 0000000..41324e1
--- /dev/null
+++ b/spot-oa/ui/ingest/ingest-summary.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You 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.
+ -->
+
+<html>
+<head>
+ <title>Ingest Summary</title>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+
+ <!--Bootstrap styles-->
+ <link rel="stylesheet" type="text/css" href="../css/bootstrap-spot.min.css" />
+ <!--Bootstrap Date picker styles-->
+ <link rel="stylesheet" type="text/css" href="../node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css" />
+ <!-- Spot styles -->
+ <link rel="stylesheet" type="text/css" href="../css/main.css" />
+ <!-- Favicon -->
+ <link rel="apple-touch-icon" sizes="57x57" href="../images/favicon/apple-icon-57x57.png">
+ <link rel="apple-touch-icon" sizes="60x60" href="../images/favicon/apple-icon-60x60.png"
+ <link rel="apple-touch-icon" sizes="72x72" href="../images/favicon/apple-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="76x76" href="../images/favicon/apple-icon-76x76.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="../images/favicon/apple-icon-114x114.png">
+ <link rel="apple-touch-icon" sizes="120x120" href="../images/favicon/apple-icon-120x120.png">
+ <link rel="apple-touch-icon" sizes="144x144" href="../images/favicon/apple-icon-144x144.png">
+ <link rel="apple-touch-icon" sizes="152x152" href="../images/favicon/apple-icon-152x152.png">
+ <link rel="apple-touch-icon" sizes="180x180" href="../images/favicon/apple-icon-180x180.png">
+ <link rel="icon" type="image/png" sizes="192x192" href="../images/favicon/android-icon-192x192.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="../images/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="96x96" href="../images/favicon/favicon-96x96.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="../images/favicon/favicon-16x16.png">
+ <link rel="manifest" href="../images/favicon/manifest.json">
+ <meta name="msapplication-TileColor" content="#ffffff">
+ <meta name="msapplication-TileImage" content="images/favicon/ms-icon-144x144.png">
+ <meta name="theme-color" content="#ffffff">
+ <style type="text/css">
+ .spot-row {
+ height: 100%;
+ }
+
+ .is-chart svg {
+ width: 100%;
+ height: 100%;
+ }
+
+ .is-chart svg .header text {
+ text-anchor: middle;
+ fill: #82837e;
+ }
+
+ .is-chart svg .header text tspan.bold {
+ font-weight: bold;
+ }
+
+ .is-chart .axis {
+ shape-rendering: crispEdges;
+ }
+
+ .is-chart .axis path, .is-chart .axis line {
+ fill: none;
+ }
+
+ .is-chart .pipeline {
+ pointer-events: all;
+ }
+
+ .is-chart .pipeline.zoom-in {
+ cursor: zoom-in;
+ }
+
+ .is-chart .pipeline.zoom-out {
+ cursor: zoom-out;
+ }
+
+ .is-chart .pipeline.e-resize {
+ cursor: e-resize;
+ }
+ </style>
+</head>
+<body>
+ <nav id="spot-nav" class="navbar navbar-default">
+ <div class="container-fluid">
+ <!-- App name and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-menu">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <span class="navbar-brand">Apache Spot :: Ingest Summary</span>
+ </div>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="main-menu">
+ <!-- Main Menu -->
+ </div>
+ <div id="search-box" class="row text-right">
+ <!--Tools Buttons-->
+ <div id="nav_form" class="col-md-12">
+ <!-- Search form placeholder -->
+ </div>
+ </div> <!-- /Tools Buttons-->
+ </div>
+ </nav>
+ <div id="spot-content-wrapper" class="container-fluid">
+ <!-- Main Content Placeholder -->
+ </div>
+
+ <!-- SCRIPTS -->
+ <script type="application/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
+ <script type="application/javascript" src="../node_modules/d3/d3.min.js"></script>
+ <script type="application/javascript" src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
+ <script type="application/javascript" src="../node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
+ <script type="application/javascript" src="../node_modules/react/dist/react.min.js"></script>
+ <script type="application/javascript" src="../node_modules/react-dom/dist/react-dom.min.js"></script>
+ <script type="application/javascript" src="../js/ingest-summary.bundle.min.js"></script>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/ipython/custom/ajax-loader.gif
----------------------------------------------------------------------
diff --git a/spot-oa/ui/ipython/custom/ajax-loader.gif b/spot-oa/ui/ipython/custom/ajax-loader.gif
deleted file mode 100644
index 7dc5c7a..0000000
Binary files a/spot-oa/ui/ipython/custom/ajax-loader.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/ipython/custom/custom.css
----------------------------------------------------------------------
diff --git a/spot-oa/ui/ipython/custom/custom.css b/spot-oa/ui/ipython/custom/custom.css
deleted file mode 100755
index 0ae3a96..0000000
--- a/spot-oa/ui/ipython/custom/custom.css
+++ /dev/null
@@ -1,145 +0,0 @@
-.spot.spot_easy_mode {
- background-color: white;
-}
-
-.spot.spot_easy_mode:not(.spot_easy_mode_loading) #site {
- height: 100% !important;
-}
-
-.spot.spot_easy_mode:not(.spot_easy_mode_loading) #notebook {
- padding: 0 !important;
- box-shadow: none;
- -webkit-box-shadow: none;
-}
-
-.spot.spot_easy_mode #header,
-.spot.spot_easy_mode #pager,
-.spot.spot_easy_mode #tooltip,
-.spot.spot_easy_mode #notebook > .end_space,
-.spot.spot_easy_mode .cell:not(.code_cell),
-.spot.spot_easy_mode .cell.code_cell > .input,
-.spot.spot_easy_mode .cell.code_cell > .widget-area > .prompt {
- position: absolute !important;
- top: -1000000000px;
- left: -1000000000px;
-}
-
-.spot.spot_easy_mode.spot_easy_mode_loading .cell.code_cell {
- position: absolute !important;
- top: -1000000000px;
- left: -1000000000px;
-}
-
-.spot.spot_easy_mode #notebook-container {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.spot.spot_easy_mode .cell.code_cell {
- border-color: transparent !important;
- padding: 0 !important;
-}
-
-/*****************************************
- ** EASY MODE SPINNER **
- *****************************************/
-.spot #spot_easy_mode_loader {
- display: none;
-}
-
-.spot.spot_easy_mode #spot_easy_mode_loader {
- display: block;
- position: fixed;
- top: 10px;
- width: 100%;
- text-align: center;
- margin-top: 50px;
-}
-
-.spot.spot_easy_mode #spot_easy_mode_loader_spinner
-{
- display: inline-block;
- width: 16px;
- height: 11px;
- margin-left: 5px;
- background-image: url(./ajax-loader.gif);
-}
-
-.spot.spot_easy_mode:not(.spot_easy_mode_loading) #spot_easy_mode_loader
-{
- right: 25px;
- margin-top: 0px;
- width: auto;
-}
-
-.spot.spot_ninja_mode #spot_easy_mode_loader
-{
- display: none;
-}
-
-/*****************************************
- ** Spot TOOLTIP STYLING **
- *****************************************/
-.spot .spot-tooltip .tooltip-inner {
- word-wrap: break-word;
-}
-
-.spot .spot-text-wrapper.overflown {
- color: red;
-}
-
-.spot .spot-text-wrapper {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- width: 12em;
-}
-
-.spot .spot-text-wrapper.spot-text-sm {
- width: 6em;
-}
-
-.spot .spot-text-wrapper.spot-text-lg {
- width: 18em;
-}
-
-.spot .spot-text-wrapper.spot-text-xlg {
- width: 30em;
-}
-
-/* Classes for the threat investigation notebooks*/
-body.spot_easy_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table,
-body.spot_ninja_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table{
- margin:10px 10px 20px 0px;
- font-size:12px;
-}
-
-
-body.spot_easy_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table td, th,
-body.spot_ninja_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table td, th{
- border: solid 1px #CCC;
- padding: 3px;
- background-color: #FFF;
- line-height:14px;
-}
-
-body.spot_easy_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table td,
-body.spot_ninja_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table td{
- height:25px;
- max-width: 180px;
- width:100px;
-}
-
-body.spot_easy_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table th,
-body.spot_ninja_mode[data-notebook-name*="Threat"] .widget-area .widget-box div table th{
-
- background-color: #0071C5;
- color: #FFF;
- text-align: center;
-}
-
-body.spot_easy_mode[data-notebook-name*="Threat"] .widget-area > .widget-subarea,
-body.spot_ninja_mode[data-notebook-name*="Threat"] .widget-area > .widget-subarea
-{
- width: 90%;
-}
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/ipython/custom/custom.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/ipython/custom/custom.js b/spot-oa/ui/ipython/custom/custom.js
deleted file mode 100755
index 2496d59..0000000
--- a/spot-oa/ui/ipython/custom/custom.js
+++ /dev/null
@@ -1,337 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-
-/**
- * Trigger reload event on parent document
- */
-function reloadParentData()
-{
- window.parent.iframeReloadHook && window.parent.iframeReloadHook();
-}
-
-require(['jquery', 'bootstrap'], function($, bootstrap)
-{
- function retry(query) {
- var regex = new RegExp(query + '=(\\d)');
-
- var matcher = regex.exec(window.location.hash);
-
- var attempt = matcher ? ++matcher[1] : 2;
-
- // Set hash
- window.location.hash = '#' + query + '=' + attempt;
- window.location.reload();
- }
-
- // jQuery must be available for easy mode to woark properly
- if ($===undefined) {
- if (/#spot_jquery_retry=[015-9]/.test(window.location.hash)) {
- alert('Notebook was not able to load jQuery after 5 attempts. Please try again later, this is a known issue.');
- console.warn('Bootstrap\'s tooltip was not loaded.');
- }
- else {
- confirm('Notebook failed to load jQuery, easy mode would not work properly without it. Would you you like to try again?')
- && retry('spot_jquery_retry');
- }
-
- return;
- }
-
- if ($.fn.tooltip===undefined) {
- if (/#spot_bootstrap_retry=\d/.test(window.location.hash)) {
- alert('Notebook was not able to load bootstrap\'s tooltip plugin. You can still work withuot this feature.');
- } else {
- confirm('Notebook was not able to load bootstrap\'s tooltip plugin. You can still work withuot this feature. Would you like to try again?')
- && retry('spot_bootstrap_retry');
- }
- }
-
- var easyMode = {
- stage: 0,
- KERNEL_READY: 1,
- NOTEBOOK_READY: 2,
- DOM_READY: 4,
- ENV_READY: 7,
- building: false,
- present: false,
- ready: false,
- cells: {
- total: 0,
- execution_queue: []
- }
- }
-
- /**
- * Show EasyMode
- *
- * Hide everything but IPython form
- */
- function showEasyMode()
- {
- $(document.body).addClass('spot_easy_mode').removeClass('spot_ninja_mode');
- }
-
- /**
- * Hide Easy Mode
- *
- * Show full IPython Notebook
- */
- function hideEasyMode()
- {
- $(document.body).addClass('spot_ninja_mode').removeClass('spot_easy_mode');
- }
-
- function insertProgressIndicator()
- {
- $(document.body).append(
- '<div id="spot_easy_mode_loader">' +
- '<span id="spot_easy_mode_loader_details"></span>' +
- '<span id="spot_easy_mode_loader_spinner"></span>' +
- '</div>'
- );
- }
-
- /**
- * Remove progress indicator
- */
- function removeProgressIndicator()
- {
- $(document.body).removeClass('spot_easy_mode_loading');
-
- $('#spot_easy_mode_loader').remove();
- }
-
- /**
- * Updates progress indicator's details
- */
- function updateProgressIndicator(content)
- {
- $('#spot_easy_mode_loader_details').html(content);
- }
-
- /**
- * Show a progress indicator to users
- */
- function showBuildingUiIndicator()
- {
- $(document.body).addClass('spot_easy_mode_loading');
-
- insertProgressIndicator();
-
- updateProgressIndicator(
- 'Building UI <span id="spot_easy_mode_loader_progress">0</span>%'
- );
- }
-
- /**
- * Update progress indicator
- */
- function updateBuildingUiIndicator()
- {
- var p;
-
- p = (easyMode.cells.total-easyMode.cells.execution_queue.length) * 100 / easyMode.cells.total;
-
- $('#spot_easy_mode_loader_progress').text(Math.floor(p));
- }
-
- function easyModeBootStrap (IPython)
- {
- if (easyMode.stage!=easyMode.ENV_READY) return;
-
- // 1 Build widgets
- easyMode.building = true;
-
- console.info('Spot: Building easy mode...');
-
- // 2 Create an execution queue to display progress
- easyMode.cells.execution_queue = [];
-
- easyMode.cells.total = 0;
- IPython.notebook.get_cells().forEach(function (cell)
- {
- if (cell.cell_type==='code')
- {
- easyMode.cells.total++;
- }
- });
-
- // Add an extra cell to show progress when requesting execution
- easyMode.cells.total++;
-
- // 3 Execute all cells ( Generate UI )
- IPython.notebook.execute_all_cells();
-
- updateBuildingUiIndicator();
- }
-
- function isEasyModeAvailable()
- {
- return window.parent!=window;
- }
-
- function isEasyModeEnabled() {
- return /showEasyMode/.test(window.location.hash);
- }
-
- function isNinjaModeEnabled() {
- return /showNinjaMode/.test(window.location.hash);
- }
-
- if (isEasyModeAvailable()) {
- // Add spot CSS classes (easymode enabled by default)
- $(document.body).addClass('spot').addClass('spot_easy_mode').addClass('spot_easy_mode_loading');
-
- // Listen for URL's hash changes
- $(window).on('hashchange', function ()
- {
- if (isEasyModeEnabled()) showEasyMode();
- else if (isNinjaModeEnabled()) hideEasyMode();
- });
-
- $(function () {
- // Show progress indicator
- showBuildingUiIndicator();
- });
- }
-
- // Enable spot tooltip text wrapper
- $(function () {
- $('body').tooltip({
- selector: '.spot-text-wrapper[data-toggle]',
- container: 'body',
- template: '<div class="spot-tooltip tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
- title: function () {
- return $(this).html();
- },
- html: true
- });
-
- $('body').on('show.bs.tooltip', '.spot-text-wrapper', function () {
- return this.clientWidth !== this.scrollWidth || this.clientHeight !== this.scrollHeight;
- });
- });
-
- /**
- * The following code enables toggle from normal user mode (wizard) and ninja node (notebook UI)
- */
- require(['base/js/namespace', 'base/js/events'], function(IPython, events)
- {
- // Do nothing when running stand alone
- if (!isEasyModeAvailable()) return;
-
- // We are running inside and iframe from Spot. Let's have some fun!
-
- // Let Notebook be aware it is running on an iframe
- IPython._target = '_self';
-
- events.on('kernel_busy.Kernel', function ()
- {
- // Skip this event while building UI
- if (!easyMode.ready) return;
-
- $('#notebook button.btn:not([disabled])').addClass('spotDisabled').attr('disabled', 'disabled');
-
- insertProgressIndicator();
- });
-
- events.on('kernel_idle.Kernel', function ()
- {
- // Skip this event while building UI
- if (!easyMode.ready) return;
-
- removeProgressIndicator();
-
- $('#notebook button.btn.spotDisabled').removeClass('spotDisabled').removeAttr('disabled');
- });
-
- events.on('kernel_ready.Kernel', function ()
- {
- console.info('Spot: Kernel is ready');
-
- easyMode.stage |= easyMode.KERNEL_READY;
-
- easyModeBootStrap(IPython);
- });
-
- events.on('notebook_loaded.Notebook', function ()
- {
- console.info('Spot: Notebook loaded');
-
- easyMode.stage |= easyMode.NOTEBOOK_READY;
-
- easyModeBootStrap(IPython);
- });
-
- events.on('shell_reply.Kernel', function (evt, data)
- {
- var reply, cell, cellIdx;
-
- reply = data.reply;
- cell = easyMode.cells.execution_queue.shift();
-
- console.log('Last execution status: ' + reply.content.status);
-
- if ((easyMode.building || easyMode.ready) && reply.content.status==='error')
- {
- // First error found
- easyMode.building = false;
- easyMode.ready = false;
- isEasyModeEnabled() && alert('Ooops some code failed. Please go to ipython notebook mode and manually fix the error.');
- $(document.body).removeClass('spot');
- removeProgressIndicator();
- hideEasyMode();
- // Select and scroll to first cell with errors
- cellIdx = IPython.notebook.find_cell_index(cell);
- IPython.notebook.scroll_to_cell(cellIdx);
- IPython.notebook.select(cellIdx);
- }
-
- if (!easyMode.building)
- {
- return;
- }
-
- if (easyMode.cells.execution_queue.length===0)
- {
- console.info('Spot: Cell execution has finished');
-
- easyMode.ready = true;
- easyMode.building = false;
-
- removeProgressIndicator();
- isEasyModeEnabled() && showEasyMode();
- }
- else
- {
- updateBuildingUiIndicator();
- }
- });
-
- events.on('execute.CodeCell', function (ev, obj)
- {
- var cell;
-
- if (!easyMode.building && !easyMode.ready) return;
-
- cell = obj.cell;
-
- easyMode.cells.execution_queue.push(cell);
-
- console.info('Spot: Cell execution requested: ' + easyMode.cells.execution_queue.length + ' of ' + easyMode.cells.total);
-
- cell.clear_output(false);
- // There seems to be a bug on IPython sometimes cells with widgets dont get cleared
- // Workaround:
- cell.output_area.clear_output(false, true);
- });
-
- $(function ()
- {
- console.info('Spot: DOM is ready');
-
- easyMode.stage |= easyMode.DOM_READY;
-
- easyModeBootStrap(IPython);
- });
- });
-});
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/EdInActions.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/EdInActions.js b/spot-oa/ui/js/actions/EdInActions.js
index 4e9d4e8..4fb39d8 100755
--- a/spot-oa/ui/js/actions/EdInActions.js
+++ b/spot-oa/ui/js/actions/EdInActions.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var SpotDispatcher = require('../dispatchers/SpotDispatcher');
var SpotActions = require('./SpotActions');
@@ -58,6 +73,23 @@ var EdInActions = {
ip: ip
});
},
+ saveScoring: function(scoredEmelents) {
+ SpotDispatcher.dispatch({
+ actionType: SpotConstants.SAVE_SCORED_ELEMENTS,
+ scoredElems: scoredEmelents
+ });
+ },
+ resetScoring: function(date) {
+ SpotDispatcher.dispatch({
+ actionType: SpotConstants.RESET_SCORED_ELEMENTS,
+ date: date
+ });
+ },
+ setClassWidth: function() {
+ SpotDispatcher.dispatch({
+ actionType: SpotConstants.CHANGE_CSS_CLS
+ });
+ }
};
module.exports = EdInActions;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/InSumActions.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/InSumActions.js b/spot-oa/ui/js/actions/InSumActions.js
index ea5cbe0..8c439ac 100755
--- a/spot-oa/ui/js/actions/InSumActions.js
+++ b/spot-oa/ui/js/actions/InSumActions.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const SpotDispatcher = require('../dispatchers/SpotDispatcher');
const SpotConstants = require('../constants/SpotConstants');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/SpotActions.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/SpotActions.js b/spot-oa/ui/js/actions/SpotActions.js
index a70f2a9..6cb3f0d 100755
--- a/spot-oa/ui/js/actions/SpotActions.js
+++ b/spot-oa/ui/js/actions/SpotActions.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var $ = require('jquery');
@@ -35,6 +50,12 @@ var SpotActions = {
name: name
});
},
+ setPipeline(pipeline) {
+ SpotDispatcher.dispatch({
+ actionType: SpotConstants.UPDATE_PIPELINE,
+ pipeline
+ });
+ },
expandPanel: function (panel) {
SpotDispatcher.dispatch({
actionType: SpotConstants.EXPAND_PANEL,
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/StoryboardActions.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/StoryboardActions.js b/spot-oa/ui/js/actions/StoryboardActions.js
index bf60b7c..13fb5e6 100755
--- a/spot-oa/ui/js/actions/StoryboardActions.js
+++ b/spot-oa/ui/js/actions/StoryboardActions.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var SpotDispatcher = require('../dispatchers/SpotDispatcher');
var SpotConstants = require('../constants/SpotConstants');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/__tests__/EdInActions.test.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/__tests__/EdInActions.test.js b/spot-oa/ui/js/actions/__tests__/EdInActions.test.js
index 0732997..ac13819 100644
--- a/spot-oa/ui/js/actions/__tests__/EdInActions.test.js
+++ b/spot-oa/ui/js/actions/__tests__/EdInActions.test.js
@@ -1,4 +1,17 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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
jest.mock('../../dispatchers/SpotDispatcher');
jest.mock('../SpotActions');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/__tests__/SpotActions.test.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/__tests__/SpotActions.test.js b/spot-oa/ui/js/actions/__tests__/SpotActions.test.js
index ebaf30c..aabc119 100644
--- a/spot-oa/ui/js/actions/__tests__/SpotActions.test.js
+++ b/spot-oa/ui/js/actions/__tests__/SpotActions.test.js
@@ -1,4 +1,18 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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
+
jest.mock('../../dispatchers/SpotDispatcher');
jest.mock('../../utils/SpotUtils');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/actions/__tests__/StoryboardActions.test.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/actions/__tests__/StoryboardActions.test.js b/spot-oa/ui/js/actions/__tests__/StoryboardActions.test.js
index 377e6fd..1d1c390 100644
--- a/spot-oa/ui/js/actions/__tests__/StoryboardActions.test.js
+++ b/spot-oa/ui/js/actions/__tests__/StoryboardActions.test.js
@@ -1,4 +1,18 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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
+
jest.mock('../../dispatchers/SpotDispatcher');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/ChartMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/ChartMixin.react.js b/spot-oa/ui/js/components/ChartMixin.react.js
index 210c3c9..edcf205 100755
--- a/spot-oa/ui/js/components/ChartMixin.react.js
+++ b/spot-oa/ui/js/components/ChartMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const React = require('react');
const $ = require('jquery');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/ContentLoaderMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/ContentLoaderMixin.react.js b/spot-oa/ui/js/components/ContentLoaderMixin.react.js
index ba1b98e..aa34b71 100755
--- a/spot-oa/ui/js/components/ContentLoaderMixin.react.js
+++ b/spot-oa/ui/js/components/ContentLoaderMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/DateInput.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/DateInput.react.js b/spot-oa/ui/js/components/DateInput.react.js
index 72f89b4..e20d646 100755
--- a/spot-oa/ui/js/components/DateInput.react.js
+++ b/spot-oa/ui/js/components/DateInput.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var $ = require('jquery');
var React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/DendrogramMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/DendrogramMixin.react.js b/spot-oa/ui/js/components/DendrogramMixin.react.js
index 74328f4..9eca114 100755
--- a/spot-oa/ui/js/components/DendrogramMixin.react.js
+++ b/spot-oa/ui/js/components/DendrogramMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var $ = require('jquery');
const Base64 = require('js-base64').Base64;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/DetailsGridMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/DetailsGridMixin.react.js b/spot-oa/ui/js/components/DetailsGridMixin.react.js
index 1213581..6598552 100755
--- a/spot-oa/ui/js/components/DetailsGridMixin.react.js
+++ b/spot-oa/ui/js/components/DetailsGridMixin.react.js
@@ -1,5 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var DetailsGridMixin = {
emptySetMessage: 'Please select one row from Suspicious Frame',
getInitialState: function ()
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/ExecutiveThreatBriefingPanel.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/ExecutiveThreatBriefingPanel.react.js b/spot-oa/ui/js/components/ExecutiveThreatBriefingPanel.react.js
index e1964c5..8d66957 100755
--- a/spot-oa/ui/js/components/ExecutiveThreatBriefingPanel.react.js
+++ b/spot-oa/ui/js/components/ExecutiveThreatBriefingPanel.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/GridPanelMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/GridPanelMixin.react.js b/spot-oa/ui/js/components/GridPanelMixin.react.js
index c116dd4..99c549c 100755
--- a/spot-oa/ui/js/components/GridPanelMixin.react.js
+++ b/spot-oa/ui/js/components/GridPanelMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/IPythonNotebookPanel.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/IPythonNotebookPanel.react.js b/spot-oa/ui/js/components/IPythonNotebookPanel.react.js
index 424d6ce..f5af7ce 100755
--- a/spot-oa/ui/js/components/IPythonNotebookPanel.react.js
+++ b/spot-oa/ui/js/components/IPythonNotebookPanel.react.js
@@ -1,10 +1,26 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
var SpotActions = require('../actions/SpotActions');
var SpotConstants = require('../constants/SpotConstants');
var SpotStore = require('../stores/SpotStore');
+var easyModeS = true;
var IPythonNotebookPanel = React.createClass({
propTypes: {
@@ -14,10 +30,11 @@ var IPythonNotebookPanel = React.createClass({
},
statics: {
createIPythonNotebookClosure: function (title, easyMode) {
- var closure;
-
+ var closure;
+
easyMode = typeof easyMode=='undefined' ? true : typeof easyMode=='boolean' ? easyMode : !!easyMode;
+ easyModeS = easyMode;
closure = {
getTitle: function () {
return title;
@@ -57,7 +74,7 @@ var IPythonNotebookPanel = React.createClass({
}
},
getInitialState: function () {
- return {date: this.props.date.replace(/-/g, ''), easyMode: true};
+ return {date: this.props.date.replace(/-/g, ''), easyMode: easyModeS};
},
componentDidMount: function () {
SpotStore.addChangeDateListener(this._onDateChange);
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/IngestSummaryPanel.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/IngestSummaryPanel.react.js b/spot-oa/ui/js/components/IngestSummaryPanel.react.js
index 6e2b98d..bc8c48f 100755
--- a/spot-oa/ui/js/components/IngestSummaryPanel.react.js
+++ b/spot-oa/ui/js/components/IngestSummaryPanel.react.js
@@ -1,14 +1,27 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const $ = require('jquery');
const d3 = require('d3');
const React = require('react');
-const ReactDOM = require('react-dom');
const ContentLoaderMixin = require('./ContentLoaderMixin.react');
const ChartMixin = require('./ChartMixin.react');
const DateUtils = require('../utils/DateUtils');
-const InSumActions = require('../actions/InSumActions');
const IngestSummaryStore = require('../stores/IngestSummaryStore');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/OptionPicker.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/OptionPicker.react.js b/spot-oa/ui/js/components/OptionPicker.react.js
index 44f4166..5c4ce9f 100644
--- a/spot-oa/ui/js/components/OptionPicker.react.js
+++ b/spot-oa/ui/js/components/OptionPicker.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/Panel.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/Panel.react.js b/spot-oa/ui/js/components/Panel.react.js
index 732b62b..a746edc 100755
--- a/spot-oa/ui/js/components/Panel.react.js
+++ b/spot-oa/ui/js/components/Panel.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
var assign = require('object-assign');
@@ -39,6 +54,17 @@ var Panel = React.createClass({
if (this.props.header) {
buttons = [];
+ if (this.props.switchable) {
+ buttons.push(
+ <li key="switchBtn">
+ <button type="button" className="btn btn-default btn-xs pull-right"
+ onClick={this.props.onSwitch}>
+ <span className="glyphicon glyphicon-sort" aria-hidden="true"></span>
+ </button>
+ </li>
+ );
+ }
+
if (this.props.reloadable) {
buttons.push(
<li key="realoadBtn" className="refresh">
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/PanelRow.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/PanelRow.react.js b/spot-oa/ui/js/components/PanelRow.react.js
index ca10d38..4d8bdb8 100755
--- a/spot-oa/ui/js/components/PanelRow.react.js
+++ b/spot-oa/ui/js/components/PanelRow.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var React = require('react');
@@ -32,9 +47,10 @@ var PanelRow = React.createClass({
},
render: function () {
var cssCls = this.state.maximized ? 'spot-maximized' : this.state.minimized ? 'spot-minimized' : '';
+ var sortable = {'order':1};
return (
- <div className={'spot-row row ' + cssCls}>
+ <div id={this.props.title || ''} className={'spot-row row fit ' + cssCls} style={sortable}>
{this.props.children}
</div>
);
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/PolloNetworkViewMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/PolloNetworkViewMixin.react.js b/spot-oa/ui/js/components/PolloNetworkViewMixin.react.js
index 09b684c..e31cfa9 100755
--- a/spot-oa/ui/js/components/PolloNetworkViewMixin.react.js
+++ b/spot-oa/ui/js/components/PolloNetworkViewMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const Base64 = require('js-base64').Base64;
const d3Interpolate = require('d3-interpolate');
@@ -19,7 +34,7 @@ const PolloNetworkViewMixin = {
// Node related scales
const hitsDomain = [1, this.state.data.maxNodes];
- const ipDomain = [false, true];
+ const ipDomain = [0,1];
this.nodeSizeScale = d3.scale.linear().domain(hitsDomain);
this.chargeScale = d3.scale.linear().domain(hitsDomain);
this.typeScale = d3.scale.ordinal().domain(ipDomain).range(["circle", "diamond"]);
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/SuspiciousGridMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/SuspiciousGridMixin.react.js b/spot-oa/ui/js/components/SuspiciousGridMixin.react.js
index e42ad8d..297978f 100755
--- a/spot-oa/ui/js/components/SuspiciousGridMixin.react.js
+++ b/spot-oa/ui/js/components/SuspiciousGridMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var $ = require('jquery');
var React = require('react');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/TimelineMixin.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/TimelineMixin.react.js b/spot-oa/ui/js/components/TimelineMixin.react.js
index 8d28830..3c568a5 100755
--- a/spot-oa/ui/js/components/TimelineMixin.react.js
+++ b/spot-oa/ui/js/components/TimelineMixin.react.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const $ = require('jquery');
const d3 = require('d3');
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/ButtonsScoring.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/ButtonsScoring.react.js b/spot-oa/ui/js/components/scoring/ButtonsScoring.react.js
new file mode 100644
index 0000000..39ebcff
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/ButtonsScoring.react.js
@@ -0,0 +1,48 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var ButtonsScoring = React.createClass({
+ getInitialState: function() {
+ return {dataScored: []};
+ },
+ render: function() {
+
+ let classNameCol, classNameBtn;
+
+ if(this.props.action === 'reset') {
+ classNameCol = `col-md-${this.props.col} col-xs-12 col-lg-${this.props.col} col-md-offset-3 col-lg-offset-3`;
+ classNameBtn = "btn col-md-12 col-xs-12 col-lg-12";
+ } else {
+ classNameCol = `col-md-${this.props.col} col-xs-6 col-lg-${this.props.col}`;
+ classNameBtn = "btn btn-primary col-md-12 col-xs-12 col-lg-12";
+ }
+
+ return(
+ <div className={classNameCol}>
+ <button className={classNameBtn} onClick={this.checkAction}>{this.props.name}</button>
+ </div>
+ );
+
+ },
+ checkAction: function() {
+ this.props.onChange();
+ }
+});
+
+module.exports = ButtonsScoring;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/FilterSelectInput.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/FilterSelectInput.react.js b/spot-oa/ui/js/components/scoring/FilterSelectInput.react.js
new file mode 100644
index 0000000..9b76377
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/FilterSelectInput.react.js
@@ -0,0 +1,45 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+var SpotUtils = require('../../utils/SpotUtils');
+
+var FilterSelectInput = React.createClass({
+ getInitialState: function() {
+ return {filterBox: ''}
+ },
+ render: function() {
+
+ return(
+ <div className={`col-md-${this.props.col} col-xs-12 col-sm-6 col-lg-${this.props.col}`}>
+ <div className="inner-addon right-addon">
+ <i className="glyphicon glyphicon-search"></i>
+ <input className="form-control filter-select" type="text" maxLength="15" placeholder={this.props.nameBox} id={this.props.idInput} autoFocus={false} onChange={this._onChange} value={this.state.filterBox} />
+ </div>
+ </div>
+ )
+ },
+ _onChange: function (e)
+ {
+ this.setState({filterBox: e.target.value});
+ SpotUtils.filterTextOnSelect($(this.props.idSelect), e.target.value);
+ },
+
+});
+
+
+module.exports = FilterSelectInput;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/RatingInput.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/RatingInput.react.js b/spot-oa/ui/js/components/scoring/RatingInput.react.js
new file mode 100644
index 0000000..9da6db2
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/RatingInput.react.js
@@ -0,0 +1,42 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var RatingInput = React.createClass({
+ render: function() {
+ var radioOptions = this.props.data.map((obj, i) =>
+ <label className="radio-inline">
+ <input key={i} type="radio" name={obj.radioName} id="rating" value={obj.value} defaultChecked={obj.selected}/>{obj.name}
+ </label>
+ );
+
+ return(
+ <div className={`col-md-${this.props.col} col-lg-${this.props.col} col-xs-12`}>
+ <div className="col-md-2 col-lg-2 col-xs-12">
+ <label>Rating: </label>
+ </div>
+ <div className="col-md-10 col-lg-10 col-xs-12">
+ {radioOptions}
+ </div>
+ </div>
+ );
+ }
+});
+
+
+module.exports = RatingInput;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/ScoreMessage.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/ScoreMessage.react.js b/spot-oa/ui/js/components/scoring/ScoreMessage.react.js
new file mode 100644
index 0000000..37beebe
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/ScoreMessage.react.js
@@ -0,0 +1,38 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var ScoreMessage = React.createClass({
+ getInitialState : function() {
+ return { showMe : false };
+ },
+
+ render: function() {
+ return(
+ <div className="text-center hidden" id={this.props.who}>
+ <label className="text-danger">"Click the 'Save' button when you’re finished scoring"</label>
+ </div>
+ );
+ },
+
+ checkAction: function(value) {
+ this.setState({ showMe : value}) ;
+ }
+});
+
+module.exports = ScoreMessage;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/SearchGlobalInput.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/SearchGlobalInput.react.js b/spot-oa/ui/js/components/scoring/SearchGlobalInput.react.js
new file mode 100644
index 0000000..664fcfa
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/SearchGlobalInput.react.js
@@ -0,0 +1,49 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var SearchGlobalInput = React.createClass({
+ getInitialState: function() {
+ return {filter: ''}
+ },
+ render: function() {
+ return(
+ <div className={`col-md-${this.props.col} col-lg-${this.props.col} col-xs-12`}>
+ <div className="inner-addon right-addon">
+ <i className="glyphicon glyphicon-search"></i>
+ <input className="form-control" type="text" placeholder="Quick scoring..." maxLength={this.props.maxlength || 15} id="globalTxt" autoFocus={false} onChange={this._onChange} value={this.state.filter} onKeyUp={this._onKeyUp} />
+ </div>
+ </div>
+ );
+ },
+ // _onKeyUp: function (e)
+ // {
+ // this.setState({filterBox: e.target.value})
+ // },
+ _onChange: function (e)
+ {
+ this.setState({filter: e.target.value})
+ },
+ _onFilterChange: function ()
+ {
+ console.log(e.target)
+ }
+});
+
+
+module.exports = SearchGlobalInput;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/components/scoring/SelectInput.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/components/scoring/SelectInput.react.js b/spot-oa/ui/js/components/scoring/SelectInput.react.js
new file mode 100644
index 0000000..321b154
--- /dev/null
+++ b/spot-oa/ui/js/components/scoring/SelectInput.react.js
@@ -0,0 +1,46 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var SelectInput = React.createClass({
+ propTypes: {
+ title: React.PropTypes.string.isRequired
+ },
+ componentDidMount: function() {
+ // $('.panel-body-container').height();
+ },
+ render: function() {
+
+ var labelOptions = this.props.options.map((data, i) =>
+ <option key={i} value={data}>{data}</option>
+ );
+
+
+ return(
+ <div className={`text-left col-md-${this.props.col} col-xs-12 col-sm-6 col-lg-${this.props.col}`}>
+ <select size="8" className="col-md-12 select-picker form-control" id={this.props.who} onChange={this.logChange}>
+ <option value="" selected>- Select -</option>
+ {labelOptions}
+ </select>
+ </div>
+ );
+ }
+});
+
+
+module.exports = SelectInput;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/constants/SpotConstants.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/constants/SpotConstants.js b/spot-oa/ui/js/constants/SpotConstants.js
index 08f3335..448068e 100755
--- a/spot-oa/ui/js/constants/SpotConstants.js
+++ b/spot-oa/ui/js/constants/SpotConstants.js
@@ -1,9 +1,25 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const SpotConstants = {
PIPELINE_NETFLOW: 'flow',
PIPELINE_DNS: 'dns',
PIPELINE_PROXY: 'proxy',
+ UPDATE_PIPELINE: 'UPDATE_PIPELINE',
// Search Actions
UPDATE_FILTER: 'UPDATE_FILTER',
UPDATE_DATE: 'UPDATE_DATE',
@@ -17,6 +33,11 @@ const SpotConstants = {
SUSPICIOUS_PANEL:'Suspicious',
NETVIEW_PANEL: 'Network View',
NOTEBOOK_PANEL: 'Notebook',
+ NO_IPYTHON_NOTEBOOK: 'NoIpythonNotebooks',
+ SCORING_PANEL: 'Scoring',
+ SAVE_SCORED_ELEMENTS: 'SAVE_SCORED_ELEMENTS',
+ RESET_SCORED_ELEMENTS: 'RESET_SCORED_ELEMENTS',
+ CHANGE_CSS_CLS: 'CHANGE_CSS_CLS',
DETAILS_PANEL: 'Details',
COMMENTS_PANEL:'Executive Threat Briefing',
INCIDENT_PANEL:'Incident Progression',
@@ -42,7 +63,8 @@ const SpotConstants = {
START_DATE: 'start-date',
END_DATE: 'end-date',
// Server Paths
- NOTEBOOKS_PATH: '/notebooks/ipynb'
+ NOTEBOOKS_PATH: '/notebooks/ipynb',
+ GRAPHQL_ENDPOINT: '/graphql'
};
module.exports = SpotConstants;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/cubehelix/cubehelix.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/cubehelix/cubehelix.js b/spot-oa/ui/js/cubehelix/cubehelix.js
index 4a68fa0..cf13cc0 100755
--- a/spot-oa/ui/js/cubehelix/cubehelix.js
+++ b/spot-oa/ui/js/cubehelix/cubehelix.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
(function() {
var radians = Math.PI / 180;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/dispatchers/SpotDispatcher.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/dispatchers/SpotDispatcher.js b/spot-oa/ui/js/dispatchers/SpotDispatcher.js
index ea57c1c..e001161 100755
--- a/spot-oa/ui/js/dispatchers/SpotDispatcher.js
+++ b/spot-oa/ui/js/dispatchers/SpotDispatcher.js
@@ -1,4 +1,19 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
var Dispatcher = require('flux').Dispatcher;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/ingest-summary.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/ingest-summary.js b/spot-oa/ui/js/ingest-summary.js
index f907477..7afecd8 100755
--- a/spot-oa/ui/js/ingest-summary.js
+++ b/spot-oa/ui/js/ingest-summary.js
@@ -1,10 +1,26 @@
-// Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
const React = require('react');
const ReactDOM = require('react-dom');
const SpotActions = require('./actions/SpotActions');
const InSumActions = require('./actions/InSumActions');
+const EdInActions = require('./actions/EdInActions');
const IngestSummaryStore = require('./stores/IngestSummaryStore');
const SpotConstants = require('./constants/SpotConstants');
const SpotUtils = require('./utils/SpotUtils');
@@ -13,6 +29,7 @@ const DateUtils = require('./utils/DateUtils');
// Build and Render Toolbar
const DateInput = require('./components/DateInput.react');
const OptionPicker = require('./components/OptionPicker.react');
+const MainMenu = require('./menu/components/MainMenu.react');
// Find out period
var startDate, endDate, today;
@@ -44,16 +61,23 @@ if (endDate < startDate)
startDate = endDate;
endDate = today;
}
-
const PIPELINES = IngestSummaryStore.PIPELINES;
-const DEFAULT_PIPELINE = Object.keys(PIPELINES)[0];
+//check if pipeline is on URL, if not the first element of PIPELINES is taken
+const DEFAULT_PIPELINE = SpotUtils.getUrlParam('pipeline') || Object.keys(PIPELINES)[0];
const loadPipeline = function loadPipeline(pipeline) {
- IngestSummaryStore.setPipeline(pipeline);
+ SpotActions.setPipeline(pipeline);
InSumActions.reloadSummary();
}
ReactDOM.render(
+ <MainMenu />,
+ document.getElementById('main-menu')
+);
+
+SpotActions.setDate(SpotUtils.getCurrentDate());
+
+ReactDOM.render(
<form className="form-inline">
<div className="form-group">
<label htmlFor="pipeline-picker">Source: </label>
@@ -106,9 +130,12 @@ ReactDOM.render(
document.getElementById('spot-content-wrapper')
);
+
+
// Set period
SpotActions.setDate(startDate, SpotConstants.START_DATE);
SpotActions.setDate(endDate, SpotConstants.END_DATE);
+SpotActions.setPipeline(DEFAULT_PIPELINE);
// Load data
loadPipeline(DEFAULT_PIPELINE);
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/menu/components/MainMenu.react.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/menu/components/MainMenu.react.js b/spot-oa/ui/js/menu/components/MainMenu.react.js
new file mode 100644
index 0000000..78f9c72
--- /dev/null
+++ b/spot-oa/ui/js/menu/components/MainMenu.react.js
@@ -0,0 +1,73 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+var React = require('react');
+
+var MainMenuStore = require('../stores/MainMenuStore');
+
+var MainMenu = React.createClass({
+ getInitialState: function () {
+ return {
+ menu: MainMenuStore.getMenu()
+ };
+ },
+ componentDidMount: function () {
+ MainMenuStore.addChangeMenuListener(this.onChange);
+ },
+ componentWillUnmount: function () {
+ MainMenuStore.removeChangeMenuListener(this.onChange);
+ },
+ render: function () {
+ let createdMenu = this.state.menu.map((dropdwn) =>
+ <li className="dropdown">
+ {(dropdwn.sub.length === 0 && dropdwn.labelledby === 'pluginsMenu') ? '' : dropdwn.sub.length === 0 ?
+ <a data-href={dropdwn.link} target={dropdwn.target}>{dropdwn.name}</a>
+ :
+ <a className="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
+ {dropdwn.glyphicon !== '' ? <span className={'glyphicon ' + dropdwn.glyphicon} aria-hidden="true"></span>
+ :
+ dropdwn.name}
+ <span className="caret"></span>
+ </a>
+ }
+ <ul className="dropdown-menu" aria-labelledby={dropdwn.labelledby}>
+ {dropdwn.sub.map((li) =>
+ <li>
+ <a data-href={li.link} target={li.target}>{li.name}</a>
+ </li>
+ )}
+ </ul>
+ </li>
+ );
+
+ return(
+ <div>
+ <ul className="nav navbar-nav navbar-right">
+ {createdMenu}
+ </ul>
+ </div>
+ );
+ },
+ onChange: function ()
+ {
+ this.setState({menu: MainMenuStore.getMenu()});
+ }
+
+});
+
+
+module.exports = MainMenu;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/menu/menu.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/menu/menu.js b/spot-oa/ui/js/menu/menu.js
new file mode 100644
index 0000000..ac00647
--- /dev/null
+++ b/spot-oa/ui/js/menu/menu.js
@@ -0,0 +1,52 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+let menu =
+ {
+ menu:
+ [
+ {name: 'Flows', link: '', glyphicon: '', labelledby: 'flowsMenu', sub:
+ [
+ {name: 'Suspicious', link: '../flow/suspicious.html#date=${date}', target: '_self'},
+ {name: 'Threat Investigation', link: '../flow/threat-investigation.html#date=${date}', target: '_self'},
+ {name: 'Storyboard', link: '../flow/storyboard.html#date=${date}', target: '_self'},
+ {name: 'Advanced Mode', link: '../flow/ipython_notebook.html#date=${date}', target: '_blank'}
+ ]
+ },
+ {name: 'DNS', link: '', glyphicon: '', labelledby: 'dnsMenu', sub:
+ [
+ {name: 'Suspicious', link: '../dns/suspicious.html#date=${date}', target: '_self'},
+ {name: 'Threat Investigation', link: '../dns/threat-investigation.html#date=${date}', target: '_self'},
+ {name: 'Storyboard', link: '../dns/storyboard.html#date=${date}', target: '_self'},
+ {name: 'Advanced Mode', link: '../dns/ipython_notebook.html#date=${date}', target: '_blank'}
+ ]
+ },
+ {name: 'Proxy', link: '', glyphicon: '', labelledby: 'proxyMenu', sub:
+ [
+ {name: 'Suspicious', link: '../proxy/suspicious.html#date=${date}', target: '_self'},
+ {name: 'Threat Investigation', link: '../proxy/threat-investigation.html#date=${date}', target: '_self'},
+ {name: 'Storyboard', link: '../proxy/storyboard.html#date=${date}', target: '_self'},
+ {name: 'Advanced Mode', link: '../proxy/ipython_notebook.html#date=${date}', target: '_blank'}
+ ]
+ },
+ {name: 'Ingest Summary', link: '../ingest/ingest-summary.html#end-date=${date}', glyphicon: '', labelledby: '', sub: [], target: '_self'},
+ {name: 'Plugins', link: '', glyphicon: '', labelledby: 'pluginsMenu', sub: []}
+
+ ]
+ };
+
+module.exports = menu;
http://git-wip-us.apache.org/repos/asf/incubator-spot/blob/fbcfa683/spot-oa/ui/js/menu/stores/MainMenuStore.js
----------------------------------------------------------------------
diff --git a/spot-oa/ui/js/menu/stores/MainMenuStore.js b/spot-oa/ui/js/menu/stores/MainMenuStore.js
new file mode 100644
index 0000000..2253500
--- /dev/null
+++ b/spot-oa/ui/js/menu/stores/MainMenuStore.js
@@ -0,0 +1,57 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+const EventEmitter = require('events').EventEmitter;
+
+const SpotDispatcher = require('../../../js/dispatchers/SpotDispatcher');
+const SpotConstants = require('../../../js/constants/SpotConstants');
+const Menu = require('../menu');
+
+class MainMenuStore {
+ constructor() {
+ this.menu = Menu.menu;
+ this.eventEmitter = new EventEmitter();
+ }
+
+ getMenu() {
+ return this.menu;
+ }
+
+ addChangeMenuListener(callback) {
+ this.eventEmitter.on('change', callback);
+ }
+
+ removeChangeMenuListener(callback) {
+ this.eventEmitter.removeListener('change', callback);
+ }
+
+ notifyListeners() {
+ this.eventEmitter.emit('change');
+ }
+
+}
+
+const mm = new MainMenuStore();
+
+SpotDispatcher.register(function (action) {
+ switch (action.actionType) {
+ case SpotConstants.RELOAD_MENU:
+ mm.notifyListeners();
+ break;
+ }
+});
+
+module.exports = mm;