aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/ui/components/env-form
diff options
context:
space:
mode:
authorKoren Lev <korenlev@gmail.com>2017-07-27 16:42:15 +0300
committerKoren Lev <korenlev@gmail.com>2017-07-27 16:42:15 +0300
commitb88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 (patch)
treeffa30a6e1511d72562d8772b8700cda52b2752a1 /ui/imports/ui/components/env-form
parentb70483739d1f6f4f0d31987ed2e4d1e30d71d579 (diff)
adding calipso ui
Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4 Signed-off-by: Koren Lev <korenlev@gmail.com>
Diffstat (limited to 'ui/imports/ui/components/env-form')
-rw-r--r--ui/imports/ui/components/env-form/env-form.html37
-rw-r--r--ui/imports/ui/components/env-form/env-form.js94
-rw-r--r--ui/imports/ui/components/env-form/env-form.styl0
3 files changed, 131 insertions, 0 deletions
diff --git a/ui/imports/ui/components/env-form/env-form.html b/ui/imports/ui/components/env-form/env-form.html
new file mode 100644
index 0000000..a0fd3bd
--- /dev/null
+++ b/ui/imports/ui/components/env-form/env-form.html
@@ -0,0 +1,37 @@
+<!--
+########################################################################################
+# 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="envForm">
+
+<!-- li class dropdown -->
+<a id="dLabel" data-target="#" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
+ {{ selectedEnvName }}
+ <span class="caret"></span>
+</a>
+
+<ul class="os-env-form-dropdown-menu dropdown-menu"
+ aria-labelledby="dLabel"
+ style="color: black; padding: 10px;" >
+
+ <li><a href="{{pathFor route='wizard'}}" class="droplist">Add new environment</a></li>
+ <li class="divider"></li>
+ <li style="border-bottom: 3px solid #2196f3;">Existing environments:</li>
+ {{#each envItem in envList}}
+ <li><a class="sm-env-item envList droplist"
+ data-env-name="{{ envItem.name }}"
+ data-env-id="{{ idToStr envItem._id }}"
+ >{{envItem.name}}</a></li>
+ {{/each}}
+</ul>
+
+</template>
+
+
+
diff --git a/ui/imports/ui/components/env-form/env-form.js b/ui/imports/ui/components/env-form/env-form.js
new file mode 100644
index 0000000..3007021
--- /dev/null
+++ b/ui/imports/ui/components/env-form/env-form.js
@@ -0,0 +1,94 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// 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: envForm
+ */
+
+import * as R from 'ramda';
+import { SimpleSchema } from 'meteor/aldeed:simple-schema';
+import { Environments } from '/imports/api/environments/environments';
+import { parseReqId } from '/imports/lib/utilities';
+
+import './env-form.html';
+
+/*
+ * Lifecycle methods
+ */
+
+Template.envForm.onCreated(function () {
+ var instance = this;
+ instance.state = new ReactiveDict();
+ instance.state.setDefault({
+ selectedEnv: null
+ });
+
+
+ instance.autorun(function() {
+ let data = R.when(R.isNil, R.always({}), Template.currentData());
+
+ new SimpleSchema({
+ selectedEnvironment: {
+ type: Object,
+ blackbox: true,
+ optional: true
+ },
+ onEnvSelected: { type: Function }
+ }).validate(data);
+
+ instance.state.set('selectedEnv', data.selectedEnvironment);
+
+ instance.subscribe('environments_config');
+ });
+});
+
+/*
+ * Events
+ */
+
+Template.envForm.events = {
+ 'click .os-env-form-dropdown-menu .sm-env-item': function (event, _instance) {
+ event.preventDefault();
+
+ let envName = R.path(['target','dataset', 'envName'], event);
+ let _id = R.path(['target', 'dataset', 'envId'], event);
+
+ if (R.isNil(envName)) { return; }
+ _id = parseReqId(_id);
+
+ let data = Template.currentData();
+ if (data.onEnvSelected) {
+ data.onEnvSelected({
+ _id: _id.id,
+ name: envName
+ });
+ }
+ }
+};
+
+/*
+ * Helpers
+ */
+
+Template.envForm.helpers({
+ selectedEnvName: function () {
+ let instance = Template.instance();
+ let selectedEnv = instance.state.get('selectedEnv');
+
+ let envName = R.when(
+ R.isNil,
+ R.always('My Environments')
+ )(R.path(['name'], selectedEnv));
+
+ return envName;
+ },
+
+ envList: function () {
+ return Environments.find({});
+ },
+});
diff --git a/ui/imports/ui/components/env-form/env-form.styl b/ui/imports/ui/components/env-form/env-form.styl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ui/imports/ui/components/env-form/env-form.styl