simple-table.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import Ember from 'ember';
  2. export default Ember.Component.extend({
  3. didInsertElement: function() {
  4. var paging = this.get("paging") ? true : this.get("paging");
  5. var ordering = this.get("ordering") ? true : this.get("ordering");
  6. var info = this.get("info") ? true : this.get("info");
  7. var bFilter = this.get("bFilter") ? true : this.get("bFilter");
  8. // Defines sorter for the columns if not default.
  9. // Can also specify a custom sorter.
  10. var i;
  11. var colDefs = [];
  12. if (this.get("colTypes")) {
  13. var typesArr = this.get("colTypes").split(' ');
  14. var targetsArr = this.get("colTargets").split(' ');
  15. for (i = 0; i < typesArr.length; i++) {
  16. console.log(typesArr[i] + " " + targetsArr[i]);
  17. colDefs.push({
  18. type: typesArr[i],
  19. targets: parseInt(targetsArr[i])
  20. });
  21. }
  22. }
  23. // Defines initial column and sort order.
  24. var orderArr = [];
  25. if (this.get("colsOrder")) {
  26. var cols = this.get("colsOrder").split(' ');
  27. for (i = 0; i < cols.length; i++) {
  28. var col = cols[i].split(',');
  29. if (col.length != 2) {
  30. continue;
  31. }
  32. var order = col[1].trim();
  33. if (order != 'asc' && order != 'desc') {
  34. continue;
  35. }
  36. var colOrder = [];
  37. colOrder.push(parseInt(col[0]));
  38. colOrder.push(order);
  39. orderArr.push(colOrder);
  40. }
  41. }
  42. if (orderArr.length == 0) {
  43. var defaultOrder = [0, 'asc'];
  44. orderArr.push(defaultOrder);
  45. }
  46. console.log(orderArr[0]);
  47. Ember.$('#' + this.get('table-id')).DataTable({
  48. "paging": paging,
  49. "ordering": ordering,
  50. "info": info,
  51. "bFilter": bFilter,
  52. "order": orderArr,
  53. "columnDefs": colDefs
  54. });
  55. }
  56. });