libs/rucken/todo-web/src/lib/entities/statuses/statuses-grid/statuses-grid.component.ts
BaseEntityListComponent
changeDetection | ChangeDetectionStrategy.OnPush |
selector | statuses-grid |
templateUrl | ./statuses-grid.component.html |
Methods |
constructor(modalsService: ModalsService, errorsExtractor: ErrorsExtractor, translateService: TranslateService, dynamicRepository: DynamicRepository, statusesConfig: IRestProviderOptions
|
||||||||||||||||||
Parameters :
|
defaultCreateCreateModal | ||||||
defaultCreateCreateModal(item?: StatusWithProject)
|
||||||
Parameters :
Returns :
any
|
defaultCreateUpdateModal | ||||||
defaultCreateUpdateModal(item?: StatusWithProject)
|
||||||
Parameters :
Returns :
any
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
onChangeFilter | ||||||
onChangeFilter(filter?: IBaseEntityGridFilter)
|
||||||
Parameters :
Returns :
void
|
import { ChangeDetectionStrategy, Component, Inject, Input, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import {
BaseEntityListComponent,
ErrorsExtractor,
IBaseEntityGridFilter,
IBaseEntityModalOptions,
ModalsService,
translate
} from '@rucken/core';
import { Project, STATUSES_CONFIG_TOKEN, StatusWithProject } from '@rucken/todo-core';
import { DynamicRepository, IRestProviderOptions } from 'ngx-repository';
import { StatusModalComponent } from '../status-modal/status-modal.component';
import { BindIoInner } from 'ngx-bind-io';
@BindIoInner()
@Component({
selector: 'statuses-grid',
templateUrl: './statuses-grid.component.html',
changeDetection: ChangeDetectionStrategy.OnPush
})
export class StatusesGridComponent extends BaseEntityListComponent<StatusWithProject> implements OnInit {
@Input()
autoload = false;
@Input()
modalItem: IBaseEntityModalOptions = {
component: StatusModalComponent
};
@Input()
title = translate('Statuses');
@Input()
project: Project = undefined;
constructor(
modalsService: ModalsService,
protected errorsExtractor: ErrorsExtractor,
protected translateService: TranslateService,
protected dynamicRepository: DynamicRepository,
@Inject(STATUSES_CONFIG_TOKEN)
protected statusesConfig: IRestProviderOptions<StatusWithProject>
) {
super(dynamicRepository.fork<StatusWithProject>(StatusWithProject), modalsService, StatusWithProject);
}
ngOnInit() {
if (!this.mockedItems) {
this.useRest({
apiUrl: this.apiUrl,
...this.statusesConfig,
autoload: this.autoload
});
}
if (this.mockedItems) {
this.useMock({
items: this.mockedItems,
...this.statusesConfig,
autoload: this.autoload
});
}
this.onChangeFilter();
}
onChangeFilter(filter?: IBaseEntityGridFilter) {
filter = filter ? filter : {};
if (this.project) {
filter.project = this.project.id;
} else {
filter.project = -1;
}
super.onChangeFilter(filter);
}
defaultCreateCreateModal(item?: StatusWithProject) {
item = item || new StatusWithProject();
item.project = this.project;
this.modalCreate = {
...this.modalCreate,
initialState: {
...this.modalCreate.initialState,
data: item
}
};
return super.defaultCreateCreateModal(item);
}
defaultCreateUpdateModal(item?: StatusWithProject) {
item.project = this.project;
this.modalUpdate = {
...this.modalUpdate,
initialState: {
...this.modalUpdate.initialState,
data: item
}
};
return super.defaultCreateUpdateModal(item);
}
}
<entity-grid
[bindIO]
[columns]="['title','action']"
[enableCreate]="'add_status' | perm:false | async"
[enableUpdate]="'change_status' | perm:false | async"
[enableDelete]="'delete_status' | perm:false | async">
</entity-grid>