ps-toolkit-ui 0.0.27 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -153,6 +153,7 @@
153
153
  RePassword: 'تکرار کلمه عبور',
154
154
  PassportLetter: 'حرف',
155
155
  Passport: 'گذرنامه',
156
+ List: 'لیست',
156
157
  Priority: 'اولویت',
157
158
  PassportImage: 'تصویر گذرنامه',
158
159
  PassportExpireDate: 'تاریخ انقضاء گذرنامه',
@@ -2358,6 +2359,8 @@
2358
2359
  this.confirmShow = new core.EventEmitter();
2359
2360
  this.changeRows = new core.EventEmitter();
2360
2361
  this.loadParent = new core.EventEmitter();
2362
+ this.optEdit = null;
2363
+ this.optDelete = null;
2361
2364
  this.showChildren = null;
2362
2365
  this.addChildren = null;
2363
2366
  this.itemsWidth = 0;
@@ -2374,8 +2377,14 @@
2374
2377
  var percent = _a.percent;
2375
2378
  return a + percent;
2376
2379
  }, 0);
2377
- this.optEdit = new InputClass(this.table.environment, this.table.l, this.table.name + 'UpdateTitle', 'fad fa-pen', exports.InputType.Icon, 'blue h-25 m-h-5 d-ib va-m f-u');
2378
- this.optDelete = new InputClass(this.table.environment, this.table.l, this.table.name + 'DeleteTitle', 'fad fa-trash', exports.InputType.Icon, 'red h-25 m-h-5 d-ib va-m f-u');
2380
+ var updateAccess = this.table.permissions.getAccess('Update');
2381
+ var deleteAccess = this.table.permissions.getAccess('Delete');
2382
+ if (updateAccess != null) {
2383
+ this.optEdit = new InputClass(this.table.environment, this.table.l, updateAccess.Name, 'fad fa-pen', exports.InputType.Icon, 'blue h-25 m-h-5 d-ib va-m f-u');
2384
+ }
2385
+ if (deleteAccess != null) {
2386
+ this.optDelete = new InputClass(this.table.environment, this.table.l, deleteAccess.Name, 'fad fa-trash', exports.InputType.Icon, 'red h-25 m-h-5 d-ib va-m f-u');
2387
+ }
2379
2388
  if (this.table.hasChildren) {
2380
2389
  if (!this.table.childrenAutoLoad) {
2381
2390
  this.children = this.getChildren();
@@ -2418,54 +2427,58 @@
2418
2427
  };
2419
2428
  }
2420
2429
  this.options = this.getOptions();
2421
- if (this.table.form) {
2422
- this.optEdit.onClick = function () {
2423
- _this.table.form.url = _this.table.url + 'Update/' + _this.row.Id;
2424
- if (_this.table.hasChildren && _this.row.ParentId != null) {
2425
- _this.table.form.onSuccessBase = function () {
2426
- _this.table.modal.hide();
2427
- if (_this.table.childrenAutoLoad) {
2428
- _this.loadParent.emit(_this.row.ParentId);
2429
- }
2430
- else {
2430
+ if (this.optEdit !== null) {
2431
+ if (this.table.form) {
2432
+ this.optEdit.onClick = function () {
2433
+ _this.table.form.url = _this.table.url + 'Update/' + _this.row.Id;
2434
+ if (_this.table.hasChildren && _this.row.ParentId != null) {
2435
+ _this.table.form.onSuccessBase = function () {
2436
+ _this.table.modal.hide();
2437
+ if (_this.table.childrenAutoLoad) {
2438
+ _this.loadParent.emit(_this.row.ParentId);
2439
+ }
2440
+ else {
2441
+ _this.table.load();
2442
+ }
2443
+ };
2444
+ }
2445
+ else {
2446
+ _this.table.form.onSuccessBase = function () {
2447
+ if (!_this.table.form.onTop) {
2448
+ _this.table.modal.hide();
2449
+ }
2450
+ _this.table.form.clear();
2431
2451
  _this.table.load();
2432
- }
2433
- };
2452
+ };
2453
+ }
2454
+ _this.edit();
2455
+ };
2456
+ }
2457
+ else {
2458
+ this.optEdit.url = this.table.url + '/Update/' + this.row.Id;
2459
+ }
2460
+ }
2461
+ if (this.optDelete != null) {
2462
+ this.optDelete.onClick = function () {
2463
+ if (_this.table.form) {
2464
+ _this.table.form.clear();
2465
+ }
2466
+ if (_this.table.permissions.Type === exports.PermissionTypeEnum.Form) {
2467
+ _this.table.rows = _this.table.rows.filter(function (x) { return x.Id !== _this.row.Id; });
2468
+ _this.changeRows.emit(_this.row);
2434
2469
  }
2435
2470
  else {
2436
- _this.table.form.onSuccessBase = function () {
2437
- if (!_this.table.form.onTop) {
2438
- _this.table.modal.hide();
2439
- }
2440
- _this.table.form.clear();
2441
- _this.table.load();
2442
- };
2471
+ _this.confirmShow.emit({ id: _this.row.Id, accept: function () {
2472
+ if (_this.table.hasChildren && _this.table.childrenAutoLoad && _this.row.ParentId != null) {
2473
+ _this.loadParent.emit(_this.row.ParentId);
2474
+ }
2475
+ else {
2476
+ _this.table.load();
2477
+ }
2478
+ } });
2443
2479
  }
2444
- _this.edit();
2445
2480
  };
2446
2481
  }
2447
- else {
2448
- this.optEdit.url = this.table.url + '/Update/' + this.row.Id;
2449
- }
2450
- this.optDelete.onClick = function () {
2451
- if (_this.table.form) {
2452
- _this.table.form.clear();
2453
- }
2454
- if (_this.table.permissions.Type === exports.PermissionTypeEnum.Form) {
2455
- _this.table.rows = _this.table.rows.filter(function (x) { return x.Id !== _this.row.Id; });
2456
- _this.changeRows.emit(_this.row);
2457
- }
2458
- else {
2459
- _this.confirmShow.emit({ id: _this.row.Id, accept: function () {
2460
- if (_this.table.hasChildren && _this.table.childrenAutoLoad && _this.row.ParentId != null) {
2461
- _this.loadParent.emit(_this.row.ParentId);
2462
- }
2463
- else {
2464
- _this.table.load();
2465
- }
2466
- } });
2467
- }
2468
- };
2469
2482
  if (this.table.sortable) {
2470
2483
  this.setSortRow();
2471
2484
  }
@@ -2866,7 +2879,7 @@
2866
2879
  TableComponent.decorators = [
2867
2880
  { type: core.Component, args: [{
2868
2881
  selector: 'lib-table',
2869
- template: "<div [id]=\"table.id + 'Table'\" [style]=\"table.style\" #tableDiv [className]=\"(table.class ? table.class : '') + (table.sortable ? 'sortable' : '') + (table.hasChildren ? ' has-children' : '') + ' table-con'\">\r\n <div *ngIf=\"table.displayLabel\" class=\"title\">\r\n {{this.table.l(this.table.name + 'ListTitle')}}\r\n <div class=\"extra-buttons\" *ngIf=\"table.extraButtons\">\r\n <div *ngIf=\"table.permissions && table.permissions.hasAccess('Report')\" class=\"export\">\r\n <lib-form-icon [inp]=\"export\"></lib-form-icon>\r\n <div class=\"export-dropdown\" #exportDropDown>\r\n <div (click)=\"report('Print')\" class=\"item\"><div class=\"text\">Print</div><i class=\"fad fa-print\"></i></div>\r\n <div (click)=\"report('Excel')\" class=\"item\"><div class=\"text\">Excel</div><i class=\"fad fa-file-excel\"></i></div>\r\n <div (click)=\"report('CSV')\" class=\"item\"><div class=\"text\">CSV</div><i class=\"fad fa-file-csv\"></i></div>\r\n <div (click)=\"report('PDF')\" class=\"item\"><div class=\"text\">PDF</div><i class=\"fad fa-file-pdf\"></i></div>\r\n </div>\r\n </div>\r\n <lib-form-icon [inp]=\"reload\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"maximum\"></lib-form-icon>\r\n </div>\r\n <div *ngIf=\"table.buttons.length > 0\" class=\"buttons\">\r\n <lib-form-button [inp]=\"btn\" *ngFor=\"let btn of table.buttons\"></lib-form-button>\r\n </div>\r\n </div>\r\n <div class=\"search-form\" *ngIf=\"table.searchForm\">\r\n <lib-form [form]=\"table.searchForm\"></lib-form>\r\n </div>\r\n <lib-form *ngIf=\"table.form && table.form.onTop\" [form]=\"table.form\"></lib-form>\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"table.hasChildren\" style=\"width: 50px\"></th>\r\n <th *ngIf=\"table.sortable\" style=\"width: 50px\"></th>\r\n <th *ngIf=\"table.withSelect\" style=\"width: 50px\">\r\n <i (click)=\"selectAll()\" [className]=\"(allSelected() ? 'fas fa-check-square green' : isSelected() ? 'fas fa-minus-square green' : 'far fa-square') + ' select-row'\" *ngIf=\"table.rows.length > 0\"></i>\r\n </th>\r\n <th (click)=\"!table.sortable && col.sort && changeSort($event, col.name)\" [className]=\"(!table.sortable && col.sort ? 'sort' : '')\" *ngFor=\"let col of table.cols\" [style]=\"{width: col.percent + '%'}\">\r\n <i *ngIf=\"!table.sortable && col.sort\" [className]=\"'sort-icon fas' + (table.sort === col.name ? (table.sortType === 'ASC' ? ' fa-sort-up' : ' fa-sort-down') : ' fa-sort')\"></i>\r\n <span *ngIf=\"col.search == null\">{{ table.l(col.name) }}</span>\r\n <div class=\"w-90 header-search p-h-20 m-r-5\" *ngIf=\"!table.sortable && col.search != null\">\r\n <lib-form-textbox *ngIf=\"col.type != colType.Date\" [inp]=\"col.search\"></lib-form-textbox>\r\n <lib-form-date *ngIf=\"col.type == colType.Date\" [inp]=\"col.search\"></lib-form-date>\r\n </div>\r\n </th>\r\n<!-- <th *ngIf=\"table.hasOption()\" [style]=\"{width: (100 - itemsWidth) + '%'}\">-->\r\n<!-- <span *ngIf=\"!table.withSelect || !isSelected()\">{{ table.l('Options') }}</span>-->\r\n<!-- <span *ngIf=\"table.withSelect && isSelected()\" class=\"option-con\">-->\r\n<!-- <span *ngFor=\"let opt of options\">-->\r\n<!-- <lib-form-button *ngIf=\"opt.type == type.Button\" [inp]=\"opt\"></lib-form-button>-->\r\n<!-- <lib-form-icon *ngIf=\"opt.type == type.Icon\" [inp]=\"opt\"></lib-form-icon>-->\r\n<!-- </span>-->\r\n<!-- </span>-->\r\n<!-- </th>-->\r\n </tr>\r\n </thead>\r\n <tbody #rows [style]=\"table.perPage > 0 ? {height: table.height * table.perPage + 'px'} : table.loading || !table.permission || table.rows.length == 0 ? {height: '100px'} : {}\">\r\n <lib-table-row (confirmShow)=\"onConfirmShow($event)\" [level]=\"1\" (changeRows)=\"onChangeRows($event)\" [id]=\"row.id ? row.id : ''\" [table]=\"table\" [row]=\"row\" *ngFor=\"let row of getRows()\"></lib-table-row>\r\n <tr *ngIf=\"table.perPage > 0\" [style]=\"{height: (table.perPage > 0 ? (table.perPage - table.rows.length) * table.height : '100') + 'px', visibility: 'hidden'}\"></tr>\r\n <lib-table-loading [table]=\"table\"></lib-table-loading>\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <td colspan=\"100%\">\r\n <lib-table-pagination [table]=\"table\" *ngIf=\"table.perPage > 0\"></lib-table-pagination>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n <lib-modal *ngIf=\"table.modal != null\" [modal]=\"table.modal\"></lib-modal>\r\n <lib-modal [modal]=\"opt.modal\" *ngFor=\"let opt of getOptionModals()\"></lib-modal>\r\n <lib-confirm #confirm [tableId]=\"table.name\"></lib-confirm>\r\n</div>\r\n",
2882
+ template: "<div [id]=\"table.id + 'Table'\" [style]=\"table.style\" #tableDiv [className]=\"(table.class ? table.class : '') + (table.sortable ? 'sortable' : '') + (table.hasChildren ? ' has-children' : '') + ' table-con'\">\r\n <div *ngIf=\"table.displayLabel\" class=\"title\">\r\n {{this.table.title ? this.table.title : 'List'}}\r\n <div class=\"extra-buttons\" *ngIf=\"table.extraButtons\">\r\n <div *ngIf=\"table.permissions && table.permissions.hasAccess('Report')\" class=\"export\">\r\n <lib-form-icon [inp]=\"export\"></lib-form-icon>\r\n <div class=\"export-dropdown\" #exportDropDown>\r\n <div (click)=\"report('Print')\" class=\"item\"><div class=\"text\">Print</div><i class=\"fad fa-print\"></i></div>\r\n <div (click)=\"report('Excel')\" class=\"item\"><div class=\"text\">Excel</div><i class=\"fad fa-file-excel\"></i></div>\r\n <div (click)=\"report('CSV')\" class=\"item\"><div class=\"text\">CSV</div><i class=\"fad fa-file-csv\"></i></div>\r\n <div (click)=\"report('PDF')\" class=\"item\"><div class=\"text\">PDF</div><i class=\"fad fa-file-pdf\"></i></div>\r\n </div>\r\n </div>\r\n <lib-form-icon [inp]=\"reload\"></lib-form-icon>\r\n <lib-form-icon [inp]=\"maximum\"></lib-form-icon>\r\n </div>\r\n <div *ngIf=\"table.buttons.length > 0\" class=\"buttons\">\r\n <lib-form-button [inp]=\"btn\" *ngFor=\"let btn of table.buttons\"></lib-form-button>\r\n </div>\r\n </div>\r\n <div class=\"search-form\" *ngIf=\"table.searchForm\">\r\n <lib-form [form]=\"table.searchForm\"></lib-form>\r\n </div>\r\n <lib-form *ngIf=\"table.form && table.form.onTop\" [form]=\"table.form\"></lib-form>\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"table.hasChildren\" style=\"width: 50px\"></th>\r\n <th *ngIf=\"table.sortable\" style=\"width: 50px\"></th>\r\n <th *ngIf=\"table.withSelect\" style=\"width: 50px\">\r\n <i (click)=\"selectAll()\" [className]=\"(allSelected() ? 'fas fa-check-square green' : isSelected() ? 'fas fa-minus-square green' : 'far fa-square') + ' select-row'\" *ngIf=\"table.rows.length > 0\"></i>\r\n </th>\r\n <th (click)=\"!table.sortable && col.sort && changeSort($event, col.name)\" [className]=\"(!table.sortable && col.sort ? 'sort' : '')\" *ngFor=\"let col of table.cols\" [style]=\"{width: col.percent + '%'}\">\r\n <i *ngIf=\"!table.sortable && col.sort\" [className]=\"'sort-icon fas' + (table.sort === col.name ? (table.sortType === 'ASC' ? ' fa-sort-up' : ' fa-sort-down') : ' fa-sort')\"></i>\r\n <span *ngIf=\"col.search == null\">{{ table.l(col.name) }}</span>\r\n <div class=\"w-90 header-search p-h-20 m-r-5\" *ngIf=\"!table.sortable && col.search != null\">\r\n <lib-form-textbox *ngIf=\"col.type != colType.Date\" [inp]=\"col.search\"></lib-form-textbox>\r\n <lib-form-date *ngIf=\"col.type == colType.Date\" [inp]=\"col.search\"></lib-form-date>\r\n </div>\r\n </th>\r\n<!-- <th *ngIf=\"table.hasOption()\" [style]=\"{width: (100 - itemsWidth) + '%'}\">-->\r\n<!-- <span *ngIf=\"!table.withSelect || !isSelected()\">{{ table.l('Options') }}</span>-->\r\n<!-- <span *ngIf=\"table.withSelect && isSelected()\" class=\"option-con\">-->\r\n<!-- <span *ngFor=\"let opt of options\">-->\r\n<!-- <lib-form-button *ngIf=\"opt.type == type.Button\" [inp]=\"opt\"></lib-form-button>-->\r\n<!-- <lib-form-icon *ngIf=\"opt.type == type.Icon\" [inp]=\"opt\"></lib-form-icon>-->\r\n<!-- </span>-->\r\n<!-- </span>-->\r\n<!-- </th>-->\r\n </tr>\r\n </thead>\r\n <tbody #rows [style]=\"table.perPage > 0 ? {height: table.height * table.perPage + 'px'} : table.loading || !table.permission || table.rows.length == 0 ? {height: '100px'} : {}\">\r\n <lib-table-row (confirmShow)=\"onConfirmShow($event)\" [level]=\"1\" (changeRows)=\"onChangeRows($event)\" [id]=\"row.id ? row.id : ''\" [table]=\"table\" [row]=\"row\" *ngFor=\"let row of getRows()\"></lib-table-row>\r\n <tr *ngIf=\"table.perPage > 0\" [style]=\"{height: (table.perPage > 0 ? (table.perPage - table.rows.length) * table.height : '100') + 'px', visibility: 'hidden'}\"></tr>\r\n <lib-table-loading [table]=\"table\"></lib-table-loading>\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <td colspan=\"100%\">\r\n <lib-table-pagination [table]=\"table\" *ngIf=\"table.perPage > 0\"></lib-table-pagination>\r\n </td>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n <lib-modal *ngIf=\"table.modal != null\" [modal]=\"table.modal\"></lib-modal>\r\n <lib-modal [modal]=\"opt.modal\" *ngFor=\"let opt of getOptionModals()\"></lib-modal>\r\n <lib-confirm #confirm [tableId]=\"table.name\"></lib-confirm>\r\n</div>\r\n",
2870
2883
  styles: [".table-con{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-table);float:right;padding:20px;position:relative;width:100%}.table-con.maximum{border-radius:0;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:11}.table-con>.title{float:right;font-family:VazirBold;font-size:16px;height:40px;line-height:40px;margin-bottom:10px;position:relative;text-align:right;width:100%}.table-con>.title .extra-buttons{float:left;margin-top:5px}.table-con>.title .extra-buttons .export{float:right;position:relative}.table-con>.title .extra-buttons .export .export-dropdown{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-table);display:none;overflow:hidden;padding:15px 0;position:absolute;right:-50px;top:35px;width:130px;z-index:2}.table-con>.title .extra-buttons .export .export-dropdown .item{cursor:pointer;float:right;padding:0 15px;text-align:center;width:100%}.table-con>.title .extra-buttons .export .export-dropdown .item:hover{background-color:var(--black-22)}.table-con>.title .extra-buttons .export .export-dropdown .text{float:right;font-family:VazirLight;font-size:13px;height:40px;line-height:41px;width:70%}.table-con>.title .extra-buttons .export .export-dropdown i{color:var(--black-88);float:right;font-size:14px;height:40px;line-height:40px;width:30%}.table-con>.title .buttons{float:left;margin-left:10px;margin-top:5px}.table-con>.search-form{border-radius:5px;float:right;margin-bottom:5px;width:100%}.table-con table{border-spacing:0!important;width:100%}.table-con table thead tr{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;position:relative}.table-con table thead tr th{background-color:var(--base-11);color:var(--black-88);font-family:VazirLight;font-size:12px;font-weight:400;height:45px;position:relative;vertical-align:middle}.table-con table thead tr th:first-child{border-bottom-right-radius:5px;border-top-right-radius:5px}.table-con table thead tr th:last-child{border-bottom-left-radius:5px;border-top-left-radius:5px}.table-con table thead tr th.sort{cursor:pointer}.table-con table thead tr th .sort-icon{font-size:13px;height:20px;left:5px;line-height:20px;opacity:.6;position:absolute;top:calc(50% - 10px);width:20px}.table-con table tbody{position:relative}.table-con table tfoot tr{height:45px}.table-con table tfoot tr td{position:relative;vertical-align:bottom}::ng-deep .table-con:not(.sortable) table lib-table-row:last-of-type>tr:after{background-image:unset}::ng-deep .table-con table thead tr th .select-row{cursor:pointer;font-size:18px;height:30px;line-height:30px}"]
2871
2884
  },] }
2872
2885
  ];
@@ -5040,14 +5053,13 @@
5040
5053
  };
5041
5054
 
5042
5055
  var PermissionClass = /** @class */ (function () {
5043
- function PermissionClass(Name, Icon, Type, Area, Controller, Action, Children, Accesses) {
5056
+ function PermissionClass(Name, Icon, Type, Area, Controller, Action, Accesses) {
5044
5057
  if (Name === void 0) { Name = ''; }
5045
5058
  if (Icon === void 0) { Icon = ''; }
5046
5059
  if (Type === void 0) { Type = null; }
5047
5060
  if (Area === void 0) { Area = ''; }
5048
5061
  if (Controller === void 0) { Controller = ''; }
5049
5062
  if (Action === void 0) { Action = ''; }
5050
- if (Children === void 0) { Children = []; }
5051
5063
  if (Accesses === void 0) { Accesses = []; }
5052
5064
  this.Name = Name;
5053
5065
  this.Icon = Icon;
@@ -5055,11 +5067,14 @@
5055
5067
  this.Area = Area;
5056
5068
  this.Controller = Controller;
5057
5069
  this.Action = Action;
5058
- this.Children = Children;
5059
5070
  this.Accesses = Accesses;
5060
5071
  this.RelatedId = null;
5061
5072
  this.Condition = null;
5062
5073
  }
5074
+ PermissionClass.prototype.getAccess = function (a) {
5075
+ var c = this.Accesses.filter(function (x) { return x.Action === a && x.Type === exports.PermissionTypeEnum.Access; });
5076
+ return c.length > 0 ? c[0] : null;
5077
+ };
5063
5078
  PermissionClass.prototype.hasAccess = function (a) {
5064
5079
  return this.Accesses.filter(function (x) { return x.Action === a && x.Type === exports.PermissionTypeEnum.Access; }).length > 0;
5065
5080
  };
@@ -6886,17 +6901,10 @@
6886
6901
  return p.length > 0 ? this.getPermissionClass(p[0]) : null;
6887
6902
  };
6888
6903
  BaseComponent.prototype.getPermissionClass = function (p) {
6889
- console.log('$$$$$$$$$$');
6890
- console.log(p);
6891
- console.log('$$$$$$$$$$');
6892
- return new PermissionClass(p.Name, p.Icon, p.Type, p.Area, p.Controller, p.Action, [], this.getPermissionAccessesClass(p.Id));
6904
+ return new PermissionClass(p.Name, p.Icon, p.Type, p.Area, p.Controller, p.Action, this.getPermissionAccessesClass(p.Id));
6893
6905
  };
6894
6906
  BaseComponent.prototype.getPermissionAccessesClass = function (parentId) {
6895
6907
  var _this = this;
6896
- console.log('--------------');
6897
- console.log(parentId);
6898
- console.log(this.app.currentUser.Permissions.filter(function (x) { return x.ParentId === parentId; }));
6899
- console.log('--------------');
6900
6908
  return this.app.currentUser.Permissions.filter(function (x) { return x.ParentId === parentId; }).map(function (x) { return _this.getPermissionClass(x); });
6901
6909
  };
6902
6910
  BaseComponent.prototype.hasAccess = function (a) {
@@ -6961,6 +6969,7 @@
6961
6969
  this.page = 1;
6962
6970
  this.sort = null;
6963
6971
  this.queryParams = {};
6972
+ this.title = null;
6964
6973
  this.sortType = null;
6965
6974
  this.displayLabel = true;
6966
6975
  this.isReport = false;
@@ -7045,7 +7054,9 @@
7045
7054
  var _this = this;
7046
7055
  if (changeRows === void 0) { changeRows = null; }
7047
7056
  this.permission = true;
7048
- if (this.permissions && this.permissions.hasAccess('List')) {
7057
+ var listAccess = this.permissions.getAccess('List');
7058
+ if (this.permissions && listAccess !== null) {
7059
+ this.title = listAccess.Name;
7049
7060
  this.url = this.permissions.getUrl();
7050
7061
  if (this.permissions.Type !== exports.PermissionTypeEnum.Form) {
7051
7062
  this.load();
@@ -7058,8 +7069,9 @@
7058
7069
  this.permission = false;
7059
7070
  return;
7060
7071
  }
7061
- var insert = new InputClass(this.environment, this.l, this.name + 'InsertTitle', 'fad fa-plus fa-rotate-90', exports.InputType.Button, 'w-u green h-30');
7062
- if (this.permissions.hasAccess('Insert')) {
7072
+ var insertAccess = this.permissions.getAccess('Insert');
7073
+ if (insertAccess != null) {
7074
+ var insert = new InputClass(this.environment, this.l, insertAccess.Name, 'fad fa-plus fa-rotate-90', exports.InputType.Button, 'w-u green h-30');
7063
7075
  if (this.form) {
7064
7076
  this.form.url = this.form.baseUrl = this.url + 'Insert';
7065
7077
  if (!this.form.onTop) {
@@ -7077,8 +7089,15 @@
7077
7089
  }
7078
7090
  }
7079
7091
  else {
7080
- insert.url = this.url;
7081
7092
  this.buttons.unshift(insert);
7093
+ if (this.modal) {
7094
+ insert.onClick = function () {
7095
+ _this.modal.show();
7096
+ };
7097
+ }
7098
+ else {
7099
+ insert.url = this.url + 'Insert';
7100
+ }
7082
7101
  }
7083
7102
  }
7084
7103
  if ((this.permissions.hasAccess('Insert') || this.permissions.hasAccess('Update')) && this.form) {
@@ -7109,16 +7128,6 @@
7109
7128
  this.modal.form = this.form;
7110
7129
  }
7111
7130
  }
7112
- else {
7113
- if (this.modal) {
7114
- insert.onClick = function () {
7115
- _this.modal.show();
7116
- };
7117
- }
7118
- else {
7119
- insert.url = this.url + 'Insert';
7120
- }
7121
- }
7122
7131
  var _loop_1 = function (option) {
7123
7132
  if (this_1.options.filter(function (x) { return x.name === option.Name; }).length > 0) {
7124
7133
  return "continue";