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.43.43.398f142459d9edb998e6.js Maven / Gradle / Ivy
webpackJsonp([43],{1050: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 _reflux = __webpack_require__(4);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _immutable = __webpack_require__(21);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _moment = __webpack_require__(24);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _injectionCombinedProvider = __webpack_require__(268);\n\nvar _injectionCombinedProvider2 = _interopRequireDefault(_injectionCombinedProvider);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar _componentsSearch = __webpack_require__(64);\n\nvar _CombinedProvider$get = _injectionCombinedProvider2['default'].get('Nodes');\n\nvar NodesStore = _CombinedProvider$get.NodesStore;\nvar NodesActions = _CombinedProvider$get.NodesActions;\n\nvar _CombinedProvider$get2 = _injectionCombinedProvider2['default'].get('CurrentUser');\n\nvar CurrentUserStore = _CombinedProvider$get2.CurrentUserStore;\n\nvar _CombinedProvider$get3 = _injectionCombinedProvider2['default'].get('Inputs');\n\nvar InputsStore = _CombinedProvider$get3.InputsStore;\nvar InputsActions = _CombinedProvider$get3.InputsActions;\n\nvar _CombinedProvider$get4 = _injectionCombinedProvider2['default'].get('MessageFields');\n\nvar MessageFieldsStore = _CombinedProvider$get4.MessageFieldsStore;\n\nvar _CombinedProvider$get5 = _injectionCombinedProvider2['default'].get('Refresh');\n\nvar RefreshStore = _CombinedProvider$get5.RefreshStore;\n\nvar _CombinedProvider$get6 = _injectionCombinedProvider2['default'].get('Streams');\n\nvar StreamsStore = _CombinedProvider$get6.StreamsStore;\n\nvar _CombinedProvider$get7 = _injectionCombinedProvider2['default'].get('UniversalSearch');\n\nvar UniversalSearchStore = _CombinedProvider$get7.UniversalSearchStore;\n\nvar _CombinedProvider$get8 = _injectionCombinedProvider2['default'].get('Search');\n\nvar SearchStore = _CombinedProvider$get8.SearchStore;\n\nvar _CombinedProvider$get9 = _injectionCombinedProvider2['default'].get('Decorators');\n\nvar DecoratorsActions = _CombinedProvider$get9.DecoratorsActions;\n\nvar SearchPage = _react2['default'].createClass({\n displayName: 'SearchPage',\n\n propTypes: {\n location: _react.PropTypes.object.isRequired,\n searchConfig: _react.PropTypes.object.isRequired,\n searchInStream: _react.PropTypes.object\n },\n mixins: [_reflux2['default'].connect(NodesStore), _reflux2['default'].connect(MessageFieldsStore), _reflux2['default'].connect(CurrentUserStore), _reflux2['default'].listenTo(InputsStore, '_formatInputs'), _reflux2['default'].listenTo(RefreshStore, '_setupTimer', '_setupTimer')],\n getInitialState: function getInitialState() {\n return {\n selectedFields: ['message', 'source'],\n error: undefined\n };\n },\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n [DecoratorsActions.create.completed, DecoratorsActions.remove.completed, DecoratorsActions.update.completed].forEach(function (action) {\n return action.listen(_this._refreshData);\n });\n this._refreshData();\n InputsActions.list.triggerPromise();\n\n StreamsStore.listStreams().then(function (streams) {\n var streamsMap = {};\n streams.forEach(function (stream) {\n streamsMap[stream.id] = stream;\n });\n _this.setState({ streams: _immutable2['default'].Map(streamsMap) });\n });\n\n NodesActions.list();\n },\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n var currentLocation = this.props.location || {};\n var nextLocation = nextProps.location || {};\n\n if (currentLocation !== nextLocation || currentLocation.search !== nextLocation.search) {\n this._refreshData();\n }\n },\n componentWillUnmount: function componentWillUnmount() {\n this._stopTimer();\n },\n _setupTimer: function _setupTimer(refresh) {\n this._stopTimer();\n if (refresh.enabled) {\n this.timer = setInterval(this._refreshData, refresh.interval);\n }\n },\n _stopTimer: function _stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n },\n _getEffectiveQuery: function _getEffectiveQuery() {\n return SearchStore.query.length > 0 ? SearchStore.query : '*';\n },\n _refreshData: function _refreshData() {\n var _this2 = this;\n\n var query = this._getEffectiveQuery();\n var streamId = this.props.searchInStream ? this.props.searchInStream.id : undefined;\n UniversalSearchStore.search(SearchStore.rangeType, query, SearchStore.rangeParams.toJS(), streamId, null, SearchStore.page, SearchStore.sortField, SearchStore.sortOrder).then(function (response) {\n _this2.setState({ searchResult: response, error: undefined });\n\n var interval = _this2.props.location.query.interval ? _this2.props.location.query.interval : _this2._determineHistogramResolution(response);\n\n UniversalSearchStore.histogram(SearchStore.rangeType, query, SearchStore.rangeParams.toJS(), interval, streamId).then(function (histogram) {\n _this2.setState({ histogram: histogram });\n });\n }, function (error) {\n // Treat searches with a malformed query\n if (error.additional && error.additional.status === 400) {\n _this2.setState({ error: error.additional.body });\n }\n });\n },\n _formatInputs: function _formatInputs(state) {\n var inputs = InputsStore.inputsAsMap(state.inputs);\n this.setState({ inputs: _immutable2['default'].Map(inputs) });\n },\n _determineSearchDuration: function _determineSearchDuration(response) {\n var searchTo = response.to;\n var searchFrom = undefined;\n if (SearchStore.rangeType === 'relative' && SearchStore.rangeParams.get('relative') === 0) {\n var sortedIndices = response.used_indices.sort(function (i1, i2) {\n return (0, _moment2['default'])(i1.end) - (0, _moment2['default'])(i2.end);\n });\n // If we didn't calculate index ranges for the oldest index, pick the next one.\n // This usually happens to the deflector, when index ranges weren't calculated for it yet.\n var oldestIndex = (0, _moment2['default'])(sortedIndices[0].end).valueOf() === 0 ? sortedIndices[1] : sortedIndices[0];\n\n if (oldestIndex !== undefined) {\n searchFrom = oldestIndex.begin;\n } else {\n // We don't know when we received the first message, assume the search duration is 0.\n searchFrom = searchTo;\n }\n } else {\n searchFrom = response.from;\n }\n\n var queryRangeInMinutes = (0, _moment2['default'])(searchTo).diff(searchFrom, 'minutes');\n\n return _moment2['default'].duration(queryRangeInMinutes, 'minutes');\n },\n _determineHistogramResolution: function _determineHistogramResolution(response) {\n var duration = this._determineSearchDuration(response);\n\n if (duration.asHours() < 12) {\n return 'minute';\n }\n\n if (duration.asDays() < 3) {\n return 'hour';\n }\n\n if (duration.asDays() < 30) {\n return 'day';\n }\n\n if (duration.asMonths() < 2) {\n return 'week';\n }\n\n if (duration.asMonths() < 18) {\n return 'month';\n }\n\n if (duration.asYears() < 3) {\n return 'quarter';\n }\n\n return 'year';\n },\n sortFields: function sortFields(fieldSet) {\n var newFieldSet = fieldSet;\n var sortedFields = _immutable2['default'].OrderedSet();\n\n if (newFieldSet.contains('source')) {\n sortedFields = sortedFields.add('source');\n }\n newFieldSet = newFieldSet['delete']('source');\n var remainingFieldsSorted = newFieldSet.sort(function (field1, field2) {\n return field1.toLowerCase().localeCompare(field2.toLowerCase());\n });\n return sortedFields.concat(remainingFieldsSorted);\n },\n\n _onToggled: function _onToggled(fieldName) {\n if (this.state.selectedFields.indexOf(fieldName) > 0) {\n this.setState({ selectedFields: this.state.selectedFields.filter(function (field) {\n return field !== fieldName;\n }) });\n } else {\n this.setState({ selectedFields: this.state.selectedFields.concat(fieldName) });\n }\n },\n\n _isLoading: function _isLoading() {\n return !this.state.searchResult || !this.state.inputs || !this.state.streams || !this.state.nodes || !this.state.fields || !this.state.histogram;\n },\n\n render: function render() {\n if (this.state.error) {\n return _react2['default'].createElement(_componentsSearch.MalformedSearchQuery, { error: this.state.error });\n }\n\n if (this._isLoading()) {\n return _react2['default'].createElement(_componentsCommon.Spinner, null);\n }\n\n var searchResult = this.state.searchResult;\n searchResult.all_fields = this.state.fields;\n return _react2['default'].createElement(_componentsSearch.SearchResult, { query: SearchStore.query, page: SearchStore.page, builtQuery: searchResult.built_query,\n result: searchResult, histogram: this.state.histogram,\n formattedHistogram: this.state.histogram.histogram,\n streams: this.state.streams, inputs: this.state.inputs, nodes: _immutable2['default'].Map(this.state.nodes),\n searchInStream: this.props.searchInStream, permissions: this.state.currentUser.permissions,\n searchConfig: this.props.searchConfig });\n }\n});\n\nexports['default'] = SearchPage;\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 \" + \"SearchPage.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/SearchPage.jsx\n ** module id = 1050\n ** module chunks = 43\n **/\n//# sourceURL=webpack:///./src/pages/SearchPage.jsx?./~/react-hot-loader!./~/babel-loader")}});