services-page.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const app = require('../app')
  2. const { editIcon } = require('../assets')
  3. app.component('appServicesPage', {
  4. template: html`
  5. <app-user-area>
  6. <app-breadcrumb links="[
  7. { text: 'Home', link: '/dashboard' },
  8. { text: ctrl.locationKey + ' Services', link: '/services/' + ctrl.locationKey }
  9. ]"></app-breadcrumb>
  10. <h1>Services</h1>
  11. <table md-table ng-model="ctrl.selected" md-progress="ctrl.promise">
  12. <thead md-head>
  13. <tr md-row>
  14. <th md-column>Week Starting</th>
  15. <th md-column ng-repeat="weekday in ::ctrl.weekdays">
  16. <span hide show-xs>{{::weekday.min}}</span>
  17. <span hide show-sm>{{::weekday.short}}</span>
  18. <span hide show-gt-sm>{{::weekday.name}}</span>
  19. </th>
  20. <th md-column>Actions</th>
  21. </tr>
  22. </thead>
  23. <tbody md-body>
  24. <tr md-row ng-repeat="week in ::ctrl.services track by week.workweek">
  25. <td md-cell>
  26. {{::week.workweek}}
  27. </td>
  28. <td md-cell ng-repeat="workday in ::week.workdays track by $index">
  29. <div>
  30. <span ng-if="::workday" style="white-space: nowrap;">
  31. {{::workday.cartons || 0}}
  32. <span hide show-xs>c</span>
  33. <span hide show-sm>ctn</span>
  34. <span hide show-gt-sm>cartons</span>
  35. </span>
  36. <span ng-if="::!workday" md-colors="{ color: 'primary-100' }">
  37. N/A
  38. </span>
  39. </div>
  40. </td>
  41. <td md-cell>
  42. <md-button ng-href="services/{{::ctrl.location.key}}/{{::week.workweek}}">
  43. <md-icon md-svg-icon="${editIcon}"></md-icon>
  44. Edit
  45. </md-button>
  46. </td>
  47. </tr>
  48. </tbody>
  49. </table>
  50. </app-user-area>
  51. `,
  52. controllerAs: 'ctrl',
  53. controller: function(api, $routeParams, weekdays) {
  54. this.locationKey = $routeParams.location
  55. this.weekdays = weekdays
  56. api.location($routeParams.location).then(location => {
  57. this.location = location
  58. })
  59. this.promise = api.get(`/api/services/${$routeParams.location}`).then(services => {
  60. this.services = services
  61. })
  62. }
  63. })