Compare commits
8 Commits
Hargata/be
...
v1.4.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72a5960d40 | ||
|
|
3429f1e4f9 | ||
|
|
f8bea8bf81 | ||
|
|
43794dd223 | ||
|
|
5cc84a7b46 | ||
|
|
48248a4386 | ||
|
|
95305402e6 | ||
|
|
29f24c527f |
@@ -4,6 +4,7 @@
|
|||||||
@model KioskViewModel
|
@model KioskViewModel
|
||||||
@section Scripts {
|
@section Scripts {
|
||||||
<script src="~/lib/masonry/masonry.min.js"></script>
|
<script src="~/lib/masonry/masonry.min.js"></script>
|
||||||
|
<script src="~/lib/drawdown/drawdown.js"></script>
|
||||||
}
|
}
|
||||||
<div class="progress" role="progressbar" aria-label="Refresh Progress" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="height: 1px">
|
<div class="progress" role="progressbar" aria-label="Refresh Progress" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="height: 1px">
|
||||||
<div class="progress-bar" style="width: 0%"></div>
|
<div class="progress-bar" style="width: 0%"></div>
|
||||||
@@ -123,9 +124,15 @@
|
|||||||
}
|
}
|
||||||
function toggleReminderNote(sender){
|
function toggleReminderNote(sender){
|
||||||
var reminderNote = $(sender).find('.reminder-note');
|
var reminderNote = $(sender).find('.reminder-note');
|
||||||
if (reminderNote.text().trim() != ''){
|
var reminderNoteText = reminderNote.text().trim();
|
||||||
|
if (reminderNoteText != ''){
|
||||||
if (reminderNote.hasClass('d-none')) {
|
if (reminderNote.hasClass('d-none')) {
|
||||||
reminderNote.removeClass('d-none');
|
reminderNote.removeClass('d-none');
|
||||||
|
if (!reminderNote.hasClass('reminder-note-markdown')){
|
||||||
|
let markedDownReminderNote = markdown(reminderNoteText);
|
||||||
|
reminderNote.html(markedDownReminderNote);
|
||||||
|
reminderNote.addClass('reminder-note-markdown');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
reminderNote.addClass('d-none');
|
reminderNote.addClass('d-none');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<img src="@config.GetLogoUrl()" class="lubelogger-logo" />
|
<img src="@config.GetLogoUrl()" class="lubelogger-logo" />
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
||||||
<input type="text" id="inputUserName" class="form-control">
|
<input type="text" onkeyup="callBackOnEnter(event, requestPasswordReset)" id="inputUserName" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="d-grid">
|
<div class="d-grid">
|
||||||
<button type="button" class="btn btn-warning mt-2" onclick="requestPasswordReset()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Request")</button>
|
<button type="button" class="btn btn-warning mt-2" onclick="requestPasswordReset()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Request")</button>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="password" id="inputUserPassword" onkeyup="handlePasswordKeyPress(event)" class="form-control">
|
<input type="password" id="inputUserPassword" onkeyup="callBackOnEnter(event, performLogin)" class="form-control">
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
||||||
<input type="text" id="inputUserName" class="form-control" value="@Model">
|
<input type="text" id="inputUserName" class="form-control" value="@Model" onkeyup="callBackOnEnter(event, performOpenIdRegistration)">
|
||||||
</div>
|
</div>
|
||||||
<div class="d-grid">
|
<div class="d-grid">
|
||||||
<button type="button" class="btn btn-warning mt-2" onclick="performOpenIdRegistration()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Register")</button>
|
<button type="button" class="btn btn-warning mt-2" onclick="performOpenIdRegistration()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Register")</button>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="password" id="inputUserPassword" class="form-control">
|
<input type="password" id="inputUserPassword" class="form-control" onkeyup="callBackOnEnter(event, performRegistration)">
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "New Password")</label>
|
<label for="inputUserPassword">@translator.Translate(userLanguage, "New Password")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="password" id="inputUserPassword" class="form-control">
|
<input type="password" id="inputUserPassword" class="form-control" onkeyup="callBackOnEnter(event, performPasswordReset)">
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
<button type="button" class="btn btn-sm text-secondary password-visible-button" onclick="togglePasswordVisibility(this)"><i class="bi bi-eye"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
||||||
<title>LubeLogger Configurator</title>
|
<title>LubeLogger Configurator</title>
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
|
||||||
@@ -227,7 +227,9 @@
|
|||||||
<textarea id="outputModalText" readonly style="width:100%; height:450px;"></textarea>
|
<textarea id="outputModalText" readonly style="width:100%; height:450px;"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary btn-strip me-auto" onclick="removeDoubleQuotes()">Remove Double Quotes</button>
|
<button type="button" class="btn btn-secondary btn-strip me-auto" onclick="removeDoubleQuotes()">Remove Double Quotes</button>
|
||||||
|
<input id="appSettingsUpload" onChange="readUploadedFile()" class="d-none" type="file" accept="application/json">
|
||||||
|
<button type="button" class="btn btn-secondary btn-upload me-auto" onclick="uploadAndMerge()">Upload appsettings.json</button>
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||||
<button type="button" class="btn btn-primary btn-copy" onclick="copyToClipboard()">Copy</button>
|
<button type="button" class="btn btn-primary btn-copy" onclick="copyToClipboard()">Copy</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -237,6 +239,44 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
|
function uploadAndMerge(){
|
||||||
|
$("#appSettingsUpload").click();
|
||||||
|
}
|
||||||
|
function readUploadedFile(){
|
||||||
|
let fl_files = $("#appSettingsUpload")[0].files; // JS FileList object
|
||||||
|
|
||||||
|
if (fl_files.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// use the 1st file from the list
|
||||||
|
let fl_file = fl_files[0];
|
||||||
|
|
||||||
|
let reader = new FileReader(); // built in API
|
||||||
|
|
||||||
|
let display_file = ( e ) => { // set the contents of the <textarea>
|
||||||
|
mergeIntoUploadedFile(e.target.result);
|
||||||
|
};
|
||||||
|
|
||||||
|
let on_reader_load = ( fl ) => {
|
||||||
|
return display_file; // a function
|
||||||
|
};
|
||||||
|
|
||||||
|
// Closure to capture the file information.
|
||||||
|
reader.onload = on_reader_load( fl_file );
|
||||||
|
|
||||||
|
// Read the file as text.
|
||||||
|
reader.readAsText( fl_file );
|
||||||
|
}
|
||||||
|
function mergeIntoUploadedFile(fileContents){
|
||||||
|
var newJsonObject = JSON.parse("{" + $("#outputModalText").text() + "}");
|
||||||
|
var currentJsonObject = JSON.parse(fileContents);
|
||||||
|
var mergedJsonObject = {...currentJsonObject, ...newJsonObject};
|
||||||
|
$("#outputModalLabel").text("Content for appsettings.json");
|
||||||
|
$("#outputModalText").text(JSON.stringify(mergedJsonObject, null, 2));
|
||||||
|
//clear out uploaded file content
|
||||||
|
$("#appSettingsUpload").val("");
|
||||||
|
}
|
||||||
function removeDoubleQuotes(){
|
function removeDoubleQuotes(){
|
||||||
var currentText = $("#outputModalText").text();
|
var currentText = $("#outputModalText").text();
|
||||||
$("#outputModalText").text(currentText.replaceAll('"', ''));
|
$("#outputModalText").text(currentText.replaceAll('"', ''));
|
||||||
@@ -319,6 +359,11 @@ function generateConfig(){
|
|||||||
$("#outputModalLabel").text("Append into appsettings.json");
|
$("#outputModalLabel").text("Append into appsettings.json");
|
||||||
$("#outputModalText").text(JSON.stringify(windowConfig, null, 2).slice(1,-1));
|
$("#outputModalText").text(JSON.stringify(windowConfig, null, 2).slice(1,-1));
|
||||||
$(".btn-strip").hide();
|
$(".btn-strip").hide();
|
||||||
|
if (jQuery.isEmptyObject(windowConfig)){
|
||||||
|
$(".btn-upload").hide();
|
||||||
|
} else {
|
||||||
|
$(".btn-upload").show();
|
||||||
|
}
|
||||||
$("#outputModal").modal("show");
|
$("#outputModal").modal("show");
|
||||||
} else {
|
} else {
|
||||||
var dockerConfig = [];
|
var dockerConfig = [];
|
||||||
@@ -375,6 +420,7 @@ function generateConfig(){
|
|||||||
$("#outputModalLabel").text("Content for .env");
|
$("#outputModalLabel").text("Content for .env");
|
||||||
$("#outputModalText").text(dockerConfig.join("\r\n"));
|
$("#outputModalText").text(dockerConfig.join("\r\n"));
|
||||||
$(".btn-strip").show();
|
$(".btn-strip").show();
|
||||||
|
$(".btn-upload").hide();
|
||||||
$("#outputModal").modal("show");
|
$("#outputModal").modal("show");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,12 +55,6 @@ function performPasswordReset() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function handlePasswordKeyPress(event) {
|
|
||||||
if (event.keyCode == 13) {
|
|
||||||
performLogin();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function remoteLogin() {
|
function remoteLogin() {
|
||||||
$.get('/Login/GetRemoteLoginLink', function (data) {
|
$.get('/Login/GetRemoteLoginLink', function (data) {
|
||||||
if (data) {
|
if (data) {
|
||||||
|
|||||||
@@ -1535,4 +1535,10 @@ function handleTableColumnDragEnd(tabName) {
|
|||||||
if (isDragging) {
|
if (isDragging) {
|
||||||
isDragging = false;
|
isDragging = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function callBackOnEnter(event, callBack) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
callBack();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -98,8 +98,8 @@
|
|||||||
replace(rx_link, function(all, p1, p2, p3, p4, p5, p6) {
|
replace(rx_link, function(all, p1, p2, p3, p4, p5, p6) {
|
||||||
stash[--si] = p4
|
stash[--si] = p4
|
||||||
? p2
|
? p2
|
||||||
? '<img src="' + p4 + '" alt="' + p3 + '"/>'
|
? '<img style="max-width:100%;max-height:100%;object-fit:scale-down;" src="' + p4 + '" alt="' + p3 + '"/>'
|
||||||
: '<a href="' + p4 + '">' + unesc(highlight(p3)) + '</a>'
|
: '<a class="link-body-emphasis link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover" target="_blank" href="' + p4 + '">' + unesc(highlight(p3)) + '</a>'
|
||||||
: p6;
|
: p6;
|
||||||
return si + '\uf8ff';
|
return si + '\uf8ff';
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user