diff --git a/framework/core/ember/app/utils/menu.js b/framework/core/ember/app/utils/menu.js
index ec1b655fb..533eef4da 100644
--- a/framework/core/ember/app/utils/menu.js
+++ b/framework/core/ember/app/utils/menu.js
@@ -5,29 +5,10 @@ import MenuItemSeparator from '../components/menu-item-separator';
export default NamedContainerView.extend({
- tagName: 'ul',
-
- active: null,
-
i: 1,
addSeparator: function(index) {
var item = MenuItemSeparator;
this.addItem('separator'+(this.i++), item, index);
- },
-
- activeChanged: function() {
- var active = this.get('active');
- if (typeof active != 'array') {
- active = [active];
- }
-
- var namedViews = this.get('namedViews');
- var view;
- for (var name in namedViews) {
- if (namedViews.hasOwnProperty(name) && (view = namedViews.get(name))) {
- view.set('active', active.indexOf(name) !== -1);
- }
- }
- }.observes('active')
+ }
});
diff --git a/framework/core/ember/app/utils/named-container-view.js b/framework/core/ember/app/utils/named-container-view.js
index 219ffb922..ca1f7b9b3 100644
--- a/framework/core/ember/app/utils/named-container-view.js
+++ b/framework/core/ember/app/utils/named-container-view.js
@@ -3,11 +3,10 @@ import Ember from 'ember';
export default Ember.ArrayProxy.extend({
content: null,
-
namedViews: null,
init: function() {
- this.set('content', Ember.A());
+ this.set('content', Ember.A()); // this is an important line.
this.set('namedViews', Ember.Object.create());
this._super();
},
diff --git a/framework/core/ember/app/views/discussions.js b/framework/core/ember/app/views/discussions.js
index abe05c12d..b16e7ed47 100644
--- a/framework/core/ember/app/views/discussions.js
+++ b/framework/core/ember/app/views/discussions.js
@@ -1,7 +1,14 @@
import Ember from 'ember';
+import DropdownSelect from '../components/dropdown-select';
+import ButtonItem from '../components/button-item';
+import NavItem from '../components/nav-item';
+import Menu from '../utils/menu';
+
export default Ember.View.extend({
+ sidebarView: Ember.ContainerView.extend(),
+
classNameBindings: ['pinned'],
pinned: function() {
@@ -10,6 +17,8 @@ export default Ember.View.extend({
didInsertElement: function() {
+ this.trigger('populateSidebar', this.get('sidebar'));
+
var view = this;
this.$().find('.discussions-pane').on('mouseenter', function() {
@@ -49,6 +58,46 @@ export default Ember.View.extend({
});
},
+ setupSidebar: function(sidebar) {
+ sidebar.pushObject(ButtonItem.create({
+ title: 'Start a Discussion',
+ icon: 'edit',
+ class: 'btn-primary'
+ }));
+
+ var nav = Menu.create();
+ this.trigger('populateNav', nav);
+ sidebar.pushObject(DropdownSelect.create({
+ items: nav
+ }));
+ }.on('populateSidebar'),
+
+ setupNav: function(nav) {
+ nav.addItem('all', NavItem.create({
+ title: 'All Discussions',
+ icon: 'comments-o',
+ linkTo: '"discussions" (query-params filter="")'
+ }));
+
+ nav.addItem('private', NavItem.create({
+ title: 'Private',
+ icon: 'envelope-o',
+ linkTo: '"discussions" (query-params filter="private")'
+ }));
+
+ nav.addItem('following', NavItem.create({
+ title: 'Following',
+ icon: 'star',
+ linkTo: '"discussions" (query-params filter="following")'
+ }));
+
+ nav.addItem('categories', NavItem.create({
+ title: 'Categories',
+ icon: 'reorder',
+ linkTo: '"categories"'
+ }));
+ }.on('populateNav'),
+
willDestroyElement: function() {
this.set('controller.test', $(window).scrollTop());
$(window).off('scroll.loadMore');