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
|