Add mod voting feature

This commit is contained in:
Andrew Miner
2016-06-01 12:49:29 -06:00
parent cb962f6175
commit d0a2292094
17 changed files with 590 additions and 61 deletions
@@ -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()