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

web-interface.assets.8.746b58959a350aa1ebcf.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.6
Show newest version
{"version":3,"sources":["webpack:///8.746b58959a350aa1ebcf.js","webpack:///./src/pages/IndicesPage.jsx","webpack:///./src/components/indices/index.jsx","webpack:///./src/components/indices/rotation/index.js","webpack:///./src/components/indices/retention/index.js","webpack:///./src/components/configurations/ConfigurationStyles.css?c8ca","webpack:///./src/components/configurations/ConfigurationStyles.css","webpack:///./src/components/indices/ClosedIndexDetails.jsx","webpack:///./src/components/indices/IndexDetails.jsx","webpack:///./src/components/indices/IndexRangeSummary.jsx","webpack:///./src/components/indices/IndexSetConfigurationForm.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesConfiguration.jsx","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/retention/DeletionRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/DeletionRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/ClosingRetentionStrategySummary.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategyConfiguration.jsx","webpack:///./src/components/indices/retention/NoopRetentionStrategySummary.jsx","webpack:///./src/components/indices/IndexSetDeletionForm.jsx","webpack:///./src/components/indices/IndexSetDetails.jsx","webpack:///./src/components/indices/IndexSetDetails.css?05b7","webpack:///./src/components/indices/IndexSetDetails.css","webpack:///./src/components/indices/IndexSetsComponent.jsx","webpack:///./src/components/indices/IndexSummary.jsx","webpack:///./src/components/indices/IndexSizeSummary.jsx","webpack:///./src/components/indices/IndicesMaintenanceDropdown.jsx","webpack:///./src/components/indices/IndicesOverview.jsx","webpack:///./src/components/indices/IndicesConfiguration.jsx","webpack:///./src/components/indices/IndexMaintenanceStrategiesSummary.jsx","webpack:///./src/components/indices/ShardMeter.jsx","webpack:///./src/components/indices/ShardRouting.jsx","webpack:///./src/components/indices/ShardRoutingOverview.jsx"],"names":["webpackJsonp","1453","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_react","_react2","_reactBootstrap","_reactRouterBootstrap","_Routes","_Routes2","_DocsHelper","_DocsHelper2","_common","_support","_indices","IndicesPage","createClass","displayName","render","pageHeader","createElement","PageHeader","title","DocumentationLink","page","PAGES","INDEX_MODEL","text","LinkContainer","to","SYSTEM","INDEX_SETS","CREATE","Button","bsStyle","bsSize","DocumentTitle","Row","className","Col","md","IndexSetsComponent","920","_ClosedIndexDetails","enumerable","get","_IndexDetails","_IndexRangeSummary","_IndexSetConfigurationForm","_IndexSetDeletionForm","_IndexSetDetails","_IndexSetsComponent","_IndexSummary","_IndexSizeSummary","_IndicesMaintenanceDropdown","_IndicesOverview","_IndicesConfiguration","_ShardMeter","_ShardRouting","_ShardRoutingOverview","935","_plugin","_MessageCountRotationStrategyConfiguration","_MessageCountRotationStrategyConfiguration2","_MessageCountRotationStrategySummary","_MessageCountRotationStrategySummary2","_SizeBasedRotationStrategyConfiguration","_SizeBasedRotationStrategyConfiguration2","_SizeBasedRotationStrategySummary","_SizeBasedRotationStrategySummary2","_TimeBasedRotationStrategyConfiguration","_TimeBasedRotationStrategyConfiguration2","_TimeBasedRotationStrategySummary","_TimeBasedRotationStrategySummary2","PluginStore","register","PluginManifest","indexRotationConfig","type","configComponent","summaryComponent","936","_DeletionRetentionStrategyConfiguration","_DeletionRetentionStrategyConfiguration2","_DeletionRetentionStrategySummary","_DeletionRetentionStrategySummary2","_ClosingRetentionStrategyConfiguration","_ClosingRetentionStrategyConfiguration2","_ClosingRetentionStrategySummary","_ClosingRetentionStrategySummary2","_NoopRetentionStrategyConfiguration","_NoopRetentionStrategyConfiguration2","_NoopRetentionStrategySummary","_NoopRetentionStrategySummary2","indexRetentionConfig","944","dispose","refs","content","i","locals","use","ref","unuse","unref","945","undefined","push","958","_propTypes","_propTypes2","_ActionsProvider","_ActionsProvider2","IndicesActions","getActions","ClosedIndexDetails","propTypes","indexName","string","isRequired","indexRange","object","_onReopen","reopen","this","props","_onDeleteIndex","window","confirm","delete","IndexRangeSummary","Alert","style","marginBottom","marginTop","onClick","959","_StoreProvider","_StoreProvider2","IndexRangesActions","getStore","IndexDetails","index","indexSetId","isDeflector","bool","componentDidMount","subscribe","componentWillUnmount","unsubscribe","_formatActionButtons","disabled","_onRecalculateIndex","_onCloseIndex","_this","recalculateIndex","then","list","_this2","close","_this3","all_shards","Spinner","_props","segments","open_search_contexts","documents","deleted","ShardMeter","shardMeter","primary_shards","ShardRoutingOverview","routing","960","calculated_at","Timestamp","dateTime","relative","took_ms","961","_bootstrap","_IndexMaintenanceStrategiesConfiguration","_IndexMaintenanceStrategiesConfiguration2","IndexSetConfigurationForm","indexSet","rotationStrategies","array","retentionStrategies","create","onUpdate","func","cancelLink","getInitialState","validationErrors","_updateConfig","fieldName","config","state","setState","_validateIndexPrefix","event","target","match","name","nextValidationErrors","assign","length","indexOf","toLowerCase","_onInputChange","_onDisableOptimizationClick","checked","_saveConfiguration","preventDefault","invalidFields","keys","document","getElementsByName","focus","_updateRotationConfigState","strategy","data","_updateRetentionConfigState","rotationConfig","activeConfig","rotation_strategy","rotation_strategy_class","description","selectPlaceholder","pluginExports","strategies","updateState","retentionConfig","retention_strategy","retention_strategy_class","readOnlyconfig","indexPrefixHelp","Input","id","label","onChange","index_prefix","help","required","index_analyzer","onSubmit","autoFocus","shards","replicas","min","index_optimization_max_num_segments","index_optimization_disabled","writable","marginRight","962","IndexMaintenanceStrategiesConfiguration","activeStrategy","newStrategy","newConfig","_getDefaultStrategyConfig","selectedStrategy","result","filter","default_config","_getStrategyJsonSchema","json_schema","_getStrategyConfig","_onSelect","_addConfigType","s","copy","_onConfigUpdate","_availableSelectOptions","map","_getConfigurationComponent","exportedStrategy","strategyConfig","element","jsonSchema","updateConfig","key","_activeSelection","Select","placeholder","options","matchProp","963","MessageCountRotationStrategyConfiguration","max_docs_per_index","_onInputUpdate","field","e","update","964","MessageCountRotationStrategySummary","965","_NumberUtils","_NumberUtils2","SizeBasedRotationStrategyConfiguration","max_size","_formatSize","formatBytes","addonAfter","966","SizeBasedRotationStrategySummary","967","_moment","_moment2","TimeBasedRotationStrategyConfiguration","rotation_period","_onPeriodUpdate","period","getValue","toUpperCase","startsWith","_isValidPeriod","duration","check","asMilliseconds","_validationState","_formatDuration","humanize","968","TimeBasedRotationStrategySummary","_humanizedPeriod","format","969","DeletionRetentionStrategyConfiguration","max_number_of_indices","970","DeletionRetentionStrategySummary","971","ClosingRetentionStrategyConfiguration","972","ClosingRetentionStrategySummary","973","NoopRetentionStrategyConfiguration","974","NoopRetentionStrategySummary","975","_BootstrapModalForm","_BootstrapModalForm2","_javascriptNaturalSort","_javascriptNaturalSort2","_CombinedProvider","_CombinedProvider2","_CombinedProvider$get","StreamsStore","IndexSetDeletionForm","onDelete","assignedStreams","deleteIndices","_onModalOpen","load","streams","forEach","stream","index_set_id","_onRemoveClick","open","_isLoading","_isDeletable","_modalContent","sort","s1","s2","_onDelete","onModalOpen","onSubmitForm","submitButtonText","submitButtonDisabled","976","IndexSetDetails","IndicesConfiguration","977","978","979","_reflux","_reflux2","_StringUtils","_StringUtils2","IndexSetsStore","IndexSetsActions","mixins","connect","loadData","PAGE_SIZE","pageNo","limit","currentPageNo","currentPageSize","listPaginated","stats","_onChangePaginatedList","size","_onSetDefault","setDefault","_deleteIndexSet","_formatIndexSet","actions","CONFIGURATION","DropdownButton","pullRight","MenuItem","onSelect","divider","indexSetTitle","SHOW","isDefault","Label","isReadOnly","endsWith","statsString","indexSetStats","_formatStatsString","EntityListItem","titleSuffix","contentRow","formatNumber","indices","pluralize","indexSets","_this4","globalIndexSetStats","PaginatedList","pageSize","totalItems","indexSetsCount","showPageSizeSelect","EntityList","bsNoItemsStyle","noItemsText","items","980","_DateTime","_DateTime2","IndexSummary","children","node","showDetails","_formatLabels","labels","is_deflector","is_closed","is_reopened","_formatIndexRange","toISOString","sizes","count","events","begin","end","_formatShowDetailsLink","_toggleShowDetails","IndexSizeSummary","href","981","_numeral","_numeral2","bytes","982","DeflectorActions","IndicesMaintenanceDropdown","_onRecalculateIndexRange","recalculate","_onCycleDeflector","cycle","cycleButton","eventKey","ButtonGroup","983","IndicesOverview","closedIndices","deflector","indexDetails","_formatIndex","indexSummary","range","_formatClosedIndex","index1","index2","984","_IndexMaintenanceStrategiesSummary","_IndexMaintenanceStrategiesSummary2","985","_Spinner","_Spinner2","IndexMaintenanceStrategiesSummary","986","_formatMeter","meter","total","time_seconds","sm","display","flush","merge","search_query","search_fetch","refresh","987","_classnames","_classnames2","ShardRouting","route","tooltip","Tooltip","node_hostname","node_name","shard-primary","primary","OverlayTrigger","placement","overlay","988","shard1","shard2","node_id","clear"],"mappings":"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","file":"8.746b58959a350aa1ebcf.js","sourcesContent":["webpackJsonp([8],{\n\n/***/ 1453:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _reactRouterBootstrap = __webpack_require__(915);\n\nvar _Routes = __webpack_require__(76);\n\nvar _Routes2 = _interopRequireDefault(_Routes);\n\nvar _DocsHelper = __webpack_require__(918);\n\nvar _DocsHelper2 = _interopRequireDefault(_DocsHelper);\n\nvar _common = __webpack_require__(46);\n\nvar _support = __webpack_require__(926);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndicesPage = _react2.default.createClass({\n  displayName: 'IndicesPage',\n  render: function render() {\n    var pageHeader = _react2.default.createElement(\n      _common.PageHeader,\n      { title: 'Indices & Index Sets' },\n      _react2.default.createElement(\n        'span',\n        null,\n        'A Graylog stream write messages to an index set, which is a configuration for retention, sharding, and replication of the stored data. By configuring index sets, you could, for example, have different retention times for certain streams.'\n      ),\n      _react2.default.createElement(\n        'span',\n        null,\n        'You can learn more about the index model in the',\n        ' ',\n        _react2.default.createElement(_support.DocumentationLink, { page: _DocsHelper2.default.PAGES.INDEX_MODEL, text: 'documentation' })\n      ),\n      _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement(\n          _reactRouterBootstrap.LinkContainer,\n          { to: _Routes2.default.SYSTEM.INDEX_SETS.CREATE },\n          _react2.default.createElement(\n            _reactBootstrap.Button,\n            { bsStyle: 'success', bsSize: 'lg' },\n            'Create index set'\n          )\n        )\n      )\n    );\n\n    return _react2.default.createElement(\n      _common.DocumentTitle,\n      { title: 'Indices and Index Sets' },\n      _react2.default.createElement(\n        'span',\n        null,\n        pageHeader,\n        _react2.default.createElement(\n          _reactBootstrap.Row,\n          { className: 'content' },\n          _react2.default.createElement(\n            _reactBootstrap.Col,\n            { md: 12 },\n            _react2.default.createElement(_indices.IndexSetsComponent, null)\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = IndicesPage;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 920:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _ClosedIndexDetails = __webpack_require__(958);\n\nObject.defineProperty(exports, 'ClosedIndexDetails', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_ClosedIndexDetails).default;\n  }\n});\n\nvar _IndexDetails = __webpack_require__(959);\n\nObject.defineProperty(exports, 'IndexDetails', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexDetails).default;\n  }\n});\n\nvar _IndexRangeSummary = __webpack_require__(960);\n\nObject.defineProperty(exports, 'IndexRangeSummary', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexRangeSummary).default;\n  }\n});\n\nvar _IndexSetConfigurationForm = __webpack_require__(961);\n\nObject.defineProperty(exports, 'IndexSetConfigurationForm', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSetConfigurationForm).default;\n  }\n});\n\nvar _IndexSetDeletionForm = __webpack_require__(975);\n\nObject.defineProperty(exports, 'IndexSetDeletionForm', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSetDeletionForm).default;\n  }\n});\n\nvar _IndexSetDetails = __webpack_require__(976);\n\nObject.defineProperty(exports, 'IndexSetDetails', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSetDetails).default;\n  }\n});\n\nvar _IndexSetsComponent = __webpack_require__(979);\n\nObject.defineProperty(exports, 'IndexSetsComponent', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSetsComponent).default;\n  }\n});\n\nvar _IndexSummary = __webpack_require__(980);\n\nObject.defineProperty(exports, 'IndexSummary', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSummary).default;\n  }\n});\n\nvar _IndexSizeSummary = __webpack_require__(981);\n\nObject.defineProperty(exports, 'IndexSizeSummary', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndexSizeSummary).default;\n  }\n});\n\nvar _IndicesMaintenanceDropdown = __webpack_require__(982);\n\nObject.defineProperty(exports, 'IndicesMaintenanceDropdown', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndicesMaintenanceDropdown).default;\n  }\n});\n\nvar _IndicesOverview = __webpack_require__(983);\n\nObject.defineProperty(exports, 'IndicesOverview', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndicesOverview).default;\n  }\n});\n\nvar _IndicesConfiguration = __webpack_require__(984);\n\nObject.defineProperty(exports, 'IndicesConfiguration', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_IndicesConfiguration).default;\n  }\n});\n\nvar _ShardMeter = __webpack_require__(986);\n\nObject.defineProperty(exports, 'ShardMeter', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_ShardMeter).default;\n  }\n});\n\nvar _ShardRouting = __webpack_require__(987);\n\nObject.defineProperty(exports, 'ShardRouting', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_ShardRouting).default;\n  }\n});\n\nvar _ShardRoutingOverview = __webpack_require__(988);\n\nObject.defineProperty(exports, 'ShardRoutingOverview', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_ShardRoutingOverview).default;\n  }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ 935:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _plugin = __webpack_require__(263);\n\nvar _MessageCountRotationStrategyConfiguration = __webpack_require__(963);\n\nvar _MessageCountRotationStrategyConfiguration2 = _interopRequireDefault(_MessageCountRotationStrategyConfiguration);\n\nvar _MessageCountRotationStrategySummary = __webpack_require__(964);\n\nvar _MessageCountRotationStrategySummary2 = _interopRequireDefault(_MessageCountRotationStrategySummary);\n\nvar _SizeBasedRotationStrategyConfiguration = __webpack_require__(965);\n\nvar _SizeBasedRotationStrategyConfiguration2 = _interopRequireDefault(_SizeBasedRotationStrategyConfiguration);\n\nvar _SizeBasedRotationStrategySummary = __webpack_require__(966);\n\nvar _SizeBasedRotationStrategySummary2 = _interopRequireDefault(_SizeBasedRotationStrategySummary);\n\nvar _TimeBasedRotationStrategyConfiguration = __webpack_require__(967);\n\nvar _TimeBasedRotationStrategyConfiguration2 = _interopRequireDefault(_TimeBasedRotationStrategyConfiguration);\n\nvar _TimeBasedRotationStrategySummary = __webpack_require__(968);\n\nvar _TimeBasedRotationStrategySummary2 = _interopRequireDefault(_TimeBasedRotationStrategySummary);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_plugin.PluginStore.register(new _plugin.PluginManifest({}, {\n  indexRotationConfig: [{\n    type: 'org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy',\n    displayName: 'Index Message Count',\n    configComponent: _MessageCountRotationStrategyConfiguration2.default,\n    summaryComponent: _MessageCountRotationStrategySummary2.default\n  }, {\n    type: 'org.graylog2.indexer.rotation.strategies.SizeBasedRotationStrategy',\n    displayName: 'Index Size',\n    configComponent: _SizeBasedRotationStrategyConfiguration2.default,\n    summaryComponent: _SizeBasedRotationStrategySummary2.default\n  }, {\n    type: 'org.graylog2.indexer.rotation.strategies.TimeBasedRotationStrategy',\n    displayName: 'Index Time',\n    configComponent: _TimeBasedRotationStrategyConfiguration2.default,\n    summaryComponent: _TimeBasedRotationStrategySummary2.default\n  }]\n}));\n\n/***/ }),\n\n/***/ 936:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _plugin = __webpack_require__(263);\n\nvar _DeletionRetentionStrategyConfiguration = __webpack_require__(969);\n\nvar _DeletionRetentionStrategyConfiguration2 = _interopRequireDefault(_DeletionRetentionStrategyConfiguration);\n\nvar _DeletionRetentionStrategySummary = __webpack_require__(970);\n\nvar _DeletionRetentionStrategySummary2 = _interopRequireDefault(_DeletionRetentionStrategySummary);\n\nvar _ClosingRetentionStrategyConfiguration = __webpack_require__(971);\n\nvar _ClosingRetentionStrategyConfiguration2 = _interopRequireDefault(_ClosingRetentionStrategyConfiguration);\n\nvar _ClosingRetentionStrategySummary = __webpack_require__(972);\n\nvar _ClosingRetentionStrategySummary2 = _interopRequireDefault(_ClosingRetentionStrategySummary);\n\nvar _NoopRetentionStrategyConfiguration = __webpack_require__(973);\n\nvar _NoopRetentionStrategyConfiguration2 = _interopRequireDefault(_NoopRetentionStrategyConfiguration);\n\nvar _NoopRetentionStrategySummary = __webpack_require__(974);\n\nvar _NoopRetentionStrategySummary2 = _interopRequireDefault(_NoopRetentionStrategySummary);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_plugin.PluginStore.register(new _plugin.PluginManifest({}, {\n  indexRetentionConfig: [{\n    type: 'org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy',\n    displayName: 'Delete Index',\n    configComponent: _DeletionRetentionStrategyConfiguration2.default,\n    summaryComponent: _DeletionRetentionStrategySummary2.default\n  }, {\n    type: 'org.graylog2.indexer.retention.strategies.ClosingRetentionStrategy',\n    displayName: 'Close Index',\n    configComponent: _ClosingRetentionStrategyConfiguration2.default,\n    summaryComponent: _ClosingRetentionStrategySummary2.default\n  }, {\n    type: 'org.graylog2.indexer.retention.strategies.NoopRetentionStrategy',\n    displayName: 'Do nothing',\n    configComponent: _NoopRetentionStrategyConfiguration2.default,\n    summaryComponent: _NoopRetentionStrategySummary2.default\n  }]\n}));\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar refs = 0;\nvar dispose;\nvar content = __webpack_require__(945);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) exports.locals = content.locals;\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = __webpack_require__(21)(content, {});\n\t}\n\treturn exports;\n};\nexports.unuse = exports.unref = function() {\n       if(refs > 0 && !(--refs)) {\n\t\tdispose();\n\t\tdispose = null;\n\t}\n};\nif(false) {\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/***/ 945:\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(20)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".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/***/ 958:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndicesActions = _ActionsProvider2.default.getActions('Indices');\n\nvar ClosedIndexDetails = _react2.default.createClass({\n  displayName: 'ClosedIndexDetails',\n\n  propTypes: {\n    indexName: _propTypes2.default.string.isRequired,\n    indexRange: _propTypes2.default.object\n  },\n  _onReopen: function _onReopen() {\n    IndicesActions.reopen(this.props.indexName);\n  },\n  _onDeleteIndex: function _onDeleteIndex() {\n    if (window.confirm('Really delete index ' + this.props.indexName + '?')) {\n      IndicesActions.delete(this.props.indexName);\n    }\n  },\n  render: function render() {\n    var indexRange = this.props.indexRange;\n\n    return _react2.default.createElement(\n      'div',\n      { className: 'index-info' },\n      _react2.default.createElement(_indices.IndexRangeSummary, { indexRange: indexRange }),\n      _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'info' },\n        _react2.default.createElement('i', { className: 'fa fa-info-circle' }),\n        ' This index is closed. Index information is not available',\n        ' ',\n        'at the moment, please reopen the index and try again.'\n      ),\n      _react2.default.createElement('hr', { style: { marginBottom: '5', marginTop: '10' } }),\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onReopen },\n        'Reopen index'\n      ),\n      ' ',\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'danger', bsSize: 'xs', onClick: this._onDeleteIndex },\n        'Delete index'\n      )\n    );\n  }\n});\n\nexports.default = ClosedIndexDetails;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 959:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndicesActions = _ActionsProvider2.default.getActions('Indices');\nvar IndexRangesActions = _ActionsProvider2.default.getActions('IndexRanges');\n\n_StoreProvider2.default.getStore('IndexRanges'); // To make IndexRangesActions work.\n\nvar IndexDetails = _react2.default.createClass({\n  displayName: 'IndexDetails',\n\n  propTypes: {\n    index: _propTypes2.default.object.isRequired,\n    indexName: _propTypes2.default.string.isRequired,\n    indexRange: _propTypes2.default.object.isRequired,\n    indexSetId: _propTypes2.default.string.isRequired,\n    isDeflector: _propTypes2.default.bool.isRequired\n  },\n  componentDidMount: function componentDidMount() {\n    IndicesActions.subscribe(this.props.indexName);\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    IndicesActions.unsubscribe(this.props.indexName);\n  },\n  _formatActionButtons: function _formatActionButtons() {\n    if (this.props.isDeflector) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'warning', bsSize: 'xs', disabled: true },\n          'Active write index cannot be closed'\n        ),\n        ' ',\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'danger', bsSize: 'xs', disabled: true },\n          'Active write index cannot be deleted'\n        )\n      );\n    }\n\n    return _react2.default.createElement(\n      'span',\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onRecalculateIndex },\n        'Recalculate index ranges'\n      ),\n      ' ',\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'warning', bsSize: 'xs', onClick: this._onCloseIndex },\n        'Close index'\n      ),\n      ' ',\n      _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'danger', bsSize: 'xs', onClick: this._onDeleteIndex },\n        'Delete index'\n      )\n    );\n  },\n  _onRecalculateIndex: function _onRecalculateIndex() {\n    var _this = this;\n\n    if (window.confirm('Really recalculate the index ranges for index ' + this.props.indexName + '?')) {\n      IndexRangesActions.recalculateIndex(this.props.indexName).then(function () {\n        IndicesActions.list(_this.props.indexSetId);\n      });\n    }\n  },\n  _onCloseIndex: function _onCloseIndex() {\n    var _this2 = this;\n\n    if (window.confirm('Really close index ' + this.props.indexName + '?')) {\n      IndicesActions.close(this.props.indexName).then(function () {\n        IndicesActions.list(_this2.props.indexSetId);\n      });\n    }\n  },\n  _onDeleteIndex: function _onDeleteIndex() {\n    var _this3 = this;\n\n    if (window.confirm('Really delete index ' + this.props.indexName + '?')) {\n      IndicesActions.delete(this.props.indexName).then(function () {\n        IndicesActions.list(_this3.props.indexSetId);\n      });\n    }\n  },\n  render: function render() {\n    if (!this.props.index || !this.props.index.all_shards) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n    var _props = this.props,\n        index = _props.index,\n        indexRange = _props.indexRange,\n        indexName = _props.indexName;\n\n    return _react2.default.createElement(\n      'div',\n      { className: 'index-info' },\n      _react2.default.createElement(_indices.IndexRangeSummary, { indexRange: indexRange }),\n      ' ',\n      index.all_shards.segments,\n      ' segments,',\n      ' ',\n      index.all_shards.open_search_contexts,\n      ' open search contexts,',\n      ' ',\n      index.all_shards.documents.deleted,\n      ' deleted messages',\n      _react2.default.createElement(\n        _reactBootstrap.Row,\n        { style: { marginBottom: '10' } },\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 4, className: 'shard-meters' },\n          _react2.default.createElement(_indices.ShardMeter, { title: 'Primary shard operations', shardMeter: index.primary_shards })\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 4, className: 'shard-meters' },\n          _react2.default.createElement(_indices.ShardMeter, { title: 'Total shard operations', shardMeter: index.all_shards })\n        )\n      ),\n      _react2.default.createElement(_indices.ShardRoutingOverview, { routing: index.routing, indexName: indexName }),\n      _react2.default.createElement('hr', { style: { marginBottom: '5', marginTop: '10' } }),\n      this._formatActionButtons()\n    );\n  }\n});\n\nexports.default = IndexDetails;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 960:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexRangeSummary = _react2.default.createClass({\n  displayName: 'IndexRangeSummary',\n\n  propTypes: {\n    indexRange: _propTypes2.default.object\n  },\n  render: function render() {\n    var indexRange = this.props.indexRange;\n\n    if (!indexRange) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement(\n          'i',\n          null,\n          'No index range available.'\n        )\n      );\n    }\n    return _react2.default.createElement(\n      'span',\n      null,\n      'Range re-calculated',\n      ' ',\n      _react2.default.createElement(\n        'span',\n        { title: indexRange.calculated_at },\n        _react2.default.createElement(_common.Timestamp, { dateTime: indexRange.calculated_at, relative: true })\n      ),\n      ' ',\n      'in ',\n      indexRange.took_ms,\n      'ms.'\n    );\n  }\n});\n\nexports.default = IndexRangeSummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 961:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouterBootstrap = __webpack_require__(915);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _common = __webpack_require__(46);\n\nvar _plugin = __webpack_require__(263);\n\nvar _IndexMaintenanceStrategiesConfiguration = __webpack_require__(962);\n\nvar _IndexMaintenanceStrategiesConfiguration2 = _interopRequireDefault(_IndexMaintenanceStrategiesConfiguration);\n\n__webpack_require__(935);\n\n__webpack_require__(936);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Load rotation plugin UI plugins from core.\n\nvar IndexSetConfigurationForm = _react2.default.createClass({\n  displayName: 'IndexSetConfigurationForm',\n\n  propTypes: {\n    indexSet: _propTypes2.default.object.isRequired,\n    rotationStrategies: _propTypes2.default.array.isRequired,\n    retentionStrategies: _propTypes2.default.array.isRequired,\n    create: _propTypes2.default.bool,\n    onUpdate: _propTypes2.default.func.isRequired,\n    cancelLink: _propTypes2.default.string.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      indexSet: this.props.indexSet,\n      validationErrors: {}\n    };\n  },\n  _updateConfig: function _updateConfig(fieldName, value) {\n    var config = this.state.indexSet;\n    config[fieldName] = value;\n    this.setState({ indexSet: config });\n  },\n  _validateIndexPrefix: function _validateIndexPrefix(event) {\n    var value = event.target.value;\n\n    if (value.match(/^[a-z0-9][a-z0-9_\\-+]*$/)) {\n      if (this.state.validationErrors[event.target.name]) {\n        var nextValidationErrors = Object.assign({}, this.state.validationErrors);\n        delete nextValidationErrors[event.target.name];\n        this.setState({ validationErrors: nextValidationErrors });\n      }\n    } else {\n      var _nextValidationErrors = Object.assign({}, this.state.validationErrors);\n      if (value.length === 0) {\n        _nextValidationErrors[event.target.name] = 'Invalid index prefix: cannot be empty';\n      } else if (value.indexOf('_') === 0 || value.indexOf('-') === 0 || value.indexOf('+') === 0) {\n        _nextValidationErrors[event.target.name] = 'Invalid index prefix: must start with a letter or number';\n      } else if (value.toLowerCase() !== value) {\n        _nextValidationErrors[event.target.name] = 'Invalid index prefix: must be lower case';\n      } else {\n        _nextValidationErrors[event.target.name] = 'Invalid index prefix: must only contain letters, numbers, \\'_\\', \\'-\\' and \\'+\\'';\n      }\n      this.setState({ validationErrors: _nextValidationErrors });\n    }\n\n    this._onInputChange(event);\n  },\n  _onInputChange: function _onInputChange(event) {\n    this._updateConfig(event.target.name, event.target.value);\n  },\n  _onDisableOptimizationClick: function _onDisableOptimizationClick(event) {\n    this._updateConfig(event.target.name, event.target.checked);\n  },\n  _saveConfiguration: function _saveConfiguration(event) {\n    event.preventDefault();\n\n    var invalidFields = Object.keys(this.state.validationErrors);\n    if (invalidFields.length !== 0) {\n      document.getElementsByName(invalidFields[0])[0].focus();\n      return;\n    }\n\n    this.props.onUpdate(this.state.indexSet);\n  },\n  _updateRotationConfigState: function _updateRotationConfigState(strategy, data) {\n    this._updateConfig('rotation_strategy_class', strategy);\n    this._updateConfig('rotation_strategy', data);\n  },\n  _updateRetentionConfigState: function _updateRetentionConfigState(strategy, data) {\n    this._updateConfig('retention_strategy_class', strategy);\n    this._updateConfig('retention_strategy', data);\n  },\n  render: function render() {\n    var indexSet = this.props.indexSet;\n    var validationErrors = this.state.validationErrors;\n\n    var rotationConfig = void 0;\n    if (this.props.rotationStrategies) {\n      // The component expects a different structure - legacy\n      var activeConfig = {\n        config: this.props.indexSet.rotation_strategy,\n        strategy: this.props.indexSet.rotation_strategy_class\n      };\n      rotationConfig = _react2.default.createElement(_IndexMaintenanceStrategiesConfiguration2.default, { title: 'Index Rotation Configuration',\n        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        selectPlaceholder: 'Select rotation strategy',\n        pluginExports: _plugin.PluginStore.exports('indexRotationConfig'),\n        strategies: this.props.rotationStrategies,\n        activeConfig: activeConfig,\n        updateState: this._updateRotationConfigState });\n    } else {\n      rotationConfig = _react2.default.createElement(_common.Spinner, null);\n    }\n\n    var retentionConfig = void 0;\n    if (this.props.retentionStrategies) {\n      // The component expects a different structure - legacy\n      var _activeConfig = {\n        config: this.props.indexSet.retention_strategy,\n        strategy: this.props.indexSet.retention_strategy_class\n      };\n      retentionConfig = _react2.default.createElement(_IndexMaintenanceStrategiesConfiguration2.default, { title: 'Index Retention Configuration',\n        description: 'Graylog uses a retention strategy to clean up old indices.',\n        selectPlaceholder: 'Select retention strategy',\n        pluginExports: _plugin.PluginStore.exports('indexRetentionConfig'),\n        strategies: this.props.retentionStrategies,\n        activeConfig: _activeConfig,\n        updateState: this._updateRetentionConfigState });\n    } else {\n      retentionConfig = _react2.default.createElement(_common.Spinner, null);\n    }\n\n    var readOnlyconfig = void 0;\n    if (this.props.create) {\n      var indexPrefixHelp = _react2.default.createElement(\n        'span',\n        null,\n        'A ',\n        _react2.default.createElement(\n          'strong',\n          null,\n          'unique'\n        ),\n        ' prefix used in Elasticsearch indices belonging to this index set. The prefix must start with a letter or number, and can only contain letters, numbers, \\'_\\', \\'-\\' and \\'+\\'.'\n      );\n      readOnlyconfig = _react2.default.createElement(\n        'span',\n        null,\n        _react2.default.createElement(_bootstrap.Input, { type: 'text',\n          id: 'index-set-index-prefix',\n          label: 'Index prefix',\n          name: 'index_prefix',\n          onChange: this._validateIndexPrefix,\n          value: indexSet.index_prefix,\n          help: validationErrors.index_prefix ? validationErrors.index_prefix : indexPrefixHelp,\n          bsStyle: validationErrors.index_prefix ? 'error' : null,\n          required: true }),\n        _react2.default.createElement(_bootstrap.Input, { type: 'text',\n          id: 'index-set-index-analyzer',\n          label: 'Analyzer',\n          name: 'index_analyzer',\n          onChange: this._onInputChange,\n          value: indexSet.index_analyzer,\n          help: 'Elasticsearch analyzer for this index set.',\n          required: true })\n      );\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 8 },\n        _react2.default.createElement(\n          'form',\n          { className: 'form', onSubmit: this._saveConfiguration },\n          _react2.default.createElement(\n            _reactBootstrap.Row,\n            null,\n            _react2.default.createElement(\n              _reactBootstrap.Col,\n              { md: 12 },\n              _react2.default.createElement(_bootstrap.Input, { type: 'text',\n                id: 'index-set-title',\n                label: 'Title',\n                name: 'title',\n                onChange: this._onInputChange,\n                value: indexSet.title,\n                help: 'Descriptive name of the index set.',\n                autoFocus: true,\n                required: true }),\n              _react2.default.createElement(_bootstrap.Input, { type: 'text',\n                id: 'index-set-description',\n                label: 'Description',\n                name: 'description',\n                onChange: this._onInputChange,\n                value: indexSet.description,\n                help: 'Add a description of this index set.',\n                required: true }),\n              readOnlyconfig,\n              _react2.default.createElement(_bootstrap.Input, { type: 'number',\n                id: 'index-set-shards',\n                label: 'Index shards',\n                name: 'shards',\n                onChange: this._onInputChange,\n                value: indexSet.shards,\n                help: 'Number of Elasticsearch shards used per index in this index set.',\n                required: true }),\n              _react2.default.createElement(_bootstrap.Input, { type: 'number',\n                id: 'index-set-replicas',\n                label: 'Index replicas',\n                name: 'replicas',\n                onChange: this._onInputChange,\n                value: indexSet.replicas,\n                help: 'Number of Elasticsearch replicas used per index in this index set.',\n                required: true }),\n              _react2.default.createElement(_bootstrap.Input, { type: 'number',\n                id: 'index-set-max-num-segments',\n                label: 'Max. number of segments',\n                name: 'index_optimization_max_num_segments',\n                min: '1',\n                onChange: this._onInputChange,\n                value: indexSet.index_optimization_max_num_segments,\n                help: 'Maximum number of segments per Elasticsearch index after optimization (force merge).',\n                required: true }),\n              _react2.default.createElement(_bootstrap.Input, { type: 'checkbox',\n                id: 'index-set-disable-optimization',\n                label: 'Disable index optimization after rotation',\n                name: 'index_optimization_disabled',\n                onChange: this._onDisableOptimizationClick,\n                checked: indexSet.index_optimization_disabled,\n                help: 'Disable Elasticsearch index optimization (force merge) after rotation.' })\n            )\n          ),\n          _react2.default.createElement(\n            _reactBootstrap.Row,\n            null,\n            _react2.default.createElement(\n              _reactBootstrap.Col,\n              { md: 12 },\n              indexSet.writable && rotationConfig\n            )\n          ),\n          _react2.default.createElement(\n            _reactBootstrap.Row,\n            null,\n            _react2.default.createElement(\n              _reactBootstrap.Col,\n              { md: 12 },\n              indexSet.writable && retentionConfig\n            )\n          ),\n          _react2.default.createElement(\n            _reactBootstrap.Row,\n            null,\n            _react2.default.createElement(\n              _reactBootstrap.Col,\n              { md: 12 },\n              _react2.default.createElement(\n                _reactBootstrap.Button,\n                { type: 'submit', bsStyle: 'primary', style: { marginRight: 10 } },\n                'Save'\n              ),\n              _react2.default.createElement(\n                _reactRouterBootstrap.LinkContainer,\n                { to: this.props.cancelLink },\n                _react2.default.createElement(\n                  _reactBootstrap.Button,\n                  { bsStyle: 'default' },\n                  'Cancel'\n                )\n              )\n            )\n          )\n        )\n      )\n    );\n  }\n}); // Load rotation plugin UI plugins from core.\nexports.default = IndexSetConfigurationForm;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 962:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexMaintenanceStrategiesConfiguration = _react2.default.createClass({\n  displayName: 'IndexMaintenanceStrategiesConfiguration',\n\n  propTypes: {\n    title: _propTypes2.default.string.isRequired,\n    description: _propTypes2.default.string.isRequired,\n    selectPlaceholder: _propTypes2.default.string.isRequired,\n    pluginExports: _propTypes2.default.array.isRequired,\n    strategies: _propTypes2.default.array.isRequired,\n    activeConfig: _propTypes2.default.object.isRequired,\n    updateState: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function 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  _getDefaultStrategyConfig: function _getDefaultStrategyConfig(selectedStrategy) {\n    var result = this.props.strategies.filter(function (strategy) {\n      return strategy.type === selectedStrategy;\n    })[0];\n    return result ? result.default_config : undefined;\n  },\n  _getStrategyJsonSchema: function _getStrategyJsonSchema(selectedStrategy) {\n    var result = this.props.strategies.filter(function (strategy) {\n      return strategy.type === selectedStrategy;\n    })[0];\n    return result ? result.json_schema : undefined;\n  },\n  _getStrategyConfig: function _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    }\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  _onSelect: function _onSelect(newStrategy) {\n    if (!newStrategy || newStrategy.length < 1) {\n      this.setState({ newStrategy: undefined });\n      return;\n    }\n\n    var newConfig = this._getStrategyConfig(newStrategy);\n\n    this.setState({ newStrategy: newStrategy, newConfig: newConfig });\n    this.props.updateState(newStrategy, newConfig);\n  },\n  _addConfigType: function _addConfigType(strategy, data) {\n    // The config object needs to have the \"type\" field set to the \"default_config.type\" to make the REST call work.\n    var result = this.props.strategies.filter(function (s) {\n      return s.type === strategy;\n    })[0];\n    var copy = data;\n\n    if (result) {\n      copy.type = result.default_config.type;\n    }\n\n    return copy;\n  },\n  _onConfigUpdate: function _onConfigUpdate(newConfig) {\n    var config = this._addConfigType(this.state.newStrategy, newConfig);\n\n    this.setState({ newConfig: config });\n    this.props.updateState(this.state.newStrategy, config);\n  },\n  _availableSelectOptions: function _availableSelectOptions() {\n    return this.props.pluginExports.map(function (config) {\n      return { value: config.type, label: config.displayName };\n    });\n  },\n  _getConfigurationComponent: function _getConfigurationComponent(selectedStrategy) {\n    if (!selectedStrategy || selectedStrategy.length < 1) {\n      return null;\n    }\n\n    var strategy = this.props.pluginExports.filter(function (exportedStrategy) {\n      return exportedStrategy.type === selectedStrategy;\n    })[0];\n\n    if (!strategy) {\n      return null;\n    }\n\n    var strategyConfig = this._getStrategyConfig(selectedStrategy);\n    var element = _react2.default.createElement(strategy.configComponent, {\n      config: strategyConfig,\n      jsonSchema: this._getStrategyJsonSchema(selectedStrategy),\n      updateConfig: this._onConfigUpdate\n    });\n\n    return _react2.default.createElement(\n      'span',\n      { key: strategy.type },\n      element\n    );\n  },\n  _activeSelection: function _activeSelection() {\n    return this.state.newStrategy;\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'span',\n      null,\n      _react2.default.createElement(\n        'h3',\n        null,\n        this.props.title\n      ),\n      _react2.default.createElement(\n        'p',\n        { className: 'description' },\n        this.props.description\n      ),\n      _react2.default.createElement(\n        _bootstrap.Input,\n        { label: this.props.selectPlaceholder },\n        _react2.default.createElement(_common.Select, { placeholder: this.props.selectPlaceholder,\n          options: this._availableSelectOptions(),\n          matchProp: 'value',\n          value: this._activeSelection(),\n          onChange: this._onSelect })\n      ),\n      this._getConfigurationComponent(this._activeSelection())\n    );\n  }\n});\n\nexports.default = IndexMaintenanceStrategiesConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 963:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MessageCountRotationStrategyConfiguration = _react2.default.createClass({\n  displayName: 'MessageCountRotationStrategyConfiguration',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    jsonSchema: _propTypes2.default.object.isRequired,\n    updateConfig: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      max_docs_per_index: this.props.config.max_docs_per_index\n    };\n  },\n  _onInputUpdate: function _onInputUpdate(field) {\n    var _this = this;\n\n    return function (e) {\n      var update = {};\n      update[field] = e.target.value;\n\n      _this.setState(update);\n      _this.props.updateConfig(update);\n    };\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'fieldset',\n        null,\n        _react2.default.createElement(_bootstrap.Input, { type: 'number',\n          id: 'max-docs-per-index',\n          label: 'Max documents per index',\n          onChange: this._onInputUpdate('max_docs_per_index'),\n          value: this.state.max_docs_per_index,\n          help: 'Maximum number of documents in an index before it gets rotated',\n          required: true })\n      )\n    );\n  }\n});\n\nexports.default = MessageCountRotationStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 964:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MessageCountRotationStrategySummary = _react2.default.createClass({\n  displayName: 'MessageCountRotationStrategySummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired\n  },\n\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index rotation strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Message Count'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Max docs per index:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.props.config.max_docs_per_index\n        )\n      )\n    );\n  }\n});\n\nexports.default = MessageCountRotationStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 965:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _NumberUtils = __webpack_require__(120);\n\nvar _NumberUtils2 = _interopRequireDefault(_NumberUtils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeBasedRotationStrategyConfiguration = _react2.default.createClass({\n  displayName: 'SizeBasedRotationStrategyConfiguration',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    jsonSchema: _propTypes2.default.object.isRequired,\n    updateConfig: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      max_size: this.props.config.max_size\n    };\n  },\n  _onInputUpdate: function _onInputUpdate(field) {\n    var _this = this;\n\n    return function (e) {\n      var update = {};\n      update[field] = e.target.value;\n\n      _this.setState(update);\n      _this.props.updateConfig(update);\n    };\n  },\n  _formatSize: function _formatSize() {\n    return _NumberUtils2.default.formatBytes(this.state.max_size);\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'fieldset',\n        null,\n        _react2.default.createElement(_bootstrap.Input, { type: 'number',\n          id: 'max-size',\n          label: 'Max size per index (in bytes)',\n          onChange: this._onInputUpdate('max_size'),\n          value: this.state.max_size,\n          help: 'Maximum size of an index before it gets rotated',\n          addonAfter: this._formatSize(),\n          required: true })\n      )\n    );\n  }\n});\n\nexports.default = SizeBasedRotationStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 966:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _NumberUtils = __webpack_require__(120);\n\nvar _NumberUtils2 = _interopRequireDefault(_NumberUtils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeBasedRotationStrategySummary = _react2.default.createClass({\n  displayName: 'SizeBasedRotationStrategySummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired\n  },\n\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index rotation strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Index Size'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Max index size:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.props.config.max_size,\n          ' bytes (',\n          _NumberUtils2.default.formatBytes(this.props.config.max_size),\n          ')'\n        )\n      )\n    );\n  }\n});\n\nexports.default = SizeBasedRotationStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 967:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TimeBasedRotationStrategyConfiguration = _react2.default.createClass({\n  displayName: 'TimeBasedRotationStrategyConfiguration',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    jsonSchema: _propTypes2.default.object.isRequired,\n    updateConfig: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      rotation_period: this.props.config.rotation_period\n    };\n  },\n  _onPeriodUpdate: function _onPeriodUpdate(field) {\n    var _this = this;\n\n    return function () {\n      var update = {};\n      var 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  _isValidPeriod: function _isValidPeriod(duration) {\n    var check = duration || this.state.rotation_period;\n    return _moment2.default.duration(check).asMilliseconds() >= 3600000;\n  },\n  _validationState: function _validationState() {\n    if (this._isValidPeriod()) {\n      return undefined;\n    }\n    return 'error';\n  },\n  _formatDuration: function _formatDuration() {\n    return this._isValidPeriod() ? _moment2.default.duration(this.state.rotation_period).humanize() : 'invalid (min 1 hour)';\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(_bootstrap.Input, { type: 'text',\n        ref: 'rotation_period',\n        label: 'Rotation period (ISO8601 Duration)',\n        onChange: this._onPeriodUpdate('rotation_period'),\n        value: this.state.rotation_period,\n        help: 'How long an index gets written to before it is rotated. (i.e. \"P1D\" for 1 day, \"PT6H\" for 6 hours)',\n        addonAfter: this._formatDuration(),\n        bsStyle: this._validationState(),\n        required: true })\n    );\n  }\n});\n\nexports.default = TimeBasedRotationStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 968:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\n__webpack_require__(270);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TimeBasedRotationStrategySummary = _react2.default.createClass({\n  displayName: 'TimeBasedRotationStrategySummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired\n  },\n\n  _humanizedPeriod: function _humanizedPeriod() {\n    var duration = _moment2.default.duration(this.props.config.rotation_period);\n\n    return duration.format() + ', ' + duration.humanize();\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index rotation strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Index Time'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Rotation period:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.props.config.rotation_period,\n          ' (',\n          this._humanizedPeriod(),\n          ')'\n        )\n      )\n    );\n  }\n});\n\nexports.default = TimeBasedRotationStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 969:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DeletionRetentionStrategyConfiguration = _react2.default.createClass({\n  displayName: 'DeletionRetentionStrategyConfiguration',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    jsonSchema: _propTypes2.default.object.isRequired,\n    updateConfig: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      max_number_of_indices: this.props.config.max_number_of_indices\n    };\n  },\n  _onInputUpdate: function _onInputUpdate(field) {\n    var _this = this;\n\n    return function (e) {\n      var update = {};\n      update[field] = e.target.value;\n\n      _this.setState(update);\n      _this.props.updateConfig(update);\n    };\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'fieldset',\n        null,\n        _react2.default.createElement(_bootstrap.Input, { type: 'number',\n          id: 'max-number-of-indices',\n          label: 'Max number of indices',\n          onChange: this._onInputUpdate('max_number_of_indices'),\n          value: this.state.max_number_of_indices,\n          help: _react2.default.createElement(\n            'span',\n            null,\n            'Maximum number of indices to keep before ',\n            _react2.default.createElement(\n              'strong',\n              null,\n              'deleting'\n            ),\n            ' the oldest ones'\n          ),\n          required: true })\n      )\n    );\n  }\n});\n\nexports.default = DeletionRetentionStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 970:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DeletionRetentionStrategySummary = _react2.default.createClass({\n  displayName: 'DeletionRetentionStrategySummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired\n  },\n\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index retention strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Delete'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Max number of indices:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.props.config.max_number_of_indices\n        )\n      )\n    );\n  }\n});\n\nexports.default = DeletionRetentionStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 971:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _bootstrap = __webpack_require__(47);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ClosingRetentionStrategyConfiguration = _react2.default.createClass({\n  displayName: 'ClosingRetentionStrategyConfiguration',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    jsonSchema: _propTypes2.default.object.isRequired,\n    updateConfig: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      max_number_of_indices: this.props.config.max_number_of_indices\n    };\n  },\n  _onInputUpdate: function _onInputUpdate(field) {\n    var _this = this;\n\n    return function (e) {\n      var update = {};\n      update[field] = e.target.value;\n\n      _this.setState(update);\n      _this.props.updateConfig(update);\n    };\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'fieldset',\n        null,\n        _react2.default.createElement(_bootstrap.Input, { type: 'number',\n          id: 'max-number-of-indices',\n          label: 'Max number of indices',\n          onChange: this._onInputUpdate('max_number_of_indices'),\n          value: this.state.max_number_of_indices,\n          help: _react2.default.createElement(\n            'span',\n            null,\n            'Maximum number of indices to keep before ',\n            _react2.default.createElement(\n              'strong',\n              null,\n              'closing'\n            ),\n            ' the oldest ones'\n          ),\n          required: true })\n      )\n    );\n  }\n});\n\nexports.default = ClosingRetentionStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 972:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ClosingRetentionStrategySummary = _react2.default.createClass({\n  displayName: 'ClosingRetentionStrategySummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired\n  },\n\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index retention strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Close'\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Max number of indices:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this.props.config.max_number_of_indices\n        )\n      )\n    );\n  }\n});\n\nexports.default = ClosingRetentionStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 973:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NoopRetentionStrategyConfiguration = _react2.default.createClass({\n  displayName: 'NoopRetentionStrategyConfiguration',\n  render: function render() {\n    return _react2.default.createElement(\n      _reactBootstrap.Alert,\n      null,\n      'This retention strategy is not configurable because it does not do anything.'\n    );\n  }\n});\n\nexports.default = NoopRetentionStrategyConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 974:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NoopRetentionStrategySummary = _react2.default.createClass({\n  displayName: 'NoopRetentionStrategySummary',\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index retention strategy:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          'Do nothing'\n        )\n      )\n    );\n  }\n});\n\nexports.default = NoopRetentionStrategySummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 975:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _common = __webpack_require__(46);\n\nvar _BootstrapModalForm = __webpack_require__(266);\n\nvar _BootstrapModalForm2 = _interopRequireDefault(_BootstrapModalForm);\n\nvar _javascriptNaturalSort = __webpack_require__(917);\n\nvar _javascriptNaturalSort2 = _interopRequireDefault(_javascriptNaturalSort);\n\nvar _CombinedProvider = __webpack_require__(68);\n\nvar _CombinedProvider2 = _interopRequireDefault(_CombinedProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _CombinedProvider$get = _CombinedProvider2.default.get('Streams'),\n    StreamsStore = _CombinedProvider$get.StreamsStore;\n\nvar IndexSetDeletionForm = _react2.default.createClass({\n  displayName: 'IndexSetDeletionForm',\n\n  propTypes: {\n    indexSet: _propTypes2.default.object.isRequired,\n    onDelete: _propTypes2.default.func.isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      assignedStreams: undefined,\n      deleteIndices: true\n    };\n  },\n  _onModalOpen: function _onModalOpen() {\n    var _this = this;\n\n    StreamsStore.load(function (streams) {\n      var assignedStreams = [];\n\n      streams.forEach(function (stream) {\n        if (stream.index_set_id === _this.props.indexSet.id) {\n          assignedStreams.push({ id: stream.id, title: stream.title });\n        }\n      });\n\n      _this.setState({ assignedStreams: assignedStreams });\n    });\n  },\n  _onRemoveClick: function _onRemoveClick(e) {\n    this.setState({ deleteIndices: e.target.checked });\n  },\n  open: function open() {\n    this.refs['index-set-deletion-modal-' + this.props.indexSet.id].open();\n  },\n  close: function close() {\n    this.refs['index-set-deletion-modal-' + this.props.indexSet.id].close();\n  },\n  _isLoading: function _isLoading() {\n    return !this.state.assignedStreams;\n  },\n  _isDeletable: function _isDeletable() {\n    return !this._isLoading() && this.state.assignedStreams.length < 1 && !this.props.indexSet.default;\n  },\n  _modalContent: function _modalContent() {\n    if (this._isLoading()) {\n      return _react2.default.createElement(_common.Spinner, { text: 'Loading assigned streams...' });\n    }\n\n    if (this.props.indexSet.default) {\n      return _react2.default.createElement(\n        _reactBootstrap.Row,\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 12 },\n          _react2.default.createElement(\n            _reactBootstrap.Alert,\n            { bsStyle: 'danger' },\n            'Unable to delete the index set because it is the default index set!'\n          )\n        )\n      );\n    }\n\n    if (!this._isDeletable()) {\n      var assignedStreams = this.state.assignedStreams.sort(function (s1, s2) {\n        return (0, _javascriptNaturalSort2.default)(s1.title, s2.title);\n      }).map(function (stream) {\n        return _react2.default.createElement(\n          'li',\n          { key: 'stream-id-' + stream.id },\n          stream.title\n        );\n      });\n\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Row,\n          null,\n          _react2.default.createElement(\n            _reactBootstrap.Col,\n            { md: 12 },\n            _react2.default.createElement(\n              _reactBootstrap.Alert,\n              { bsStyle: 'danger' },\n              'Unable to delete the index set because it has assigned streams. Remove stream assignments to be able to delete this index set.'\n            )\n          )\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Row,\n          null,\n          _react2.default.createElement(\n            _reactBootstrap.Col,\n            { md: 12 },\n            _react2.default.createElement(\n              'h4',\n              null,\n              'Assigned streams:'\n            ),\n            _react2.default.createElement(\n              'ul',\n              null,\n              assignedStreams\n            )\n          )\n        )\n      );\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(_bootstrap.Input, { type: 'checkbox',\n          label: 'Remove all data for this index set?',\n          help: _react2.default.createElement(\n            'span',\n            null,\n            'All indices related to this index set will be deleted from Elasticsearch.'\n          ),\n          checked: this.state.deleteIndices,\n          onChange: this._onRemoveClick })\n      )\n    );\n  },\n  _onDelete: function _onDelete(e) {\n    e.preventDefault();\n\n    if (this._isDeletable()) {\n      this.props.onDelete(this.props.indexSet, this.state.deleteIndices);\n    }\n  },\n  render: function render() {\n    return _react2.default.createElement(\n      _BootstrapModalForm2.default,\n      { ref: 'index-set-deletion-modal-' + this.props.indexSet.id,\n        title: 'Delete index set \"' + this.props.indexSet.title + '\"?',\n        onModalOpen: this._onModalOpen,\n        onSubmitForm: this._onDelete,\n        submitButtonText: 'Delete',\n        submitButtonDisabled: !this._isDeletable() },\n      this._modalContent()\n    );\n  }\n});\n\nexports.default = IndexSetDeletionForm;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 976:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar style = __webpack_require__(977);\n\nvar IndexSetDetails = _react2.default.createClass({\n  displayName: 'IndexSetDetails',\n\n  propTypes: {\n    indexSet: _propTypes2.default.object.isRequired\n  },\n\n  componentDidMount: function componentDidMount() {\n    style.use();\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    style.unuse();\n  },\n  render: function render() {\n    var indexSet = this.props.indexSet;\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { className: 'index-set-details' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 3 },\n        _react2.default.createElement(\n          'dl',\n          null,\n          _react2.default.createElement(\n            'dt',\n            null,\n            'Index prefix:'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            indexSet.index_prefix\n          ),\n          _react2.default.createElement(\n            'dt',\n            null,\n            'Shards:'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            indexSet.shards\n          ),\n          _react2.default.createElement(\n            'dt',\n            null,\n            'Replicas:'\n          ),\n          _react2.default.createElement(\n            'dd',\n            null,\n            indexSet.replicas\n          )\n        )\n      ),\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 6 },\n        _react2.default.createElement(_indices.IndicesConfiguration, { indexSet: indexSet })\n      )\n    );\n  }\n});\n\nexports.default = IndexSetDetails;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 977:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar refs = 0;\nvar dispose;\nvar content = __webpack_require__(978);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) exports.locals = content.locals;\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = __webpack_require__(21)(content, {});\n\t}\n\treturn exports;\n};\nexports.unuse = exports.unref = function() {\n       if(refs > 0 && !(--refs)) {\n\t\tdispose();\n\t\tdispose = null;\n\t}\n};\nif(false) {\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/***/ 978:\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(20)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \".index-set-details dt{float:left;width:160px;overflow:hidden;clear:left;text-align:left;text-overflow:ellipsis;white-space:nowrap}.index-set-details dd{margin-left:180px}.index-set-details dl{margin-bottom:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ 979:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactRouterBootstrap = __webpack_require__(915);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _Routes = __webpack_require__(76);\n\nvar _Routes2 = _interopRequireDefault(_Routes);\n\nvar _StringUtils = __webpack_require__(87);\n\nvar _StringUtils2 = _interopRequireDefault(_StringUtils);\n\nvar _NumberUtils = __webpack_require__(120);\n\nvar _NumberUtils2 = _interopRequireDefault(_NumberUtils);\n\nvar _indices = __webpack_require__(920);\n\nvar _CombinedProvider = __webpack_require__(68);\n\nvar _CombinedProvider2 = _interopRequireDefault(_CombinedProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _CombinedProvider$get = _CombinedProvider2.default.get('IndexSets'),\n    IndexSetsStore = _CombinedProvider$get.IndexSetsStore,\n    IndexSetsActions = _CombinedProvider$get.IndexSetsActions;\n\nvar IndexSetsComponent = _react2.default.createClass({\n  displayName: 'IndexSetsComponent',\n\n  mixins: [_reflux2.default.connect(IndexSetsStore)],\n\n  componentDidMount: function componentDidMount() {\n    this.loadData(1, this.PAGE_SIZE);\n  },\n  loadData: function loadData(pageNo, limit) {\n    this.currentPageNo = pageNo;\n    this.currentPageSize = limit;\n    IndexSetsActions.listPaginated((pageNo - 1) * limit, limit, true);\n    IndexSetsActions.stats();\n  },\n\n\n  // Stores the current page and page size to be able to reload the current page\n  currentPageNo: 1,\n  currentPageSize: 10,\n\n  PAGE_SIZE: 10,\n\n  _onChangePaginatedList: function _onChangePaginatedList(page, size) {\n    this.loadData(page, size);\n  },\n  _onSetDefault: function _onSetDefault(indexSet) {\n    var _this = this;\n\n    return function () {\n      IndexSetsActions.setDefault(indexSet).then(function () {\n        return _this.loadData(_this.currentPageNo, _this.currentPageSize);\n      });\n    };\n  },\n  _onDelete: function _onDelete(indexSet) {\n    var _this2 = this;\n\n    return function () {\n      _this2.refs['index-set-deletion-form-' + indexSet.id].open();\n    };\n  },\n  _deleteIndexSet: function _deleteIndexSet(indexSet, deleteIndices) {\n    var _this3 = this;\n\n    IndexSetsActions.delete(indexSet, deleteIndices).then(function () {\n      _this3.loadData(1, _this3.PAGE_SIZE);\n    });\n  },\n  _formatIndexSet: function _formatIndexSet(indexSet) {\n    var actions = _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        _reactRouterBootstrap.LinkContainer,\n        { to: _Routes2.default.SYSTEM.INDEX_SETS.CONFIGURATION(indexSet.id) },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: 'info' },\n          'Edit'\n        )\n      ),\n      ' ',\n      _react2.default.createElement(\n        _reactBootstrap.DropdownButton,\n        { title: 'More Actions', id: 'index-set-dropdown-' + indexSet.id, pullRight: true },\n        _react2.default.createElement(\n          _reactBootstrap.MenuItem,\n          {\n            onSelect: this._onSetDefault(indexSet),\n            disabled: !indexSet.writable || indexSet.default },\n          'Set as default'\n        ),\n        _react2.default.createElement(_reactBootstrap.MenuItem, { divider: true }),\n        _react2.default.createElement(\n          _reactBootstrap.MenuItem,\n          { onSelect: this._onDelete(indexSet) },\n          'Delete'\n        )\n      )\n    );\n\n    var content = _react2.default.createElement(\n      _reactBootstrap.Col,\n      { md: 12 },\n      _react2.default.createElement(_indices.IndexSetDetails, { indexSet: indexSet }),\n      _react2.default.createElement(_indices.IndexSetDeletionForm, { ref: 'index-set-deletion-form-' + indexSet.id, indexSet: indexSet, onDelete: this._deleteIndexSet })\n    );\n\n    var indexSetTitle = _react2.default.createElement(\n      _reactRouterBootstrap.LinkContainer,\n      { to: _Routes2.default.SYSTEM.INDEX_SETS.SHOW(indexSet.id) },\n      _react2.default.createElement(\n        'a',\n        null,\n        indexSet.title\n      )\n    );\n\n    var isDefault = indexSet.default ? _react2.default.createElement(\n      _reactBootstrap.Label,\n      { key: 'index-set-' + indexSet.id + '-default-label', bsStyle: 'primary' },\n      'default'\n    ) : '';\n    var isReadOnly = !indexSet.writable ? _react2.default.createElement(\n      _reactBootstrap.Label,\n      { key: 'index-set-' + indexSet.id + '-readOnly-label', bsStyle: 'info' },\n      'read only'\n    ) : '';\n    var description = indexSet.description;\n    if (indexSet.default) {\n      description += (description.endsWith('.') ? '' : '.') + ' Graylog will use this index set by default.';\n    }\n\n    var statsString = void 0;\n    var stats = this.state.indexSetStats[indexSet.id];\n    if (stats) {\n      statsString = this._formatStatsString(stats);\n    }\n\n    return _react2.default.createElement(_common.EntityListItem, { key: 'index-set-' + indexSet.id,\n      title: indexSetTitle,\n      titleSuffix: _react2.default.createElement(\n        'span',\n        null,\n        statsString,\n        ' ',\n        isDefault,\n        ' ',\n        isReadOnly\n      ),\n      description: description,\n      actions: actions,\n      contentRow: content });\n  },\n  _formatStatsString: function _formatStatsString(stats) {\n    if (!stats) {\n      return 'N/A';\n    }\n    var indices = _NumberUtils2.default.formatNumber(stats.indices) + ' ' + _StringUtils2.default.pluralize(stats.indices, 'index', 'indices');\n    var documents = _NumberUtils2.default.formatNumber(stats.documents) + ' ' + _StringUtils2.default.pluralize(stats.documents, 'document', 'documents');\n    var size = _NumberUtils2.default.formatBytes(stats.size);\n\n    return indices + ', ' + documents + ', ' + size;\n  },\n  _isLoading: function _isLoading() {\n    return !this.state.indexSets;\n  },\n  render: function render() {\n    var _this4 = this;\n\n    if (this._isLoading()) {\n      return _react2.default.createElement(_common.Spinner, null);\n    }\n\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        'h4',\n        null,\n        _react2.default.createElement(\n          'strong',\n          null,\n          'Total:'\n        ),\n        ' ',\n        this._formatStatsString(this.state.globalIndexSetStats)\n      ),\n      _react2.default.createElement('hr', { style: { marginBottom: 0 } }),\n      _react2.default.createElement(\n        _common.PaginatedList,\n        { pageSize: this.PAGE_SIZE,\n          totalItems: this.state.indexSetsCount,\n          onChange: this._onChangePaginatedList,\n          showPageSizeSelect: false },\n        _react2.default.createElement(_common.EntityList, { bsNoItemsStyle: 'info',\n          noItemsText: 'There are no index sets to display',\n          items: this.state.indexSets.map(function (indexSet) {\n            return _this4._formatIndexSet(indexSet);\n          }) })\n      )\n    );\n  }\n});\n\nexports.default = IndexSetsComponent;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 980:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nvar _DateTime = __webpack_require__(50);\n\nvar _DateTime2 = _interopRequireDefault(_DateTime);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexSummary = _react2.default.createClass({\n  displayName: 'IndexSummary',\n\n  propTypes: {\n    children: _propTypes2.default.node.isRequired,\n    index: _propTypes2.default.object.isRequired,\n    indexRange: _propTypes2.default.object,\n    isDeflector: _propTypes2.default.bool.isRequired,\n    name: _propTypes2.default.string.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return { showDetails: this.props.isDeflector };\n  },\n  _formatLabels: function _formatLabels(index) {\n    var labels = [];\n    if (index.is_deflector) {\n      labels.push(_react2.default.createElement(\n        _reactBootstrap.Label,\n        { key: this.props.name + '-deflector-label', bsStyle: 'primary' },\n        'active write index'\n      ));\n    }\n\n    if (index.is_closed) {\n      labels.push(_react2.default.createElement(\n        _reactBootstrap.Label,\n        { key: this.props.name + '-closed-label', bsStyle: 'warning' },\n        'closed'\n      ));\n    }\n\n    if (index.is_reopened) {\n      labels.push(_react2.default.createElement(\n        _reactBootstrap.Label,\n        { key: this.props.name + '-reopened-label', bsStyle: 'success' },\n        'reopened'\n      ));\n    }\n\n    return _react2.default.createElement(\n      'span',\n      { className: 'index-label' },\n      labels\n    );\n  },\n  _formatIndexRange: function _formatIndexRange() {\n    if (this.props.isDeflector) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        'Contains messages up to ',\n        _react2.default.createElement(_common.Timestamp, { dateTime: new _DateTime2.default().toISOString(), relative: true })\n      );\n    }\n\n    var sizes = this.props.index.size;\n    if (sizes) {\n      var count = sizes.events;\n      var deleted = sizes.deleted;\n      if (count === 0 || count - deleted === 0) {\n        return 'Index does not contain any messages.';\n      }\n    }\n\n    if (!this.props.indexRange) {\n      return 'Time range of index is unknown, because index range is not available. Please recalculate index ranges manually.';\n    }\n\n    if (this.props.indexRange.begin === 0) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        'Contains messages up to ',\n        _react2.default.createElement(_common.Timestamp, { dateTime: this.props.indexRange.end, relative: true })\n      );\n    }\n\n    return _react2.default.createElement(\n      'span',\n      null,\n      'Contains messages from ',\n      _react2.default.createElement(_common.Timestamp, { dateTime: this.props.indexRange.begin, relative: true }),\n      ' up to',\n      ' ',\n      _react2.default.createElement(_common.Timestamp, { dateTime: this.props.indexRange.end, relative: true })\n    );\n  },\n  _formatShowDetailsLink: function _formatShowDetailsLink() {\n    if (this.state.showDetails) {\n      return _react2.default.createElement(\n        'span',\n        { className: 'index-more-actions' },\n        _react2.default.createElement('i', { className: 'fa fa-caret-down' }),\n        ' Hide Details / Actions'\n      );\n    }\n    return _react2.default.createElement(\n      'span',\n      { className: 'index-more-actions' },\n      _react2.default.createElement('i', { className: 'fa fa-caret-right' }),\n      ' Show Details / Actions'\n    );\n  },\n  _toggleShowDetails: function _toggleShowDetails(event) {\n    event.preventDefault();\n    this.setState({ showDetails: !this.state.showDetails });\n  },\n  render: function render() {\n    var index = this.props.index;\n    return _react2.default.createElement(\n      'span',\n      null,\n      _react2.default.createElement(\n        'h2',\n        null,\n        this.props.name,\n        ' ',\n        _react2.default.createElement(\n          'small',\n          null,\n          this._formatLabels(index),\n          ' ',\n          this._formatIndexRange(index),\n          ' ',\n          _react2.default.createElement(_indices.IndexSizeSummary, { index: index }),\n          _react2.default.createElement(\n            'a',\n            { onClick: this._toggleShowDetails, href: '#' },\n            this._formatShowDetailsLink()\n          )\n        )\n      ),\n      _react2.default.createElement(\n        'div',\n        { className: 'index-info-holder' },\n        this.state.showDetails && this.props.children\n      )\n    );\n  }\n});\n\nexports.default = IndexSummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 981:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _numeral = __webpack_require__(118);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _NumberUtils = __webpack_require__(120);\n\nvar _NumberUtils2 = _interopRequireDefault(_NumberUtils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexSizeSummary = _react2.default.createClass({\n  displayName: 'IndexSizeSummary',\n\n  propTypes: {\n    index: _propTypes2.default.object.isRequired\n  },\n  render: function render() {\n    var index = this.props.index;\n\n    if (index.size) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        '(',\n        _NumberUtils2.default.formatBytes(index.size.bytes),\n        ' ',\n        '/ ',\n        (0, _numeral2.default)(index.size.events).format('0,0'),\n        ' messages)',\n        ' '\n      );\n    }\n\n    return _react2.default.createElement('span', null);\n  }\n});\n\nexports.default = IndexSizeSummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 982:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _ActionsProvider = __webpack_require__(8);\n\nvar _ActionsProvider2 = _interopRequireDefault(_ActionsProvider);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DeflectorActions = _ActionsProvider2.default.getActions('Deflector');\nvar IndexRangesActions = _ActionsProvider2.default.getActions('IndexRanges');\n\nvar DeflectorStore = _StoreProvider2.default.getStore('Deflector'); // eslint-disable-line no-unused-vars\n\nvar IndicesMaintenanceDropdown = _react2.default.createClass({\n  displayName: 'IndicesMaintenanceDropdown',\n\n  propTypes: {\n    indexSetId: _propTypes2.default.string.isRequired,\n    indexSet: _propTypes2.default.object\n  },\n\n  _onRecalculateIndexRange: function _onRecalculateIndexRange() {\n    if (window.confirm('This will recalculate index ranges for this index set using a background system job. Do you want to proceed?')) {\n      IndexRangesActions.recalculate(this.props.indexSetId);\n    }\n  },\n  _onCycleDeflector: function _onCycleDeflector() {\n    var _this = this;\n\n    if (window.confirm('This will manually cycle the current active write index on this index set. Do you want to proceed?')) {\n      DeflectorActions.cycle(this.props.indexSetId).then(function () {\n        DeflectorActions.list(_this.props.indexSetId);\n      });\n    }\n  },\n  render: function render() {\n    var cycleButton = void 0;\n    if (this.props.indexSet && this.props.indexSet.writable) {\n      cycleButton = _react2.default.createElement(\n        _reactBootstrap.MenuItem,\n        { eventKey: '2', onClick: this._onCycleDeflector },\n        'Rotate active write index'\n      );\n    }\n    return _react2.default.createElement(\n      _reactBootstrap.ButtonGroup,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.DropdownButton,\n        { bsStyle: 'info', title: 'Maintenance', id: 'indices-maintenance-actions', pullRight: true },\n        _react2.default.createElement(\n          _reactBootstrap.MenuItem,\n          { eventKey: '1', onClick: this._onRecalculateIndexRange },\n          'Recalculate index ranges'\n        ),\n        cycleButton\n      )\n    );\n  }\n});\n\nexports.default = IndicesMaintenanceDropdown;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 983:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _javascriptNaturalSort = __webpack_require__(917);\n\nvar _javascriptNaturalSort2 = _interopRequireDefault(_javascriptNaturalSort);\n\nvar _indices = __webpack_require__(920);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndicesOverview = _react2.default.createClass({\n  displayName: 'IndicesOverview',\n\n  propTypes: {\n    closedIndices: _propTypes2.default.array.isRequired,\n    deflector: _propTypes2.default.object.isRequired,\n    indexDetails: _propTypes2.default.object.isRequired,\n    indices: _propTypes2.default.object.isRequired,\n    indexSetId: _propTypes2.default.string.isRequired\n  },\n  _formatIndex: function _formatIndex(indexName, index) {\n    var indexSummary = this.props.indices[indexName];\n    var indexRange = indexSummary && indexSummary.range ? indexSummary.range : null;\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { key: 'index-summary-' + indexName, className: 'content index-description' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          _indices.IndexSummary,\n          { index: index, name: indexName, count: indexSummary.size,\n            indexRange: indexRange, isDeflector: indexSummary.is_deflector },\n          _react2.default.createElement(\n            'span',\n            null,\n            _react2.default.createElement(_indices.IndexDetails, { index: this.props.indexDetails[indexName],\n              indexName: indexName,\n              indexRange: indexRange,\n              indexSetId: this.props.indexSetId,\n              isDeflector: indexSummary.is_deflector })\n          )\n        )\n      )\n    );\n  },\n  _formatClosedIndex: function _formatClosedIndex(indexName, index) {\n    var indexRange = index.range;\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      { key: 'index-summary-' + indexName, className: 'content index-description' },\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          _indices.IndexSummary,\n          { index: index, name: indexName, indexRange: indexRange, isDeflector: index.is_deflector },\n          _react2.default.createElement(\n            'span',\n            null,\n            _react2.default.createElement(_indices.ClosedIndexDetails, { indexName: indexName, indexRange: indexRange })\n          )\n        )\n      )\n    );\n  },\n  render: function render() {\n    var _this = this;\n\n    var indices = Object.keys(this.props.indices).map(function (indexName) {\n      return !_this.props.indices[indexName].is_closed ? _this._formatIndex(indexName, _this.props.indices[indexName]) : _this._formatClosedIndex(indexName, _this.props.indices[indexName]);\n    });\n    return _react2.default.createElement(\n      'span',\n      null,\n      indices.sort(function (index1, index2) {\n        return (0, _javascriptNaturalSort2.default)(index2.key, index1.key);\n      })\n    );\n  }\n});\n\nexports.default = IndicesOverview;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _plugin = __webpack_require__(263);\n\nvar _IndexMaintenanceStrategiesSummary = __webpack_require__(985);\n\nvar _IndexMaintenanceStrategiesSummary2 = _interopRequireDefault(_IndexMaintenanceStrategiesSummary);\n\n__webpack_require__(935);\n\n__webpack_require__(936);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Load rotation plugin UI plugins from core.\n\nvar style = __webpack_require__(944); // Load rotation plugin UI plugins from core.\n\n\nvar IndicesConfiguration = _react2.default.createClass({\n  displayName: 'IndicesConfiguration',\n\n  propTypes: {\n    indexSet: _propTypes2.default.object.isRequired\n  },\n\n  componentDidMount: function componentDidMount() {\n    style.use();\n  },\n  componentWillUnmount: function componentWillUnmount() {\n    style.unuse();\n  },\n  render: function render() {\n    if (!this.props.indexSet.writable) {\n      return _react2.default.createElement(\n        _reactBootstrap.Row,\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 12 },\n          'Index set is not writable and will not be included in index rotation and retention. It is also not possible to assign it to a stream.'\n        )\n      );\n    }\n\n    var rotationConfig = {\n      strategy: this.props.indexSet.rotation_strategy_class,\n      config: this.props.indexSet.rotation_strategy\n    };\n    var retentionConfig = {\n      strategy: this.props.indexSet.retention_strategy_class,\n      config: this.props.indexSet.retention_strategy\n    };\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 6 },\n        _react2.default.createElement(_IndexMaintenanceStrategiesSummary2.default, { config: rotationConfig,\n          pluginExports: _plugin.PluginStore.exports('indexRotationConfig') })\n      ),\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 6 },\n        _react2.default.createElement(_IndexMaintenanceStrategiesSummary2.default, { config: retentionConfig,\n          pluginExports: _plugin.PluginStore.exports('indexRetentionConfig') })\n      )\n    );\n  }\n});\n\nexports.default = IndicesConfiguration;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 985:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _Spinner = __webpack_require__(265);\n\nvar _Spinner2 = _interopRequireDefault(_Spinner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IndexMaintenanceStrategiesSummary = _react2.default.createClass({\n  displayName: 'IndexMaintenanceStrategiesSummary',\n\n  propTypes: {\n    config: _propTypes2.default.object.isRequired,\n    pluginExports: _propTypes2.default.array.isRequired\n  },\n\n  render: function render() {\n    if (!this.props.config) {\n      return _react2.default.createElement(_Spinner2.default, null);\n    }\n\n    var activeStrategy = this.props.config.strategy;\n    var strategy = this.props.pluginExports.filter(function (exportedStrategy) {\n      return exportedStrategy.type === activeStrategy;\n    })[0];\n\n    if (!strategy || !strategy.summaryComponent) {\n      return _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'danger' },\n        'Summary for strategy ',\n        activeStrategy,\n        ' not found!'\n      );\n    }\n\n    var element = _react2.default.createElement(strategy.summaryComponent, { config: this.props.config.config });\n\n    return _react2.default.createElement(\n      'span',\n      { key: strategy.type },\n      element\n    );\n  }\n});\n\nexports.default = IndexMaintenanceStrategiesSummary;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 986:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _numeral = __webpack_require__(118);\n\nvar _numeral2 = _interopRequireDefault(_numeral);\n\nvar _moment = __webpack_require__(35);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ShardMeter = _react2.default.createClass({\n  displayName: 'ShardMeter',\n\n  propTypes: {\n    title: _propTypes2.default.string.isRequired,\n    shardMeter: _propTypes2.default.object.isRequired\n  },\n  _formatMeter: function _formatMeter(meter) {\n    var value = _react2.default.createElement(\n      'span',\n      null,\n      (0, _numeral2.default)(meter.total).format('0,0'),\n      ' ops'\n    );\n\n    if (meter.total > 0) {\n      return _react2.default.createElement(\n        'span',\n        null,\n        value,\n        ' ',\n        _react2.default.createElement(\n          'span',\n          { title: meter.time_seconds + 's' },\n          '(took ',\n          _moment2.default.duration(meter.time_seconds, 'seconds').humanize(),\n          ')'\n        )\n      );\n    }\n\n    return value;\n  },\n  render: function render() {\n    var sm = this.props.shardMeter;\n    return _react2.default.createElement(\n      'span',\n      null,\n      _react2.default.createElement(\n        'h3',\n        { style: { display: 'inline' } },\n        this.props.title\n      ),\n      _react2.default.createElement(\n        'dl',\n        null,\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Index:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.index)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Flush:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.flush)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Merge:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.merge)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Query:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.search_query)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Fetch:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.search_fetch)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Get:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.get)\n        ),\n        _react2.default.createElement(\n          'dt',\n          null,\n          'Refresh:'\n        ),\n        _react2.default.createElement(\n          'dd',\n          null,\n          this._formatMeter(sm.refresh)\n        )\n      )\n    );\n  }\n});\n\nexports.default = ShardMeter;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 987:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = __webpack_require__(121);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ShardRouting = _react2.default.createClass({\n  displayName: 'ShardRouting',\n\n  propTypes: {\n    route: _propTypes2.default.object.isRequired\n  },\n  render: function render() {\n    var route = this.props.route;\n    var tooltip = _react2.default.createElement(\n      _reactBootstrap.Tooltip,\n      { id: 'shard-route-state-tooltip' },\n      'State: ',\n      _react2.default.createElement(\n        'i',\n        null,\n        route.state\n      ),\n      ' on ',\n      route.node_hostname,\n      ' (',\n      route.node_name,\n      ')'\n    );\n    return _react2.default.createElement(\n      'li',\n      { className: (0, _classnames2.default)('shard', 'shard-' + route.state, { 'shard-primary': route.primary }) },\n      _react2.default.createElement(\n        _reactBootstrap.OverlayTrigger,\n        { placement: 'top', overlay: tooltip },\n        _react2.default.createElement(\n          'span',\n          { className: 'id' },\n          'S',\n          route.id\n        )\n      )\n    );\n  }\n});\n\nexports.default = ShardRouting;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 988:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _indices = __webpack_require__(920);\n\nvar _javascriptNaturalSort = __webpack_require__(917);\n\nvar _javascriptNaturalSort2 = _interopRequireDefault(_javascriptNaturalSort);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ShardRoutingOverview = _react2.default.createClass({\n  displayName: 'ShardRoutingOverview',\n\n  propTypes: {\n    routing: _propTypes2.default.array.isRequired,\n    indexName: _propTypes2.default.string.isRequired\n  },\n  render: function render() {\n    var _props = this.props,\n        indexName = _props.indexName,\n        routing = _props.routing;\n\n    return _react2.default.createElement(\n      'div',\n      { className: 'shard-routing' },\n      _react2.default.createElement(\n        'h3',\n        null,\n        'Shard routing'\n      ),\n      _react2.default.createElement(\n        'ul',\n        { className: 'shards' },\n        routing.sort(function (shard1, shard2) {\n          return (0, _javascriptNaturalSort2.default)(shard1.id, shard2.id);\n        }).map(function (route) {\n          return _react2.default.createElement(_indices.ShardRouting, { key: indexName + '-shard-route-' + route.node_id + '-' + route.id, route: route });\n        })\n      ),\n      _react2.default.createElement('br', { style: { clear: 'both' } }),\n      _react2.default.createElement(\n        'div',\n        { className: 'description' },\n        '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      )\n    );\n  }\n});\n\nexports.default = ShardRoutingOverview;\nmodule.exports = exports['default'];\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 8.746b58959a350aa1ebcf.js","import React from 'react';\nimport { Button, Col, Row } from 'react-bootstrap';\nimport { LinkContainer } from 'react-router-bootstrap';\n\nimport Routes from 'routing/Routes';\n\nimport DocsHelper from 'util/DocsHelper';\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport { IndexSetsComponent } from 'components/indices';\n\nconst IndicesPage = React.createClass({\n  render() {\n    const pageHeader = (\n      \n        \n          A Graylog stream write messages to an index set, which is a configuration for retention, sharding, and\n          replication of the stored data.\n          By configuring index sets, you could, for example, have different retention times for certain streams.\n        \n\n        \n          You can learn more about the index model in the{' '}\n          \n        \n\n        \n          \n            \n          \n        \n      \n    );\n\n    return (\n      \n        \n          {pageHeader}\n\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","export { default as ClosedIndexDetails } from './ClosedIndexDetails';\nexport { default as IndexDetails } from './IndexDetails';\nexport { default as IndexRangeSummary } from './IndexRangeSummary';\nexport { default as IndexSetConfigurationForm } from './IndexSetConfigurationForm';\nexport { default as IndexSetDeletionForm } from './IndexSetDeletionForm';\nexport { default as IndexSetDetails } from './IndexSetDetails';\nexport { default as IndexSetsComponent } from './IndexSetsComponent';\nexport { default as IndexSummary } from './IndexSummary';\nexport { default as IndexSizeSummary } from './IndexSizeSummary';\nexport { default as IndicesMaintenanceDropdown } from './IndicesMaintenanceDropdown';\nexport { default as IndicesOverview } from './IndicesOverview';\nexport { default as IndicesConfiguration } from './IndicesConfiguration';\nexport { default as ShardMeter } from './ShardMeter';\nexport { default as ShardRouting } from './ShardRouting';\nexport { default as ShardRoutingOverview } from './ShardRoutingOverview';\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/index.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 { 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","var refs = 0;\nvar dispose;\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./ConfigurationStyles.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) exports.locals = content.locals;\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, {});\n\t}\n\treturn exports;\n};\nexports.unuse = exports.unref = function() {\n       if(refs > 0 && !(--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// ./node_modules/style-loader/useable.js!./node_modules/css-loader!./src/components/configurations/ConfigurationStyles.css\n// module id = 944\n// module chunks = 7 8 9 10 34","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\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// ./node_modules/css-loader!./src/components/configurations/ConfigurationStyles.css\n// module id = 945\n// module chunks = 7 8 9 10 34","import PropTypes from 'prop-types';\nimport 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: PropTypes.string.isRequired,\n    indexRange: 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 PropTypes from 'prop-types';\nimport 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: PropTypes.object.isRequired,\n indexName: PropTypes.string.isRequired,\n indexRange: PropTypes.object.isRequired,\n indexSetId: PropTypes.string.isRequired,\n isDeflector: 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).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\n }\n },\n _onCloseIndex() {\n if (window.confirm(`Really close index ${this.props.indexName}?`)) {\n IndicesActions.close(this.props.indexName).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\n }\n },\n _onDeleteIndex() {\n if (window.confirm(`Really delete index ${this.props.indexName}?`)) {\n IndicesActions.delete(this.props.indexName).then(() => {\n IndicesActions.list(this.props.indexSetId);\n });\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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Timestamp } from 'components/common';\n\nconst IndexRangeSummary = React.createClass({\n propTypes: {\n indexRange: PropTypes.object,\n },\n render() {\n const { indexRange } = this.props;\n if (!indexRange) {\n return No index range available.;\n }\n return (\n Range re-calculated{' '}\n {' '}\n in {indexRange.took_ms}ms.\n \n );\n },\n});\n\nexport default IndexRangeSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexRangeSummary.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport { Button, Col, Row } from 'react-bootstrap';\n\nimport { Input } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\n\nimport { PluginStore } from 'graylog-web-plugin/plugin';\nimport IndexMaintenanceStrategiesConfiguration from 'components/indices/IndexMaintenanceStrategiesConfiguration';\nimport {} from 'components/indices/rotation'; // Load rotation plugin UI plugins from core.\nimport {} from 'components/indices/retention'; // Load rotation plugin UI plugins from core.\n\nconst IndexSetConfigurationForm = React.createClass({\n propTypes: {\n indexSet: PropTypes.object.isRequired,\n rotationStrategies: PropTypes.array.isRequired,\n retentionStrategies: PropTypes.array.isRequired,\n create: PropTypes.bool,\n onUpdate: PropTypes.func.isRequired,\n cancelLink: PropTypes.string.isRequired,\n },\n\n getInitialState() {\n return {\n indexSet: this.props.indexSet,\n validationErrors: {},\n };\n },\n\n _updateConfig(fieldName, value) {\n const config = this.state.indexSet;\n config[fieldName] = value;\n this.setState({ indexSet: config });\n },\n\n _validateIndexPrefix(event) {\n const value = event.target.value;\n\n if (value.match(/^[a-z0-9][a-z0-9_\\-+]*$/)) {\n if (this.state.validationErrors[event.target.name]) {\n const nextValidationErrors = Object.assign({}, this.state.validationErrors);\n delete nextValidationErrors[event.target.name];\n this.setState({ validationErrors: nextValidationErrors });\n }\n } else {\n const nextValidationErrors = Object.assign({}, this.state.validationErrors);\n if (value.length === 0) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: cannot be empty';\n } else if (value.indexOf('_') === 0 || value.indexOf('-') === 0 || value.indexOf('+') === 0) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must start with a letter or number';\n } else if (value.toLowerCase() !== value) {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must be lower case';\n } else {\n nextValidationErrors[event.target.name] = 'Invalid index prefix: must only contain letters, numbers, \\'_\\', \\'-\\' and \\'+\\'';\n }\n this.setState({ validationErrors: nextValidationErrors });\n }\n\n this._onInputChange(event);\n },\n\n _onInputChange(event) {\n this._updateConfig(event.target.name, event.target.value);\n },\n\n _onDisableOptimizationClick(event) {\n this._updateConfig(event.target.name, event.target.checked);\n },\n\n _saveConfiguration(event) {\n event.preventDefault();\n\n const invalidFields = Object.keys(this.state.validationErrors);\n if (invalidFields.length !== 0) {\n document.getElementsByName(invalidFields[0])[0].focus();\n return;\n }\n\n this.props.onUpdate(this.state.indexSet);\n },\n\n _updateRotationConfigState(strategy, data) {\n this._updateConfig('rotation_strategy_class', strategy);\n this._updateConfig('rotation_strategy', data);\n },\n\n _updateRetentionConfigState(strategy, data) {\n this._updateConfig('retention_strategy_class', strategy);\n this._updateConfig('retention_strategy', data);\n },\n\n render() {\n const indexSet = this.props.indexSet;\n const validationErrors = this.state.validationErrors;\n\n let rotationConfig;\n if (this.props.rotationStrategies) {\n // The component expects a different structure - legacy\n const activeConfig = {\n config: this.props.indexSet.rotation_strategy,\n strategy: this.props.indexSet.rotation_strategy_class,\n };\n rotationConfig = ();\n } else {\n rotationConfig = ();\n }\n\n let retentionConfig;\n if (this.props.retentionStrategies) {\n // The component expects a different structure - legacy\n const activeConfig = {\n config: this.props.indexSet.retention_strategy,\n strategy: this.props.indexSet.retention_strategy_class,\n };\n retentionConfig = ();\n } else {\n retentionConfig = ();\n }\n\n let readOnlyconfig;\n if (this.props.create) {\n const indexPrefixHelp = (\n \n A unique prefix used in Elasticsearch indices belonging to this index set.\n The prefix must start with a letter or number, and can only contain letters, numbers, '_', '-' and '+'.\n \n );\n readOnlyconfig = (\n \n \n \n \n );\n }\n\n return (\n \n \n
\n \n \n \n \n {readOnlyconfig}\n \n \n \n \n \n \n \n \n {indexSet.writable && rotationConfig}\n \n \n \n \n {indexSet.writable && retentionConfig}\n \n \n\n \n \n \n \n \n \n \n \n
\n \n
\n );\n },\n});\n\nexport default IndexSetConfigurationForm;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSetConfigurationForm.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nimport { Select } from 'components/common';\n\nconst IndexMaintenanceStrategiesConfiguration = React.createClass({\n propTypes: {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n selectPlaceholder: PropTypes.string.isRequired,\n pluginExports: PropTypes.array.isRequired,\n strategies: PropTypes.array.isRequired,\n activeConfig: PropTypes.object.isRequired,\n updateState: 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 }\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 _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 _addConfigType(strategy, data) {\n // The config object needs to have the \"type\" field set to the \"default_config.type\" to make the REST call work.\n const result = this.props.strategies.filter(s => s.type === strategy)[0];\n const copy = data;\n\n if (result) {\n copy.type = result.default_config.type;\n }\n\n return copy;\n },\n\n _onConfigUpdate(newConfig) {\n const config = this._addConfigType(this.state.newStrategy, newConfig);\n\n this.setState({ newConfig: config });\n this.props.updateState(this.state.newStrategy, config);\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

{this.props.description}

\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 PropTypes from 'prop-types';\nimport React from 'react';\n\nconst MessageCountRotationStrategySummary = React.createClass({\n propTypes: {\n config: 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nimport NumberUtils from 'util/NumberUtils';\n\nconst SizeBasedRotationStrategyConfiguration = React.createClass({\n propTypes: {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport NumberUtils from 'util/NumberUtils';\n\nconst SizeBasedRotationStrategySummary = React.createClass({\n propTypes: {\n config: 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\nimport moment from 'moment';\n\nconst TimeBasedRotationStrategyConfiguration = React.createClass({\n propTypes: {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: 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 }\n return 'error';\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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\n\nconst TimeBasedRotationStrategySummary = React.createClass({\n propTypes: {\n config: 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nconst DeletionRetentionStrategyConfiguration = React.createClass({\n propTypes: {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: 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 required />\n
\n
\n );\n },\n});\n\nexport default DeletionRetentionStrategyConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/retention/DeletionRetentionStrategyConfiguration.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst DeletionRetentionStrategySummary = React.createClass({\n propTypes: {\n config: 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Input } from 'components/bootstrap';\n\nconst ClosingRetentionStrategyConfiguration = React.createClass({\n propTypes: {\n config: PropTypes.object.isRequired,\n jsonSchema: PropTypes.object.isRequired,\n updateConfig: 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 closing the oldest ones}\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 PropTypes from 'prop-types';\nimport React from 'react';\n\nconst ClosingRetentionStrategySummary = React.createClass({\n propTypes: {\n config: 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 { 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert, Row, Col } from 'react-bootstrap';\nimport { Input } from 'components/bootstrap';\nimport { Spinner } from 'components/common';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport naturalSort from 'javascript-natural-sort';\n\nimport CombinedProvider from 'injection/CombinedProvider';\nconst { StreamsStore } = CombinedProvider.get('Streams');\n\nconst IndexSetDeletionForm = React.createClass({\n propTypes: {\n indexSet: PropTypes.object.isRequired,\n onDelete: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n return {\n assignedStreams: undefined,\n deleteIndices: true,\n };\n },\n\n _onModalOpen() {\n StreamsStore.load((streams) => {\n const assignedStreams = [];\n\n streams.forEach((stream) => {\n if (stream.index_set_id === this.props.indexSet.id) {\n assignedStreams.push({ id: stream.id, title: stream.title });\n }\n });\n\n this.setState({ assignedStreams: assignedStreams });\n });\n },\n\n _onRemoveClick(e) {\n this.setState({ deleteIndices: e.target.checked });\n },\n\n open() {\n this.refs[`index-set-deletion-modal-${this.props.indexSet.id}`].open();\n },\n\n close() {\n this.refs[`index-set-deletion-modal-${this.props.indexSet.id}`].close();\n },\n\n _isLoading() {\n return !this.state.assignedStreams;\n },\n\n _isDeletable() {\n return !this._isLoading() && this.state.assignedStreams.length < 1 && !this.props.indexSet.default;\n },\n\n _modalContent() {\n if (this._isLoading()) {\n return ;\n }\n\n if (this.props.indexSet.default) {\n return (\n \n \n \n Unable to delete the index set because it is the default index set!\n \n \n \n );\n }\n\n if (!this._isDeletable()) {\n const assignedStreams = this.state.assignedStreams\n .sort((s1, s2) => naturalSort(s1.title, s2.title))\n .map(stream =>
  • {stream.title}
  • );\n\n return (\n
    \n \n \n \n Unable to delete the index set because it has assigned streams. Remove stream assignments to be able to delete this index set.\n \n \n \n \n \n

    Assigned streams:

    \n
      \n {assignedStreams}\n
    \n \n
    \n
    \n );\n }\n\n return (\n \n \n All indices related to this index set will be deleted from Elasticsearch.}\n checked={this.state.deleteIndices}\n onChange={this._onRemoveClick} />\n \n \n );\n },\n\n _onDelete(e) {\n e.preventDefault();\n\n if (this._isDeletable()) {\n this.props.onDelete(this.props.indexSet, this.state.deleteIndices);\n }\n },\n\n render() {\n return (\n \n {this._modalContent()}\n \n );\n },\n});\n\nexport default IndexSetDeletionForm;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSetDeletionForm.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Row, Col } from 'react-bootstrap';\n\nimport { IndicesConfiguration } from 'components/indices';\n\nconst style = require('!style/useable!css!./IndexSetDetails.css');\n\nconst IndexSetDetails = React.createClass({\n propTypes: {\n indexSet: PropTypes.object.isRequired,\n },\n\n componentDidMount() {\n style.use();\n },\n\n componentWillUnmount() {\n style.unuse();\n },\n\n render() {\n const indexSet = this.props.indexSet;\n\n return (\n \n \n
    \n
    Index prefix:
    \n
    {indexSet.index_prefix}
    \n\n
    Shards:
    \n
    {indexSet.shards}
    \n\n
    Replicas:
    \n
    {indexSet.replicas}
    \n
    \n \n\n \n \n \n
    \n );\n },\n});\n\nexport default IndexSetDetails;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSetDetails.jsx","var refs = 0;\nvar dispose;\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./IndexSetDetails.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) exports.locals = content.locals;\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, {});\n\t}\n\treturn exports;\n};\nexports.unuse = exports.unref = function() {\n if(refs > 0 && !(--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// ./node_modules/style-loader/useable.js!./node_modules/css-loader!./src/components/indices/IndexSetDetails.css\n// module id = 977\n// module chunks = 7 8 9 10","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".index-set-details dt{float:left;width:160px;overflow:hidden;clear:left;text-align:left;text-overflow:ellipsis;white-space:nowrap}.index-set-details dd{margin-left:180px}.index-set-details dl{margin-bottom:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/components/indices/IndexSetDetails.css\n// module id = 978\n// module chunks = 7 8 9 10","import React from 'react';\nimport Reflux from 'reflux';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport { Col, Button, Label, DropdownButton, MenuItem } from 'react-bootstrap';\n\nimport { EntityList, EntityListItem, PaginatedList, Spinner } from 'components/common';\nimport Routes from 'routing/Routes';\nimport StringUtils from 'util/StringUtils';\nimport NumberUtils from 'util/NumberUtils';\n\nimport { IndexSetDeletionForm, IndexSetDetails } from 'components/indices';\n\nimport CombinedProvider from 'injection/CombinedProvider';\n\nconst { IndexSetsStore, IndexSetsActions } = CombinedProvider.get('IndexSets');\n\nconst IndexSetsComponent = React.createClass({\n mixins: [Reflux.connect(IndexSetsStore)],\n\n componentDidMount() {\n this.loadData(1, this.PAGE_SIZE);\n },\n\n loadData(pageNo, limit) {\n this.currentPageNo = pageNo;\n this.currentPageSize = limit;\n IndexSetsActions.listPaginated((pageNo - 1) * limit, limit, true);\n IndexSetsActions.stats();\n },\n\n // Stores the current page and page size to be able to reload the current page\n currentPageNo: 1,\n currentPageSize: 10,\n\n PAGE_SIZE: 10,\n\n _onChangePaginatedList(page, size) {\n this.loadData(page, size);\n },\n\n _onSetDefault(indexSet) {\n return () => {\n IndexSetsActions.setDefault(indexSet).then(() => this.loadData(this.currentPageNo, this.currentPageSize));\n };\n },\n\n _onDelete(indexSet) {\n return () => {\n this.refs[`index-set-deletion-form-${indexSet.id}`].open();\n };\n },\n\n _deleteIndexSet(indexSet, deleteIndices) {\n IndexSetsActions.delete(indexSet, deleteIndices).then(() => {\n this.loadData(1, this.PAGE_SIZE);\n });\n },\n\n _formatIndexSet(indexSet) {\n const actions = (\n
    \n \n \n \n {' '}\n \n Set as default\n \n Delete\n \n
    \n );\n\n const content = (\n \n \n\n \n \n );\n\n const indexSetTitle = (\n \n {indexSet.title}\n \n );\n\n const isDefault = indexSet.default ? : '';\n const isReadOnly = !indexSet.writable ? : '';\n let description = indexSet.description;\n if (indexSet.default) {\n description += `${description.endsWith('.') ? '' : '.'} Graylog will use this index set by default.`;\n }\n\n let statsString;\n const stats = this.state.indexSetStats[indexSet.id];\n if (stats) {\n statsString = this._formatStatsString(stats);\n }\n\n return (\n {statsString} {isDefault} {isReadOnly}}\n description={description}\n actions={actions}\n contentRow={content} />\n );\n },\n\n _formatStatsString(stats) {\n if (!stats) {\n return 'N/A';\n }\n const indices = `${NumberUtils.formatNumber(stats.indices)} ${StringUtils.pluralize(stats.indices, 'index', 'indices')}`;\n const documents = `${NumberUtils.formatNumber(stats.documents)} ${StringUtils.pluralize(stats.documents, 'document', 'documents')}`;\n const size = NumberUtils.formatBytes(stats.size);\n\n return `${indices}, ${documents}, ${size}`;\n },\n\n _isLoading() {\n return !this.state.indexSets;\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n return (\n
    \n

    Total: {this._formatStatsString(this.state.globalIndexSetStats)}

    \n\n
    \n\n \n this._formatIndexSet(indexSet))} />\n \n
    \n );\n },\n});\n\nexport default IndexSetsComponent;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSetsComponent.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Label } from 'react-bootstrap';\n\nimport { Timestamp } from 'components/common';\nimport DateTime from 'logic/datetimes/DateTime';\n\nimport { IndexSizeSummary } from 'components/indices';\n\nconst IndexSummary = React.createClass({\n propTypes: {\n children: PropTypes.node.isRequired,\n index: PropTypes.object.isRequired,\n indexRange: PropTypes.object,\n isDeflector: PropTypes.bool.isRequired,\n name: PropTypes.string.isRequired,\n },\n getInitialState() {\n return { showDetails: this.props.isDeflector };\n },\n _formatLabels(index) {\n const labels = [];\n if (index.is_deflector) {\n labels.push();\n }\n\n if (index.is_closed) {\n labels.push();\n }\n\n if (index.is_reopened) {\n labels.push();\n }\n\n return {labels};\n },\n\n _formatIndexRange() {\n if (this.props.isDeflector) {\n return Contains messages up to ;\n }\n\n const sizes = this.props.index.size;\n if (sizes) {\n const count = sizes.events;\n const deleted = sizes.deleted;\n if (count === 0 || count - deleted === 0) {\n return 'Index does not contain any messages.';\n }\n }\n\n if (!this.props.indexRange) {\n return 'Time range of index is unknown, because index range is not available. Please recalculate index ranges manually.';\n }\n\n if (this.props.indexRange.begin === 0) {\n return Contains messages up to ;\n }\n\n return (\n \n Contains messages from up to{' '}\n \n \n );\n },\n _formatShowDetailsLink() {\n if (this.state.showDetails) {\n return Hide Details / Actions;\n }\n return Show Details / Actions;\n },\n _toggleShowDetails(event) {\n event.preventDefault();\n this.setState({ showDetails: !this.state.showDetails });\n },\n render() {\n const index = this.props.index;\n return (\n \n

    \n {this.props.name}{' '}\n\n \n {this._formatLabels(index)}{' '}\n {this._formatIndexRange(index)}{' '}\n\n \n\n {this._formatShowDetailsLink()}\n \n

    \n\n
    \n {this.state.showDetails && this.props.children}\n
    \n
    \n );\n },\n});\n\nexport default IndexSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSummary.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\nimport NumberUtils from 'util/NumberUtils';\n\nconst IndexSizeSummary = React.createClass({\n propTypes: {\n index: PropTypes.object.isRequired,\n },\n render() {\n const { index } = this.props;\n if (index.size) {\n return (\n ({NumberUtils.formatBytes(index.size.bytes)}{' '}\n / {numeral(index.size.events).format('0,0')} messages){' '}\n );\n }\n\n return ;\n },\n});\n\nexport default IndexSizeSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexSizeSummary.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ButtonGroup, DropdownButton, MenuItem } from 'react-bootstrap';\n\nimport ActionsProvider from 'injection/ActionsProvider';\nconst DeflectorActions = ActionsProvider.getActions('Deflector');\nconst IndexRangesActions = ActionsProvider.getActions('IndexRanges');\n\nimport StoreProvider from 'injection/StoreProvider';\nconst DeflectorStore = StoreProvider.getStore('Deflector'); // eslint-disable-line no-unused-vars\n\nconst IndicesMaintenanceDropdown = React.createClass({\n propTypes: {\n indexSetId: PropTypes.string.isRequired,\n indexSet: PropTypes.object,\n },\n\n _onRecalculateIndexRange() {\n if (window.confirm('This will recalculate index ranges for this index set using a background system job. Do you want to proceed?')) {\n IndexRangesActions.recalculate(this.props.indexSetId);\n }\n },\n _onCycleDeflector() {\n if (window.confirm('This will manually cycle the current active write index on this index set. Do you want to proceed?')) {\n DeflectorActions.cycle(this.props.indexSetId).then(() => {\n DeflectorActions.list(this.props.indexSetId);\n });\n }\n },\n render() {\n let cycleButton;\n if (this.props.indexSet && this.props.indexSet.writable) {\n cycleButton = Rotate active write index;\n }\n return (\n \n \n Recalculate index ranges\n {cycleButton}\n \n \n );\n },\n});\n\nexport default IndicesMaintenanceDropdown;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndicesMaintenanceDropdown.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport naturalSort from 'javascript-natural-sort';\n\nimport { ClosedIndexDetails, IndexDetails, IndexSummary } from 'components/indices';\n\nconst IndicesOverview = React.createClass({\n propTypes: {\n closedIndices: PropTypes.array.isRequired,\n deflector: PropTypes.object.isRequired,\n indexDetails: PropTypes.object.isRequired,\n indices: PropTypes.object.isRequired,\n indexSetId: PropTypes.string.isRequired,\n },\n _formatIndex(indexName, index) {\n const indexSummary = this.props.indices[indexName];\n const indexRange = indexSummary && indexSummary.range ? indexSummary.range : null;\n return (\n \n \n \n \n \n \n \n \n \n );\n },\n _formatClosedIndex(indexName, index) {\n const indexRange = index.range;\n return (\n \n \n \n \n \n \n \n \n \n );\n },\n render() {\n const indices = Object.keys(this.props.indices).map((indexName) => {\n return !this.props.indices[indexName].is_closed ?\n this._formatIndex(indexName, this.props.indices[indexName]) : this._formatClosedIndex(indexName, this.props.indices[indexName]);\n });\n return (\n \n {indices.sort((index1, index2) => naturalSort(index2.key, index1.key))}\n \n );\n },\n});\n\nexport default IndicesOverview;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndicesOverview.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col } from 'react-bootstrap';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport IndexMaintenanceStrategiesSummary from 'components/indices/IndexMaintenanceStrategiesSummary';\nimport {} from 'components/indices/rotation'; // Load rotation plugin UI plugins from core.\nimport {} from 'components/indices/retention'; // Load rotation plugin UI plugins from core.\n\nconst style = require('!style/useable!css!components/configurations/ConfigurationStyles.css');\n\nconst IndicesConfiguration = React.createClass({\n propTypes: {\n indexSet: PropTypes.object.isRequired,\n },\n\n componentDidMount() {\n style.use();\n },\n\n componentWillUnmount() {\n style.unuse();\n },\n\n render() {\n if (!this.props.indexSet.writable) {\n return (\n \n \n Index set is not writable and will not be included in index rotation and retention.\n It is also not possible to assign it to a stream.\n \n \n );\n }\n\n const rotationConfig = {\n strategy: this.props.indexSet.rotation_strategy_class,\n config: this.props.indexSet.rotation_strategy,\n };\n const retentionConfig = {\n strategy: this.props.indexSet.retention_strategy_class,\n config: this.props.indexSet.retention_strategy,\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n },\n});\n\nexport default IndicesConfiguration;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndicesConfiguration.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Alert } from 'react-bootstrap';\nimport Spinner from 'components/common/Spinner';\n\nconst IndexMaintenanceStrategiesSummary = React.createClass({\n propTypes: {\n config: PropTypes.object.isRequired,\n pluginExports: PropTypes.array.isRequired,\n },\n\n render() {\n if (!this.props.config) {\n return ();\n }\n\n const activeStrategy = this.props.config.strategy;\n const strategy = this.props.pluginExports.filter(exportedStrategy => exportedStrategy.type === activeStrategy)[0];\n\n if (!strategy || !strategy.summaryComponent) {\n return (Summary for strategy {activeStrategy} not found!);\n }\n\n const element = React.createElement(strategy.summaryComponent, { config: this.props.config.config });\n\n return ({element});\n },\n});\n\nexport default IndexMaintenanceStrategiesSummary;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/IndexMaintenanceStrategiesSummary.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport numeral from 'numeral';\nimport moment from 'moment';\n\nconst ShardMeter = React.createClass({\n propTypes: {\n title: PropTypes.string.isRequired,\n shardMeter: PropTypes.object.isRequired,\n },\n _formatMeter(meter) {\n const value = {numeral(meter.total).format('0,0')} ops;\n\n if (meter.total > 0) {\n return {value} (took {moment.duration(meter.time_seconds, 'seconds').humanize()});\n }\n\n return value;\n },\n render() {\n const sm = this.props.shardMeter;\n return (\n \n

    {this.props.title}

    \n
    \n
    Index:
    \n
    {this._formatMeter(sm.index)}
    \n\n
    Flush:
    \n
    {this._formatMeter(sm.flush)}
    \n\n
    Merge:
    \n
    {this._formatMeter(sm.merge)}
    \n\n
    Query:
    \n
    {this._formatMeter(sm.search_query)}
    \n\n
    Fetch:
    \n
    {this._formatMeter(sm.search_fetch)}
    \n\n
    Get:
    \n
    {this._formatMeter(sm.get)}
    \n\n
    Refresh:
    \n
    {this._formatMeter(sm.refresh)}
    \n
    \n
    \n );\n },\n});\n\nexport default ShardMeter;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/ShardMeter.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nconst ShardRouting = React.createClass({\n propTypes: {\n route: PropTypes.object.isRequired,\n },\n render() {\n const route = this.props.route;\n const tooltip = State: {route.state} on {route.node_hostname} ({route.node_name});\n return (\n
  • \n \n S{route.id}\n \n
  • \n );\n },\n});\n\nexport default ShardRouting;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/ShardRouting.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { ShardRouting } from 'components/indices';\nimport naturalSort from 'javascript-natural-sort';\n\nconst ShardRoutingOverview = React.createClass({\n propTypes: {\n routing: PropTypes.array.isRequired,\n indexName: PropTypes.string.isRequired,\n },\n render() {\n const { indexName, routing } = this.props;\n return (\n
    \n

    Shard routing

    \n\n
      \n {routing\n .sort((shard1, shard2) => naturalSort(shard1.id, shard2.id))\n .map(route => )}\n
    \n\n
    \n\n
    \n Bold shards are primaries, others are replicas. Replicas are elected to primaries automatically\n when primaries leave the cluster. Size and document counts only reflect primary shards and no\n possible replica duplication.\n
    \n
    \n );\n },\n});\n\nexport default ShardRoutingOverview;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/indices/ShardRoutingOverview.jsx"],"sourceRoot":""}