Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. // templates/schedule/index.hbs
  2.  
  3. <div class="row">
  4. {{#each filteredList as |schedule|}}
  5. <div class="col-md-4">
  6. {{#schedule-item item=schedule}}
  7. Venue: {{schedule.venue}} Date: {{schedule.date}}
  8. {{/schedule-item}}
  9. </div>
  10. {{else}}
  11. {{#if model.isUpdating}}
  12. {{spinner-cube}}
  13. {{else}}
  14. <div class="col-md-12 text-center">
  15. <div class="alert alert-info">
  16. Sorry, no result.
  17. </div>
  18. </div>
  19. {{/if}}
  20. {{/each}}
  21. </div>
  22.  
  23. // templates/components/schedule-item.hbs
  24. <div class="panel panel-default schedule-item">
  25. <div class="panel-heading">
  26. <h3 class="panel-title">{{item.game}} - {{item.home}} v {{item.away}}</h3>
  27. </div>
  28. <div class="panel-body">
  29. <p>Details of the upcoming game</p>
  30. </div>
  31. <div class="panel-footer">
  32. {{yield}}
  33. </div>
  34. </div>
  35.  
  36. // controller/schedule.js
  37.  
  38. import Ember from 'ember';
  39.  
  40. export default Ember.Controller.extend({
  41.  
  42. queryParams: ['filter', 'limit', 'team'],
  43. filter: '',
  44. team: '',
  45. limit: 'all',
  46.  
  47. limitAll: Ember.computed.equal('limit', 'all'),
  48.  
  49. filteredList: Ember.computed('model.@each.game', 'filter', function() {
  50.  
  51. let results = this.get('model');
  52. const query = this.get('filter');
  53.  
  54. if (!!query) {
  55. const regexString = '(' + query.split(' ').join(')+.*(') + ')+.*';
  56. const regex = new RegExp(regexString, 'ig');
  57.  
  58. results = results.filter((item) => item.get('game').match(regex));
  59. }
  60.  
  61. return results.sortBy('game');
  62. })
  63.  
  64. });
  65.  
  66. // model/schedule.index.js
  67. import Ember from 'ember';
  68.  
  69. export default Ember.Route.extend({
  70.  
  71. queryParams: {
  72. limit: { refreshModel: true, as: 'schedule' },
  73. team: { refreshModel: true, as: 'other-team' },
  74. },
  75.  
  76. model(params) {
  77.  
  78. if (params.limit === 'all') {
  79. return this.store.findAll('schedule');
  80. }
  81.  
  82. return this.store.query('schedule', {
  83. orderBy: 'name',
  84. startAt: params.team,
  85. endAt: params.letter+"uf8ff"
  86. });
  87. }
  88.  
  89. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement