yee379
yee379

Reputation: 6752

meteor livestamp with reactive-table

I have a meteor app using livestamp. However, I wish to represent a collection within a reactive-table. However, when I try the code below, it doesn't work (I see nothing in the updated column):

Template.sensor_table.helpers
  settings: () ->
    return {
      collection: Sensors
      rowsPerPage: 100
      showFilter: true
      fields: [ 
        { key: '_id', label: 'id' },
        { key: '_id', label: 'rack', fn: (v,o) -> (getSensor v).rack },
        { key: 'temp', label: 'temperature (degC)' },
        { key: 'ts', label: 'updated', fn: (v,o) -> livestamp v }
      ]
    }

but when I use it within a template, it works fine. How can I get the functionality of livestamp within my reactive table?

Upvotes: 0

Views: 74

Answers (2)

yee379
yee379

Reputation: 6752

so i guess it helps to actually read the manual....

Template.sensor_table.helpers
  settings: () ->
    return {
      collection: Sensors
      rowsPerPage: 100
      showFilter: true
      fields: [ 
        { key: '_id', label: 'id' },
        { key: '_id', label: 'rack', fn: (v,o) -> (getSensor v).rack },
        { key: 'temp', label: 'temperature (°C)' },
        { key: 'ts', label: 'updated', tmpl: Template.sensor_updated }
      ]
    }

and then a template somewhere...

<template name="sensor_updated">
{{ livestamp ts }}
</template>

Upvotes: 0

user5084201
user5084201

Reputation:

You can do that with https://atmospherejs.com/aldeed/tabular it's also datatables but it's different package (in my opinion better)

if you choose to use it here is an example, tabular has the option to render fields as a template and livestamp should work just as on the template itself.

TabularTables.Books = new Tabular.Table({
  name: "Books",
  collection: Books,
  columns: [
    {data: "_id", title: "id"},
    {data: "_id", title: "Rack"},
    { data: 'ts', title: 'updated',
      tmpl: Meteor.isClient && Template.liveStamp
    }
  ]
});

// template
<template name="liveStamp">
  <p>{{livestamp this.ts}}</p>
</template>

Upvotes: 0

Related Questions