aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/Views/editor/index.php
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-03-21 22:36:11 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-03-21 22:36:11 +0100
commitd63e3c91a97d77b202e280ab0fa007dfbe1baa46 (patch)
treecd3533bfb947ea753d91f71a75406644a73d678d /src/app/Views/editor/index.php
parentf60a390f5c51039fd1efc1df9a6a7f3864ce0062 (diff)
downloadcamagru-d63e3c91a97d77b202e280ab0fa007dfbe1baa46.tar.gz
camagru-d63e3c91a97d77b202e280ab0fa007dfbe1baa46.zip
Add editor with webcam/upload capture, overlay compositing, and gallery feed
Diffstat (limited to 'src/app/Views/editor/index.php')
-rw-r--r--src/app/Views/editor/index.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/app/Views/editor/index.php b/src/app/Views/editor/index.php
new file mode 100644
index 0000000..624002a
--- /dev/null
+++ b/src/app/Views/editor/index.php
@@ -0,0 +1,49 @@
+<?php // Editor page: capture or upload an image, pick an overlay, preview, and save as a post.?>
+<div class="editor-page">
+ <h1>Create a post</h1>
+ <?php include __DIR__ . '/../partials/flash.php'; ?>
+ <input type="hidden" id="csrf-token" value="<?= htmlspecialchars(\App\Csrf::generate()) ?>">
+
+ <div class="editor-layout">
+ <div class="editor-source">
+ <div class="source-tabs">
+ <button id="tab-webcam" class="tab active">Webcam</button>
+ <button id="tab-upload" class="tab">Upload</button>
+ </div>
+
+ <div id="webcam-panel">
+ <video id="webcam-video" autoplay playsinline></video>
+ <button id="btn-capture" class="btn">Take photo</button>
+ </div>
+
+ <div id="upload-panel" hidden>
+ <input type="file" id="file-input" accept="image/jpeg,image/png">
+ </div>
+ </div>
+
+ <div class="editor-preview">
+ <canvas id="preview-canvas" width="640" height="640"></canvas>
+
+ <div class="overlay-controls">
+ <label for="overlay-scale">Overlay size</label>
+ <input type="range" id="overlay-scale" min="10" max="200" value="100">
+ </div>
+
+ <h2>Overlays</h2>
+ <?php if (empty($overlays)): ?>
+ <p class="hint">No overlays available.</p>
+ <?php else: ?>
+ <div class="overlay-grid">
+ <?php foreach ($overlays as $overlay): ?>
+ <img src="<?= htmlspecialchars($overlay) ?>"
+ class="overlay-thumb"
+ alt="overlay"
+ data-filename="<?= htmlspecialchars(basename($overlay)) ?>">
+ <?php endforeach; ?>
+ </div>
+ <?php endif; ?>
+
+ <button id="btn-save" class="btn" disabled>Save post</button>
+ </div>
+ </div>
+</div>