diff --git a/index.html b/index.html index 73c79e9..e600f43 100755 --- a/index.html +++ b/index.html @@ -3,8 +3,15 @@ + + + + + + + Rapport diff --git a/package.json b/package.json index ab322df..2215ae2 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "rapport", "private": true, - "version": "0.8.2", + "version": "0.8.3", "type": "module", "scripts": { "dev": "vite", diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..e5ce41a Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest new file mode 100644 index 0000000..d7b6698 --- /dev/null +++ b/public/manifest.webmanifest @@ -0,0 +1,27 @@ +{ + "name": "Rapport", + "short_name": "Rapport", + "description": "Studio-Management für Architekturbüros", + "start_url": "/", + "scope": "/", + "display": "standalone", + "orientation": "portrait", + "background_color": "#ebe7e1", + "theme_color": "#1a1a18", + "lang": "de-CH", + "categories": ["business", "productivity"], + "icons": [ + { + "src": "/pwa-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/pwa-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/public/pwa-192.png b/public/pwa-192.png new file mode 100644 index 0000000..deb0f87 Binary files /dev/null and b/public/pwa-192.png differ diff --git a/public/pwa-512.png b/public/pwa-512.png new file mode 100644 index 0000000..d1756ce Binary files /dev/null and b/public/pwa-512.png differ diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 211947d..c733220 100755 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2880,7 +2880,7 @@ dependencies = [ [[package]] name = "rapport" -version = "0.8.1" +version = "0.8.2" dependencies = [ "log", "serde", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3995a61..2ee7d02 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapport" -version = "0.8.2" +version = "0.8.3" description = "Rapport — Studio-Management für Architekturbüros" authors = ["Karim Gabriele Varano "] license = "AGPL-3.0-or-later" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 509dbbe..7bc6fea 100755 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "productName": "RAPPORT PRE-RELEASE", - "version": "0.8.2", + "version": "0.8.3", "identifier": "com.karimgabrielevarano.rapport", "build": { "frontendDist": "../dist", diff --git a/src/App.jsx b/src/App.jsx index 3ffb752..b1b1abb 100755 --- a/src/App.jsx +++ b/src/App.jsx @@ -303,8 +303,8 @@ export default function App() { const [modal, setModal] = useState(null); const [printContent, setPrintContent] = useState(null); const [darkMode, setDarkMode] = useState(() => localStorage.getItem("rapport_dark") === "1"); - const [showChangelog, setShowChangelog] = useState(() => localStorage.getItem("rapport_changelog_seen") !== "0.8.2"); - const [changelogVersion, setChangelogVersion] = useState("0.8.2"); + const [showChangelog, setShowChangelog] = useState(() => localStorage.getItem("rapport_changelog_seen") !== "0.8.3"); + const [changelogVersion, setChangelogVersion] = useState("0.8.3"); const [showAbout, setShowAbout] = useState(false); const [navOpen, setNavOpen] = useState(false); const [expandedNav, setExpandedNav] = useState(new Set(["buchhaltung"])); @@ -518,7 +518,7 @@ export default function App() { ; } return <> - + ; } @@ -793,8 +793,8 @@ export default function App() {
- +
} @@ -859,6 +859,13 @@ export default function App() { {showChangelog && (() => { const CHANGELOGS = { + "0.8.3": { + items: [ + ["Desktop-App-Verhalten", "Kein Text mehr markierbar, kein Rechtsklick-Menü — die App verhält sich jetzt wie eine native Desktop-Applikation. Eingabefelder sind weiterhin voll benutzbar."], + ["PWA-Support", "Die Web-Version lässt sich auf dem Homebildschirm von iPhone/iPad und Android hinzufügen. Nach dem Hinzufügen öffnet sie sich vollbild ohne Browser-Chrome — mit eigenem App-Icon und Name."], + ["Testmodus klar gekennzeichnet", "Wer Rapport ohne Server ausprobiert, sieht jetzt explizit, dass es sich um einen Testmodus mit Einschränkungen handelt (5 MB Limit, kein Backup, kein Mehrbenutzer)."], + ], + }, "0.8.2": { items: [ ["Selbstheilung für hängende 0.8.0-Installationen", "Wer von 0.7 auf 0.8 geupdated hat und in den Cloud-Setup-Wizard geschoben wurde, kommt mit 0.8.2 automatisch zurück in seinen Lokal-Modus. Der Auto-Recovery-Code erkennt: Cloud-Modus gesetzt + lokale Daten vorhanden + keine Cloud-Anmeldung → Cloud-Konfiguration wird zurückgenommen, alle Daten bleiben erhalten."], @@ -948,7 +955,7 @@ export default function App() { }, }; const versions = Object.keys(CHANGELOGS); - const current = CHANGELOGS[changelogVersion] || CHANGELOGS["0.8.2"]; + const current = CHANGELOGS[changelogVersion] || CHANGELOGS["0.8.3"]; return (
@@ -977,7 +984,7 @@ export default function App() { ))}
-
@@ -992,7 +999,7 @@ export default function App() {
ÜBER RAPPORT
Rapport
-
Alpha 0.8.2 · Studio-Management für Architekturbüros
+
Alpha 0.8.3 · Studio-Management für Architekturbüros
LIZENZ
diff --git a/src/index.css b/src/index.css index 3cb100e..d7dfb38 100755 --- a/src/index.css +++ b/src/index.css @@ -1,3 +1,7 @@ *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; padding: 0; height: 100%; } #root { height: 100%; } + +/* Desktop-App-Verhalten: kein Textmarkieren, kein Drag */ +* { user-select: none; -webkit-user-drag: none; } +input, textarea, [contenteditable] { user-select: text; } diff --git a/src/main.jsx b/src/main.jsx index b9a1a6d..b1fbac1 100755 --- a/src/main.jsx +++ b/src/main.jsx @@ -3,6 +3,8 @@ import { createRoot } from 'react-dom/client' import './index.css' import App from './App.jsx' +document.addEventListener('contextmenu', e => e.preventDefault()) + createRoot(document.getElementById('root')).render( diff --git a/src/views/BackendChoice.jsx b/src/views/BackendChoice.jsx index 407c5da..2c0ac07 100644 --- a/src/views/BackendChoice.jsx +++ b/src/views/BackendChoice.jsx @@ -82,10 +82,13 @@ export default function BackendChoice() {