diff options
Diffstat (limited to 'ui/imports/ui/components/mt-radios')
-rw-r--r-- | ui/imports/ui/components/mt-radios/mt-radios.html | 22 | ||||
-rw-r--r-- | ui/imports/ui/components/mt-radios/mt-radios.js | 70 | ||||
-rw-r--r-- | ui/imports/ui/components/mt-radios/mt-radios.styl | 2 |
3 files changed, 94 insertions, 0 deletions
diff --git a/ui/imports/ui/components/mt-radios/mt-radios.html b/ui/imports/ui/components/mt-radios/mt-radios.html new file mode 100644 index 0000000..23fa3d8 --- /dev/null +++ b/ui/imports/ui/components/mt-radios/mt-radios.html @@ -0,0 +1,22 @@ +<template name="MtRadios"> +<div class="os-mt-radios"> + +{{#each option in options }} +<div class="radio"> + <div class="cl-field-group"> + <label> + <input type="radio" + class="cl-mt-radio-input {{ inputClasses }}" + name="radioName" + id="{{ option.value }}" + value="{{ option.value }}" + {{ attrsInput option.value selectedValue }} + > + {{ option.label }} + </label> + </div> +</div> +{{/each }} + +</div> +</template> diff --git a/ui/imports/ui/components/mt-radios/mt-radios.js b/ui/imports/ui/components/mt-radios/mt-radios.js new file mode 100644 index 0000000..e2c3169 --- /dev/null +++ b/ui/imports/ui/components/mt-radios/mt-radios.js @@ -0,0 +1,70 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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: MtRadios + */ + +//import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; +//import { ReactiveDict } from 'meteor/reactive-dict'; +import * as R from 'ramda'; + +import './mt-radios.html'; + +/* + * Lifecycles + */ + +Template.MtRadios.onCreated(function() { + let instance = this; + + 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.MtRadios.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.MtRadios.events({ + 'click .cl-mt-radio-input': function (event, instance) { + event.preventDefault(); + event.stopPropagation(); + + instance.onInput(event.target.value); + }, +}); + +/* + * Helpers + */ + +Template.MtRadios.helpers({ + attrsInput: function (inputValue, selectedValue) { + let attrs = {}; + + if (inputValue === selectedValue) { + attrs = R.assoc('checked', 'checked', attrs); + } + + return attrs; + }, +}); // end: helpers + + diff --git a/ui/imports/ui/components/mt-radios/mt-radios.styl b/ui/imports/ui/components/mt-radios/mt-radios.styl new file mode 100644 index 0000000..868d2c0 --- /dev/null +++ b/ui/imports/ui/components/mt-radios/mt-radios.styl @@ -0,0 +1,2 @@ +/* Set the component style here */ +// "MtRadios" |