diff --git a/admin/index.php b/admin/index.php index a7fa9a0..7f743d6 100644 --- a/admin/index.php +++ b/admin/index.php @@ -6,6 +6,7 @@ ini_set('log_errors', 1); require_once __DIR__ . '/../config.php'; require_once __DIR__ . '/../includes/Database.php'; require_once __DIR__ . '/../includes/Auth.php'; +require_once __DIR__ . '/../includes/Ui.php'; require_once __DIR__ . '/../includes/UniFiController.php'; require_once __DIR__ . '/../includes/I18n.php'; @@ -90,7 +91,7 @@ $currentPage = 'dashboard';
Gültig bis: {EXPIRY_DATE} {EXPIRY_TIME}
Site: {SITE_NAME}
Geräte: {MAX_USES}
Kostenlosen API Key: tiny.cloud/signup
+Der Editor (TinyMCE, GPL-Variante) wird lokal aus assets/vendor/ geladen – es werden keine externen Dienste aufgerufen.
{VOUCHER_CODE}{EXPIRY_DATE}{EXPIRY_TIME}{SITE_NAME}{MAX_USES}{APP_TITLE}{INSTRUCTIONS}| ');g.push(" |
Die Navigation beginnt beim ersten Benutzeroberflächenelement, welches hervorgehoben ist. Falls sich das erste Element im Pfad der Fußzeile befindet,\n' + + ' ist es unterstrichen.
\n' + + '\n' + + 'Um von einem Abschnitt der Benutzeroberfläche zum nächsten zu wechseln, drücken Sie TAB.
\n' + + '\n' + + 'Um von einem Abschnitt der Benutzeroberfläche zum vorherigen zu wechseln, drücken Sie UMSCHALT+TAB.
\n' + + '\n' + + 'Die Abschnitte der Benutzeroberfläche haben folgende TAB-Reihenfolge:
\n' + + '\n' + + 'Falls ein Abschnitt der Benutzeroberflächen nicht vorhanden ist, wird er übersprungen.
\n' + + '\n' + + 'Wenn in der Fußzeile die Tastaturnavigation fokussiert ist und keine Randleiste angezeigt wird, wechselt der Fokus durch Drücken von UMSCHALT+TAB\n' + + ' zur ersten Gruppe der Symbolleiste, nicht zur letzten.
\n' + + '\n' + + 'Um von einem Element der Benutzeroberfläche zum nächsten zu wechseln, drücken Sie die entsprechende Pfeiltaste.
\n' + + '\n' + + 'Die Pfeiltasten Links und Rechts
\n' + + '\n' + + 'Die Pfeiltasten Abwärts und Aufwärts
\n' + + '\n' + + 'Die Pfeiltasten rotieren innerhalb des fokussierten Abschnitts der Benutzeroberfläche.
\n' + + '\n' + + 'Um ein geöffnetes Menü, ein geöffnetes Untermenü oder ein geöffnetes Popupmenü zu schließen, drücken Sie die ESC-Taste.
\n' + + '\n' + + 'Wenn sich der aktuelle Fokus ganz oben in einem bestimmten Abschnitt der Benutzeroberfläche befindet, wird durch Drücken der ESC-Taste auch\n' + + ' die Tastaturnavigation beendet.
\n' + + '\n' + + 'Wenn das gewünschte Menüelement oder die gewünschte Symbolleistenschaltfläche hervorgehoben ist, drücken Sie Zurück, Eingabe\n' + + ' oder die Leertaste, um das Element auszuführen.
\n' + + '\n' + + 'In Dialogfeldern ohne Registerkarten ist beim Öffnen eines Dialogfelds die erste interaktive Komponente fokussiert.
\n' + + '\n' + + 'Navigieren Sie zwischen den interaktiven Komponenten eines Dialogfelds, indem Sie TAB oder UMSCHALT+TAB drücken.
\n' + + '\n' + + 'In Dialogfeldern mit Registerkarten ist beim Öffnen eines Dialogfelds die erste Schaltfläche eines Registerkartenmenüs fokussiert.
\n' + + '\n' + + 'Navigieren Sie zwischen den interaktiven Komponenten auf dieser Registerkarte des Dialogfelds, indem Sie TAB oder\n' + + ' UMSCHALT+TAB drücken.
\n' + + '\n' + + 'Wechseln Sie zu einer anderen Registerkarte des Dialogfelds, indem Sie den Fokus auf das Registerkartenmenü legen und dann die entsprechende Pfeiltaste\n' + + ' drücken, um durch die verfügbaren Registerkarten zu rotieren.
\n'); \ No newline at end of file diff --git a/assets/vendor/tinymce/plugins/help/js/i18n/keynav/en.js b/assets/vendor/tinymce/plugins/help/js/i18n/keynav/en.js new file mode 100644 index 0000000..c4a1faf --- /dev/null +++ b/assets/vendor/tinymce/plugins/help/js/i18n/keynav/en.js @@ -0,0 +1,90 @@ +tinymce.Resource.add('tinymce.html-i18n.help-keynav.en', +'Navigation will start at the first UI item, which will be highlighted, or underlined in the case of the first item in\n' + + ' the Footer element path.
\n' + + '\n' + + 'To move from one UI section to the next, press Tab.
\n' + + '\n' + + 'To move from one UI section to the previous, press Shift+Tab.
\n' + + '\n' + + 'The Tab order of these UI sections is:
\n' + + '\n' + + 'If a UI section is not present, it is skipped.
\n' + + '\n' + + 'If the footer has keyboard navigation focus, and there is no visible sidebar, pressing Shift+Tab\n' + + ' moves focus to the first toolbar group, not the last.
\n' + + '\n' + + 'To move from one UI element to the next, press the appropriate Arrow key.
\n' + + '\n' + + 'The Left and Right arrow keys
\n' + + '\n' + + 'The Down and Up arrow keys
\n' + + '\n' + + 'Arrow keys cycle within the focused UI section.
\n' + + '\n' + + 'To close an open menu, an open sub-menu, or an open pop-up menu, press the Esc key.
\n' + + '\n' + + 'If the current focus is at the ‘top’ of a particular UI section, pressing the Esc key also exits\n' + + ' keyboard navigation entirely.
\n' + + '\n' + + 'When the desired menu item or toolbar button is highlighted, press Return, Enter,\n' + + ' or the Space bar to execute the item.
\n' + + '\n' + + 'In non-tabbed dialogs, the first interactive component takes focus when the dialog opens.
\n' + + '\n' + + 'Navigate between interactive dialog components by pressing Tab or Shift+Tab.
\n' + + '\n' + + 'In tabbed dialogs, the first button in the tab menu takes focus when the dialog opens.
\n' + + '\n' + + 'Navigate between interactive components of this dialog tab by pressing Tab or\n' + + ' Shift+Tab.
\n' + + '\n' + + 'Switch to another dialog tab by giving the tab menu focus and then pressing the appropriate Arrow\n' + + ' key to cycle through the available tabs.
\n'); \ No newline at end of file diff --git a/assets/vendor/tinymce/plugins/help/plugin.min.js b/assets/vendor/tinymce/plugins/help/plugin.min.js new file mode 100644 index 0000000..6882fae --- /dev/null +++ b/assets/vendor/tinymce/plugins/help/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.8.3 (2024-02-08) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");let t=0;const n=e=>{const n=(new Date).getTime(),a=Math.floor(1e9*Math.random());return t++,e+"_"+a+t+String(n)},a=e=>t=>t.options.get(e),r=a("help_tabs"),o=a("forced_plugins"),i=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=a=e,(r=String).prototype.isPrototypeOf(n)||(null===(o=a.constructor)||void 0===o?void 0:o.name)===r.name)?"string":t;var n,a,r,o})(e));const s=(void 0,e=>undefined===e);const l=e=>"function"==typeof e,c=(!1,()=>false);class m{constructor(e,t){this.tag=e,this.value=t}static some(e){return new m(!0,e)}static none(){return m.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?m.some(e(this.value)):m.none()}bind(e){return this.tag?e(this.value):m.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:m.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?m.none():m.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}m.singletonNone=new m(!1);const u=Array.prototype.slice,p=Array.prototype.indexOf,y=(e,t)=>{const n=e.length,a=new Array(n);for(let r=0;r"+f.translate(["Plugins installed ({0}):",i])+"
"+f.translate("Premium plugins:")+"
"+f.translate(["You are using {0}",n])+"
",presets:"document"}]}})(),u={[o.name]:o,[s.name]:s,[l.name]:l,[c.name]:c,...t.get()};return m.from(r(e)).fold((()=>(e=>{const t=g(e),n=t.indexOf("versions");return-1!==n&&(t.splice(n,1),t.push("versions")),{tabs:e,names:t}})(u)),(e=>((e,t)=>{const a={},r=y(e,(e=>{var r;if(i(e))return v(t,e)&&(a[e]=t[e]),e;{const t=null!==(r=e.name)&&void 0!==r?r:n("tab-name");return a[t]=e,t}}));return{tabs:a,names:r}})(e,u)))})(e,t,a).then((({tabs:t,names:n})=>{const a={type:"tabpanel",tabs:(e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t