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.

dashboardpermissions.js 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Platform;
  13. (function (Platform) {
  14. let Dashboards;
  15. (function (Dashboards) {
  16. let Components;
  17. (function (Components) {
  18. class DashboardPermissions extends Platform.Core.BaseComponent {
  19. ShowPermissions(DashboardId) {
  20. var type = 'dashboard';
  21. var dashboardroles = [];
  22. var _fileCacheHelper = this.fileCacheHelper;
  23. _fileCacheHelper.loadCssFile("libs/select2/css/select2.min.css", null);
  24. _fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
  25. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboardRoles(DashboardId).then(function (response) {
  26. var selectedRoles = response.result;
  27. for (var i = 0; i < selectedRoles.length; i++) {
  28. var id = 0;
  29. id = selectedRoles[i].PortletRoleId;
  30. dashboardroles.push({ RoleDashboardId: id, RoleId: selectedRoles[i].RoleId, RoleName: selectedRoles[i].RoleName, IsExclude: selectedRoles[i].IsExclude });
  31. }
  32. DashboardPermissions.Instance().getRoleList(DashboardId, type, dashboardroles);
  33. });
  34. });
  35. DashboardPermissions.Instance().chkIsDashboardViewable(DashboardId);
  36. }
  37. chkIsDashboardViewable(DashboardId) {
  38. $('#chkIsDashboardViewable').change(function () {
  39. var viewable = $("#chkIsDashboardViewable").prop('checked');
  40. if (viewable)
  41. $('#divDashboardViewRoles').addClass("hidden");
  42. else
  43. $('#divDashboardViewRoles').removeClass("hidden");
  44. var type = $('#hfApplyType').val();
  45. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().setDashboardAsViewable(DashboardId, viewable);
  46. });
  47. }
  48. getRoleList(DashboardId, type, dashboardroles) {
  49. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getRolesList().then(function (response) {
  50. var dashboardpermissions_AllRoles = response.result;
  51. DashboardPermissions.Instance().loadAssignedRoles(DashboardId, type, dashboardroles, dashboardpermissions_AllRoles);
  52. });
  53. }
  54. loadAssignedRoles(DashboardId, type, dashboardroles, dashboardpermissions_AllRoles) {
  55. var ExcludeViewRoles = [];
  56. var _Permissions_ViewRoles = [];
  57. for (var i = 0; i < dashboardpermissions_AllRoles.length; i++) {
  58. var data = dashboardpermissions_AllRoles[i];
  59. var assignedRoles = dashboardroles;
  60. for (var j = 0; j < assignedRoles.length; j++) {
  61. var assignedRole = assignedRoles[j];
  62. if (assignedRole.RoleId == data.RoleId) {
  63. if (assignedRole.IsExclude == true) {
  64. ExcludeViewRoles.push({ id: data.RoleId, text: data.RoleName });
  65. }
  66. else {
  67. _Permissions_ViewRoles.push({ id: data.RoleId, text: data.RoleName });
  68. }
  69. }
  70. }
  71. }
  72. DashboardPermissions.Instance().loadDashboardDetails(DashboardId, _Permissions_ViewRoles, ExcludeViewRoles);
  73. }
  74. loadDashboardDetails(DashboardId, _Permissions_ViewRoles, ExcludeViewRoles) {
  75. this.fileCacheHelper.loadJsFile("platform/dashboards/requests/dashboards.js", function () {
  76. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboard(DashboardId).then(function (response) {
  77. if (response.result.IsMandatory == true) {
  78. $('#divDashboardViewRoles').addClass("hidden");
  79. }
  80. else {
  81. $('#divDashboardViewRoles').removeClass("hidden");
  82. }
  83. if (response.result.IsTrackable) {
  84. $("#Ch_IsTrackable").prop('checked', true);
  85. }
  86. $("#chkIsDashboardViewable").prop('checked', response.result.IsMandatory);
  87. DashboardPermissions.Instance().loadViewRoles(DashboardId, response.result.IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles);
  88. });
  89. });
  90. }
  91. loadViewRoles(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles) {
  92. var Ids = [];
  93. for (var i = 0; i < _Permissions_ViewRoles.length; i++) {
  94. Ids.push(_Permissions_ViewRoles[i].id);
  95. }
  96. let ExludedIds = [];
  97. for (var i = 0; i < ExcludeViewRoles.length; i++) {
  98. ExludedIds.push(ExcludeViewRoles[i].id);
  99. }
  100. var ViewRoleElementId = "txtDashboardViewRoles";
  101. var ExcludeRoleElementId = "txtDashboardExcludeViewRoles";
  102. DashboardPermissions.Instance().select2dashboardbinding(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles, Ids, ExludedIds, ViewRoleElementId, ExcludeRoleElementId);
  103. $('#txtDashboardViewRoles').on('select2:select', function (e) {
  104. let result = e.params.data;
  105. if (Number(result.id) != 0) {
  106. var roleId = result.id;
  107. DashboardPermissions.Instance().addViewRole(DashboardId, roleId, false);
  108. Ids.push(roleId);
  109. $(ExludedIds).each(function (i, value) {
  110. if (value == roleId) {
  111. var index = ExludedIds.indexOf(value);
  112. if (index > -1) {
  113. ExludedIds.splice(index, 1);
  114. }
  115. ExludedIds.splice(value, 1);
  116. jQuery("#txtDashboardExcludeViewRoles").val(ExludedIds).trigger('change');
  117. return false;
  118. }
  119. });
  120. }
  121. });
  122. $('#txtDashboardViewRoles').on('select2:unselect', function (e) {
  123. let result = e.params.data;
  124. if (Number(result.id) != 0) {
  125. var roleId = result.id;
  126. DashboardPermissions.Instance().removeViewRole(DashboardId, roleId, false);
  127. }
  128. });
  129. $('#txtDashboardExcludeViewRoles').on('select2:select', function (e) {
  130. let result = e.params.data;
  131. if (Number(result.id) != 0) {
  132. var roleId = result.id;
  133. DashboardPermissions.Instance().addViewRole(DashboardId, roleId, true);
  134. ExludedIds.push(roleId);
  135. $(Ids).each(function (i, value) {
  136. if (value == roleId) {
  137. var index = Ids.indexOf(value);
  138. if (index > -1) {
  139. Ids.splice(index, 1);
  140. }
  141. jQuery("#txtDashboardViewRoles").val(Ids).trigger('change');
  142. return false;
  143. }
  144. });
  145. }
  146. });
  147. $('#txtDashboardExcludeViewRoles').on('select2:unselect', function (e) {
  148. let result = e.params.data;
  149. if (Number(result.id) != 0) {
  150. var roleId = result.id;
  151. DashboardPermissions.Instance().removeViewRole(DashboardId, roleId, true);
  152. }
  153. });
  154. }
  155. addViewRole(DashboarId, roleId, IsExclude) {
  156. this.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
  157. let reqObj = new Unibase.Platform.Dashboards.Requests.DashboardRole();
  158. reqObj.DashboardId = DashboarId;
  159. reqObj.RoleId = Number(roleId);
  160. reqObj.IsExclude = IsExclude;
  161. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().addViewRole(reqObj).then(function (response) {
  162. });
  163. });
  164. }
  165. removeViewRole(DashboardId, roleId, IsExclude) {
  166. this.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
  167. let reqObj = new Unibase.Platform.Dashboards.Requests.DashboardRole();
  168. reqObj.DashboardId = DashboardId;
  169. reqObj.RoleId = Number(roleId);
  170. reqObj.IsExclude = IsExclude;
  171. Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().removeViewRole(reqObj).then(function (response) {
  172. });
  173. });
  174. }
  175. select2dashboardbinding(DashboardId, IsMandatory, _Permissions_ViewRoles, ExcludeViewRoles, Ids, ExludedIds, ViewRoleElementId, ExcludeRoleElementId) {
  176. return __awaiter(this, void 0, void 0, function* () {
  177. var user = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  178. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/roles/get/term/';
  179. $("#" + ViewRoleElementId).select2({
  180. multiple: true,
  181. allowClear: false,
  182. data: _Permissions_ViewRoles,
  183. placeholder: 'Select',
  184. ajax: {
  185. url: function (request) {
  186. var reqUrl = url;
  187. var term = request.term;
  188. if (term == "")
  189. term = undefined;
  190. if (term == undefined)
  191. reqUrl = reqUrl + term;
  192. else
  193. reqUrl = reqUrl + term;
  194. return reqUrl;
  195. },
  196. beforeSend: function (xhr) {
  197. if (user !== undefined && user !== null) {
  198. xhr.setRequestHeader("Authorization", "Basic " + user.sessionId);
  199. xhr.setRequestHeader('geoposition', user.latd + ':' + user.lgId);
  200. }
  201. },
  202. delay: 250,
  203. dataType: 'json',
  204. processResults: function (data) {
  205. var selectData = [];
  206. var Data = JSON.parse(data.result);
  207. for (var i = 0; i < Data.length; i++) {
  208. selectData.push({
  209. id: Data[i].RoleId,
  210. text: Data[i].RoleName
  211. });
  212. }
  213. ;
  214. return { results: selectData };
  215. }
  216. },
  217. templateResult: function (item) { return item.text; },
  218. templateSelection: function (item) { return item.text; },
  219. });
  220. $("#" + ViewRoleElementId).val(Ids).trigger('change');
  221. $("#" + ExcludeRoleElementId).select2({
  222. multiple: true,
  223. allowClear: false,
  224. data: ExcludeViewRoles,
  225. placeholder: 'Select',
  226. ajax: {
  227. url: function (request) {
  228. var reqUrl = url;
  229. var term = request.term;
  230. if (term == "")
  231. term = undefined;
  232. if (term == undefined)
  233. reqUrl = reqUrl + term;
  234. else
  235. reqUrl = reqUrl + term;
  236. return reqUrl;
  237. },
  238. beforeSend: function (xhr) {
  239. if (user !== undefined && user !== null) {
  240. xhr.setRequestHeader("Authorization", "Basic " + user.sessionId);
  241. xhr.setRequestHeader('geoposition', user.latd + ':' + user.lgId);
  242. }
  243. },
  244. delay: 250,
  245. dataType: 'json',
  246. processResults: function (data) {
  247. var selectData = [];
  248. var Data = JSON.parse(data.result);
  249. for (var i = 0; i < Data.length; i++) {
  250. selectData.push({
  251. id: Data[i].RoleId,
  252. text: Data[i].RoleName
  253. });
  254. }
  255. ;
  256. return { results: selectData };
  257. }
  258. },
  259. templateResult: function (item) { return item.text; },
  260. templateSelection: function (item) { return item.text; },
  261. });
  262. jQuery("#" + ExcludeRoleElementId).val(ExludedIds).trigger('change');
  263. });
  264. }
  265. static Instance() {
  266. return new DashboardPermissions();
  267. }
  268. }
  269. Components.DashboardPermissions = DashboardPermissions;
  270. })(Components = Dashboards.Components || (Dashboards.Components = {}));
  271. })(Dashboards = Platform.Dashboards || (Platform.Dashboards = {}));
  272. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  273. })(Unibase || (Unibase = {}));