"); - - page = "logs"; - updateTools (); - document.getElementById("refreshbutton").className = "refreshbutton"; - } - }); -} - -function clearWorkers () -{ - if (confirm("Do you really want to clear all the workers?")) - { - var _data = ""; - for (j=workers.length-1; j >= 0; j--) - { - var worker = workers[j]; - if (selectedWorkers[worker.Name]) - _data += "id="+str(worker.Name)+"&"; - } - $.ajax({ type: "GET", url: "/json/clearworkers", data: _data, dataType: "json", success: - function () - { - selectedWorkers = {} - reloadWorkers (); - updateWorkerProps (); - } - }); - } -} - -function formatDate (_date) -{ - var date = new Date(_date*1000) - return date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate() + ' ' + date.getHours () + ':' + date.getMinutes () + ':' + date.getSeconds(); -} - -function formatDuration (secondes) -{ - var days = Math.floor (secondes / (60*60*24)); - var hours = Math.floor ((secondes-days*60*60*24) / (60*60)); - var minutes = Math.floor ((secondes-days*60*60*24-hours*60*60) / 60); - var secondes = Math.floor (secondes-days*60*60*24-hours*60*60-minutes*60); - if (days > 0) - return days + " d " + hours + " h " + minutes + " m " + secondes + " s"; - if (hours > 0) - return hours + " h " + minutes + " m " + secondes + " s"; - if (minutes > 0) - return minutes + " m " + secondes + " s"; - return secondes + " s"; -} - -// Timer callback -function timerCB () -{ - if (document.getElementById("autorefresh").checked) - refresh (); - - // Fire a new time event - timer=setTimeout(timerCB,4000); -} - -function refresh () -{ - document.getElementById("refreshbutton").className = "refreshing"; - if (page == "jobs") - reloadJobs (); - else if (page == "workers") - reloadWorkers (); - else if (page == "activities") - reloadActivities (); - else if (page == "logs") - renderLog (logId); -} - -function compareStrings (a,b,toupper) -{ - if (a < b) - return toupper ? -1 : 1; - if (a == b) - return 0; - return toupper ? 1 : -1; -} - -function compareNumbers (a,b,toupper) -{ - return toupper ? a-b : b-a; -} - -function showJobs () -{ - $("#jobsTab").show (); - $("#workersTab").hide (); - $("#activitiesTab").hide (); - $("#logsTab").hide (); - document.getElementById("jobtab").className = "activetab"; - document.getElementById("workertab").className = "unactivetab"; - document.getElementById("activitytab").className = "unactivetab"; - document.getElementById("logtab").className = "unactivetab"; - - page = "jobs"; - updateTools (); -} - -// Returns the HTML code for a job title column -function addSumEmpty (str) -{ - if (str == undefined) - return "Logs for job "+jobId+":
"+data+"
| "; - var value = jobs[0]; - if (value) - { - table += alias; - if (attribute == jobsSortKey && jobsSortKeyToUpper) - table += " ↓"; - if (attribute == jobsSortKey && !jobsSortKeyToUpper) - table += " ↑"; - } - else - table += attribute; - table += " | "; - } - - function addTitleHTML (attribute) - { - addTitleHTMLEx (attribute, attribute) - } - - table += "||||||
|---|---|---|---|---|---|---|
| " + attr + " | "; - } - //addTD (job.Order); - addTD (job.ID); - table += "" + job.Title + " | \n"; - - // URL - if (job.URL != "") - addTD ("Open") - else - addTD ("") - - addTD (job.User); - table += ""+job.State+" | "; - addTD (job.Priority); - if (job.Total > 0) - { - table += ""+job.TotalFinished+" | "; - table += ""+job.TotalWorking+" | "; - table += ""+job.TotalErrors+" | "; - table += ""+job.Total+" | "; - } - else - { - addTD (""); - addTD (""); - addTD (""); - addTD (""); - } - - // *** Progress bar - var progress = "" - var lProgress, gProgress = getJobProgress (job) - lProgress = Math.floor(lProgress*100.0); - gProgress = Math.floor(gProgress*100.0); - - // A bar div - progress = "
| "; - var value = workers[0]; - if (value && value[attribute] != null) - { - table += attribute; - if (attribute == workersSortKey && workersSortKeyToUpper) - table += " ↓"; - if (attribute == workersSortKey && !workersSortKeyToUpper) - table += " ↑"; - } - else - table += attribute; - table += " | "; - } - - addTitleHTML ("Name"); - addTitleHTML ("Active"); - addTitleHTML ("State"); - addTitleHTML ("Affinity"); - addTitleHTML ("Load"); - addTitleHTML ("Memory"); - addTitleHTML ("LastJob"); - addTitleHTML ("Finished"); - addTitleHTML ("Error"); - addTitleHTML ("IP"); - - table += "|||||||||
|---|---|---|---|---|---|---|---|---|---|
| "+worker.Name+" | "+ - ""+worker.Active+" | "+ - ""+worker.State+" | "+ - ""+worker.Affinity+" | "+ - ""+load+" | "+ - ""+memory+" | "+ - ""+worker.LastJob+" | "+ - ""+worker.Finished+" | "+ - ""+worker.Error+" | "+ - ""+worker.IP+" | "+ - "
| "; - var value = activities[0]; - if (value && value[attribute] != null) - { - table += attribute; - if (attribute == activitiesSortKey && activitiesSortKeyToUpper) - table += " ↓"; - if (attribute == activitiesSortKey && !activitiesSortKeyToUpper) - table += " ↑"; - } - else - table += attribute; - table += " | "; - } - - addTitleHTML ("Start"); - addTitleHTML ("JobID"); - addTitleHTML ("JobTitle"); - addTitleHTML ("State"); - addTitleHTML ("Worker"); - addTitleHTML ("Duration"); - - table += "|||||
|---|---|---|---|---|---|
| "+date+" | "+ - ""+activity.JobID+" | "+ - ""+activity.JobTitle+" | "+ - ""+activity.State+" | "+ - ""+activity.Worker+" | "+ - ""+dura+" | "+ - "
| Title: | - | Priority: | - |
-
-
-
-
- |
| Command: | - | TimeOut: | - | |
| Directory: | - | Affinity: | - | |
| Dependencies: | - | Retry: | - | |
| URL: | - | User: | - | |
| Environment: | - |
| Affinity: | - |
-
-
-
- |
A small but beautiful job manager by Mercenaries Engineering - LGPL licence - Documentation
+"); - - page = "logs"; -} - -function clearWorkers () -{ - service.clearworkers (); - renderWorkers (); -} - -function formatDuration (secondes) -{ - var days = Math.floor (secondes / (60*60*24)); - var hours = Math.floor ((secondes-days*60*60*24) / (60*60)); - var minutes = Math.floor ((secondes-days*60*60*24-hours*60*60) / 60); - var secondes = Math.floor (secondes-days*60*60*24-hours*60*60-minutes*60); - if (days > 0) - return days + " d " + hours + " h " + minutes + " m " + secondes + " s"; - if (hours > 0) - return hours + " h " + minutes + " m " + secondes + " s"; - if (minutes > 0) - return minutes + " m " + secondes + " s"; - return secondes + " s"; -} - -// Timer callback -function timerCB () -{ - refresh (); - - // Fire a new time event - // timer=setTimeout("timerCB ()",4000); -} - -function refresh () -{ - if (page == "jobs") - renderJobs (); - else if (page == "workers") - renderWorkers (); - else if (page == "logs") - renderLog (logId); -} - -function renderJobs () -{ - $("#main").empty (); - - var jobs = service.getjobs (); - var table = "Logs for jod "+jobId+":
"+_log+"
| ID | Title | State | Try | Tools |
|---|---|---|---|---|
| "+job.ID+" | "+job.Title+" | "+job.State+" | "+job.Try+"/"+job.Retry+" | Log Remove |
| Name | State | Load | LastJob | Finished | Error |
|---|---|---|---|---|---|
| "+worker.Name+" | "+worker.State+" | "+worker.Load+" | "+worker.LastJob+" | "+worker.Finished+" | "+worker.Error+" |