From bae557a6152da9bc61340cda5f76731ce7a370ee Mon Sep 17 00:00:00 2001 From: Thaum Date: Wed, 4 Mar 2015 10:29:19 +0000 Subject: [PATCH] Made active tab for each character a session variable --- .../views/character/characterSheet.html | 24 ++++----- .../client/views/character/characterSheet.js | 54 ++++--------------- 2 files changed, 23 insertions(+), 55 deletions(-) diff --git a/rpg-docs/client/views/character/characterSheet.html b/rpg-docs/client/views/character/characterSheet.html index e523d379..ee111a06 100644 --- a/rpg-docs/client/views/character/characterSheet.html +++ b/rpg-docs/client/views/character/characterSheet.html @@ -8,23 +8,23 @@
- Stats - Features - Inventory - Spells - Persona - Journal + Stats + Features + Inventory + Spells + Persona + Journal
-
{{> stats}}
-
{{> features}}
-
{{> inventory}}
-
{{> spells}}
-
{{> persona}}
-
{{> journal}}
+
{{> stats}}
+
{{> features}}
+
{{> inventory}}
+
{{> spells}}
+
{{> persona}}
+
{{> journal}}
diff --git a/rpg-docs/client/views/character/characterSheet.js b/rpg-docs/client/views/character/characterSheet.js index 028f40d5..c603c1b0 100644 --- a/rpg-docs/client/views/character/characterSheet.js +++ b/rpg-docs/client/views/character/characterSheet.js @@ -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 -*/ \ No newline at end of file