user-area-nav.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. const app = require('../app')
  2. const _ = require('lodash')
  3. const { dashboardIcon, staffMemberIcon, staffingAgencyIcon, laborIcon, clientIcon, serviceIcon } = require('../assets')
  4. app.component('appUserAreaNav', {
  5. template: html`
  6. <div ng-if="$ctrl.api.claims.METRICS_VIEW">
  7. <h3>
  8. Intelligence
  9. </h3>
  10. <md-menu-item ng-if="$ctrl.api.claims.METRICS_VIEW">
  11. <md-button ng-href="/dashboard">
  12. <md-icon md-svg-icon="${dashboardIcon}"></md-icon>
  13. Dashboard
  14. </md-button>
  15. </md-menu-item>
  16. </div>
  17. <div ng-repeat="terminal in $ctrl.terminals">
  18. <h3>{{::terminal.name}}</h3>
  19. <md-menu-item ng-if="$ctrl.api.claims.LABOR_VIEW">
  20. <md-button ng-href="/labor/{{::terminal.key}}">
  21. <md-icon md-svg-icon="${laborIcon}"></md-icon>
  22. {{::terminal.key}} Labor
  23. </md-button>
  24. </md-menu-item>
  25. <md-menu-item ng-if="$ctrl.api.claims.SERVICES_VIEW">
  26. <md-button ng-href="/services/{{::terminal.key}}">
  27. <md-icon md-svg-icon="${serviceIcon}"></md-icon>
  28. {{::terminal.key}} Services
  29. </md-button>
  30. </md-menu-item>
  31. <md-menu-item ng-if="$ctrl.api.claims.STAFF_MEMBER_VIEW">
  32. <md-button ng-href="/staff-members/{{::terminal.key}}">
  33. <md-icon md-svg-icon="${staffMemberIcon}"></md-icon>
  34. {{::terminal.key}} Staff Members
  35. </md-button>
  36. </md-menu-item>
  37. <md-menu-item ng-if="$ctrl.api.claims.CLIENT_VIEW">
  38. <md-button ng-href="/clients/{{::terminal.key}}">
  39. <md-icon md-svg-icon="${clientIcon}"></md-icon>
  40. {{::terminal.key}} Clients
  41. </md-button>
  42. </md-menu-item>
  43. </div>
  44. <div ng-if="$ctrl.api.claims.TERMINAL_ALL_ACCESS">
  45. <h3>All</h3>
  46. <md-menu-item ng-if="$ctrl.api.claims.STAFF_MEMBER_VIEW">
  47. <md-button ng-href="/staff-members/all">
  48. <md-icon md-svg-icon="${staffMemberIcon}"></md-icon>
  49. Staff Members
  50. </md-button>
  51. </md-menu-item>
  52. <md-menu-item ng-if="$ctrl.api.claims.STAFFING_AGENCY_VIEW">
  53. <md-button ng-href="/staffing-agencies">
  54. <md-icon md-svg-icon="${staffingAgencyIcon}"></md-icon>
  55. Staffing Agencies
  56. </md-button>
  57. </md-menu-item>
  58. <md-menu-item ng-if="$ctrl.api.claims.CLIENT_VIEW">
  59. <md-button ng-href="/clients/all">
  60. <md-icon md-svg-icon="${clientIcon}"></md-icon>
  61. Clients
  62. </md-button>
  63. </md-menu-item>
  64. <md-menu-item ng-if="$ctrl.api.claims.LABOR_CATEGORY_VIEW">
  65. <md-button ng-href="/labor-categories">
  66. Labor Categories
  67. </md-button>
  68. </md-menu-item>
  69. <md-menu-item ng-if="$ctrl.api.claims.LABOR_CATEGORY_VIEW">
  70. <md-button ng-href="/service-categories">
  71. Service Categories
  72. </md-button>
  73. </md-menu-item>
  74. </div>
  75. `,
  76. controller: function(api) {
  77. this.api = api
  78. api.terminals().then(terminals => {
  79. this.terminals = _.sortBy(terminals, 'key')
  80. .filter(({key}) => api.claims[`TERMINAL_${key}_ACCESS`])
  81. })
  82. }
  83. })