update 20260308
This commit is contained in:
Binary file not shown.
@@ -1 +1 @@
|
||||
8b3fd221992aab54f67ae9f4dacf0686730bb97624d545a07f06e1dc6380764a
|
||||
80b3e6cb482cb8888f46ccf8d3d82e0f1794783219cfa5781ef01ad64092fb28
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,14 +1,5 @@
|
||||
{
|
||||
"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",
|
||||
@@ -16,7 +7,10 @@
|
||||
"sqlById": "SELECT paket as JsonData from Ondoc_Versandstrasse_Paket where id= @id ",
|
||||
"idField": "ID",
|
||||
"displayField": "ID",
|
||||
"jsonField": "JsonData"
|
||||
"jsonField": "JsonData",
|
||||
"Buttons": "Öffnen",
|
||||
"AnzeigeDokument": "",
|
||||
"FilterColumns": ""
|
||||
},
|
||||
{
|
||||
"key": "NLOGApiDoc",
|
||||
@@ -25,7 +19,35 @@
|
||||
"sqlById": "SELECT div as JsonData from edoka_journale.dbo.nlogapidoc where id= @id ",
|
||||
"idField": "ID",
|
||||
"displayField": "ID",
|
||||
"jsonField": "JsonData"
|
||||
"jsonField": "JsonData",
|
||||
"Buttons": "Öffnen",
|
||||
"AnzeigeDokument": "",
|
||||
"FilterColumns": "GUID"
|
||||
|
||||
},
|
||||
{
|
||||
"key": "CLMDokumente",
|
||||
"displayName": "CLM-Dokumente",
|
||||
"sqlList": "SELECT ID, clmdokumentid as CLM_ID, GUID, Erstellt_Am, Aktiv, Archivstatus, Archiviert from ondoc_clm_dokumente [FILTER] order by Id desc",
|
||||
"sqlById": "SELECT jsondata as JsonData from ondoc_clm_dokumente where id= @id ",
|
||||
"idField": "ID",
|
||||
"displayField": "ID",
|
||||
"jsonField": "JsonData",
|
||||
"Buttons": "Öffnen;Anzeigen",
|
||||
"AnzeigeDokument": "SELECT dbo.BinaryToBase64(dokument) FROM dbo.OnDoc_CLM_Dokumente INNER JOIN dbo.Doks ON dbo.OnDoc_CLM_Dokumente.dokumentid = dbo.Doks.DokumentID where dbo.ondoc_clm_dokumente.id=@id",
|
||||
"FilterColumns": "clmdokumentid;archivstatus"
|
||||
},
|
||||
{
|
||||
"key": "CLMJournal",
|
||||
"displayName": "CLM-Journal",
|
||||
"sqlList": "SELECT ID, clmdokumentid as CLM_ID, Dokumentid, GUID, Erstellt_Am, Aktiv, Archivstatus, Archiviert, Archiviert_am from ondoc_clm_dokumente [FILTER] order by Id desc",
|
||||
"sqlById": " ",
|
||||
"idField": "ID",
|
||||
"displayField": "ID",
|
||||
"jsonField": "",
|
||||
"Buttons": "Anzeigen",
|
||||
"AnzeigeDokument": "SELECT dbo.BinaryToBase64(dokument) FROM dbo.OnDoc_CLM_Dokumente INNER JOIN dbo.Doks ON dbo.OnDoc_CLM_Dokumente.dokumentid = dbo.Doks.DokumentID where dbo.ondoc_clm_dokumente.id=@id",
|
||||
"FilterColumns": "clmdokumentid;archivstatus;dokumentid"
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
303
API_NetFramework/obj/Debug/Package/PackageTmp/CLM.aspx
Normal file
303
API_NetFramework/obj/Debug/Package/PackageTmp/CLM.aspx
Normal file
@@ -0,0 +1,303 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CLM.aspx.cs" Inherits="WebApp.CLM" %>
|
||||
|
||||
<!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>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.4/ace.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;
|
||||
}
|
||||
.leftfull {
|
||||
width: 100%;
|
||||
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;
|
||||
}
|
||||
|
||||
#pdfFrame {
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
.leftpanel {
|
||||
border-right: 1px solid #ccc;
|
||||
height: 100%;
|
||||
}
|
||||
.navbar-custom {
|
||||
background-color: #0d6efd;
|
||||
padding-top:20px;
|
||||
padding-bottom:20px;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand {
|
||||
color: white;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.navbar-custom .btn {
|
||||
border-color: white;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.navbar-custom .btn:hover {
|
||||
background: white;
|
||||
color: #0d6efd;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<nav class="navbar navbar-expand-lg navbar-custom">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- TITEL LINKS -->
|
||||
<span class="navbar-brand"><h1>CLM</h1>
|
||||
</span>
|
||||
|
||||
|
||||
<div class="ms-auto d-flex gap-2">
|
||||
|
||||
<!-- BUTTON -->
|
||||
<button class="btn btn-outline-light" onclick="generateFromJson()">
|
||||
Generieren
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
<!-- LAYOUT -->
|
||||
<div class="layout">
|
||||
<form runat="server" class="left" id="masterform" >
|
||||
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
|
||||
|
||||
<h2>Tabellen & Datensätze</h2>
|
||||
<asp:DropDownList
|
||||
Width="300"
|
||||
ID="ddlTables"
|
||||
runat="server"
|
||||
AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlTables_SelectedIndexChanged" />
|
||||
|
||||
|
||||
|
||||
<asp:Label ID="lblFilter" runat="server" Text="Filter:"></asp:Label>
|
||||
<asp:TextBox ID="txtfilter" runat="server" Width="207px"></asp:TextBox>
|
||||
|
||||
|
||||
<asp:Button ID="btnRefresh" runat="server" Text="Aktualisieren" OnClick="ddlTables_SelectedIndexChanged" />
|
||||
<asp:Button ID="Button1" runat="server" Text="Filter löschen" OnClick="ddlTables_clearfilter" />
|
||||
|
||||
<asp:GridView
|
||||
ID="gvData"
|
||||
runat="server"
|
||||
AutoGenerateColumns="true"
|
||||
AllowPaging="true"
|
||||
PageSize="15"
|
||||
PagerStyle-CssClass="pager"
|
||||
OnPageIndexChanging="gvData_PageIndexChanging"
|
||||
OnRowCreated="gvData_RowCreated"
|
||||
OnRowDataBound="gvData_RowDataBound" />
|
||||
|
||||
</form>
|
||||
|
||||
<div id="editor"></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);
|
||||
editor.session.doc
|
||||
|
||||
//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 generateFromJson() {
|
||||
|
||||
var jsonText = editor.getValue();
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/API/DokumentGenerator",
|
||||
data: jsonText,
|
||||
contentType: "application/json; charset=utf-8",
|
||||
dataType: "json",
|
||||
headers: {
|
||||
"Authorization": "Bearer " + "pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98="
|
||||
},
|
||||
success: function (response) {
|
||||
var pdfWindow = window.open("");
|
||||
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64," + response.file + "'></iframe>");
|
||||
//alert("Server Response: " + response.file);
|
||||
},
|
||||
|
||||
error: function (err) {
|
||||
alert("Error: " + err.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showDoc(tableKey, id) {
|
||||
PageMethods.GetDoc(
|
||||
tableKey,
|
||||
id,
|
||||
function (result) {
|
||||
var pdfWindow = window.open("");
|
||||
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64," + result + "'></iframe>");
|
||||
},
|
||||
function (err) {
|
||||
|
||||
alert(err.get_message())
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
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>
|
||||
@@ -1,212 +0,0 @@
|
||||
<%@ 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>
|
||||
314
API_NetFramework/obj/Debug/Package/PackageTmp/JSONViewer.aspx
Normal file
314
API_NetFramework/obj/Debug/Package/PackageTmp/JSONViewer.aspx
Normal file
@@ -0,0 +1,314 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JSONViewer.aspx.cs" Inherits="WebApp.JSONViewer" %>
|
||||
|
||||
<!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>
|
||||
<script src="/Scripts/bootstrap.min.js"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.4/ace.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;
|
||||
}
|
||||
.leftfull {
|
||||
width: 100%;
|
||||
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;
|
||||
}
|
||||
|
||||
#pdfFrame {
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
.leftpanel {
|
||||
border-right: 1px solid #ccc;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.navbar-custom {
|
||||
background-color: #0d6efd;
|
||||
padding-top:20px;
|
||||
padding-bottom:20px;
|
||||
}
|
||||
|
||||
.navbar-custom .navbar-brand {
|
||||
color: white;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.navbar-custom .btn {
|
||||
border-color: white;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.navbar-custom .btn:hover {
|
||||
background: white;
|
||||
color: #0d6efd;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<nav class="navbar navbar-expand-lg navbar-custom">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- TITEL LINKS -->
|
||||
<span class="navbar-brand">OnDoc-JSON-Viewer
|
||||
</span>
|
||||
|
||||
|
||||
<div class="ms-auto d-flex gap-2">
|
||||
|
||||
<!-- BUTTON -->
|
||||
<button class="btn btn-outline-light" onclick="generateFromJson()">
|
||||
Generieren
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
<%--<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" id="masterform">
|
||||
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
|
||||
|
||||
<h2>Tabellen & Datensätze</h2>
|
||||
<asp:DropDownList
|
||||
Width="300"
|
||||
ID="ddlTables"
|
||||
runat="server"
|
||||
AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlTables_SelectedIndexChanged" />
|
||||
|
||||
|
||||
|
||||
<asp:Label ID="lblFilter" runat="server" Text="Filter:"></asp:Label>
|
||||
<asp:TextBox ID="txtfilter" runat="server" Width="207px"></asp:TextBox>
|
||||
|
||||
|
||||
<asp:Button ID="btnRefresh" runat="server" Text="Aktualisieren" OnClick="ddlTables_SelectedIndexChanged" />
|
||||
<asp:Button ID="Button1" runat="server" Text="Filter löschen" OnClick="ddlTables_clearfilter" />
|
||||
|
||||
<asp:GridView
|
||||
ID="gvData"
|
||||
runat="server"
|
||||
AutoGenerateColumns="true"
|
||||
AllowPaging="true"
|
||||
PageSize="15"
|
||||
PagerStyle-CssClass="pager"
|
||||
OnPageIndexChanging="gvData_PageIndexChanging"
|
||||
OnRowCreated="gvData_RowCreated"
|
||||
OnRowDataBound="gvData_RowDataBound" />
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
<div id="editor"></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);
|
||||
editor.session.doc
|
||||
|
||||
//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 generateFromJson() {
|
||||
|
||||
var jsonText = editor.getValue();
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/API/DokumentGenerator",
|
||||
data: jsonText,
|
||||
contentType: "application/json; charset=utf-8",
|
||||
dataType: "json",
|
||||
headers: {
|
||||
"Authorization": "Bearer " + "pZkuG6l6ORCEckqQimPK58PO1A9EnkMtL5oCgRX9WiWnD4xeH7ikGzhWnTBy/vk8J4Iiz8gCSx9uFHA4+DvITG0roO97sk82d/0BCjVlwLWINpXlJfGYEF3X96AdoCQvb3ruwv/tVqEHsSU5aNfyxBAe+EhLTHQ8t7ysgJZWh98="
|
||||
},
|
||||
success: function (response) {
|
||||
var pdfWindow = window.open("");
|
||||
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64," + response.file + "'></iframe>");
|
||||
//alert("Server Response: " + response.file);
|
||||
},
|
||||
|
||||
error: function (err) {
|
||||
alert("Error: " + err.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showDoc(tableKey, id) {
|
||||
PageMethods.GetDoc(
|
||||
tableKey,
|
||||
id,
|
||||
function (result) {
|
||||
var pdfWindow = window.open("");
|
||||
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64," + result + "'></iframe>");
|
||||
},
|
||||
function (err) {
|
||||
|
||||
alert(err.get_message())
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
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>
|
||||
@@ -1,143 +0,0 @@
|
||||
<%@ 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>
|
||||
@@ -1,13 +1,47 @@
|
||||
<main>
|
||||
<section class="row" aria-labelledby="aspnetTitle">
|
||||
<h1 id="aspnetTitle">OnDoc-Webservice Version 1.1 / 14. April 2025</h1>
|
||||
<h1 id="aspnetTitle">OnDoc-Webservice Version 1.2 / 8. März 2026</h1>
|
||||
</section>
|
||||
<div class="row">
|
||||
<section class="col-md-4" aria-labelledby="gettingStartedTitle">
|
||||
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="librariesTitle">
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="hostingTitle">
|
||||
</section>
|
||||
</div>
|
||||
<div class="row">
|
||||
<section class="col-md-4" aria-labelledby="gettingStartedTitle">
|
||||
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="librariesTitle">
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="hostingTitle">
|
||||
</section>
|
||||
</div>
|
||||
<div class="row">
|
||||
<section class="col-md-4" aria-labelledby="gettingStartedTitle">
|
||||
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="librariesTitle">
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="hostingTitle">
|
||||
</section>
|
||||
</div>
|
||||
<div class="row">
|
||||
<section class="col-md-4" aria-labelledby="gettingStartedTitle">
|
||||
|
||||
<a href="/clm.aspx" class="btn btn-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> CLM-Dokumente verwalten
|
||||
</a>
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="librariesTitle">
|
||||
</section>
|
||||
<section class="col-md-4" aria-labelledby="hostingTitle">
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section class="row" aria-labelledby="aspnetTitle">
|
||||
</section>
|
||||
</main>
|
||||
@@ -58,6 +58,14 @@
|
||||
<compilation debug="true" targetFramework="4.8.1" />
|
||||
<httpRuntime targetFramework="4.8.1" maxRequestLength="102400" />
|
||||
</system.web>
|
||||
<system.web.extensions>
|
||||
<scripting>
|
||||
<webServices>
|
||||
<!-- Erhöht den Wert z.B. auf 100 MB (102400 KB) -->
|
||||
<jsonSerialization maxJsonLength="2147483647" />
|
||||
</webServices>
|
||||
</scripting>
|
||||
</system.web.extensions>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -60,6 +60,14 @@
|
||||
<compilation debug="true" targetFramework="4.8.1" />
|
||||
<httpRuntime targetFramework="4.8.1" maxRequestLength="102400" />
|
||||
</system.web>
|
||||
<system.web.extensions>
|
||||
<scripting>
|
||||
<webServices>
|
||||
<!-- Erhöht den Wert z.B. auf 100 MB (102400 KB) -->
|
||||
<jsonSerialization maxJsonLength="2147483647" />
|
||||
</webServices>
|
||||
</scripting>
|
||||
</system.web.extensions>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
|
||||
@@ -58,6 +58,14 @@
|
||||
<compilation debug="true" targetFramework="4.8.1" />
|
||||
<httpRuntime targetFramework="4.8.1" maxRequestLength="102400" />
|
||||
</system.web>
|
||||
<system.web.extensions>
|
||||
<scripting>
|
||||
<webServices>
|
||||
<!-- Erhöht den Wert z.B. auf 100 MB (102400 KB) -->
|
||||
<jsonSerialization maxJsonLength="2147483647" />
|
||||
</webServices>
|
||||
</scripting>
|
||||
</system.web.extensions>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
|
||||
Reference in New Issue
Block a user