Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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 = {}));