You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CoreID/app/controllers/Cobalt.controller.js

44 lines
1.1 KiB

const { Controller } = require('libflitter')
class CobaltController extends Controller {
static get services() {
return [...super.services, 'Vue']
}
async listing(req, res, next) {
return res.page('cobalt:listing', {
...this.Vue.data({ resource: this._get_resource(req.params) }),
...this.Vue.session(req)
})
}
async form(req, res, next) {
const other = {
mode: (req.query.id ? (req.query.mode === 'view' ? 'view' : 'update') : 'insert'),
form_id: req.query.id || ''
}
return res.page('cobalt:form', {
...this.Vue.data({ resource: this._get_resource(req.params), ...other }),
...this.Vue.session(req),
})
}
_get_resource(params) {
const resource = params.resource
delete params.resource
const parts = [resource]
let i = 0
while ( params[i] ) {
parts.push(params[i])
i++
}
return parts.join('')
}
}
module.exports = exports = CobaltController