diff options
author | Koren Lev <korenlev@gmail.com> | 2017-09-29 01:38:18 +0300 |
---|---|---|
committer | Yaron Yogev <yaronyogev@gmail.com> | 2017-10-03 09:46:58 +0000 |
commit | d0adff06bed72f9a0edd7adccfa6a1111784bc8b (patch) | |
tree | 4b5eaf1107e6973b1eac636309a99c83074acbfc /ui/imports/ui/components/user-settings/user-settings.js | |
parent | fbbaf20912c79bd99a5c3696850d70c11965f56b (diff) |
release 1.0 calipso for opnfv apex
Change-Id: I3e63cd27c5f4d3756e67a07c749863a68e84dde2
Signed-off-by: Koren Lev <korenlev@gmail.com>
(cherry picked from commit d32f75145676bacefde0d08a14680a5984623451)
Diffstat (limited to 'ui/imports/ui/components/user-settings/user-settings.js')
-rw-r--r-- | ui/imports/ui/components/user-settings/user-settings.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/ui/imports/ui/components/user-settings/user-settings.js b/ui/imports/ui/components/user-settings/user-settings.js new file mode 100644 index 0000000..953a6fb --- /dev/null +++ b/ui/imports/ui/components/user-settings/user-settings.js @@ -0,0 +1,123 @@ +/* + * Template Component: UserSettings + */ + +//import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; +import { ReactiveDict } from 'meteor/reactive-dict'; +//import { SimpleSchema } from 'meteor/aldeed:simple-schema'; +import * as R from 'ramda'; + +import { save } from '/imports/api/user-settings/methods'; +import { UserSettings } from '/imports/api/user-settings/user-settings'; + +import './user-settings.html'; + +/* + * Lifecycles + */ + +Template.UserSettings.onCreated(function() { + let instance = this; + instance.state = new ReactiveDict(); + instance.state.setDefault({ + model: UserSettings.schema.clean({}), + actionResult: 'none', + message: null, + }); + + /* + instance.autorun(function () { + let data = Template.currentData(); + + new SimpleSchema({ + }).validate(data); + }); + */ + + instance.autorun(function () { + instance.subscribe('user_settings?user'); + UserSettings.find({user_id: Meteor.userId()}).forEach((userSettings) => { + instance.state.set('model', userSettings); + }); + }); +}); + +/* +Template.UserSettings.rendered = function() { +}; +*/ + +/* + * Events + */ + +Template.UserSettings.events({ + 'click .js-submit-button': function (event, instance) { + event.preventDefault(); + let msgsViewBackDelta = Number.parseInt(instance.$('.sm-msgs-view-back-delta')[0].value); + saveForm(instance, msgsViewBackDelta); + }, + + 'input .sm-msgs-view-back-delta': function (_e, instance) { + let msgsViewBackDelta = Number.parseInt(instance.$('.sm-msgs-view-back-delta')[0].value); + let model = instance.state.get('model'); + model = R.assoc('messages_view_backward_delta', msgsViewBackDelta, model); + instance.state.set('model', model); + }, +}); + +/* + * Helpers + */ + +Template.UserSettings.helpers({ + getModelField: function (fieldName) { + let instance = Template.instance(); + return R.path([fieldName], instance.state.get('model')); + }, + + getState: function (key) { + let instance = Template.instance(); + return instance.state.get(key); + }, + + isActionError: function () { + let instance = Template.instance(); + return instance.state.get('actionResult') === 'error'; + }, + + isActionSuccess: function () { + let instance = Template.instance(); + return instance.state.get('actionResult') === 'success'; + }, + + durationAsText: function (delta) { + let duration = moment.duration(delta); + let text = `${duration.years()} years, ${duration.months()} months, ${duration.days()} days, ${duration.hours()} hours and ${duration.minutes()} minutes from current time.`; + return text; + }, +}); // end: helpers + +function saveForm(instance, msgsViewBackDelta) { + instance.state.set('actionResult', 'none'); + instance.state.set('message', null); + + save.call({ + messages_view_backward_delta: msgsViewBackDelta + }, (error) => { + if (error) { + instance.state.set('actionResult', 'error'); + if (typeof error === 'string') { + instance.state.set('message', error); + } else { + instance.state.set('message', error.message); + } + + return; + } + + instance.state.set('actionResult', 'success'); + instance.state.set('message', 'record has been updated succesfuly'); + }); +} |