From b88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Thu, 27 Jul 2017 16:42:15 +0300 Subject: adding calipso ui Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4 Signed-off-by: Koren Lev --- ui/imports/ui/components/mt-select/mt-select.html | 13 +++ ui/imports/ui/components/mt-select/mt-select.js | 99 +++++++++++++++++++++++ ui/imports/ui/components/mt-select/mt-select.styl | 2 + 3 files changed, 114 insertions(+) create mode 100644 ui/imports/ui/components/mt-select/mt-select.html create mode 100644 ui/imports/ui/components/mt-select/mt-select.js create mode 100644 ui/imports/ui/components/mt-select/mt-select.styl (limited to 'ui/imports/ui/components/mt-select') diff --git a/ui/imports/ui/components/mt-select/mt-select.html b/ui/imports/ui/components/mt-select/mt-select.html new file mode 100644 index 0000000..cce8973 --- /dev/null +++ b/ui/imports/ui/components/mt-select/mt-select.html @@ -0,0 +1,13 @@ + diff --git a/ui/imports/ui/components/mt-select/mt-select.js b/ui/imports/ui/components/mt-select/mt-select.js new file mode 100644 index 0000000..48a2141 --- /dev/null +++ b/ui/imports/ui/components/mt-select/mt-select.js @@ -0,0 +1,99 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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: MtSelect + */ + +//import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; +import { SimpleSchema } from 'meteor/aldeed:simple-schema'; +import * as R from 'ramda'; +//import { ReactiveDict } from 'meteor/reactive-dict'; + +import './mt-select.html'; + +/* + * Lifecycles + */ + +Template.MtSelect.onCreated(function() { + let instance = this; + + instance.autorun(function () { + let data = Template.currentData(); + + instance.autorun(function () { + new SimpleSchema({ + classStr: { type: String, optional: true }, + selectedValue: { type: String, optional: true }, + isDisabled: { type: Boolean, optional: true }, + options: { type: [Object], blackbox: true }, + onInput: { type: Object, blackbox: true }, + size: { type: Number, optional: true }, + }).validate(data); + }); + }); + + instance.autorun(function () { + let data = Template.currentData(); + + instance.onInput = function (value) { + R.when(R.pipe(R.isNil, R.not), x => x(value))(R.path(['onInput', 'fn'], data)); + }; + }); +}); + +/* +Template.MtSelect.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.MtSelect.events({ + 'change .sm-mt-select': function (event, instance) { + event.preventDefault(); + event.stopPropagation(); + + let value = R.pipe(R.head, R.prop('value'))(event.target.selectedOptions); + instance.onInput(value); + }, +}); + +/* + * Helpers + */ + +Template.MtSelect.helpers({ + attrsSelect: function (isDisabled, size) { + let attrs = {}; + if (isDisabled) { + attrs = R.assoc('disabled', 'disabled', attrs); + } + + if (size) { + attrs = R.assoc('size', size, attrs); + } + + return attrs; + }, + + attrOptSelected: function (currentValue, selectedValue) { + let attrs = {}; + if (currentValue === selectedValue) { + attrs = R.assoc('selected', 'selected', attrs); + } + return attrs; + }, + +}); // helpers + + diff --git a/ui/imports/ui/components/mt-select/mt-select.styl b/ui/imports/ui/components/mt-select/mt-select.styl new file mode 100644 index 0000000..e0ff8ca --- /dev/null +++ b/ui/imports/ui/components/mt-select/mt-select.styl @@ -0,0 +1,2 @@ +/* Set the component style here */ +// "MtSelect" -- cgit 1.2.3-korg