Made active tab for each character a session variable

This commit is contained in:
Thaum
2015-03-04 10:29:19 +00:00
parent a5068f1bc2
commit bae557a615
2 changed files with 23 additions and 55 deletions

View File

@@ -1,58 +1,26 @@
Template.characterSheet.created = function(){
Template.instance().selectedTab = new ReactiveVar(0)
Session.setDefault(this.data._id + ".selectedTab", "stats");
}
var setTab = function(charId, tab){
return Session.set(charId + ".selectedTab", tab);
};
var setTab = function(instance, num){
instance.selectedTab.set(num);
};
var incTab = function(instance, num){
var current = +instance.selectedTab.get();
var selected = current + num;
if (selected < 0) return;
if (selected >= document.querySelector('#tabPages').children.length) return;
setTab(instance, selected);
};
Template.characterSheet.rendered = function(){
var observer = new ObjectObserver(document.querySelector('#characterSheetTabs'));
var instance = Template.instance();
observer.open(function(added, removed, changed, getOldValueFn) {
Object.keys(changed).forEach(function(property) {
if(property === "selected"){
var selected = changed[property];
setTab(instance, selected);
}
})
});
var getTab = function(charId){
return Session.get(charId + ".selectedTab");
};
Template.characterSheet.helpers({
selectedTab: function(){
return Template.instance().selectedTab.get();
return getTab(this._id);
}
});
Template.characterSheet.events({
"#tabPages track": function(event){
console.log(event);
},
"swipeleft": function(event){
incTab(Template.instance(), 1);
},
"swiperight": function(event){
incTab(Template.instance(), -1);
},
"core-animated-pages-transition-end #tabPages": function(event) {
event.stopPropagation();
},
"tap #characterSheetTabs paper-tab": function(event, instance){
setTab(this._id, event.currentTarget.getAttribute("name"));
}
});
/* requires the following templates
stats
features
persona
inventory
spellbook
journal
*/