diff --git a/cms/static/coffee/src/main.coffee b/cms/static/coffee/src/main.coffee index 5959edd2ea..ed27c8ab34 100644 --- a/cms/static/coffee/src/main.coffee +++ b/cms/static/coffee/src/main.coffee @@ -2,9 +2,28 @@ Models: {} Views: {} + viewStack: [] + start: -> new CMS.Views.Course el: $('section.main-container') + replaceView: (view) -> + @viewStack = [view] + CMS.trigger('content.show', view) + + pushView: (view) -> + @viewStack.push(view) + CMS.trigger('content.show', view) + + popView: -> + @viewStack.pop() + if _.isEmpty(@viewStack) + CMS.trigger('content.hide') + else + view = _.last(@viewStack) + CMS.trigger('content.show', view) + view.delegateEvents() + _.extend CMS, Backbone.Events $ -> diff --git a/cms/static/coffee/src/views/course.coffee b/cms/static/coffee/src/views/course.coffee index 51413b1ecd..9d32b04d26 100644 --- a/cms/static/coffee/src/views/course.coffee +++ b/cms/static/coffee/src/views/course.coffee @@ -3,8 +3,8 @@ class CMS.Views.Course extends Backbone.View @$('#weeks > li').each (index, week) => new CMS.Views.Week el: week, height: @maxWeekHeight() - CMS.on('showContent', @showContent) - CMS.on('hideContent', @hideContent) + CMS.on('content.show', @showContent) + CMS.on('content.hide', @hideContent) showContent: (subview) => $('body').addClass('content') diff --git a/cms/static/coffee/src/views/module.coffee b/cms/static/coffee/src/views/module.coffee index f99422d79e..63ecabe835 100644 --- a/cms/static/coffee/src/views/module.coffee +++ b/cms/static/coffee/src/views/module.coffee @@ -6,4 +6,4 @@ class CMS.Views.Module extends Backbone.View @model = new CMS.Models.Module(id: @$el.data('id'), type: @$el.data('type')) edit: => - CMS.trigger('showContent', new CMS.Views.ModuleEdit(model: @model)) + CMS.replaceView(new CMS.Views.ModuleEdit(model: @model)) diff --git a/cms/static/coffee/src/views/module_edit.coffee b/cms/static/coffee/src/views/module_edit.coffee index 403b8277b3..9f002dae70 100644 --- a/cms/static/coffee/src/views/module_edit.coffee +++ b/cms/static/coffee/src/views/module_edit.coffee @@ -4,10 +4,10 @@ class CMS.Views.ModuleEdit extends Backbone.View events: 'click .cancel': 'cancel' + # 'click .module-edit', 'edit' initialize: -> - CMS.trigger 'module.edit' @$el.append($("""
""").load(@model.editUrl())) cancel: -> - CMS.trigger 'hideContent' + CMS.popView() diff --git a/cms/static/coffee/src/views/week.coffee b/cms/static/coffee/src/views/week.coffee index d26249065c..e07b159a46 100644 --- a/cms/static/coffee/src/views/week.coffee +++ b/cms/static/coffee/src/views/week.coffee @@ -11,11 +11,11 @@ class CMS.Views.Week extends Backbone.View @$('.modules .module').each -> new CMS.Views.Module el: this - CMS.on('showContent', @resetHeight) - CMS.on('hideContent', @setHeight) + CMS.on('content.show', @resetHeight) + CMS.on('content.hide', @setHeight) edit: => - CMS.trigger('showContent', new CMS.Views.WeekEdit(model: @model)) + CMS.replaceView(new CMS.Views.WeekEdit(model: @model)) setHeight: => @$el.height(@options.height)