On 01/06/2012 07:42 PM, Tzu-Mainn Chen wrote:
---
src/public/javascripts/backbone/views.js | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/src/public/javascripts/backbone/views.js
b/src/public/javascripts/backbone/views.js
index 0f38e18..f90e0c9 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -81,17 +81,29 @@ Conductor.Views.PoolsIndex = Backbone.View.extend({
$table.find('tr:odd').addClass('stripe');
}
else if (this.currentView() == 'pretty') {
- var $rows = this.$('#deployment-arrays').empty();
var cardsPerRow = 5;
+ var poolIds = this.collection.models.map(function(model) {
+ return model.attributes.pool.id;
+ });
+ poolIds.sort().filter(function(e,i,a) {
+ return i == a.indexOf(e);
+ });
In Firefox this doesn't remove the duplicate elements somehow and
the
poolIds array contains each pool's id as many times as the number of
deployments they have, and each pool gets updated multiple times.
So I would delete the filtering above and I would add the following line:
$.unique(poolIds);
var deployments = this.collection.models.map(function(model)
{
return model.attributes;
});
- for(var i = 0; i< deployments.length; i += cardsPerRow) {
- var $row = this.make('ul',
- {class: 'deployment-array small'},
- $template.tmpl(deployments.slice(i, i + cardsPerRow)));
- $rows.append($row);
+ for(var j = 0; j< poolIds.length; j++) {
+ var poolId = poolIds[j];
+ var $rows = this.$('#deployment-arrays-' + poolId).empty();
+ var poolDeployments = deployments.filter(function(attributes) {
+ return attributes.pool.id == poolId;
Please use soft tab here instead of hard
tab.
+ });
+ for(var i = 0; i< poolDeployments.length; i += cardsPerRow) {
+ var $row = this.make('ul',
+ {class: 'deployment-array small'},
+ $template.tmpl(poolDeployments.slice(i, i + cardsPerRow)));
+ $rows.append($row);
+ }
}
}
},
ACK, just a two inline notes.