Add mod voting feature
This commit is contained in:
@@ -5,22 +5,38 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
ModTileController = require './mod_tile/mod_tile_controller'
|
||||
PageController = require '../page_controller'
|
||||
SuggestModPanelController = require './suggest_mod_panel/suggest_mod_panel_controller'
|
||||
ModBallotController = require './mod_ballot/mod_ballot_controller'
|
||||
ModTileController = require './mod_tile/mod_tile_controller'
|
||||
PageController = require '../page_controller'
|
||||
{CraftingGuideClient} = require 'crafting-guide-common'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = class BrowsePageController extends PageController
|
||||
|
||||
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'
|
||||
options.templateName = 'browse_page'
|
||||
super options
|
||||
|
||||
@_client = options.client
|
||||
@_modPack = options.modPack
|
||||
@_tileControllers = []
|
||||
|
||||
@_client.on c.event.change, => @tryRefresh()
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
Object.defineProperties @prototype,
|
||||
|
||||
user:
|
||||
get: -> @_user
|
||||
|
||||
set: (newUser)->
|
||||
@_user = newUser
|
||||
@tryRefresh()
|
||||
|
||||
# PageController Overrides #####################################################################
|
||||
|
||||
getMetaDescription: ->
|
||||
@@ -32,12 +48,14 @@ module.exports = class BrowsePageController extends PageController
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onDidRender: ->
|
||||
@_suggestController = @addChild SuggestModPanelController, '.view__suggest_mod_panel'
|
||||
@_modBallotController = @addChild ModBallotController, '.view__mod_ballot', client:@_client, user:@_user
|
||||
|
||||
@$tileContainer = @$('.tile_container')
|
||||
|
||||
refresh: ->
|
||||
@_modBallotController.user = @user
|
||||
@_refreshModTiles()
|
||||
@_refreshBallot()
|
||||
super
|
||||
|
||||
# Backbone.View Overrides ######################################################################
|
||||
@@ -48,6 +66,12 @@ module.exports = class BrowsePageController extends PageController
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
_refreshBallot: ->
|
||||
if @_client.status is CraftingGuideClient.Status.Down
|
||||
@_modBallotController.hide()
|
||||
else
|
||||
@_modBallotController.show()
|
||||
|
||||
_refreshModTiles: ->
|
||||
index = 0
|
||||
mods = @_modPack.getAllMods()
|
||||
|
||||
Reference in New Issue
Block a user