diff --git a/cms/static/coffee/src/main.coffee b/cms/static/coffee/src/main.coffee new file mode 100644 index 0000000000..5959edd2ea --- /dev/null +++ b/cms/static/coffee/src/main.coffee @@ -0,0 +1,14 @@ +@CMS = + Models: {} + Views: {} + + start: -> + new CMS.Views.Course el: $('section.main-container') + +_.extend CMS, Backbone.Events + +$ -> + $.ajaxSetup + headers : { 'X-CSRFToken': $.cookie 'csrftoken' } + + CMS.start() diff --git a/cms/static/coffee/src/models/module.coffee b/cms/static/coffee/src/models/module.coffee new file mode 100644 index 0000000000..aba2c4f2d6 --- /dev/null +++ b/cms/static/coffee/src/models/module.coffee @@ -0,0 +1,3 @@ +class CMS.Models.Module extends Backbone.Model + editUrl: -> + "/edit_item?id=#{@get('id')}" diff --git a/cms/static/coffee/src/models/week.coffee b/cms/static/coffee/src/models/week.coffee new file mode 100644 index 0000000000..03e9c5d6f1 --- /dev/null +++ b/cms/static/coffee/src/models/week.coffee @@ -0,0 +1 @@ +class CMS.Models.Week extends Backbone.Model diff --git a/cms/static/coffee/src/views/course.coffee b/cms/static/coffee/src/views/course.coffee new file mode 100644 index 0000000000..769612de72 --- /dev/null +++ b/cms/static/coffee/src/views/course.coffee @@ -0,0 +1,19 @@ +class CMS.Views.Course extends Backbone.View + initialize: -> + @$('#weeks > li').each (index, week) => + new CMS.Views.Week el: week, height: @maxWeekHeight() + + CMS.on('showContent', @showContent) + + showContent: (subview) => + $('body').addClass('content') + @$('.main-content').html(subview.el) + @$('.cal').css height: @contentHeight() + @$('>section').css minHeight: @contentHeight() + + maxWeekHeight: -> + _.max($('#weeks > li').map -> $(this).height()) + 1 + + contentHeight: -> + padding = 29 + $(window).height() - padding diff --git a/cms/static/coffee/src/views/module.coffee b/cms/static/coffee/src/views/module.coffee new file mode 100644 index 0000000000..5d7368778c --- /dev/null +++ b/cms/static/coffee/src/views/module.coffee @@ -0,0 +1,9 @@ +class CMS.Views.Module extends Backbone.View + events: + "click .module-edit": "edit" + + initialize: -> + @model = new CMS.Models.Module(id: @el.id) + + edit: => + CMS.trigger('showContent', 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 new file mode 100644 index 0000000000..556424bd9c --- /dev/null +++ b/cms/static/coffee/src/views/module_edit.coffee @@ -0,0 +1,7 @@ +class CMS.Views.ModuleEdit extends Backbone.View + tagName: 'section' + className: 'edit-pane' + + initialize: -> + CMS.trigger 'module.edit' + @$el.append($('