minor bugfixes
parent
7742db07d3
commit
ae5c2a40bb
Binary file not shown.
|
|
@ -1,9 +1,9 @@
|
||||||
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
|
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
|
||||||
import { provideRouter } from '@angular/router';
|
import { PreloadAllModules, provideRouter, withPreloading } from '@angular/router';
|
||||||
|
|
||||||
import { routes } from './app.routes';
|
import { routes } from './app.routes';
|
||||||
import { provideHttpClient } from '@angular/common/http';
|
import { provideHttpClient } from '@angular/common/http';
|
||||||
|
|
||||||
export const appConfig: ApplicationConfig = {
|
export const appConfig: ApplicationConfig = {
|
||||||
providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), provideHttpClient()]
|
providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes,withPreloading(PreloadAllModules)), provideHttpClient()]
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { ArLoggerService } from '../../services/ar-logger.service';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-consent',
|
selector: 'app-consent',
|
||||||
|
|
@ -17,7 +16,6 @@ export class ConsentComponent implements OnInit {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private logger: ArLoggerService
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
|
@ -26,8 +24,18 @@ export class ConsentComponent implements OnInit {
|
||||||
if (this.isIosDevice) {
|
if (this.isIosDevice) {
|
||||||
console.log("iOS device detected. Study will be disabled.");
|
console.log("iOS device detected. Study will be disabled.");
|
||||||
}
|
}
|
||||||
|
this.preloadTestSuite();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preloadTestSuite(): void {
|
||||||
|
import('../test-suite/test-suite.component')
|
||||||
|
.then(() => {
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
isIOS(): boolean {
|
isIOS(): boolean {
|
||||||
const win = window as any;
|
const win = window as any;
|
||||||
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !win.MSStream;
|
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !win.MSStream;
|
||||||
|
|
@ -41,7 +49,6 @@ export class ConsentComponent implements OnInit {
|
||||||
|
|
||||||
startTestSuite(): void {
|
startTestSuite(): void {
|
||||||
if (this.consentGiven && !this.isIosDevice) {
|
if (this.consentGiven && !this.isIosDevice) {
|
||||||
this.logger.initializeSession();
|
|
||||||
this.router.navigate(['/test-suite']);
|
this.router.navigate(['/test-suite']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<model-viewer
|
<model-viewer
|
||||||
#modelViewer
|
#modelViewer
|
||||||
class="absolute inset-0 w-full h-full"
|
class="absolute inset-0 w-full h-full"
|
||||||
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
|
src="models/untitled.glb"
|
||||||
ar
|
ar
|
||||||
ar-modes="webxr"
|
ar-modes="webxr"
|
||||||
ar-placement="ceiling"
|
ar-placement="ceiling"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<model-viewer
|
<model-viewer
|
||||||
#modelViewer
|
#modelViewer
|
||||||
class="absolute inset-0 w-full h-full"
|
class="absolute inset-0 w-full h-full"
|
||||||
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
|
src="models/untitled.glb"
|
||||||
ar
|
ar
|
||||||
ar-modes="webxr"
|
ar-modes="webxr"
|
||||||
ar-placement="ceiling"
|
ar-placement="ceiling"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
<div class="w-full h-full relative">
|
<div class="w-full h-full relative">
|
||||||
<model-viewer #modelViewer class="absolute inset-0 w-full h-full"
|
<model-viewer #modelViewer class="absolute inset-0 w-full h-full"
|
||||||
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb" ar ar-modes="webxr" ar-placement="ceiling"
|
src="models/untitled.glb"
|
||||||
|
ar ar-modes="webxr" ar-placement="ceiling"
|
||||||
|
loading="eager"
|
||||||
|
(preload)="onModelPreload()"
|
||||||
|
(load)="onModelLoad()"
|
||||||
reveal="manual" camera-orbit="0deg 75deg 2m">
|
reveal="manual" camera-orbit="0deg 75deg 2m">
|
||||||
|
|
||||||
<button slot="ar-button" id="ar-button-legibility" (click)="logInteraction($event)"
|
<button slot="ar-button" id="ar-button-legibility" (click)="logInteraction($event)"
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,8 @@ export class TextLegibilityAssessmentComponent implements AfterViewInit, OnDestr
|
||||||
public isArActive = false;
|
public isArActive = false;
|
||||||
public isModelPlaced = false;
|
public isModelPlaced = false;
|
||||||
public isDescriptionVisible = true;
|
public isDescriptionVisible = true;
|
||||||
|
|
||||||
|
isModelLoading: boolean = true;
|
||||||
minSize = 2;
|
minSize = 2;
|
||||||
maxSize = 64;
|
maxSize = 64;
|
||||||
currentSize = 16;
|
currentSize = 16;
|
||||||
|
|
@ -147,4 +148,12 @@ export class TextLegibilityAssessmentComponent implements AfterViewInit, OnDestr
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
this.metricsService.stopTracking();
|
this.metricsService.stopTracking();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onModelPreload() {
|
||||||
|
this.isModelLoading = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
onModelLoad() {
|
||||||
|
this.isModelLoading = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,26 +2,19 @@ import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { Subject, takeUntil } from 'rxjs';
|
import { Subject, takeUntil } from 'rxjs';
|
||||||
import { TestProgressService } from '../../services/test-progress.service';
|
import { TestProgressService } from '../../services/test-progress.service';
|
||||||
import { ArLoggerService } from '../../services/ar-logger.service';
|
|
||||||
|
|
||||||
import { SpatialStabilityAssessmentComponent } from './assessments/spatial-stability-assessment/spatial-stability-assessment.component';
|
import { SpatialStabilityAssessmentComponent } from './assessments/spatial-stability-assessment/spatial-stability-assessment.component';
|
||||||
import { ErgonomicAssessmentComponent } from './assessments/ergonomic-assessment/ergonomic-assessment.component';
|
|
||||||
import { TextLegibilityAssessmentComponent } from './assessments/text-legibility-assessment/text-legibility-assessment.component';
|
import { TextLegibilityAssessmentComponent } from './assessments/text-legibility-assessment/text-legibility-assessment.component';
|
||||||
import { ScaleReferenceAssessmentComponent } from './assessments/scale-reference-assessment/scale-reference-assessment.component';
|
|
||||||
import { SpatialPositionAssessmentComponent } from './assessments/spatial-position-assessment/spatial-position-assessment.component';
|
import { SpatialPositionAssessmentComponent } from './assessments/spatial-position-assessment/spatial-position-assessment.component';
|
||||||
import { DemographicsFeedbackComponent } from './assessments/demographics-feedback/demographics-feedback.component';
|
import { DemographicsFeedbackComponent } from './assessments/demographics-feedback/demographics-feedback.component';
|
||||||
import { FirstInputAssessmentComponent } from './assessments/first-input-assesment/first-input-assesment.component';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-test-suite',
|
selector: 'app-test-suite',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
FirstInputAssessmentComponent,
|
|
||||||
SpatialStabilityAssessmentComponent,
|
SpatialStabilityAssessmentComponent,
|
||||||
ErgonomicAssessmentComponent,
|
|
||||||
TextLegibilityAssessmentComponent,
|
TextLegibilityAssessmentComponent,
|
||||||
ScaleReferenceAssessmentComponent,
|
|
||||||
SpatialPositionAssessmentComponent,
|
SpatialPositionAssessmentComponent,
|
||||||
DemographicsFeedbackComponent,
|
DemographicsFeedbackComponent,
|
||||||
DemographicsFeedbackComponent
|
DemographicsFeedbackComponent
|
||||||
|
|
@ -38,7 +31,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private progressService: TestProgressService,
|
private progressService: TestProgressService,
|
||||||
private logger: ArLoggerService
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
|
@ -46,7 +38,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
|
||||||
.pipe(takeUntil(this.destroy$))
|
.pipe(takeUntil(this.destroy$))
|
||||||
.subscribe(test => {
|
.subscribe(test => {
|
||||||
this.currentTest = test;
|
this.currentTest = test;
|
||||||
this.logger.setCurrentTest(test);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.progressService.progress$
|
this.progressService.progress$
|
||||||
|
|
@ -55,13 +46,7 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
|
||||||
this.progress = progress;
|
this.progress = progress;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.logger.status$
|
|
||||||
.pipe(takeUntil(this.destroy$))
|
|
||||||
.subscribe(status => {
|
|
||||||
});
|
|
||||||
|
|
||||||
this.totalTests = this.progressService.getTotalTests();
|
this.totalTests = this.progressService.getTotalTests();
|
||||||
this.logger.updateStatus('Test suite initialized - Assessment 1 ready');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
|
|
@ -78,7 +63,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
|
|
||||||
forceNextTest(): void {
|
forceNextTest(): void {
|
||||||
this.logger.updateStatus(`Forcefully skipped to next test from test ${this.currentTest}.`);
|
|
||||||
this.progressService.nextTest();
|
this.progressService.nextTest();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue