diff options
author | Koren Lev <korenlev@gmail.com> | 2017-07-27 16:42:15 +0300 |
---|---|---|
committer | Koren Lev <korenlev@gmail.com> | 2017-07-27 16:42:15 +0300 |
commit | b88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 (patch) | |
tree | ffa30a6e1511d72562d8772b8700cda52b2752a1 /ui/imports/ui/components/input-model/input-model.js | |
parent | b70483739d1f6f4f0d31987ed2e4d1e30d71d579 (diff) |
adding calipso ui
Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4
Signed-off-by: Koren Lev <korenlev@gmail.com>
Diffstat (limited to 'ui/imports/ui/components/input-model/input-model.js')
-rw-r--r-- | ui/imports/ui/components/input-model/input-model.js | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/ui/imports/ui/components/input-model/input-model.js b/ui/imports/ui/components/input-model/input-model.js new file mode 100644 index 0000000..9c515c5 --- /dev/null +++ b/ui/imports/ui/components/input-model/input-model.js @@ -0,0 +1,116 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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: InputModel + */ + +//import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; +//import { ReactiveDict } from 'meteor/reactive-dict'; +import * as R from 'ramda'; + +import './input-model.html'; + +/* + * Lifecycles + */ + +Template.InputModel.onCreated(function() { +}); + +/* +Template.InputModel.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.InputModel.events({ + 'input .inputField': function (event, instance) { + if (instance.data.type === 'checkbox') { return; } + + let value; + switch (event.target.type) { + case 'number': + value = event.target.valueAsNumber; + break; + + default: + value = event.target.value; + } + + instance.data.setModel(value); + }, + 'click .inputField': function (event, instance) { + if (instance.data.type !== 'checkbox') { return; } + + let element = instance.$('.inputField')[0]; + instance.data.setModel(element.checked); + } +}); + +/* + * Helpers + */ + +Template.InputModel.helpers({ + calcAttrs: function () { + let instance = Template.instance(); + let attrs = {}; + + if (instance.data.type === 'checkbox') { + if (instance.data.value) { + attrs.checked = true; + } + } else { + attrs.value = instance.data.value; + } + + return attrs; + }, + + calcType: function () { + let instance = Template.instance(); + return instance.data.type; + }, + + calcId: function () { + }, + + calcName: function () { + }, + + calcClass: function () { + let instance = Template.instance(); + if (R.isNil(instance.data.classes)) { + return 'form-control'; + } else { + return instance.data.classes; + } + }, + + calcPlaceholder: function () { + let instance = Template.instance(); + if (R.isNil(instance.data.placeholder)) { return ''; } + + return instance.data.placeholder; + }, + + markIfDisabled: function () { + let instance = Template.instance(); + let attrs = {}; + if (instance.data.disabled) { + attrs = R.assoc('disabled', true, attrs); + } + + return attrs; + } +}); |