labor-page.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const app = require('../app')
  2. const { editIcon } = require('../assets')
  3. app.component('appLaborPage', {
  4. template: html`
  5. <app-user-area title-text="{{ctrl.terminalKey}} Labor">
  6. <app-breadcrumb links="[
  7. { text: 'Home', link: '/dashboard' },
  8. { text: ctrl.terminalKey + ' Labor', link: '/labor/' + 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.labor 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.hours}}
  31. <span hide show-xs>h</span>
  32. <span hide show-sm>hrs</span>
  33. <span hide show-gt-sm>hours</span>
  34. </span>
  35. <span ng-if="::!workday" md-colors="{ color: 'primary-100' }">
  36. N/A
  37. </span>
  38. </div>
  39. <div ng-if="::workday.laborCost">
  40. {{::workday.laborCost | currency}}
  41. </div>
  42. </td>
  43. <td md-cell>
  44. <md-button ng-href="labor/{{::ctrl.terminal.key}}/{{::week.workweek}}">
  45. <md-icon md-svg-icon="${editIcon}"></md-icon>
  46. Edit
  47. </md-button>
  48. </td>
  49. </tr>
  50. </tbody>
  51. </table>
  52. </app-user-area>
  53. `,
  54. controllerAs: 'ctrl',
  55. controller: function(api, $routeParams, weekdays) {
  56. this.terminalKey = $routeParams.terminal
  57. this.weekdays = weekdays
  58. api.terminal($routeParams.terminal).then(terminal => {
  59. this.terminal = terminal
  60. })
  61. this.promise = api.get(`/api/labor/${$routeParams.terminal}`).then(labor => {
  62. this.labor = labor
  63. })
  64. }
  65. })