44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
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
|