Several large refactorings

* Refactor location of all data files to include a subdirectory
  for the mod version
* Update the BaseModel class to allow models to load themselves from
  any text file (whether JSON or CG)
* Refactor ModPack & ModVersion to move the laoding functionality in
  one into the other (and use the new stuff in BaseModel)
* Move the parser versions into a new subdirectory which allows for
  future additional parsers
This commit is contained in:
Andrew Miner
2015-01-16 20:26:54 -08:00
parent c14997ef90
commit 5f57622cf3
954 changed files with 284 additions and 1239 deletions
@@ -6,7 +6,9 @@ All rights reserved.
###
BaseController = require './base_controller'
{DefaultBookUrls} = require '../constants'
{DefaultModVersions} = require '../constants'
{Duration} = require '../constants'
ModVersion = require '../models/mod_version'
ModVersionController = require './mod_version_controller'
########################################################################################################################
@@ -15,11 +17,11 @@ module.exports = class ModPackController extends BaseController
constructor: (options={})->
if not options.model? then throw new Error "options.model is required"
@_modVersionControllers = []
options.templateName = 'mod_pack'
super options
@_controllers = []
# Event Methods ################################################################################
onSuggestModClicked: ->
@@ -29,8 +31,9 @@ module.exports = class ModPackController extends BaseController
# BaseController Overrides #####################################################################
onWillRender: ->
if @model.modVersions.length is 0
@model.loadAllModVersions DefaultBookUrls
for attributes in DefaultModVersions
modVersion = new ModVersion _.extend attributes, modPack:@model
modVersion.fetch()
onDidRender: ->
@$table = @$('table')
@@ -38,16 +41,29 @@ module.exports = class ModPackController extends BaseController
super
refresh: ->
@$('table tr').remove()
return unless @model?
if not @model?
@_controllers = []
@$('table tr').remove()
return
@_modVersionControllers = []
for i in [@model.modVersions.length-1..0] by -1
modVersion = @model.modVersions[i]
controller = new ModVersionController model:modVersion
index = 0
while index < Math.min @_controllers.length, @model.modVersions.length
controller = @_controllers[index]
controller.model = @model.modVersions[index]
index++
while @_controllers.length < @model.modVersions.length
controller = new ModVersionController model:@model.modVersions[index]
controller.render()
@_modVersionControllers.push controller
@$table.prepend controller.$el
@_controllers.push controller
controller.$el.hide duration:0
@$table.append controller.$el
controller.$el.slideDown duration:Duration.normal
index++
while @_controllers.length > @model.modVersions.length
controller = @_controllers.pop()
controller.$el.slideUp duration:Duration.normal, complete:-> controller.$el.remove()
if global.feedbackController?
@$toolbar.show duration:0