dashboard.component.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { Component, computed, OnInit, Signal } from '@angular/core';
  2. import { RouterModule } from '@angular/router';
  3. import { BaseComponent } from 'angularlib/base.component';
  4. import { LoginModule } from 'angularlib/login';
  5. import { Store } from '@ngxs/store';
  6. import { LoginService } from 'angularlib/login/login.service';
  7. import { MasterMenuComponent } from 'angularlib/menu/master.menu/master.menu.component';
  8. import { CommonModule } from '@angular/common';
  9. import { ComponentService } from 'angularlib/component.service';
  10. import { LabelModule } from 'angularlib/labels/label.module';
  11. import { masterMenu } from '../menu/menu';
  12. import { InputModule } from 'angularlib/input/input.module';
  13. import { EventI } from 'fis-commons/event/event';
  14. @Component({
  15. selector: 'app-dashboard',
  16. imports: [
  17. CommonModule,
  18. RouterModule,
  19. LoginModule,
  20. LabelModule,
  21. MasterMenuComponent,
  22. InputModule
  23. ],
  24. providers: [ComponentService],
  25. templateUrl: './dashboard.component.html',
  26. styleUrl: './dashboard.component.scss'
  27. })
  28. export class DashboardComponent extends BaseComponent implements OnInit{
  29. protected masterMenu = masterMenu;
  30. protected username: Signal<string> = computed(() => {
  31. const GIVEN_NAME = this.loginService?.userSignal()?.name?.givenName;
  32. const FIS_NAME = this.loginService?.userSignal()?.fisInfo?.name;
  33. return GIVEN_NAME || FIS_NAME;
  34. });
  35. protected goto = {
  36. field: {
  37. key: 'goto',
  38. type: 'select',
  39. label: {key:'will_redirect_to',default:'Go to'},
  40. selectOptions: [
  41. {value:'home',label:{key:'home_page',default:'Home'}},
  42. {value:'leave-new',label:{key:'new_leave',default:'Apply New Leave'}},
  43. {value:'leave-applied',label:{key:'applied_leave',default:'Applied Leave'}},
  44. {value:'leave-approval',label:{key:'leave_approval',default:'Leave Approval'}},
  45. {value:'spts-sales',label:{key:'sales_tender_submission',default:'Sales Tender Submission'}},
  46. ]
  47. },
  48. value: 'home',
  49. onChange: (event: EventI) => {
  50. switch (event?.payload?.value) {
  51. case 'leave-new' : {
  52. this.cs.navigate('/leave',{type:'new'});
  53. break;
  54. }
  55. case 'leave-applied' : {
  56. this.cs.navigate('/leave',{type:'view'});
  57. break;
  58. }
  59. case 'leave-approval' : {
  60. this.cs.navigate('/leave/approval');
  61. break;
  62. }
  63. case 'spts-sales' : {
  64. this.cs.navigate('/tender',{type:'sales'});
  65. break;
  66. }
  67. default: break;
  68. }
  69. }
  70. }
  71. constructor(
  72. protected store: Store,
  73. protected loginService: LoginService,
  74. protected cs: ComponentService
  75. ) {
  76. super(store);
  77. }
  78. ngOnInit(): void {
  79. super.ngOnInit();
  80. }
  81. }