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.

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