Update vor Umbau Service

This commit is contained in:
Stefan Hutter
2026-02-13 06:42:52 +01:00
parent 41588e8c92
commit 9e64ca707d
925 changed files with 1109250 additions and 584 deletions

View File

@@ -0,0 +1,32 @@
{
"tables": [
{
"key": "ProvDokuments",
"displayName": "ESS-Dokumente",
"sqlList": "SELECT ProvDokumentid as id, provDokumentID as Name FROM ProvDokuments order by erstelltam desc",
"sqlById": "SELECT JavaScriptObject as JsonData FROM ProvDokuments where provdokumentid=@id",
"idField": "Id",
"displayField": "ProvDokumentID",
"jsonField": "JsonData"
},
{
"key": "Ondoc_Versandstrasse_Paket",
"displayName": "Ondoc_Versandstrasse_Paket",
"sqlList": "SELECT ID, erstellt_am as Name from Ondoc_Versandstrasse_Paket order by Id desc",
"sqlById": "SELECT paket as JsonData from Ondoc_Versandstrasse_Paket where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
},
{
"key": "NLOGApiDoc",
"displayName": "APIDoc",
"sqlList": "SELECT ID, CreatedOn, GUID from edoka_journale.dbo.nlogapidoc where message='Input JSON' and isnull(div,'')<>'' order by Id desc",
"sqlById": "SELECT div as JsonData from edoka_journale.dbo.nlogapidoc where id= @id ",
"idField": "ID",
"displayField": "ID",
"jsonField": "JsonData"
}
]
}

View File

@@ -0,0 +1,212 @@
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html>
<html>
<head>
<title>JSON Editor → PDF Preview</title>
<script>
</script>
<!-- ACE
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/ace.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/mode-json.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.32.6/theme-tomorrow.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
-->
<script src="/Scripts/ace/ace.js"></script>
<script src="/Scripts/ace/mode-json.min.js"></script>
<script src="/Scripts/ace/theme-tomorrow.min.js"></script>
<script src="/Scripts/ace/worker-json.js"></script>
<script src="/Scripts/jquery.min.js"></script>
<script src="/Scripts/ace/ext-searchbox.js"></script>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
}
.toolbar {
padding: 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
}
.toolbar input {
width: 220px;
padding: 4px;
}
.toolbar button {
margin-left: 5px;
padding: 6px 10px;
}
.container {
display: flex;
height: calc(100vh - 60px);
}
.left, .right {
flex: 1;
padding: 10px;
box-sizing: border-box;
}
.left {
border-right: 1px solid #ccc;
}
#editor {
width: 100%;
height: 100%;
border: 1px solid #ccc;
}
#pdfFrame {
width: 100%;
height: 100%;
border: 1px solid #ccc;
background: #fafafa;
}
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
<p></p>
</div>
<div class="toolbar">
<label>Schlüssel:</label>
<input type="text" id="key" placeholder="provDokumentID" />
<button onclick="loadJson()">Laden</button>
<button onclick="saveJson()">Speichern</button>
<button onclick="generatePdf()">PDF generieren</button>
</div>
<div class="container">
<!-- LINKS: JSON -->
<div class="left">
<div id="editor">{}</div>
</div>
<!-- RECHTS: PDF -->
<table>
<tr>
<div class="right">
<iframe id="pdfFrame" title="PDF Vorschau"></iframe>
</div>
</tr>
</table>
</div>
<script>
const apiBase = "/api/json";
// ACE INIT
const editor = ace.edit("editor");
editor.setTheme("ace/theme/tomorrow");
editor.session.setMode("ace/mode/json");
editor.setShowPrintMargin(false);
editor.session.setTabSize(2);
editor.session.setUseSoftTabs(true);
const editor1 = ace.edit("editor");
editor1.setTheme("ace/theme/tomorrow");
editor1.session.setMode("ace/mode/json");
editor1.setShowPrintMargin(false);
editor1.session.setTabSize(2);
editor1.session.setUseSoftTabs(true);
// JSON LADEN
function loadJson() {
editor.setValue("", -1);
clearPdfPreview();
const key = $("#key").val();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
$.get(apiBase + "/load/" + encodeURIComponent(key))
.done(data => editor.setValue(data, -1))
.fail(() => alert("Kein Eintrag gefunden"));
}
// JSON SPEICHERN
function saveJson() {
const key = $("#key").val();
const json = editor.getValue();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
// try { JSON.parse(json); }
// catch { alert("Ungültiges JSON"); return; }
$.ajax({
url: apiBase + "/save",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ key: key, json: json }),
success: () => alert("Gespeichert")
});
}
// PDF GENERIEREN & EMBEDDED ANZEIGEN
function generatePdf() {
const key = $("#key").val();
if (!key) { alert("Bitte Schlüssel eingeben"); return; }
fetch(apiBase + "/generatepdf", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
key: key,
json: editor.getValue()
})
})
.then(r => {
if (!r.ok) throw new Error("PDF-Fehler");
return r.blob();
})
.then(blob => {
const url = URL.createObjectURL(blob);
document.getElementById("pdfFrame").src = url;
})
.catch(err => alert(err.message));
}
function clearPdfPreview() {
const frame = document.getElementById("pdfFrame");
// iframe leeren
frame.src = "";
// optional: alte Blob-URL freigeben
if (frame.dataset.blobUrl) {
URL.revokeObjectURL(frame.dataset.blobUrl);
frame.dataset.blobUrl = "";
}
}
</script>
</body>
</html>

View File

@@ -0,0 +1,143 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTable.aspx.cs" Inherits="WebApp.SelectTable" %>
<!DOCTYPE html>
<html>
<head runat="server">
<%--<title>Daten & JSON Editor</title>--%>
<script src="/Scripts/ace/ace.js"></script>
<script src="/Scripts/ace/mode-json.min.js"></script>
<script src="/Scripts/ace/theme-tomorrow.min.js"></script>
<script src="/Scripts/ace/worker-json.js"></script>
<script src="/Scripts/jquery.min.js"></script>
<script src="/Scripts/ace/ext-searchbox.js"></script>
<style>
html, body { margin:0; padding:0; height:100%; font-family:Arial; background:#f4f6f8; }
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
.layout { display:flex; height:calc(100% - 70px); } /* 70px für header */
.left {
width:45%;
padding:20px;
background:#fff;
border-right:1px solid #ddd;
overflow:auto;
}
.right {
width:55%;
padding:0;
height:100%;
display:flex;
flex-direction: column;
}
#editor {
flex:1;
width:100%;
}
select { width:100%; padding:8px; margin-bottom:12px; }
table { width:100%; border-collapse:collapse; font-size:14px; }
th, td { padding:8px; border-bottom:1px solid #e5e7eb; }
tr:hover { background:#f9fafb; }
.pager a, .pager span { padding:5px 9px; border:1px solid #ddd; border-radius:5px; margin-left:4px; text-decoration:none; font-size:13px; }
.pager span { background:#2563eb; color:#fff; border-color:#2563eb; }
a.open { color:#2563eb; cursor:pointer; text-decoration:none; }
a.open:hover { text-decoration:underline; }
</style>
</head>
<body>
<!-- TITEL -->
<div class="page-header">
<h1>OnDoc-Json-Viewer</h1>
<p>Tabellen auswählen, Datensätze ansehen und JSON anzeigen</p>
</div>
<!-- LAYOUT -->
<div class="layout">
<form runat="server" class="left">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<h2>Tabellen & Datensätze</h2>
<asp:DropDownList
ID="ddlTables"
runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="ddlTables_SelectedIndexChanged" />
<asp:GridView
ID="gvData"
runat="server"
AutoGenerateColumns="true"
AllowPaging="true"
PageSize="20"
PagerStyle-CssClass="pager"
OnPageIndexChanging="gvData_PageIndexChanging"
OnRowCreated="gvData_RowCreated"
OnRowDataBound="gvData_RowDataBound" />
</form>
<!-- ACE EDITOR außerhalb des Form-Tags -->
<div class="right">
<div id="editor"></div>
</div>
</div>
<script>
const editor = ace.edit("editor");
editor.setTheme("ace/theme/tomorrow");
editor.session.setMode("ace/mode/json");
editor.setShowPrintMargin(false);
editor.session.setTabSize(2);
editor.session.setUseSoftTabs(true);
//let editor;
//$(function () {
// editor = ace.edit("editor");
// editor.setTheme("ace/theme/tomorrow");
// editor.session.setMode("ace/mode/json");
// editor.setShowPrintMargin(false);
// editor.session.setTabSize(2);
// editor.session.setUseSoftTabs(true);
// editor.commands.addCommand({
// name: "find",
// bindKey: { win: "Ctrl-F", mac: "Command-F" },
// exec: function (ed) {
// ace.require("ace/ext/searchbox").Search(ed);
// }
// });
//});
function loadJson(tableKey, id) {
editor.setValue("// lade JSON ...", -1);
PageMethods.GetJson(
tableKey,
id,
function (result) {
editor.setValue(result, -1);
},
function (err) {
editor.setValue(JSON.stringify({ error: err.get_message() }, null, 2), -1);
}
);
}
</script>
</body>
</html>

View File

@@ -39,10 +39,20 @@
<add key="VSImagePath" value="E:\Software-Projekte\OnDoc\" />
<add key="Mailempfaenger" value="stefan.hutter@tkb.ch" />
<add key="GASSize" value="True" />
<add key="CLMVerantwortung" value="3793" />
<add key="CLMTeam" value="146" />
<add key="CLMZustaendig" value="3793" />
<add key="CLMUnterschriftlinks" value="0" />
<add key="CLMUnterschriftrechts" value="0" />
<add key="CLMKube" value="0" />
<add key="CLMSaveOnDoc" value="True" />
<add key="DecTestConnString" />
<add key="OwnToken" value="pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98=" />
</appSettings>
<connectionStrings>
<add name="EDOKAConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
<add name="JournalConnectionstring" connectionString="fPYJwxH9angA+JMQ9OUQ4hfBQZR9aohQseovi6H5GI0fPBr22eh34jHXesVUNDhwsPJJ0OmlpwxTCTVyjoY1Aw40d5tZuSeZO/1jKhPU/Yg+Ek2kXe/VFlTN0CxG/er1XxAtLOHL62GJMnpNryUkqIbKJqa46rB0JbLACg8WMdk7/0GmEn39Gi54EQMywlbZ2dCffgfko6mudawZ4vkzWcpH0QxSqBqu8sCtpZYSEl9VYnnX/SwJHVlgOuWgtcxt" />
<add name="DocTesterConnectionstring" connectionString="Po7oIigu4hOz6zXOpaSnrhveCQyfGgFeskvEQsvm3CEgxjJMEYYDEbnWlt9Qr9vGTkzqm5hvURTLA1hKVU++/ozcvT5qIVTpDLBTKd4AM/4YgN3+L9cx3mxMoWmv1JMjqxZVbR6GYiuSo1xuD05sl3IGoUenfugP6hBP/IC7MjUjisDUE6msFpWiraJr53gcfDvIrc2CUBTVUS+f94kewhlKxjtEohtCM71PN2zpoMiPyBIuXDyrYlYyokUOg6uV" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.8.1" />

View File

@@ -0,0 +1,113 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dt.aspx.cs" Inherits="OnDocAPI_NetFramework.dt" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>JSON Editor</title>
<script src="/Scripts/ace/ace.js"></script>
<script src="/Scripts/ace/mode-json.min.js"></script>
<script src="/Scripts/ace/theme-tomorrow.min.js"></script>
<script src="/Scripts/ace/worker-json.js"></script>
<script src="/Scripts/jquery.min.js"></script>
<script src="/Scripts/ace/ext-searchbox.js"></script>
<style>
html, body { height:100%; margin:0; font-family:Arial; }
.toolbar {
padding: 10px;
background: #f5f5f5;
border-bottom: 1px solid #ccc;
}
.content {
display:flex;
height:calc(100% - 50px);
}
#editor {
width:50%;
height:100%;
}
iframe {
width:50%;
border:none;
}
.page-header {
background-color: #2563eb;
color: #fff;
padding: 15px 30px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.page-header h1 {
margin:0;
font-size:1.8rem;
}
.page-header p {
margin:4px 0 0 0;
font-size:0.95rem;
color:#dbeafe;
}
</style>
</head>
<body>
<form runat="server">
<div class="page-header">
<h1>OnDoc-DocPreview</h1>
</div>
<!-- Toolbar -->
<div class="toolbar">
Schlüssel:
<asp:TextBox ID="txtKey" runat="server" />
<asp:Button ID="btnLoad" runat="server"
Text="Laden"
OnClick="btnLoad_Click" />
<asp:Button ID="btnSave" runat="server"
Text="Speichern"
OnClick="btnSave_Click" />
<asp:Button ID="btnPdf" runat="server"
Text="PDF erstellen"
OnClick="btnPdf_Click" />
</div>
<!-- HiddenField für JSON -->
<asp:HiddenField ID="hfJson" runat="server" />
<iframe id="pdfFrame" runat="server"></iframe>
</form>
<div class="content">
<div id="editor"></div>
</div>
<script>
var editor = ace.edit("editor");
editor.session.setMode("ace/mode/json");
//editor.setTheme("ace/theme/tomorrow");
//editor.session.setMode("ace/mode/json");
//editor.setShowPrintMargin(false);
//editor.session.setTabSize(2);
//editor.session.setUseSoftTabs(true);
// Sync HiddenField bei PostBack
document.forms[0].onsubmit = function () {
document.getElementById("<%= hfJson.ClientID %>").value =
editor.getValue();
};
// JSON vom Server laden
editor.setValue(document.getElementById("<%= hfJson.ClientID %>").value || "", -1);
</script>
</body>
</html>