All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.7.7.b7768dc589126fb9e2d2.js.map Maven / Gradle / Ivy

There is a newer version: 5.2.7
Show newest version
{"version":3,"sources":["webpack:///7.7.b7768dc589126fb9e2d2.js","webpack:///./src/components/indexers/index.jsx","webpack:///./src/components/indices/index.jsx","webpack:///./src/components/indexers/IndexerClusterHealth.jsx","webpack:///./src/components/indexers/IndexerClusterHealthSummary.jsx","webpack:///./src/components/indexers/IndexerFailure.jsx","webpack:///./src/components/indexers/IndexerFailuresComponent.jsx","webpack:///./src/components/indexers/IndexerFailuresList.jsx","webpack:///./src/components/configurations/ConfigurationStyles.css","webpack:///./src/components/configurations/ConfigurationStyles.css?ac8b","webpack:///./src/components/indices/ClosedIndexDetails.jsx","webpack:///./src/components/indices/IndexDetails.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesConfiguration.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesSummary.jsx","webpack:///./src/components/indices/IndexRangeSummary.jsx","webpack:///./src/components/indices/IndexSizeSummary.jsx","webpack:///./src/components/indices/IndexSummary.jsx","webpack:///./src/components/indices/IndicesConfiguration.jsx","webpack:///./src/components/indices/IndicesMaintenanceDropdown.jsx","webpack:///./src/components/indices/IndicesOverview.jsx","webpack:///./src/components/indices/ShardMeter.jsx","webpack:///./src/components/indices/ShardRouting.jsx","webpack:///./src/components/indices/ShardRoutingOverview.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/DeletionRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/DeletionRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/index.js","webpack:///./src/components/indices/rotation/MessageCountRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/MessageCountRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/SizeBasedRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/SizeBasedRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/TimeBasedRotationStrategyConfiguration.jsx","webpack:///./src/components/indices/rotation/TimeBasedRotationStrategySummary.jsx","webpack:///./src/components/indices/rotation/index.js","webpack:///./src/pages/IndicesPage.jsx"],"names":["webpackJsonp","52","module","exports","__webpack_require__","_interopRequire","obj","__esModule","Object","defineProperty","value","_IndexerClusterHealth","IndexerClusterHealth","_IndexerClusterHealthSummary","IndexerClusterHealthSummary","_IndexerFailure","IndexerFailure","_IndexerFailuresComponent","IndexerFailuresComponent","_IndexerFailuresList","IndexerFailuresList","117","_interopRequireDefault","default","_ClosedIndexDetails2","_ClosedIndexDetails3","ClosedIndexDetails","_IndexDetails2","_IndexDetails3","IndexDetails","_IndexRangeSummary2","_IndexRangeSummary3","IndexRangeSummary","_IndexSummary2","_IndexSummary3","IndexSummary","_IndexSizeSummary2","_IndexSizeSummary3","IndexSizeSummary","_IndicesMaintenanceDropdown2","_IndicesMaintenanceDropdown3","IndicesMaintenanceDropdown","_IndicesOverview2","_IndicesOverview3","IndicesOverview","_ShardMeter2","_ShardMeter3","ShardMeter","_ShardRouting2","_ShardRouting3","ShardRouting","_ShardRoutingOverview2","_ShardRoutingOverview3","ShardRoutingOverview","139","_react","_react2","_reflux","_reflux2","_reactBootstrap","_injectionStoreProvider","_injectionStoreProvider2","_componentsCommon","_componentsSupport","_utilDocsHelper","_utilDocsHelper2","_componentsIndexers","IndexerClusterStore","getStore","createClass","displayName","mixins","connect","componentDidMount","update","render","health","this","state","content","undefined","createElement","Spinner","Row","className","Col","md","SmallSupportLink","DocumentationLink","page","PAGES","CONFIGURING_ES","text","140","propTypes","PropTypes","object","isRequired","_alertClassForHealth","status","_formatTextForHealth","_iconNameForHealth","props","Alert","bsStyle","shards","active","initializing","relocating","unassigned","CLUSTER_STATUS_EXPLAINED","141","failure","title","timestamp","Timestamp","dateTime","relative","index","letter_id","message","142","_reactRouterBootstrap","_numeral","_numeral2","_moment","_moment2","_routingRoutes","_routingRoutes2","IndexerFailuresStore","getInitialState","_this","since","subtract","count","then","response","setState","total","_formatFailuresSummary","_iconForFailureCount","_formatTextForFailureCount","LinkContainer","to","SYSTEM","INDICES","FAILURES","Button","bsSize","format","INDEXER_FAILURES","143","failures","arrayOf","length","Table","striped","hover","condensed","style","width","map","key","348","push","id","561","dispose","refs","use","ref","locals","unuse","unref","760","_injectionActionsProvider","_injectionActionsProvider2","_componentsIndices","IndicesActions","getActions","indexName","string","indexRange","_onReopen","reopen","_onDeleteIndex","window","confirm","marginBottom","marginTop","onClick","761","IndexRangesActions","isDeflector","bool","subscribe","componentWillUnmount","unsubscribe","_formatActionButtons","disabled","_onRecalculateIndex","_onCloseIndex","recalculateIndex","close","all_shards","_props","segments","open_search_contexts","documents","deleted","shardMeter","primary_shards","routing","762","IndexMaintenanceStrategiesConfiguration","description","selectPlaceholder","pluginExports","array","strategies","activeConfig","updateState","func","activeStrategy","strategy","config","newStrategy","newConfig","_getDefaultStrategyConfig","selectedStrategy","result","filter","type","default_config","_getStrategyJsonSchema","json_schema","_getStrategyConfig","_onSelect","_onConfigUpdate","_availableSelectOptions","label","_getConfigurationComponent","exportedStrategy","strategyConfig","element","configComponent","jsonSchema","updateConfig","_activeSelection","Select","placeholder","options","matchProp","onValueChange","763","_componentsCommonSpinner","_componentsCommonSpinner2","IndexMaintenanceStrategiesSummary","summaryComponent","764","calculated_at","took_ms","765","_utilNumberUtils","_utilNumberUtils2","size","formatBytes","bytes","events","766","_logicDatetimesDateTime","_logicDatetimesDateTime2","children","node","name","showDetails","_formatLabels","labels","is_deflector","Label","is_closed","is_reopened","_formatIndexRange","toISOString","sizes","begin","end","_formatShowDetailsLink","_toggleShowDetails","event","preventDefault","href","767","_componentsBootstrapBootstrapModalForm","_componentsBootstrapBootstrapModalForm2","_graylogWebPluginPlugin","_componentsIndicesIndexMaintenanceStrategiesConfiguration","_componentsIndicesIndexMaintenanceStrategiesConfiguration2","_componentsIndicesIndexMaintenanceStrategiesSummary","_componentsIndicesIndexMaintenanceStrategiesSummary2","IndicesConfigurationActions","IndicesConfigurationStore","IndicesConfiguration","loadRotationConfig","loadRotationStrategies","loadRetentionConfig","loadRetentionStrategies","_saveConfiguration","promises","newRotationConfig","promise","updateRotationConfiguration","newRetentionConfig","updateRetentionConfiguration","Promise","all","indicesConfigurationModal","_openModal","open","_updateRotationConfigState","_updateRetentionConfigState","_this2","rotationSummary","activeRotationConfig","PluginStore","retentionSummary","activeRetentionConfig","rotationConfig","rotationStrategies","retentionConfig","retentionStrategies","onSubmitForm","submitButtonText","768","DeflectorActions","_onRecalculateIndexRange","recalculate","_onCycleDeflector","cycle","ButtonGroup","DropdownButton","pullRight","MenuItem","eventKey","769","_javascriptNaturalSort","_javascriptNaturalSort2","closedIndices","deflector","indexDetails","indices","_formatIndex","indexSummary","range","_formatClosedIndex","keys","sort","index1","index2","770","_formatMeter","meter","time_seconds","duration","humanize","sm","display","flush","merge","search_query","search_fetch","get","refresh","771","_classnames","_classnames2","route","tooltip","Tooltip","node_hostname","node_name","shard-primary","primary","OverlayTrigger","placement","overlay","772","shard1","shard2","node_id","clear","773","ClosingRetentionStrategyConfiguration","max_number_of_indices","_onInputUpdate","field","e","target","Input","onChange","help","autoFocus","required","774","ClosingRetentionStrategySummary","775","DeletionRetentionStrategyConfiguration","776","DeletionRetentionStrategySummary","777","NoopRetentionStrategyConfiguration","778","NoopRetentionStrategySummary","779","_DeletionRetentionStrategyConfiguration","_DeletionRetentionStrategyConfiguration2","_DeletionRetentionStrategySummary","_DeletionRetentionStrategySummary2","_ClosingRetentionStrategyConfiguration","_ClosingRetentionStrategyConfiguration2","_ClosingRetentionStrategySummary","_ClosingRetentionStrategySummary2","_NoopRetentionStrategyConfiguration","_NoopRetentionStrategyConfiguration2","_NoopRetentionStrategySummary","_NoopRetentionStrategySummary2","register","PluginManifest","indexRetentionConfig","780","MessageCountRotationStrategyConfiguration","max_docs_per_index","781","MessageCountRotationStrategySummary","782","SizeBasedRotationStrategyConfiguration","max_size","_formatSize","addonAfter","783","SizeBasedRotationStrategySummary","784","TimeBasedRotationStrategyConfiguration","rotation_period","_onPeriodUpdate","period","getValue","toUpperCase","startsWith","_isValidPeriod","check","asMilliseconds","_validationState","_formatDuration","autofocus","785","TimeBasedRotationStrategySummary","_humanizedPeriod","786","_MessageCountRotationStrategyConfiguration","_MessageCountRotationStrategyConfiguration2","_MessageCountRotationStrategySummary","_MessageCountRotationStrategySummary2","_SizeBasedRotationStrategyConfiguration","_SizeBasedRotationStrategyConfiguration2","_SizeBasedRotationStrategySummary","_SizeBasedRotationStrategySummary2","_TimeBasedRotationStrategyConfiguration","_TimeBasedRotationStrategyConfiguration2","_TimeBasedRotationStrategySummary","_TimeBasedRotationStrategySummary2","indexRotationConfig","917","_componentsIndicesIndicesConfiguration","_componentsIndicesIndicesConfiguration2","IndexerOverviewActions","IndexerOverviewStore","IndicesStore","IndicesPage","list","timerId","setInterval","multiple","REFRESH_INTERVAL","clearInterval","_totalIndexCount","indexerOverview","_renderElasticsearchUnavailableInformation","mdOffset","Panel","header","pageHeader","PageHeader","INDEX_MODEL","indexerOverviewError","deflectorInfo","counts","current_target","indexer_cluster"],"mappings":"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","file":"7.7.b7768dc589126fb9e2d2.js","sourcesContent":["webpackJsonp([7],{\n\n/***/ 52:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\t\n\tvar _IndexerClusterHealth = __webpack_require__(139);\n\t\n\texports.IndexerClusterHealth = _interopRequire(_IndexerClusterHealth);\n\t\n\tvar _IndexerClusterHealthSummary = __webpack_require__(140);\n\t\n\texports.IndexerClusterHealthSummary = _interopRequire(_IndexerClusterHealthSummary);\n\t\n\tvar _IndexerFailure = __webpack_require__(141);\n\t\n\texports.IndexerFailure = _interopRequire(_IndexerFailure);\n\t\n\tvar _IndexerFailuresComponent = __webpack_require__(142);\n\t\n\texports.IndexerFailuresComponent = _interopRequire(_IndexerFailuresComponent);\n\t\n\tvar _IndexerFailuresList = __webpack_require__(143);\n\t\n\texports.IndexerFailuresList = _interopRequire(_IndexerFailuresList);\n\n/***/ },\n\n/***/ 117:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _ClosedIndexDetails2 = __webpack_require__(760);\n\t\n\tvar _ClosedIndexDetails3 = _interopRequireDefault(_ClosedIndexDetails2);\n\t\n\texports.ClosedIndexDetails = _ClosedIndexDetails3['default'];\n\t\n\tvar _IndexDetails2 = __webpack_require__(761);\n\t\n\tvar _IndexDetails3 = _interopRequireDefault(_IndexDetails2);\n\t\n\texports.IndexDetails = _IndexDetails3['default'];\n\t\n\tvar _IndexRangeSummary2 = __webpack_require__(764);\n\t\n\tvar _IndexRangeSummary3 = _interopRequireDefault(_IndexRangeSummary2);\n\t\n\texports.IndexRangeSummary = _IndexRangeSummary3['default'];\n\t\n\tvar _IndexSummary2 = __webpack_require__(766);\n\t\n\tvar _IndexSummary3 = _interopRequireDefault(_IndexSummary2);\n\t\n\texports.IndexSummary = _IndexSummary3['default'];\n\t\n\tvar _IndexSizeSummary2 = __webpack_require__(765);\n\t\n\tvar _IndexSizeSummary3 = _interopRequireDefault(_IndexSizeSummary2);\n\t\n\texports.IndexSizeSummary = _IndexSizeSummary3['default'];\n\t\n\tvar _IndicesMaintenanceDropdown2 = __webpack_require__(768);\n\t\n\tvar _IndicesMaintenanceDropdown3 = _interopRequireDefault(_IndicesMaintenanceDropdown2);\n\t\n\texports.IndicesMaintenanceDropdown = _IndicesMaintenanceDropdown3['default'];\n\t\n\tvar _IndicesOverview2 = __webpack_require__(769);\n\t\n\tvar _IndicesOverview3 = _interopRequireDefault(_IndicesOverview2);\n\t\n\texports.IndicesOverview = _IndicesOverview3['default'];\n\t\n\tvar _ShardMeter2 = __webpack_require__(770);\n\t\n\tvar _ShardMeter3 = _interopRequireDefault(_ShardMeter2);\n\t\n\texports.ShardMeter = _ShardMeter3['default'];\n\t\n\tvar _ShardRouting2 = __webpack_require__(771);\n\t\n\tvar _ShardRouting3 = _interopRequireDefault(_ShardRouting2);\n\t\n\texports.ShardRouting = _ShardRouting3['default'];\n\t\n\tvar _ShardRoutingOverview2 = __webpack_require__(772);\n\t\n\tvar _ShardRoutingOverview3 = _interopRequireDefault(_ShardRoutingOverview2);\n\t\n\texports.ShardRoutingOverview = _ShardRoutingOverview3['default'];\n\n/***/ },\n\n/***/ 139:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reflux = __webpack_require__(4);\n\t\n\tvar _reflux2 = _interopRequireDefault(_reflux);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar _componentsSupport = __webpack_require__(36);\n\t\n\tvar _utilDocsHelper = __webpack_require__(17);\n\t\n\tvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\t\n\tvar _componentsIndexers = __webpack_require__(52);\n\t\n\tvar IndexerClusterStore = _injectionStoreProvider2['default'].getStore('IndexerCluster');\n\t\n\tvar IndexerClusterHealth = _react2['default'].createClass({\n\t  displayName: 'IndexerClusterHealth',\n\t\n\t  mixins: [_reflux2['default'].connect(IndexerClusterStore)],\n\t\n\t  componentDidMount: function componentDidMount() {\n\t    IndexerClusterStore.update();\n\t  },\n\t\n\t  render: function render() {\n\t    var health = this.state.health;\n\t\n\t    var content = undefined;\n\t    if (health) {\n\t      content = _react2['default'].createElement(_componentsIndexers.IndexerClusterHealthSummary, { health: health });\n\t    } else {\n\t      content = _react2['default'].createElement(_componentsCommon.Spinner, null);\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Row,\n\t      { className: 'content' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Col,\n\t        { md: 12 },\n\t        _react2['default'].createElement(\n\t          'h2',\n\t          null,\n\t          'Elasticsearch cluster'\n\t        ),\n\t        _react2['default'].createElement(\n\t          _componentsSupport.SmallSupportLink,\n\t          null,\n\t          'The possible Elasticsearch cluster states and more related information is available in the',\n\t          ' ',\n\t          _react2['default'].createElement(_componentsSupport.DocumentationLink, { page: _utilDocsHelper2['default'].PAGES.CONFIGURING_ES, text: 'Graylog documentation' }),\n\t          '.'\n\t        ),\n\t        content\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexerClusterHealth;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 140:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsSupport = __webpack_require__(36);\n\t\n\tvar _utilDocsHelper = __webpack_require__(17);\n\t\n\tvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\t\n\tvar IndexerClusterHealthSummary = _react2['default'].createClass({\n\t  displayName: 'IndexerClusterHealthSummary',\n\t\n\t  propTypes: {\n\t    health: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  _alertClassForHealth: function _alertClassForHealth(health) {\n\t    switch (health.status) {\n\t      case 'green':\n\t        return 'success';\n\t      case 'yellow':\n\t        return 'warning';\n\t      case 'red':\n\t        return 'danger';\n\t      default:\n\t        return 'success';\n\t    }\n\t  },\n\t  _formatTextForHealth: function _formatTextForHealth(health) {\n\t    var text = 'Elasticsearch cluster is ' + health.status + '.';\n\t    switch (health.status) {\n\t      case 'green':\n\t        return text;\n\t      case 'yellow':\n\t      case 'red':\n\t        return _react2['default'].createElement(\n\t          'strong',\n\t          null,\n\t          text\n\t        );\n\t      default:\n\t        return text;\n\t    }\n\t  },\n\t  _iconNameForHealth: function _iconNameForHealth(health) {\n\t    switch (health.status) {\n\t      case 'green':\n\t        return 'check-circle';\n\t      case 'yellow':\n\t        return 'warning';\n\t      case 'red':\n\t        return 'ambulance';\n\t      default:\n\t        return 'check-circle';\n\t    }\n\t  },\n\t  render: function render() {\n\t    var health = this.props.health;\n\t\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Alert,\n\t      { bsStyle: this._alertClassForHealth(health), className: 'es-cluster-status' },\n\t      _react2['default'].createElement('i', { className: 'fa fa-' + this._iconNameForHealth(health) }),\n\t      '  ',\n\t      this._formatTextForHealth(health),\n\t      ' ',\n\t      'Shards:',\n\t      ' ',\n\t      health.shards.active,\n\t      ' active,',\n\t      ' ',\n\t      health.shards.initializing,\n\t      ' initializing,',\n\t      ' ',\n\t      health.shards.relocating,\n\t      ' relocating,',\n\t      ' ',\n\t      health.shards.unassigned,\n\t      ' unassigned,',\n\t      ' ',\n\t      _react2['default'].createElement(_componentsSupport.DocumentationLink, { page: _utilDocsHelper2['default'].PAGES.CLUSTER_STATUS_EXPLAINED, text: 'What does this mean?' })\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexerClusterHealthSummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 141:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar IndexerFailure = _react2['default'].createClass({\n\t  displayName: 'IndexerFailure',\n\t\n\t  propTypes: {\n\t    failure: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  render: function render() {\n\t    var failure = this.props.failure;\n\t    return _react2['default'].createElement(\n\t      'tr',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'td',\n\t        { title: failure.timestamp },\n\t        _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: failure.timestamp, relative: true })\n\t      ),\n\t      _react2['default'].createElement(\n\t        'td',\n\t        null,\n\t        failure.index\n\t      ),\n\t      _react2['default'].createElement(\n\t        'td',\n\t        null,\n\t        failure.letter_id\n\t      ),\n\t      _react2['default'].createElement(\n\t        'td',\n\t        null,\n\t        failure.message\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexerFailure;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 142:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _reactRouterBootstrap = __webpack_require__(18);\n\t\n\tvar _numeral = __webpack_require__(21);\n\t\n\tvar _numeral2 = _interopRequireDefault(_numeral);\n\t\n\tvar _moment = __webpack_require__(23);\n\t\n\tvar _moment2 = _interopRequireDefault(_moment);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\tvar _utilDocsHelper = __webpack_require__(17);\n\t\n\tvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\t\n\tvar _routingRoutes = __webpack_require__(11);\n\t\n\tvar _routingRoutes2 = _interopRequireDefault(_routingRoutes);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar _componentsSupport = __webpack_require__(36);\n\t\n\tvar IndexerFailuresStore = _injectionStoreProvider2['default'].getStore('IndexerFailures');\n\t\n\tvar IndexerFailuresComponent = _react2['default'].createClass({\n\t  displayName: 'IndexerFailuresComponent',\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {};\n\t  },\n\t  componentDidMount: function componentDidMount() {\n\t    var _this = this;\n\t\n\t    var since = (0, _moment2['default'])().subtract(24, 'hours');\n\t\n\t    IndexerFailuresStore.count(since).then(function (response) {\n\t      _this.setState({ total: response.count });\n\t    });\n\t  },\n\t  _formatFailuresSummary: function _formatFailuresSummary() {\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Alert,\n\t      { bsStyle: this.state.total === 0 ? 'success' : 'danger' },\n\t      _react2['default'].createElement('i', { className: 'fa fa-' + this._iconForFailureCount(this.state.total) }),\n\t      ' ',\n\t      this._formatTextForFailureCount(this.state.total),\n\t      _react2['default'].createElement(\n\t        _reactRouterBootstrap.LinkContainer,\n\t        { to: _routingRoutes2['default'].SYSTEM.INDICES.FAILURES },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Button,\n\t          { bsStyle: 'info', bsSize: 'xs', className: 'pull-right' },\n\t          'Show errors'\n\t        )\n\t      )\n\t    );\n\t  },\n\t  _formatTextForFailureCount: function _formatTextForFailureCount(count) {\n\t    if (count === 0) {\n\t      return 'No failed indexing attempts in the last 24 hours.';\n\t    }\n\t    return _react2['default'].createElement(\n\t      'strong',\n\t      null,\n\t      'There were ',\n\t      (0, _numeral2['default'])(count).format('0,0'),\n\t      ' failed indexing attempts in the last 24 hours.'\n\t    );\n\t  },\n\t  _iconForFailureCount: function _iconForFailureCount(count) {\n\t    if (count === 0) {\n\t      return 'check-circle';\n\t    }\n\t    return 'ambulance';\n\t  },\n\t  render: function render() {\n\t    var content = undefined;\n\t    if (this.state.total === undefined) {\n\t      content = _react2['default'].createElement(_componentsCommon.Spinner, null);\n\t    } else {\n\t      content = this._formatFailuresSummary();\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Row,\n\t      { className: 'content' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Col,\n\t        { md: 12 },\n\t        _react2['default'].createElement(\n\t          'h2',\n\t          null,\n\t          'Indexer failures'\n\t        ),\n\t        _react2['default'].createElement(\n\t          _componentsSupport.SmallSupportLink,\n\t          null,\n\t          'Every message that was not successfully indexed will be logged as an indexer failure. You can learn more about this feature in the',\n\t          ' ',\n\t          _react2['default'].createElement(_componentsSupport.DocumentationLink, { page: _utilDocsHelper2['default'].PAGES.INDEXER_FAILURES, text: 'Graylog documentation' }),\n\t          '.'\n\t        ),\n\t        content\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexerFailuresComponent;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 143:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsIndexers = __webpack_require__(52);\n\t\n\tvar IndexerFailuresList = _react2['default'].createClass({\n\t  displayName: 'IndexerFailuresList',\n\t\n\t  propTypes: {\n\t    failures: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.object).isRequired\n\t  },\n\t  render: function render() {\n\t    if (this.props.failures.length === 0) {\n\t      return _react2['default'].createElement(\n\t        _reactBootstrap.Alert,\n\t        { bsStyle: 'success' },\n\t        _react2['default'].createElement('i', { className: 'fa fa-check-circle' }),\n\t        ' Hurray! There are not any indexer failures.'\n\t      );\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      { className: 'scrollable-table' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Table,\n\t        { className: 'indexer-failures', striped: true, hover: true, condensed: true },\n\t        _react2['default'].createElement(\n\t          'thead',\n\t          null,\n\t          _react2['default'].createElement(\n\t            'tr',\n\t            null,\n\t            _react2['default'].createElement(\n\t              'th',\n\t              { style: { width: 200 } },\n\t              'Timestamp'\n\t            ),\n\t            _react2['default'].createElement(\n\t              'th',\n\t              null,\n\t              'Index'\n\t            ),\n\t            _react2['default'].createElement(\n\t              'th',\n\t              null,\n\t              'Letter ID'\n\t            ),\n\t            _react2['default'].createElement(\n\t              'th',\n\t              null,\n\t              'Error message'\n\t            )\n\t          )\n\t        ),\n\t        _react2['default'].createElement(\n\t          'tbody',\n\t          null,\n\t          this.props.failures.map(function (failure) {\n\t            return _react2['default'].createElement(_componentsIndexers.IndexerFailure, { key: 'indexer-failure-' + failure.letter_id, failure: failure });\n\t          })\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexerFailuresList;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 348:\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(19)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".deflist{margin-top:10px}.deflist dt{float:left;clear:left}.deflist dd{margin-left:160px}.top-margin,hr.separator{margin-top:10px}hr.separator{margin-bottom:5px}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n\n/***/ 561:\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar refs = 0;\n\tvar dispose;\n\tvar content = __webpack_require__(348);\n\tif(typeof content === 'string') content = [[module.id, content, '']];\n\texports.use = exports.ref = function() {\n\t\tif(!(refs++)) {\n\t\t\texports.locals = content.locals;\n\t\t\tdispose = __webpack_require__(20)(content, {});\n\t\t}\n\t\treturn exports;\n\t};\n\texports.unuse = exports.unref = function() {\n\t\tif(!(--refs)) {\n\t\t\tdispose();\n\t\t\tdispose = null;\n\t\t}\n\t};\n\tif(false) {\n\t\tvar lastRefs = module.hot.data && module.hot.data.refs || 0;\n\t\tif(lastRefs) {\n\t\t\texports.ref();\n\t\t\tif(!content.locals) {\n\t\t\t\trefs = lastRefs;\n\t\t\t}\n\t\t}\n\t\tif(!content.locals) {\n\t\t\tmodule.hot.accept();\n\t\t}\n\t\tmodule.hot.dispose(function(data) {\n\t\t\tdata.refs = content.locals ? 0 : refs;\n\t\t\tif(dispose) {\n\t\t\t\tdispose();\n\t\t\t}\n\t\t});\n\t}\n\n/***/ },\n\n/***/ 760:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _injectionActionsProvider = __webpack_require__(6);\n\t\n\tvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar IndicesActions = _injectionActionsProvider2['default'].getActions('Indices');\n\t\n\tvar ClosedIndexDetails = _react2['default'].createClass({\n\t  displayName: 'ClosedIndexDetails',\n\t\n\t  propTypes: {\n\t    indexName: _react2['default'].PropTypes.string.isRequired,\n\t    indexRange: _react2['default'].PropTypes.object\n\t  },\n\t  _onReopen: function _onReopen() {\n\t    IndicesActions.reopen(this.props.indexName);\n\t  },\n\t  _onDeleteIndex: function _onDeleteIndex() {\n\t    if (window.confirm('Really delete index ' + this.props.indexName + '?')) {\n\t      IndicesActions['delete'](this.props.indexName);\n\t    }\n\t  },\n\t  render: function render() {\n\t    var indexRange = this.props.indexRange;\n\t\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      { className: 'index-info' },\n\t      _react2['default'].createElement(_componentsIndices.IndexRangeSummary, { indexRange: indexRange }),\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Alert,\n\t        { bsStyle: 'info' },\n\t        _react2['default'].createElement('i', { className: 'fa fa-info-circle' }),\n\t        ' This index is closed. Index information is not available',\n\t        ' ',\n\t        'at the moment, please reopen the index and try again.'\n\t      ),\n\t      _react2['default'].createElement('hr', { style: { marginBottom: '5', marginTop: '10' } }),\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Button,\n\t        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onReopen },\n\t        'Reopen index'\n\t      ),\n\t      ' ',\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Button,\n\t        { bsStyle: 'danger', bsSize: 'xs', onClick: this._onDeleteIndex },\n\t        'Delete index'\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = ClosedIndexDetails;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 761:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar _injectionActionsProvider = __webpack_require__(6);\n\t\n\tvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\t// To make IndexRangesActions work.\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar IndicesActions = _injectionActionsProvider2['default'].getActions('Indices');\n\tvar IndexRangesActions = _injectionActionsProvider2['default'].getActions('IndexRanges');\n\t\n\t_injectionStoreProvider2['default'].getStore('IndexRanges');\n\t\n\tvar IndexDetails = _react2['default'].createClass({\n\t  displayName: 'IndexDetails',\n\t\n\t  propTypes: {\n\t    index: _react2['default'].PropTypes.object.isRequired,\n\t    indexName: _react2['default'].PropTypes.string.isRequired,\n\t    indexRange: _react2['default'].PropTypes.object.isRequired,\n\t    isDeflector: _react2['default'].PropTypes.bool.isRequired\n\t  },\n\t  componentDidMount: function componentDidMount() {\n\t    IndicesActions.subscribe(this.props.indexName);\n\t  },\n\t  componentWillUnmount: function componentWillUnmount() {\n\t    IndicesActions.unsubscribe(this.props.indexName);\n\t  },\n\t\n\t  _formatActionButtons: function _formatActionButtons() {\n\t    if (this.props.isDeflector) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Button,\n\t          { bsStyle: 'warning', bsSize: 'xs', disabled: true },\n\t          'Deflector index cannot be closed'\n\t        ),\n\t        ' ',\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Button,\n\t          { bsStyle: 'danger', bsSize: 'xs', disabled: true },\n\t          'Deflector index cannot be deleted'\n\t        )\n\t      );\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Button,\n\t        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onRecalculateIndex },\n\t        'Recalculate index ranges'\n\t      ),\n\t      ' ',\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Button,\n\t        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onCloseIndex },\n\t        'Close index'\n\t      ),\n\t      ' ',\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Button,\n\t        { bsStyle: 'danger', bsSize: 'xs', onClick: this._onDeleteIndex },\n\t        'Delete index'\n\t      )\n\t    );\n\t  },\n\t  _onRecalculateIndex: function _onRecalculateIndex() {\n\t    if (window.confirm('Really recalculate the index ranges for index ' + this.props.indexName + '?')) {\n\t      IndexRangesActions.recalculateIndex(this.props.indexName);\n\t    }\n\t  },\n\t  _onCloseIndex: function _onCloseIndex() {\n\t    if (window.confirm('Really close index ' + this.props.indexName + '?')) {\n\t      IndicesActions.close(this.props.indexName);\n\t    }\n\t  },\n\t  _onDeleteIndex: function _onDeleteIndex() {\n\t    if (window.confirm('Really delete index ' + this.props.indexName + '?')) {\n\t      IndicesActions['delete'](this.props.indexName);\n\t    }\n\t  },\n\t  render: function render() {\n\t    if (!this.props.index || !this.props.index.all_shards) {\n\t      return _react2['default'].createElement(_componentsCommon.Spinner, null);\n\t    }\n\t    var _props = this.props;\n\t    var index = _props.index;\n\t    var indexRange = _props.indexRange;\n\t    var indexName = _props.indexName;\n\t\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      { className: 'index-info' },\n\t      _react2['default'].createElement(_componentsIndices.IndexRangeSummary, { indexRange: indexRange }),\n\t      ' ',\n\t      index.all_shards.segments,\n\t      ' segments,',\n\t      ' ',\n\t      index.all_shards.open_search_contexts,\n\t      ' open search contexts,',\n\t      ' ',\n\t      index.all_shards.documents.deleted,\n\t      ' deleted messages',\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Row,\n\t        { style: { marginBottom: '10' } },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Col,\n\t          { md: 4, className: 'shard-meters' },\n\t          _react2['default'].createElement(_componentsIndices.ShardMeter, { title: 'Primary shard operations', shardMeter: index.primary_shards })\n\t        ),\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Col,\n\t          { md: 4, className: 'shard-meters' },\n\t          _react2['default'].createElement(_componentsIndices.ShardMeter, { title: 'Total shard operations', shardMeter: index.all_shards })\n\t        )\n\t      ),\n\t      _react2['default'].createElement(_componentsIndices.ShardRoutingOverview, { routing: index.routing, indexName: indexName }),\n\t      _react2['default'].createElement('hr', { style: { marginBottom: '5', marginTop: '10' } }),\n\t      this._formatActionButtons()\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexDetails;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 762:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar IndexMaintenanceStrategiesConfiguration = _react2['default'].createClass({\n\t  displayName: 'IndexMaintenanceStrategiesConfiguration',\n\t\n\t  propTypes: {\n\t    title: _react2['default'].PropTypes.string.isRequired,\n\t    description: _react2['default'].PropTypes.string.isRequired,\n\t    selectPlaceholder: _react2['default'].PropTypes.string.isRequired,\n\t    pluginExports: _react2['default'].PropTypes.array.isRequired,\n\t    strategies: _react2['default'].PropTypes.array.isRequired,\n\t    activeConfig: _react2['default'].PropTypes.object.isRequired,\n\t    updateState: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      activeStrategy: this.props.activeConfig.strategy,\n\t      activeConfig: this.props.activeConfig.config,\n\t      newStrategy: this.props.activeConfig.strategy,\n\t      newConfig: this.props.activeConfig.config\n\t    };\n\t  },\n\t\n\t  _getDefaultStrategyConfig: function _getDefaultStrategyConfig(selectedStrategy) {\n\t    var result = this.props.strategies.filter(function (strategy) {\n\t      return strategy.type === selectedStrategy;\n\t    })[0];\n\t    return result ? result.default_config : undefined;\n\t  },\n\t\n\t  _getStrategyJsonSchema: function _getStrategyJsonSchema(selectedStrategy) {\n\t    var result = this.props.strategies.filter(function (strategy) {\n\t      return strategy.type === selectedStrategy;\n\t    })[0];\n\t    return result ? result.json_schema : undefined;\n\t  },\n\t\n\t  _getStrategyConfig: function _getStrategyConfig(selectedStrategy) {\n\t    if (this.state.activeStrategy === selectedStrategy) {\n\t      // If the newly selected strategy is the current active strategy, we use the active configuration.\n\t      return this.state.activeConfig;\n\t    } else {\n\t      // If the newly selected strategy is not the current active strategy, we use the selected strategy's default config.\n\t      return this._getDefaultStrategyConfig(selectedStrategy);\n\t    }\n\t  },\n\t\n\t  _onSelect: function _onSelect(newStrategy) {\n\t    if (!newStrategy || newStrategy.length < 1) {\n\t      this.setState({ newStrategy: undefined });\n\t      return;\n\t    }\n\t\n\t    var newConfig = this._getStrategyConfig(newStrategy);\n\t\n\t    this.setState({ newStrategy: newStrategy, newConfig: newConfig });\n\t    this.props.updateState(newStrategy, newConfig);\n\t  },\n\t\n\t  _onConfigUpdate: function _onConfigUpdate(newConfig) {\n\t    this.setState({ newConfig: newConfig });\n\t    this.props.updateState(this.state.newStrategy, newConfig);\n\t  },\n\t\n\t  _availableSelectOptions: function _availableSelectOptions() {\n\t    return this.props.pluginExports.map(function (config) {\n\t      return { value: config.type, label: config.displayName };\n\t    });\n\t  },\n\t\n\t  _getConfigurationComponent: function _getConfigurationComponent(selectedStrategy) {\n\t    if (!selectedStrategy || selectedStrategy.length < 1) {\n\t      return null;\n\t    }\n\t\n\t    var strategy = this.props.pluginExports.filter(function (exportedStrategy) {\n\t      return exportedStrategy.type === selectedStrategy;\n\t    })[0];\n\t\n\t    if (!strategy) {\n\t      return null;\n\t    }\n\t\n\t    var strategyConfig = this._getStrategyConfig(selectedStrategy);\n\t    var element = _react2['default'].createElement(strategy.configComponent, {\n\t      config: strategyConfig,\n\t      jsonSchema: this._getStrategyJsonSchema(selectedStrategy),\n\t      updateConfig: this._onConfigUpdate\n\t    });\n\t\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      { key: strategy.type },\n\t      element\n\t    );\n\t  },\n\t\n\t  _activeSelection: function _activeSelection() {\n\t    return this.state.newStrategy;\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'h3',\n\t        null,\n\t        this.props.title\n\t      ),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'top-margin' },\n\t        _react2['default'].createElement(\n\t          'p',\n\t          null,\n\t          this.props.description\n\t        )\n\t      ),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'top-margin' },\n\t        _react2['default'].createElement(_componentsCommon.Select, { placeholder: this.props.selectPlaceholder,\n\t          options: this._availableSelectOptions(),\n\t          matchProp: 'value',\n\t          value: this._activeSelection(),\n\t          onValueChange: this._onSelect })\n\t      ),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'top-margin' },\n\t        this._getConfigurationComponent(this._activeSelection())\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexMaintenanceStrategiesConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 763:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsCommonSpinner = __webpack_require__(26);\n\t\n\tvar _componentsCommonSpinner2 = _interopRequireDefault(_componentsCommonSpinner);\n\t\n\tvar IndexMaintenanceStrategiesSummary = _react2['default'].createClass({\n\t  displayName: 'IndexMaintenanceStrategiesSummary',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    pluginExports: _react2['default'].PropTypes.array.isRequired\n\t  },\n\t\n\t  render: function render() {\n\t    if (!this.props.config) {\n\t      return _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n\t    }\n\t\n\t    var activeStrategy = this.props.config.strategy;\n\t    var strategy = this.props.pluginExports.filter(function (exportedStrategy) {\n\t      return exportedStrategy.type === activeStrategy;\n\t    })[0];\n\t\n\t    if (!strategy || !strategy.summaryComponent) {\n\t      return _react2['default'].createElement(\n\t        _reactBootstrap.Alert,\n\t        { bsStyle: 'danger' },\n\t        'Summary for strategy ',\n\t        activeStrategy,\n\t        ' not found!'\n\t      );\n\t    }\n\t\n\t    var element = _react2['default'].createElement(strategy.summaryComponent, { config: this.props.config.config });\n\t\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      { key: strategy.type },\n\t      element\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexMaintenanceStrategiesSummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 764:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar IndexRangeSummary = _react2['default'].createClass({\n\t  displayName: 'IndexRangeSummary',\n\t\n\t  propTypes: {\n\t    indexRange: _react2['default'].PropTypes.object\n\t  },\n\t  render: function render() {\n\t    var indexRange = this.props.indexRange;\n\t\n\t    if (!indexRange) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        _react2['default'].createElement(\n\t          'i',\n\t          null,\n\t          'No index range available.'\n\t        )\n\t      );\n\t    }\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      'Range re-calculated',\n\t      ' ',\n\t      _react2['default'].createElement(\n\t        'span',\n\t        { title: indexRange.calculated_at },\n\t        _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: indexRange.calculated_at, relative: true })\n\t      ),\n\t      ' ',\n\t      'in ',\n\t      indexRange.took_ms,\n\t      'ms.'\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexRangeSummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 765:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _numeral = __webpack_require__(21);\n\t\n\tvar _numeral2 = _interopRequireDefault(_numeral);\n\t\n\tvar _utilNumberUtils = __webpack_require__(37);\n\t\n\tvar _utilNumberUtils2 = _interopRequireDefault(_utilNumberUtils);\n\t\n\tvar IndexSizeSummary = _react2['default'].createClass({\n\t  displayName: 'IndexSizeSummary',\n\t\n\t  propTypes: {\n\t    index: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  render: function render() {\n\t    var index = this.props.index;\n\t\n\t    if (index.size) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        '(',\n\t        _utilNumberUtils2['default'].formatBytes(index.size.bytes),\n\t        ' ',\n\t        '/ ',\n\t        (0, _numeral2['default'])(index.size.events).format('0,0'),\n\t        ' messages)',\n\t        ' '\n\t      );\n\t    }\n\t\n\t    return _react2['default'].createElement('span', null);\n\t  }\n\t});\n\t\n\texports['default'] = IndexSizeSummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 766:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar _logicDatetimesDateTime = __webpack_require__(31);\n\t\n\tvar _logicDatetimesDateTime2 = _interopRequireDefault(_logicDatetimesDateTime);\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar IndexSummary = _react2['default'].createClass({\n\t  displayName: 'IndexSummary',\n\t\n\t  propTypes: {\n\t    children: _react2['default'].PropTypes.node.isRequired,\n\t    index: _react2['default'].PropTypes.object.isRequired,\n\t    indexRange: _react2['default'].PropTypes.object,\n\t    isDeflector: _react2['default'].PropTypes.bool.isRequired,\n\t    name: _react2['default'].PropTypes.string.isRequired\n\t  },\n\t  getInitialState: function getInitialState() {\n\t    return { showDetails: this.props.isDeflector };\n\t  },\n\t  _formatLabels: function _formatLabels(index) {\n\t    var labels = [];\n\t    if (index.is_deflector) {\n\t      labels.push(_react2['default'].createElement(\n\t        _reactBootstrap.Label,\n\t        { key: this.props.name + '-deflector-label', bsStyle: 'primary' },\n\t        'deflector'\n\t      ));\n\t    }\n\t\n\t    if (index.is_closed) {\n\t      labels.push(_react2['default'].createElement(\n\t        _reactBootstrap.Label,\n\t        { key: this.props.name + '-closed-label', bsStyle: 'warning' },\n\t        'closed'\n\t      ));\n\t    }\n\t\n\t    if (index.is_reopened) {\n\t      labels.push(_react2['default'].createElement(\n\t        _reactBootstrap.Label,\n\t        { key: this.props.name + '-reopened-label', bsStyle: 'success' },\n\t        'reopened'\n\t      ));\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      { className: 'index-label' },\n\t      labels\n\t    );\n\t  },\n\t\n\t  _formatIndexRange: function _formatIndexRange() {\n\t    if (this.props.isDeflector) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        'Contains messages up to ',\n\t        _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: new _logicDatetimesDateTime2['default']().toISOString(), relative: true })\n\t      );\n\t    }\n\t\n\t    var sizes = this.props.index.size;\n\t    if (sizes) {\n\t      var count = sizes.events;\n\t      var deleted = sizes.deleted;\n\t      if (count === 0 || count - deleted === 0) {\n\t        return 'Index does not contain any messages.';\n\t      }\n\t    }\n\t\n\t    if (!this.props.indexRange) {\n\t      return 'Time range of index is unknown, because index range is not available. Please recalculate index ranges manually.';\n\t    }\n\t\n\t    if (this.props.indexRange.begin === 0) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        'Contains messages up to ',\n\t        _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: this.props.indexRange.end, relative: true })\n\t      );\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      'Contains messages from ',\n\t      _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: this.props.indexRange.begin, relative: true }),\n\t      ' up to',\n\t      ' ',\n\t      _react2['default'].createElement(_componentsCommon.Timestamp, { dateTime: this.props.indexRange.end, relative: true })\n\t    );\n\t  },\n\t  _formatShowDetailsLink: function _formatShowDetailsLink() {\n\t    if (this.state.showDetails) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        { className: 'index-more-actions' },\n\t        _react2['default'].createElement('i', { className: 'fa fa-caret-down' }),\n\t        ' Hide Details / Actions'\n\t      );\n\t    }\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      { className: 'index-more-actions' },\n\t      _react2['default'].createElement('i', { className: 'fa fa-caret-right' }),\n\t      ' Show Details / Actions'\n\t    );\n\t  },\n\t  _toggleShowDetails: function _toggleShowDetails(event) {\n\t    event.preventDefault();\n\t    this.setState({ showDetails: !this.state.showDetails });\n\t  },\n\t  render: function render() {\n\t    var index = this.props.index;\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'h2',\n\t        null,\n\t        this.props.name,\n\t        ' ',\n\t        _react2['default'].createElement(\n\t          'small',\n\t          null,\n\t          this._formatLabels(index),\n\t          ' ',\n\t          this._formatIndexRange(index),\n\t          ' ',\n\t          _react2['default'].createElement(_componentsIndices.IndexSizeSummary, { index: index }),\n\t          _react2['default'].createElement(\n\t            'a',\n\t            { onClick: this._toggleShowDetails, href: '#' },\n\t            this._formatShowDetailsLink()\n\t          )\n\t        )\n\t      ),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'index-info-holder' },\n\t        this.state.showDetails && this.props.children\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndexSummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 767:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reflux = __webpack_require__(4);\n\t\n\tvar _reflux2 = _interopRequireDefault(_reflux);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _componentsBootstrapBootstrapModalForm = __webpack_require__(38);\n\t\n\tvar _componentsBootstrapBootstrapModalForm2 = _interopRequireDefault(_componentsBootstrapBootstrapModalForm);\n\t\n\tvar _componentsCommonSpinner = __webpack_require__(26);\n\t\n\tvar _componentsCommonSpinner2 = _interopRequireDefault(_componentsCommonSpinner);\n\t\n\tvar _graylogWebPluginPlugin = __webpack_require__(39);\n\t\n\tvar _injectionActionsProvider = __webpack_require__(6);\n\t\n\tvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\tvar _componentsIndicesIndexMaintenanceStrategiesConfiguration = __webpack_require__(762);\n\t\n\tvar _componentsIndicesIndexMaintenanceStrategiesConfiguration2 = _interopRequireDefault(_componentsIndicesIndexMaintenanceStrategiesConfiguration);\n\t\n\tvar _componentsIndicesIndexMaintenanceStrategiesSummary = __webpack_require__(763);\n\t\n\tvar _componentsIndicesIndexMaintenanceStrategiesSummary2 = _interopRequireDefault(_componentsIndicesIndexMaintenanceStrategiesSummary);\n\t\n\t__webpack_require__(786);\n\t\n\t// Load rotation plugin UI plugins from core.\n\t\n\t__webpack_require__(779);\n\t\n\t// Load rotation plugin UI plugins from core.\n\t\n\tvar IndicesConfigurationActions = _injectionActionsProvider2['default'].getActions('IndicesConfiguration');\n\t\n\tvar IndicesConfigurationStore = _injectionStoreProvider2['default'].getStore('IndicesConfiguration');\n\t\n\tvar IndicesConfiguration = _react2['default'].createClass({\n\t  displayName: 'IndicesConfiguration',\n\t\n\t  mixins: [_reflux2['default'].connect(IndicesConfigurationStore)],\n\t\n\t  componentDidMount: function componentDidMount() {\n\t    this.style.use();\n\t    IndicesConfigurationActions.loadRotationConfig();\n\t    IndicesConfigurationActions.loadRotationStrategies();\n\t    IndicesConfigurationActions.loadRetentionConfig();\n\t    IndicesConfigurationActions.loadRetentionStrategies();\n\t  },\n\t\n\t  componentWillUnmount: function componentWillUnmount() {\n\t    this.style.unuse();\n\t  },\n\t\n\t  style: __webpack_require__(561),\n\t\n\t  _saveConfiguration: function _saveConfiguration() {\n\t    var _this = this;\n\t\n\t    var promises = [];\n\t\n\t    if (this.state.newRotationConfig) {\n\t      var promise = IndicesConfigurationActions.updateRotationConfiguration(this.state.newRotationConfig);\n\t      promises.push(promise);\n\t      // Delete the new state once it has been saved\n\t      promise.then(function () {\n\t        return _this.setState({ newRotationConfig: undefined });\n\t      });\n\t    }\n\t    if (this.state.newRetentionConfig) {\n\t      var promise = IndicesConfigurationActions.updateRetentionConfiguration(this.state.newRetentionConfig);\n\t      promises.push(promise);\n\t      // Delete the new state once it has been saved\n\t      promise.then(function () {\n\t        return _this.setState({ newRetentionConfig: undefined });\n\t      });\n\t    }\n\t\n\t    Promise.all(promises).then(function () {\n\t      _this.refs.indicesConfigurationModal.close();\n\t    });\n\t  },\n\t\n\t  _openModal: function _openModal() {\n\t    this.refs.indicesConfigurationModal.open();\n\t  },\n\t\n\t  _updateRotationConfigState: function _updateRotationConfigState(strategy, config) {\n\t    this.setState({\n\t      newRotationConfig: {\n\t        strategy: strategy,\n\t        config: config\n\t      }\n\t    });\n\t  },\n\t\n\t  _updateRetentionConfigState: function _updateRetentionConfigState(strategy, config) {\n\t    this.setState({\n\t      newRetentionConfig: {\n\t        strategy: strategy,\n\t        config: config\n\t      }\n\t    });\n\t  },\n\t\n\t  render: function render() {\n\t    var _this2 = this;\n\t\n\t    var rotationSummary = undefined;\n\t    if (this.state.activeRotationConfig) {\n\t      rotationSummary = _react2['default'].createElement(_componentsIndicesIndexMaintenanceStrategiesSummary2['default'], { config: this.state.activeRotationConfig,\n\t        pluginExports: _graylogWebPluginPlugin.PluginStore.exports('indexRotationConfig') });\n\t    } else {\n\t      rotationSummary = _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n\t    }\n\t\n\t    var retentionSummary = undefined;\n\t    if (this.state.activeRetentionConfig) {\n\t      retentionSummary = _react2['default'].createElement(_componentsIndicesIndexMaintenanceStrategiesSummary2['default'], { config: this.state.activeRetentionConfig,\n\t        pluginExports: _graylogWebPluginPlugin.PluginStore.exports('indexRetentionConfig') });\n\t    } else {\n\t      retentionSummary = _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n\t    }\n\t\n\t    var rotationConfig = undefined;\n\t    if (this.state.activeRotationConfig && this.state.rotationStrategies) {\n\t      rotationConfig = _react2['default'].createElement(_componentsIndicesIndexMaintenanceStrategiesConfiguration2['default'], { title: 'Index Rotation Configuration',\n\t        description: 'Graylog uses multiple indices to store documents in. You can configure the strategy it uses to determine when to rotate the currently active write index.',\n\t        selectPlaceholder: 'Select rotation strategy',\n\t        pluginExports: _graylogWebPluginPlugin.PluginStore.exports('indexRotationConfig'),\n\t        strategies: this.state.rotationStrategies,\n\t        activeConfig: this.state.activeRotationConfig,\n\t        updateState: this._updateRotationConfigState });\n\t    } else {\n\t      rotationConfig = _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n\t    }\n\t\n\t    var retentionConfig = undefined;\n\t    if (this.state.activeRetentionConfig && this.state.retentionStrategies) {\n\t      retentionConfig = _react2['default'].createElement(_componentsIndicesIndexMaintenanceStrategiesConfiguration2['default'], { title: 'Index Retention Configuration',\n\t        description: 'Graylog uses a retention strategy to clean up old indices.',\n\t        selectPlaceholder: 'Select retention strategy',\n\t        pluginExports: _graylogWebPluginPlugin.PluginStore.exports('indexRetentionConfig'),\n\t        strategies: this.state.retentionStrategies,\n\t        activeConfig: this.state.activeRetentionConfig,\n\t        updateState: this._updateRetentionConfigState });\n\t    } else {\n\t      retentionConfig = _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n\t    }\n\t\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'h2',\n\t        null,\n\t        'Settings'\n\t      ),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'top-margin' },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Row,\n\t          null,\n\t          _react2['default'].createElement(\n\t            _reactBootstrap.Col,\n\t            { md: 6 },\n\t            rotationSummary\n\t          ),\n\t          _react2['default'].createElement(\n\t            _reactBootstrap.Col,\n\t            { md: 6 },\n\t            retentionSummary\n\t          )\n\t        ),\n\t        _react2['default'].createElement('hr', { className: 'separator' }),\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Button,\n\t          { bsStyle: 'info', bsSize: 'xs', onClick: function () {\n\t              return _this2._openModal();\n\t            } },\n\t          'Update configuration'\n\t        ),\n\t        ' '\n\t      ),\n\t      _react2['default'].createElement(\n\t        _componentsBootstrapBootstrapModalForm2['default'],\n\t        { ref: 'indicesConfigurationModal',\n\t          title: 'Update Index Settings',\n\t          onSubmitForm: this._saveConfiguration,\n\t          submitButtonText: 'Save' },\n\t        rotationConfig,\n\t        _react2['default'].createElement('hr', null),\n\t        retentionConfig\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndicesConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 768:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _injectionActionsProvider = __webpack_require__(6);\n\t\n\tvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\tvar DeflectorActions = _injectionActionsProvider2['default'].getActions('Deflector');\n\tvar IndexRangesActions = _injectionActionsProvider2['default'].getActions('IndexRanges');\n\t\n\tvar DeflectorStore = _injectionStoreProvider2['default'].getStore('Deflector'); // eslint-disable-line no-unused-vars\n\t\n\tvar IndicesMaintenanceDropdown = _react2['default'].createClass({\n\t  displayName: 'IndicesMaintenanceDropdown',\n\t\n\t  _onRecalculateIndexRange: function _onRecalculateIndexRange() {\n\t    if (window.confirm('This will trigger a background system job. Go on?')) {\n\t      IndexRangesActions.recalculate();\n\t    }\n\t  },\n\t  _onCycleDeflector: function _onCycleDeflector() {\n\t    if (window.confirm('Really manually cycle deflector? Follow the documentation link on this page to learn more.')) {\n\t      DeflectorActions.cycle();\n\t    }\n\t  },\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.ButtonGroup,\n\t      null,\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.DropdownButton,\n\t        { bsStyle: 'info', bsSize: 'lg', title: 'Maintenance', id: 'indices-maintenance-actions', pullRight: true },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.MenuItem,\n\t          { eventKey: '1', onClick: this._onRecalculateIndexRange },\n\t          'Recalculate index ranges'\n\t        ),\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.MenuItem,\n\t          { eventKey: '2', onClick: this._onCycleDeflector },\n\t          'Manually cycle deflector'\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndicesMaintenanceDropdown;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 769:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _javascriptNaturalSort = __webpack_require__(44);\n\t\n\tvar _javascriptNaturalSort2 = _interopRequireDefault(_javascriptNaturalSort);\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar IndicesOverview = _react2['default'].createClass({\n\t  displayName: 'IndicesOverview',\n\t\n\t  propTypes: {\n\t    closedIndices: _react2['default'].PropTypes.array.isRequired,\n\t    deflector: _react2['default'].PropTypes.object.isRequired,\n\t    indexDetails: _react2['default'].PropTypes.object.isRequired,\n\t    indices: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  _formatIndex: function _formatIndex(indexName, index) {\n\t    var indexSummary = this.props.indices[indexName];\n\t    var indexRange = indexSummary && indexSummary.range ? indexSummary.range : null;\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Row,\n\t      { key: 'index-summary-' + indexName, className: 'content index-description' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Col,\n\t        { md: 12 },\n\t        _react2['default'].createElement(\n\t          _componentsIndices.IndexSummary,\n\t          { index: index, name: indexName, count: indexSummary.size,\n\t            indexRange: indexRange, isDeflector: indexSummary.is_deflector },\n\t          _react2['default'].createElement(\n\t            'span',\n\t            null,\n\t            _react2['default'].createElement(_componentsIndices.IndexDetails, { index: this.props.indexDetails[indexName],\n\t              indexName: indexName,\n\t              indexRange: indexRange,\n\t              isDeflector: indexSummary.is_deflector })\n\t          )\n\t        )\n\t      )\n\t    );\n\t  },\n\t  _formatClosedIndex: function _formatClosedIndex(indexName, index) {\n\t    var indexRange = index.range;\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Row,\n\t      { key: 'index-summary-' + indexName, className: 'content index-description' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Col,\n\t        { md: 12 },\n\t        _react2['default'].createElement(\n\t          _componentsIndices.IndexSummary,\n\t          { index: index, name: indexName, indexRange: indexRange, isDeflector: index.is_deflector },\n\t          _react2['default'].createElement(\n\t            'span',\n\t            null,\n\t            _react2['default'].createElement(_componentsIndices.ClosedIndexDetails, { indexName: indexName, indexRange: indexRange })\n\t          )\n\t        )\n\t      )\n\t    );\n\t  },\n\t  render: function render() {\n\t    var _this = this;\n\t\n\t    var indices = Object.keys(this.props.indices).map(function (indexName) {\n\t      return !_this.props.indices[indexName].is_closed ? _this._formatIndex(indexName, _this.props.indices[indexName]) : _this._formatClosedIndex(indexName, _this.props.indices[indexName]);\n\t    });\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      indices.sort(function (index1, index2) {\n\t        return (0, _javascriptNaturalSort2['default'])(index2.key, index1.key);\n\t      })\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndicesOverview;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 770:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _numeral = __webpack_require__(21);\n\t\n\tvar _numeral2 = _interopRequireDefault(_numeral);\n\t\n\tvar _moment = __webpack_require__(23);\n\t\n\tvar _moment2 = _interopRequireDefault(_moment);\n\t\n\tvar ShardMeter = _react2['default'].createClass({\n\t  displayName: 'ShardMeter',\n\t\n\t  propTypes: {\n\t    title: _react2['default'].PropTypes.string.isRequired,\n\t    shardMeter: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  _formatMeter: function _formatMeter(meter) {\n\t    var value = _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      (0, _numeral2['default'])(meter.total).format('0,0'),\n\t      ' ops'\n\t    );\n\t\n\t    if (meter.total > 0) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        value,\n\t        ' ',\n\t        _react2['default'].createElement(\n\t          'span',\n\t          { title: meter.time_seconds + 's' },\n\t          '(took ',\n\t          _moment2['default'].duration(meter.time_seconds, 'seconds').humanize(),\n\t          ')'\n\t        )\n\t      );\n\t    }\n\t\n\t    return value;\n\t  },\n\t  render: function render() {\n\t    var sm = this.props.shardMeter;\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'h3',\n\t        { style: { display: 'inline' } },\n\t        this.props.title\n\t      ),\n\t      _react2['default'].createElement(\n\t        'dl',\n\t        null,\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Index:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.index)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Flush:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.flush)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Merge:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.merge)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Query:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.search_query)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Fetch:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.search_fetch)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Get:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.get)\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Refresh:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this._formatMeter(sm.refresh)\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = ShardMeter;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 771:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(59);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar ShardRouting = _react2['default'].createClass({\n\t  displayName: 'ShardRouting',\n\t\n\t  propTypes: {\n\t    route: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t  render: function render() {\n\t    var route = this.props.route;\n\t    var tooltip = _react2['default'].createElement(\n\t      _reactBootstrap.Tooltip,\n\t      { id: 'shard-route-state-tooltip' },\n\t      'State: ',\n\t      _react2['default'].createElement(\n\t        'i',\n\t        null,\n\t        route.state\n\t      ),\n\t      ' on ',\n\t      route.node_hostname,\n\t      ' (',\n\t      route.node_name,\n\t      ')'\n\t    );\n\t    return _react2['default'].createElement(\n\t      'li',\n\t      { className: (0, _classnames2['default'])('shard', 'shard-' + route.state, { 'shard-primary': route.primary }) },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.OverlayTrigger,\n\t        { placement: 'top', overlay: tooltip },\n\t        _react2['default'].createElement(\n\t          'span',\n\t          { className: 'id' },\n\t          'S',\n\t          route.id\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = ShardRouting;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 772:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar _javascriptNaturalSort = __webpack_require__(44);\n\t\n\tvar _javascriptNaturalSort2 = _interopRequireDefault(_javascriptNaturalSort);\n\t\n\tvar ShardRoutingOverview = _react2['default'].createClass({\n\t  displayName: 'ShardRoutingOverview',\n\t\n\t  propTypes: {\n\t    routing: _react2['default'].PropTypes.array.isRequired,\n\t    indexName: _react2['default'].PropTypes.string.isRequired\n\t  },\n\t  render: function render() {\n\t    var _props = this.props;\n\t    var indexName = _props.indexName;\n\t    var routing = _props.routing;\n\t\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      { className: 'shard-routing' },\n\t      _react2['default'].createElement(\n\t        'h3',\n\t        null,\n\t        'Shard routing'\n\t      ),\n\t      _react2['default'].createElement(\n\t        'ul',\n\t        { className: 'shards' },\n\t        routing.sort(function (shard1, shard2) {\n\t          return (0, _javascriptNaturalSort2['default'])(shard1.id, shard2.id);\n\t        }).map(function (route) {\n\t          return _react2['default'].createElement(_componentsIndices.ShardRouting, { key: indexName + '-shard-route-' + route.node_id + \"-\" + route.id, route: route });\n\t        })\n\t      ),\n\t      _react2['default'].createElement('br', { style: { clear: 'both' } }),\n\t      _react2['default'].createElement(\n\t        'div',\n\t        { className: 'description' },\n\t        'Bold shards are primaries, others are replicas. Replicas are elected to primaries automatically when primaries leave the cluster. Size and document counts only reflect primary shards and no possible replica duplication.'\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = ShardRoutingOverview;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 773:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar ClosingRetentionStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'ClosingRetentionStrategyConfiguration',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    jsonSchema: _react2['default'].PropTypes.object.isRequired,\n\t    updateConfig: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      max_number_of_indices: this.props.config.max_number_of_indices\n\t    };\n\t  },\n\t\n\t  _onInputUpdate: function _onInputUpdate(field) {\n\t    var _this = this;\n\t\n\t    return function (e) {\n\t      var update = {};\n\t      update[field] = e.target.value;\n\t\n\t      _this.setState(update);\n\t      _this.props.updateConfig(update);\n\t    };\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'fieldset',\n\t        null,\n\t        _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n\t          id: 'max-number-of-indices',\n\t          label: 'Max number of indices',\n\t          onChange: this._onInputUpdate('max_number_of_indices'),\n\t          value: this.state.max_number_of_indices,\n\t          help: _react2['default'].createElement(\n\t            'span',\n\t            null,\n\t            'Maximum number of indices to keep before ',\n\t            _react2['default'].createElement(\n\t              'strong',\n\t              null,\n\t              'closing'\n\t            ),\n\t            ' the oldest ones'\n\t          ),\n\t          autoFocus: true,\n\t          required: true })\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = ClosingRetentionStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 774:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar ClosingRetentionStrategySummary = _react2[\"default\"].createClass({\n\t  displayName: \"ClosingRetentionStrategySummary\",\n\t\n\t  propTypes: {\n\t    config: _react2[\"default\"].PropTypes.object.isRequired\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2[\"default\"].createElement(\n\t      \"div\",\n\t      null,\n\t      _react2[\"default\"].createElement(\n\t        \"dl\",\n\t        { className: \"deflist\" },\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Index retention strategy:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          \"Close\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Max number of indices:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          this.props.config.max_number_of_indices\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports[\"default\"] = ClosingRetentionStrategySummary;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n\n/***/ 775:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar DeletionRetentionStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'DeletionRetentionStrategyConfiguration',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    jsonSchema: _react2['default'].PropTypes.object.isRequired,\n\t    updateConfig: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      max_number_of_indices: this.props.config.max_number_of_indices\n\t    };\n\t  },\n\t\n\t  _onInputUpdate: function _onInputUpdate(field) {\n\t    var _this = this;\n\t\n\t    return function (e) {\n\t      var update = {};\n\t      update[field] = e.target.value;\n\t\n\t      _this.setState(update);\n\t      _this.props.updateConfig(update);\n\t    };\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'fieldset',\n\t        null,\n\t        _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n\t          id: 'max-number-of-indices',\n\t          label: 'Max number of indices',\n\t          onChange: this._onInputUpdate('max_number_of_indices'),\n\t          value: this.state.max_number_of_indices,\n\t          help: _react2['default'].createElement(\n\t            'span',\n\t            null,\n\t            'Maximum number of indices to keep before ',\n\t            _react2['default'].createElement(\n\t              'strong',\n\t              null,\n\t              'deleting'\n\t            ),\n\t            ' the oldest ones'\n\t          ),\n\t          autoFocus: true,\n\t          required: true })\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = DeletionRetentionStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 776:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar DeletionRetentionStrategySummary = _react2[\"default\"].createClass({\n\t  displayName: \"DeletionRetentionStrategySummary\",\n\t\n\t  propTypes: {\n\t    config: _react2[\"default\"].PropTypes.object.isRequired\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2[\"default\"].createElement(\n\t      \"div\",\n\t      null,\n\t      _react2[\"default\"].createElement(\n\t        \"dl\",\n\t        { className: \"deflist\" },\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Index retention strategy:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          \"Delete\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Max number of indices:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          this.props.config.max_number_of_indices\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports[\"default\"] = DeletionRetentionStrategySummary;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n\n/***/ 777:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar NoopRetentionStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'NoopRetentionStrategyConfiguration',\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Alert,\n\t      null,\n\t      'This retention strategy is not configurable because it does not do anything.'\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = NoopRetentionStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 778:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar NoopRetentionStrategySummary = _react2[\"default\"].createClass({\n\t  displayName: \"NoopRetentionStrategySummary\",\n\t\n\t  render: function render() {\n\t    return _react2[\"default\"].createElement(\n\t      \"div\",\n\t      null,\n\t      _react2[\"default\"].createElement(\n\t        \"dl\",\n\t        { className: \"deflist\" },\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Index retention strategy:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          \"Do nothing\"\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports[\"default\"] = NoopRetentionStrategySummary;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n\n/***/ 779:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _graylogWebPluginPlugin = __webpack_require__(39);\n\t\n\tvar _DeletionRetentionStrategyConfiguration = __webpack_require__(775);\n\t\n\tvar _DeletionRetentionStrategyConfiguration2 = _interopRequireDefault(_DeletionRetentionStrategyConfiguration);\n\t\n\tvar _DeletionRetentionStrategySummary = __webpack_require__(776);\n\t\n\tvar _DeletionRetentionStrategySummary2 = _interopRequireDefault(_DeletionRetentionStrategySummary);\n\t\n\tvar _ClosingRetentionStrategyConfiguration = __webpack_require__(773);\n\t\n\tvar _ClosingRetentionStrategyConfiguration2 = _interopRequireDefault(_ClosingRetentionStrategyConfiguration);\n\t\n\tvar _ClosingRetentionStrategySummary = __webpack_require__(774);\n\t\n\tvar _ClosingRetentionStrategySummary2 = _interopRequireDefault(_ClosingRetentionStrategySummary);\n\t\n\tvar _NoopRetentionStrategyConfiguration = __webpack_require__(777);\n\t\n\tvar _NoopRetentionStrategyConfiguration2 = _interopRequireDefault(_NoopRetentionStrategyConfiguration);\n\t\n\tvar _NoopRetentionStrategySummary = __webpack_require__(778);\n\t\n\tvar _NoopRetentionStrategySummary2 = _interopRequireDefault(_NoopRetentionStrategySummary);\n\t\n\t_graylogWebPluginPlugin.PluginStore.register(new _graylogWebPluginPlugin.PluginManifest({}, {\n\t  indexRetentionConfig: [{\n\t    type: 'org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy',\n\t    displayName: 'Delete Index',\n\t    configComponent: _DeletionRetentionStrategyConfiguration2['default'],\n\t    summaryComponent: _DeletionRetentionStrategySummary2['default']\n\t  }, {\n\t    type: 'org.graylog2.indexer.retention.strategies.ClosingRetentionStrategy',\n\t    displayName: 'Close Index',\n\t    configComponent: _ClosingRetentionStrategyConfiguration2['default'],\n\t    summaryComponent: _ClosingRetentionStrategySummary2['default']\n\t  }, {\n\t    type: 'org.graylog2.indexer.retention.strategies.NoopRetentionStrategy',\n\t    displayName: 'Do nothing',\n\t    configComponent: _NoopRetentionStrategyConfiguration2['default'],\n\t    summaryComponent: _NoopRetentionStrategySummary2['default']\n\t  }]\n\t}));\n\n/***/ },\n\n/***/ 780:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar MessageCountRotationStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'MessageCountRotationStrategyConfiguration',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    jsonSchema: _react2['default'].PropTypes.object.isRequired,\n\t    updateConfig: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      max_docs_per_index: this.props.config.max_docs_per_index\n\t    };\n\t  },\n\t\n\t  _onInputUpdate: function _onInputUpdate(field) {\n\t    var _this = this;\n\t\n\t    return function (e) {\n\t      var update = {};\n\t      update[field] = e.target.value;\n\t\n\t      _this.setState(update);\n\t      _this.props.updateConfig(update);\n\t    };\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'fieldset',\n\t        null,\n\t        _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n\t          id: 'max-docs-per-index',\n\t          label: 'Max documents per index',\n\t          onChange: this._onInputUpdate('max_docs_per_index'),\n\t          value: this.state.max_docs_per_index,\n\t          help: 'Maximum number of documents in an index before it gets rotated',\n\t          autoFocus: true,\n\t          required: true })\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = MessageCountRotationStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 781:\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar MessageCountRotationStrategySummary = _react2[\"default\"].createClass({\n\t  displayName: \"MessageCountRotationStrategySummary\",\n\t\n\t  propTypes: {\n\t    config: _react2[\"default\"].PropTypes.object.isRequired\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2[\"default\"].createElement(\n\t      \"div\",\n\t      null,\n\t      _react2[\"default\"].createElement(\n\t        \"dl\",\n\t        { className: \"deflist\" },\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Index rotation strategy:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          \"Message Count\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dt\",\n\t          null,\n\t          \"Max docs per index:\"\n\t        ),\n\t        _react2[\"default\"].createElement(\n\t          \"dd\",\n\t          null,\n\t          this.props.config.max_docs_per_index\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports[\"default\"] = MessageCountRotationStrategySummary;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n\n/***/ 782:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _utilNumberUtils = __webpack_require__(37);\n\t\n\tvar _utilNumberUtils2 = _interopRequireDefault(_utilNumberUtils);\n\t\n\tvar SizeBasedRotationStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'SizeBasedRotationStrategyConfiguration',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    jsonSchema: _react2['default'].PropTypes.object.isRequired,\n\t    updateConfig: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      max_size: this.props.config.max_size\n\t    };\n\t  },\n\t\n\t  _onInputUpdate: function _onInputUpdate(field) {\n\t    var _this = this;\n\t\n\t    return function (e) {\n\t      var update = {};\n\t      update[field] = e.target.value;\n\t\n\t      _this.setState(update);\n\t      _this.props.updateConfig(update);\n\t    };\n\t  },\n\t\n\t  _formatSize: function _formatSize() {\n\t    return _utilNumberUtils2['default'].formatBytes(this.state.max_size);\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'fieldset',\n\t        null,\n\t        _react2['default'].createElement(_reactBootstrap.Input, { type: 'number',\n\t          id: 'max-size',\n\t          label: 'Max size per index (in bytes)',\n\t          onChange: this._onInputUpdate('max_size'),\n\t          value: this.state.max_size,\n\t          help: 'Maximum size of an index before it gets rotated',\n\t          addonAfter: this._formatSize(),\n\t          autoFocus: true,\n\t          required: true })\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = SizeBasedRotationStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 783:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _utilNumberUtils = __webpack_require__(37);\n\t\n\tvar _utilNumberUtils2 = _interopRequireDefault(_utilNumberUtils);\n\t\n\tvar SizeBasedRotationStrategySummary = _react2['default'].createClass({\n\t  displayName: 'SizeBasedRotationStrategySummary',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'dl',\n\t        { className: 'deflist' },\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Index rotation strategy:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          'Index Size'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Max index size:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this.props.config.max_size,\n\t          ' bytes (',\n\t          _utilNumberUtils2['default'].formatBytes(this.props.config.max_size),\n\t          ')'\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = SizeBasedRotationStrategySummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 784:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _moment = __webpack_require__(23);\n\t\n\tvar _moment2 = _interopRequireDefault(_moment);\n\t\n\tvar TimeBasedRotationStrategyConfiguration = _react2['default'].createClass({\n\t  displayName: 'TimeBasedRotationStrategyConfiguration',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired,\n\t    jsonSchema: _react2['default'].PropTypes.object.isRequired,\n\t    updateConfig: _react2['default'].PropTypes.func.isRequired\n\t  },\n\t\n\t  getInitialState: function getInitialState() {\n\t    return {\n\t      rotation_period: this.props.config.rotation_period\n\t    };\n\t  },\n\t\n\t  _onPeriodUpdate: function _onPeriodUpdate(field) {\n\t    var _this = this;\n\t\n\t    return function () {\n\t      var update = {};\n\t      var period = _this.refs[field].getValue().toUpperCase();\n\t\n\t      if (!period.startsWith('P')) {\n\t        period = 'P' + period;\n\t      }\n\t\n\t      update[field] = period;\n\t\n\t      _this.setState(update);\n\t\n\t      if (_this._isValidPeriod(update[field])) {\n\t        // Only propagate state if the config is valid.\n\t        _this.props.updateConfig(update);\n\t      }\n\t    };\n\t  },\n\t\n\t  _isValidPeriod: function _isValidPeriod(duration) {\n\t    var check = duration || this.state.rotation_period;\n\t    return _moment2['default'].duration(check).asMilliseconds() >= 3600000;\n\t  },\n\t\n\t  _validationState: function _validationState() {\n\t    if (this._isValidPeriod()) {\n\t      return undefined;\n\t    } else {\n\t      return 'error';\n\t    }\n\t  },\n\t\n\t  _formatDuration: function _formatDuration() {\n\t    return this._isValidPeriod() ? _moment2['default'].duration(this.state.rotation_period).humanize() : 'invalid (min 1 hour)';\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n\t        ref: 'rotation_period',\n\t        label: 'Rotation period (ISO8601 Duration)',\n\t        onChange: this._onPeriodUpdate('rotation_period'),\n\t        value: this.state.rotation_period,\n\t        help: 'How long an index gets written to before it is rotated. (i.e. \"P1D\" for 1 day, \"PT6H\" for 6 hours)',\n\t        addonAfter: this._formatDuration(),\n\t        bsStyle: this._validationState(),\n\t        autofocus: true,\n\t        required: true })\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = TimeBasedRotationStrategyConfiguration;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 785:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _moment = __webpack_require__(23);\n\t\n\tvar _moment2 = _interopRequireDefault(_moment);\n\t\n\t__webpack_require__(107);\n\t\n\tvar TimeBasedRotationStrategySummary = _react2['default'].createClass({\n\t  displayName: 'TimeBasedRotationStrategySummary',\n\t\n\t  propTypes: {\n\t    config: _react2['default'].PropTypes.object.isRequired\n\t  },\n\t\n\t  _humanizedPeriod: function _humanizedPeriod() {\n\t    var duration = _moment2['default'].duration(this.props.config.rotation_period);\n\t\n\t    return duration.format() + ', ' + duration.humanize();\n\t  },\n\t\n\t  render: function render() {\n\t    return _react2['default'].createElement(\n\t      'div',\n\t      null,\n\t      _react2['default'].createElement(\n\t        'dl',\n\t        { className: 'deflist' },\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Index rotation strategy:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          'Index Time'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dt',\n\t          null,\n\t          'Rotation period:'\n\t        ),\n\t        _react2['default'].createElement(\n\t          'dd',\n\t          null,\n\t          this.props.config.rotation_period,\n\t          ' (',\n\t          this._humanizedPeriod(),\n\t          ')'\n\t        )\n\t      )\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = TimeBasedRotationStrategySummary;\n\tmodule.exports = exports['default'];\n\n/***/ },\n\n/***/ 786:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _graylogWebPluginPlugin = __webpack_require__(39);\n\t\n\tvar _MessageCountRotationStrategyConfiguration = __webpack_require__(780);\n\t\n\tvar _MessageCountRotationStrategyConfiguration2 = _interopRequireDefault(_MessageCountRotationStrategyConfiguration);\n\t\n\tvar _MessageCountRotationStrategySummary = __webpack_require__(781);\n\t\n\tvar _MessageCountRotationStrategySummary2 = _interopRequireDefault(_MessageCountRotationStrategySummary);\n\t\n\tvar _SizeBasedRotationStrategyConfiguration = __webpack_require__(782);\n\t\n\tvar _SizeBasedRotationStrategyConfiguration2 = _interopRequireDefault(_SizeBasedRotationStrategyConfiguration);\n\t\n\tvar _SizeBasedRotationStrategySummary = __webpack_require__(783);\n\t\n\tvar _SizeBasedRotationStrategySummary2 = _interopRequireDefault(_SizeBasedRotationStrategySummary);\n\t\n\tvar _TimeBasedRotationStrategyConfiguration = __webpack_require__(784);\n\t\n\tvar _TimeBasedRotationStrategyConfiguration2 = _interopRequireDefault(_TimeBasedRotationStrategyConfiguration);\n\t\n\tvar _TimeBasedRotationStrategySummary = __webpack_require__(785);\n\t\n\tvar _TimeBasedRotationStrategySummary2 = _interopRequireDefault(_TimeBasedRotationStrategySummary);\n\t\n\t_graylogWebPluginPlugin.PluginStore.register(new _graylogWebPluginPlugin.PluginManifest({}, {\n\t  indexRotationConfig: [{\n\t    type: 'org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy',\n\t    displayName: 'Index Message Count',\n\t    configComponent: _MessageCountRotationStrategyConfiguration2['default'],\n\t    summaryComponent: _MessageCountRotationStrategySummary2['default']\n\t  }, {\n\t    type: 'org.graylog2.indexer.rotation.strategies.SizeBasedRotationStrategy',\n\t    displayName: 'Index Size',\n\t    configComponent: _SizeBasedRotationStrategyConfiguration2['default'],\n\t    summaryComponent: _SizeBasedRotationStrategySummary2['default']\n\t  }, {\n\t    type: 'org.graylog2.indexer.rotation.strategies.TimeBasedRotationStrategy',\n\t    displayName: 'Index Time',\n\t    configComponent: _TimeBasedRotationStrategyConfiguration2['default'],\n\t    summaryComponent: _TimeBasedRotationStrategySummary2['default']\n\t  }]\n\t}));\n\n/***/ },\n\n/***/ 917:\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t  value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reflux = __webpack_require__(4);\n\t\n\tvar _reflux2 = _interopRequireDefault(_reflux);\n\t\n\tvar _reactBootstrap = __webpack_require__(2);\n\t\n\tvar _numeral = __webpack_require__(21);\n\t\n\tvar _numeral2 = _interopRequireDefault(_numeral);\n\t\n\tvar _injectionActionsProvider = __webpack_require__(6);\n\t\n\tvar _injectionActionsProvider2 = _interopRequireDefault(_injectionActionsProvider);\n\t\n\tvar _injectionStoreProvider = __webpack_require__(3);\n\t\n\tvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\t\n\tvar _utilDocsHelper = __webpack_require__(17);\n\t\n\tvar _utilDocsHelper2 = _interopRequireDefault(_utilDocsHelper);\n\t\n\tvar _componentsCommon = __webpack_require__(5);\n\t\n\tvar _componentsSupport = __webpack_require__(36);\n\t\n\tvar _componentsIndexers = __webpack_require__(52);\n\t\n\tvar _componentsIndices = __webpack_require__(117);\n\t\n\tvar _componentsIndicesIndicesConfiguration = __webpack_require__(767);\n\t\n\tvar _componentsIndicesIndicesConfiguration2 = _interopRequireDefault(_componentsIndicesIndicesConfiguration);\n\t\n\tvar IndexerOverviewActions = _injectionActionsProvider2['default'].getActions('IndexerOverview');\n\tvar IndicesActions = _injectionActionsProvider2['default'].getActions('Indices');\n\t\n\tvar IndexerOverviewStore = _injectionStoreProvider2['default'].getStore('IndexerOverview');\n\tvar IndicesStore = _injectionStoreProvider2['default'].getStore('Indices');\n\t\n\tvar IndicesPage = _react2['default'].createClass({\n\t  displayName: 'IndicesPage',\n\t\n\t  mixins: [_reflux2['default'].connect(IndicesStore, 'indexDetails'), _reflux2['default'].connect(IndexerOverviewStore)],\n\t  componentDidMount: function componentDidMount() {\n\t    IndicesActions.list();\n\t    this.timerId = setInterval(function () {\n\t      IndicesActions.multiple();\n\t      IndexerOverviewActions.list();\n\t    }, this.REFRESH_INTERVAL);\n\t  },\n\t  componentWillUnmount: function componentWillUnmount() {\n\t    if (this.timerId) {\n\t      clearInterval(this.timerId);\n\t    }\n\t  },\n\t  REFRESH_INTERVAL: 2000,\n\t  _totalIndexCount: function _totalIndexCount() {\n\t    return Object.keys(this.state.indexerOverview.indices).length;\n\t  },\n\t  _renderElasticsearchUnavailableInformation: function _renderElasticsearchUnavailableInformation() {\n\t    return _react2['default'].createElement(\n\t      _reactBootstrap.Row,\n\t      { className: 'content' },\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Col,\n\t        { md: 8, mdOffset: 2 },\n\t        _react2['default'].createElement(\n\t          'div',\n\t          { className: 'top-margin' },\n\t          _react2['default'].createElement(\n\t            _reactBootstrap.Panel,\n\t            { bsStyle: 'danger',\n\t              header: _react2['default'].createElement(\n\t                'span',\n\t                null,\n\t                _react2['default'].createElement('i', { className: 'fa fa-exclamation-triangle' }),\n\t                ' Indices overview unavailable'\n\t              ) },\n\t            _react2['default'].createElement(\n\t              'p',\n\t              null,\n\t              'We could not get the indices overview information. This usually means there was a problem connecting to Elasticsearch, and ',\n\t              _react2['default'].createElement(\n\t                'strong',\n\t                null,\n\t                'you should ensure Elasticsearch is up and reachable from Graylog'\n\t              ),\n\t              '.'\n\t            ),\n\t            _react2['default'].createElement(\n\t              'p',\n\t              null,\n\t              'Graylog will continue storing your messages in its journal, but you will not be able to search on them until Elasticsearch is reachable again.'\n\t            )\n\t          )\n\t        )\n\t      )\n\t    );\n\t  },\n\t  render: function render() {\n\t    var pageHeader = _react2['default'].createElement(\n\t      _componentsCommon.PageHeader,\n\t      { title: 'Indices' },\n\t      _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        'This is an overview of all indices (message stores) Graylog is currently taking in account for searches and analysis.'\n\t      ),\n\t      _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        'You can learn more about the index model in the',\n\t        ' ',\n\t        _react2['default'].createElement(_componentsSupport.DocumentationLink, { page: _utilDocsHelper2['default'].PAGES.INDEX_MODEL, text: 'documentation' })\n\t      ),\n\t      _react2['default'].createElement(_componentsIndices.IndicesMaintenanceDropdown, null)\n\t    );\n\t\n\t    if (this.state.indexerOverviewError) {\n\t      return _react2['default'].createElement(\n\t        'span',\n\t        null,\n\t        pageHeader,\n\t        this._renderElasticsearchUnavailableInformation()\n\t      );\n\t    }\n\t\n\t    if (!this.state.indexerOverview || !this.state.indexDetails.closedIndices) {\n\t      return _react2['default'].createElement(_componentsCommon.Spinner, null);\n\t    }\n\t\n\t    var deflectorInfo = this.state.indexerOverview.deflector;\n\t    return _react2['default'].createElement(\n\t      'span',\n\t      null,\n\t      pageHeader,\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Row,\n\t        { className: 'content' },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Col,\n\t          { md: 12 },\n\t          _react2['default'].createElement(_componentsIndicesIndicesConfiguration2['default'], null)\n\t        )\n\t      ),\n\t      _react2['default'].createElement(\n\t        _reactBootstrap.Row,\n\t        { className: 'content' },\n\t        _react2['default'].createElement(\n\t          _reactBootstrap.Col,\n\t          { md: 12 },\n\t          _react2['default'].createElement(\n\t            _reactBootstrap.Alert,\n\t            { bsStyle: 'success', style: { marginTop: '10' } },\n\t            _react2['default'].createElement('i', { className: 'fa fa-th' }),\n\t            '  ',\n\t            this._totalIndexCount(),\n\t            ' indices with a total of',\n\t            ' ',\n\t            (0, _numeral2['default'])(this.state.indexerOverview.counts.events).format('0,0'),\n\t            ' messages under management, current write-active index is ',\n\t            _react2['default'].createElement(\n\t              'i',\n\t              null,\n\t              deflectorInfo.current_target\n\t            ),\n\t            '.'\n\t          ),\n\t          _react2['default'].createElement(_componentsIndexers.IndexerClusterHealthSummary, { health: this.state.indexerOverview.indexer_cluster.health })\n\t        )\n\t      ),\n\t      _react2['default'].createElement(_componentsIndices.IndicesOverview, { indices: this.state.indexerOverview.indices,\n\t        indexDetails: this.state.indexDetails.indices,\n\t        closedIndices: this.state.indexDetails.closedIndices,\n\t        deflector: this.state.indexerOverview.deflector })\n\t    );\n\t  }\n\t});\n\t\n\texports['default'] = IndicesPage;\n\tmodule.exports = exports['default'];\n\n/***/ }\n\n});\n\n\n// WEBPACK FOOTER //\n// 7.7.b7768dc589126fb9e2d2.js","export { default as IndexerClusterHealth } from './IndexerClusterHealth';\nexport { default as IndexerClusterHealthSummary } from './IndexerClusterHealthSummary';\nexport { default as IndexerFailure } from './IndexerFailure';\nexport { default as IndexerFailuresComponent } from './IndexerFailuresComponent';\nexport { default as IndexerFailuresList } from './IndexerFailuresList';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/index.jsx","export ClosedIndexDetails from './ClosedIndexDetails';\nexport IndexDetails from './IndexDetails';\nexport IndexRangeSummary from './IndexRangeSummary';\nexport IndexSummary from './IndexSummary';\nexport IndexSizeSummary from './IndexSizeSummary';\nexport IndicesMaintenanceDropdown from './IndicesMaintenanceDropdown';\nexport IndicesOverview from './IndicesOverview';\nexport ShardMeter from './ShardMeter';\nexport ShardRouting from './ShardRouting';\nexport ShardRoutingOverview from './ShardRoutingOverview';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/index.jsx","import React from 'react';\nimport Reflux from 'reflux';\nimport { Row, Col } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst IndexerClusterStore = StoreProvider.getStore('IndexerCluster');\n\nimport { Spinner } from 'components/common';\nimport { DocumentationLink, SmallSupportLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\nimport { IndexerClusterHealthSummary } from 'components/indexers';\n\nconst IndexerClusterHealth = React.createClass({\n  mixins: [Reflux.connect(IndexerClusterStore)],\n\n  componentDidMount() {\n    IndexerClusterStore.update();\n  },\n\n  render() {\n    const health = this.state.health;\n\n    let content;\n    if (health) {\n      content = ;\n    } else {\n      content = ;\n    }\n\n    return (\n      \n        \n          

Elasticsearch cluster

\n\n \n The possible Elasticsearch cluster states and more related information is available in the{' '}\n .\n \n\n {content}\n \n
\n );\n },\n});\n\nexport default IndexerClusterHealth;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerClusterHealth.jsx","import React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { DocumentationLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\n\nconst IndexerClusterHealthSummary = React.createClass({\n propTypes: {\n health: React.PropTypes.object.isRequired,\n },\n _alertClassForHealth(health) {\n switch (health.status) {\n case 'green': return 'success';\n case 'yellow': return 'warning';\n case 'red': return 'danger';\n default: return 'success';\n }\n },\n _formatTextForHealth(health) {\n const text = 'Elasticsearch cluster is ' + health.status + '.';\n switch (health.status) {\n case 'green': return text;\n case 'yellow':\n case 'red': return {text};\n default: return text;\n }\n },\n _iconNameForHealth(health) {\n switch (health.status) {\n case 'green': return 'check-circle';\n case 'yellow': return 'warning';\n case 'red': return 'ambulance';\n default: return 'check-circle';\n }\n },\n render() {\n const { health } = this.props;\n return (\n \n  {this._formatTextForHealth(health)}{' '}\n Shards:{' '}\n {health.shards.active} active,{' '}\n {health.shards.initializing} initializing,{' '}\n {health.shards.relocating} relocating,{' '}\n {health.shards.unassigned} unassigned,{' '}\n \n \n );\n },\n});\n\nexport default IndexerClusterHealthSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerClusterHealthSummary.jsx","import React from 'react';\nimport {Timestamp} from 'components/common';\n\nconst IndexerFailure = React.createClass({\n propTypes: {\n failure: React.PropTypes.object.isRequired,\n },\n render() {\n const failure = this.props.failure;\n return (\n \n \n {failure.index}\n {failure.letter_id}\n {failure.message}\n \n );\n },\n});\n\nexport default IndexerFailure;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailure.jsx","import React from 'react';\nimport { Alert, Button, Col, Row } from 'react-bootstrap';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport numeral from 'numeral';\nimport moment from 'moment';\n\nimport StoreProvider from 'injection/StoreProvider';\nconst IndexerFailuresStore = StoreProvider.getStore('IndexerFailures');\n\nimport DocsHelper from 'util/DocsHelper';\nimport Routes from 'routing/Routes';\n\nimport { Spinner } from 'components/common';\nimport { SmallSupportLink, DocumentationLink } from 'components/support';\n\nconst IndexerFailuresComponent = React.createClass({\n getInitialState() {\n return {};\n },\n componentDidMount() {\n const since = moment().subtract(24, 'hours');\n\n IndexerFailuresStore.count(since).then((response) => {\n this.setState({total: response.count});\n });\n },\n _formatFailuresSummary() {\n return (\n \n {this._formatTextForFailureCount(this.state.total)}\n\n \n \n \n \n );\n },\n _formatTextForFailureCount(count) {\n if (count === 0) {\n return 'No failed indexing attempts in the last 24 hours.';\n }\n return There were {numeral(count).format('0,0')} failed indexing attempts in the last 24 hours.;\n },\n _iconForFailureCount(count) {\n if (count === 0) {\n return 'check-circle';\n }\n return 'ambulance';\n },\n render() {\n let content;\n if (this.state.total === undefined) {\n content = ;\n } else {\n content = this._formatFailuresSummary();\n }\n\n return (\n \n \n

Indexer failures

\n\n \n Every message that was not successfully indexed will be logged as an indexer failure. You can learn more about this feature in the{' '}\n .\n \n\n {content}\n \n
\n );\n },\n});\n\nexport default IndexerFailuresComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailuresComponent.jsx","import React from 'react';\nimport { Alert, Table } from 'react-bootstrap';\n\nimport { IndexerFailure } from 'components/indexers';\n\nconst IndexerFailuresList = React.createClass({\n propTypes: {\n failures: React.PropTypes.arrayOf(React.PropTypes.object).isRequired,\n },\n render() {\n if (this.props.failures.length === 0) {\n return (\n Hurray! There are not any indexer failures.\n );\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {this.props.failures.map((failure) => )}\n \n
TimestampIndexLetter IDError message
\n
\n );\n },\n});\n\nexport default IndexerFailuresList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indexers/IndexerFailuresList.jsx","exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".deflist{margin-top:10px}.deflist dt{float:left;clear:left}.deflist dd{margin-left:160px}.top-margin,hr.separator{margin-top:10px}hr.separator{margin-bottom:5px}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./src/components/configurations/ConfigurationStyles.css\n// module id = 348\n// module chunks = 7 27","var refs = 0;\nvar dispose;\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./ConfigurationStyles.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\texports.locals = content.locals;\n\t\tdispose = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\n\t}\n\treturn exports;\n};\nexports.unuse = exports.unref = function() {\n\tif(!(--refs)) {\n\t\tdispose();\n\t\tdispose = null;\n\t}\n};\nif(module.hot) {\n\tvar lastRefs = module.hot.data && module.hot.data.refs || 0;\n\tif(lastRefs) {\n\t\texports.ref();\n\t\tif(!content.locals) {\n\t\t\trefs = lastRefs;\n\t\t}\n\t}\n\tif(!content.locals) {\n\t\tmodule.hot.accept();\n\t}\n\tmodule.hot.dispose(function(data) {\n\t\tdata.refs = content.locals ? 0 : refs;\n\t\tif(dispose) {\n\t\t\tdispose();\n\t\t}\n\t});\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/style-loader/useable.js!./~/css-loader!./src/components/configurations/ConfigurationStyles.css\n// module id = 561\n// module chunks = 7 27","import React from 'react';\nimport { Alert, Button } from 'react-bootstrap';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst IndicesActions = ActionsProvider.getActions('Indices');\n\nimport { IndexRangeSummary } from 'components/indices';\n\nconst ClosedIndexDetails = React.createClass({\n propTypes: {\n indexName: React.PropTypes.string.isRequired,\n indexRange: React.PropTypes.object,\n },\n _onReopen() {\n IndicesActions.reopen(this.props.indexName);\n },\n _onDeleteIndex() {\n if (window.confirm(`Really delete index ${this.props.indexName}?`)) {\n IndicesActions.delete(this.props.indexName);\n }\n },\n render() {\n const { indexRange } = this.props;\n return (\n
\n \n This index is closed. Index information is not available{' '}\n at the moment, please reopen the index and try again.\n\n
\n\n {' '}\n \n
\n );\n },\n});\n\nexport default ClosedIndexDetails;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/ClosedIndexDetails.jsx","import React from 'react';\nimport { Button, Col, Row } from 'react-bootstrap';\n\nimport { Spinner } from 'components/common';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst IndicesActions = ActionsProvider.getActions('Indices');\nconst IndexRangesActions = ActionsProvider.getActions('IndexRanges');\nimport StoreProvider from 'injection/StoreProvider';\nStoreProvider.getStore('IndexRanges'); // To make IndexRangesActions work.\n\nimport { IndexRangeSummary, ShardMeter, ShardRoutingOverview } from 'components/indices';\n\nconst IndexDetails = React.createClass({\n propTypes: {\n index: React.PropTypes.object.isRequired,\n indexName: React.PropTypes.string.isRequired,\n indexRange: React.PropTypes.object.isRequired,\n isDeflector: React.PropTypes.bool.isRequired,\n },\n componentDidMount() {\n IndicesActions.subscribe(this.props.indexName);\n },\n componentWillUnmount() {\n IndicesActions.unsubscribe(this.props.indexName);\n },\n\n _formatActionButtons() {\n if (this.props.isDeflector) {\n return (\n \n {' '}\n \n \n );\n }\n\n return (\n \n {' '}\n {' '}\n \n \n );\n },\n _onRecalculateIndex() {\n if (window.confirm(`Really recalculate the index ranges for index ${this.props.indexName}?`)) {\n IndexRangesActions.recalculateIndex(this.props.indexName);\n }\n },\n _onCloseIndex() {\n if (window.confirm(`Really close index ${this.props.indexName}?`)) {\n IndicesActions.close(this.props.indexName);\n }\n },\n _onDeleteIndex() {\n if (window.confirm(`Really delete index ${this.props.indexName}?`)) {\n IndicesActions.delete(this.props.indexName);\n }\n },\n render() {\n if (!this.props.index || !this.props.index.all_shards) {\n return ;\n }\n const { index, indexRange, indexName } = this.props;\n return (\n
\n {' '}\n\n {index.all_shards.segments} segments,{' '}\n {index.all_shards.open_search_contexts} open search contexts,{' '}\n {index.all_shards.documents.deleted} deleted messages\n\n \n \n \n \n \n \n \n \n\n \n\n
\n\n {this._formatActionButtons()}\n
\n );\n },\n});\n\nexport default IndexDetails;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexDetails.jsx","import React from 'react';\n\nimport { Select } from 'components/common';\n\nconst IndexMaintenanceStrategiesConfiguration = React.createClass({\n propTypes: {\n title: React.PropTypes.string.isRequired,\n description: React.PropTypes.string.isRequired,\n selectPlaceholder: React.PropTypes.string.isRequired,\n pluginExports: React.PropTypes.array.isRequired,\n strategies: React.PropTypes.array.isRequired,\n activeConfig: React.PropTypes.object.isRequired,\n updateState: React.PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n activeStrategy: this.props.activeConfig.strategy,\n activeConfig: this.props.activeConfig.config,\n newStrategy: this.props.activeConfig.strategy,\n newConfig: this.props.activeConfig.config,\n };\n },\n\n _getDefaultStrategyConfig(selectedStrategy) {\n const result = this.props.strategies.filter((strategy) => strategy.type === selectedStrategy)[0];\n return result ? result.default_config : undefined;\n },\n\n _getStrategyJsonSchema(selectedStrategy) {\n const result = this.props.strategies.filter((strategy) => strategy.type === selectedStrategy)[0];\n return result ? result.json_schema : undefined;\n },\n\n _getStrategyConfig(selectedStrategy) {\n if (this.state.activeStrategy === selectedStrategy) {\n // If the newly selected strategy is the current active strategy, we use the active configuration.\n return this.state.activeConfig;\n } else {\n // If the newly selected strategy is not the current active strategy, we use the selected strategy's default config.\n return this._getDefaultStrategyConfig(selectedStrategy);\n }\n },\n\n _onSelect(newStrategy) {\n if (!newStrategy || newStrategy.length < 1) {\n this.setState({newStrategy: undefined});\n return;\n }\n\n const newConfig = this._getStrategyConfig(newStrategy);\n\n this.setState({newStrategy: newStrategy, newConfig: newConfig});\n this.props.updateState(newStrategy, newConfig);\n },\n\n _onConfigUpdate(newConfig) {\n this.setState({newConfig: newConfig});\n this.props.updateState(this.state.newStrategy, newConfig);\n },\n\n _availableSelectOptions() {\n return this.props.pluginExports.map((config) => {\n return {value: config.type, label: config.displayName};\n });\n },\n\n _getConfigurationComponent(selectedStrategy) {\n if (!selectedStrategy || selectedStrategy.length < 1) {\n return null;\n }\n\n const strategy = this.props.pluginExports.filter((exportedStrategy) => exportedStrategy.type === selectedStrategy)[0];\n\n if (!strategy) {\n return null;\n }\n\n const strategyConfig = this._getStrategyConfig(selectedStrategy);\n const element = React.createElement(strategy.configComponent, {\n config: strategyConfig,\n jsonSchema: this._getStrategyJsonSchema(selectedStrategy),\n updateConfig: this._onConfigUpdate,\n });\n\n return ({element});\n },\n\n _activeSelection() {\n return this.state.newStrategy;\n },\n\n render() {\n return (\n \n

{this.props.title}

\n
\n

{this.props.description}

\n
\n
\n Maximum number of indices to keep before closing the oldest ones}\n autoFocus\n required />\n \n
\n );\n },\n});\n\nexport default ClosingRetentionStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/ClosingRetentionStrategyConfiguration.jsx","import React from 'react';\n\nconst ClosingRetentionStrategySummary = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n },\n\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Close
\n
Max number of indices:
\n
{this.props.config.max_number_of_indices}
\n
\n
\n );\n },\n});\n\nexport default ClosingRetentionStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/ClosingRetentionStrategySummary.jsx","import React from 'react';\nimport { Input } from 'react-bootstrap';\n\nconst DeletionRetentionStrategyConfiguration = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n jsonSchema: React.PropTypes.object.isRequired,\n updateConfig: React.PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n max_number_of_indices: this.props.config.max_number_of_indices,\n };\n },\n\n _onInputUpdate(field) {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n },\n\n render() {\n return (\n
\n
\n Maximum number of indices to keep before deleting the oldest ones}\n autoFocus\n required />\n
\n
\n );\n },\n});\n\nexport default DeletionRetentionStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/DeletionRetentionStrategyConfiguration.jsx","import React from 'react';\n\nconst DeletionRetentionStrategySummary = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n },\n\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Delete
\n
Max number of indices:
\n
{this.props.config.max_number_of_indices}
\n
\n
\n );\n },\n});\n\nexport default DeletionRetentionStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/DeletionRetentionStrategySummary.jsx","import React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nconst NoopRetentionStrategyConfiguration = React.createClass({\n render() {\n return (\n \n This retention strategy is not configurable because it does not do anything.\n \n );\n },\n});\n\nexport default NoopRetentionStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/NoopRetentionStrategyConfiguration.jsx","import React from 'react';\n\nconst NoopRetentionStrategySummary = React.createClass({\n render() {\n return (\n
\n
\n
Index retention strategy:
\n
Do nothing
\n
\n
\n );\n },\n});\n\nexport default NoopRetentionStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/NoopRetentionStrategySummary.jsx","import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\nimport DeletionRetentionStrategyConfiguration from './DeletionRetentionStrategyConfiguration';\nimport DeletionRetentionStrategySummary from './DeletionRetentionStrategySummary';\nimport ClosingRetentionStrategyConfiguration from './ClosingRetentionStrategyConfiguration';\nimport ClosingRetentionStrategySummary from './ClosingRetentionStrategySummary';\nimport NoopRetentionStrategyConfiguration from './NoopRetentionStrategyConfiguration';\nimport NoopRetentionStrategySummary from './NoopRetentionStrategySummary';\n\nPluginStore.register(new PluginManifest({}, {\n indexRetentionConfig: [\n {\n type: 'org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy',\n displayName: 'Delete Index',\n configComponent: DeletionRetentionStrategyConfiguration,\n summaryComponent: DeletionRetentionStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.retention.strategies.ClosingRetentionStrategy',\n displayName: 'Close Index',\n configComponent: ClosingRetentionStrategyConfiguration,\n summaryComponent: ClosingRetentionStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.retention.strategies.NoopRetentionStrategy',\n displayName: 'Do nothing',\n configComponent: NoopRetentionStrategyConfiguration,\n summaryComponent: NoopRetentionStrategySummary,\n },\n ],\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/index.js","import React from 'react';\nimport { Input } from 'react-bootstrap';\n\nconst MessageCountRotationStrategyConfiguration = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n jsonSchema: React.PropTypes.object.isRequired,\n updateConfig: React.PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n max_docs_per_index: this.props.config.max_docs_per_index,\n };\n },\n\n _onInputUpdate(field) {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n },\n\n render() {\n return (\n
\n
\n \n
\n
\n );\n },\n});\n\nexport default MessageCountRotationStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/MessageCountRotationStrategyConfiguration.jsx","import React from 'react';\n\nconst MessageCountRotationStrategySummary = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n },\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Message Count
\n
Max docs per index:
\n
{this.props.config.max_docs_per_index}
\n
\n
\n );\n },\n});\n\nexport default MessageCountRotationStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/MessageCountRotationStrategySummary.jsx","import React from 'react';\nimport { Input } from 'react-bootstrap';\n\nimport NumberUtils from 'util/NumberUtils';\n\nconst SizeBasedRotationStrategyConfiguration = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n jsonSchema: React.PropTypes.object.isRequired,\n updateConfig: React.PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n max_size: this.props.config.max_size,\n };\n },\n\n _onInputUpdate(field) {\n return (e) => {\n const update = {};\n update[field] = e.target.value;\n\n this.setState(update);\n this.props.updateConfig(update);\n };\n },\n\n _formatSize() {\n return NumberUtils.formatBytes(this.state.max_size);\n },\n\n render() {\n return (\n
\n
\n \n
\n
\n );\n },\n});\n\nexport default SizeBasedRotationStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/SizeBasedRotationStrategyConfiguration.jsx","import React from 'react';\nimport NumberUtils from 'util/NumberUtils';\n\nconst SizeBasedRotationStrategySummary = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n },\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Index Size
\n
Max index size:
\n
{this.props.config.max_size} bytes ({NumberUtils.formatBytes(this.props.config.max_size)})
\n
\n
\n );\n },\n});\n\nexport default SizeBasedRotationStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/SizeBasedRotationStrategySummary.jsx","import React from 'react';\nimport { Input } from 'react-bootstrap';\nimport moment from 'moment';\n\nconst TimeBasedRotationStrategyConfiguration = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n jsonSchema: React.PropTypes.object.isRequired,\n updateConfig: React.PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n rotation_period: this.props.config.rotation_period,\n };\n },\n\n _onPeriodUpdate(field) {\n return () => {\n const update = {};\n let period = this.refs[field].getValue().toUpperCase();\n\n if (!period.startsWith('P')) {\n period = `P${period}`;\n }\n\n update[field] = period;\n\n this.setState(update);\n\n if (this._isValidPeriod(update[field])) {\n // Only propagate state if the config is valid.\n this.props.updateConfig(update);\n }\n };\n },\n\n _isValidPeriod(duration) {\n const check = duration || this.state.rotation_period;\n return moment.duration(check).asMilliseconds() >= 3600000;\n },\n\n _validationState() {\n if (this._isValidPeriod()) {\n return undefined;\n } else {\n return 'error';\n }\n },\n\n _formatDuration() {\n return this._isValidPeriod() ? moment.duration(this.state.rotation_period).humanize() : 'invalid (min 1 hour)';\n },\n\n render() {\n return (\n
\n \n
\n );\n },\n});\n\nexport default TimeBasedRotationStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/TimeBasedRotationStrategyConfiguration.jsx","import React from 'react';\n\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\n\nconst TimeBasedRotationStrategySummary = React.createClass({\n propTypes: {\n config: React.PropTypes.object.isRequired,\n },\n\n _humanizedPeriod() {\n const duration = moment.duration(this.props.config.rotation_period);\n\n return `${duration.format()}, ${duration.humanize()}`;\n },\n\n render() {\n return (\n
\n
\n
Index rotation strategy:
\n
Index Time
\n
Rotation period:
\n
{this.props.config.rotation_period} ({this._humanizedPeriod()})
\n
\n
\n );\n },\n});\n\nexport default TimeBasedRotationStrategySummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/TimeBasedRotationStrategySummary.jsx","import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\n\nimport MessageCountRotationStrategyConfiguration from './MessageCountRotationStrategyConfiguration';\nimport MessageCountRotationStrategySummary from './MessageCountRotationStrategySummary';\nimport SizeBasedRotationStrategyConfiguration from './SizeBasedRotationStrategyConfiguration';\nimport SizeBasedRotationStrategySummary from './SizeBasedRotationStrategySummary';\nimport TimeBasedRotationStrategyConfiguration from './TimeBasedRotationStrategyConfiguration';\nimport TimeBasedRotationStrategySummary from './TimeBasedRotationStrategySummary';\n\nPluginStore.register(new PluginManifest({}, {\n indexRotationConfig: [\n {\n type: 'org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy',\n displayName: 'Index Message Count',\n configComponent: MessageCountRotationStrategyConfiguration,\n summaryComponent: MessageCountRotationStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.rotation.strategies.SizeBasedRotationStrategy',\n displayName: 'Index Size',\n configComponent: SizeBasedRotationStrategyConfiguration,\n summaryComponent: SizeBasedRotationStrategySummary,\n },\n {\n type: 'org.graylog2.indexer.rotation.strategies.TimeBasedRotationStrategy',\n displayName: 'Index Time',\n configComponent: TimeBasedRotationStrategyConfiguration,\n summaryComponent: TimeBasedRotationStrategySummary,\n },\n ],\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/rotation/index.js","import React from 'react';\nimport Reflux from 'reflux';\nimport { Alert, Col, Row, Panel } from 'react-bootstrap';\nimport numeral from 'numeral';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst IndexerOverviewActions = ActionsProvider.getActions('IndexerOverview');\nconst IndicesActions = ActionsProvider.getActions('Indices');\n\nimport StoreProvider from 'injection/StoreProvider';\nconst IndexerOverviewStore = StoreProvider.getStore('IndexerOverview');\nconst IndicesStore = StoreProvider.getStore('Indices');\n\nimport DocsHelper from 'util/DocsHelper';\nimport { PageHeader, Spinner } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport { IndexerClusterHealthSummary } from 'components/indexers';\nimport { IndicesMaintenanceDropdown, IndicesOverview } from 'components/indices';\nimport IndicesConfiguration from 'components/indices/IndicesConfiguration';\n\nconst IndicesPage = React.createClass({\n mixins: [\n Reflux.connect(IndicesStore, 'indexDetails'),\n Reflux.connect(IndexerOverviewStore),\n ],\n componentDidMount() {\n IndicesActions.list();\n this.timerId = setInterval(() => {\n IndicesActions.multiple();\n IndexerOverviewActions.list();\n }, this.REFRESH_INTERVAL);\n },\n componentWillUnmount() {\n if (this.timerId) {\n clearInterval(this.timerId);\n }\n },\n REFRESH_INTERVAL: 2000,\n _totalIndexCount() {\n return Object.keys(this.state.indexerOverview.indices).length;\n },\n _renderElasticsearchUnavailableInformation() {\n return (\n \n \n
\n Indices overview unavailable}>\n

\n We could not get the indices overview information. This usually means there was a problem\n connecting to Elasticsearch, and you should ensure Elasticsearch is up and reachable from\n Graylog.\n

\n

\n Graylog will continue storing your messages in its journal, but you will not be able to search on them\n until Elasticsearch is reachable again.\n

\n
\n
\n \n
\n );\n },\n render() {\n const pageHeader = (\n \n \n This is an overview of all indices (message stores) Graylog is currently taking in account\n for searches and analysis.\n \n\n \n You can learn more about the index model in the{' '}\n \n \n\n \n \n );\n\n if (this.state.indexerOverviewError) {\n return (\n \n {pageHeader}\n {this._renderElasticsearchUnavailableInformation()}\n \n );\n }\n\n if (!this.state.indexerOverview || !this.state.indexDetails.closedIndices) {\n return ;\n }\n\n const deflectorInfo = this.state.indexerOverview.deflector;\n return (\n \n {pageHeader}\n\n \n \n \n \n \n\n \n \n \n  {this._totalIndexCount()} indices with a total of{' '}\n {numeral(this.state.indexerOverview.counts.events).format('0,0')} messages under management,\n current write-active index is {deflectorInfo.current_target}.\n \n \n \n \n\n \n \n );\n },\n});\n\nexport default IndicesPage;\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/IndicesPage.jsx"],"sourceRoot":""}