comparison OrthancExplorer/explorer.js @ 2573:3372c5255333 jobs

StoreScuJob, Orthanc Explorer for jobs
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 09 May 2018 17:56:14 +0200
parents a95beca72e99
children b3da733d984c
comparison
equal deleted inserted replaced
2570:2e879c796ec7 2573:3372c5255333
1102 1102
1103 target.listview('refresh'); 1103 target.listview('refresh');
1104 } 1104 }
1105 }); 1105 });
1106 }); 1106 });
1107
1108
1109
1110 function ParseJobTime(s)
1111 {
1112 var t = (s.substr(0, 4) + '-' +
1113 s.substr(4, 2) + '-' +
1114 s.substr(6, 5) + ':' +
1115 s.substr(11, 2) + ':' +
1116 s.substr(13));
1117 var utc = new Date(t);
1118
1119 // Convert from UTC to local time
1120 return new Date(utc.getTime() - utc.getTimezoneOffset() * 60000);
1121 }
1122
1123
1124 function AddJobField(target, description, field)
1125 {
1126 if (!(typeof field === 'undefined')) {
1127 target.append($('<p>')
1128 .text(description)
1129 .append($('<strong>').text(field)));
1130 }
1131 }
1132
1133
1134 function AddJobDateField(target, description, field)
1135 {
1136 if (!(typeof field === 'undefined')) {
1137 target.append($('<p>')
1138 .text(description)
1139 .append($('<strong>').text(ParseJobTime(field))));
1140 }
1141 }
1142
1143
1144 $('#jobs').live('pagebeforeshow', function() {
1145 $.ajax({
1146 url: '../jobs?expand',
1147 dataType: 'json',
1148 async: false,
1149 cache: false,
1150 success: function(jobs) {
1151 var target = $('#all-jobs');
1152 $('li', target).remove();
1153
1154 jobs.map(function(job) {
1155 var li = $('<li>');
1156 var item = $('<a>');
1157 li.append(item);
1158 item.attr('href', '#job?uuid=' + job.ID);
1159 item.append($('<h1>').text(job.Type));
1160 item.append($('<span>').addClass('ui-li-count').text(job.State));
1161 AddJobField(item, 'ID: ', job.ID);
1162 AddJobField(item, 'Local AET: ', job.PublicContent.LocalAet);
1163 AddJobField(item, 'Remote AET: ', job.PublicContent.RemoteAet);
1164 AddJobDateField(item, 'Creation time: ', job.CreationTime);
1165 AddJobDateField(item, 'Completion time: ', job.CompletionTime);
1166 AddJobDateField(item, 'ETA: ', job.EstimatedTimeOfArrival);
1167 target.append(li);
1168 });
1169
1170 target.listview('refresh');
1171 }
1172 });
1173 });
1174
1175
1176 $('#job').live('pagebeforeshow', function() {
1177 if ($.mobile.pageData) {
1178 var pageData = DeepCopy($.mobile.pageData);
1179
1180 $.ajax({
1181 url: '../jobs/' + pageData.uuid,
1182 dataType: 'json',
1183 async: false,
1184 cache: false,
1185 success: function(job) {
1186 var target = $('#job-info');
1187 $('li', target).remove();
1188
1189 target.append($('<li>')
1190 .attr('data-role', 'list-divider')
1191 .text('General information about the job'));
1192
1193 var block = $('<li>');
1194 for (var i in job) {
1195 if (i == 'CreationTime' ||
1196 i == 'CompletionTime' ||
1197 i == 'EstimatedTimeOfArrival') {
1198 AddJobDateField(block, i + ': ', job[i]);
1199 } else if (i != 'InternalContent' &&
1200 i != 'PublicContent' &&
1201 i != 'Timestamp') {
1202 AddJobField(block, i + ': ', job[i]);
1203 }
1204 }
1205
1206 target.append(block);
1207
1208 target.append($('<li>')
1209 .attr('data-role', 'list-divider')
1210 .text('Detailed information'));
1211
1212 var block = $('<li>');
1213 for (var i in job.PublicContent) {
1214 AddJobField(block, i + ': ', JSON.stringify(job.PublicContent[i]));
1215 }
1216
1217 target.append(block);
1218
1219 target.listview('refresh');
1220
1221 $('#job-delete').closest('.ui-btn').show();
1222 $('#job-retry').closest('.ui-btn').hide();
1223 $('#job-resubmit').closest('.ui-btn').hide();
1224 $('#job-pause').closest('.ui-btn').hide();
1225 $('#job-resume').closest('.ui-btn').hide();
1226
1227 if (job.State == 'Running' ||
1228 job.State == 'Pending' ||
1229 job.State == 'Retry') {
1230 $('#job-pause').closest('.ui-btn').show();
1231 }
1232 else if (job.State == 'Success') {
1233 }
1234 else if (job.State == 'Failure') {
1235 $('#job-resubmit').closest('.ui-btn').show();
1236 }
1237 else if (job.State == 'Paused') {
1238 $('#job-resume').closest('.ui-btn').show();
1239 }
1240 }
1241 });
1242 }
1243 });