user-area.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. const app = require('../app')
  2. const { logo, menuIcon, userIcon, dashboardIcon, roleIcon } = require('../assets')
  3. const assets = require('../assets')
  4. app.component('appUserArea', {
  5. transclude: true,
  6. template: html`
  7. <div layout="row" flex>
  8. <md-sidenav flex
  9. md-component-id="left"
  10. class="md-sidenav-left"
  11. md-is-locked-open="$mdMedia('gt-md')"
  12. md-whiteframe="4"
  13. layout="column">
  14. <header>
  15. <div class="logo-container">
  16. <img class="logo" src="${logo}" />
  17. </div>
  18. </header>
  19. <app-user-area-nav></app-user-area-nav>
  20. <md-menu-item ng-repeat="crud in ctrl.cruds">
  21. <md-button ng-href="/{{crud.paramPlural}}">
  22. <md-icon md-svg-icon="{{assets[crud.iconAsset]}}"></md-icon>
  23. {{crud.titlePlural}}
  24. </md-button>
  25. </md-menu-item>
  26. <h3>
  27. Administration
  28. </h3>
  29. <md-menu-item>
  30. <md-button ng-href="/users">
  31. <md-icon md-svg-icon="${userIcon}"></md-icon>
  32. Users
  33. </md-button>
  34. </md-menu-item>
  35. <!-- <md-menu-item>
  36. <md-button ng-href="/roles">
  37. <md-icon md-svg-icon="${roleIcon}"></md-icon>
  38. Roles
  39. </md-button>
  40. </md-menu-item> -->
  41. </md-sidenav>
  42. <md-content flex>
  43. <md-toolbar>
  44. <div class="md-toolbar-tools">
  45. <md-button class="md-icon-button" aria-label="Settings" ng-hide="$mdMedia('gt-md')" ng-click="ctrl.toggleNav()">
  46. <md-icon md-svg-icon="${menuIcon}"></md-icon>
  47. </md-button>
  48. </div>
  49. </md-toolbar>
  50. <div layout-padding>
  51. <div ng-transclude></div>
  52. </div>
  53. </md-content>
  54. </div>
  55. `,
  56. controllerAs: 'ctrl',
  57. controller: function($mdSidenav, $mdMedia, $scope, cruds) {
  58. this.cruds = cruds.filter(crud => crud.showNav !== false)
  59. $scope.assets = assets
  60. $scope.$mdMedia = $mdMedia
  61. this.showNav = false
  62. this.toggleNav = () => {
  63. $mdSidenav('left').toggle()
  64. }
  65. }
  66. })