Skip to content
Snippets Groups Projects
Commit 3166a837 authored by Martin Mechtel's avatar Martin Mechtel
Browse files

v 1.1.2:

start-code prompt
restore last testlet time only if hot
wrap navbuttons only
parent 5e7bd01a
No related branches found
No related tags found
No related merge requests found
...@@ -23,28 +23,28 @@ export class MainDataService { ...@@ -23,28 +23,28 @@ export class MainDataService {
}; };
private static defaultCostumTexts: KeyValuePair = { private static defaultCostumTexts: KeyValuePair = {
'app_title': 'IQB-Testcenter', 'app_title': 'IQB-Testcenter',
'app_loginErrorMsg': 'Die Anmeldedaten sind nicht korrekt.',
'login_testEndButtonText': 'Test beenden', 'login_testEndButtonText': 'Test beenden',
'login_bookletSelectPrompt': 'Bitte wählen', 'login_bookletSelectPrompt': 'Bitte wählen!',
'login_bookletSelectTitle': 'Bitte wählen', 'login_bookletSelectTitle': 'Bitte wählen!',
'login_bookletSelectPromptOne': 'Bitte klick auf die Schaltfläche links, um den Test zu starten!', 'login_bookletSelectPromptOne': 'Bitte klicke auf die Schaltfläche auf der linken Seite, um den Test zu starten!',
'login_bookletSelectPromptMany': 'Bitte klick auf eine der Schaltflächen links, um einen Test zu starten!', 'login_bookletSelectPromptMany': 'Bitte klicke auf eine der Schaltflächen auf der linken Seite, um einen Test zu starten!',
'login_codeInputPrompt': 'Bitte Log-in eingeben, der auf dem Zettel steht!', 'login_codeInputPrompt': 'Bitte Log-in eingeben, der auf dem Zettel steht!',
'login_codeInputTitle': 'Log-in eingeben', 'login_codeInputTitle': 'Log-in eingeben',
'booklet_msgPresentationNotCompleteTitle': 'booklet_msgPresentationNotCompleteTitle':
'Weiterblättern nicht möglich', 'Weiterblättern nicht möglich!',
'booklet_msgPresentationNotCompleteText': 'booklet_msgPresentationNotCompleteText':
'Du kannst erst weiterblättern, wenn Audio-Dateien vollständig abgespielt wurden ' 'Du kannst erst weiterblättern, wenn Audio-Dateien vollständig abgespielt wurden '
+ 'und wenn du in allen Fenstern bis ganz nach unten gescrollt hast.', + 'und wenn du in allen Fenstern bis ganz nach unten gescrollt hast.',
'booklet_codeToEnterTitle': 'Freigabecode', 'booklet_codeToEnterTitle': 'Freigabewort',
'booklet_codeToEnterPrompt': 'Bitte gib den Code ein, der angesagt wurde!', 'booklet_codeToEnterPrompt': 'Bitte gib das Freigabewort ein, das angesagt wurde!',
'booklet_msgSoonTimeOver5Minutes': 'Du hast noch 5 Minuten Zeit für die Bearbeitung der Aufgaben in diesem Abschnitt.', 'booklet_msgSoonTimeOver5Minutes': 'Du hast noch 5 Minuten Zeit für die Bearbeitung der Aufgaben in diesem Abschnitt.',
'booklet_msgSoonTimeOver1Minute': 'Du hast noch 1 Minute Zeit für die Bearbeitung der Aufgaben in diesem Abschnitt.', 'booklet_msgSoonTimeOver1Minute': 'Du hast noch 1 Minute Zeit für die Bearbeitung der Aufgaben in diesem Abschnitt.',
'booklet_msgTimerStarted': 'Die Bearbeitungszeit für diesen Abschnitt hat begonnen: ', 'booklet_msgTimerStarted': 'Die Bearbeitungszeit für diesen Abschnitt hat begonnen: ',
'booklet_msgTimerCancelled': 'Die Bearbeitung des Abschnittes wurde abgebrochen.', 'booklet_msgTimerCancelled': 'Die Bearbeitung des Abschnittes wurde abgebrochen.',
'booklet_msgTimeOver': 'Die Bearbeitung des Abschnittes ist beendet.', 'booklet_msgTimeOver': 'Die Bearbeitung des Abschnittes ist beendet.',
'booklet_warningLeaveTimerBlockTitle': 'Aufgabenabschnitt verlassen?', 'booklet_warningLeaveTimerBlockTitle': 'Aufgabenabschnitt verlassen?',
'booklet_warningLeaveTimerBlockPrompt': 'Wenn du jetzt weiterblätterst, ist die Bearbeitungszeit beendet und du kannst nicht zurück.', 'booklet_warningLeaveTimerBlockPrompt': 'Wenn du jetzt weiterblätterst, beendest ' +
'du vorzeitig die Bearbeitung dieses Aufgabenabschnitts und du kannst nicht mehr zurück.',
}; };
public loginData$ = new BehaviorSubject<LoginData>(MainDataService.defaultLoginData); public loginData$ = new BehaviorSubject<LoginData>(MainDataService.defaultLoginData);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<h1 mat-dialog-title>{{ data.title }}</h1> <h1 mat-dialog-title>{{ data.title }}</h1>
<mat-dialog-content> <mat-dialog-content>
<p>{{ data.prompt }}</p>
<mat-form-field *ngFor="let c of data.codes" fxLayout="column"> <mat-form-field *ngFor="let c of data.codes" fxLayout="column">
<p>{{ c.prompt }}</p> <p>{{ c.prompt }}</p>
<input matInput [formControlName]="c.testletId" [(ngModel)]="c.value" (keyup.enter)="close()"> <input matInput [formControlName]="c.testletId" [(ngModel)]="c.value" (keyup.enter)="close()">
......
...@@ -42,12 +42,16 @@ ...@@ -42,12 +42,16 @@
#buttonsContainer { #buttonsContainer {
position: absolute; position: absolute;
right: 5px; right: 5px;
top: 5px; top: 2px;
left: 5px;
color: white; color: white;
} }
#buttonsContainer .material-icons { #buttonsContainer .material-icons {
font-size: 2.0rem; font-size: 2.0rem;
} }
#buttonsContainer img {
width: 100px;
}
/* --------------------------------------------- */ /* --------------------------------------------- */
mat-toolbar { mat-toolbar {
......
<div class="logo"> <div id="buttonsContainer" fxLayout="row" fxLayoutAlign="space-between center">
<a [routerLink]="['/']"> <a [routerLink]="['/']">
<img src="assets/IQB-LogoA.png" matTooltip="Startseite"/> <img src="assets/IQB-LogoA.png" matTooltip="Startseite"/>
</a> </a>
</div> <div fxLayout="row" fxLayoutAlign="end center">
<div id="buttonsContainer" fxLayout="row wrap" fxLayoutAlign="end center"> <p class="timer" *ngIf="tcs.mode !== 'hot'">{{ timerValue?.timeLeftString }}</p>
<p class="timer" *ngIf="tcs.mode !== 'hot'">{{ timerValue?.timeLeftString }}</p> <button mat-fab [disabled]="!(tcs.unitPrevEnabled$ | async)" *ngIf="tcs.navArrows" color="accent"
<button mat-fab [disabled]="!(tcs.unitPrevEnabled$ | async)" *ngIf="tcs.navArrows" color="accent" (click)="tcs.setUnitNavigationRequest('#previous')" matTooltip="Zurück"> (click)="tcs.setUnitNavigationRequest('#previous')" matTooltip="Zurück" fxFlex="none">
<i class="material-icons">chevron_left</i> <i class="material-icons">chevron_left</i>
</button> </button>
<div *ngIf="tcs.navButtons" fxLayout="row" fxLayoutAlign="start center"> <div *ngIf="tcs.navButtons" fxLayout="row wrap" fxLayoutAlign="start center" fxFlex="0 3 100%">
<div *ngFor="let u of (tcs.unitListForNaviButtons$ | async)"> <div *ngFor="let u of (tcs.unitListForNaviButtons$ | async)">
<div fxLayout="column" fxLayoutAlign="start center"> <div fxLayout="column" fxLayoutAlign="start center">
<button (click)="gotoUnit(u.sequenceId)" class="unit-button" [disabled]="u.disabled">{{ u.label }}</button> <button (click)="gotoUnit(u.sequenceId)" class="unit-button" [disabled]="u.disabled">{{ u.label }}</button>
<span class="current-unit-dot" *ngIf="u.isCurrent"></span> <span class="current-unit-dot" *ngIf="u.isCurrent"></span>
<span class="notcurrent-unit-dot" *ngIf="!u.isCurrent"></span> <span class="notcurrent-unit-dot" *ngIf="!u.isCurrent"></span>
</div>
</div> </div>
</div> </div>
<button mat-fab [disabled]="!(tcs.unitNextEnabled$ | async)" *ngIf="tcs.navArrows" color="accent"
(click)="tcs.setUnitNavigationRequest('#next')" matTooltip="Weiter" fxFlex="none">
<i class="material-icons">chevron_right</i>
</button>
<button mat-button (click)="showReviewDialog()" *ngIf="tcs.mode === 'review'" matTooltip="Kommentar senden" fxFlex="none">
<mat-icon>rate_review</mat-icon>
</button>
<button mat-button (click)="tcs.setUnitNavigationRequest('#end')" *ngIf="tcs.mode !== 'hot'"
matTooltip="Zur Testheft-Auswahl zurückkehren" fxFlex="none">
<mat-icon>exit_to_app</mat-icon>
</button>
</div> </div>
<button mat-fab [disabled]="!(tcs.unitNextEnabled$ | async)" *ngIf="tcs.navArrows" color="accent" (click)="tcs.setUnitNavigationRequest('#next')" matTooltip="Weiter">
<i class="material-icons">chevron_right</i>
</button>
<button mat-button (click)="showReviewDialog()" *ngIf="tcs.mode === 'review'" matTooltip="Kommentar senden">
<mat-icon>rate_review</mat-icon>
</button>
<button mat-button (click)="tcs.setUnitNavigationRequest('#end')" *ngIf="tcs.mode !== 'hot'" matTooltip="Zur Testheft-Auswahl zurückkehren">
<mat-icon>exit_to_app</mat-icon>
</button>
</div> </div>
<div class="spinner-container" *ngIf="dataLoading"> <div class="spinner-container" *ngIf="dataLoading">
<mat-spinner></mat-spinner> <mat-spinner></mat-spinner>
......
...@@ -490,7 +490,7 @@ export class TestControllerComponent implements OnInit, OnDestroy { ...@@ -490,7 +490,7 @@ export class TestControllerComponent implements OnInit, OnDestroy {
if (bookletData.laststate.hasOwnProperty(LastStateKey.LASTUNIT)) { if (bookletData.laststate.hasOwnProperty(LastStateKey.LASTUNIT)) {
navTarget = bookletData.laststate[LastStateKey.LASTUNIT]; navTarget = bookletData.laststate[LastStateKey.LASTUNIT];
} }
if (bookletData.laststate.hasOwnProperty(LastStateKey.MAXTIMELEFT)) { if (bookletData.laststate.hasOwnProperty(LastStateKey.MAXTIMELEFT) && (loginData.mode === 'hot')) {
this.tcs.LastMaxTimerState = JSON.parse(bookletData.laststate[LastStateKey.MAXTIMELEFT]); this.tcs.LastMaxTimerState = JSON.parse(bookletData.laststate[LastStateKey.MAXTIMELEFT]);
} }
} }
......
...@@ -5,5 +5,5 @@ export const environment = { ...@@ -5,5 +5,5 @@ export const environment = {
testcenterUrl: '/', testcenterUrl: '/',
appName: 'IQB-Testcenter', appName: 'IQB-Testcenter',
appPublisher: 'IQB - Institut zur Qualitätsentwicklung im Bildungswesen', appPublisher: 'IQB - Institut zur Qualitätsentwicklung im Bildungswesen',
appVersion: '1.1.1 - 26.3.2019' appVersion: '1.1.2 - 26.3.2019'
}; };
...@@ -5,5 +5,5 @@ export const environment = { ...@@ -5,5 +5,5 @@ export const environment = {
testcenterUrl: '/', testcenterUrl: '/',
appName: 'IQB-Testcenter', appName: 'IQB-Testcenter',
appPublisher: 'IQB - Institut zur Qualitätsentwicklung im Bildungswesen', appPublisher: 'IQB - Institut zur Qualitätsentwicklung im Bildungswesen',
appVersion: '1.1.1 - 26.3.2019' appVersion: '1.1.2 - 26.3.2019'
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment