Browse Source

Merge pull request #10661 from abpframework/feat/10660

Remove ngbDropdownItem directive from single abp grid action button
pull/10674/head
Mehmet Erim 5 years ago
committed by GitHub
parent
commit
09fc2d8011
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html
  2. 1
      npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts

39
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html

@ -10,7 +10,7 @@
<div ngbDropdownMenu> <div ngbDropdownMenu>
<ng-container <ng-container
*ngFor="let action of actionList; trackBy: trackByFn" *ngFor="let action of actionList; trackBy: trackByFn"
[ngTemplateOutlet]="btnItem" [ngTemplateOutlet]="dropDownBtnItemTmp"
[ngTemplateOutletContext]="{ $implicit: action }" [ngTemplateOutletContext]="{ $implicit: action }"
> >
</ng-container> </ng-container>
@ -19,25 +19,44 @@
<ng-container <ng-container
*ngIf="actionList.length === 1" *ngIf="actionList.length === 1"
[ngTemplateOutlet]="btnItem" [ngTemplateOutlet]="btnTmp"
[ngTemplateOutletContext]="{ $implicit: actionList.get(0).value }" [ngTemplateOutletContext]="{ $implicit: actionList.get(0).value }"
></ng-container> ></ng-container>
<ng-template #btnItem let-action> <ng-template #dropDownBtnItemTmp let-action>
<ng-container *ngIf="action.visible(data)"> <ng-container *ngIf="action.visible(data)">
<button <button
ngbDropdownItem ngbDropdownItem
*abpPermission="action.permission" *abpPermission="action.permission"
(click)="action.action(data)" (click)="action.action(data)"
type="button" type="button"
class="{{ actionList.length === 1 ? 'btn btn-primary' : '' }}"
[class.text-center]="actionList.length === 1"
> >
<i [ngClass]="action.icon" [class.me-1]="action.icon"></i> <ng-container
<span *ngIf="action.icon; else ellipsis">{{ action.text | abpLocalization }}</span> *ngTemplateOutlet="buttonContentTmp; context: { $implicit: action }"
<ng-template #ellipsis> ></ng-container>
<div abpEllipsis>{{ action.text | abpLocalization }}</div> </button>
</ng-template> </ng-container>
</ng-template>
<ng-template #buttonContentTmp let-action>
<i [ngClass]="action.icon" [class.me-1]="action.icon"></i>
<span *ngIf="action.icon; else ellipsis">{{ action.text | abpLocalization }}</span>
<ng-template #ellipsis>
<div abpEllipsis>{{ action.text | abpLocalization }}</div>
</ng-template>
</ng-template>
<ng-template #btnTmp let-action>
<ng-container *ngIf="action.visible(data)">
<button
*abpPermission="action.permission"
(click)="action.action(data)"
type="button"
class="btn btn-primary text-center"
>
<ng-container
*ngTemplateOutlet="buttonContentTmp; context: { $implicit: action }"
></ng-container>
</button> </button>
</ng-container> </ng-container>
</ng-template> </ng-template>

1
npm/ng-packs/packages/theme-shared/extensions/src/tests/enum.util.spec.ts

@ -7,6 +7,7 @@ import { createEnum, createEnumOptions, createEnumValueResolver } from '../lib/u
const mockSessionState = { const mockSessionState = {
languageChange$: new BehaviorSubject('tr'), languageChange$: new BehaviorSubject('tr'),
getLanguage: () => 'tr', getLanguage: () => 'tr',
getLanguage$: () => of('tr'),
onLanguageChange$: () => new BehaviorSubject('tr'), onLanguageChange$: () => new BehaviorSubject('tr'),
} as any; } as any;

Loading…
Cancel
Save