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)=>
mod.eachRecipe (recipe)=>
if recipe.requires @item.slug
outputItem = @modPack.findItem recipe.itemSlug
outputItem = @modPack.findItem recipe.itemSlug, includeDisabled:true
result[outputItem.slug] = outputItem
result = _.values result
@@ -47,4 +47,4 @@ module.exports = class ItemPage extends BaseModel
return result
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 #####################################################################
eachItem: (callback)->
return unless @_activeModVersion?
@_activeModVersion.eachItem callback
effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
effectiveModVersion.eachItem callback
eachName: (callback)->
return unless @_activeModVersion?
@_activeModVersion.eachName callback
effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
effectiveModVersion.eachName callback
eachRecipe: (callback)->
return unless @_activeModVersion?
@_activeModVersion.eachRecipe callback
effectiveModVersion = @_activeModVersion or @getModVersion Mod.Version.Latest
effectiveModVersion.eachRecipe callback
findItem: (slug, options={})->
options.includeDisabled ?= false
@@ -96,8 +96,14 @@ module.exports = class Mod extends BaseModel
@_activeModVersion.findName itemSlug
findRecipes: (itemSlug, result=[], options={})->
return result unless @_activeModVersion?
@_activeModVersion.findRecipes itemSlug, result, options
options.alwaysFromOwningMod ?= false
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 #############################################################################
+5 -1
View File
@@ -82,10 +82,14 @@ module.exports = class ModPack extends BaseModel
return null
findRecipes: (itemSlug, result=[], options={})->
options.alwaysFromOwningMod ?= false
return null unless itemSlug?
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
result.sort (a, b)-> Recipe.compareFor a, b, itemSlug