lynx-admin-ui
Version:
this module adds annotations for entities in order to automatically generate an Administration UI
119 lines (107 loc) • 3.25 kB
text/typescript
import {
Route,
GET,
POST,
Name,
IsDisabledOn,
MultipartForm,
API,
} from 'lynx-framework/decorators';
import Request from 'lynx-framework/request';
import MediaEntity from 'lynx-framework/entities/media.entity';
import { BaseUIController } from '../base-ui-controller';
export default class UIController extends BaseUIController {
async getIndex(req: Request) {
return this.generateEntitiesIndex(req);
}
async mediaPreview(id: any, req: Request) {
let media = await MediaEntity.findBySlugOrId(id);
if (!media) {
throw this.error(404, 'Media not found');
}
try {
let options: any = null;
if (media.mimetype.startsWith("image/")) {
options = { width: 300 };
}
return this.download(media, options);
} catch (e) {
throw this.error(500, e);
}
}
async ajaxRequest(
entityName: string,
id: any,
field: string,
req: Request
) {
return this.performAjaxRequest(entityName, id, field, req);
}
async ajaxDetails(
entityName: string,
id: any,
field: string,
selection: any,
req: Request
) {
return this.performAjaxDetails(entityName, id, field, selection, req);
}
async performDelete(entityName: string, id: any, req: Request) {
return this.performEntityDelete(entityName, id, req);
}
async performMultipleDelete(entityName: string, req: Request) {
return this.performEntityDeleteMultiple(entityName, req);
}
async list(entityName: string, req: Request) {
return this.retrieveEntityList(entityName, req);
}
async details(entityName: string, id: any, req: Request) {
return this.retrieveEntityDetails(entityName, id, req);
}
async nestedView(
entityName: string,
id: any,
nestedKey: string,
req: Request
) {
return this.retrieveNestedView(entityName, id, nestedKey, req);
}
async deleteNested(
entityName: string,
id: any,
nestedKey: string,
req: Request
) {
return this.retrieveNestedView(entityName, id, nestedKey, req, true);
}
async edit(entityName: string, id: any, req: Request) {
return this.performEntityEdit(entityName, id, req);
}
}