File

libs/rucken/ionic/src/lib/entities/users/users-list/users-list-filters-modal/users-list-filters-modal.ts

Methods

Static default
default()
Returns: void

Properties

group
group: Group
Default value: undefined
id
id: any
Default value: undefined
sortField
sortField: SelectInput
Default value: undefined
Static sortFields
sortFields: SelectInput[]
sortType
sortType: SelectInput
Default value: undefined
Static sortTypes
sortTypes: SelectInput[]
Static strings
strings: { groups: string; sortField: string; sortType: string; }
import { Group, serializeIdToObject, serializeModel, serializeObjectToId, translate } from '@rucken/core';
import { plainToClass, Transform, Type } from 'class-transformer';
import { IModel } from 'ngx-repository';
import { SelectInput } from '../../../../components/select-input/select-input';
import { keyToSelectInput, selectInputToKey } from '../../../../components/select-input/select-input.transformers';

export class UsersListFiltersModal implements IModel {
    static strings = {
        groups: translate('Groups'),
        sortField: translate('Sort field'),
        sortType: translate('Sort type')
    };
    static sortFields: SelectInput[] = [
        { id: 'id', title: translate('Id') },
        { id: 'username', title: translate('Username') },
        { id: 'isSuperuser', title: translate('Administrator') },
        { id: 'isStaff', title: translate('Staff') },
        { id: 'isActive', title: translate('User') },
        { id: 'firstName', title: translate('First name') },
        { id: 'lastName', title: translate('Last name') },
        { id: 'email', title: translate('Email') },
        { id: 'lastLogin', title: translate('Last login') },
        { id: 'dateJoined', title: translate('Date joined') },
        { id: 'dateOfBirth', title: translate('Date of birth') }
    ];
    static sortTypes: SelectInput[] = [
        { id: 'asc', title: translate('Asc') },
        { id: 'desc', title: translate('Desc') }
    ];
    id = undefined;
    @Type(serializeModel(Group))
    @Transform(
        serializeIdToObject(Group),
        { toClassOnly: true, groups: ['manual'] }
    )
    @Transform(
        serializeObjectToId(Group),
        { toPlainOnly: true, groups: ['manual'] }
    )
    group: Group = undefined;
    @Type(serializeModel(SelectInput))
    @Transform(
        keyToSelectInput({ items: UsersListFiltersModal.sortFields }),
        { toClassOnly: true, groups: ['manual'] }
    )
    @Transform(
        selectInputToKey({ items: UsersListFiltersModal.sortFields }),
        { toPlainOnly: true, groups: ['manual'] }
    )
    sortField: SelectInput = undefined;
    @Type(serializeModel(SelectInput))
    @Transform(
        keyToSelectInput({ items: UsersListFiltersModal.sortTypes }),
        { toClassOnly: true, groups: ['manual'] }
    )
    @Transform(
        selectInputToKey({ items: UsersListFiltersModal.sortTypes }),
        { toPlainOnly: true, groups: ['manual'] }
    )
    sortType: SelectInput = undefined;

    static default() {
        return plainToClass(
            UsersListFiltersModal,
            {
                group: '',
                sortField: 'id',
                sortType: 'desc'
            },
            {
                groups: ['manual']
            }
        );
    }
}

results matching ""

    No results matching ""