get a datatable rendering with fake data
This commit is contained in:
parent
2ec378997e
commit
bd52bb2c58
@ -7,10 +7,11 @@
|
||||
<link rel="stylesheet" href="style/data-table.css" media="screen">
|
||||
<link rel="stylesheet" href="style/style.css" media="screen">
|
||||
<script type="text/javascript" src="../src/deps-min.js"></script>
|
||||
<script type="text/javascript" src="../src/backbone-webstore.js"></script>
|
||||
|
||||
<script type="text/javascript" src="../src/util.js"></script>
|
||||
<script type="text/javascript" src="../src/costco.js"></script>
|
||||
<script type="text/javascript" src="../src/recline.js"></script>
|
||||
<script type="text/javascript" src="../src/model.js"></script>
|
||||
<script type="text/javascript" src="../src/view.js"></script>
|
||||
<script type="text/javascript" src="js/app.js"></script>
|
||||
</head>
|
||||
<body class="bod">
|
||||
@ -134,13 +135,13 @@
|
||||
<tr>
|
||||
{{#notEmpty}}<td class="column-header"></td>{{/notEmpty}}
|
||||
{{#headers}}
|
||||
<td class="column-header">
|
||||
<div class="column-header-title">
|
||||
<a class="column-header-menu"></a>
|
||||
<span class="column-header-name">{{.}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="column-header">
|
||||
<div class="column-header-title">
|
||||
<a class="column-header-menu"></a>
|
||||
<span class="column-header-name">{{.}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
{{/headers}}
|
||||
</tr>
|
||||
{{#rows}}
|
||||
|
||||
@ -1,5 +1,28 @@
|
||||
$(function() {
|
||||
window.app = new recline.DataTable({url: "awesome.com/webstore.json"});
|
||||
var metadata = {
|
||||
title: 'My Test Dataset'
|
||||
, name: '1-my-test-dataset'
|
||||
, id: 1
|
||||
};
|
||||
var indata = {
|
||||
headers: ['x', 'y', 'z']
|
||||
, rows: [
|
||||
{x: 1, y: 2, z: 3}
|
||||
, {x: 2, y: 4, z: 6}
|
||||
, {x: 3, y: 6, z: 9}
|
||||
, {x: 4, y: 8, z: 12}
|
||||
, {x: 5, y: 10, z: 15}
|
||||
, {x: 6, y: 12, z: 18}
|
||||
]
|
||||
};
|
||||
var dataset = new recline.Dataset(metadata, indata);
|
||||
|
||||
var dataTable = new recline.DataTable({
|
||||
model: dataset.documentSet,
|
||||
url: "awesome.com/webstore.json"
|
||||
})
|
||||
|
||||
$('.container').append(dataTable.el)
|
||||
})
|
||||
|
||||
// app.after = {
|
||||
|
||||
@ -5,7 +5,6 @@ recline.Dataset = Backbone.Model.extend({
|
||||
initialize: function(data, rawDocumentSet) {
|
||||
this.documentSet = new recline.DocumentSet(rawDocumentSet);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
recline.Document = Backbone.Model.extend({});
|
||||
@ -34,5 +33,5 @@ recline.DocumentSet = Backbone.Model.extend({
|
||||
dfd.resolve(results);
|
||||
return dfd.promise();
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
40
src/view.js
Normal file
40
src/view.js
Normal file
@ -0,0 +1,40 @@
|
||||
this.recline = this.recline || {};
|
||||
|
||||
recline.DataTable = Backbone.View.extend({
|
||||
|
||||
tagName: "div",
|
||||
className: "data-table-container",
|
||||
|
||||
// template: TODO ???
|
||||
|
||||
events: {
|
||||
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
var that = this;
|
||||
this.model.fetch({
|
||||
success: function(collection, resp) {
|
||||
that.render()
|
||||
}
|
||||
})
|
||||
},
|
||||
toTemplateJSON: function() {
|
||||
var modelData = this.model.toJSON()
|
||||
modelData.rows = _.map(modelData.rows, function(row) {
|
||||
var cellData = _.map(modelData.headers, function(header) {
|
||||
return {header: header, value: row[header]}
|
||||
})
|
||||
return { id: 'xxx', cells: cellData }
|
||||
})
|
||||
modelData.notEmpty = ( modelData.headers.length > 0 )
|
||||
return modelData;
|
||||
},
|
||||
render: function() {
|
||||
var template = $( ".dataTableTemplate:first" ).html()
|
||||
, htmls = $.mustache(template, this.toTemplateJSON())
|
||||
;
|
||||
$(this.el).html(htmls);
|
||||
return this;
|
||||
}
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user