labor-page.js 2.4 KB

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