Standardize how JS XModules are instantiated

This commit is contained in:
Calen Pennington
2012-07-20 11:54:58 -04:00
parent 50f27bcfb7
commit 408726e678
13 changed files with 91 additions and 53 deletions

View File

@@ -4,20 +4,7 @@ class CMS.Models.Module extends Backbone.Model
data: ''
loadModule: (element) ->
moduleType = @get('type')
try
@module = if moduleType? then new window[moduleType](element) else null
catch error
console.error "Unable to load #{moduleType}: #{error.message}" if console
loadPreview: (element) ->
previewType = @get('previewType')
try
@previewModule = if previewType? then new window[previewType](element) else null
catch error
console.error "Unable to load #{previewType}: #{error.message}" if console
@module = XModule.loadModule($(element).find('.xmodule_edit'))
editUrl: ->
"/edit_item?#{$.param(id: @get('id'))}"

View File

@@ -10,8 +10,9 @@ class CMS.Views.ModuleEdit extends Backbone.View
initialize: ->
@$el.load @model.editUrl(), =>
@model.loadModule(@el)
@$el.find('.preview').children().each (idx, previewEl) =>
@model.loadPreview(previewEl)
# Load preview modules
XModule.loadModules('display')
save: (event) ->
event.preventDefault()