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.

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