dashboard.component.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. import { DashboardItemComponent } from 'angularlib/dashboard/dashboard-item/dashboard-item.component';
  15. import { LeaveModule } from 'fis/leave';
  16. import { MatDivider } from "@angular/material/divider";
  17. import { MatModule } from 'angularlib/mat.module';
  18. import { TenderModule } from 'fis/tender/tender.module';
  19. @Component({
  20. selector: 'spts-sales-submission-dashitem',
  21. imports: [
  22. CommonModule,
  23. RouterModule,
  24. MatModule,
  25. LoginModule,
  26. LabelModule,
  27. MasterMenuComponent,
  28. InputModule,
  29. LeaveModule,
  30. TenderModule
  31. ],
  32. providers: [ComponentService],
  33. templateUrl: './dashboard.component.html',
  34. styleUrl: './dashboard.component.scss'
  35. })
  36. export class DashboardComponent extends BaseComponent implements OnInit{
  37. protected masterMenu = masterMenu;
  38. protected username: Signal<string> = computed(() => {
  39. const GIVEN_NAME = this.loginService?.userSignal()?.name?.givenName;
  40. const FIS_NAME = this.loginService?.userSignal()?.fisInfo?.name;
  41. return GIVEN_NAME || FIS_NAME;
  42. });
  43. protected goto = {
  44. field: {
  45. key: 'goto',
  46. type: 'select',
  47. label: {key:'will_redirect_to',default:'Go to'},
  48. selectOptions: [
  49. {value:'home',label:{key:'home_page',default:'Home'}},
  50. {value:'leave-new',label:{key:'new_leave',default:'Apply New Leave'}},
  51. {value:'leave-applied',label:{key:'applied_leave',default:'Applied Leave'}},
  52. {value:'leave-approval',label:{key:'leave_approval',default:'Leave Approval'}},
  53. {value:'spts-sales',label:{key:'sales_tender_submission',default:'Sales Tender Submission'}},
  54. ]
  55. },
  56. value: 'home',
  57. onChange: (event: EventI) => {
  58. switch (event?.payload?.value) {
  59. case 'leave-new' : {
  60. this.cs.navigate('/leave',{type:'new'});
  61. break;
  62. }
  63. case 'leave-applied' : {
  64. this.cs.navigate('/leave',{type:'view'});
  65. break;
  66. }
  67. case 'leave-approval' : {
  68. this.cs.navigate('/leave/approval');
  69. break;
  70. }
  71. case 'spts-sales' : {
  72. this.cs.navigate('/tender',{type:'sales'});
  73. break;
  74. }
  75. default: break;
  76. }
  77. }
  78. }
  79. constructor(
  80. protected store: Store,
  81. protected loginService: LoginService,
  82. protected cs: ComponentService
  83. ) {
  84. super(store);
  85. }
  86. ngOnInit(): void {
  87. super.ngOnInit();
  88. }
  89. }