diff options
Diffstat (limited to 'ui/imports/ui/components/link-types-list')
3 files changed, 166 insertions, 0 deletions
diff --git a/ui/imports/ui/components/link-types-list/link-types-list.html b/ui/imports/ui/components/link-types-list/link-types-list.html new file mode 100644 index 0000000..575557d --- /dev/null +++ b/ui/imports/ui/components/link-types-list/link-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="LinkTypesList"> +<div class="os-link-types-list cards white"> + <h3>Link Types</h3> + <a class="sm-add-new-link" + href="{{pathFor route='link-type' query=(asHash action='insert') }}"> + <i class="cl-action-icon fa fa-plus" area-hidden="true"></i> Create new link type + </a> + <table class="sm-link-types-table table"> + <thead> + <tr> + <th>Description</th> + <th>Type</th> + <th>Endpoint A</th> + <th>Endpoint B</th> + <th>Actions</th> + </tr> </thead> + <tbody> + {{#each linkType in linkTypes }} + <tr> + <td>{{ linkType.description }}</td> + <td>{{ linkType.type }}</td> + <td>{{ linkType.endPointA }}</td> + <td>{{ linkType.endPointB }}</td> + <td> + <div class="sm-action-bar"> + <a href="{{pathFor route='link-type' + query=(asHash id=(idToStr linkType._id) action='view') }}" + ><i class="cl-action-icon fa fa-eye" area-hidden="true"></i></a> + + {{#if isAuthManageLinkTypes }} + <a href="{{pathFor route='link-type' + query=(asHash id=(idToStr linkType._id) action='update') }}" + ><i class="cl-action-icon fa fa-pencil" area-hidden="true"></i></a> + + <a href="{{pathFor route='link-type' + query=(asHash id=(idToStr linkType._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/link-types-list/link-types-list.js b/ui/imports/ui/components/link-types-list/link-types-list.js new file mode 100644 index 0000000..5eab355 --- /dev/null +++ b/ui/imports/ui/components/link-types-list/link-types-list.js @@ -0,0 +1,87 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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: LinkTypesList + */ + +//import { Meteor } from 'meteor/meteor'; +import * as R from 'ramda'; +import { Template } from 'meteor/templating'; +import { ReactiveDict } from 'meteor/reactive-dict'; +import { SimpleSchema } from 'meteor/aldeed:simple-schema'; +import { LinkTypes } from '/imports/api/link-types/link-types'; +import { Roles } from 'meteor/alanning:roles'; + +import './link-types-list.html'; + +/* + * Lifecycles + */ + +Template.LinkTypesList.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; + if (R.isNil(env)) { + instance.state.set('env', null); + } else { + instance.state.set('env', env); + } + + instance.subscribe('link_types?env*', env); + }); +}); + +/* +Template.LinkTypesList.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.LinkTypesList.events({ +}); + +/* + * Helpers + */ + +Template.LinkTypesList.helpers({ + linkTypes: function () { + //let instance = Template.instance(); + + //var env = instance.state.get('env'); + //return Scans.find({ environment: env }); + return LinkTypes.find({}); + }, + + isAuthManageLinkTypes: function () { + return Roles.userIsInRole(Meteor.userId(), 'manage-link-types', Roles.GLOBAL_GROUP); + }, +}); // end - helpers diff --git a/ui/imports/ui/components/link-types-list/link-types-list.styl b/ui/imports/ui/components/link-types-list/link-types-list.styl new file mode 100644 index 0000000..acb0a81 --- /dev/null +++ b/ui/imports/ui/components/link-types-list/link-types-list.styl @@ -0,0 +1,23 @@ +.os-link-types-list + margin: 20px; + + .cl-action-icon, + .card.fa.cl-action-icon + font-size: 16px !important; + + .sm-link-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 + |