diff options
Diffstat (limited to 'ui/imports/ui/components/clique-types-list')
3 files changed, 160 insertions, 0 deletions
diff --git a/ui/imports/ui/components/clique-types-list/clique-types-list.html b/ui/imports/ui/components/clique-types-list/clique-types-list.html new file mode 100644 index 0000000..e4badf9 --- /dev/null +++ b/ui/imports/ui/components/clique-types-list/clique-types-list.html @@ -0,0 +1,56 @@ +<!-- +######################################################################################## +# Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others # +# # +# All rights reserved. This program and the accompanying materials # +# are made available under the terms of the Apache License, Version 2.0 # +# which accompanies this distribution, and is available at # +# http://www.apache.org/licenses/LICENSE-2.0 # +######################################################################################## + --> +<template name="CliqueTypesList"> +<div class="os-clique-types-list cards white"> + <h3>Clique Types</h3> + <a class="sm-add-new-link" + href="{{pathFor route='clique-type' query=(asHash action='insert') }}"> + <i class="cl-action-icon fa fa-plus" area-hidden="true"></i> Create new clique type + </a> + <table class="sm-clique-types-table table"> + <thead> + <tr> + <th>name</th> + <th>Environment</th> + <th>Focal Point Type</th> + <th>Link Types</th> + <th>Actions</th> + </tr> </thead> + <tbody> + {{#each cliqueType in cliqueTypes }} + <tr> + <td>{{ cliqueType.name }}</td> + <td>{{ cliqueType.environment }}</td> + <td>{{ cliqueType.focal_point_type }}</td> + <td>{{ cliqueType.link_types }}</td> + <td> + <div class="sm-action-bar"> + <a href="{{pathFor route='clique-type' + query=(asHash id=(idToStr cliqueType._id) action='view') }}" + ><i class="cl-action-icon fa fa-eye" area-hidden="true"></i></a> + + {{#if isAuthManageCliqueTypes }} + <a href="{{pathFor route='clique-type' + query=(asHash id=(idToStr cliqueType._id) action='update') }}" + ><i class="cl-action-icon fa fa-pencil" area-hidden="true"></i></a> + + <a href="{{pathFor route='clique-type' + query=(asHash id=(idToStr cliqueType._id) action='remove') }}" + ><i class="cl-action-icon fa fa-trash-o" area-hidden="true"></i></a> + {{/if }} + </div> + </td> + </tr> + {{/each }} + </tbody> + </table> +</div> +</template> diff --git a/ui/imports/ui/components/clique-types-list/clique-types-list.js b/ui/imports/ui/components/clique-types-list/clique-types-list.js new file mode 100644 index 0000000..7f3f149 --- /dev/null +++ b/ui/imports/ui/components/clique-types-list/clique-types-list.js @@ -0,0 +1,82 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +/* + * Template Component: CliqueTypesList + */ + +//import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; +import { ReactiveDict } from 'meteor/reactive-dict'; +import { SimpleSchema } from 'meteor/aldeed:simple-schema'; +import { CliqueTypes } from '/imports/api/clique-types/clique-types'; +import { Roles } from 'meteor/alanning:roles'; + +import './clique-types-list.html'; + +/* + * Lifecycles + */ + +Template.CliqueTypesList.onCreated(function() { + var instance = this; + + instance.state = new ReactiveDict(); + instance.state.setDefault({ + env: null + }); + + instance.autorun(function () { + //let data = Template.currentData(); + + var controller = Iron.controller(); + var params = controller.getParams(); + var query = params.query; + + new SimpleSchema({ + env: { type: String, optional: true }, + }).validate(query); + + let env = query.env; + instance.state.set('env', env); + + instance.subscribe('clique_types?env*', env); + }); +}); + +/* +Template.CliqueTypesList.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.CliqueTypesList.events({ +}); + +/* + * Helpers + */ + +Template.CliqueTypesList.helpers({ + cliqueTypes: function () { + //let instance = Template.instance(); + + //var env = instance.state.get('env'); + //return Scans.find({ environment: env }); + return CliqueTypes.find({}); + }, + + isAuthManageCliqueTypes: function () { + return Roles.userIsInRole(Meteor.userId(), 'manage-clique-types', Roles.GLOBAL_GROUP); + }, +}); + + diff --git a/ui/imports/ui/components/clique-types-list/clique-types-list.styl b/ui/imports/ui/components/clique-types-list/clique-types-list.styl new file mode 100644 index 0000000..d4e08a2 --- /dev/null +++ b/ui/imports/ui/components/clique-types-list/clique-types-list.styl @@ -0,0 +1,22 @@ +.os-clique-types-list + margin: 20px; + + .cl-action-icon, + .card.fa.cl-action-icon + font-size: 16px !important; + + .sm-clique-types-table + th + color: spark-blue + + .sm-action-bar + display: flex; + + a + margin: 0px 5px; + + .cl-action-icon + color: gray + + .sm-add-new-link + color: spark-blue |