labor-page.js 2.4 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.locationKey}} Labor">
  6. <app-breadcrumb links="[
  7. { text: 'Home', link: '/dashboard' },
  8. { text: ctrl.locationKey + ' Labor', link: '/labor/' + ctrl.locationKey }
  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.regularHours + workday.overtimeHours}}
  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.location.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.locationKey = $routeParams.location
  57. this.weekdays = weekdays
  58. api.location($routeParams.location).then(location => {
  59. this.location = location
  60. })
  61. this.promise = api.get(`/api/labor/${$routeParams.location}`).then(labor => {
  62. this.labor = labor
  63. })
  64. }
  65. })