From: dibs Date: Tue, 22 Jan 2013 04:54:56 +0000 (+0900) Subject: [title] fixed update job list about child job X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=389c84e529ec7bba8331f91c3a5f765cf82852bb;p=sdk%2Ftools%2Fsdk-build.git [title] fixed update job list about child job --- diff --git a/dibs-web/app/controllers/admin_project_controller.rb b/dibs-web/app/controllers/admin_project_controller.rb index f4496f1..a0f7b72 100644 --- a/dibs-web/app/controllers/admin_project_controller.rb +++ b/dibs-web/app/controllers/admin_project_controller.rb @@ -155,6 +155,8 @@ class AdminProjectController < ApplicationController project.ptype = project_type project.password = project_password project.distribution_id = distribution.id + #TODO: set project user is admin. admin user id is '1' + project.user_id = 1 project.save if not change_item[:OSNameList].nil? diff --git a/dibs-web/app/controllers/jobs_controller.rb b/dibs-web/app/controllers/jobs_controller.rb index f12642a..b4f3797 100644 --- a/dibs-web/app/controllers/jobs_controller.rb +++ b/dibs-web/app/controllers/jobs_controller.rb @@ -133,12 +133,33 @@ class JobsController < ApplicationController doc.Distribution(job.distribution_name) doc.ProjectName(job.project_name) doc.JobType(job.job_type) + doc.JobAttribute(job.job_attribute) + doc.ParentJobId(job.parent_job_id) doc.Os(job.supported_os_name) doc.Status(job.status) doc.UserName(job.user_name) doc.StartTime(job.start_time) doc.EndTime(job.end_time) } + + if job.job_attribute == "MULTI" + child_jobs = get_child_job_info(job.job_id) + child_jobs.each {|job| + doc.Job { + doc.Id(job.job_id) + doc.Distribution(job.distribution_name) + doc.ProjectName(job.project_name) + doc.JobType(job.job_type) + doc.JobAttribute("CHILD") + doc.ParentJobId(job.parent_job_id) + doc.Os(job.supported_os_name) + doc.Status(job.status) + doc.UserName(job.user_name) + doc.StartTime(job.start_time) + doc.EndTime(job.end_time) + } + } + end end end } @@ -220,6 +241,7 @@ class JobsController < ApplicationController doc.ProjectName(job.project_name) doc.JobType(job.job_type) doc.JobAttribute(job_list.job_attribute) + doc.ParentJobId(job.parent_job_id) doc.Os(job.supported_os_name) doc.Status(job.status) doc.UserName(job.user_name) @@ -309,6 +331,7 @@ class JobsController < ApplicationController doc.ProjectName(job.project_name) doc.JobType(job.job_type) doc.JobAttribute(job_list.job_attribute) + doc.ParentJobId(job.parent_job_id) doc.Os(job.supported_os_name) doc.Status(job.status) doc.UserName(job.user_name) @@ -403,6 +426,7 @@ class JobsController < ApplicationController doc.ProjectName(job.project_name) doc.JobType(job.job_type) doc.JobAttribute(job_list.job_attribute) + doc.ParentJobId(job.parent_job_id) doc.Os(job.supported_os_name) doc.Status(job.status) doc.UserName(job.user_name) @@ -418,8 +442,11 @@ class JobsController < ApplicationController jobs = Job.find_by_sql("SELECT jobs.id AS job_id , jobs.jtype AS job_type , jobs.status AS status + , jobs.parent_job_id AS parent_job_id , DATE_FORMAT(jobs.start_time, '%Y-%m-%d %H:%i:%s') AS start_time , DATE_FORMAT(jobs.end_time, '%Y-%m-%d %H:%i:%s') AS end_time + , CASE WHEN jobs.jtype like \"MULTI%\" THEN \"MULTI\" + ELSE \"SINGLE\" END \"job_attribute\" , projects.name AS project_name , projects.ptype AS project_type , projects.password AS project_password @@ -455,6 +482,7 @@ class JobsController < ApplicationController job = Job.find_by_sql("SELECT jobs.id AS job_id , jobs.jtype AS job_type , jobs.status AS status + , jobs.parent_job_id AS parent_job_id , DATE_FORMAT(jobs.start_time, '%Y-%m-%d %H:%i:%s') AS start_time , DATE_FORMAT(jobs.end_time, '%Y-%m-%d %H:%i:%s') AS end_time , projects.name AS project_name diff --git a/dibs-web/config/routes.rb b/dibs-web/config/routes.rb index 5d2eec8..5d0385e 100644 --- a/dibs-web/config/routes.rb +++ b/dibs-web/config/routes.rb @@ -55,7 +55,7 @@ Dibs::Application.routes.draw do get "jobs/list/all/:distribution/:status/:lastID" => "jobs#listAll", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } get "jobs/list/user/:user/:distribution/:status/:lastID" => "jobs#listSearchUser", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } get "jobs/list/group/:group/:distribution/:status/:lastID" => "jobs#listSearchGroup", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } - get "jobs/list/project/:project/:distribution/:status/:lastID" => "jobs#listSearchProject" , :constraints => { :project => /[0-9A-Za-z\-\.]+/ } + get "jobs/list/project/:project/:distribution/:status/:lastID" => "jobs#listSearchProject" , :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/, :project => /[0-9A-Za-z\-\.]+/ } get "jobs/list/date/:date/:distribution/:status/:lastID" => "jobs#listSearchDate", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } match "jobs/update" => "jobs#updateList", :format => "json" @@ -69,7 +69,7 @@ Dibs::Application.routes.draw do post "projects/binaryFileUpload" # projects - match "projects/queryRunningProjectsInfoInDistribution/:distribution" => "projects#queryRunningProjectsInfoInDistribution" + match "projects/queryRunningProjectsInfoInDistribution/:distribution" => "projects#queryRunningProjectsInfoInDistribution", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } match "projects/queryProjectsInfoInDistribution/:distribution" => "projects#queryProjectsInfoInDistribution", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } match "projects/queryProjectsInDistribution/:distribution" => "projects#queryProjectsInDistribution" , :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } post "projects/buildProject" diff --git a/dibs-web/public/index.html b/dibs-web/public/index.html index 3a72cb5..c782c5f 100644 --- a/dibs-web/public/index.html +++ b/dibs-web/public/index.html @@ -680,14 +680,6 @@ Contributors:
- -
- -
-

