Philipp Schrader | 02db74b | 2023-02-17 20:36:58 -0800 | [diff] [blame] | 1 | <div class="header"> |
| 2 | <h2>Notes</h2> |
| 3 | </div> |
Alex Perry | bb90105 | 2022-03-23 19:46:15 -0700 | [diff] [blame] | 4 | |
| 5 | <ng-container [ngSwitch]="section"> |
| 6 | <div *ngSwitchCase="'TeamSelection'"> |
Filip Kujawa | 1861fa5 | 2022-12-01 10:37:06 -0800 | [diff] [blame] | 7 | <label id="team_number_label" class="label" for="team_number_notes"> |
| 8 | Team Number |
| 9 | </label> |
Philipp Schrader | 817cce3 | 2022-03-26 15:00:00 -0700 | [diff] [blame] | 10 | <input |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 11 | [(ngModel)]="teamNumberSelection" |
Emily Markova | e68b763 | 2023-12-30 14:17:55 -0800 | [diff] [blame^] | 12 | type="text" |
Philipp Schrader | 817cce3 | 2022-03-26 15:00:00 -0700 | [diff] [blame] | 13 | id="team_number_notes" |
Philipp Schrader | 817cce3 | 2022-03-26 15:00:00 -0700 | [diff] [blame] | 14 | /> |
Alex Perry | bb90105 | 2022-03-23 19:46:15 -0700 | [diff] [blame] | 15 | <button class="btn btn-primary" (click)="setTeamNumber()">Select</button> |
| 16 | </div> |
| 17 | |
| 18 | <div *ngSwitchCase="'Data'"> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 19 | <div class="container-main" *ngFor="let team of newData; let i = index"> |
| 20 | <div class="pt-2 pb-2"> |
| 21 | <div class="d-flex flex-row"> |
| 22 | <div> |
| 23 | <button |
| 24 | class="btn bg-transparent ml-10 md-5" |
| 25 | (click)="removeTeam(i)" |
| 26 | > |
| 27 | ✖ |
| 28 | <!--X Symbol--> |
| 29 | </button> |
| 30 | </div> |
Filip Kujawa | 1861fa5 | 2022-12-01 10:37:06 -0800 | [diff] [blame] | 31 | <div><h3 id="team-key-{{i+1}}">{{team.teamNumber}}</h3></div> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 32 | </div> |
| 33 | <div class=""> |
Filip Kujawa | 7dd4995 | 2022-12-02 12:09:13 -0800 | [diff] [blame] | 34 | <!-- |
| 35 | Note Input Text Areas. |
| 36 | ID property is used for keyboard shorcuts to focus |
| 37 | on the corresponding text area. |
| 38 | The data-toggle and title properties are |
| 39 | used for bootstrap tooltips. |
| 40 | --> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 41 | <textarea |
| 42 | class="text-input" |
Filip Kujawa | 7dd4995 | 2022-12-02 12:09:13 -0800 | [diff] [blame] | 43 | id="text-input-{{i+1}}" |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 44 | [(ngModel)]="newData[i].notesData" |
Filip Kujawa | 7dd4995 | 2022-12-02 12:09:13 -0800 | [diff] [blame] | 45 | data-toggle="tooltip" |
| 46 | title="Ctrl + {{i+1}}" |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 47 | ></textarea> |
| 48 | </div> |
| 49 | <!--Key Word Checkboxes--> |
| 50 | <!--Row 1 (Prevent Overflow on mobile by splitting checkboxes into 2 rows)--> |
| 51 | <!--Slice KEYWORD_CHECKBOX_LABELS using https://angular.io/api/common/SlicePipe--> |
| 52 | <div class="d-flex flex-row justify-content-around"> |
| 53 | <div |
| 54 | *ngFor="let key of Object.keys(KEYWORD_CHECKBOX_LABELS) | slice:0:((Object.keys(KEYWORD_CHECKBOX_LABELS).length)/2); let k = index" |
| 55 | > |
| 56 | <div class="form-check"> |
| 57 | <input |
| 58 | class="form-check-input" |
| 59 | [(ngModel)]="newData[i]['keywordsData'][key]" |
| 60 | type="checkbox" |
Philipp Schrader | 02db74b | 2023-02-17 20:36:58 -0800 | [diff] [blame] | 61 | id="{{labelToId(KEYWORD_CHECKBOX_LABELS[key])}}_{{i}}" |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 62 | name="{{KEYWORD_CHECKBOX_LABELS[key]}}" |
| 63 | /> |
| 64 | <label |
| 65 | class="form-check-label" |
| 66 | for="{{KEYWORD_CHECKBOX_LABELS[key]}}_{{i}}" |
| 67 | > |
| 68 | {{KEYWORD_CHECKBOX_LABELS[key]}} |
| 69 | </label> |
| 70 | <br /> |
| 71 | </div> |
| 72 | </div> |
| 73 | </div> |
| 74 | <!--Row 2 (Prevent Overflow on mobile by splitting checkboxes into 2 rows)--> |
| 75 | <div class="d-flex flex-row justify-content-around"> |
| 76 | <div |
| 77 | *ngFor="let key of Object.keys(KEYWORD_CHECKBOX_LABELS) | slice:3:(Object.keys(KEYWORD_CHECKBOX_LABELS).length); let k = index" |
| 78 | > |
| 79 | <div class="form-check"> |
| 80 | <input |
| 81 | class="form-check-input" |
| 82 | [(ngModel)]="newData[i]['keywordsData'][key]" |
| 83 | type="checkbox" |
Philipp Schrader | 02db74b | 2023-02-17 20:36:58 -0800 | [diff] [blame] | 84 | id="{{labelToId(KEYWORD_CHECKBOX_LABELS[key])}}" |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 85 | name="{{KEYWORD_CHECKBOX_LABELS[key]}}" |
| 86 | /> |
| 87 | <label |
| 88 | class="form-check-label" |
| 89 | for="{{KEYWORD_CHECKBOX_LABELS[key]}}" |
| 90 | > |
| 91 | {{KEYWORD_CHECKBOX_LABELS[key]}} |
| 92 | </label> |
| 93 | <br /> |
| 94 | </div> |
| 95 | </div> |
| 96 | </div> |
| 97 | </div> |
| 98 | </div> |
| 99 | <div class="d-flex flex-row justify-content-center pt-2"> |
| 100 | <div> |
Filip Kujawa | 1861fa5 | 2022-12-01 10:37:06 -0800 | [diff] [blame] | 101 | <button |
| 102 | id="add-team-button" |
| 103 | class="btn btn-secondary" |
| 104 | (click)="addTeam()" |
| 105 | > |
| 106 | Add team |
| 107 | </button> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 108 | </div> |
| 109 | <div> |
Filip Kujawa | 1861fa5 | 2022-12-01 10:37:06 -0800 | [diff] [blame] | 110 | <button |
| 111 | id="submit-button" |
| 112 | class="btn btn-success" |
| 113 | (click)="submitData()" |
| 114 | > |
| 115 | Submit |
| 116 | </button> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 117 | </div> |
Alex Perry | bb90105 | 2022-03-23 19:46:15 -0700 | [diff] [blame] | 118 | </div> |
| 119 | </div> |
Filip Kujawa | f947cb4 | 2022-11-21 10:00:30 -0800 | [diff] [blame] | 120 | |
Philipp Schrader | 817cce3 | 2022-03-26 15:00:00 -0700 | [diff] [blame] | 121 | <div class="error">{{errorMessage}}</div> |
Alex Perry | bb90105 | 2022-03-23 19:46:15 -0700 | [diff] [blame] | 122 | </ng-container> |