Loading editor/html/index.html +51 −60 Changes for editor/html/index.html: 51 added lines, 60 removed lines. Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ <button id="btn-new" data-i18n-title="I18N_TITLE_NEW_TEMPLATE">📄 <span data-i18n="I18N_NEW">Neu</span></button> <button id="btn-save" data-i18n-title="I18N_TITLE_SAVE_TO_DB">💾 <span data-i18n="I18N_SAVE">Speichern</span></button> <button id="btn-save-as" data-i18n-title="I18N_TITLE_SAVE_AS_TO_DB">💾 <span data-i18n="I18N_SAVE_AS">Speichern unter</span></button> <button id="btn-open" data-i18n-title="I18N_TEMPLATES">📂 <span data-i18n="I18N_TEMPLATES">Öffnen</span></button> <button id="btn-open" data-i18n-title="I18N_PROJECTS_TEMPLATES_TITLE" title="Projekte & Vorlagen">📂 <span data-i18n="I18N_PROJECTS">Projekte</span></button> <button id="btn-template-wizard" title="CSV Vorlagen-Wizard">🧪 <span>CSV-Wizard</span></button> </div> <div class="toolbar-group"> Loading @@ -45,7 +45,6 @@ <button id="btn-export-xml" data-i18n-title="I18N_TITLE_EXPORT_XML">⬆ <span data-i18n="I18N_EXPORT_XML">Export XML</span></button> <button id="btn-import-html" data-i18n-title="I18N_IMPORT_HTML">⬇ <span data-i18n="I18N_IMPORT_HTML">Import HTML</span></button> <button id="btn-export-html" data-i18n-title="I18N_EXPORT_HTML">⬆ <span data-i18n="I18N_EXPORT_HTML">Export HTML</span></button> <button id="btn-conn-manager" data-i18n-title="I18N_PROJECTS">🔗 <span data-i18n="I18N_PROJECTS">Projekte</span></button> <button id="btn-survey-manager" title="Umfragen verwalten">📋 <span>Umfragen</span></button> </div> <div class="toolbar-group"> Loading Loading @@ -126,9 +125,57 @@ </div> <!-- Dialogs --> <dialog id="open-dialog"> <h3 data-i18n="I18N_TEMPLATES">Dokument öffnen</h3> <!-- Merged Projects + Templates modal: the sidebar picks a project (which auto- connects and filters the template list); the content area shows that project's templates plus a collapsible settings panel for the project's own connection details (name/group/url/ssl). "Alle Projekte" shows every template unfiltered. --> <dialog id="open-dialog" class="settings-dialog"> <div class="set-modal"> <div class="set-sidebar"> <h3 data-i18n="I18N_PROJECTS">Projekte</h3> <div id="conn-list" class="conn-list"></div> <button id="btn-conn-add" class="set-save-btn" style="margin-top:0.5em;width:100%">+ <span data-i18n="I18N_ADD">Hinzufügen</span></button> </div> <div class="set-content"> <div style="display:flex;align-items:center;gap:0.5em;margin-bottom:0.6em"> <h4 id="open-project-title" style="flex:1;margin:0" data-i18n="I18N_ALL_PROJECTS">Alle Projekte</h4> <span id="open-project-status" style="font-size:0.85rem"></span> </div> <div id="doc-list"></div> <details id="conn-form-details" style="display:none;margin-top:1em"> <summary>⚙ <span data-i18n="I18N_PROJECT_SETTINGS">Projekt-Einstellungen</span></summary> <div id="conn-form" style="margin-top:0.6em"> <input type="hidden" id="conn-edit-id" value=""> <div class="set-field"> <label data-i18n="I18N_CONN_GROUP">Gruppe</label> <input type="text" id="conn-group" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_NAME">Name</label> <input type="text" id="conn-name" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_URL">URL</label> <input type="text" id="conn-url" placeholder="https://..."> </div> <div class="set-field"> <label style="display:flex;align-items:center;gap:0.3em"> <input type="checkbox" id="conn-ignore-ssl"> <span data-i18n="I18N_IGNORE_SSL">SSL ignorieren</span> </label> </div> <div class="set-field" style="display:flex;gap:0.5em;flex-wrap:wrap"> <button id="btn-conn-save" class="set-save-btn" data-i18n="save">Speichern</button> <button id="btn-conn-delete" class="set-save-btn" style="background:#c00;display:none" data-i18n="I18N_DELETE">Löschen</button> <button id="btn-conn-connect" class="set-save-btn" style="display:none" data-i18n="I18N_CONNECT">Verbinden</button> </div> <span id="conn-status" class="set-status"></span> </div> </details> </div> </div> <div class="dialog-actions"> <button id="btn-open-cancel" data-i18n="I18N_CANCEL">Abbrechen</button> </div> Loading Loading @@ -256,62 +303,6 @@ </div> </dialog> <dialog id="connection-manager-dialog" class="settings-dialog"> <div class="set-modal"> <div class="set-sidebar"> <h3 data-i18n="I18N_PROJECTS">Projekte</h3> <div id="conn-list" class="conn-list"></div> <button id="btn-conn-add" class="set-save-btn" style="margin-top:0.5em;width:100%">+ <span data-i18n="I18N_ADD">Hinzufügen</span></button> </div> <div class="set-content"> <div id="conn-form" style="display:none"> <h4 id="conn-form-title" data-i18n="I18N_PROJECT">Projekt</h4> <input type="hidden" id="conn-edit-id" value=""> <div class="set-field"> <label data-i18n="I18N_CONN_GROUP">Gruppe</label> <input type="text" id="conn-group" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_NAME">Name</label> <input type="text" id="conn-name" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_URL">URL</label> <input type="text" id="conn-url" placeholder="https://..."> </div> <div class="set-field"> <label style="display:flex;align-items:center;gap:0.3em"> <input type="checkbox" id="conn-ignore-ssl"> <span data-i18n="I18N_IGNORE_SSL">SSL ignorieren</span> </label> </div> <div class="set-field" style="display:flex;gap:0.5em;flex-wrap:wrap"> <button id="btn-conn-save" class="set-save-btn" data-i18n="save">Speichern</button> <button id="btn-conn-delete" class="set-save-btn" style="background:#c00" data-i18n="I18N_DELETE">Löschen</button> </div> <hr style="border-color:var(--border);margin:1em 0"> <!-- Connect section --> <div class="set-field"> <button id="btn-conn-connect" class="set-save-btn" data-i18n="I18N_CONNECT">Verbinden</button> </div> <div id="conn-publish-section" style="display:none"> </div> <span id="conn-status" class="set-status"></span> </div> <div id="conn-placeholder"> <p class="hint" data-i18n="I18N_SELECT_PROJECT">Projekt auswählen oder neues hinzufügen.</p> </div> </div> </div> <div class="dialog-actions"> <button id="btn-conn-manager-close" data-i18n="Close">Schließen</button> </div> </dialog> <!-- Publish Dialog --> <dialog id="publish-dialog"> <h3 data-i18n="I18N_PUBLISH">Veröffentlichen</h3> Loading editor/html/js/editor.js +120 −100 File changed.Preview size limit exceeded, changes collapsed. Show changes src/translations.h +8 −0 Changes for src/translations.h: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -401,6 +401,10 @@ namespace blogi { {"I18N_ALL_PROJECTS", "Alle Projekte"}, {"I18N_PROJECT_MANAGER_HINT","Projekte werden im Projekt-Manager verwaltet."}, {"I18N_OPEN_PROJECT_MANAGER","Projekt-Manager öffnen"}, {"I18N_PROJECTS_TEMPLATES_TITLE", "Projekte & Vorlagen"}, {"I18N_PROJECT_SETTINGS", "Projekt-Einstellungen"}, {"I18N_NEW_PROJECT", "Neues Projekt"}, {"I18N_SAVE_PROJECT_FIRST", "Speichere das Projekt, um hier Vorlagen zu sehen."}, {"I18N_ADD", "Hinzufügen"}, {"I18N_DELETE", "Löschen"}, {"I18N_FIELDS_REQUIRED", "Name und URL sind erforderlich"}, Loading Loading @@ -873,6 +877,10 @@ namespace blogi { {"I18N_ALL_PROJECTS", "All projects"}, {"I18N_PROJECT_MANAGER_HINT","Projects are managed in the Project Manager."}, {"I18N_OPEN_PROJECT_MANAGER","Open Project Manager"}, {"I18N_PROJECTS_TEMPLATES_TITLE", "Projects & Templates"}, {"I18N_PROJECT_SETTINGS", "Project settings"}, {"I18N_NEW_PROJECT", "New project"}, {"I18N_SAVE_PROJECT_FIRST", "Save the project first to see its templates here."}, {"I18N_ADD", "Add"}, {"I18N_DELETE", "Delete"}, {"I18N_FIELDS_REQUIRED", "Name and URL are required"}, Loading Loading
editor/html/index.html +51 −60 Changes for editor/html/index.html: 51 added lines, 60 removed lines. Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ <button id="btn-new" data-i18n-title="I18N_TITLE_NEW_TEMPLATE">📄 <span data-i18n="I18N_NEW">Neu</span></button> <button id="btn-save" data-i18n-title="I18N_TITLE_SAVE_TO_DB">💾 <span data-i18n="I18N_SAVE">Speichern</span></button> <button id="btn-save-as" data-i18n-title="I18N_TITLE_SAVE_AS_TO_DB">💾 <span data-i18n="I18N_SAVE_AS">Speichern unter</span></button> <button id="btn-open" data-i18n-title="I18N_TEMPLATES">📂 <span data-i18n="I18N_TEMPLATES">Öffnen</span></button> <button id="btn-open" data-i18n-title="I18N_PROJECTS_TEMPLATES_TITLE" title="Projekte & Vorlagen">📂 <span data-i18n="I18N_PROJECTS">Projekte</span></button> <button id="btn-template-wizard" title="CSV Vorlagen-Wizard">🧪 <span>CSV-Wizard</span></button> </div> <div class="toolbar-group"> Loading @@ -45,7 +45,6 @@ <button id="btn-export-xml" data-i18n-title="I18N_TITLE_EXPORT_XML">⬆ <span data-i18n="I18N_EXPORT_XML">Export XML</span></button> <button id="btn-import-html" data-i18n-title="I18N_IMPORT_HTML">⬇ <span data-i18n="I18N_IMPORT_HTML">Import HTML</span></button> <button id="btn-export-html" data-i18n-title="I18N_EXPORT_HTML">⬆ <span data-i18n="I18N_EXPORT_HTML">Export HTML</span></button> <button id="btn-conn-manager" data-i18n-title="I18N_PROJECTS">🔗 <span data-i18n="I18N_PROJECTS">Projekte</span></button> <button id="btn-survey-manager" title="Umfragen verwalten">📋 <span>Umfragen</span></button> </div> <div class="toolbar-group"> Loading Loading @@ -126,9 +125,57 @@ </div> <!-- Dialogs --> <dialog id="open-dialog"> <h3 data-i18n="I18N_TEMPLATES">Dokument öffnen</h3> <!-- Merged Projects + Templates modal: the sidebar picks a project (which auto- connects and filters the template list); the content area shows that project's templates plus a collapsible settings panel for the project's own connection details (name/group/url/ssl). "Alle Projekte" shows every template unfiltered. --> <dialog id="open-dialog" class="settings-dialog"> <div class="set-modal"> <div class="set-sidebar"> <h3 data-i18n="I18N_PROJECTS">Projekte</h3> <div id="conn-list" class="conn-list"></div> <button id="btn-conn-add" class="set-save-btn" style="margin-top:0.5em;width:100%">+ <span data-i18n="I18N_ADD">Hinzufügen</span></button> </div> <div class="set-content"> <div style="display:flex;align-items:center;gap:0.5em;margin-bottom:0.6em"> <h4 id="open-project-title" style="flex:1;margin:0" data-i18n="I18N_ALL_PROJECTS">Alle Projekte</h4> <span id="open-project-status" style="font-size:0.85rem"></span> </div> <div id="doc-list"></div> <details id="conn-form-details" style="display:none;margin-top:1em"> <summary>⚙ <span data-i18n="I18N_PROJECT_SETTINGS">Projekt-Einstellungen</span></summary> <div id="conn-form" style="margin-top:0.6em"> <input type="hidden" id="conn-edit-id" value=""> <div class="set-field"> <label data-i18n="I18N_CONN_GROUP">Gruppe</label> <input type="text" id="conn-group" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_NAME">Name</label> <input type="text" id="conn-name" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_URL">URL</label> <input type="text" id="conn-url" placeholder="https://..."> </div> <div class="set-field"> <label style="display:flex;align-items:center;gap:0.3em"> <input type="checkbox" id="conn-ignore-ssl"> <span data-i18n="I18N_IGNORE_SSL">SSL ignorieren</span> </label> </div> <div class="set-field" style="display:flex;gap:0.5em;flex-wrap:wrap"> <button id="btn-conn-save" class="set-save-btn" data-i18n="save">Speichern</button> <button id="btn-conn-delete" class="set-save-btn" style="background:#c00;display:none" data-i18n="I18N_DELETE">Löschen</button> <button id="btn-conn-connect" class="set-save-btn" style="display:none" data-i18n="I18N_CONNECT">Verbinden</button> </div> <span id="conn-status" class="set-status"></span> </div> </details> </div> </div> <div class="dialog-actions"> <button id="btn-open-cancel" data-i18n="I18N_CANCEL">Abbrechen</button> </div> Loading Loading @@ -256,62 +303,6 @@ </div> </dialog> <dialog id="connection-manager-dialog" class="settings-dialog"> <div class="set-modal"> <div class="set-sidebar"> <h3 data-i18n="I18N_PROJECTS">Projekte</h3> <div id="conn-list" class="conn-list"></div> <button id="btn-conn-add" class="set-save-btn" style="margin-top:0.5em;width:100%">+ <span data-i18n="I18N_ADD">Hinzufügen</span></button> </div> <div class="set-content"> <div id="conn-form" style="display:none"> <h4 id="conn-form-title" data-i18n="I18N_PROJECT">Projekt</h4> <input type="hidden" id="conn-edit-id" value=""> <div class="set-field"> <label data-i18n="I18N_CONN_GROUP">Gruppe</label> <input type="text" id="conn-group" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_NAME">Name</label> <input type="text" id="conn-name" placeholder=""> </div> <div class="set-field"> <label data-i18n="I18N_BLOG_URL">URL</label> <input type="text" id="conn-url" placeholder="https://..."> </div> <div class="set-field"> <label style="display:flex;align-items:center;gap:0.3em"> <input type="checkbox" id="conn-ignore-ssl"> <span data-i18n="I18N_IGNORE_SSL">SSL ignorieren</span> </label> </div> <div class="set-field" style="display:flex;gap:0.5em;flex-wrap:wrap"> <button id="btn-conn-save" class="set-save-btn" data-i18n="save">Speichern</button> <button id="btn-conn-delete" class="set-save-btn" style="background:#c00" data-i18n="I18N_DELETE">Löschen</button> </div> <hr style="border-color:var(--border);margin:1em 0"> <!-- Connect section --> <div class="set-field"> <button id="btn-conn-connect" class="set-save-btn" data-i18n="I18N_CONNECT">Verbinden</button> </div> <div id="conn-publish-section" style="display:none"> </div> <span id="conn-status" class="set-status"></span> </div> <div id="conn-placeholder"> <p class="hint" data-i18n="I18N_SELECT_PROJECT">Projekt auswählen oder neues hinzufügen.</p> </div> </div> </div> <div class="dialog-actions"> <button id="btn-conn-manager-close" data-i18n="Close">Schließen</button> </div> </dialog> <!-- Publish Dialog --> <dialog id="publish-dialog"> <h3 data-i18n="I18N_PUBLISH">Veröffentlichen</h3> Loading
editor/html/js/editor.js +120 −100 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/translations.h +8 −0 Changes for src/translations.h: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -401,6 +401,10 @@ namespace blogi { {"I18N_ALL_PROJECTS", "Alle Projekte"}, {"I18N_PROJECT_MANAGER_HINT","Projekte werden im Projekt-Manager verwaltet."}, {"I18N_OPEN_PROJECT_MANAGER","Projekt-Manager öffnen"}, {"I18N_PROJECTS_TEMPLATES_TITLE", "Projekte & Vorlagen"}, {"I18N_PROJECT_SETTINGS", "Projekt-Einstellungen"}, {"I18N_NEW_PROJECT", "Neues Projekt"}, {"I18N_SAVE_PROJECT_FIRST", "Speichere das Projekt, um hier Vorlagen zu sehen."}, {"I18N_ADD", "Hinzufügen"}, {"I18N_DELETE", "Löschen"}, {"I18N_FIELDS_REQUIRED", "Name und URL sind erforderlich"}, Loading Loading @@ -873,6 +877,10 @@ namespace blogi { {"I18N_ALL_PROJECTS", "All projects"}, {"I18N_PROJECT_MANAGER_HINT","Projects are managed in the Project Manager."}, {"I18N_OPEN_PROJECT_MANAGER","Open Project Manager"}, {"I18N_PROJECTS_TEMPLATES_TITLE", "Projects & Templates"}, {"I18N_PROJECT_SETTINGS", "Project settings"}, {"I18N_NEW_PROJECT", "New project"}, {"I18N_SAVE_PROJECT_FIRST", "Save the project first to see its templates here."}, {"I18N_ADD", "Add"}, {"I18N_DELETE", "Delete"}, {"I18N_FIELDS_REQUIRED", "Name and URL are required"}, Loading