Sha256: 111c7c3043fcfd6c3e6fee45cd13bd5e8d689fa9cafd7a14f68a55a541a60014
Contents?: true
Size: 1.77 KB
Versions: 3
Compression:
Stored size: 1.77 KB
Contents
# Public: TableView renders collection data into an HTML table. _.def("Luca.components.TableView").extends("Luca.components.CollectionView").with additionalClassNames: "table" tagName: "table" bodyTemplate: "table_view" bodyTagName: "tbody" bodyClassName: "table-body" itemTagName: "tr" stateful: true observeChanges: true columns:[] emptyText: "There are no results to display" itemRenderer: (item, model)-> Luca.components.TableView.rowRenderer.call(@, item, model) initialize: (@options={})-> Luca.components.CollectionView::initialize.apply(@, arguments) @columns = for column in @columns if _.isString(column) column = reader: column if !column.header? column.header = _.str.titleize(_.str.humanize(column.reader)) column @defer ()=> Luca.components.TableView.renderHeader.call(@, @columns, @$('thead') ) .until("after:render") make = Backbone.View::make Luca.components.TableView.renderHeader = (columns, targetElement)-> index = 0 content = for column in columns "<th data-col-index='#{ index++ }'>#{ column.header }</th>" @$( targetElement ).append("<tr>#{ content.join('') }</tr>") index = 0 for column in columns when column.width? @$("th[data-col-index='#{ index++ }']",targetElement).css('width', column.width) Luca.components.TableView.rowRenderer = (item, model, index)-> colIndex = 0 for columnConfig in @columns Luca.components.TableView.renderColumn.call(@, columnConfig, item, model, colIndex++) Luca.components.TableView.renderColumn = (column, item, model, index)-> cellValue = model.read( column.reader ) if _.isFunction( column.renderer ) cellValue = column.renderer.call @, cellValue, model, column make("td", {"data-col-index":index}, cellValue)
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
luca-0.9.7 | src/components/table_view.coffee |
luca-0.9.65 | src/components/table_view.coffee |
luca-0.9.6 | src/components/table_view.coffee |