Added custom_icons attribute to autogenerated TOSCA for dashboards
Change-Id: I277eebc1913f71eeef798cee661d5fbe4d9fd544
diff --git a/views/ngXosViews/tenant/gulp/build.js b/views/ngXosViews/tenant/gulp/build.js
index 2d2ec6b..7f8ade7 100644
--- a/views/ngXosViews/tenant/gulp/build.js
+++ b/views/ngXosViews/tenant/gulp/build.js
@@ -26,6 +26,9 @@
var autoprefixer = require('autoprefixer');
var mqpacker = require('css-mqpacker');
var csswring = require('csswring');
+var yaml = require('js-yaml');
+var colors = require('colors/safe');
+var fs = require('fs');
const TEMPLATE_FOOTER = `
angular.module('xos.tenant')
@@ -74,7 +77,7 @@
// copy images in correct folder
gulp.task('copyImages', ['wait'], function(){
- return gulp.src([`${options.icon}/tenant-icon.png`,`${options.icon}/tenant-icon-active.png`])
+ return gulp.src([`${options.icon}/tenant-icon.png`, `${options.icon}/tenant-icon-active.png`])
.pipe(gulp.dest(options.static + 'images/'))
});
@@ -155,6 +158,56 @@
}, 1000);
});
+ gulp.task('tosca', function (cb) {
+
+ // TOSCA to register the dashboard in the system
+ const dashboardJson = {};
+ dashboardJson['Tenant'] = {
+ type: 'tosca.nodes.DashboardView',
+ properties: {
+ url: 'template:xosTenant'
+ }
+ };
+
+ // check for custom icons
+ if(
+ fs.existsSync(`${options.icon}/tenant-icon.png`) &&
+ fs.existsSync(`${options.icon}/tenant-icon-active.png`)
+ ){
+ dashboardJson['Tenant'].properties.custom_icon = true;
+ }
+
+ const dashboardTosca = yaml.dump(dashboardJson).replace(/'/gmi, '');
+
+ // TOSCA to add the dashboard to the user
+ const userDashboardJson = {};
+ userDashboardJson['tenant_dashboard'] = {
+ node: 'Tenant',
+ relationship: 'tosca.relationships.UsesDashboard'
+ };
+ const userJson = {
+ 'padmin@vicci.org': {
+ type: 'tosca.nodes.User',
+ properties: {
+ 'no-create': true,
+ 'no-delete': true
+ },
+ requirements: [userDashboardJson]
+ }
+ };
+ const userTosca = yaml.dump(userJson).replace(/'/gmi, '');
+
+
+ // the output is in a timeout so that it get printed after the gulp logs
+ setTimeout(function () {
+ console.log(colors.cyan('\n\n# You can use this recipe to load the dashboard in the system:'));
+ console.log(colors.yellow(dashboardTosca));
+ console.log(colors.cyan('# And this recipe to activate the dashboard for a user:'));
+ console.log(colors.yellow(userTosca));
+ }, 1000);
+ cb();
+ });
+
gulp.task('build', function() {
runSequence(
'clean',
@@ -167,7 +220,8 @@
'copyCss',
'copyImages',
'copyHtml',
- 'cleanTmp'
+ 'cleanTmp',
+ 'tosca'
);
});
};
\ No newline at end of file