From c270762d953c417ad24ff9b519971ea1d9276e63 Mon Sep 17 00:00:00 2001 From: Doflatango Date: Mon, 13 Feb 2017 15:15:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=99=A8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/node.go | 2 +- web/job_log.go | 14 ++++++++++++ web/ui/src/components/JobEdit.vue | 27 +++++++++++++++++------- web/ui/src/components/JobEditRule.vue | 14 +++++++++--- web/ui/src/components/Log.vue | 4 ++-- web/ui/src/components/LogDetail.vue | 2 +- web/ui/src/components/basic/Dropdown.vue | 17 ++++++++++----- 7 files changed, 60 insertions(+), 20 deletions(-) diff --git a/models/node.go b/models/node.go index 7e70f90..4469237 100644 --- a/models/node.go +++ b/models/node.go @@ -62,7 +62,7 @@ func (n *Node) Exist() (pid int, err error) { } func GetActivityNodeList() (nodes []string, err error) { - resp, err := DefalutClient.Get(conf.Config.Proc, client.WithPrefix(), client.WithKeysOnly()) + resp, err := DefalutClient.Get(conf.Config.Proc, client.WithPrefix(), client.WithKeysOnly(), client.WithSort(client.SortByKey, client.SortAscend)) if err != nil { return } diff --git a/web/job_log.go b/web/job_log.go index 53256fd..c65f6ab 100644 --- a/web/job_log.go +++ b/web/job_log.go @@ -37,6 +37,11 @@ func (jl *JobLog) GetDetail(w http.ResponseWriter, r *http.Request) { } func (jl *JobLog) GetList(w http.ResponseWriter, r *http.Request) { + // nodes := GetStringArrayFromQuery("nodes", ",", r) + // names := GetStringArrayFromQuery("names", ",", r) + // begin := r.FormValue("begin") + // end := r.FormValue("end") + list := []*models.JobLog{ &models.JobLog{ Id: bson.NewObjectId(), @@ -68,3 +73,12 @@ func (jl *JobLog) GetList(w http.ResponseWriter, r *http.Request) { } outJSON(w, list) } + +func GetStringArrayFromQuery(name, sep string, r *http.Request) (arr []string) { + val := strings.TrimSpace(r.FormValue(name)) + if len(val) == 0 { + return + } + + return strings.Split(val, sep) +} diff --git a/web/ui/src/components/JobEdit.vue b/web/ui/src/components/JobEdit.vue index 033dc76..f6cce23 100644 --- a/web/ui/src/components/JobEdit.vue +++ b/web/ui/src/components/JobEdit.vue @@ -2,7 +2,7 @@
{{error}}
-
+

{{action == 'CREATE' ? '添加' : '更新'}}任务     
@@ -26,7 +26,7 @@
当前任务没有定时器,点击下面按钮来添加定时器
- +
@@ -72,7 +72,7 @@ export default { addNewTimer: function(){ if (!this.job.rules) this.job.rules = []; - this.job.rules.push({}); + this.job.rules.push({id: this.randomRuleId()}); }, changeGroup: function(val, text){ @@ -94,6 +94,10 @@ export default { .onfailed((resp)=>{console.log(resp)}) .onend(()=>{vm.loading=false}) .do(); + }, + + randomRuleId: function(){ + return Math.random().toString(); } }, @@ -105,15 +109,22 @@ export default { } else { this.action = 'UPDATE'; this.$rest.GET('job/'+this.$route.params.group+'-'+this.$route.params.id). - onsucceed(200, (resp)=>{vm.job = resp}). + onsucceed(200, (resp)=>{ + vm.job = resp; + if (vm.job.rules) { + for (var i in vm.job.rules) { + vm.job.rules[i].id = vm.randomRuleId(); + } + } + }). onfailed((data)=>{vm.error = data.error}). do(); } this.$rest.GET('job/groups').onsucceed(200, (resp)=>{ - !resp.includes('default') && resp.unshift('default'); - vm.groups = resp; - }).do(); + !resp.includes('default') && resp.unshift('default'); + vm.groups = resp; + }).do(); $(this.$el).find('.checkbox').checkbox({ onChange: function(){ @@ -126,7 +137,7 @@ export default { onChange: function(value, text, $choice){ vm.job.group = value; } - }).dropdown('set selected', this.job.group); + }).dropdown('set exactly', this.job.group); }, components: { diff --git a/web/ui/src/components/JobEditRule.vue b/web/ui/src/components/JobEditRule.vue index 325b3c8..8ce6c6d 100644 --- a/web/ui/src/components/JobEditRule.vue +++ b/web/ui/src/components/JobEditRule.vue @@ -11,11 +11,11 @@
- +
- +
@@ -25,7 +25,7 @@ import Dropdown from './basic/Dropdown.vue'; export default { name: 'job-edit-rule', - props: ['rule', 'index'], + props: ['index', 'rule'], data: function(){ return { nodeGroups: [], @@ -51,6 +51,14 @@ export default { }, change: function(key, val){ this.$emit('change', this.index, key, val); + }, + changeIncludeNodes: function(val){ + var nids = val.trim().length === 0 ? [] : val.split(','); + this.change('nids', nids); + }, + changeExcludeNodes: function(val){ + var exclude_nids = val.trim().length === 0 ? [] : val.split(','); + this.change('exclude_nids', exclude_nids); } }, diff --git a/web/ui/src/components/Log.vue b/web/ui/src/components/Log.vue index 7aaea16..030c83e 100644 --- a/web/ui/src/components/Log.vue +++ b/web/ui/src/components/Log.vue @@ -1,6 +1,6 @@