WIP
This commit is contained in:
@@ -5,7 +5,8 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
templates = require './templates'
|
||||
{Observable} = require("crafting-guide-common").util
|
||||
templates = require './templates'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
@@ -84,9 +85,6 @@ module.exports = class BaseController extends Backbone.View
|
||||
onDidModelChange: ->
|
||||
@tryRefresh()
|
||||
|
||||
onDidModelSync: ->
|
||||
@tryRefresh()
|
||||
|
||||
onWillRender: -> # do nothing
|
||||
|
||||
onDidRender: -> # do nothing
|
||||
@@ -96,11 +94,12 @@ module.exports = class BaseController extends Backbone.View
|
||||
onDidShow: -> # do nothing
|
||||
|
||||
onWillChangeModel: (oldModel, newModel)->
|
||||
if oldModel?.on?
|
||||
@stopListening oldModel
|
||||
if newModel?.on?
|
||||
@listenTo newModel, 'sync', (e)=> @onDidModelSync e
|
||||
@listenTo newModel, 'change', (e)=> @onDidModelChange e
|
||||
if oldModel?.isObservable
|
||||
oldModel.off target:this
|
||||
|
||||
if newModel?.isObservable
|
||||
newModel.on Observable::ANY, this, "onDidModelChange"
|
||||
|
||||
return newModel
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
@@ -28,7 +28,6 @@ module.exports = class BrowsePageController extends PageController
|
||||
@_tileControllers = []
|
||||
|
||||
@_client.on c.event.change, => @tryRefresh()
|
||||
@_modPack.on c.event.change, => @tryRefresh()
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
@@ -81,7 +80,7 @@ module.exports = class BrowsePageController extends PageController
|
||||
|
||||
_refreshModTiles: ->
|
||||
index = 0
|
||||
mods = @_modPack.getAllMods()
|
||||
mods = (mod for modId, mod of @_modPack.mods)
|
||||
for mod in mods
|
||||
controller = @_tileControllers[index]
|
||||
if not controller
|
||||
|
||||
@@ -29,12 +29,12 @@ module.exports = class ModTileController extends BaseController
|
||||
super
|
||||
|
||||
refresh: ->
|
||||
@$link.attr 'href', c.url.mod modSlug:@model.slug
|
||||
@$logoImage.attr 'src', c.url.modIcon modSlug:@model.slug
|
||||
@$title.text @model.name
|
||||
@$link.attr 'href', c.url.mod modId:@model.id
|
||||
@$logoImage.attr 'src', c.url.modIcon modId:@model.id
|
||||
@$title.text @model.displayName
|
||||
@$description.text @model.description
|
||||
|
||||
if @model.enabled
|
||||
if @model.isEnabled
|
||||
@$el.removeClass 'disabled'
|
||||
else
|
||||
@$el.addClass 'disabled'
|
||||
|
||||
@@ -5,39 +5,37 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
BaseController = require '../../../base_controller'
|
||||
BaseController = require "../../../base_controller"
|
||||
ItemDisplay = require "../../../../models/site/item_display"
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = class ItemTileController extends BaseController
|
||||
|
||||
constructor: (options={})->
|
||||
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
||||
if not options.model? then throw new Error 'options.model is required'
|
||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||
options.templateName = 'common/item_group/item_tile'
|
||||
if not options.imageLoader? then throw new Error "options.imageLoader is required"
|
||||
if not options.model? then throw new Error "options.model is required"
|
||||
options.templateName = "common/item_group/item_tile"
|
||||
super options
|
||||
|
||||
@_imageLoader = options.imageLoader
|
||||
@_modPack = options.modPack
|
||||
@_display = new ItemDisplay @model
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onDidRender: ->
|
||||
@$icon = @$('img')
|
||||
@$name = @$('.itemName')
|
||||
@$nameLink = @$('a')
|
||||
@$icon = @$("img")
|
||||
@$name = @$(".itemName")
|
||||
@$nameLink = @$("a")
|
||||
super
|
||||
|
||||
refresh: ->
|
||||
display = @_modPack.findItemDisplay @model.slug
|
||||
|
||||
@_imageLoader.load display.iconUrl, @$icon
|
||||
@$name.html display.itemName
|
||||
@$nameLink.attr 'href', display.itemUrl
|
||||
@_imageLoader.load @_display.iconUrl, @$icon
|
||||
@$name.html @_display.name
|
||||
@$nameLink.attr "href", @_display.url
|
||||
|
||||
# Backbone.View Overrides ######################################################################
|
||||
|
||||
events: ->
|
||||
return _.extend super,
|
||||
'click a': 'routeLinkClick'
|
||||
"click a": "routeLinkClick"
|
||||
|
||||
@@ -2,8 +2,5 @@
|
||||
.toggle
|
||||
span.checkbox
|
||||
span.label I have this mod in my modpack
|
||||
.version
|
||||
span Version:
|
||||
select
|
||||
.warning.
|
||||
<b>PLEASE NOTE:</b> Crafting plans, search, and other features will ignore items and recipes from this mod.
|
||||
|
||||
+17
-55
@@ -5,97 +5,59 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
BaseController = require '../../base_controller'
|
||||
{Mod} = require('crafting-guide-common').deprecated.game
|
||||
BaseController = require "../../base_controller"
|
||||
{Mod} = require("crafting-guide-common").models
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = class ModVersionSelectorController extends BaseController
|
||||
|
||||
constructor: (options={})->
|
||||
if not options.model? then throw new Error 'options.model is required'
|
||||
options.templateName = 'common/mod_version_selector'
|
||||
if options.model?.constructor isnt Mod then throw new Error "options.model must be a Mod"
|
||||
options.templateName = "common/mod_version_selector"
|
||||
super options
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
onToggleEnabled: ->
|
||||
if @model.activeVersion is Mod.Version.None
|
||||
tracker.trackEvent c.tracking.category.modPack, 'toggle-on', @model.slug
|
||||
@model.activeVersion = Mod.Version.Latest
|
||||
if not @model.isEnabled
|
||||
tracker.trackEvent c.tracking.category.modPack, "toggle-on", @model.id
|
||||
@model.isEnabled = true
|
||||
else
|
||||
tracker.trackEvent c.tracking.category.modPack, 'toggle-off', @model.slug
|
||||
@model.activeVersion = Mod.Version.None
|
||||
tracker.trackEvent c.tracking.category.modPack, "toggle-off", @model.id
|
||||
@model.isEnabled = false
|
||||
|
||||
return false
|
||||
|
||||
onVersionChanged: ->
|
||||
@model.activeVersion = @$versionSelector.val()
|
||||
tracker.trackEvent c.tracking.category.modPack, 'select-version', "#{@model.slug}@#{@model.activeVersion}"
|
||||
return false
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
Object.defineProperties @prototype,
|
||||
|
||||
effectiveModVersion:
|
||||
get: ->
|
||||
modVersion = @model.activeModVersion
|
||||
modVersion ?= @model.getModVersion Mod.Version.Latest
|
||||
modVersion.fetch() if modVersion?
|
||||
return modVersion
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onDidRender: ->
|
||||
@$toggleSection = @$('.toggle')
|
||||
@$versionSection = @$('.version')
|
||||
@$versionSelector = @$('.version select')
|
||||
@$warning = @$('.warning')
|
||||
@$toggleSection = @$(".toggle")
|
||||
@$warning = @$(".warning")
|
||||
super
|
||||
|
||||
refresh: ->
|
||||
console.log "refreshing"
|
||||
@_refreshEnabled()
|
||||
@_refreshVersionSelector()
|
||||
super
|
||||
|
||||
# Backbone.View Overrides ######################################################################
|
||||
|
||||
events: ->
|
||||
return _.extend super,
|
||||
'change .version select': 'onVersionChanged'
|
||||
'click .toggle': 'onToggleEnabled'
|
||||
"click .toggle": "onToggleEnabled"
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_refreshEnabled: ->
|
||||
if @model.slug in c.requiredMods
|
||||
if @model.id in c.requiredMods
|
||||
@hide @$toggleSection
|
||||
else
|
||||
@show @$toggleSection
|
||||
|
||||
if @model.activeVersion is Mod.Version.None
|
||||
@$toggleSection.removeClass 'enabled'
|
||||
if not @model.isEnabled
|
||||
@$toggleSection.removeClass "enabled"
|
||||
@show @$warning
|
||||
else
|
||||
@$toggleSection.addClass 'enabled'
|
||||
@$toggleSection.addClass "enabled"
|
||||
@hide @$warning
|
||||
|
||||
_refreshVersionSelector: ->
|
||||
modVersions = @model.modVersions
|
||||
|
||||
if (@model.activeVersion is Mod.Version.None) or modVersions.length < 2
|
||||
@hide @$versionSection
|
||||
else
|
||||
@show @$versionSection
|
||||
|
||||
selectedModVersion = @effectiveModVersion
|
||||
|
||||
@$versionSelector.empty()
|
||||
|
||||
for modVersion in @model.modVersions
|
||||
$option = $("<option value=\"#{modVersion.version}\">#{modVersion.version}</option>")
|
||||
if modVersion is selectedModVersion
|
||||
$option.attr 'selected', 'true'
|
||||
@$versionSelector.append $option
|
||||
@$versionSelector.css display:''
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
EditableFile = require '../../models/site/editable_file'
|
||||
{Item} = require('crafting-guide-common').deprecated.game
|
||||
ItemGroupController = require '../common/item_group/item_group_controller'
|
||||
ItemPage = require '../../models/site/item_page'
|
||||
{ItemSlug} = require('crafting-guide-common').deprecated.game
|
||||
MarkdownSectionController = require '../common/markdown_section/markdown_section_controller'
|
||||
MultiblockViewerController = require './multiblock_viewer/multiblock_viewer_controller'
|
||||
PageController = require '../page_controller'
|
||||
RecipeDetailController = require './recipe_detail/recipe_detail_controller'
|
||||
VideoController = require '../common/video/video_controller'
|
||||
EditableFile = require "../../models/site/editable_file"
|
||||
{Item} = require("crafting-guide-common").models
|
||||
ItemDisplay = require "../../models/site/item_display"
|
||||
ItemGroupController = require "../common/item_group/item_group_controller"
|
||||
ItemPage = require "../../models/site/item_page"
|
||||
MarkdownSectionController = require "../common/markdown_section/markdown_section_controller"
|
||||
MultiblockViewerController = require "./multiblock_viewer/multiblock_viewer_controller"
|
||||
PageController = require "../page_controller"
|
||||
RecipeDetailController = require "./recipe_detail/recipe_detail_controller"
|
||||
VideoController = require "../common/video/video_controller"
|
||||
w = require "when"
|
||||
|
||||
########################################################################################################################
|
||||
@@ -24,34 +24,27 @@ module.exports = class ItemPageController extends PageController
|
||||
@::FILE_UPLOAD_DELAY = 250
|
||||
|
||||
constructor: (options={})->
|
||||
if not options.client? then throw new Error 'options.client is required'
|
||||
if not options.itemSlug? then throw new Error 'options.itemSlug is required'
|
||||
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||
if not options.router? then throw new Error 'options.router is required'
|
||||
|
||||
options.model ?= new ItemPage modPack:options.modPack
|
||||
options.templateName ?= 'item_page'
|
||||
if not options.model?.constructor is ItemPage then throw new Error "options.model must be an ItemPage instance"
|
||||
if not options.client? then throw new Error "options.client is required"
|
||||
if not options.imageLoader? then throw new Error "options.imageLoader is required"
|
||||
if not options.modPack? then throw new Error "options.modPack is required"
|
||||
if not options.router? then throw new Error "options.router is required"
|
||||
|
||||
options.templateName ?= "item_page"
|
||||
super options
|
||||
|
||||
@_client = options.client
|
||||
@_descriptionFile = null
|
||||
@_enterFeedback = options.enterFeedback
|
||||
@_imageLoader = options.imageLoader
|
||||
@_itemSlug = options.itemSlug
|
||||
@_modPack = options.modPack
|
||||
@_router = options.router
|
||||
@_triggerEditing = options.login
|
||||
|
||||
@_modPack.on c.event.change, =>
|
||||
@tryRefresh()
|
||||
@trigger c.event.change
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
craftingPlanButtonClicked: ->
|
||||
tracker.trackEvent c.tracking.category.craft, 'view-crafting-plan', @model.item.slug
|
||||
tracker.trackEvent c.tracking.category.craft, "view-crafting-plan", @model.item.slug
|
||||
display = @_modPack.findItemDisplay @model.item.slug
|
||||
@_router.navigate display.craftingUrl, trigger:true
|
||||
return false
|
||||
@@ -59,23 +52,18 @@ module.exports = class ItemPageController extends PageController
|
||||
# PageController Overrides #####################################################################
|
||||
|
||||
getBreadcrumbs: ->
|
||||
return [] unless @_itemSlug?
|
||||
|
||||
display = @_modPack.findItemDisplay @_itemSlug
|
||||
return [] unless display.itemName? and display.modName
|
||||
|
||||
return [
|
||||
$("<a href='/browse'>Browse</a>")
|
||||
$("<a href='#{c.url.mod modSlug:display.modSlug}'>#{display.modName}</a>")
|
||||
$("<b>#{display.itemName}</b>")
|
||||
$("<a href='#{@model.display.modUrl}'>#{@model.display.modName}</a>")
|
||||
$("<b>#{display.name}</b>")
|
||||
]
|
||||
|
||||
getExtraNav: ->
|
||||
itemSlug = @_modPack.chooseRandomItem()
|
||||
return null unless itemSlug?
|
||||
item = @_modPack.chooseRandomItem()
|
||||
return null unless item?
|
||||
|
||||
itemDisplay = @_modPack.findItemDisplay itemSlug
|
||||
return $("<a href='#{itemDisplay.itemUrl}'>Random Item</a>")
|
||||
display = new ItemDisplay item
|
||||
return $("<a href='#{display.url}'>Random Item</a>")
|
||||
|
||||
getMetaDescription: ->
|
||||
return null unless @_itemSlug?
|
||||
|
||||
@@ -27,27 +27,16 @@ module.exports = class ModPageController extends PageController
|
||||
@_modPack = options.modPack
|
||||
@_router = options.router
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
Object.defineProperties @prototype,
|
||||
|
||||
effectiveModVersion:
|
||||
get: ->
|
||||
modVersion = @model.activeModVersion
|
||||
modVersion ?= @model.getModVersion Mod.Version.Latest
|
||||
modVersion.fetch() if modVersion?
|
||||
return modVersion
|
||||
|
||||
# PageController Overrides #####################################################################
|
||||
|
||||
getBreadcrumbs: ->
|
||||
return [
|
||||
$('<a href="/browse">Browse</a>')
|
||||
$("<b>#{@model.name}</b>")
|
||||
$("<b>#{@model.displayName}</b>")
|
||||
]
|
||||
|
||||
getTitle: ->
|
||||
return @model.name
|
||||
return @model.displayName
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
@@ -87,8 +76,8 @@ module.exports = class ModPageController extends PageController
|
||||
@$documentationLink.attr 'href', @model.documentationUrl
|
||||
@$downloadLink.attr 'href', @model.downloadUrl
|
||||
@$homePageLink.attr 'href', @model.homePageUrl
|
||||
@$logo.attr 'src', c.url.modIcon modSlug:@model.slug
|
||||
@$title.text @model.name
|
||||
@$logo.attr 'src', c.url.modIcon modId:@model.id
|
||||
@$title.text @model.displayName
|
||||
else
|
||||
@$author.text ''
|
||||
@$description.text ''
|
||||
@@ -101,29 +90,24 @@ module.exports = class ModPageController extends PageController
|
||||
_refreshItemGroups: ->
|
||||
@_groupControllers ?= []
|
||||
groupIndex = 0
|
||||
modVersion = @effectiveModVersion
|
||||
|
||||
if modVersion?
|
||||
modVersion.eachGroup (group)=>
|
||||
controller = @_groupControllers[groupIndex]
|
||||
items = modVersion.allItemsInGroup group
|
||||
if not controller?
|
||||
controller = new ItemGroupController
|
||||
imageLoader: @_imageLoader
|
||||
model: items
|
||||
modPack: @_modPack
|
||||
router: @_router
|
||||
title: if group is Item.Group.Other then 'Items' else group
|
||||
for groupName, items of @model.itemGroups
|
||||
controller = @_groupControllers[groupIndex]
|
||||
if not controller?
|
||||
controller = new ItemGroupController
|
||||
imageLoader: @_imageLoader
|
||||
model: items
|
||||
modPack: @_modPack
|
||||
router: @_router
|
||||
title: groupName
|
||||
|
||||
_.defer =>
|
||||
@_groupControllers.push controller
|
||||
@$itemGroups.append controller.$el
|
||||
controller.render()
|
||||
else
|
||||
controller.modVersion = modVersion
|
||||
controller.model = items
|
||||
controller.refresh()
|
||||
groupIndex++
|
||||
@_groupControllers.push controller
|
||||
@$itemGroups.append controller.$el
|
||||
controller.render()
|
||||
else
|
||||
controller.model = items
|
||||
controller.refresh()
|
||||
groupIndex++
|
||||
|
||||
while @_groupControllers.length > groupIndex + 1
|
||||
@_groupControllers.pop().remove()
|
||||
|
||||
@@ -5,15 +5,16 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
BrowsePageController = require './browse_page/browse_page_controller'
|
||||
CraftPageController = require './craft_page/craft_page_controller'
|
||||
ItemPageController = require './item_page/item_page_controller'
|
||||
{ItemSlug} = require('crafting-guide-common').deprecated.game
|
||||
LoginPageController = require './login_page/login_page_controller'
|
||||
ModPageController = require './mod_page/mod_page_controller'
|
||||
NewsPageController = require './news_page/news_page_controller'
|
||||
TutorialPageController = require './tutorial_page/tutorial_page_controller'
|
||||
UrlParams = require './url_params'
|
||||
BrowsePageController = require "./browse_page/browse_page_controller"
|
||||
CraftPageController = require "./craft_page/craft_page_controller"
|
||||
ItemPage = require "../models/site/item_page"
|
||||
ItemPageController = require "./item_page/item_page_controller"
|
||||
{ItemSlug} = require("crafting-guide-common").deprecated.game
|
||||
LoginPageController = require "./login_page/login_page_controller"
|
||||
ModPageController = require "./mod_page/mod_page_controller"
|
||||
NewsPageController = require "./news_page/news_page_controller"
|
||||
TutorialPageController = require "./tutorial_page/tutorial_page_controller"
|
||||
UrlParams = require "./url_params"
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
@@ -34,50 +35,50 @@ module.exports = class Router extends Backbone.Router
|
||||
tracker.trackPageView()
|
||||
|
||||
routes:
|
||||
'': 'route__home'
|
||||
'/': 'route__home'
|
||||
'/index.html': 'route__home'
|
||||
'': 'route__home'
|
||||
'/': 'route__home'
|
||||
'/index.html': 'route__home'
|
||||
|
||||
'browse': 'route__browse'
|
||||
'browse/': 'route__browse'
|
||||
'browse/index.html': 'route__browse'
|
||||
'browse': 'route__browse'
|
||||
'browse/': 'route__browse'
|
||||
'browse/index.html': 'route__browse'
|
||||
|
||||
'browse/:modSlug': 'route__browseMod'
|
||||
'browse/:modSlug/': 'route__browseMod'
|
||||
'browse/:modSlug/index.html': 'route__browseMod'
|
||||
'browse/:modId': 'route__browseMod'
|
||||
'browse/:modId/': 'route__browseMod'
|
||||
'browse/:modId/index.html': 'route__browseMod'
|
||||
|
||||
'browse/:modSlug/:itemSlug': 'route__browseModItem'
|
||||
'browse/:modSlug/:itemSlug/': 'route__browseModItem'
|
||||
'browse/:modSlug/:itemSlug/index.html': 'route__browseModItem'
|
||||
'browse/:modId/:itemSlug': 'route__browseModItem'
|
||||
'browse/:modId/:itemSlug/': 'route__browseModItem'
|
||||
'browse/:modId/:itemSlug/index.html': 'route__browseModItem'
|
||||
|
||||
'browse/:modSlug/tutorials/:tutorialSlug': 'route__browseTutorial'
|
||||
'browse/:modSlug/tutorials/:tutorialSlug/': 'route__browseTutorial'
|
||||
'browse/:modSlug/tutorials/:tutorialSlug/index.html': 'route__browseTutorial'
|
||||
'browse/:modId/tutorials/:tutorialSlug': 'route__browseTutorial'
|
||||
'browse/:modId/tutorials/:tutorialSlug/': 'route__browseTutorial'
|
||||
'browse/:modId/tutorials/:tutorialSlug/index.html': 'route__browseTutorial'
|
||||
|
||||
'configure': 'route__configure'
|
||||
'configure/': 'route__configure'
|
||||
'configure/index.html': 'route__configure'
|
||||
'configure': 'route__configure'
|
||||
'configure/': 'route__configure'
|
||||
'configure/index.html': 'route__configure'
|
||||
|
||||
'craft': 'route__craft'
|
||||
'craft/': 'route__craft'
|
||||
'craft/index.html': 'route__craft'
|
||||
'craft': 'route__craft'
|
||||
'craft/': 'route__craft'
|
||||
'craft/index.html': 'route__craft'
|
||||
|
||||
'craft/:text': 'route__craft'
|
||||
'craft/:text/': 'route__craft'
|
||||
'craft/:text/index.html': 'route__craft'
|
||||
'craft/:text': 'route__craft'
|
||||
'craft/:text/': 'route__craft'
|
||||
'craft/:text/index.html': 'route__craft'
|
||||
|
||||
'login': 'route__login'
|
||||
'login/': 'route__login'
|
||||
'login/index.html': 'route__login'
|
||||
'login': 'route__login'
|
||||
'login/': 'route__login'
|
||||
'login/index.html': 'route__login'
|
||||
|
||||
'news': 'route__news'
|
||||
'news/': 'route__news'
|
||||
'news/index.html': 'route__news'
|
||||
'news': 'route__news'
|
||||
'news/': 'route__news'
|
||||
'news/index.html': 'route__news'
|
||||
|
||||
'item/:itemSlug': 'deprecated__item'
|
||||
'crafting/(:text)': 'deprecated__crafting'
|
||||
'mod/:modSlug': 'deprecated__mod'
|
||||
'mod/:modSlug/:itemSlug': 'deprecated__modItem'
|
||||
'item/:itemSlug': 'deprecated__item'
|
||||
'crafting/(:text)': 'deprecated__crafting'
|
||||
'mod/:modSlug': 'deprecated__mod'
|
||||
'mod/:modSlug/:itemSlug': 'deprecated__modItem'
|
||||
|
||||
# Route Methods ################################################################################
|
||||
|
||||
@@ -92,15 +93,18 @@ module.exports = class Router extends Backbone.Router
|
||||
route__browse: ->
|
||||
@_siteController.setPage 'browse', new BrowsePageController @_makeOptions {}
|
||||
|
||||
route__browseMod: (modSlug)->
|
||||
route__browseMod: (modId)->
|
||||
controller = new ModPageController @_makeOptions()
|
||||
controller.model = @_siteController.modPack.getMod modSlug
|
||||
controller.model = @_siteController.modPack.mods[modId]
|
||||
@_siteController.setPage 'browseMod', controller
|
||||
|
||||
route__browseModItem: (modSlug, itemSlug)->
|
||||
route__browseModItem: (modId, itemSlug)->
|
||||
item = @_siteController.modPack.findItemBySlug itemSlug, modId:modId
|
||||
if not item? then throw new Error "could not find item #{modId}__#{itemSlug}"
|
||||
|
||||
itemPage = new ItemPage item
|
||||
params = new UrlParams login:{type:'boolean', default:false}
|
||||
slug = new ItemSlug modSlug, itemSlug
|
||||
controller = new ItemPageController @_makeOptions {itemSlug:slug, login:params.login}
|
||||
controller = new ItemPageController @_makeOptions {model:itemPage, login:params.login}
|
||||
@_siteController.setPage 'browseModItem', controller
|
||||
|
||||
route__browseTutorial: (modSlug, tutorialSlug)->
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
AdsenseController = require './common/adsense/adsense_controller'
|
||||
BaseController = require './base_controller'
|
||||
c = require "../../common/constants"
|
||||
FeedbackController = require './feedback/feedback_controller'
|
||||
FileCache = require '../models/site/file_cache'
|
||||
FooterController = require './footer/footer_controller'
|
||||
@@ -23,14 +24,14 @@ module.exports = class SiteController extends BaseController
|
||||
|
||||
constructor: (options={})->
|
||||
if not options.client? then throw new Error 'options.client is required'
|
||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||
if not options.storage? then throw new Error 'options.storage is required'
|
||||
options.el = 'html'
|
||||
super options
|
||||
|
||||
@client = options.client
|
||||
@fileCache = new FileCache c.url.modpackArchive()
|
||||
@imageLoader = new ImageLoader defaultUrl:'/images/unknown.png'
|
||||
@modPack = new ModPack {}, fileCache:@fileCache
|
||||
@modPack = options.modPack
|
||||
@router = new Router this
|
||||
@storage = options.storage
|
||||
|
||||
@@ -41,23 +42,6 @@ module.exports = class SiteController extends BaseController
|
||||
|
||||
# Public Methods ###############################################################################
|
||||
|
||||
loadDefaultModPack: ->
|
||||
makeResponder = (m)-> return ->
|
||||
m.activeModVersion.fetch() if m.activeModVersion?
|
||||
|
||||
for modSlug, modData of c.defaultMods
|
||||
mod = new Mod {slug:modSlug}, {fileCache:@fileCache}
|
||||
mod.on c.event.change + ':activeModVersion', makeResponder mod
|
||||
@storage.register "mod:#{mod.slug}", mod, 'activeVersion', modData.defaultVersion
|
||||
mod.fetch()
|
||||
|
||||
@modPack.addMod mod
|
||||
|
||||
if global.env isnt 'prerender'
|
||||
@modPack.once c.event.sync, =>
|
||||
@$pageContent.removeClass 'hidden'
|
||||
@$pageContentLoading.addClass 'hidden'
|
||||
|
||||
loadCurrentUser: ->
|
||||
@client.getCurrentUser()
|
||||
.then (response)=>
|
||||
@@ -129,6 +113,10 @@ module.exports = class SiteController extends BaseController
|
||||
|
||||
@_feedbackController = @addChild FeedbackController, '.view__feedback'
|
||||
|
||||
if global.env isnt "prerender"
|
||||
@$pageContent.removeClass "hidden"
|
||||
@$pageContentLoading.addClass "hidden"
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
setPage: (page, controller)->
|
||||
|
||||
Reference in New Issue
Block a user