agneta-platform
Version:
Agneta Platform - Integrate and customize business applications
65 lines (52 loc) • 1.65 kB
JavaScript
/* Copyright 2017 Agneta Network Applications, LLC.
*
* Source file: pages/scripts/generators/roles.js
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const _ = require('lodash');
const path = require('path');
const Promise = require('bluebird');
module.exports = function(locals) {
var project = locals.project;
var services = locals.services;
project.extend.generator.register('roles', function() {
var roles = services.get('roles');
var result = [];
return Promise.map(_.keys(roles), function(key) {
var role = roles[key];
if (!role.form) {
return;
}
var name = 'role-' + key;
var scripts = [
'partial/role'
].concat(role.scripts);
var pageData = _.extend({
path: path.join('partial', name),
template: 'role',
class: name,
isPartial: true,
barebones: true,
controller: 'FormRole',
}, role, {
scripts: scripts
});
pageData.form.name = 'formRole';
result.push(pageData);
})
.then(function() {
return result;
});
});
};