diff --git a/client/app/css/teambuilder.styl b/client/app/css/teambuilder.styl
index 9927df7..c07617f 100644
--- a/client/app/css/teambuilder.styl
+++ b/client/app/css/teambuilder.styl
@@ -21,6 +21,9 @@ $pokemon-list-height = 50px
margin-bottom 0!important
width 100%
+ .filter-tier-box
+ width 25px
+
.teambuilder .meta-info
max-width 1368px
diff --git a/client/app/js/views/teambuilder/pokemon_edit_view.coffee b/client/app/js/views/teambuilder/pokemon_edit_view.coffee
index 0f2c223..7cc6e88 100644
--- a/client/app/js/views/teambuilder/pokemon_edit_view.coffee
+++ b/client/app/js/views/teambuilder/pokemon_edit_view.coffee
@@ -26,9 +26,11 @@ class @PokemonEditView extends Backbone.View
speciesTemplate: JST['teambuilder/species']
nonStatsTemplate: JST['teambuilder/non_stats']
movesTemplate: JST['teambuilder/moves']
+ tierFilterBool: true
events:
'change .sortSpecies': 'changeSort'
+ 'change .filter-tier': 'filterTier'
'change .species_list': 'changeSpecies'
'change .selected_nickname': 'changeNickname'
'click .selected_shininess': 'changeShiny'
@@ -61,10 +63,41 @@ class @PokemonEditView extends Backbone.View
@setGeneration(format.generation)
# TODO: Set PBV limit based on conditions
+ filterTier:(e) =>
+ thistier = @pokemon.getTeam().getTier().tierRank
+ {SpeciesData, FormeData} = @generation
+ if e.target.checked
+ arr = @objectToArr(SpeciesData)
+ console.log(thistier)
+ for obj in arr
+ obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename].default.tier[0]].tierRank
+ console.log(arr)
+ arr = _.filter arr, (thing) -> thing.tier is thistier
+ obj = @arrToObject(arr)
+ @speciesList = (species for species, data of obj)
+ @render()
+ else
+ @speciesList = (species for species, data of SpeciesData)
+ @render()
+
+
+ objectToArr: (data) =>
+ arr = []
+ for key, val of data
+ val.pokename = key
+ arr.push(val)
+ return arr
+
+ arrToObject: (arr) =>
+ obj = {}
+ for thing in arr
+ obj[thing.pokename] = thing
+ return obj
+
changeSort:(e) =>
sort = $(e.currentTarget).val()
- if sort =="Default Sort"
- @sortSpecieslist("Default")
+ if sort == "Sort"
+ @sortSpecieslist("tier", false)
else if sort == "Sort by Dexnumber"
@sortSpecieslist("id", false)
else if sort == "Invert by Dexnumber"
@@ -73,7 +106,10 @@ class @PokemonEditView extends Backbone.View
@sortSpecieslist("pokename", false)
else if sort == "Invert Alphabetically"
@sortSpecieslist("pokename", true)
-
+ else if sort == "Sort by Tier"
+ @sortSpecieslist("tier", false)
+ else if sort == "Invert by Tier"
+ @sortSpecieslist("tier", true)
sortSpecieslist: (option, reverse) =>
{MoveData, SpeciesData, ItemData} = @generation
@@ -85,17 +121,18 @@ class @PokemonEditView extends Backbone.View
@render()
sortObject: (data, option, reverse) ->
- arr = []
- for key, val of data
- val.pokename = key
- arr.push(val)
- arr = _.sortBy(arr, option)
+ arr = @objectToArr(data)
+ if option != 'tier'
+ arr = _.sortBy(arr, option)
+ else
+ {FormeData} = @generation
+ for obj in arr
+ obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename].default.tier[0]].tierRank
+ arr = _.sortBy(arr, 'tier')
if reverse == true
arr.reverse()
- newobj = {}
- for thing in arr
- newobj[thing.pokename] = thing
- finished = newobj
+ obj = @arrToObject(arr)
+ finished = obj
setGeneration: (generation) =>
@generation = window.Generations[generation.toUpperCase()]
@@ -387,6 +424,13 @@ class @PokemonEditView extends Backbone.View
return "
#{item.text}
#{tier.humanName}
"
)
attachSelectize(@$el.find(".selected_item"))
+ filtertierbox = @$el.find(".filter-tier-box")[0]
+ if @tierFilterBool is false
+ filtertierbox.checked = true
+ @tierFilterBool = true
+ else if @tierFilterBool is true
+ filtertierbox.checked = false
+ @tierFilterBool = false
return this
renderPokemon: =>
diff --git a/client/views/teambuilder/pokemon.jade b/client/views/teambuilder/pokemon.jade
index 5f12248..09f9454 100644
--- a/client/views/teambuilder/pokemon.jade
+++ b/client/views/teambuilder/pokemon.jade
@@ -14,12 +14,17 @@ mixin printStat(statName, keyName)
.meta-info.clearfix
.left-side
.species
+ label.filter-tier
+ input.filter-tier-box(type='checkbox')
+ | Filter to Current Tier
select.sortSpecies
- option=""
+ option="Sort"
option="Sort by Dexnumber"
option="Invert by Dexnumber"
option="Sort Alphabetically"
option="Invert Alphabetically"
+ option="Sort by Tier"
+ option="Invert by Tier"
select.species_list
option
each species in speciesList
diff --git a/public/css/main.css b/public/css/main.css
index 7d53b24..961807f 100644
--- a/public/css/main.css
+++ b/public/css/main.css
@@ -454,6 +454,7 @@ h1{font-family:"PT Sans Narrow","Helvetica Neue",sans-serif;font-size:2em;font-w
.teambuilder .selectize-input input{height:18px}
.teambuilder{position:absolute;top:0;bottom:0;left:0;right:0;}
.teambuilder select,.teambuilder input{margin-bottom:0 !important;width:100%}
+.teambuilder .filter-tier-box{width:25px}
.teambuilder .meta-info{max-width:1368px}
.teambuilder .meta-info .left-side,.teambuilder .meta-info .right-side{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.teambuilder .navigation{position:absolute;top:50px;bottom:0;background-color:rgba(223,231,232,0.5);width:160px;}
diff --git a/public/js/app.js b/public/js/app.js
index c9cc018..b8739b3 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -5538,6 +5538,9 @@
this.setGeneration = __bind(this.setGeneration, this);
this.sortSpecieslist = __bind(this.sortSpecieslist, this);
this.changeSort = __bind(this.changeSort, this);
+ this.arrToObject = __bind(this.arrToObject, this);
+ this.objectToArr = __bind(this.objectToArr, this);
+ this.filterTier = __bind(this.filterTier, this);
this.setFormat = __bind(this.setFormat, this);
this.initialize = __bind(this.initialize, this);
return PokemonEditView.__super__.constructor.apply(this, arguments);
@@ -5551,8 +5554,11 @@
PokemonEditView.prototype.movesTemplate = JST['teambuilder/moves'];
+ PokemonEditView.prototype.tierFilterBool = true;
+
PokemonEditView.prototype.events = {
'change .sortSpecies': 'changeSort',
+ 'change .filter-tier': 'filterTier',
'change .species_list': 'changeSpecies',
'change .selected_nickname': 'changeNickname',
'click .selected_shininess': 'changeShiny',
@@ -5591,11 +5597,72 @@
return this.setGeneration(format.generation);
};
+ PokemonEditView.prototype.filterTier = function(e) {
+ var FormeData, SpeciesData, arr, data, obj, species, thistier, _i, _len, _ref;
+ thistier = this.pokemon.getTeam().getTier().tierRank;
+ _ref = this.generation, SpeciesData = _ref.SpeciesData, FormeData = _ref.FormeData;
+ if (e.target.checked) {
+ arr = this.objectToArr(SpeciesData);
+ console.log(thistier);
+ for (_i = 0, _len = arr.length; _i < _len; _i++) {
+ obj = arr[_i];
+ obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename]["default"].tier[0]].tierRank;
+ }
+ console.log(arr);
+ arr = _.filter(arr, function(thing) {
+ return thing.tier === thistier;
+ });
+ obj = this.arrToObject(arr);
+ this.speciesList = (function() {
+ var _results;
+ _results = [];
+ for (species in obj) {
+ data = obj[species];
+ _results.push(species);
+ }
+ return _results;
+ })();
+ return this.render();
+ } else {
+ this.speciesList = (function() {
+ var _results;
+ _results = [];
+ for (species in SpeciesData) {
+ data = SpeciesData[species];
+ _results.push(species);
+ }
+ return _results;
+ })();
+ return this.render();
+ }
+ };
+
+ PokemonEditView.prototype.objectToArr = function(data) {
+ var arr, key, val;
+ arr = [];
+ for (key in data) {
+ val = data[key];
+ val.pokename = key;
+ arr.push(val);
+ }
+ return arr;
+ };
+
+ PokemonEditView.prototype.arrToObject = function(arr) {
+ var obj, thing, _i, _len;
+ obj = {};
+ for (_i = 0, _len = arr.length; _i < _len; _i++) {
+ thing = arr[_i];
+ obj[thing.pokename] = thing;
+ }
+ return obj;
+ };
+
PokemonEditView.prototype.changeSort = function(e) {
var sort;
sort = $(e.currentTarget).val();
- if (sort === "Default Sort") {
- return this.sortSpecieslist("Default");
+ if (sort === "Sort") {
+ return this.sortSpecieslist("tier", false);
} else if (sort === "Sort by Dexnumber") {
return this.sortSpecieslist("id", false);
} else if (sort === "Invert by Dexnumber") {
@@ -5604,6 +5671,10 @@
return this.sortSpecieslist("pokename", false);
} else if (sort === "Invert Alphabetically") {
return this.sortSpecieslist("pokename", true);
+ } else if (sort === "Sort by Tier") {
+ return this.sortSpecieslist("tier", false);
+ } else if (sort === "Invert by Tier") {
+ return this.sortSpecieslist("tier", true);
}
};
@@ -5628,23 +5699,23 @@
};
PokemonEditView.prototype.sortObject = function(data, option, reverse) {
- var arr, finished, key, newobj, thing, val, _i, _len;
- arr = [];
- for (key in data) {
- val = data[key];
- val.pokename = key;
- arr.push(val);
+ var FormeData, arr, finished, obj, _i, _len;
+ arr = this.objectToArr(data);
+ if (option !== 'tier') {
+ arr = _.sortBy(arr, option);
+ } else {
+ FormeData = this.generation.FormeData;
+ for (_i = 0, _len = arr.length; _i < _len; _i++) {
+ obj = arr[_i];
+ obj.tier = window.PokeBattle.Tier.Tiers[FormeData[obj.pokename]["default"].tier[0]].tierRank;
+ arr = _.sortBy(arr, 'tier');
+ }
}
- arr = _.sortBy(arr, option);
if (reverse === true) {
arr.reverse();
}
- newobj = {};
- for (_i = 0, _len = arr.length; _i < _len; _i++) {
- thing = arr[_i];
- newobj[thing.pokename] = thing;
- }
- return finished = newobj;
+ obj = this.arrToObject(arr);
+ return finished = obj;
};
PokemonEditView.prototype.setGeneration = function(generation) {
@@ -6026,6 +6097,7 @@
};
PokemonEditView.prototype.render = function() {
+ var filtertierbox;
this.$el.html(this.editTemplate({
window: window,
speciesList: this.speciesList,
@@ -6053,6 +6125,18 @@
}
});
attachSelectize(this.$el.find(".selected_item"));
+ filtertierbox = this.$el.find(".filter-tier-box")[0];
+ console.log(filtertierbox);
+ console.log(this.tierFilterBool);
+ if (this.tierFilterBool === false) {
+ console.log("false");
+ filtertierbox.checked = true;
+ this.tierFilterBool = true;
+ } else if (this.tierFilterBool === true) {
+ console.log("true");
+ filtertierbox.checked = false;
+ this.tierFilterBool = false;
+ }
return this;
};
diff --git a/public/js/templates.js b/public/js/templates.js
index 0dc643d..d4722d0 100644
--- a/public/js/templates.js
+++ b/public/js/templates.js
@@ -865,7 +865,7 @@ var locals_ = (locals || {}),speciesList = locals_.speciesList,itemList = locals
var block = this.block, attributes = this.attributes || {}, escaped = this.escaped || {};
buf.push("" + (jade.escape((jade.interp = statName) == null ? '' : jade.interp)) + ": | | | | | |
");
};
-buf.push("