aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/ui/components/link-types-list
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/ui/components/link-types-list')
-rw-r--r--ui/imports/ui/components/link-types-list/link-types-list.html56
-rw-r--r--ui/imports/ui/components/link-types-list/link-types-list.js87
-rw-r--r--ui/imports/ui/components/link-types-list/link-types-list.styl23
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
+