@@ -718,14 +710,6 @@ Contributors:
- -
- -
-

diff --git a/dibs-web/public/javascripts/jobs.js b/dibs-web/public/javascripts/jobs.js index 4935ad2..c221472 100644 --- a/dibs-web/public/javascripts/jobs.js +++ b/dibs-web/public/javascripts/jobs.js @@ -351,6 +351,7 @@ function jobUpdateList(condition, param, distribution, selectedStatus) { var update_ajax = updateList(item, function(xml) { var firstLi= $("#jobList li").first(); + // Add new job list $(xml).find("JobList").find("Job").each(function(){ var id = $(this).find("Id").text(); var li = generateHtmlJobList($(this)); @@ -366,8 +367,10 @@ function jobUpdateList(condition, param, distribution, selectedStatus) { console.log("ADD List :"+id); }); + // Update working job list $(xml).find("WorkingJobList").find("Job").each(function(){ var job_id = $(this).find("Id").text(); + var parent_job_id = $(this).find("ParentJobId").text(); var job_status = $(this).find("Status").text(); var start_time = $(this).find("StartTime").text(); var end_time = $(this).find("EndTime").text(); @@ -397,11 +400,34 @@ function jobUpdateList(condition, param, distribution, selectedStatus) { font_color = "black"; break; } - var html_status = ''+job_status+''; - var html_time = 'TIME: ' +start_time+ ' ~ '+end_time+ ''; - $("#jobs-li-status-"+job_id).html(html_status); - $("#jobs-li-time-"+job_id).html(html_time); - console.log("UPDATE List :"+job_id); + + // in case, exist job list element or not exist + if($("#jobs-li-"+job_id).length != 0) { + var html_status = ''+job_status+''; + var html_time = 'TIME: ' +start_time+ ' ~ '+end_time+ ''; + $("#jobs-li-status-"+job_id).html(html_status); + $("#jobs-li-time-"+job_id).html(html_time); + console.log("UPDATE List :"+job_id); + } + else { + var next_parent_job_li = $("#jobs-li-"+parent_job_id).nextAll(".jobs-li-header").first(); + console.log(parent_job_id); + console.log($("#jobs-li-"+parent_job_id)); + console.log(next_parent_job_li); + console.log(next_parent_job_li.text()); + + var li = generateHtmlJobList($(this)); + + $(li).insertBefore(next_parent_job_li); + $("#jobList").listview('refresh'); + $("#jobs-li-link-"+job_id).popupWindow({ + height:900, + width:800, + top:30, + left:50 + }); + console.log("ADD child list :"+job_id); + } }); }); @@ -551,45 +577,63 @@ function generateHtmlJobList(xml) { if(jobAttribute == "SINGLE") { - li = '
  • ' - + id+ ' ' +projectName+ '
  • ' - + '
  • ' + li = '
  • ' + + ''+id+ ' ' +projectName+ ''+distribution+'
  • ' + + '
  • ' + + '' + '

    ' +projectName+ '

    ' + '

    ID : ' +id+ '

    ' + '

    TYPE : ' +jobType+ '

    ' + '

    OS : ' + os + '

    ' + '

    USER : ' +userName+ '

    ' + '

    TIME: ' +startTime+ ' ~ '+endTime+ '

    '; + + li = li + '

    '+jobStatus+'

    '; + li = li + ''; if(queryDistribution == "ALL") { li = li + '

    DISTRIBUTION: ' +distribution+ '

    '; } - - li = li + '

    '+jobStatus+'

    '; li = li + '
  • '; } else if(jobAttribute == "MULTI") { - li = '
  • ' +id+ ' ' +jobType+ '
  • ' - + '
  • ' + li = '
  • ' + + ''+id+ ' ' +projectName+ ''+distribution+'
  • ' + + '
  • ' + + '' + '

    USER : ' +userName+ '

    ' + '

    TIME: ' +startTime+ ' ~ '+endTime+ '

    '; + + ''; + + li = li + '

    '+jobStatus+'

    '; + li = li + ''; if(queryDistribution == "ALL") { li = li + '

    DISTRIBUTION: ' +distribution+ '

    '; } - - li = li + '

    '+jobStatus+'

    '; li = li + '
  • '; } else if(jobAttribute == "CHILD") { - li = '
  • ' + li = '
  • ' + + '' + '

    ' +projectName+ '

    ' + '

    ID : ' +id+ '

    ' + '

    TYPE : ' +jobType+ '

    ' + '

    OS : ' +os+ '

    ' + '

    TIME: ' +startTime+ ' ~ '+endTime+ '

    '; + + ''; li = li + '

    '+jobStatus+'

    '; + li = li + ''; li = li + '
  • '; } @@ -598,9 +642,10 @@ function generateHtmlJobList(xml) { function searchWorkingList() { working_job_array = new Array(); - $("#jobList .jobs-list-status").each(function(index) { - var job_status = $(this).text(); - var job_id = $(this).attr("title"); + $("#jobList .jobs-list-data").each(function(index) { + var job_attr = $(this).find(".jobs-li-hidden-attr").text(); + var job_id = $(this).find(".jobs-li-hidden-id").text(); + var job_status= $(this).find(".jobs-li-status").text(); switch(job_status) { case "INITIALIZING" : @@ -609,7 +654,9 @@ function searchWorkingList() { case "WORKING" : case "REMOTE_WORKING" : case "WAITING" : - working_job_array.push(job_id); + if(job_attr != "CHILD") { + working_job_array.push(job_id); + } break; default: break;