Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
web-interface.assets.24.24.bed853b49cad62de1f58.js Maven / Gradle / Ivy
webpackJsonp([24],{314:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar SourceTitle = _react2['default'].createClass({\n displayName: 'SourceTitle',\n\n propTypes: {\n className: _react.PropTypes.string,\n resetFilters: _react.PropTypes.func.isRequired,\n resetFilterId: _react.PropTypes.string,\n children: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.element, _react.PropTypes.string]).isRequired\n },\n render: function render() {\n return _react2['default'].createElement(\n 'h3',\n { className: 'sources-title' },\n this.props.children,\n _react2['default'].createElement(\n 'span',\n { style: { marginLeft: 10 } },\n _react2['default'].createElement(\n 'button',\n { id: this.props.resetFilterId, className: 'btn btn-info btn-xs ' + this.props.className,\n onClick: this.props.resetFilters, title: 'Reset filter', style: { display: 'none' } },\n 'Reset'\n )\n )\n );\n }\n});\n\nexports['default'] = SourceTitle;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourceTitle.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/sources/SourceTitle.jsx\n ** module id = 314\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/components/sources/SourceTitle.jsx?")},423:function(module,exports,__webpack_require__){eval('/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js"), RootInstanceProvider = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js"), ReactMount = require("react/lib/ReactMount"), React = require("react"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n\'use strict\';\n\nObject.defineProperty(exports, \'__esModule\', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \'default\': obj }; }\n\nvar _reflux = __webpack_require__(3);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar HistogramDataActions = _reflux2[\'default\'].createActions({\n \'load\': { asyncResult: true }\n});\n\nexports[\'default\'] = HistogramDataActions;\nmodule.exports = exports[\'default\'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js"); if (makeExportsHot(module, require("react"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error("Cannot not apply hot update to " + "HistogramDataActions.js" + ": " + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/actions/sources/HistogramDataActions.js\n ** module id = 423\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/actions/sources/HistogramDataActions.js?')},935:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _jquery = __webpack_require__(10);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _d3 = __webpack_require__(56);\n\nvar _d32 = _interopRequireDefault(_d3);\n\nvar _dc = __webpack_require__(90);\n\nvar _dc2 = _interopRequireDefault(_dc);\n\nvar _numeral = __webpack_require__(15);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _SourceTitle = __webpack_require__(314);\n\nvar _SourceTitle2 = _interopRequireDefault(_SourceTitle);\n\nvar _logicSearchUniversalSearch = __webpack_require__(148);\n\nvar _logicSearchUniversalSearch2 = _interopRequireDefault(_logicSearchUniversalSearch);\n\nvar _utilStringUtils = __webpack_require__(52);\n\nvar _utilStringUtils2 = _interopRequireDefault(_utilStringUtils);\n\nvar SourceDataTable = _react2['default'].createClass({\n displayName: 'SourceDataTable',\n\n propTypes: {\n numberOfTopValues: _react.PropTypes.number.isRequired,\n resetFilters: _react.PropTypes.func.isRequired,\n setSearchFilter: _react.PropTypes.func.isRequired\n },\n\n getInitialState: function getInitialState() {\n return {\n numberOfSources: 100\n };\n },\n\n _getAddToSearchButton: function _getAddToSearchButton(source) {\n var addToSearchButton = document.createElement('button');\n addToSearchButton.className = 'btn btn-xs btn-default dc-search-button';\n addToSearchButton.title = 'Add to search query';\n addToSearchButton.setAttribute('data-source', _utilStringUtils2['default'].unescapeHTML(source));\n addToSearchButton.innerHTML = \" \";\n\n return addToSearchButton.outerHTML;\n },\n\n renderDataTable: function renderDataTable(dimension, group, onDataFiltered) {\n var _this = this;\n\n var dataTableDomNode = (0, _jquery2['default'])('#dc-sources-result')[0];\n this._dataTable = _dc2['default'].dataTable(dataTableDomNode);\n this._dataTable.dimension(dimension).group(function (d) {\n var topValues = group.top(_this.props.numberOfTopValues);\n var dInTopValues = topValues.some(function (value) {\n return d.name.localeCompare(value.key) === 0;\n });\n return dInTopValues ? 'Top sources' : 'Others';\n }).size(this.state.numberOfSources).columns([function (d) {\n return '' + d.name + ' ';\n }, function (d) {\n return d.percentage.toFixed(2) + '%';\n }, function (d) {\n return (0, _numeral2['default'])(d.message_count).format('0,0');\n }, function (d) {\n return _this._getAddToSearchButton(d.name);\n }]).sortBy(function (d) {\n return d.message_count;\n }).order(_d32['default'].descending).on('renderlet', function (table) {\n table.selectAll('.dc-table-group').classed('info', true);\n _this._addSourceToSearchBarListener(table);\n _this._filterSourceListener(table, onDataFiltered);\n });\n },\n\n _addSourceToSearchBarListener: function _addSourceToSearchBarListener(table) {\n table.selectAll('td.dc-table-column .dc-search-button').on('click', function () {\n var source = (0, _jquery2['default'])(_d32['default'].event.target).closest('button').data('source');\n (0, _jquery2['default'])(document).trigger('add-search-term.graylog.search', {\n field: 'source',\n value: source,\n operator: _logicSearchUniversalSearch2['default'].orOperator()\n });\n });\n },\n\n _filterSourceListener: function _filterSourceListener(table, onDataFiltered) {\n table.selectAll('td.dc-table-column a.dc-filter-link').on('click', function () {\n var parentTdElement = (0, _jquery2['default'])(_d32['default'].event.target).parents('td.dc-table-column._0');\n var datum = _d32['default'].selectAll(parentTdElement).datum();\n\n onDataFiltered(datum.name);\n });\n },\n\n redraw: function redraw() {\n this._dataTable.redraw();\n },\n\n clearFilters: function clearFilters() {\n this._dataTable.filterAll();\n },\n\n getFilters: function getFilters() {\n return this._dataTable ? this._dataTable.filters() : [];\n },\n\n setFilter: function setFilter(filter) {\n this._dataTable.filter(filter);\n },\n\n changeNumberOfSources: function changeNumberOfSources(numberOfSources) {\n this._dataTable.size(numberOfSources).redraw();\n },\n\n _onNumberOfSourcesChanged: function _onNumberOfSourcesChanged(event) {\n var _this2 = this;\n\n this.setState({ numberOfSources: event.target.value }, function () {\n _this2.changeNumberOfSources(_this2.state.numberOfSources);\n });\n },\n\n _onFilterChanged: function _onFilterChanged(event) {\n this.props.setSearchFilter(event.target.value);\n },\n\n render: function render() {\n var resultTable = _react2['default'].createElement(\n 'table',\n { id: 'dc-sources-result', className: 'sources table table-hover' },\n _react2['default'].createElement(\n 'thead',\n null,\n _react2['default'].createElement(\n 'tr',\n null,\n _react2['default'].createElement(\n 'th',\n { style: { width: '60%' } },\n 'Name'\n ),\n _react2['default'].createElement(\n 'th',\n null,\n 'Percentage'\n ),\n _react2['default'].createElement(\n 'th',\n null,\n 'Message count'\n ),\n _react2['default'].createElement('th', { style: { width: 10 } })\n )\n )\n );\n\n return _react2['default'].createElement(\n 'div',\n null,\n _react2['default'].createElement(\n _SourceTitle2['default'],\n { resetFilterId: 'dc-sources-result-reset', resetFilters: this.props.resetFilters },\n 'Selected sources'\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'row sources-filtering' },\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-6' },\n _react2['default'].createElement(\n 'div',\n { className: 'form-inline' },\n _react2['default'].createElement(\n 'div',\n { className: 'form-group' },\n _react2['default'].createElement('input', { type: 'text', className: 'form-control input-sm', onChange: this._onFilterChanged,\n placeholder: 'Search' })\n )\n )\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-6' },\n _react2['default'].createElement(\n 'div',\n { className: 'form-inline text-right' },\n _react2['default'].createElement(\n 'div',\n { className: 'form-group' },\n _react2['default'].createElement(\n 'label',\n { htmlFor: 'no-results' },\n 'Show:'\n ),\n _react2['default'].createElement(\n 'select',\n { id: 'no-results', className: 'form-control input-sm', onChange: this._onNumberOfSourcesChanged,\n value: this.state.numberOfSources },\n _react2['default'].createElement(\n 'option',\n { value: '10' },\n '10'\n ),\n _react2['default'].createElement(\n 'option',\n { value: '50' },\n '50'\n ),\n _react2['default'].createElement(\n 'option',\n { value: '100' },\n '100'\n ),\n _react2['default'].createElement(\n 'option',\n { value: '500' },\n '500'\n )\n )\n )\n )\n )\n ),\n resultTable\n );\n }\n});\n\nexports['default'] = SourceDataTable;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourceDataTable.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/sources/SourceDataTable.jsx\n ** module id = 935\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/components/sources/SourceDataTable.jsx?")},936:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _jquery = __webpack_require__(10);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\n__webpack_require__(400);\n\nvar _dc = __webpack_require__(90);\n\nvar _dc2 = _interopRequireDefault(_dc);\n\nvar _d3 = __webpack_require__(56);\n\nvar _d32 = _interopRequireDefault(_d3);\n\nvar _logicSearchUniversalSearch = __webpack_require__(148);\n\nvar _logicSearchUniversalSearch2 = _interopRequireDefault(_logicSearchUniversalSearch);\n\nvar _SourceTitle = __webpack_require__(314);\n\nvar _SourceTitle2 = _interopRequireDefault(_SourceTitle);\n\nvar _utilD3Utils = __webpack_require__(117);\n\nvar _utilD3Utils2 = _interopRequireDefault(_utilD3Utils);\n\nvar _legacyGraphHelper = __webpack_require__(147);\n\nvar _legacyGraphHelper2 = _interopRequireDefault(_legacyGraphHelper);\n\nvar SourceLineChart = _react2['default'].createClass({\n displayName: 'SourceLineChart',\n\n propTypes: {\n histogramDataAvailable: _react.PropTypes.bool.isRequired,\n reloadingHistogram: _react.PropTypes.bool.isRequired,\n resetFilters: _react.PropTypes.func.isRequired,\n resolution: _react.PropTypes.string.isRequired\n },\n\n getInitialState: function getInitialState() {\n return {\n lineChartWidth: '100%'\n };\n },\n\n getFilters: function getFilters() {\n return this._lineChart ? this._lineChart.filters() : [];\n },\n\n setFilter: function setFilter(filter) {\n this._lineChart.filter(filter);\n },\n\n clearFilters: function clearFilters() {\n this._lineChart.filterAll();\n },\n\n _configureWidth: function _configureWidth(lineChartWidth) {\n this._lineChart.width(lineChartWidth);\n this.setState({ lineChartWidth: String(lineChartWidth) + 'px' });\n },\n\n updateWidth: function updateWidth() {\n var $lineChartDomNode = (0, _jquery2['default'])('#dc-sources-line-chart');\n var lineChartWidth = $lineChartDomNode.width();\n this._configureWidth(lineChartWidth);\n },\n\n renderLineChart: function renderLineChart(dimension, group, onDataFiltered) {\n var lineChartDomNode = (0, _jquery2['default'])('#dc-sources-line-chart')[0];\n var width = (0, _jquery2['default'])(lineChartDomNode).width();\n (0, _jquery2['default'])(document).on('mouseup', '#dc-sources-line-chart svg', function (event) {\n (0, _jquery2['default'])('.timerange-selector-container').effect('bounce', {\n complete: function complete() {\n // Submit search directly if alt key is pressed.\n if (event.altKey) {\n _logicSearchUniversalSearch2['default'].submit();\n }\n }\n });\n });\n this._lineChart = _dc2['default'].lineChart(lineChartDomNode);\n this._lineChart.height(200).margins({ left: 35, right: 20, top: 20, bottom: 20 }).dimension(dimension).group(group).x(_d32['default'].time.scale()).renderHorizontalGridLines(true)\n // FIXME: causes those nasty exceptions when rendering data (one per x axis tick)\n .elasticX(true).elasticY(true).transitionDuration(30).colors(_utilD3Utils2['default'].glColourPalette()).on('filtered', function (chart) {\n _dc2['default'].events.trigger(function () {\n var filter = chart.filter();\n onDataFiltered(filter);\n });\n });\n this._configureWidth(width);\n this._lineChart.xAxis().ticks(_legacyGraphHelper2['default'].customTickInterval()).tickFormat(_legacyGraphHelper2['default'].customDateTimeFormat());\n this._lineChart.yAxis().ticks(6).tickFormat(_d32['default'].format('s'));\n },\n\n render: function render() {\n var loadingSpinnerStyle = {\n display: this.props.reloadingHistogram ? 'block' : 'none',\n width: this.state.lineChartWidth\n };\n var loadingSpinner = _react2['default'].createElement(\n 'div',\n { className: 'sources overlay', style: loadingSpinnerStyle },\n _react2['default'].createElement('i', { className: 'fa fa-spin fa-refresh spinner' })\n );\n\n var noDataOverlayStyle = {\n display: this.props.histogramDataAvailable ? 'none' : 'block',\n width: this.state.lineChartWidth\n };\n var noDataOverlay = _react2['default'].createElement(\n 'div',\n { className: 'sources overlay', style: noDataOverlayStyle },\n 'Not enough data'\n );\n return _react2['default'].createElement(\n 'div',\n { id: 'dc-sources-line-chart', className: 'col-md-12' },\n _react2['default'].createElement(\n _SourceTitle2['default'],\n { className: 'reset', resetFilters: this.props.resetFilters },\n 'Messages per ',\n this.props.resolution\n ),\n loadingSpinner,\n noDataOverlay\n );\n }\n});\n\nexports['default'] = SourceLineChart;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourceLineChart.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/sources/SourceLineChart.jsx\n ** module id = 936\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/components/sources/SourceLineChart.jsx?")},937:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _jquery = __webpack_require__(10);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _crossfilter = __webpack_require__(102);\n\nvar _crossfilter2 = _interopRequireDefault(_crossfilter);\n\nvar _dc = __webpack_require__(90);\n\nvar _dc2 = _interopRequireDefault(_dc);\n\nvar _qs = __webpack_require__(91);\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _moment = __webpack_require__(20);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _SourceDataTable = __webpack_require__(935);\n\nvar _SourceDataTable2 = _interopRequireDefault(_SourceDataTable);\n\nvar _SourcePieChart = __webpack_require__(938);\n\nvar _SourcePieChart2 = _interopRequireDefault(_SourcePieChart);\n\nvar _SourceLineChart = __webpack_require__(936);\n\nvar _SourceLineChart2 = _interopRequireDefault(_SourceLineChart);\n\nvar _componentsSupportSupportLink = __webpack_require__(85);\n\nvar _componentsSupportSupportLink2 = _interopRequireDefault(_componentsSupportSupportLink);\n\nvar _componentsCommon = __webpack_require__(4);\n\nvar _logicDatetimesDateTime = __webpack_require__(41);\n\nvar _logicDatetimesDateTime2 = _interopRequireDefault(_logicDatetimesDateTime);\n\nvar _logicSearchUniversalSearch = __webpack_require__(148);\n\nvar _logicSearchUniversalSearch2 = _interopRequireDefault(_logicSearchUniversalSearch);\n\nvar _utilEventHandlersThrottler = __webpack_require__(155);\n\nvar _utilEventHandlersThrottler2 = _interopRequireDefault(_utilEventHandlersThrottler);\n\nvar _storesSourcesSourcesStore = __webpack_require__(353);\n\nvar _storesSourcesSourcesStore2 = _interopRequireDefault(_storesSourcesSourcesStore);\n\nvar _actionsSourcesHistogramDataActions = __webpack_require__(423);\n\nvar _actionsSourcesHistogramDataActions2 = _interopRequireDefault(_actionsSourcesHistogramDataActions);\n\nvar _storesSourcesHistogramDataStore = __webpack_require__(1049);\n\nvar _storesSourcesHistogramDataStore2 = _interopRequireDefault(_storesSourcesHistogramDataStore);\n\nvar _storesSearchSearchStore = __webpack_require__(46);\n\nvar _storesSearchSearchStore2 = _interopRequireDefault(_storesSearchSearchStore);\n\nvar daysToSeconds = function daysToSeconds(days) {\n return _moment2['default'].duration(days, 'days').as('seconds');\n};\nvar hoursToSeconds = function hoursToSeconds(hours) {\n return _moment2['default'].duration(hours, 'hours').as('seconds');\n};\n\nvar DEFAULT_RANGE_IN_SECS = hoursToSeconds(1);\nvar SUPPORTED_RANGES_IN_SECS = [hoursToSeconds(1), daysToSeconds(1), daysToSeconds(7), daysToSeconds(31), daysToSeconds(365), 0];\n\nvar SCREEN_RESOLUTION = (0, _jquery2['default'])(window).width();\n\nvar SourceOverview = _react2['default'].createClass({\n displayName: 'SourceOverview',\n\n getInitialState: function getInitialState() {\n this.sourcesData = (0, _crossfilter2['default'])();\n this.filterDimension = this.sourcesData.dimension(function (d) {\n return d.name;\n });\n this.nameDimension = this.sourcesData.dimension(function (d) {\n return d.name;\n });\n this.nameMessageGroup = this.nameDimension.group().reduceSum(function (d) {\n return d.message_count;\n });\n\n this.messageCountDimension = this.sourcesData.dimension(function (d) {\n return d.message_count;\n });\n\n this.histogramData = (0, _crossfilter2['default'])();\n this.valueDimension = this.histogramData.dimension(function (d) {\n return new Date(d.x);\n });\n this.valueGroup = this.valueDimension.group().reduceSum(function (d) {\n return d.y;\n });\n\n return {\n range: null,\n resolution: 'minute',\n filter: '',\n loading: false,\n renderResultTable: true,\n histogramDataAvailable: true,\n reloadingHistogram: false\n };\n },\n\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n var onDataTableFiltered = function onDataTableFiltered(sourceName) {\n _this.refs.sourcePieChart.setFilter(sourceName);\n _this._toggleResetButtons();\n _dc2['default'].redrawAll();\n _this.loadHistogramData();\n };\n\n var onPieChartFiltered = function onPieChartFiltered() {\n _this.loadHistogramData();\n _this._toggleResetButtons();\n };\n\n var onLineChartFiltered = function onLineChartFiltered(filter) {\n if (filter) {\n _storesSearchSearchStore2['default'].changeTimeRange('absolute', {\n from: new _logicDatetimesDateTime2['default'](filter[0]).toString(),\n to: new _logicDatetimesDateTime2['default'](filter[1]).toString()\n });\n } else {\n _this.syncRangeWithQuery();\n }\n };\n\n this.refs.sourceDataTable.renderDataTable(this.messageCountDimension, this.nameMessageGroup, onDataTableFiltered);\n this.refs.sourcePieChart.renderPieChart(this.nameDimension, this.nameMessageGroup, onPieChartFiltered);\n this.refs.sourceLineChart.renderLineChart(this.valueDimension, this.valueGroup, onLineChartFiltered);\n this.applyRangeParameter();\n _dc2['default'].renderAll();\n window.addEventListener('resize', this._resizeCallback);\n (0, _jquery2['default'])(window).on('hashchange', this._applyRangeFromHash);\n // register them live as we do not know if those buttons are currently in the DOM\n (0, _jquery2['default'])(document).on('click', '.sidebar-hide', this._updateWidth);\n (0, _jquery2['default'])(document).on('click', '.sidebar-show', this._updateWidth);\n _logicSearchUniversalSearch2['default'].init();\n },\n\n componentWillUnmount: function componentWillUnmount() {\n window.removeEventListener('resize', this._resizeCallback);\n (0, _jquery2['default'])(window).off('hashchange', this._applyRangeFromHash);\n (0, _jquery2['default'])(document).off('click', '.sidebar-hide', this._updateWidth);\n (0, _jquery2['default'])(document).off('click', '.sidebar-show', this._updateWidth);\n },\n\n setSearchFilter: function setSearchFilter(filter) {\n var _this2 = this;\n\n this.setState({ filter: filter }, function () {\n _this2._filterSources();\n _this2.refs.sourceDataTable.redraw();\n _this2.refs.sourcePieChart.redraw();\n });\n },\n\n NUMBER_OF_TOP_VALUES: 10,\n eventThrottler: new _utilEventHandlersThrottler2['default'](),\n\n loadData: function loadData() {\n this.loadSources();\n this.loadHistogramData();\n },\n\n loadSources: function loadSources() {\n var _this3 = this;\n\n var onLoaded = function onLoaded(sources) {\n _this3._resetSources(sources);\n _this3.setState({ renderResultTable: _this3.sourcesData.size() !== 0, loading: false });\n _this3._updateWidth();\n };\n\n _storesSourcesSourcesStore2['default'].loadSources(this.state.range, onLoaded);\n },\n\n _resetSources: function _resetSources(sources) {\n var _this4 = this;\n\n /*\n * http://stackoverflow.com/questions/23500546/replace-crossfilter-data-restore-dimensions-and-groups\n * It looks like dc interacts with crossfilter to represent the graphs and apply some filters\n * on the crossfilter dimension, but it also stores those filters internally. That means that\n * we need to remove the dimension and graphs filters, but we only need to reapply filters to the\n * graphs, dc will propagate that to the crossfilter dimension.\n */\n var pieChartFilters = this.refs.sourcePieChart.getFilters();\n var dataTableFilters = this.refs.sourceDataTable.getFilters();\n this.nameDimension.filterAll();\n this.filterDimension.filterAll();\n this.refs.sourcePieChart.clearFilters();\n this.refs.sourceDataTable.clearFilters();\n this.sourcesData.remove();\n this.sourcesData.add(sources);\n\n pieChartFilters.forEach(function (filter) {\n return _this4.refs.sourcePieChart.setFilter(filter);\n });\n dataTableFilters.forEach(function (filter) {\n return _this4.refs.sourceDataTable.setFilter(filter);\n });\n this._filterSources();\n\n _dc2['default'].redrawAll();\n },\n\n loadHistogramData: function loadHistogramData() {\n var _this5 = this;\n\n var filters = undefined;\n\n if (this.refs.sourcePieChart.getFilters().length !== 0 || this.refs.sourceDataTable.getFilters().length !== 0) {\n filters = this.nameDimension.top(Infinity).map(function (source) {\n return _logicSearchUniversalSearch2['default'].escape(source.name);\n });\n }\n\n _actionsSourcesHistogramDataActions2['default'].load(this.state.range, filters, SCREEN_RESOLUTION).then(function (histogramData) {\n _this5.setState({\n resolution: histogramData.interval,\n reloadingHistogram: false,\n histogramDataAvailable: histogramData.histogram.length >= 2\n });\n _this5._resetHistogram(histogramData.histogram);\n });\n\n this.setState({ reloadingHistogram: true });\n },\n\n _resetHistogram: function _resetHistogram(histogram) {\n var _this6 = this;\n\n var lineChartFilters = this.refs.sourceLineChart.getFilters();\n this.valueDimension.filterAll();\n this.refs.sourceLineChart.clearFilters();\n this.histogramData.remove();\n this.histogramData.add(histogram);\n\n lineChartFilters.forEach(function (filter) {\n return _this6.refs.sourceLineChart.setFilter(filter);\n });\n\n _dc2['default'].redrawAll();\n },\n\n _resizeCallback: function _resizeCallback() {\n var _this7 = this;\n\n this.eventThrottler.throttle(function () {\n return _this7._updateWidth();\n });\n },\n\n // redirect old range format (as query parameter) to new format (deep link)\n _redirectToRange: function _redirectToRange(range) {\n // if range is ill formatted, we take care of it in the deep link handling\n window.location.replace('sources#' + range);\n },\n\n _getRangeFromOldQueryFormat: function _getRangeFromOldQueryFormat() {\n var query = window.location.search;\n if (query) {\n if (query.indexOf('?') === 0 && query.length > 1) {\n query = query.substr(1, query.length - 1);\n var range = _qs2['default'].parse(query).range;\n if (range) {\n return range;\n }\n }\n }\n return null;\n },\n\n _applyRangeFromHash: function _applyRangeFromHash() {\n var range = this._getRangeFromHash();\n this.changeRange(range, false);\n },\n\n applyRangeParameter: function applyRangeParameter() {\n var range = this._getRangeFromOldQueryFormat();\n if (range) {\n this._redirectToRange(range);\n } else {\n this._applyRangeFromHash();\n }\n },\n\n _getRangeFromHash: function _getRangeFromHash() {\n var hash = window.location.hash;\n if (hash.indexOf('#') !== 0) {\n return DEFAULT_RANGE_IN_SECS;\n } else {\n var hashContent = hash.substring(1);\n if (hash.indexOf('&') < 0) {\n // If there is only one param in the hash, return it\n return hashContent;\n }\n // If there are more than one params in the hash, return the numeric one\n var match = hashContent.match(/(\\d+)=&/);\n return match && match.length > 0 ? match[1] : DEFAULT_RANGE_IN_SECS;\n }\n },\n\n resetSourcesFilters: function resetSourcesFilters() {\n this.refs.sourcePieChart.clearFilters();\n this.nameDimension.filterAll();\n this.loadHistogramData();\n this._toggleResetButtons();\n _dc2['default'].redrawAll();\n },\n\n resetHistogramFilters: function resetHistogramFilters() {\n this.valueDimension.filterAll();\n this.refs.sourceLineChart.clearFilters();\n _dc2['default'].redrawAll();\n },\n\n _updateWidth: function _updateWidth() {\n SCREEN_RESOLUTION = (0, _jquery2['default'])(window).width();\n this.refs.sourcePieChart.updateWidth();\n this.refs.sourceLineChart.updateWidth();\n _dc2['default'].renderAll();\n },\n\n syncRangeWithQuery: function syncRangeWithQuery() {\n var rangeSelectBox = this.refs.rangeSelector;\n if (Number(rangeSelectBox.value) === 0) {\n _storesSearchSearchStore2['default'].changeTimeRange('relative', { relative: 0 });\n } else {\n var $selectedOptions = (0, _jquery2['default'])(':selected', rangeSelectBox);\n var text = $selectedOptions && $selectedOptions[0] && $selectedOptions[0].text;\n _storesSearchSearchStore2['default'].changeTimeRange('keyword', { keyword: text });\n }\n },\n\n _toggleResetButtons: function _toggleResetButtons() {\n // We only need to toggle the datatable reset button, dc will take care of the other reset buttons\n if (this.refs.sourcePieChart.getFilters().length !== 0) {\n (0, _jquery2['default'])('#dc-sources-result-reset').show();\n } else {\n (0, _jquery2['default'])('#dc-sources-result-reset').hide();\n }\n },\n\n changeRange: function changeRange(range, keepChangeInHistory) {\n var _this8 = this;\n\n var effectiveRange = range;\n\n if (effectiveRange !== undefined) {\n effectiveRange = Number(effectiveRange);\n }\n\n if (typeof effectiveRange === 'undefined' || SUPPORTED_RANGES_IN_SECS.indexOf(effectiveRange) === -1) {\n effectiveRange = DEFAULT_RANGE_IN_SECS;\n }\n\n if (this.state.range === effectiveRange) {\n return;\n }\n\n // when range is changed the filter in line chart (corresponding to the brush) does not make any sense any more\n this.valueDimension.filterAll();\n this.refs.sourceLineChart.clearFilters();\n this.syncRangeWithQuery();\n if (keepChangeInHistory) {\n window.location.hash = '#' + effectiveRange;\n } else {\n window.location.replace('#' + effectiveRange);\n }\n this.setState({ range: effectiveRange, histogramDataAvailable: true, loading: true }, function () {\n return _this8.loadData();\n });\n },\n\n _onRangeChanged: function _onRangeChanged(event) {\n var value = event.target.value;\n this.changeRange(value, true);\n },\n\n _filterSources: function _filterSources() {\n var _this9 = this;\n\n this.filterDimension.filter(function (name) {\n return name.indexOf(_this9.state.filter) !== -1;\n });\n },\n\n render: function render() {\n var emptySources = _react2['default'].createElement(\n 'div',\n { className: 'row content' },\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-12' },\n _react2['default'].createElement(\n 'div',\n { className: 'alert alert-info' },\n 'No message sources found for this time range. Did you try using a different one?'\n )\n )\n );\n\n var resultsStyle = this.state.renderResultTable ? null : { display: 'none' };\n var results = _react2['default'].createElement(\n 'div',\n { style: resultsStyle },\n _react2['default'].createElement(\n 'div',\n { className: 'row content' },\n _react2['default'].createElement(_SourceLineChart2['default'], { ref: 'sourceLineChart',\n reloadingHistogram: this.state.reloadingHistogram,\n histogramDataAvailable: this.state.histogramDataAvailable,\n resolution: this.state.resolution,\n resetFilters: this.resetHistogramFilters })\n ),\n this.state.loading ? _react2['default'].createElement(\n 'div',\n { className: 'row content' },\n _react2['default'].createElement(\n 'div',\n { style: { marginLeft: 10 } },\n _react2['default'].createElement(_componentsCommon.Spinner, null)\n )\n ) : null,\n _react2['default'].createElement(\n 'div',\n { className: 'row content', style: { display: this.state.loading ? 'none' : 'block' } },\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-7' },\n _react2['default'].createElement(_SourceDataTable2['default'], { ref: 'sourceDataTable', resetFilters: this.resetSourcesFilters,\n setSearchFilter: this.setSearchFilter, numberOfTopValues: this.NUMBER_OF_TOP_VALUES })\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-3 col-md-offset-1' },\n _react2['default'].createElement(_SourcePieChart2['default'], { ref: 'sourcePieChart', resetFilters: this.resetSourcesFilters,\n numberOfTopValues: this.NUMBER_OF_TOP_VALUES })\n )\n )\n );\n\n return _react2['default'].createElement(\n 'div',\n null,\n _react2['default'].createElement(\n 'div',\n { className: 'row content' },\n _react2['default'].createElement(\n 'div',\n { className: 'col-md-12' },\n _react2['default'].createElement(\n 'div',\n null,\n _react2['default'].createElement(\n 'div',\n { className: 'pull-right' },\n _react2['default'].createElement(\n 'select',\n { ref: 'rangeSelector', className: 'sources-range form-control input-sm', value: this.state.range,\n onChange: this._onRangeChanged },\n _react2['default'].createElement(\n 'option',\n { value: hoursToSeconds(1) },\n 'Last Hour'\n ),\n _react2['default'].createElement(\n 'option',\n { value: daysToSeconds(1) },\n 'Last Day'\n ),\n _react2['default'].createElement(\n 'option',\n { value: daysToSeconds(7) },\n 'Last Week'\n ),\n _react2['default'].createElement(\n 'option',\n { value: daysToSeconds(31) },\n 'Last Month'\n ),\n _react2['default'].createElement(\n 'option',\n { value: daysToSeconds(365) },\n 'Last Year'\n ),\n _react2['default'].createElement(\n 'option',\n { value: '0' },\n 'All'\n )\n )\n ),\n _react2['default'].createElement(\n 'h1',\n null,\n 'Sources'\n )\n ),\n _react2['default'].createElement(\n 'p',\n { className: 'description' },\n 'This is a list of all sources that sent in messages to Graylog. Note that the list is cached for a few seconds so you might have to wait a bit until a new source appears.'\n ),\n _react2['default'].createElement(\n _componentsSupportSupportLink2['default'],\n null,\n ' Use your mouse to interact with the table and graphs on this page, and get a better ' + 'overview of the sources sending data into Graylog.'\n )\n )\n ),\n this.state.renderResultTable ? null : emptySources,\n results\n );\n }\n});\n\nexports['default'] = SourceOverview;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourceOverview.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/sources/SourceOverview.jsx\n ** module id = 937\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/components/sources/SourceOverview.jsx?");
},938:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _jquery = __webpack_require__(10);\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _dc = __webpack_require__(90);\n\nvar _dc2 = _interopRequireDefault(_dc);\n\nvar _numeral = __webpack_require__(15);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _SourceTitle = __webpack_require__(314);\n\nvar _SourceTitle2 = _interopRequireDefault(_SourceTitle);\n\nvar _utilD3Utils = __webpack_require__(117);\n\nvar _utilD3Utils2 = _interopRequireDefault(_utilD3Utils);\n\nvar SourcePieChart = _react2['default'].createClass({\n displayName: 'SourcePieChart',\n\n propTypes: {\n resetFilters: _react.PropTypes.func.isRequired,\n numberOfTopValues: _react.PropTypes.number.isRequired\n },\n\n getFilters: function getFilters() {\n return this._pieChart ? this._pieChart.filters() : [];\n },\n\n setFilter: function setFilter(filter) {\n this._pieChart.filter(filter);\n },\n\n clearFilters: function clearFilters() {\n this._pieChart.filterAll();\n },\n\n redraw: function redraw() {\n this._pieChart.redraw();\n },\n\n _configureWidth: function _configureWidth(pieChartWidth) {\n this._pieChart.width(pieChartWidth).height(pieChartWidth).radius(pieChartWidth / 2 - 10).innerRadius(pieChartWidth / 5);\n },\n\n updateWidth: function updateWidth() {\n var $pieChartDomNode = (0, _jquery2['default'])('#dc-sources-pie-chart').parent();\n var pieChartWidth = $pieChartDomNode.width();\n this._configureWidth(pieChartWidth);\n },\n\n renderPieChart: function renderPieChart(dimension, group, onDataFiltered) {\n var pieChartDomNode = (0, _jquery2['default'])('#dc-sources-pie-chart')[0];\n var pieChartWidth = (0, _jquery2['default'])(pieChartDomNode).width();\n this._pieChart = _dc2['default'].pieChart(pieChartDomNode);\n this._pieChart.renderLabel(false).dimension(dimension).group(group).colors(_utilD3Utils2['default'].glColourPalette()).slicesCap(this.props.numberOfTopValues).title(function (d) {\n return d.key + ': ' + (0, _numeral2['default'])(d.value).format('0,0');\n }).on('renderlet', function (chart) {\n chart.selectAll('.pie-slice').on('click', function () {\n onDataFiltered();\n });\n });\n this._configureWidth(pieChartWidth);\n },\n\n render: function render() {\n return _react2['default'].createElement(\n 'div',\n { id: 'dc-sources-pie-chart', ref: 'sourcePieChart' },\n _react2['default'].createElement(\n _SourceTitle2['default'],\n { className: 'reset', resetFilters: this.props.resetFilters },\n 'Messages per source'\n )\n );\n }\n});\n\nexports['default'] = SourcePieChart;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourcePieChart.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/sources/SourcePieChart.jsx\n ** module id = 938\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/components/sources/SourcePieChart.jsx?")},1030:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _componentsSourcesSourceOverview = __webpack_require__(937);\n\nvar _componentsSourcesSourceOverview2 = _interopRequireDefault(_componentsSourcesSourceOverview);\n\nvar SourcesPage = _react2['default'].createClass({\n displayName: 'SourcesPage',\n\n render: function render() {\n return _react2['default'].createElement(_componentsSourcesSourceOverview2['default'], null);\n }\n});\n\nexports['default'] = SourcesPage;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"SourcesPage.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader!./~/babel-loader!./src/pages/SourcesPage.jsx\n ** module id = 1030\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/pages/SourcesPage.jsx?./~/react-hot-loader!./~/babel-loader")},1049:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _reflux = __webpack_require__(3);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _utilURLUtils = __webpack_require__(7);\n\nvar _utilURLUtils2 = _interopRequireDefault(_utilURLUtils);\n\nvar _logicRestFetchProvider = __webpack_require__(8);\n\nvar _logicRestFetchProvider2 = _interopRequireDefault(_logicRestFetchProvider);\n\nvar _utilUserNotification = __webpack_require__(5);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _urijs = __webpack_require__(344);\n\nvar _urijs2 = _interopRequireDefault(_urijs);\n\nvar _logicGraphsHistogramFormatter = __webpack_require__(112);\n\nvar _logicGraphsHistogramFormatter2 = _interopRequireDefault(_logicGraphsHistogramFormatter);\n\nvar _actionsSourcesHistogramDataActions = __webpack_require__(423);\n\nvar _actionsSourcesHistogramDataActions2 = _interopRequireDefault(_actionsSourcesHistogramDataActions);\n\nvar HistogramDataStore = _reflux2['default'].createStore({\n listenables: [_actionsSourcesHistogramDataActions2['default']],\n sourceUrl: '/search/universal/relative/histogram',\n histogram: undefined,\n\n getInitialState: function getInitialState() {\n return { histogram: this.histogram };\n },\n\n load: function load(range, sourceNames, maxDataPoints) {\n var url = (0, _urijs2['default'])(_utilURLUtils2['default'].qualifyUrl(this.sourceUrl));\n var urlQuery = {};\n\n if (typeof sourceNames !== 'undefined' && sourceNames instanceof Array) {\n urlQuery.query = sourceNames.map(function (source) {\n return 'source:' + source;\n }).join(' OR ');\n } else {\n urlQuery.query = '*';\n }\n\n var interval = 'minute';\n var rangeAsNumber = Number(range);\n if (rangeAsNumber >= 365 * 24 * 60 * 60 || rangeAsNumber === 0) {\n // for years and all interval will be day\n interval = 'day';\n } else if (rangeAsNumber >= 31 * 24 * 60 * 60) {\n // for months interval will be hour\n interval = 'hour';\n }\n\n urlQuery.range = range;\n urlQuery.interval = interval;\n\n url.query(urlQuery);\n\n var promise = (0, _logicRestFetchProvider2['default'])('GET', url.toString()).then(function (response) {\n response.histogram = _logicGraphsHistogramFormatter2['default'].format(response.results, response.queried_timerange, interval, maxDataPoints, rangeAsNumber === 0, null);\n return response;\n }, function (error) {\n _utilUserNotification2['default'].warning('Loading of histogram data failed with status: ' + error, 'Could not load histogram data');\n });\n\n _actionsSourcesHistogramDataActions2['default'].load.promise(promise);\n }\n});\n\nexports['default'] = HistogramDataStore;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"HistogramDataStore.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/stores/sources/HistogramDataStore.js\n ** module id = 1049\n ** module chunks = 24\n **/\n//# sourceURL=webpack:///./src/stores/sources/HistogramDataStore.js?")}});