journal-places.component.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <div class="places-list">
  2. <div class="title t-0">{{ "places.title" | translate }}</div>
  3. <divider appearance="gold-2" style="padding: 0 1rem"></divider>
  4. <!-- Add Button or temporary unsaved new Place -->
  5. @if (isNewPlace) {
  6. <div class="place active">
  7. <div class="place-title">
  8. @if (currentPlace.name !== "") {
  9. {{ currentPlace.name }}
  10. } @else {
  11. {{ "places.noName" | translate }}
  12. }
  13. </div>
  14. <div class="unsaved">{{ "places.unsaved" | translate }}</div>
  15. </div>
  16. } @else {
  17. <div class="place add-button" (click)="addPlace()">
  18. <img src="assets/icons/UIIcons/add.svg" />
  19. </div>
  20. }
  21. <!-- List of entries -->
  22. @for (place of places; let index = $index; track place) {
  23. <div
  24. class="place-wrapper"
  25. [ngClass]="{
  26. active: currentIndex === index,
  27. 'edit-mode': isInEditMode
  28. }"
  29. >
  30. <div (click)="selectPlace(index)" class="place">
  31. <div class="place-title">
  32. @if (places[index].name !== "") {
  33. @if (isInEditMode && index === currentIndex) {
  34. {{ currentPlace.name }}
  35. } @else {
  36. {{ places[index].name }}
  37. }
  38. } @else {
  39. {{ "places.noName" | translate }}
  40. }
  41. </div>
  42. @if (isInEditMode && currentIndex === index) {
  43. <div class="unsaved">{{ "places.unsaved" | translate }}</div>
  44. }
  45. </div>
  46. <div class="control-button-wrapper">
  47. <icon-button [icon]="'edit-large'" (click)="editPlace()"></icon-button>
  48. <icon-button [icon]="'delete'" (click)="deletePlace()"></icon-button>
  49. </div>
  50. </div>
  51. }
  52. </div>
  53. @if (places.length > 0 || isNewPlace) {
  54. @if (isInEditMode) {
  55. <div class="write-container">
  56. <div>
  57. <label class="write-label">{{
  58. "places.namePlaceholder" | translate
  59. }}</label>
  60. <div>
  61. <mat-form-field class="name-write" appearance="outline">
  62. <input
  63. matInput
  64. [(ngModel)]="currentPlace.name"
  65. [placeholder]="'places.namePlaceholder' | translate"
  66. />
  67. </mat-form-field>
  68. </div>
  69. </div>
  70. <div class="t-2">
  71. <label class="write-label">{{
  72. "places.shortPlaceholder" | translate
  73. }}</label>
  74. <div class="NgxEditor__Wrapper">
  75. <ngx-editor-menu [editor]="shortEditor" [toolbar]="toolbar">
  76. </ngx-editor-menu>
  77. <ngx-editor
  78. class="short-editor"
  79. [editor]="shortEditor"
  80. [placeholder]="'places.shortPlaceholder' | translate"
  81. [(ngModel)]="currentPlace.shortDescription"
  82. ></ngx-editor>
  83. </div>
  84. </div>
  85. <div class="t-2">
  86. <label class="write-label">{{
  87. "places.longPlaceholder" | translate
  88. }}</label>
  89. <div class="NgxEditor__Wrapper">
  90. <ngx-editor-menu [editor]="longEditor" [toolbar]="toolbar">
  91. </ngx-editor-menu>
  92. <ngx-editor
  93. class="long-editor"
  94. [editor]="longEditor"
  95. [placeholder]="'places.longPlaceholder' | translate"
  96. [(ngModel)]="currentPlace.longDescription"
  97. ></ngx-editor>
  98. </div>
  99. </div>
  100. <div class="button-row">
  101. <ui-button width="w16" (click)="savePlace()">{{
  102. "places.save" | translate
  103. }}</ui-button>
  104. <ui-button width="w16" (click)="discardPlace()">{{
  105. "places.discard" | translate
  106. }}</ui-button>
  107. </div>
  108. </div>
  109. } @else {
  110. <div class="read-container">
  111. <div class="title-row">
  112. <div class="name-read">{{ currentPlace.name }}</div>
  113. <mat-button-toggle-group name="fontStyle" aria-label="Font Style">
  114. <mat-button-toggle
  115. value="short"
  116. (click)="showShortDescription = true"
  117. >{{ "places.short" | translate }}</mat-button-toggle
  118. >
  119. <mat-button-toggle
  120. value="long"
  121. [class]="showShortDescription ? '' : 'mat-button-toggle-checked'"
  122. (click)="showShortDescription = false"
  123. >{{ "places.long" | translate }}</mat-button-toggle
  124. >
  125. </mat-button-toggle-group>
  126. </div>
  127. <divider [appearance]="'gold-2'" class="b-1 t-1"></divider>
  128. <div class="short-read">
  129. <div
  130. class="description"
  131. [innerHTML]="
  132. showShortDescription
  133. ? currentPlace.shortDescription
  134. : currentPlace.longDescription
  135. "
  136. ></div>
  137. </div>
  138. </div>
  139. }
  140. } @else {
  141. <div class="empty-container">
  142. {{ "places.empty" | translate }}
  143. </div>
  144. }