import { model, Model } from '@core/core'; import { AppModel } from 'src/modules/app.model'; import { Connection } from 'src/modules/crud/crud.typings'; import { ApiFactory } from 'src/modules/crud/apiFactory'; import { PAGE_INDEX } from '@constants/constant'; import { testConnection } from './form.server'; const api = new ApiFactory().create(); @model() export class MaintainFormModel extends Model<{ types : { datebaseTypeSelected: AppModel['TYPE']['datebaseTypeSelected']; datebaseTypeSelectedOne: AppModel['TYPE']['datebaseTypeSelectedOne']; connectionSelectedOne: AppModel['TYPE']['connectionSelectedOne']; saveEvent: AppModel['TYPE']['saveEvent']; testEvent: AppModel['TYPE']['testEvent']; pageIndex: AppModel['TYPE']['pageIndex']; connections: AppModel['TYPE']['connections']; isCopy: AppModel['TYPE']['isCopy']; connectionSelected: AppModel['TYPE']['connectionSelected']; }, context: MaintainFormModel['context']; }> { static xtype = 'dec.dcm.model.maintain_form'; context = [ 'datebaseTypeSelected', 'datebaseTypeSelectedOne', 'connectionSelectedOne', 'saveEvent', 'pageIndex', 'testEvent', 'connections', 'isCopy', 'connectionSelected', ]; actions = { addConnection: (data: Connection) => api.addConnection(data), updateConnection: (name: string, data: Connection) => { data.connectionId = name; return api.updateConnection(data); }, shutdownConnectionStatus: (name: string) => api.shutdownConnectionStatus(name), testConnection: (connection: Connection) => testConnection(connection), setIsCopy(isCopy: boolean) { this.model.isCopy = isCopy; }, isDriverError(errorCode: string) { return api.isDriverError(errorCode); }, goFirstPage() { this.model.pageIndex = PAGE_INDEX.CONNECTION; }, setConnectionSelected(name: string) { this.model.connectionSelected = name; } } }