Angular project using NgRx pattern to manage state of a system

user-s-projects.component.html 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <div class="container p-3">
  2. <ng-container
  3. *ngIf="usersState$ | async as userState"
  4. [ngSwitch]="userState.msgState"
  5. >
  6. <ng-container *ngSwitchCase="msgState.LOADING">
  7. {{ msgState.LOADING }}
  8. </ng-container>
  9. <ng-container *ngSwitchCase="msgState.ERR">
  10. {{ msgState.ERR }}
  11. </ng-container>
  12. <ng-container *ngSwitchCase="msgState.LOADED">
  13. <p-table
  14. [value]="userState.usersList"
  15. responsiveLayout="scroll"
  16. styleClass="p-datatable-striped"
  17. *ngIf="userState.usersList && userState.usersList.length > 0"
  18. [paginator]="true"
  19. [rows]="2"
  20. [showCurrentPageReport]="true"
  21. currentPageReportTemplate="{first} - {last} of {totalRecords} users"
  22. [rowsPerPageOptions]="[2, 3, 5]"
  23. >
  24. <ng-template pTemplate="header">
  25. <tr>
  26. <th>ID</th>
  27. <th>Firstname</th>
  28. <th>Lastname</th>
  29. <th>Projects involving user</th>
  30. <th>Email</th>
  31. </tr>
  32. </ng-template>
  33. <ng-template pTemplate="body" let-user>
  34. <tr>
  35. <td>{{ user.id }}</td>
  36. <td>{{ user.firstname }}</td>
  37. <td>{{ user.lastname }}</td>
  38. <td>
  39. <ul *ngFor="let project of user.projects">
  40. <li>
  41. <span style="font-weight: bold"
  42. >Project ID: {{ project.id }}</span
  43. >
  44. </li>
  45. <li>Project Name: {{ project.projectName }}</li>
  46. <li>Priority: {{ project.priority }}</li>
  47. <li>Creation Date: {{ project.creationDate }}</li>
  48. <li>Company ID: {{ project.companyId }}</li>
  49. <li>Description: {{ project.description }}</li>
  50. <li>User ID: {{ project.userId }}</li>
  51. <li>Project State: {{ project.state }}</li>
  52. </ul>
  53. </td>
  54. <td>{{ user.email }}</td>
  55. </tr>
  56. </ng-template>
  57. </p-table>
  58. </ng-container>
  59. </ng-container>
  60. </div>

Powered by TurnKey Linux.