diff --git a/_site/app.js b/_site/app.js index 069d12df..434b8a9d 100644 --- a/_site/app.js +++ b/_site/app.js @@ -3124,6 +3124,28 @@ }.bind(this) }).open(); }, + _forceMergeIndex_handler: function(index) { + var fields = new app.ux.FieldCollection({ + fields: [ + new ui.TextField({ label: i18n.text("ForceMergeForm.MaxSegments"), name: "max_num_segments", value: "1", require: true }), + new ui.CheckField({ label: i18n.text("ForceMergeForm.ExpungeDeletes"), name: "only_expunge_deletes", value: false }), + new ui.CheckField({ label: i18n.text("ForceMergeForm.FlushAfter"), name: "flush", value: true }) + ] + }); + var dialog = new ui.DialogPanel({ + title: i18n.text("ForceMergeForm.ForceMergeIndex", index.name), + body: new ui.PanelForm({ fields: fields }), + onCommit: function( panel, args ) { + if(fields.validate()) { + + this.cluster.post(encodeURIComponent( index.name ) + "/_forcemerge?"+jQuery.param(fields.getData()), null, function(r) { + alert(JSON.stringify(r)); + }); + dialog.close(); + } + }.bind(this) + }).open(); + }, _testAnalyser_handler: function(index) { this.cluster.get(encodeURIComponent( index.name ) + "/_analyze?text=" + encodeURIComponent( prompt( i18n.text("IndexCommand.TextToAnalyze") ) ), function(r) { alert(JSON.stringify(r, true, " ")); @@ -3251,7 +3273,7 @@ { text: i18n.text("IndexActionsMenu.NewAlias"), onclick: function() { this._newAliasAction_handler(index); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Refresh"), onclick: function() { this._postIndexAction_handler("_refresh", index, false); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Flush"), onclick: function() { this._postIndexAction_handler("_flush", index, false); }.bind(this) }, - { text: i18n.text("IndexActionsMenu.Optimize"), onclick: function () { this._optimizeIndex_handler(index); }.bind(this) }, + { text: this.cluster.versionAtLeast("5.0.0.") ? i18n.text("IndexActionsMenu.ForceMerge") : i18n.text("IndexActionsMenu.Optimize"), onclick: this.cluster.versionAtLeast("5.0.0.") ? function () { this._forceMergeIndex_handler(index); }.bind(this) : function () { this._optimizeIndex_handler(index); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Snapshot"), disabled: closed, onclick: function() { this._postIndexAction_handler("_gateway/snapshot", index, false); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Analyser"), onclick: function() { this._testAnalyser_handler(index); }.bind(this) }, { text: (index.state === "close") ? i18n.text("IndexActionsMenu.Open") : i18n.text("IndexActionsMenu.Close"), onclick: function() { this._postIndexAction_handler((index.state === "close") ? "_open" : "_close", index, true); }.bind(this) }, @@ -3751,6 +3773,8 @@ _node_handler: function(data) { if(data) { this.prefs.set("app-base_uri", this.cluster.base_uri); + if(data.version && data.version.number) + this.cluster.setVersion(data.version.number); } }, diff --git a/_site/lang/en_strings.js b/_site/lang/en_strings.js index 3679dfbb..6059da7c 100644 --- a/_site/lang/en_strings.js +++ b/_site/lang/en_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Refresh", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Optimize...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Gateway Snapshot", "IndexActionsMenu.Analyser": "Test Analyser", "IndexActionsMenu.Open": "Open", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Only Expunge Deletes", "OptimizeForm.FlushAfter": "Flush After Optimize", "OptimizeForm.WaitForMerge": "Wait For Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Maximum # Of Segments", + "ForceMergeForm.ExpungeDeletes": "Only Expunge Deletes", + "ForceMergeForm.FlushAfter": "Flush After ForceMerge", "Overview.PageTitle" : "Cluster Overview", "Output.JSON": "JSON", "Output.Table": "Table", diff --git a/_site/lang/fr_strings.js b/_site/lang/fr_strings.js index 2cc9bbb0..652bdb8a 100644 --- a/_site/lang/fr_strings.js +++ b/_site/lang/fr_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Rafraîchir", "IndexActionsMenu.Flush": "Flusher", "IndexActionsMenu.Optimize": "Optimiser...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Dupliquer l'index (Snapshot)", "IndexActionsMenu.Analyser": "Tester un analyseur", "IndexActionsMenu.Open": "Ouvrir", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Seulement purger les suppressions", "OptimizeForm.FlushAfter": "Flusher après l'optimisation", "OptimizeForm.WaitForMerge": "Attendre la fin de la fusion", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Nombre maximum de segments", + "ForceMergeForm.ExpungeDeletes": "Seulement purger les suppressions", + "ForceMergeForm.FlushAfter": "Flusher après ForceMerge", "Overview.PageTitle" : "Aperçu du cluster", // "Output.JSON": "JSON", "Output.Table": "Tableau", diff --git a/_site/lang/ja_strings.js b/_site/lang/ja_strings.js index aaba72ce..7f0aa497 100755 --- a/_site/lang/ja_strings.js +++ b/_site/lang/ja_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Refresh", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Optimize...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Gateway Snapshot", "IndexActionsMenu.Analyser": "Analyserテスト", // "IndexActionsMenu.Open": "Open", @@ -88,6 +89,11 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Only Expunge Deletes", "OptimizeForm.FlushAfter": "Flush After Optimize", "OptimizeForm.WaitForMerge": "Wait For Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Maximum # Of Segments", + "ForceMergeForm.ExpungeDeletes": "Only Expunge Deletes", + "ForceMergeForm.FlushAfter": "Flush After ForceMerge", + "ForceMergeForm.WaitForMerge": "Wait For Merge", "Overview.PageTitle" : "クラスタのOverview", // "Output.JSON": "JSON", "Output.Table": "表", diff --git a/_site/lang/pt_strings.js b/_site/lang/pt_strings.js index d4b6abff..2a4d85e4 100644 --- a/_site/lang/pt_strings.js +++ b/_site/lang/pt_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Atualizar", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Otimizar...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Snapshot do Gateway", "IndexActionsMenu.Analyser": "Analizador de teste", "IndexActionsMenu.Open": "Abrir", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Apenas Expurgar Exclusões", "OptimizeForm.FlushAfter": "Flush após Otimizar", "OptimizeForm.WaitForMerge": "Esperar Por Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "# Máximo De Segmentos", + "ForceMergeForm.ExpungeDeletes": "Apenas Expurgar Exclusões", + "ForceMergeForm.FlushAfter": "Flush após ForceMerge", "Overview.PageTitle": "Visão geral do Cluster", "Output.JSON": "JSON", "Output.Table": "Tabela", diff --git a/_site/lang/tr_strings.js b/_site/lang/tr_strings.js index f6119561..f8fc416e 100644 --- a/_site/lang/tr_strings.js +++ b/_site/lang/tr_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Yenile", "IndexActionsMenu.Flush": "Boşalt", "IndexActionsMenu.Optimize": "Optimize et...", + "IndexActionsMenu.ForceMerge": "ForceMerge et...", "IndexActionsMenu.Snapshot": "Gateway Snapshot (Kopya Al)", "IndexActionsMenu.Analyser": "Analizi test et", "IndexActionsMenu.Open": "Aç", @@ -88,6 +89,11 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Silme İşlemi Artıklarını Temizle", "OptimizeForm.FlushAfter": "Optimize Ettikten Sonra Boşalt", "OptimizeForm.WaitForMerge": "Birleştirme İçin Bekle", + "ForceMergeForm.ForceMergeIndex": "{0} ForceMerge Et", + "ForceMergeForm.MaxSegments": "Maksimum Segment Sayısı", + "ForceMergeForm.ExpungeDeletes": "Silme İşlemi Artıklarını Temizle", + "ForceMergeForm.FlushAfter": "ForceMerge Ettikten Sonra Boşalt", + "ForceMergeForm.WaitForMerge": "Birleştirme İçin Bekle", "Overview.PageTitle" : "Kümeler Genelbakış", "Output.JSON": "JSON", "Output.Table": "Tablo", diff --git a/_site/lang/zh_strings.js b/_site/lang/zh_strings.js index 0038de17..bc248076 100644 --- a/_site/lang/zh_strings.js +++ b/_site/lang/zh_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "刷新", "IndexActionsMenu.Flush": "Flush刷新", "IndexActionsMenu.Optimize": "优化...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "网关快照", "IndexActionsMenu.Analyser": "测试分析器", "IndexActionsMenu.Open": "开启", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "只删除被标记为删除的", "OptimizeForm.FlushAfter": "优化后刷新", "OptimizeForm.WaitForMerge": "等待合并", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "最大索引段数", + "ForceMergeForm.ExpungeDeletes": "只删除被标记为删除的", + "ForceMergeForm.FlushAfter": "ForceMerge后刷新", "Overview.PageTitle" : "集群概览", "Output.JSON": "JSON", "Output.Table": "Table", diff --git a/src/app/lang/en_strings.js b/src/app/lang/en_strings.js index 3679dfbb..6059da7c 100644 --- a/src/app/lang/en_strings.js +++ b/src/app/lang/en_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Refresh", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Optimize...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Gateway Snapshot", "IndexActionsMenu.Analyser": "Test Analyser", "IndexActionsMenu.Open": "Open", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Only Expunge Deletes", "OptimizeForm.FlushAfter": "Flush After Optimize", "OptimizeForm.WaitForMerge": "Wait For Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Maximum # Of Segments", + "ForceMergeForm.ExpungeDeletes": "Only Expunge Deletes", + "ForceMergeForm.FlushAfter": "Flush After ForceMerge", "Overview.PageTitle" : "Cluster Overview", "Output.JSON": "JSON", "Output.Table": "Table", diff --git a/src/app/lang/fr_strings.js b/src/app/lang/fr_strings.js index 2cc9bbb0..652bdb8a 100644 --- a/src/app/lang/fr_strings.js +++ b/src/app/lang/fr_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Rafraîchir", "IndexActionsMenu.Flush": "Flusher", "IndexActionsMenu.Optimize": "Optimiser...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Dupliquer l'index (Snapshot)", "IndexActionsMenu.Analyser": "Tester un analyseur", "IndexActionsMenu.Open": "Ouvrir", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Seulement purger les suppressions", "OptimizeForm.FlushAfter": "Flusher après l'optimisation", "OptimizeForm.WaitForMerge": "Attendre la fin de la fusion", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Nombre maximum de segments", + "ForceMergeForm.ExpungeDeletes": "Seulement purger les suppressions", + "ForceMergeForm.FlushAfter": "Flusher après ForceMerge", "Overview.PageTitle" : "Aperçu du cluster", // "Output.JSON": "JSON", "Output.Table": "Tableau", diff --git a/src/app/lang/ja_strings.js b/src/app/lang/ja_strings.js index aaba72ce..7f0aa497 100755 --- a/src/app/lang/ja_strings.js +++ b/src/app/lang/ja_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Refresh", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Optimize...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Gateway Snapshot", "IndexActionsMenu.Analyser": "Analyserテスト", // "IndexActionsMenu.Open": "Open", @@ -88,6 +89,11 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Only Expunge Deletes", "OptimizeForm.FlushAfter": "Flush After Optimize", "OptimizeForm.WaitForMerge": "Wait For Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "Maximum # Of Segments", + "ForceMergeForm.ExpungeDeletes": "Only Expunge Deletes", + "ForceMergeForm.FlushAfter": "Flush After ForceMerge", + "ForceMergeForm.WaitForMerge": "Wait For Merge", "Overview.PageTitle" : "クラスタのOverview", // "Output.JSON": "JSON", "Output.Table": "表", diff --git a/src/app/lang/pt_strings.js b/src/app/lang/pt_strings.js index d4b6abff..2a4d85e4 100644 --- a/src/app/lang/pt_strings.js +++ b/src/app/lang/pt_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Atualizar", "IndexActionsMenu.Flush": "Flush", "IndexActionsMenu.Optimize": "Otimizar...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "Snapshot do Gateway", "IndexActionsMenu.Analyser": "Analizador de teste", "IndexActionsMenu.Open": "Abrir", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Apenas Expurgar Exclusões", "OptimizeForm.FlushAfter": "Flush após Otimizar", "OptimizeForm.WaitForMerge": "Esperar Por Merge", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "# Máximo De Segmentos", + "ForceMergeForm.ExpungeDeletes": "Apenas Expurgar Exclusões", + "ForceMergeForm.FlushAfter": "Flush após ForceMerge", "Overview.PageTitle": "Visão geral do Cluster", "Output.JSON": "JSON", "Output.Table": "Tabela", diff --git a/src/app/lang/tr_strings.js b/src/app/lang/tr_strings.js index f6119561..f8fc416e 100644 --- a/src/app/lang/tr_strings.js +++ b/src/app/lang/tr_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "Yenile", "IndexActionsMenu.Flush": "Boşalt", "IndexActionsMenu.Optimize": "Optimize et...", + "IndexActionsMenu.ForceMerge": "ForceMerge et...", "IndexActionsMenu.Snapshot": "Gateway Snapshot (Kopya Al)", "IndexActionsMenu.Analyser": "Analizi test et", "IndexActionsMenu.Open": "Aç", @@ -88,6 +89,11 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "Silme İşlemi Artıklarını Temizle", "OptimizeForm.FlushAfter": "Optimize Ettikten Sonra Boşalt", "OptimizeForm.WaitForMerge": "Birleştirme İçin Bekle", + "ForceMergeForm.ForceMergeIndex": "{0} ForceMerge Et", + "ForceMergeForm.MaxSegments": "Maksimum Segment Sayısı", + "ForceMergeForm.ExpungeDeletes": "Silme İşlemi Artıklarını Temizle", + "ForceMergeForm.FlushAfter": "ForceMerge Ettikten Sonra Boşalt", + "ForceMergeForm.WaitForMerge": "Birleştirme İçin Bekle", "Overview.PageTitle" : "Kümeler Genelbakış", "Output.JSON": "JSON", "Output.Table": "Tablo", diff --git a/src/app/lang/zh_strings.js b/src/app/lang/zh_strings.js index 0038de17..bc248076 100644 --- a/src/app/lang/zh_strings.js +++ b/src/app/lang/zh_strings.js @@ -41,6 +41,7 @@ i18n.setKeys({ "IndexActionsMenu.Refresh": "刷新", "IndexActionsMenu.Flush": "Flush刷新", "IndexActionsMenu.Optimize": "优化...", + "IndexActionsMenu.ForceMerge": "ForceMerge...", "IndexActionsMenu.Snapshot": "网关快照", "IndexActionsMenu.Analyser": "测试分析器", "IndexActionsMenu.Open": "开启", @@ -88,6 +89,10 @@ i18n.setKeys({ "OptimizeForm.ExpungeDeletes": "只删除被标记为删除的", "OptimizeForm.FlushAfter": "优化后刷新", "OptimizeForm.WaitForMerge": "等待合并", + "ForceMergeForm.ForceMergeIndex": "ForceMerge {0}", + "ForceMergeForm.MaxSegments": "最大索引段数", + "ForceMergeForm.ExpungeDeletes": "只删除被标记为删除的", + "ForceMergeForm.FlushAfter": "ForceMerge后刷新", "Overview.PageTitle" : "集群概览", "Output.JSON": "JSON", "Output.Table": "Table", diff --git a/src/app/ui/clusterConnect/clusterConnect.js b/src/app/ui/clusterConnect/clusterConnect.js index 63d09772..f1e2b350 100644 --- a/src/app/ui/clusterConnect/clusterConnect.js +++ b/src/app/ui/clusterConnect/clusterConnect.js @@ -18,6 +18,8 @@ _node_handler: function(data) { if(data) { this.prefs.set("app-base_uri", this.cluster.base_uri); + if(data.version && data.version.number) + this.cluster.setVersion(data.version.number); } }, diff --git a/src/app/ui/nodesView/nodesView.js b/src/app/ui/nodesView/nodesView.js index 08ce1d30..77be881c 100644 --- a/src/app/ui/nodesView/nodesView.js +++ b/src/app/ui/nodesView/nodesView.js @@ -78,6 +78,28 @@ }.bind(this) }).open(); }, + _forceMergeIndex_handler: function(index) { + var fields = new app.ux.FieldCollection({ + fields: [ + new ui.TextField({ label: i18n.text("ForceMergeForm.MaxSegments"), name: "max_num_segments", value: "1", require: true }), + new ui.CheckField({ label: i18n.text("ForceMergeForm.ExpungeDeletes"), name: "only_expunge_deletes", value: false }), + new ui.CheckField({ label: i18n.text("ForceMergeForm.FlushAfter"), name: "flush", value: true }) + ] + }); + var dialog = new ui.DialogPanel({ + title: i18n.text("ForceMergeForm.ForceMergeIndex", index.name), + body: new ui.PanelForm({ fields: fields }), + onCommit: function( panel, args ) { + if(fields.validate()) { + + this.cluster.post(encodeURIComponent( index.name ) + "/_forcemerge?"+jQuery.param(fields.getData()), null, function(r) { + alert(JSON.stringify(r)); + }); + dialog.close(); + } + }.bind(this) + }).open(); + }, _testAnalyser_handler: function(index) { this.cluster.get(encodeURIComponent( index.name ) + "/_analyze?text=" + encodeURIComponent( prompt( i18n.text("IndexCommand.TextToAnalyze") ) ), function(r) { alert(JSON.stringify(r, true, " ")); @@ -205,7 +227,7 @@ { text: i18n.text("IndexActionsMenu.NewAlias"), onclick: function() { this._newAliasAction_handler(index); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Refresh"), onclick: function() { this._postIndexAction_handler("_refresh", index, false); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Flush"), onclick: function() { this._postIndexAction_handler("_flush", index, false); }.bind(this) }, - { text: i18n.text("IndexActionsMenu.Optimize"), onclick: function () { this._optimizeIndex_handler(index); }.bind(this) }, + { text: this.cluster.versionAtLeast("5.0.0.") ? i18n.text("IndexActionsMenu.ForceMerge") : i18n.text("IndexActionsMenu.Optimize"), onclick: this.cluster.versionAtLeast("5.0.0.") ? function () { this._forceMergeIndex_handler(index); }.bind(this) : function () { this._optimizeIndex_handler(index); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Snapshot"), disabled: closed, onclick: function() { this._postIndexAction_handler("_gateway/snapshot", index, false); }.bind(this) }, { text: i18n.text("IndexActionsMenu.Analyser"), onclick: function() { this._testAnalyser_handler(index); }.bind(this) }, { text: (index.state === "close") ? i18n.text("IndexActionsMenu.Open") : i18n.text("IndexActionsMenu.Close"), onclick: function() { this._postIndexAction_handler((index.state === "close") ? "_open" : "_close", index, true); }.bind(this) },