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.

levelmembers.component.js 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Support;
  6. (function (Support) {
  7. let Controls;
  8. (function (Controls) {
  9. class LevelMembers extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.deletedEmployees = [];
  13. this.roleemp = [];
  14. this.postdataemp = [];
  15. this.flag = false;
  16. this.isalreadyemp = false;
  17. }
  18. init(formpropertyid, prop, callback) {
  19. var instance = this;
  20. instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
  21. instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
  22. if (callback != null) {
  23. callback();
  24. }
  25. }
  26. getdata() {
  27. var instance = this;
  28. if ($("#txtAutoComplete_EmpId").val() != null) {
  29. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please Add Selected Level Member");
  30. return false;
  31. }
  32. else {
  33. return instance.postdataemp;
  34. }
  35. }
  36. loadControl(containerid, prop) {
  37. var instance = this;
  38. var html = '<div id="Unibase_ValidationSummary" class="clear mt-10"><input type="hidden" class="value-control" value="Bizgaze.Apps.Support.Controls.LevelMembers.Instance().getdata();"/></div><div class="div_LevelMembers"><strong>Level Members</strong></div><div class="row align-items-end div_users mt-15"></div><div class="col-sm-12 div_levmem mt-5"><ul class="ul_levmem list-group list-group-flush"><li class="list-group-item li_header hidden"><div class="col-sm-12 row"><div class="col-sm-4"><strong>User Name</strong></div><div class="col-sm-4"><strong>Designation</strong></div></div></li><li class="list-group-item li_levmem hidden">0</li></ul><div id="levmem_footer_container" class="hidden"><div class="d-flex flex-wrap justify-content-between align-items-center mt-10"><div class="levmem_total_container"><span class="font-weight-500 text-dark">Total : </span><span class="levmem_visibileList">0</span> of <span class="levmem_totalList">0</span></div><a class="levmen_more_btn btn btn-sm btn-success hidden" href="javascript:;" onclick="Bizgaze.Apps.Support.Controls.LevelMembers.Instance().loadMoreLvlMemList()">More</a></div></div></div>';
  39. $("#" + containerid).html(html);
  40. }
  41. refreshlevelmembers(roleids) {
  42. var instance = this;
  43. $(".li_levmem").empty();
  44. $('.div_users').empty();
  45. if ((roleids.length == 0) && (instance.flag == false)) {
  46. $(".li_header").addClass("hidden");
  47. }
  48. var instance = this;
  49. instance.fileCacheHelper.loadJsFile("apps/support/managers/supportmanager.js", function () {
  50. Bizgaze.Apps.Support.Managers.SupportManager.Instance().getRoleTicketGroup(roleids).then(function (response) {
  51. var result = response.result;
  52. if (result != null) {
  53. for (var i = 0; i < result.length; i++) {
  54. var data = result[i];
  55. var deleteIndex = instance.deletedEmployees.findIndex(x => x.UserId == data.employeeid);
  56. if (deleteIndex == -1) {
  57. var postdataIndex = instance.postdataemp.findIndex(x => x.UserId == data.employeeid);
  58. if (postdataIndex == -1) {
  59. instance.postdataemp.push({
  60. UserId: data.employeeid, UserName: data.employeename, DesignationId: data.designationid, DesignationName: data.designationname, RoleId: data.roleid, Status: 1, LevelMemberId: 0, IsRole: true, UserInstalledAppId: data.installedappid
  61. });
  62. }
  63. var roleempIndex = instance.roleemp.findIndex(x => x.UserId == data.employeeid);
  64. if (roleempIndex == -1) {
  65. instance.roleemp.push({
  66. RoleId: data.roleid, UserId: data.employeeid
  67. });
  68. }
  69. }
  70. }
  71. }
  72. });
  73. instance.getuserdata();
  74. });
  75. }
  76. listemp() {
  77. var instance = this;
  78. $(".levmem").remove();
  79. $(".li_header").removeClass("hidden");
  80. $('#levmem_footer_container').removeClass('hidden');
  81. for (let j = 0; j < instance.postdataemp.length; j++) {
  82. var data = instance.postdataemp;
  83. if (data[j].IsRole == false) {
  84. if ($(".ul_levmem li.levmem").length >= 5) {
  85. $("#levmem_footer_container .levmen_more_btn").removeClass('hidden');
  86. }
  87. else {
  88. $("#levmem_footer_container .levmen_more_btn").addClass('hidden');
  89. }
  90. var Html = '<li class="list-group-item levmem li_' + j + '" >' +
  91. '<div class="d-none d-md-block">' +
  92. '<div class="row col-sm-12">' +
  93. '<input type="hidden" class="hdempid" value="' + data[j].UserId + '"/>' +
  94. '<input type="hidden" class="hddesignationid" value="' + data[j].DesignationId + '"/>' +
  95. '<input type="hidden" class="hduserinstalledappid" value="' + data[j].UserInstalledAppId + '"/>' +
  96. '<div class="col-sm-4"><span class="employeename" value="">' + data[j].UserName + '</span></div>' +
  97. '<div class="col-sm-4"><span class="designationname" value"">' + data[j].DesignationName + '</span></div>' +
  98. '<div class="col-sm-2" > <a href="javascript:;" class="pull-right btn-danger btn-sm fa fa-trash delete-emp" id = "deleteEmployee" href = "javascript:;" onclick = "Bizgaze.Apps.Support.Controls.LevelMembers.Instance().deleteEmployee(' + data[j].UserId + ',' + data[j].DesignationId + ',' + data[j].RoleId + ');" > </a></div >' +
  99. '</div></div>' +
  100. '<div class="d-block d-sm-none">' +
  101. '<div class="row ml-5"><div class="col-11 row">' +
  102. '<input type="hidden" class="hdempid" value="' + data[j].UserId + '"/>' +
  103. '<input type="hidden" class="hddesignationid" value="' + data[j].DesignationId + '"/>' +
  104. '<input type="hidden" class="hduserinstalledappid" value="' + data[j].UserInstalledAppId + '"/>' +
  105. '<div class="col-sm-4"><span class="employeename" value="">' + data[j].UserName + '</span></div>' +
  106. '<div class="col-sm-4"><span class="designationname" value="">' + data[j].DesignationName + '</span></div></div>' +
  107. '<div class="col-1" > <a href="javascript:;" class="btn-danger btn-sm mr-20 fa fa-trash delete-emp" id = "deleteEmployee" href = "javascript:;" onclick = "Bizgaze.Apps.Support.Controls.LevelMembers.Instance().deleteEmployee(' + data[j].UserId + ',' + data[j].DesignationId + ',' + data[j].RoleId + ');" > </a></div ></div>' +
  108. '</div></div> ' +
  109. '</li>';
  110. $('.li_levmem:last').after(Html);
  111. $(".ul_levmem li.levmem").each(function (i, e) {
  112. if (i < 5) {
  113. $(e).removeClass('hidden');
  114. }
  115. else {
  116. $(e).addClass('hidden');
  117. }
  118. });
  119. let totalRowsCount = $(".ul_levmem li.levmem").length;
  120. $("#levmem_footer_container .levmem_totalList").text(totalRowsCount);
  121. let visibleRowsCount = totalRowsCount - $(".ul_levmem li.levmem.hidden").length;
  122. $("#levmem_footer_container .levmem_visibileList").text(visibleRowsCount);
  123. }
  124. if ((instance.postdataemp.length == 0) && (data[j].IsRole == true)) {
  125. $(".li_header").addClass("hidden");
  126. $('#levmem_footer_container').addClass('hidden');
  127. instance.flag = true;
  128. }
  129. else {
  130. $(".li_header").removeClass("hidden");
  131. $('#levmem_footer_container').removeClass('hidden');
  132. instance.flag = true;
  133. }
  134. }
  135. if (instance.flag == false) {
  136. $(".li_header").addClass("hidden");
  137. $('#levmem_footer_container').addClass('hidden');
  138. }
  139. else if (instance.flag == true) {
  140. $(".li_header").removeClass("hidden");
  141. $('#levmem_footer_container').removeClass('hidden');
  142. instance.flag = true;
  143. }
  144. }
  145. loadMoreLvlMemList() {
  146. $(".ul_levmem li.levmem.hidden").each(function (index, item) {
  147. if (index < 5) {
  148. $(item).removeClass('hidden');
  149. let totalRowsCount = $(".ul_levmem li.levmem").length;
  150. let visibleRowsCount = totalRowsCount - $(".ul_levmem li.levmem.hidden").length;
  151. $("#levmem_footer_container .levmem_visibileList").text(visibleRowsCount);
  152. if (visibleRowsCount == totalRowsCount) {
  153. $("#levmem_footer_container .levmen_more_btn").addClass('hidden');
  154. }
  155. }
  156. });
  157. }
  158. getuserdata() {
  159. var instance = this;
  160. var html = '<div class="div_SearchEmp col-sm-8"> ' +
  161. '<label for="lbl" id="lbl_EmpId" style="color:grey"></label>' +
  162. '<select id="txtAutoComplete_EmpId" class="form-control text-control txtAutoComplete_EmpId" style="width:100%">Select</select>' +
  163. '<input type="hidden" id="hfAutoComplete_EmpId" class="form-control value-control" data-isdynamic="true"/>' +
  164. '<input type="hidden" id="hd_empid" value=""/>' +
  165. '<input type="hidden" id="hd_designationid" value=""/>' +
  166. '<input type="hidden" id="hd_employeename" value=""/>' +
  167. '<input type="hidden" id="hd_designationname" value=""/>' +
  168. '<input type="hidden" id="hd_userinstalledappid" value=""/>' +
  169. '</div>';
  170. $('.div_users').append(html);
  171. instance.fileCacheHelper.loadJsFile("apps/support/managers/supportmanager.js", function () {
  172. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_EmpId", "#hfAutoComplete_EmpId", _appsettings.server_url() + "/apis/v4/bizgaze/crm/employees/getemployees", function (result) {
  173. var data = result;
  174. $("#hd_empid").val(data.id);
  175. Bizgaze.Apps.Support.Managers.SupportManager.Instance().getRoleEmployee(data.id).then(function (response) {
  176. var res = response.result;
  177. if (res.length == 1) {
  178. $("#hd_empid").val(res[0].employeeid);
  179. $("#hd_designationid").val(res[0].designationid);
  180. $("#hd_employeename").val(res[0].employeename);
  181. $("#hd_designationname").val(res[0].designationname);
  182. $("#hd_userinstalledappid").val(res[0].installedappid);
  183. }
  184. });
  185. });
  186. var html1 = '<div class="col-sm-4 mt-15 mt-sm-0"><button type="button" id="addEmployeeBtn" class="btn btn-sm btn-primary mr-15">Add</button><button type="button" id="clrEmployeeBtn" class="btn btn-sm btn-primary">Clear</button></div>';
  187. $(".div_users").append(html1);
  188. instance.bindEmployeeEvents();
  189. });
  190. }
  191. bindEmployeeEvents() {
  192. var instance = this;
  193. $("#addEmployeeBtn").click(function () {
  194. instance.addEmployee();
  195. return false;
  196. });
  197. $("#clrEmployeeBtn").click(function () {
  198. instance.clearEmployee();
  199. });
  200. }
  201. deleteEmployee(employeeid, designationid, roleid) {
  202. var instance = this;
  203. instance.deletedEmployees.push({
  204. UserId: employeeid, DesignationId: designationid, RoleId: roleid
  205. });
  206. var postEmp = instance.postdataemp.filter(x => x.UserId == employeeid);
  207. instance.postdataemp = instance.postdataemp.filter(ar => !postEmp.find(rm => (rm.UserId === ar.UserId)));
  208. var roles = $(".select2_roleids ").val().toString();
  209. if (instance.editdata == 0) {
  210. instance.refreshlevelmembers(roles);
  211. }
  212. else {
  213. instance.listemp();
  214. }
  215. if (instance.postdataemp.length == 0) {
  216. $(".li_header").addClass("hidden");
  217. $('#levmem_footer_container').addClass('hidden');
  218. }
  219. for (var i = 0; i < instance.postdataemp.length; i++) {
  220. if ((instance.postdataemp[i].IsRole == true) && (instance.flag == true)) {
  221. $(".li_header").addClass("hidden");
  222. $('#levmem_footer_container').addClass('hidden');
  223. }
  224. else {
  225. $(".li_header").removeClass("hidden");
  226. $('#levmem_footer_container').removeClass('hidden');
  227. }
  228. }
  229. }
  230. addEmployee() {
  231. var instance = this;
  232. instance.isalreadyemp = false;
  233. var employeeid = Number($("#hd_empid").val());
  234. var designationid = Number($("#hd_designationid").val());
  235. var userinstalledappid = Number($("#hd_userinstalledappid").val());
  236. var employeename = $("#hd_employeename").val();
  237. var designationname = $("#hd_designationname").val();
  238. if (employeeid != 0) {
  239. var arrayIndex = instance.postdataemp.findIndex(x => x.UserId == employeeid);
  240. if (arrayIndex != -1) {
  241. var isroleid = instance.postdataemp[arrayIndex].IsRole;
  242. }
  243. if (arrayIndex == -1) {
  244. instance.postdataemp.push({
  245. UserId: employeeid, UserName: employeename, DesignationId: designationid, DesignationName: designationname, RoleId: 0, Status: 1, LevelMemberId: 0, IsRole: false, UserInstalledAppId: userinstalledappid
  246. });
  247. }
  248. else if (isroleid == false) {
  249. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Employee already Exists");
  250. instance.isalreadyemp = true;
  251. return false;
  252. }
  253. else if (isroleid == true) {
  254. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Employee already Exists for the role");
  255. instance.isalreadyemp = true;
  256. return false;
  257. }
  258. if (instance.isalreadyemp == false) {
  259. instance.listemp();
  260. }
  261. }
  262. if ($("#txtAutoComplete_EmpId").val() == null) {
  263. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please Select Contact");
  264. return false;
  265. }
  266. $("#txtAutoComplete_EmpId").val(null).trigger("change");
  267. }
  268. clearEmployee() {
  269. this.postdataemp = [];
  270. this.deletedEmployees = [];
  271. this.refreshlevelmembers($(".select2_roleids ").val().toString());
  272. $(".levmem").remove();
  273. $(".li_header").addClass("hidden");
  274. $('#levmem_footer_container').addClass('hidden');
  275. }
  276. loadControlSettings(controlsettingjson, formpropertyid) {
  277. var instance = this;
  278. instance.deletedEmployees = [];
  279. instance.postdataemp = [];
  280. instance.roleemp = [];
  281. $(".select2_roleids").on('select2:select', function (e) {
  282. }).on('select2:unselect', function (e) {
  283. let roleid = e.params.data.id;
  284. var delEmp = instance.deletedEmployees.filter(x => x.RoleId == roleid);
  285. instance.deletedEmployees = instance.deletedEmployees.filter(ar => !delEmp.find(rm => (rm.RoleId === ar.RoleId)));
  286. var postEmp = instance.postdataemp.filter(x => x.RoleId == roleid);
  287. instance.postdataemp = instance.postdataemp.filter(ar => !postEmp.find(rm => (rm.RoleId === ar.RoleId)));
  288. });
  289. }
  290. loadPropertySettings(propertysettings, formpropertyid) {
  291. return null;
  292. }
  293. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  294. var instance = this;
  295. var levelid = Number(propval);
  296. instance.editdata = levelid;
  297. instance.fileCacheHelper.loadJsFile("apps/support/managers/supportmanager.js", function () {
  298. Bizgaze.Apps.Support.Managers.SupportManager.Instance().getLevelMembers(levelid).then(function (response) {
  299. var res = response.result;
  300. instance.postdataemp = [];
  301. for (let i = 0; i < res.length; i++) {
  302. instance.postdataemp.push({
  303. UserId: res[i].UserId, UserName: res[i].UserName, DesignationId: res[i].DesignationId, DesignationName: res[i].DesignationName, RoleId: res[i].RoleId, Status: res[i].Status, LevelMemberId: res[i].LevelMemberId, IsRole: res[i].IsRole, UserInstalledAppId: res[i].UserInstalledAppId
  304. });
  305. }
  306. instance.listemp();
  307. var isroleindex = instance.postdataemp.findIndex(x => x.IsRole == false);
  308. if (isroleindex == -1) {
  309. $(".li_header").addClass("hidden");
  310. $('#levmem_footer_container').addClass('hidden');
  311. }
  312. });
  313. });
  314. }
  315. static Instance() {
  316. if (this.instance === undefined) {
  317. this.instance = new LevelMembers();
  318. }
  319. return this.instance;
  320. }
  321. }
  322. Controls.LevelMembers = LevelMembers;
  323. })(Controls = Support.Controls || (Support.Controls = {}));
  324. })(Support = Apps.Support || (Apps.Support = {}));
  325. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  326. })(Bizgaze || (Bizgaze = {}));