Luca448 commited on
Commit
0f41e17
·
1 Parent(s): 31a6478

UI: Add native inline back buttons to subviews (Lernen, Scan, IServ) instead of floating pill

Browse files
index.html CHANGED
@@ -51,7 +51,7 @@
51
  </head>
52
  <body class="dark-theme in-chat-view">
53
 
54
- <div id="live-version-badge" style="position: fixed; top: 50px; left: 50%; transform: translateX(-50%); font-size: 10px; color: var(--text-secondary); opacity: 0.6; z-index: 99999; pointer-events: none; font-weight: 500; font-family: monospace; letter-spacing: 1px; background: rgba(0,0,0,0.2); padding: 2px 8px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.05);">BUILD 1.2.2</div>
55
 
56
  <!-- SVG Filters for Liquid Glass Refraction -->
57
  <svg width="0" height="0" style="position: absolute; pointer-events: none;">
 
51
  </head>
52
  <body class="dark-theme in-chat-view">
53
 
54
+ <div id="live-version-badge" style="position: fixed; top: 50px; left: 50%; transform: translateX(-50%); font-size: 10px; color: var(--text-secondary); opacity: 0.6; z-index: 99999; pointer-events: none; font-weight: 500; font-family: monospace; letter-spacing: 1px; background: rgba(0,0,0,0.2); padding: 2px 8px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.05);">BUILD 1.2.3</div>
55
 
56
  <!-- SVG Filters for Liquid Glass Refraction -->
57
  <svg width="0" height="0" style="position: absolute; pointer-events: none;">
src/app.js CHANGED
@@ -465,29 +465,6 @@ const initApp = async () => {
465
  }
466
  }
467
 
468
- // Add back button for sub-views
469
- if (isSubView) {
470
- const backBtn = document.createElement('button');
471
- backBtn.innerHTML = '<svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none"><polyline points="15 18 9 12 15 6"></polyline></svg> Zurück zum Hub';
472
- backBtn.style.position = 'fixed';
473
- backBtn.style.top = 'env(safe-area-inset-top, 20px)';
474
- backBtn.style.left = '20px';
475
- backBtn.style.zIndex = '999999';
476
- backBtn.style.display = 'flex';
477
- backBtn.style.alignItems = 'center';
478
- backBtn.style.gap = '4px';
479
- backBtn.style.padding = '8px 16px';
480
- backBtn.style.background = 'rgba(0,0,0,0.5)';
481
- backBtn.style.color = '#fff';
482
- backBtn.style.border = '1px solid rgba(255,255,255,0.2)';
483
- backBtn.style.borderRadius = '20px';
484
- backBtn.style.backdropFilter = 'blur(10px)';
485
- backBtn.style.fontWeight = '600';
486
- backBtn.style.boxShadow = '0 4px 12px rgba(0,0,0,0.5)';
487
- backBtn.onclick = () => window.openView('Hub');
488
- routerView.appendChild(backBtn);
489
- }
490
-
491
  routerView.classList.remove('view-exit-anim');
492
  routerView.classList.add('view-enter-anim');
493
  };
 
465
  }
466
  }
467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
  routerView.classList.remove('view-exit-anim');
469
  routerView.classList.add('view-enter-anim');
470
  };
src/views/iserv/iserv-view.js CHANGED
@@ -175,7 +175,10 @@ export class IServView {
175
  renderLogin() {
176
  this.container.innerHTML = `
177
  <div class="iserv-container">
178
- <div class="iserv-header">
 
 
 
179
  <h1>IServ Anbindung</h1>
180
  </div>
181
  <div class="iserv-login-card">
@@ -305,8 +308,13 @@ export class IServView {
305
  this.container.innerHTML = `
306
  <div class="iserv-container">
307
  ${!this.isLoading ? `
308
- <div class="iserv-header">
309
- <h1>Deine Aufgaben</h1>
 
 
 
 
 
310
  <button class="icon-btn" id="iserv-logout-btn" title="Abmelden" style="width: 40px; height: 40px; background: rgba(255,255,255,0.05); color: var(--text-primary); border-radius: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center;">
311
  ${getIconSvg('log-out')}
312
  </button>
 
175
  renderLogin() {
176
  this.container.innerHTML = `
177
  <div class="iserv-container">
178
+ <div class="iserv-header" style="display: flex; align-items: center; gap: 12px;">
179
+ <button onclick="window.openView('Hub')" class="icon-btn" style="background: transparent; padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--text-secondary);">
180
+ <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
181
+ </button>
182
  <h1>IServ Anbindung</h1>
183
  </div>
184
  <div class="iserv-login-card">
 
308
  this.container.innerHTML = `
309
  <div class="iserv-container">
310
  ${!this.isLoading ? `
311
+ <div class="iserv-header" style="display: flex; justify-content: space-between; align-items: center;">
312
+ <div style="display: flex; align-items: center; gap: 12px;">
313
+ <button onclick="window.openView('Hub')" class="icon-btn" style="background: transparent; padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--text-secondary);">
314
+ <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
315
+ </button>
316
+ <h1 style="margin: 0;">Deine Aufgaben</h1>
317
+ </div>
318
  <button class="icon-btn" id="iserv-logout-btn" title="Abmelden" style="width: 40px; height: 40px; background: rgba(255,255,255,0.05); color: var(--text-primary); border-radius: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center;">
319
  ${getIconSvg('log-out')}
320
  </button>
src/views/learn/learn-view.js CHANGED
@@ -77,7 +77,12 @@ export class LearnView {
77
  this.container.innerHTML = `
78
  <div class="learn-view">
79
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
80
- <h2 style="margin: 0; font-size: 28px; color: var(--text-primary);">Lernen</h2>
 
 
 
 
 
81
  <button id="add-deck-btn" class="icon-btn gpu-accelerated" style="background: rgba(255,255,255,0.05); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.05); border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;">
82
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"/></svg>
83
  </button>
 
77
  this.container.innerHTML = `
78
  <div class="learn-view">
79
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
80
+ <div style="display: flex; align-items: center; gap: 12px;">
81
+ <button onclick="window.openView('Hub')" class="icon-btn" style="background: transparent; padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--text-secondary);">
82
+ <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
83
+ </button>
84
+ <h2 style="margin: 0; font-size: 28px; color: var(--text-primary);">Lernen</h2>
85
+ </div>
86
  <button id="add-deck-btn" class="icon-btn gpu-accelerated" style="background: rgba(255,255,255,0.05); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.05); border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;">
87
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"/></svg>
88
  </button>
src/views/scan/scan-view.js CHANGED
@@ -36,9 +36,13 @@ export class ScanView {
36
  <div style="padding: 24px; max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; height: 100%; box-sizing: border-box; position: relative;">
37
 
38
  <!-- Header -->
39
- <div style="position: relative; text-align: center; margin-bottom: 16px;">
40
-
41
- <h2 style="font-size: 24px; font-weight: 600; margin-bottom: 8px;">Arbeitsblatt Scan</h2>
 
 
 
 
42
  <p style="color: var(--text-secondary); font-size: 14px;">Mache ein Foto deines leeren Arbeitsblattes. Die KI löst die Aufgaben und füllt es in Handschrift für dich aus.</p>
43
  </div>
44
 
 
36
  <div style="padding: 24px; max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; height: 100%; box-sizing: border-box; position: relative;">
37
 
38
  <!-- Header -->
39
+ <div style="position: relative; margin-bottom: 16px;">
40
+ <div style="display: flex; align-items: center; gap: 12px; margin-bottom: 8px;">
41
+ <button onclick="window.openView('Hub')" class="icon-btn" style="background: transparent; padding: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: var(--text-secondary);">
42
+ <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
43
+ </button>
44
+ <h2 style="font-size: 24px; font-weight: 600; margin: 0;">Arbeitsblatt Scan</h2>
45
+ </div>
46
  <p style="color: var(--text-secondary); font-size: 14px;">Mache ein Foto deines leeren Arbeitsblattes. Die KI löst die Aufgaben und füllt es in Handschrift für dich aus.</p>
47
  </div>
48