381 lines
16 KiB
Plaintext
381 lines
16 KiB
Plaintext
@using BeWoPlanerMobil.Controllers
|
|
@using BeWoPlanerMobil.Models
|
|
@using BeWoPlanerMobil.Util
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
|
|
<meta content="utf-8" http-equiv="encoding">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" id="viewport" />
|
|
<title>@ViewBag.Title</title>
|
|
|
|
<script defer src="~/Content/fontawesome/all.min.js"></script>
|
|
|
|
<!-- jquery first, then Popper.js, then Bootstrap JS -->
|
|
<script src="@Url.Content("~/Scripts/jquery-3.6.0.min.js")" type="text/javascript"></script>
|
|
|
|
<script src="@Url.Content("~/Scripts/jquery-ui-1.13.0.min.js")"></script>
|
|
<script src="@Url.Content("~/Scripts/src-min/ace.js")"></script>
|
|
<script src="@Url.Content("~/Scripts/devexpress-scripts/knockout-3.5.1.js")"></script>
|
|
<script src="@Url.Content("~/node_modules/cldrjs/dist/cldr.js")"></script>
|
|
<script src="@Url.Content("~/node_modules/cldrjs/dist/cldr/event.js")"></script>
|
|
<script src="@Url.Content("~/node_modules/globalize/dist/globalize.js")"></script>
|
|
|
|
<script src="~/Scripts/umd/popper.min.js"></script>
|
|
<script src="~/node_modules/bootstrap/dist/js/bootstrap.js" type="text/javascript"></script>
|
|
<link rel="stylesheet" href="~/Content/style.css?v=1.18">
|
|
<script src="~/Scripts/mobileUtils.js?v=1.18"></script>
|
|
<script src="~/Scripts/moment.min.js"></script>
|
|
<script src="~/Scripts/locale/de.js?v=1.18"></script>
|
|
<script src="~/Scripts/group-booking.js?v=1.18"></script>
|
|
<script src="~/Scripts/view-scripts/main.js?v=1.18"></script>
|
|
<script src="~/Scripts/signature.js?v=1.18"></script>
|
|
<script src="~/Scripts/tempusdominus-boostrap-4.min.js"></script>
|
|
<link rel="stylesheet" href="~/Content/tempusdominus-bootstrap-4.min.css" />
|
|
<script src="~/Scripts/Chart.min.js?v=1.18"></script>
|
|
<script src="~/Scripts/support-concept-statistics.js?v=1.18"></script>
|
|
<script src="~/Scripts/view-scripts/customer.js?v=1.18"></script>
|
|
<script src="~/Scripts/view-scripts/scheduler.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/dateUtils.js?v=1.18"></script>
|
|
<script src="~/Scripts/view-scripts/report.js?v=1.18"></script>
|
|
<script src="~/Scripts/signature_pad-3.2.min.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/trimCanvas.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/resources-list-utils.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/list-utils.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/service-record-time-calc.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/js-helper.js?v=1.18"></script>
|
|
<script src="~/Scripts/utils/logging.js?v=1.18"></script>
|
|
|
|
|
|
@*@Html.DevExpress().GetStyleSheets(
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.Editors },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.HtmlEditor },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.GridView },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.PivotGrid },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.Chart },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.Report },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.Scheduler },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.TreeList },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.Spreadsheet },
|
|
new StyleSheet { ExtensionSuite = ExtensionSuite.SpellChecker }
|
|
)
|
|
|
|
@Html.DevExpress().GetScripts(
|
|
new Script { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
|
|
new Script { ExtensionSuite = ExtensionSuite.HtmlEditor },
|
|
new Script { ExtensionSuite = ExtensionSuite.GridView },
|
|
new Script { ExtensionSuite = ExtensionSuite.PivotGrid },
|
|
new Script { ExtensionSuite = ExtensionSuite.Editors },
|
|
new Script { ExtensionSuite = ExtensionSuite.Chart },
|
|
new Script { ExtensionSuite = ExtensionSuite.Report },
|
|
new Script { ExtensionSuite = ExtensionSuite.Scheduler },
|
|
new Script { ExtensionSuite = ExtensionSuite.TreeList },
|
|
new Script { ExtensionSuite = ExtensionSuite.Spreadsheet },
|
|
new Script { ExtensionSuite = ExtensionSuite.SpellChecker }
|
|
)*@
|
|
|
|
@*<script type="text/javascript">
|
|
function UpdateSchedulerHeight() {
|
|
scheduler.SetHeight(1);
|
|
var containerHeight = ASPxClientUtils.GetDocumentClientHeight();
|
|
|
|
if (document.body.scrollHeight > containerHeight) {
|
|
containerHeight = document.body.scrollHeight;
|
|
}
|
|
|
|
scheduler.SetHeight(containerHeight);
|
|
}
|
|
</script>*@
|
|
|
|
<script>
|
|
$(document).ready(function() {
|
|
try {
|
|
var timeoutInMilliseconds = parseInt("@AbstractBaseController.TimeoutLimit", 10) * 60 * 1000;
|
|
|
|
var timeOfLogin = "@AbstractModel.TimeOfLastAction";
|
|
|
|
if(timeOfLogin.length > 0) {
|
|
var countDownDate = new Date().getTime() + timeoutInMilliseconds;
|
|
|
|
var interval = setInterval(function() {
|
|
var now = new Date().getTime();
|
|
|
|
var distance = countDownDate - now;
|
|
|
|
if (distance <= 0) {
|
|
clearInterval(interval);
|
|
$("#countdown").html("00:00");
|
|
|
|
$("#logout-form").submit();
|
|
|
|
return;
|
|
}
|
|
|
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|
|
|
var m = minutes.toString();
|
|
var s = seconds.toString();
|
|
|
|
if (minutes < 10) {
|
|
m = "0" + m;
|
|
}
|
|
|
|
if (seconds < 10) {
|
|
s = "0" + s;
|
|
}
|
|
|
|
$("#countdown").html("Abmeldung in " + m + ":" + s + '<span class="fas fa-unlock-alt pl-1"></span>');
|
|
}, 1000);
|
|
}
|
|
|
|
calcPrependWidth();
|
|
} catch (error) {
|
|
console.log("%c" + error.message, "font-size:12px;color:red;font-weight:bold;");
|
|
}
|
|
});
|
|
|
|
$(window).resize(function() {
|
|
logSize();
|
|
calcPrependWidth();
|
|
});
|
|
|
|
previousWidth = "";
|
|
function logSize() {
|
|
var width = $(document).width();
|
|
|
|
var val = widthToBootstrapVal(width);
|
|
|
|
if(previousWidth !== val) {
|
|
console.log("%c" + val, "font-size: 16px; font-weight: bold; color: #00F2FF;");
|
|
}
|
|
|
|
previousWidth = val;
|
|
}
|
|
|
|
function widthToBootstrapVal(width) {
|
|
try {
|
|
/*
|
|
Extra small <576px
|
|
Small ≥576px
|
|
Medium ≥768px
|
|
Large ≥992px
|
|
Extra large ≥1200px
|
|
*/
|
|
var result = "xs";
|
|
|
|
if(width < 567) {
|
|
result = "xs";
|
|
}
|
|
|
|
if(width >= 576) {
|
|
result = "sm";
|
|
}
|
|
|
|
if(width >= 768) {
|
|
result = "md";
|
|
}
|
|
|
|
if(width >= 992) {
|
|
result = "lg";
|
|
}
|
|
|
|
if(width >= 1200) {
|
|
result = "xl";
|
|
}
|
|
|
|
return result;
|
|
} catch(error) {
|
|
logError(error);
|
|
}
|
|
}
|
|
|
|
function countdownClick() {
|
|
$("#countdown-tooltip").tooltip('show');
|
|
|
|
setTimeout(function() {
|
|
$("#countdown-tooltip").tooltip('hide');
|
|
}, 1500);
|
|
}
|
|
|
|
var initialVonWidth = 0;
|
|
function calcPrependWidth() {
|
|
try {
|
|
// Prepend-Elemente
|
|
if(initialVonWidth === 0 && $.isNumeric(getMaxWidth("sm-prepend-input-group-text"))) {
|
|
initialVonWidth = getMaxWidth("sm-prepend-input-group-text");
|
|
}
|
|
|
|
var smallPrependInputGroupTextWidth = getMaxWidth("sm-prepend-input-group-text");
|
|
var documentWidth = $(document).width();
|
|
|
|
$(".prepend-input-group-text").width(getMaxWidth("prepend-input-group-text"));
|
|
|
|
if(documentWidth < 768 && $.isNumeric(smallPrependInputGroupTextWidth)) {
|
|
$(".sm-prepend-input-group-text").width(getMaxWidth("prepend-input-group-text"));
|
|
} else if($.isNumeric(smallPrependInputGroupTextWidth)) {
|
|
$(".sm-prepend-input-group-text").width(initialVonWidth);
|
|
}
|
|
} catch(error) {
|
|
logError(error);
|
|
}
|
|
}
|
|
|
|
function getMaxWidth(elementClassName) {
|
|
try {
|
|
return Math.max.apply(Math, $('.' + elementClassName).map(function () { return $(this).width(); }).get());
|
|
} catch (error) {
|
|
logError(error);
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
@using(Html.BeginForm("LogOutAfterSessionTimeout", "Main", FormMethod.Post, new {id="logout-form", css="display:none;"}))
|
|
{
|
|
|
|
}
|
|
|
|
@if(Model != null)
|
|
{
|
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark sticky-top justify-content-end">
|
|
<div class="container-fluid">
|
|
<a href="#" class="navbar-brand">
|
|
@Model.LoggedInEmplyeeFirstNameLastName
|
|
</a>
|
|
|
|
<span class="d-inline-block" data-toggle="tooltip" title="Zeit bis zur automatischen Abmeldung" id="countdown-tooltip">
|
|
<span class="navbar-text" id="countdown" onclick="countdownClick()"></span>
|
|
</span>
|
|
|
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
|
<ul class="navbar-nav ml-auto">
|
|
@*@if(Html.IsInDebugMode())
|
|
{
|
|
using(Html.BeginForm("RedirectToDevExpressScheduler", "Main", FormMethod.Post))
|
|
{
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-hand-middle-finger"></i>
|
|
Scheduler
|
|
</button>
|
|
</li>
|
|
}
|
|
}*@
|
|
|
|
@if(AbstractModel.IsAllowedToSeeCustomers)
|
|
{
|
|
using(Html.BeginForm("RedirectToCustomer", "Main", FormMethod.Post))
|
|
{
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-user text-bewo-customers"></i>
|
|
Klienten
|
|
</button>
|
|
</li>
|
|
}
|
|
}
|
|
|
|
@using(Html.BeginForm("RedirectToMain", "Main", FormMethod.Post))
|
|
{
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-clock text-bewo-service-records"></i>
|
|
Zeiterfassung
|
|
</button>
|
|
</li>
|
|
}
|
|
|
|
@if(AbstractModel.IsAllowedToSeeScheduler)
|
|
{
|
|
using(Html.BeginForm("RedirectToScheduler", "Main", FormMethod.Post))
|
|
{
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-calendar-alt text-bewo-calendar"></i>
|
|
Kalender
|
|
</button>
|
|
</li>
|
|
}
|
|
}
|
|
|
|
@if(AbstractModel.IsAllowedToSeeBills)
|
|
{
|
|
using(Html.BeginForm("RedirectToReportView", "Main", FormMethod.Post))
|
|
{
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-file-invoice text-bewo-report">
|
|
|
|
</i>
|
|
Quittierungsbelege
|
|
</button>
|
|
</li>
|
|
}
|
|
}
|
|
|
|
<li class="nav-item">
|
|
<button class="btn btn-link text-light no-underline" onclick="showAboutPopup()">
|
|
<i class="fas fa-balance-scale text-primary"></i>
|
|
Über
|
|
</button>
|
|
</li>
|
|
|
|
<li class="nav-item">
|
|
@using(Html.BeginForm("Logout", "Main", FormMethod.Post))
|
|
{
|
|
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
|
|
<i class="fas fa-sign-out-alt text-primary"></i>
|
|
Abmelden
|
|
</button>
|
|
}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
}
|
|
|
|
<div class="modal" role="dialog" tabindex="-1" id="mySpinner">
|
|
<div class="modal-dialog modal-dialog-centered text-center" role="document">
|
|
<div class="modal-content bg-transparent border-0">
|
|
<div class="d-flex justify-content-center">
|
|
<div class="spinner-border text-primary" role="status" style="width: 5rem; height: 5rem;">
|
|
<span class="sr-only"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal" tabindex="-1" role="dialog" id="messagePopup">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="popupTitle"></h5>
|
|
<button class="close" type="button" data-dismiss="modal" aria-label="close" id="message-popup-esc-btn">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body" id="modal-body">
|
|
<p id="popupMessage"></p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-primary" type="button" data-dismiss="modal" id="message-popup-ok-btn">OK</button>
|
|
<button class="btn btn-secondary" type="button" data-dismiss="modal" id="message-popup-close-btn">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@RenderBody()
|
|
</body>
|
|
</html>
|