Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

taskprogress.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let PM;
  6. (function (PM) {
  7. let Components;
  8. (function (Components) {
  9. class TaskProgress extends Unibase.Platform.Core.BaseComponent {
  10. cssFiles() {
  11. return [];
  12. }
  13. jsFiles() {
  14. return ['apps/pm/managers/taskmanager.js'];
  15. }
  16. html(id, containerid) {
  17. let html = `<div class="b-a wrapper"><div id="bizgaze_ErrorMessages" class="clear"></div><div class="card"><div class="card-header card-header-action"><span class="" id="hf-widget-title_Progessbar">Task Progress</span></div><div class="card-body"><div class="row"><div class='col-sm-2 pl-70'><strong class='text-right'/></div></div><div class="row"><div class="col-sm-12 pm_taskList"></div></div></div></div></div>`;
  18. $("." + containerid).html(html);
  19. return "";
  20. }
  21. init(containerid) {
  22. var instance = this;
  23. var id = 0;
  24. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  25. for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
  26. if (obj.Key === "hf_" + InstalledAppId + "_recordid") {
  27. id = Number(obj.Value);
  28. }
  29. }
  30. instance.load(id, containerid, null);
  31. }
  32. load(id, containerid, callback) {
  33. this.html(id, containerid);
  34. var taskid = Number(id);
  35. Bizgaze.Apps.PM.Components.TaskProgress.Instance().LoadProgressBar(taskid);
  36. }
  37. LoadProgressBar(taskid) {
  38. var instance = this;
  39. instance.fileCacheHelper.loadJsFile("apps/pm/managers/taskmanager.js", function () {
  40. Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTasks(taskid).then(function (response) {
  41. var data = JSON.parse(response.result)[0];
  42. instance.refstatusId = data.refstatusid;
  43. instance.percent = data.percentage;
  44. var html = "";
  45. $(".pm_taskList").html('<ul class="list-group no-radius m-b-md list-group-sm no-border pm-task-list"></ul>');
  46. $(".pm-task-list").html('<li class="pm-task-item hidden"></li>');
  47. if (response.result != null) {
  48. html += '<li class="pm-task-list-item-' + data.taskid + '">' +
  49. '<div class="">' +
  50. '<div class="row showProgressBar_' + data.taskid + '">' +
  51. '<div class="col-11 m-t-xs pl-2 taskPercentage-' + data.taskid + '" data-taskPercentage="' + data.percentage + '">' +
  52. '<div class="taskProgress taskProgress-' + data.taskid + '" ><div class="progress-label" style="color:#ff0000;position:absolute;left:50%;top:4px;font-weight:bold;">0%</div></div>' +
  53. '</div>' +
  54. '<div class="col-1 m-t-xs pl-0">' +
  55. '<button type="button" id ="ProgressButton" onclick="javascript:Unibase.Apps.PM.Components.TaskProgress.Instance().toggleProgress(' + data.taskid + ')" class="btn btn-sm btn-info btn-block pull-right" style="width:50px;"><i class="fa fa-pencil"></i></button>' +
  56. '</div>' +
  57. '</div>' +
  58. '<div class="row editProgressBar_' + data.taskid + ' hidden">' +
  59. '<div class="col-11 mt-5 pl-2 m-t-xs taskPercentage-' + data.taskid + '" data-taskPercentage="' + data.percentage + '">' +
  60. '<div class="pmTask_Slider pmTask_Slider-' + data.taskid + '"><div class="slider-label" style="color:#ff0000;position:absolute;left:50%;font-weight:bold;">0%</div><div id="custom-handle-' + data.taskid + '" style="width:2em;height:1.6em;top:50%;margin-top:-.8em;text-align:center;line-height:1.6em;" class="ui-slider-handle"></div><input class="hdnTaskId" type="hidden" data-taskId="' + data.taskid + '" /></div>' +
  61. '</div>' +
  62. '<div class="col-1 pl-0 m-t-xs">' +
  63. '<button type="button" id="ProgressButton" onclick="javascript:Unibase.Apps.PM.Components.TaskProgress.Instance().toggleProgress(' + data.taskid + ')" class="btn btn-info btn-sm btn-block pull-right" style="width:50px;"><i class="fa fa-times"></i></button>' +
  64. '</div>' +
  65. '</div>' +
  66. '</div>' +
  67. '</li>';
  68. $(".pm-task-item:last").before(html);
  69. Bizgaze.Apps.PM.Components.TaskProgress.Instance().loadProgress(data.taskid);
  70. }
  71. $('.pmTask_Slider').each(function () {
  72. var element = $(this).find('.hdnTaskId');
  73. var taskId = $(element).data('taskid');
  74. var handle = $("#custom-handle-" + taskId + "");
  75. var count = 0;
  76. $(this).slider({
  77. min: 0,
  78. max: 100,
  79. step: 1,
  80. create: function () {
  81. handle.text($(this).slider("value"));
  82. },
  83. slide: function (event, ui) {
  84. handle.text(ui.value);
  85. },
  86. change: function (event, ui) {
  87. }
  88. });
  89. });
  90. });
  91. });
  92. }
  93. loadProgress(TaskId) {
  94. var element = $('.pm_taskList');
  95. var ele = element.find(".taskPercentage-" + TaskId + "");
  96. var label = ele.find(".progress-label");
  97. this.percent = ele.data('taskpercentage');
  98. element.find(".taskProgress-" + TaskId + "").progressbar({
  99. value: this.percent,
  100. });
  101. if (this.percent > 50) {
  102. $(".progress-label").css({ 'color': 'white' });
  103. }
  104. label.text(this.percent + '%');
  105. var styles = {
  106. backgroundColor: "green",
  107. height: "50px"
  108. };
  109. $(".taskProgress-" + TaskId + "").find(".ui-progressbar-value").css(styles);
  110. element.find(".pmTask_Slider-" + TaskId + "").slider({
  111. min: 0,
  112. max: 100,
  113. step: 1,
  114. value: this.percent,
  115. range: "min",
  116. });
  117. var refstatusid = this.refstatusId;
  118. if (refstatusid == 3 || refstatusid == 6)
  119. $("#ProgressButton").prop("disabled", false);
  120. else
  121. $("#ProgressButton").prop("disabled", true);
  122. }
  123. toggleProgress(TaskId) {
  124. $('.showProgressBar_' + TaskId).toggleClass('hidden');
  125. $('.editProgressBar_' + TaskId).toggleClass('hidden');
  126. $('.inpTaskCompletedDate-' + TaskId).toggleClass('hidden');
  127. $('.spnTaskCompletedDate-' + TaskId).toggleClass('hidden');
  128. var element = $('.pm_taskList');
  129. var ele = element.find(".taskPercentage-" + TaskId + "");
  130. var label1 = ele.find(".slider-label");
  131. var percentage = this.percent;
  132. var sliderstyle = {
  133. backgroundColor: "green",
  134. cursor: "pointer"
  135. };
  136. $(".ui-state-default").css(sliderstyle);
  137. $(".ui-slider-range").css("background-color", "green");
  138. $(".ui-slider").css("height", "22px");
  139. if (percentage > 50) {
  140. $(".slider-label").css({ 'color': 'white' });
  141. }
  142. label1.text(percentage + '%');
  143. var ele1 = $('.pm_taskList').parent().parent();
  144. var element1 = ele1.find('.pmTask_Slider');
  145. element1.slider({
  146. min: 0,
  147. max: 100,
  148. step: 1,
  149. value: percentage,
  150. range: "min",
  151. create: function (event, ui) {
  152. var tooltip = $('<div class="tooltip" />');
  153. $(event.target).find('.ui-slider-handle').append(tooltip);
  154. },
  155. slide: function (event, ui) {
  156. $(ui.handle).find('.tooltip').text(ui.value);
  157. },
  158. change: function (event, ui) {
  159. var currentDate = new Date($.now());
  160. var postData = {
  161. taskid: TaskId,
  162. percentage: ui.value,
  163. timerstoppeddate: new Date(),
  164. timer: '',
  165. pausedate: new Date(),
  166. istaskpause: false,
  167. isresumetask: false,
  168. istaskstopped: false,
  169. };
  170. Bizgaze.Apps.PM.Managers.TaskManager.Instance().updateTaskPercentage(postData).then(function (response) {
  171. Bizgaze.Apps.PM.Components.TaskProgress.Instance().LoadProgressBar(TaskId);
  172. });
  173. }
  174. });
  175. }
  176. static Instance() {
  177. if (this.instance === undefined) {
  178. this.instance = new TaskProgress();
  179. }
  180. return this.instance;
  181. }
  182. }
  183. Components.TaskProgress = TaskProgress;
  184. })(Components = PM.Components || (PM.Components = {}));
  185. })(PM = Apps.PM || (Apps.PM = {}));
  186. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  187. })(Bizgaze || (Bizgaze = {}));