services-page.js 2.3 KB

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