Filter Array only once and one time binding - closes #4429

This commit is contained in:
Negue 2014-12-27 23:26:30 +01:00
parent 85f4a2884a
commit a082e88b5d
2 changed files with 21 additions and 3 deletions

View file

@ -162,5 +162,23 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User',
$rootScope.selectedQuest = item;
$rootScope.openModal('buyQuest', {controller:'InventoryCtrl'});
}
$scope.getSeasonalShopArray = function(set){
var flatGearArray = _.toArray(Content.gear.flat);
var filteredArray = _.where(flatGearArray, {index: set});
return filteredArray;
};
$scope.getSeasonalShopQuests = function(set){
var questArray = _.toArray(Content.quests);
var filteredArray = _.filter(questArray, function(q){
return q.key == "evilsanta" || q.key == "evilsanta2";
});
return filteredArray;
};
}
]);

View file

@ -31,14 +31,14 @@ script(type='text/ng-template', id='partials/options.inventory.seasonalshop.html
.popover-content
p!=env.t('seasonalShopText')
li.customize-menu.inventory-gear
menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in {candycane:env.t("candycaneSet"), ski:env.t("skiSet"), snowflake:env.t("snowflakeSet"), yeti:env.t("yetiSet")}')
div(ng-repeat='item in Content.gear.flat | toArray | where:{index:set}' ng-class="{transparent: user.items.gear.owned[item.key]}")
menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{candycane:env.t("candycaneSet"), ski:env.t("skiSet"), snowflake:env.t("snowflakeSet"), yeti:env.t("yetiSet")}')
div(ng-repeat='item in ::getSeasonalShopArray(set)' ng-class="{transparent: user.items.gear.owned[item.key]}")
button.customize-option(popover='{{::item.notes()}}', popover-title='{{::item.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='purchase(item.type,item)', class='shop_{{::item.key}}')
.center
| {{((item.specialClass == "wizard") && (item.type == "weapon")) + 1}} 
span.Pet_Currency_Gem1x.inline-gems
menu.pets-menu(label=env.t('quests'))
div(ng-repeat='quest in Content.quests', ng-if='(quest.key == "evilsanta") || (quest.key == "evilsanta2")')
div(ng-repeat='quest in ::getSeasonalShopQuests()')
button.customize-option(popover="{{::quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : quest.notes() | htmlDecode}}", popover-title='{{::quest.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='buyQuest(quest.key)', class='inventory_quest_scroll', ng-class='::{locked: quest.previous && !user.achievements.quests[quest.previous]}')
p
| {{::quest.value}}