Spaces:
Sleeping
Sleeping
| <div *ngIf="(authenticationState | async) == 'authenticated'"> | |
| <!-- Admin Control Panel --> | |
| <mat-card> | |
| <button mat-raised-button color="primary" class="full-width" (click)="refresh()">Refresh List</button> | |
| <div class="table-container"> | |
| <table mat-table [dataSource]="dataSource" class="mat-elevation-z8 responsive-table"> | |
| <!-- Team Column --> | |
| <ng-container matColumnDef="team"> | |
| <mat-header-cell *matHeaderCellDef> Team </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.team }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.team" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Task Column --> | |
| <ng-container matColumnDef="task"> | |
| <mat-header-cell *matHeaderCellDef> Task </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.task }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.task" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Dataset Column --> | |
| <ng-container matColumnDef="dataset"> | |
| <mat-header-cell *matHeaderCellDef> Dataset </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.dataset }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.dataset" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Model Column --> | |
| <ng-container matColumnDef="model"> | |
| <mat-header-cell *matHeaderCellDef> Model </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.model }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.model" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Link Column --> | |
| <ng-container matColumnDef="link"> | |
| <mat-header-cell *matHeaderCellDef> Link </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <a *ngIf="!isEditing(entry)" [href]="entry.link" target="_blank">{{ entry.link }}</a> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.link" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Email Column --> | |
| <ng-container matColumnDef="email"> | |
| <mat-header-cell *matHeaderCellDef> Email </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.email }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.email" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Status Column --> | |
| <ng-container matColumnDef="status"> | |
| <mat-header-cell *matHeaderCellDef> Status </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.status }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.status" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Time Column --> | |
| <ng-container matColumnDef="time"> | |
| <mat-header-cell *matHeaderCellDef> Time </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.time }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.time" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Is Public Column --> | |
| <ng-container matColumnDef="is_public"> | |
| <mat-header-cell *matHeaderCellDef> Is Public </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.is_public }}</span> | |
| <input *ngIf="isEditing(entry)" type="checkbox" [(ngModel)]="entry.is_public" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Accuracy Column --> | |
| <ng-container matColumnDef="accuracy"> | |
| <mat-header-cell *matHeaderCellDef> Accuracy </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.accuracy | number: '1.2-2' }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.accuracy" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Precision Column --> | |
| <ng-container matColumnDef="precision"> | |
| <mat-header-cell *matHeaderCellDef> Precision </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.precision | number: '1.2-2' }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.precision" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- Recall Column --> | |
| <ng-container matColumnDef="recall"> | |
| <mat-header-cell *matHeaderCellDef> Recall </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.recall | number: '1.2-2'}}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.recall" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <!-- F1 Score Column --> | |
| <ng-container matColumnDef="f1_score"> | |
| <mat-header-cell *matHeaderCellDef> F1 Score </mat-header-cell> | |
| <mat-cell *matCellDef="let entry"> | |
| <span *ngIf="!isEditing(entry)">{{ entry.f1_score | number: '1.2-2' }}</span> | |
| <input *ngIf="isEditing(entry)" [(ngModel)]="entry.f1_score" (keyup.enter)="saveEdit(entry)"> | |
| </mat-cell> | |
| </ng-container> | |
| <ng-container matColumnDef="actions"> | |
| <mat-header-cell *matHeaderCellDef class="actions-cell"> Actions </mat-header-cell> | |
| <mat-cell *matCellDef="let entry" class="actions-cell"> | |
| <button *ngIf="!isEditing(entry)" mat-button (click)="editRow(entry)">Edit</button> | |
| <button *ngIf="isEditing(entry)" mat-button (click)="saveEdit(entry)">Save</button> | |
| <button *ngIf="isEditing(entry)" mat-button (click)="cancelEdit(entry)">Cancel</button> | |
| <button mat-button color="warn" (click)="deleteRow(entry.id)">Delete</button> | |
| </mat-cell> | |
| </ng-container> | |
| <mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></mat-header-row> | |
| <mat-row *matRowDef="let row; columns: displayedColumns"></mat-row> | |
| </table> | |
| </div> | |
| </mat-card> | |
| </div> | |