New UI layout
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.

list.index.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. /*Data loading start here*/
  2. import {
  3. getCookie
  4. } from "./cookiehelper.js";
  5. import {
  6. getData,
  7. getDataObj
  8. } from "./base.js";
  9. function loadData() {
  10. getData(
  11. "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/20"
  12. ).then(function(result) {
  13. let response = JSON.parse(result.result);
  14. if (response.length != 0) {
  15. // Notifcations
  16. let bdyUI = '<div class="accordion" id="notifi-list">';
  17. for (var i = 0; i < response.length; i++) {
  18. bdyUI += `<li class="item-li" id="${
  19. response[i].ReminderId
  20. }" data-ref="${
  21. response[i].RedirectOptions.RefId
  22. }" data-installedAppId="${
  23. response[i].RedirectOptions.InstalledAppId
  24. }" data-formId="${response[i].RedirectOptions.CreateFormId}">
  25. <div class="accordion-header" id="accHeader-${
  26. response[i].ReminderId
  27. }">
  28. <div class="notifiListItms accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#collapse-${
  29. response[i].ReminderId
  30. }" aria-expanded="false" aria-controls="collapseOne">
  31. <div class="row m-0 w-100 p-0 ">
  32. <div class="col-1 ">
  33. <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
  34. </div>
  35. <div class="col-4 text-truncate">
  36. <span class="mx-1">${
  37. response[i].Subject
  38. }</span>
  39. </div>
  40. <div class="col-5 text-truncate">
  41. <span class="mx-1">${
  42. response[i].Message
  43. }</span>
  44. </div>
  45. <div class="col-2 text-truncate">
  46. <span class="mx-1">22 minutes ago</span>
  47. </div>
  48. </div>
  49. </div>
  50. <div id="collapse-${
  51. response[i].ReminderId
  52. }" class="accordion-collapse collapse" aria-labelledby="accHeader-${
  53. response[i].ReminderId
  54. }" data-bs-parent="#notifi-list">
  55. <div class="accordion-body" id="accBody${
  56. response[i].ReminderId
  57. }">
  58. </div>
  59. </div>
  60. </div>
  61. </li>`;
  62. }
  63. bdyUI += "</div>";
  64. $(".bdy-ul").append(bdyUI);
  65. $(".notifiListItms").on("click", function() {
  66. let _this = $(this).parents(".item-li");
  67. let obj = {
  68. FromDate: "2022/11/30",
  69. InstalledAppId: Number($(_this).attr("data-installedAppId")),
  70. RecordId: Number($(_this).attr("data-ref")),
  71. ToDate: "2022/11/30",
  72. };
  73. //let obj = { "FromDate": "2022/11/30", "InstalledAppId": 102530270000109, "RecordId": 102533490346298, "ToDate": "2022/11/30" };
  74. getDataObj(
  75. "apis/v4/unibase/platform/widgets/getdefaultwidget",
  76. obj,
  77. true,
  78. "POST"
  79. ).then(function(response) {
  80. let res = JSON.parse(response.result),
  81. html = "";
  82. if (response.message == "200" && response.errors == null) {
  83. html = `<ul class="p-0 m-0 d-flex flex-row">`;
  84. if (
  85. res.AppConfigurations != null &&
  86. res.AppConfigurations.length > 0
  87. ) {
  88. for (var k = 0; k < res.AppConfigurations.length; k++) {
  89. html += `<li class="mx-2 btn-outline-primary btn btn-sm">${res.AppConfigurations[k].SettingName}</li>`;
  90. }
  91. } else {
  92. html += `<li class="p-1 my-0 alert alert-danger" role="alert">
  93. App Configurations Not configure
  94. </li>`;
  95. }
  96. if (res.Stages != null) {
  97. for (var x = 0; x < res.Stages.length; x++) {
  98. if (res.Stages[x].IsDefault) {
  99. html += `<li class="ml-auto">
  100. <a class="btn btn-sm btn-secondary dropdown-toggle" href="javascript:void(0)" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  101. ${res.Stages[x].StageName}
  102. </a>
  103. <ul class="dropdown-menu">`;
  104. }
  105. }
  106. for (var i = 0; i < res.Stages.length; i++) {
  107. if (!res.Stages[i].IsDefault) {
  108. html += `<li><a class="dropdown-item" href="javascript:void(0);">${res.Stages[i].StageName}</a></li>`;
  109. }
  110. }
  111. html += "</ul></li>";
  112. } else {
  113. html += `<li class="p-1 my-0 alert alert-danger ml-auto" role="alert">
  114. No Stages
  115. </li>`;
  116. }
  117. html += `<li class="p-1 mx-2 my-0 btn-outline-info detailBtn btn btn-sm" data-appid="${Number($(_this).attr("data-installedAppId"))}" data-recordid="${Number($(_this).attr("data-ref"))}">Details-Page</li></ul>`;
  118. } else {
  119. html += `<div class="alert alert-danger" role="alert">
  120. ${response.message} ${response.errors}
  121. </div>`;
  122. }
  123. $(_this).find(".accordion-body").html(html);
  124. detailClick();
  125. });
  126. });
  127. }
  128. });
  129. getData(
  130. "apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/20"
  131. ).then(function(tskResp) {
  132. let response = JSON.parse(tskResp.result);
  133. if (response.length != 0) {
  134. let _tskhtml = '<div class="accordion" id="task-list">';
  135. for (var i = 0; i < response.length; i++) {
  136. _tskhtml += `<li class="item-li" id="${
  137. response[i].ReminderId
  138. }" data-ref="${
  139. response[i].RedirectOptions.RefId
  140. }" data-installedAppId="${
  141. response[i].RedirectOptions.InstalledAppId
  142. }" data-formId="${response[i].RedirectOptions.CreateFormId}">
  143. <div class="accordion-header" id="accHeader-${
  144. response[i].ReminderId
  145. }">
  146. <div class="tskListItms accordion-button collapsed" data-bs-toggle="collapse" data-bs-target="#collapse-${
  147. response[i].ReminderId
  148. }" aria-expanded="false" aria-controls="collapseOne">
  149. <div class="row m-0 w-100 p-0 ">
  150. <div class="col-1 ">
  151. <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
  152. </div>
  153. <div class="col-4 text-truncate">
  154. <span class="mx-1">${
  155. response[i].Subject
  156. }</span>
  157. </div>
  158. <div class="col-5 text-truncate">
  159. <span class="mx-1">${
  160. response[i].Message
  161. }</span>
  162. </div>
  163. <div class="col-2 text-truncate">
  164. <span class="mx-1">2 seconds</span>
  165. </div>
  166. </div>
  167. </div>
  168. <div id="collapse-${
  169. response[i].ReminderId
  170. }" class="accordion-collapse collapse" aria-labelledby="accHeader-${
  171. response[i].ReminderId
  172. }" data-bs-parent="#notifi-list">
  173. <div class="accordion-body" id="accBody${
  174. response[i].ReminderId
  175. }">
  176. <ul class="p-0 m-0 d-flex flex-row justify-content-between">
  177. <li class="mx-2 btn-outline-success btn btn-sm">Confirm</li>
  178. <li class="mx-2 btn-outline-danger btn btn-sm">Reject</li>
  179. <li class="mx-2 btn-outline-primary btn btn-sm">Close</li>
  180. <li class="mx-2 btn-outline-info detailBtn btn btn-sm" data-appId="${response[i].RedirectOptions.InstalledAppId}" data-recordId="${response[i].RedirectOptions.RefId}">Details-Page</li>
  181. </ul>
  182. </div>
  183. </div>
  184. </div>
  185. </li>`;
  186. }
  187. _tskhtml += "</div>";
  188. $(".bdy-ul").append(_tskhtml);
  189. detailClick()
  190. }
  191. });
  192. }
  193. export function detailClick(){
  194. $('.detailBtn').click(function() {
  195. $('.bdy-ul').addClass('d-none');
  196. let installedAppId = +$(this).attr('data-appId');
  197. let recordId = +$(this).attr('data-recordId')
  198. // Unibase.Themes.Compact.Components.Notification.Instance().loadReminderDetails(105013010001972,105010260000090,'Details','null',6,0,null)
  199. const cookie = getCookie('_idty');
  200. if (cookie) {
  201. const {
  202. unibaseId,
  203. tenantId,
  204. userId
  205. } = JSON.parse(cookie);
  206. debugger;
  207. $('#detailIframe').html(
  208. `<iframe width="100%" style="min-height:746px"  name="srcframe" id="srcframe" class="srcframe" src="http://localhost:3086/#/${unibaseId}/${tenantId}/${userId}/${recordId}/${installedAppId}/loadDetail"></iframe>`
  209. );
  210. }
  211. });
  212. }
  213. export function initListIndex() {
  214. let _userInfo = atob(document.cookie.split("=")[1]);
  215. let userInfo = " JSON.parse(_userInfo).result";
  216. let sessionId = "userInfo.sessionId";
  217. let usrinfoHTML = `<li><a class="dropdown-item" href="javascript:void(0);">${userInfo.name}</a></li>
  218. <li><a class="dropdown-item" href="javascript:void(0);">Cloud Settings</a></li>
  219. <li><a class="dropdown-item" href="javascript:void(0);">Help</a></li>
  220. <li><a class="dropdown-item" href="javascript:void(0);">Logoff</a></li>`;
  221. $(".icn-circle").text(userInfo?.name?.charAt(0)?.toUpperCase());
  222. $(".uindtls").html(usrinfoHTML);
  223. // List Page loading
  224. /*Data loading start here*/
  225. $(".mnNvIcn").click(function() {
  226. $(".lft-nav-bar").toggleClass("lft-nav-bar-Wrap");
  227. $(".ctr-lst-pge").toggleClass("lft-nav-bar-Wrap");
  228. });
  229. loadData();
  230. }