Sicherung vor Merge
This commit is contained in:
56
scr/FSI.BT.IR.Organization.Web/Views/Home/AddOrEdit.cshtml
Normal file
56
scr/FSI.BT.IR.Organization.Web/Views/Home/AddOrEdit.cshtml
Normal file
@@ -0,0 +1,56 @@
|
||||
@using FSI.BT.IR.Organization.Db.Models
|
||||
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
@model Organization
|
||||
|
||||
<div class="row">
|
||||
|
||||
<form asp-action="AddOrEdit" asp-route-id="@Model.Id" onsubmit="return jQueryAjaxPost(this);">
|
||||
|
||||
<input hidden asp-for="Id" class="form-control" />
|
||||
<input hidden asp-for="FullShortName" class="form-control" />
|
||||
<input hidden asp-for="Created" class="form-control" />
|
||||
<input hidden asp-for="Updated" class="form-control" />
|
||||
|
||||
<div class="form-group">
|
||||
<label asp-for="ShortName" class="control-label"></label>
|
||||
<input asp-for="ShortName" class="form-control" id="ctrlToFocus" />
|
||||
<span asp-validation-for="ShortName" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label asp-for="Name" class="control-label"></label>
|
||||
<input asp-for="Name" class="form-control" />
|
||||
<span asp-validation-for="Name" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label asp-for="Description" class="control-label"></label>
|
||||
<input asp-for="Description" class="form-control" />
|
||||
<span asp-validation-for="Description" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label asp-for="Type" class="control-label"></label>
|
||||
<select asp-for="Type" asp-items="Html.GetEnumSelectList<FSI.BT.IR.Organization.Db.Models.OrganizationType>()" class="form-control"></select>
|
||||
<span asp-validation-for="Type" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label asp-for="ParentId" class="control-label"></label>
|
||||
<select asp-for="ParentId" asp-items="@(new SelectList(from x in Model.Parents orderby x.ShortName select new { Value= x.Id, Text = x.FullShortName + " - " + x.Name} , "Value", "Text"))" class="form-control"></select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="form-group">
|
||||
<input type="submit" value="Submit" class="btn btn-primary btn-block" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
17
scr/FSI.BT.IR.Organization.Web/Views/Home/Index.cshtml
Normal file
17
scr/FSI.BT.IR.Organization.Web/Views/Home/Index.cshtml
Normal file
@@ -0,0 +1,17 @@
|
||||
@using FSI.BT.IR.Organization.Db.Models
|
||||
|
||||
@model IEnumerable<Organization>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Organisationen";
|
||||
}
|
||||
|
||||
<h1>@ViewData["Title"]</h1>
|
||||
|
||||
<hr />
|
||||
|
||||
<script type="text/javascript" language="javascript" src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
|
||||
<div id="view-all">
|
||||
@await Html.PartialAsync("_ViewAll", Model)
|
||||
</div>
|
||||
149
scr/FSI.BT.IR.Organization.Web/Views/Home/_ViewAll.cshtml
Normal file
149
scr/FSI.BT.IR.Organization.Web/Views/Home/_ViewAll.cshtml
Normal file
@@ -0,0 +1,149 @@
|
||||
@using FSI.BT.IR.Organization.Db.Models
|
||||
@model IEnumerable<Organization>
|
||||
|
||||
<table id="dtMain" class="display" style="width:100%">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.FullShortName)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.ShortName)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.Name)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.Description)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.Type)
|
||||
</th>
|
||||
<th>
|
||||
@Html.DisplayNameFor(x => x.GetEnumerator().Current.ParentId)
|
||||
</th>
|
||||
<th>
|
||||
Bearbeitung
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@{
|
||||
foreach (var item in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => @item.FullShortName)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.ShortName)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Name)
|
||||
</td>
|
||||
<td>
|
||||
@(string.IsNullOrEmpty(item.Description) ? "-" : @Html.DisplayFor(modelItem => item.Description))
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => @item.Type)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => @item.Parent.Name) @(item.Parent == null ? "" : "(")@Html.DisplayFor(modelItem => @item.Parent.ShortName)@(item.Parent == null ? "" : ")")
|
||||
</td>
|
||||
<td>
|
||||
<div class="btn-group" style="flex-direction:row">
|
||||
|
||||
<!-- bearbeiten -->
|
||||
<a onclick="showInPopup('@Url.Action("AddOrEdit", "Home",new {id = item.Id}, Context.Request.Scheme)','Organisation bearbeiten')" class="btn btn-success text-white">
|
||||
<i class="bi bi-pencil-square"></i>
|
||||
</a>
|
||||
|
||||
<!-- löschen -->
|
||||
<form asp-action="Delete" asp-route-id="@item.Id" onsubmit="return jQueryAjaxDelete(this)" class="d-inline">
|
||||
<button type="submit" value="bi bi-trash" class="btn btn-danger text-white">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function () {
|
||||
$("#dtMain").DataTable({
|
||||
dom: "Blfrtip",
|
||||
pageLength: 25,
|
||||
buttons: [
|
||||
{
|
||||
text: "<i class='bi bi-plus-square'></i> Neu",
|
||||
className: "btn-dark",
|
||||
key: {
|
||||
shiftKey: true,
|
||||
key: 'n'
|
||||
},
|
||||
action: function (e, dt, node, conf) {
|
||||
showInPopup("@Url.Action("AddOrEdit", "Home", new { id = 0 }, Context.Request.Scheme)", "neue Organisation erstellen");
|
||||
},
|
||||
},
|
||||
{
|
||||
extend: "spacer",
|
||||
},
|
||||
{
|
||||
extend: "spacer",
|
||||
},
|
||||
"searchBuilder",
|
||||
{
|
||||
extend: "collection",
|
||||
text: "Export",
|
||||
autoClose: true,
|
||||
buttons: [
|
||||
{
|
||||
extend: "copyHtml5",
|
||||
text: "<i class='bi bi-copy'></i> kopieren",
|
||||
titleAttr: "Copy"
|
||||
},
|
||||
{
|
||||
extend: "excelHtml5",
|
||||
autoFilter: true,
|
||||
text: "<i class='bi bi-file-earmark-excel'></i> Excel",
|
||||
titleAttr: "Excel"
|
||||
},
|
||||
{
|
||||
extend: "csvHtml5",
|
||||
text: "<i class='bi bi-filetype-csv'></i> csv-Datei",
|
||||
titleAttr: "CSV"
|
||||
},
|
||||
{
|
||||
extend: "pdfHtml5",
|
||||
text: "<i class='bi bi-file-earmark-pdf'> Pdf</i>",
|
||||
titleAttr: "PDF"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
extend: "colvis",
|
||||
collectionLayout: "fixed columns",
|
||||
collectionTitle: "Column visibility control"
|
||||
},
|
||||
{
|
||||
extend: "spacer",
|
||||
},
|
||||
],
|
||||
lengthMenu: [
|
||||
[10, 25, 50, -1],
|
||||
[10, 25, 50, 'All']
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
25
scr/FSI.BT.IR.Organization.Web/Views/Shared/Error.cshtml
Normal file
25
scr/FSI.BT.IR.Organization.Web/Views/Shared/Error.cshtml
Normal file
@@ -0,0 +1,25 @@
|
||||
@model ErrorViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
@if (Model.ShowRequestId)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
<h3>Development Mode</h3>
|
||||
<p>
|
||||
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||
</p>
|
||||
<p>
|
||||
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||
It can result in displaying sensitive information from exceptions to end users.
|
||||
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||
and restarting the app.
|
||||
</p>
|
||||
101
scr/FSI.BT.IR.Organization.Web/Views/Shared/_Layout.cshtml
Normal file
101
scr/FSI.BT.IR.Organization.Web/Views/Shared/_Layout.cshtml
Normal file
@@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de" data-bs-theme="dark">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>FSI - @ViewData["Title"]</title> <!-- Tab-Titel -->
|
||||
<link rel="shortcut icon" href="~/logo_klein.ico" /> <!-- Tab Icon-->
|
||||
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||
<link rel="stylesheet" href="~/FSI.BT.IR.Organization.Web.styles.css" asp-append-version="true" />
|
||||
|
||||
<link href="~/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
|
||||
|
||||
<link href="~/lib/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet" />
|
||||
<link href="~/lib/bootstrap-icons/font/bootstrap-icons.min.css" rel="stylesheet" />
|
||||
|
||||
<link href="~/lib/datatable/datatables.css" rel="stylesheet" />
|
||||
<link href="~/lib/datatable/datatables.min.css" rel="stylesheet" />
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav class="navbar navbar-expand-sm navbar-toggleable-sm mavbar-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="#">
|
||||
<img src="~/logo.png" height="50" /> <!-- Logo -->
|
||||
<a> <font size="4"> Organisations- <br /> Verwaltung </font> </a> <!-- Titel -->
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
|
||||
<ul class="navbar-nav flex-grow-1">
|
||||
<li class="nav-item">
|
||||
<!-- Navigation -->
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Dark-/Light-Mode -->
|
||||
<div class="p-2 border rounded">
|
||||
<div class="form-check-switch form-switch" id="btnSwitch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" id="flexSwitchCheckDefault" />
|
||||
<label class="form-checklabel" for="flexSwitchCheckDefault">Mode</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container">
|
||||
<main role="main" class="pb-3">
|
||||
@RenderBody()
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<footer class="border-top footer text-muted">
|
||||
<div class="container">
|
||||
© 2024 - FSI.BT.IR.Organization.Web </a> <!-- Fußzeilen-Text -->
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Add-/Edit-Dialog -->
|
||||
<div class="modal" tabindex="-1" role="dialog" id="form-modal" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Dark-/Light-Mode -->
|
||||
<script type="text/javascript">
|
||||
|
||||
document.getElementById("btnSwitch").addEventListener("click", () => {
|
||||
if (document.documentElement.getAttribute("data-bs-theme") == "dark") {
|
||||
document.documentElement.setAttribute("data-bs-theme", "light")
|
||||
}
|
||||
else {
|
||||
document.documentElement.setAttribute("data-bs-theme", "dark")
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
|
||||
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||
|
||||
<script src="~/lib/datatable/datatables.min.js"></script>
|
||||
<script src="~/lib/datatable/datatables.js"></script>
|
||||
|
||||
@await RenderSectionAsync("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,48 @@
|
||||
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
|
||||
for details on configuring this project to bundle and minify static web assets. */
|
||||
|
||||
a.navbar-brand {
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0077cc;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #1b6ec2;
|
||||
border-color: #1861ac;
|
||||
}
|
||||
|
||||
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
|
||||
color: #fff;
|
||||
background-color: #1b6ec2;
|
||||
border-color: #1861ac;
|
||||
}
|
||||
|
||||
.border-top {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.box-shadow {
|
||||
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
|
||||
}
|
||||
|
||||
button.accept-policy {
|
||||
font-size: 1rem;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
line-height: 60px;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
|
||||
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
||||
3
scr/FSI.BT.IR.Organization.Web/Views/_ViewImports.cshtml
Normal file
3
scr/FSI.BT.IR.Organization.Web/Views/_ViewImports.cshtml
Normal file
@@ -0,0 +1,3 @@
|
||||
@using FSI.BT.IR.Organization.Web
|
||||
@using FSI.BT.IR.Organization.Web.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
3
scr/FSI.BT.IR.Organization.Web/Views/_ViewStart.cshtml
Normal file
3
scr/FSI.BT.IR.Organization.Web/Views/_ViewStart.cshtml
Normal file
@@ -0,0 +1,3 @@
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
Reference in New Issue
Block a user