fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Building js & css for editor with r.js/lessc via grunt tasks
[fnpeditor.git]
/
views
/
tabs
/
tabs.js
diff --git
a/views/tabs/tabs.js
b/views/tabs/tabs.js
index
c4d7697
..
bc14083
100644
(file)
--- a/
views/tabs/tabs.js
+++ b/
views/tabs/tabs.js
@@
-29,20
+29,26
@@
define([
}
\r
\r
if(this.options.stacked) {
\r
}
\r
\r
if(this.options.stacked) {
\r
- this.nodes.tabBar.addClass('nav-stacked nav-pills');
\r
+ this.nodes.tabBar.addClass('nav-stacked nav-pills').removeClass('nav-tabs');
\r
+ }
\r
+ if(this.options.position === 'right') {
\r
+ this.$el.addClass('tabs-right');
\r
+ this.nodes.content.addClass('tab-content');
\r
}
\r
return this;
\r
},
\r
\r
addTab: function(title, slug, content) {
\r
}
\r
return this;
\r
},
\r
\r
addTab: function(title, slug, content) {
\r
- if(this.contents[slug])
\r
- return false;
\r
+ if(this.contents[slug]) {
\r
+ this.contents[slug].detach();
\r
+ }
\r
this.contents[slug] = content;
\r
\r
var text = (typeof title === 'string') ? title : (title.text || '');
\r
var icon = title.icon || null;
\r
\r
this.contents[slug] = content;
\r
\r
var text = (typeof title === 'string') ? title : (title.text || '');
\r
var icon = title.icon || null;
\r
\r
- this.nodes.tabBar.append(this.handleTemplate({text: text, icon: icon, slug: slug}));
\r
+ if(!this.tabExists(slug))
\r
+ this.nodes.tabBar.append(this.handleTemplate({text: text, icon: icon, slug: slug}));
\r
if(!this.selectedTab)
\r
this.selectTab(slug);
\r
},
\r
if(!this.selectedTab)
\r
this.selectTab(slug);
\r
},
\r
@@
-51,14
+57,22
@@
define([
if(slug !== this.selectedTab && this.contents[slug]) {
\r
this.trigger('leaving', this.selectedTab);
\r
\r
if(slug !== this.selectedTab && this.contents[slug]) {
\r
this.trigger('leaving', this.selectedTab);
\r
\r
- if(this.selectedTab)
\r
- this.contents[this.selectedTab].detach();
\r
+ if(this.selectedTab) {
\r
+ var toDetach = this.contents[this.selectedTab];
\r
+ if(toDetach.onHide)
\r
+ toDetach.onHide();
\r
+ toDetach.detach();
\r
+ }
\r
this.nodes.content.append(this.contents[slug]);
\r
this.nodes.content.append(this.contents[slug]);
\r
+ if(this.contents[slug].onShow) {
\r
+ this.contents[slug].onShow();
\r
+ }
\r
this.nodes.tabBar.find('.active').removeClass('active');
\r
this.nodes.tabBar.find('a[href="#'+slug+'"]').parent().addClass('active');
\r
\r
this.nodes.tabBar.find('.active').removeClass('active');
\r
this.nodes.tabBar.find('a[href="#'+slug+'"]').parent().addClass('active');
\r
\r
+ var prevSlug = this.selectedTab;
\r
this.selectedTab = slug;
\r
this.selectedTab = slug;
\r
- this.trigger('tabSelected',
slug
);
\r
+ this.trigger('tabSelected',
{slug: slug, prevSlug: prevSlug}
);
\r
}
\r
},
\r
\r
}
\r
},
\r
\r
@@
-66,6
+80,14
@@
define([
return this.$el;
\r
},
\r
\r
return this.$el;
\r
},
\r
\r
+ getCurrentSlug: function() {
\r
+ return this.selectedTab;
\r
+ },
\r
+
\r
+ tabExists: function(slug) {
\r
+ return this.nodes.tabBar.find('a[href="#'+ slug + '"]').length > 0;
\r
+ },
\r
+
\r
/* Events */
\r
\r
_onTabTitleClicked: function(e) {
\r
/* Events */
\r
\r
_onTabTitleClicked: function(e) {
\r