Skip to content

Instantly share code, notes, and snippets.

@edtoken
Created July 1, 2014 11:27
Show Gist options
  • Save edtoken/4c54248af516352bd514 to your computer and use it in GitHub Desktop.
Save edtoken/4c54248af516352bd514 to your computer and use it in GitHub Desktop.
var items = _.sortBy(this.models, function(model){
var custom_data = '';
custom_data += model.get('year').toString();
custom_data += model.get('month').toString();
custom_data += model.get('week').toString();
model.set({sort_data:parseInt(custom_data)},{silent:true});
return parseInt(custom_data);
});
for(var i=0; i < items.length; i++){
if(i !== 0 && items[i].get('sort_data') !== items[i-1].get('sort_data')){
titles = [];
tmp_row_items.push(items[i]);
tmp_row_items = _.sortBy(tmp_row_items, function(model){
return parseInt(model.get('car_id'));
});
tmp_row_items.forEach(function(item){
titles.push(item.get('car_id'));
});
rows.push({
title:titles,
items:tmp_row_items
});
tmp_row_items = [];
}else{
tmp_row_items.push(items[i]);
}
}
/** RENDER **/
/** rows = code top **/
var rows = this.collection_list.getGroup();
var renderTitle = function(title, old_title){
var title_line = '<tr style="font-weight:bold;text-align:center;border-bottom:1px solid #000;color:#fff;font-size:120%;">';
for(var i in title){
if(old_title && old_title[i] == title[i]){
title_line += '<th></th>';
}else if(old_title[i] !== title[i]){
title_line += '<th>' + title[i]+'</th>';
}else{
title_line+= '<th>'+title[i]+'</th>';
}
}
title_line += '</tr>';
return title_line;
};
var renderRow = function(items){
var html = '';
html += '<tr>';
for(var i=0; i<items.length;i++){
var d = items[i].toJSON();
html += '<td style="padding:5px;border:1px solid #333;">';
html += '<p>schedule_id: ' + d.schedule_id+'</p>';
html += '<p>car_id: ' + d.car_id+'</p>';
html += '<p>month: ' + d.month+'</p>';
html += '<p>sort_data: ' + d.sort_data+'</p>';
html += '<p>user_id: ' + d.user_id+'</p>';
html += '<p>week: ' + d.week+'</p>';
html += '<p>year: ' + d.year+'</p>';
html += '</td>';
}
html += '</tr>';
return html;
};
for(var i=0; i<rows.length;i++){
title = '';
if(i !== 0 && !_.isEqual(rows[i].title, rows[i-1].title)){
title = renderTitle(rows[i].title, rows[i-1].title);
}else if(i === 0){
title = renderTitle(rows[i].title, false);
}
row_html = renderRow(rows[i].items);
$('#js_schedule_table').find('table').append(title);
$('#js_schedule_table').find('table').append(row_html);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment