Bug: Show all on item detail when mod disabled

When the mod to which an item belongs is disabled, the item detail
page should continue to show all the relevant sections: including
those which rely on recipes which ordinarily would be hidden because
the mod is disabled.
This commit is contained in:
Andrew Miner
2015-02-19 14:13:18 -08:00
parent de9b323f3a
commit 0e89dab989
3 changed files with 21 additions and 11 deletions
+2 -2
View File
@@ -27,7 +27,7 @@ module.exports = class ItemPage extends BaseModel
@modPack.eachMod (mod)=> @modPack.eachMod (mod)=>
mod.eachRecipe (recipe)=> mod.eachRecipe (recipe)=>
if recipe.requires @item.slug if recipe.requires @item.slug
outputItem = @modPack.findItem recipe.itemSlug outputItem = @modPack.findItem recipe.itemSlug, includeDisabled:true
result[outputItem.slug] = outputItem result[outputItem.slug] = outputItem
result = _.values result result = _.values result
@@ -47,4 +47,4 @@ module.exports = class ItemPage extends BaseModel
return result return result
findRecipes: -> findRecipes: ->
return @modPack.findRecipes @item?.slug return @modPack.findRecipes @item?.slug, [], alwaysFromOwningMod:true
+14 -8
View File
@@ -58,16 +58,16 @@ module.exports = class Mod extends BaseModel
# ModVersion Proxy Methods ##################################################################### # ModVersion Proxy Methods #####################################################################
eachItem: (callback)-> eachItem: (callback)->
return unless @_activeModVersion? effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
@_activeModVersion.eachItem callback effectiveModVersion.eachItem callback
eachName: (callback)-> eachName: (callback)->
return unless @_activeModVersion? effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
@_activeModVersion.eachName callback effectiveModVersion.eachName callback
eachRecipe: (callback)-> eachRecipe: (callback)->
return unless @_activeModVersion? effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
@_activeModVersion.eachRecipe callback effectiveModVersion.eachRecipe callback
findItem: (slug, options={})-> findItem: (slug, options={})->
options.includeDisabled ?= false options.includeDisabled ?= false
@@ -96,8 +96,14 @@ module.exports = class Mod extends BaseModel
@_activeModVersion.findName itemSlug @_activeModVersion.findName itemSlug
findRecipes: (itemSlug, result=[], options={})-> findRecipes: (itemSlug, result=[], options={})->
return result unless @_activeModVersion? options.alwaysFromOwningMod ?= false
@_activeModVersion.findRecipes itemSlug, result, options
if @_activeModVersion?
return @_activeModVersion.findRecipes itemSlug, result, options
else if options.alwaysFromOwningMod and itemSlug.mod is @slug
return @getModVersion(Mod.Version.Latest).findRecipes itemSlug, result, options
return null
# Property Methods ############################################################################# # Property Methods #############################################################################
+5 -1
View File
@@ -82,10 +82,14 @@ module.exports = class ModPack extends BaseModel
return null return null
findRecipes: (itemSlug, result=[], options={})-> findRecipes: (itemSlug, result=[], options={})->
options.alwaysFromOwningMod ?= false
return null unless itemSlug? return null unless itemSlug?
for mod in @_mods for mod in @_mods
continue unless mod.enabled if not mod.enabled
owningMod = itemSlug.isQualified and (itemSlug.mod is mod.slug)
continue unless owningMod and options.alwaysFromOwningMod
mod.findRecipes itemSlug, result, options mod.findRecipes itemSlug, result, options
result.sort (a, b)-> Recipe.compareFor a, b, itemSlug result.sort (a, b)-> Recipe.compareFor a, b, itemSlug