task-form.init.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. /******/ (function() { // webpackBootstrap
  2. var __webpack_exports__ = {};
  3. /*!**********************************************!*\
  4. !*** ./resources/js/pages/task-form.init.js ***!
  5. \**********************************************/
  6. /*
  7. Template Name: Skote - Admin & Dashboard Template
  8. Author: Themesbrand
  9. Website: https://themesbrand.com/
  10. Contact: themesbrand@gmail.com
  11. File: Task Form Init Js File
  12. */
  13. var updateid = '';
  14. var selectedstatus = '';
  15. var taskid = '';
  16. var i = 0;
  17. $(document).ready(function () {
  18. 'use strict'; //Task Assign User Validation
  19. $("#NewtaskForm").validate({
  20. rules: {
  21. 'member[]': {
  22. required: true
  23. }
  24. },
  25. errorPlacement: function errorPlacement(error, element) {
  26. if (element.is(':checkbox')) {
  27. error.insertAfter('#taskassignee');
  28. } else {
  29. error.insertAfter(element);
  30. }
  31. }
  32. }); //Add New Task
  33. $(".addtask-btn").click(function () {
  34. var id = $(this).attr('data-id');
  35. $('#updatetaskdetail').css('display', 'none');
  36. $('#addtask').css('display', 'block');
  37. $('.update-task-title').css('display', 'none');
  38. $('.add-task-title').css('display', 'block');
  39. $('#taskname').val('');
  40. $('#taskdesc').val('');
  41. $('#TaskStatus').val('');
  42. $('#taskbudget').val('');
  43. $('#taskassignee input').prop("checked", false);
  44. taskid = id;
  45. });
  46. $("select#TaskStatus").change(function () {
  47. selectedstatus = $(this).children("option:selected").val();
  48. }); //Add New Task with Validation
  49. $("#addtask").click(function () {
  50. $('#updatetaskdetail').css('display', 'none');
  51. $('#addtask').css('display', 'block');
  52. $('.update-task-title').css('display', 'none');
  53. $('.add-task-title').css('display', 'block');
  54. var newtaskid = makeid(5);
  55. var taskname = $("#taskname").val();
  56. var d = new Date();
  57. var strDate = d.getDate() + " " + d.toLocaleString('default', {
  58. month: 'short'
  59. }) + ", " + d.getFullYear();
  60. var taskdesc = $("#taskdesc").val();
  61. var newtaskdesc = '';
  62. if (taskdesc.length > 0) {
  63. newtaskdesc = "<ul class='ps-3 mb-4 text-muted' id='task-desc'>" + "<li class='py-1'>" + taskdesc + "</li>" + "</ul>";
  64. }
  65. var taskbudget = $("#taskbudget").val();
  66. var taskassignee = new Array();
  67. var taskassigneevalue = new Array();
  68. var src = "";
  69. $('#taskassignee input[type=checkbox]:checked').each(function () {
  70. taskassigneevalue.push($(this).attr("id"));
  71. taskassignee.push($(this).nextAll("img").attr("src"));
  72. });
  73. for (i = 0; i < taskassignee.length; i++) {
  74. src = src + '<div class="avatar-group-item"><a href="#" class="d-inline-block" value="' + taskassigneevalue[i] + '"><img src="' + taskassignee[i] + '" class="rounded-circle avatar-xs" alt=""></a></div>';
  75. }
  76. var statuscolor;
  77. if (selectedstatus == "Waiting") {
  78. statuscolor = "badge-soft-secondary";
  79. } else if (selectedstatus == "Approved") {
  80. statuscolor = "badge-soft-primary";
  81. } else if (selectedstatus == "Complete") {
  82. statuscolor = "badge-soft-success";
  83. } else if (selectedstatus == "Pending") {
  84. statuscolor = "badge-soft-warning";
  85. }
  86. if (taskname.length == 0 || taskbudget.length == 0 || selectedstatus.length == 0 || taskassignee.length == 0) {
  87. $("#NewtaskForm").validate().element("#taskname");
  88. $("#NewtaskForm").validate().element("#taskassignee input:checkbox");
  89. $("#NewtaskForm").validate().element("#TaskStatus");
  90. $("#NewtaskForm").validate().element("#taskbudget");
  91. } else {
  92. $(taskid).append("<div class='card task-box' id='" + newtaskid + "'>" + "<div class='card-body'>" + "<div class='dropdown float-end'>" + "<a href='#' class='dropdown-toggle arrow-none' data-bs-toggle='dropdown' aria-expanded='false'>" + "<i class='mdi mdi-dots-vertical m-0 text-muted h5'></i>" + "</a>" + "<div class='dropdown-menu dropdown-menu-end'>" + "<a class='dropdown-item edittask-details' href='#' data-bs-toggle='modal' data-bs-target='.bs-example-modal-lg' data-id='#" + newtaskid + "'>Edit</a>" + "<a class='dropdown-item deletetask' href='#' data-id='#" + newtaskid + "'>Delete</a>" + "</div>" + "</div>" + "<div class='float-end ms-2'>" + "<span class='badge rounded-pill font-size-12 " + statuscolor + "' id='task-status'>" + selectedstatus + "</span>" + "</div>" + "<div>" + "<h5 class='font-size-15'><a href='javascript: void(0);' class='text-dark' id='task-name'>" + taskname + "</a></h5>" + "<p class='text-muted mb-4' id='task-date'>" + strDate + "</p>" + "</div>" + newtaskdesc + "<div class='avatar-group float-start task-assigne'>" + src + "</div>" + "<div class='text-end'>" + "<h5 class='font-size-15 mb-1' id='task-budget'>$ " + taskbudget + "</h5>" + "<p class='mb-0 text-muted'>Budget</p>" + "</div>" + "</div>" + "</div>");
  93. $('#modalForm').modal('toggle');
  94. }
  95. });
  96. $('#modalForm').on('hidden.bs.modal', function (e) {
  97. var validator = $("#NewtaskForm").validate();
  98. $('#taskname').removeClass('error').next('label.error').remove();
  99. $('#TaskStatus').removeClass('error').next('label.error').remove();
  100. $('#taskbudget').removeClass('error').next('label.error').remove();
  101. validator.resetForm();
  102. }); //Update Task Details with Validation
  103. $("#updatetaskdetail").click(function () {
  104. var statuscolor;
  105. if (selectedstatus == "Waiting") {
  106. statuscolor = "badge-soft-secondary";
  107. } else if (selectedstatus == "Approved") {
  108. statuscolor = "badge-soft-primary";
  109. } else if (selectedstatus == "Complete") {
  110. statuscolor = "badge-soft-success";
  111. } else if (selectedstatus == "Pending") {
  112. statuscolor = "badge-soft-warning";
  113. }
  114. var taskname = $('#taskname').val();
  115. var d = new Date();
  116. var strDate = d.getDate() + " " + d.toLocaleString('default', {
  117. month: 'short'
  118. }) + ", " + d.getFullYear();
  119. var taskdesc = $("#taskdesc").val();
  120. var taskbudget = $("#taskbudget").val();
  121. var taskassignee = new Array();
  122. var taskassigneevalue = new Array();
  123. var src = "";
  124. $('#taskassignee input[type=checkbox]:checked').each(function () {
  125. taskassigneevalue.push($(this).attr("id"));
  126. taskassignee.push($(this).nextAll("img").attr("src"));
  127. });
  128. for (i = 0; i < taskassignee.length; i++) {
  129. src = src + '<div class="avatar-group-item"><a href="#" class="d-inline-block" value="' + taskassigneevalue[i] + '"><img src="' + taskassignee[i] + '" class="rounded-circle avatar-xs" alt=""></a></div>';
  130. }
  131. var newtaskdesc = '';
  132. if (taskdesc.length > 0) {
  133. newtaskdesc = "<ul class='ps-3 mb-4 text-muted' id='task-desc'>" + "<li class='py-1'>" + taskdesc + "</li>" + "</ul>";
  134. }
  135. if (taskname.length == 0 || taskbudget.length == 0 || selectedstatus.length == 0 || taskassignee.length == 0) {
  136. $("#NewtaskForm").validate().element("#taskname");
  137. $("#NewtaskForm").validate().element("#taskassignee input:checkbox");
  138. $("#NewtaskForm").validate().element("#TaskStatus");
  139. $("#NewtaskForm").validate().element("#taskbudget");
  140. } else {
  141. $(updateid).html("<div class='card-body'>" + "<div class='dropdown float-end'>" + "<a href='#' class='dropdown-toggle arrow-none' data-bs-toggle='dropdown' aria-expanded='false'>" + "<i class='mdi mdi-dots-vertical m-0 text-muted h5'></i>" + "</a>" + "<div class='dropdown-menu dropdown-menu-end'>" + "<a class='dropdown-item edittask-details' href='#' data-bs-toggle='modal' data-bs-target='.bs-example-modal-lg' data-id='" + updateid + "'>Edit</a>" + "<a class='dropdown-item deletetask' href='#' data-id='" + updateid + "'>Delete</a>" + "</div>" + "</div> " + "<div class='float-end ms-2'>" + "<span class='badge rounded-pill font-size-12 " + statuscolor + "' id='task-status'>" + selectedstatus + "</span>" + "</div>" + "<div>" + "<h5 class='font-size-15'><a href='javascript: void(0);' class='text-dark' id='task-name'>" + taskname + "</a></h5>" + "<p class='text-muted'>" + strDate + "</p>" + "</div>" + newtaskdesc + "<div class='avatar-group float-start task-assigne'>" + src + "</div>" + "<div class='text-end'>" + "<h5 class='font-size-15 mb-1' id='task-budget'>$ " + taskbudget + "</h5>" + "<p class='mb-0 text-muted'>Budget</p>" + "</div>" + "</div>");
  142. $('#modalForm').modal('hide');
  143. }
  144. }); //Edit Task Details with Validation
  145. $('.main-content').on('click', '.edittask-details', function (event) {
  146. var id = $(this).attr('data-id');
  147. updateid = id;
  148. var validator = $("#NewtaskForm").validate();
  149. validator.resetForm();
  150. $('#updatetaskdetail').css('display', 'block');
  151. $('#addtask').css('display', 'none');
  152. $('.update-task-title').css('display', 'block');
  153. $('.add-task-title').css('display', 'none');
  154. var name = $(id).find('#task-name').text();
  155. var desc = $(id).find('#task-desc').text();
  156. var budget = parseInt($(id).find('#task-budget').text().replace(/[^0-9.]/g, ""));
  157. var status = $(id).find('#task-status').text();
  158. $('#taskassignee input').prop("checked", false);
  159. $(id).find('.task-assigne a').each(function () {
  160. var assigneusers = $(this).attr('value');
  161. $("#" + assigneusers).prop("checked", true);
  162. });
  163. $('#taskname').val(name);
  164. $('#taskdesc').val(desc);
  165. $('#taskbudget').val(budget);
  166. $('#TaskStatus').val(status);
  167. selectedstatus = status;
  168. }); //Delete Task
  169. $('.main-content').on('click', '.deletetask', function (event) {
  170. var id = $(this).attr('data-id');
  171. console.log('Task Deleted Successfully');
  172. $(id).remove();
  173. });
  174. }); //Generate ID
  175. function makeid(length) {
  176. var result = '';
  177. var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  178. var charactersLength = characters.length;
  179. for (var i = 0; i < length; i++) {
  180. result += characters.charAt(Math.floor(Math.random() * charactersLength));
  181. }
  182. return result;
  183. }
  184. /******/ })()
  185. ;