const app = require('../../app') const { undoIcon} = require('../../assets') /** * @param {CrudPagesOptions} opts */ const list = (opts) => { const defaultHeader = column => html`${column.titleName}` const defaultCell = column => html`{{${raw(opts.camelName)}.${raw(column.camelName)}}}` app.component(`app${opts.pascalPlural}TrashPage`, { template: html`

${opts.titlePlural} Trash

${opts.columns.filter(c => c.inList).map(c => c.header || defaultHeader(c))} ${opts.columns.filter(c => c.inList).map(c => c.cell || defaultCell(c))}
Actions
Undelete
`, controllerAs: 'ctrl', controller: function(api, $mdToast, $location) { const crud = api.crud(`${opts.apiPrefix}`) this.selected = [] this.data = [] this.getRecords = () => { this.promise = crud.trash().then(data => { this.data = data }) } this.undelete = async rec => { try { await crud.undelete(rec.id) $mdToast.showSimple(`${opts.titleName} undeleted.`) $location.url(`${opts.appPrefix}`) } catch (err) { console.error(err) $mdToast.showSimple(`Could not undelete ${opts.titleName}: ${err.message || err}`) } } this.getRecords() } }) } module.exports = list