minor bugfixes

master
MrPlatnum 2025-09-16 13:13:59 +02:00
parent 7742db07d3
commit ae5c2a40bb
9 changed files with 29 additions and 1092 deletions

BIN
public/models/untitled.glb Normal file

Binary file not shown.

View File

@ -1,9 +1,9 @@
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { PreloadAllModules, provideRouter, withPreloading } from '@angular/router';
import { routes } from './app.routes';
import { provideHttpClient } from '@angular/common/http';
export const appConfig: ApplicationConfig = {
providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), provideHttpClient()]
providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes,withPreloading(PreloadAllModules)), provideHttpClient()]
};

View File

@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ArLoggerService } from '../../services/ar-logger.service';
@Component({
selector: 'app-consent',
@ -17,7 +16,6 @@ export class ConsentComponent implements OnInit {
constructor(
private router: Router,
private logger: ArLoggerService
) {}
ngOnInit(): void {
@ -26,8 +24,18 @@ export class ConsentComponent implements OnInit {
if (this.isIosDevice) {
console.log("iOS device detected. Study will be disabled.");
}
this.preloadTestSuite();
}
preloadTestSuite(): void {
import('../test-suite/test-suite.component')
.then(() => {
})
.catch(err => {
});
}
isIOS(): boolean {
const win = window as any;
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !win.MSStream;
@ -41,7 +49,6 @@ export class ConsentComponent implements OnInit {
startTestSuite(): void {
if (this.consentGiven && !this.isIosDevice) {
this.logger.initializeSession();
this.router.navigate(['/test-suite']);
}
}

View File

@ -2,7 +2,7 @@
<model-viewer
#modelViewer
class="absolute inset-0 w-full h-full"
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
src="models/untitled.glb"
ar
ar-modes="webxr"
ar-placement="ceiling"

View File

@ -2,7 +2,7 @@
<model-viewer
#modelViewer
class="absolute inset-0 w-full h-full"
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
src="models/untitled.glb"
ar
ar-modes="webxr"
ar-placement="ceiling"

View File

@ -1,6 +1,10 @@
<div class="w-full h-full relative">
<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">
<button slot="ar-button" id="ar-button-legibility" (click)="logInteraction($event)"

View File

@ -34,7 +34,8 @@ export class TextLegibilityAssessmentComponent implements AfterViewInit, OnDestr
public isArActive = false;
public isModelPlaced = false;
public isDescriptionVisible = true;
isModelLoading: boolean = true;
minSize = 2;
maxSize = 64;
currentSize = 16;
@ -147,4 +148,12 @@ export class TextLegibilityAssessmentComponent implements AfterViewInit, OnDestr
ngOnDestroy() {
this.metricsService.stopTracking();
}
onModelPreload() {
this.isModelLoading = true;
}
onModelLoad() {
this.isModelLoading = false;
}
}

View File

@ -2,26 +2,19 @@ import { Component, OnInit, OnDestroy } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Subject, takeUntil } from 'rxjs';
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 { ErgonomicAssessmentComponent } from './assessments/ergonomic-assessment/ergonomic-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 { DemographicsFeedbackComponent } from './assessments/demographics-feedback/demographics-feedback.component';
import { FirstInputAssessmentComponent } from './assessments/first-input-assesment/first-input-assesment.component';
@Component({
selector: 'app-test-suite',
standalone: true,
imports: [
CommonModule,
FirstInputAssessmentComponent,
SpatialStabilityAssessmentComponent,
ErgonomicAssessmentComponent,
TextLegibilityAssessmentComponent,
ScaleReferenceAssessmentComponent,
SpatialPositionAssessmentComponent,
DemographicsFeedbackComponent,
DemographicsFeedbackComponent
@ -38,7 +31,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
constructor(
private progressService: TestProgressService,
private logger: ArLoggerService
) {}
ngOnInit(): void {
@ -46,7 +38,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
.pipe(takeUntil(this.destroy$))
.subscribe(test => {
this.currentTest = test;
this.logger.setCurrentTest(test);
});
this.progressService.progress$
@ -55,13 +46,7 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
this.progress = progress;
});
this.logger.status$
.pipe(takeUntil(this.destroy$))
.subscribe(status => {
});
this.totalTests = this.progressService.getTotalTests();
this.logger.updateStatus('Test suite initialized - Assessment 1 ready');
}
ngOnDestroy(): void {
@ -78,7 +63,6 @@ export class TestSuiteComponent implements OnInit, OnDestroy {
}
forceNextTest(): void {
this.logger.updateStatus(`Forcefully skipped to next test from test ${this.currentTest}.`);
this.progressService.nextTest();
}
}

File diff suppressed because it is too large Load Diff