aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/ui/components/env-main-info/env-main-info.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/ui/components/env-main-info/env-main-info.js')
-rw-r--r--ui/imports/ui/components/env-main-info/env-main-info.js123
1 files changed, 123 insertions, 0 deletions
diff --git a/ui/imports/ui/components/env-main-info/env-main-info.js b/ui/imports/ui/components/env-main-info/env-main-info.js
new file mode 100644
index 0000000..d866c0e
--- /dev/null
+++ b/ui/imports/ui/components/env-main-info/env-main-info.js
@@ -0,0 +1,123 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// 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: EnvMainInfo
+ */
+
+//import { Meteor } from 'meteor/meteor';
+import { Template } from 'meteor/templating';
+import { ReactiveDict } from 'meteor/reactive-dict';
+import * as R from 'ramda';
+
+import '/imports/ui/components/input-model/input-model';
+import '/imports/ui/components/select-model/select-model';
+import { createInputArgs } from '/imports/ui/lib/input-model';
+import { createSelectArgs } from '/imports/ui/lib/select-model';
+import { Constants } from '/imports/api/constants/constants';
+
+import './env-main-info.html';
+
+/*
+ * Lifecycles
+ */
+
+Template.EnvMainInfo.onCreated(function () {
+ let instance = this;
+
+ instance.state = new ReactiveDict();
+ instance.state.setDefault({
+ action: null,
+ });
+
+ instance.autorun(function () {
+ let action = Template.currentData().action;
+ instance.state.set('action', action);
+
+ instance.subscribe('constants');
+ });
+
+});
+
+/*
+Template.EnvironmentWizard.rendered = function(){
+};
+*/
+
+/*
+ * Helpers
+ */
+
+Template.EnvMainInfo.helpers({
+ /*
+ createInputArgs: function (params) {
+ let instance = Template.instance();
+ return {
+ context: params.hash.context,
+ key: params.hash.key,
+ type: params.hash.type,
+ placeholder: params.hash.placeholder,
+ setModel: instance.data.setModel
+ };
+ }*/
+ createInputArgs: createInputArgs,
+
+ createSelectArgs: createSelectArgs,
+
+ distributionOptions: function () {
+ let item = Constants.findOne({ name: 'distributions' });
+ if (R.isNil(item)) { return []; }
+ return item.data;
+ },
+
+ /* depracated
+ networkOptions: function () {
+ let item = Constants.findOne({ name: 'network_plugins' });
+ if (R.isNil(item)) { return []; }
+ return item.data;
+ },
+ */
+
+ typeDriversOptions: function () {
+ let item = Constants.findOne({ name: 'type_drivers' });
+ if (R.isNil(item)) { return []; }
+ return item.data;
+ },
+
+ mechanismDriversOptions: function () {
+ let item = Constants.findOne({ name: 'mechanism_drivers' });
+ if (R.isNil(item)) { return []; }
+ return item.data;
+ },
+
+ isFieldDisabled: function (fieldName, globalDisabled) {
+ let instance = Template.instance();
+ if (globalDisabled) { return true; }
+
+ return isDisabledByField(fieldName, instance.state.get('action'));
+ }
+});
+
+/*
+ * Events
+ */
+
+Template.EnvMainInfo.events({
+ 'click .sm-next-button': function () {
+ let instance = Template.instance();
+ instance.data.onNextRequested();
+ }
+});
+
+function isDisabledByField(fieldName, actionName) {
+ if (R.contains(fieldName, ['name', 'distribution']) && actionName !== 'insert') {
+ return true;
+ }
+
+ return false;
+}