Merge pull request #673 from hargata/Hargata/update.docs
Update screenshots and docs site.
@@ -17,8 +17,13 @@
|
||||
<input type="text" id="inputUsername" class="form-control" placeholder="@translator.Translate(userLanguage, "Account Username")" value="@Model.UserName">
|
||||
<label for="inputEmail">@translator.Translate(userLanguage, "Email Address")</label>
|
||||
<input type="text" id="inputEmail" class="form-control" placeholder="@translator.Translate(userLanguage, "Email Address")" value="@Model.EmailAddress">
|
||||
<label for="inputPassword">@translator.Translate(userLanguage, "New Password")</label>
|
||||
<input type="password" id="inputPassword" class="form-control" placeholder="@translator.Translate(userLanguage, "New Password")" value="">
|
||||
<label for="inputPassword">@translator.Translate(userLanguage, "New Password")</label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputPassword" class="form-control" placeholder="@translator.Translate(userLanguage, "New Password")" value="">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<label for="inputToken">@translator.Translate(userLanguage, "Token")</label>
|
||||
<input type="text" id="inputToken" class="form-control" placeholder="@translator.Translate(userLanguage, "Token")" value="">
|
||||
<div class="row">
|
||||
|
||||
@@ -16,7 +16,12 @@
|
||||
<label for="inputUsername">@translator.Translate(userLanguage, "Username")</label>
|
||||
<input type="text" id="inputUsername" class="form-control" placeholder="@translator.Translate(userLanguage, "Account Username")" value="@Model.UserName">
|
||||
<label for="inputPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||
<input type="password" id="inputPassword" class="form-control" placeholder="@translator.Translate(userLanguage, "Password")" value="">
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputPassword" class="form-control" placeholder="@translator.Translate(userLanguage, "Password")" value="">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<script src="~/js/login.js?v=@StaticHelper.VersionNumber"></script>
|
||||
}
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div>
|
||||
<div style="max-width:204px;">
|
||||
<img src="@logoUrl" />
|
||||
<div class="form-group">
|
||||
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
||||
|
||||
@@ -15,16 +15,21 @@
|
||||
<script src="~/js/login.js?v=@StaticHelper.VersionNumber"></script>
|
||||
}
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div>
|
||||
<div style="max-width:204px;">
|
||||
<img src="@logoUrl" />
|
||||
<div class="form-group">
|
||||
<label for="inputUserName">@translator.Translate(userLanguage, "Username")</label>
|
||||
<input type="text" id="inputUserName" class="form-control">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||
<input type="password" id="inputUserPassword" onkeyup="handlePasswordKeyPress(event)" class="form-control">
|
||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputUserPassword" onkeyup="handlePasswordKeyPress(event)" class="form-control">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" id="inputPersistent">
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<script src="~/js/login.js?v=@StaticHelper.VersionNumber"></script>
|
||||
}
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div>
|
||||
<div style="max-width:204px;">
|
||||
<img src="@logoUrl" />
|
||||
<div class="form-group">
|
||||
<label for="inputToken">@translator.Translate(userLanguage, "Token")</label>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<script src="~/js/login.js?v=@StaticHelper.VersionNumber"></script>
|
||||
}
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div>
|
||||
<div style="max-width:204px;">
|
||||
<img src="@logoUrl" />
|
||||
<div class="form-group">
|
||||
<label for="inputToken">@translator.Translate(userLanguage, "Token")</label>
|
||||
@@ -29,7 +29,12 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "Password")</label>
|
||||
<input type="password" id="inputUserPassword" class="form-control">
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputUserPassword" class="form-control">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-grid">
|
||||
<button type="button" class="btn btn-warning mt-2" onclick="performRegistration()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Register")</button>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<script src="~/js/login.js?v=@StaticHelper.VersionNumber"></script>
|
||||
}
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div>
|
||||
<div style="max-width:204px;">
|
||||
<img src="@logoUrl" />
|
||||
<div class="form-group">
|
||||
<label for="inputToken">@translator.Translate(userLanguage, "Token")</label>
|
||||
@@ -25,7 +25,12 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputUserPassword">@translator.Translate(userLanguage, "New Password")</label>
|
||||
<input type="password" id="inputUserPassword" class="form-control">
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputUserPassword" class="form-control">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-grid">
|
||||
<button type="button" class="btn btn-warning mt-2" onclick="performPasswordReset()"><i class="bi bi-box-arrow-in-right me-2"></i>@translator.Translate(userLanguage, "Reset Password")</button>
|
||||
|
||||
@@ -11,6 +11,14 @@
|
||||
src="https://code.jquery.com/jquery-3.7.1.slim.min.js"
|
||||
integrity="sha256-kmHvs0B+OpCW5GVHUNjv9rOmY0IvSIRcf7zGUDTDQM8="
|
||||
crossorigin="anonymous"></script>
|
||||
<style>
|
||||
.password-visible-button {
|
||||
padding: 0rem;
|
||||
}
|
||||
::-ms-reveal {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container d-flex align-items-center justify-content-center" style="height:100vh">
|
||||
@@ -76,7 +84,12 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="inputSmtpPassword">Password</label>
|
||||
<input type="password" id="inputSmtpPassword" class="form-control">
|
||||
<div class="input-group">
|
||||
<input type="password" id="inputSmtpPassword" class="form-control">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<small class="text-body-secondary">Password for Authentication</small>
|
||||
</div>
|
||||
</div>
|
||||
@@ -395,6 +408,19 @@ function copyToClipboard(){
|
||||
$(".btn-copy").text("Copied");
|
||||
setTimeout(() => {$(".btn-copy").text("Copy");}, 500)
|
||||
}
|
||||
function togglePasswordVisibility(elem) {
|
||||
var passwordField = $(elem).parent().siblings("input");
|
||||
var passwordButton = $(elem).find('.bi');
|
||||
if (passwordField.attr("type") == "password") {
|
||||
passwordField.attr("type", "text");
|
||||
passwordButton.removeClass('bi-eye');
|
||||
passwordButton.addClass('bi-eye-slash');
|
||||
} else {
|
||||
passwordField.attr("type", "password");
|
||||
passwordButton.removeClass('bi-eye-slash');
|
||||
passwordButton.addClass('bi-eye');
|
||||
}
|
||||
}
|
||||
function setLocaleInput(){
|
||||
var browserLocale = navigator.language;
|
||||
$("#inputLocale").val(browserLocale.replace('-','_'));
|
||||
|
||||
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 105 KiB |
BIN
docs/garage.png
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 145 KiB |
@@ -5,6 +5,7 @@
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<title>LubeLogger</title>
|
||||
<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 rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
||||
<style>
|
||||
.customCarouselCaption{
|
||||
background-image: linear-gradient(to bottom, rgba(255,0,0,0), #000);
|
||||
@@ -27,12 +28,12 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#showcase">Showcase</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#features">Features</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#demo">Demo</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#download">Download</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="https://docs.lubelogger.com">Documentation</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="https://github.com/hargata/lubelog">GitHub Repo</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#showcase"><i class="bi bi-eyeglasses me-2"></i>Showcase</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#features"><i class="bi bi-card-checklist me-2"></i>Features</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#demo"><i class="bi bi-eyedropper me-2"></i>Demo</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="#download"><i class="bi bi-download me-2"></i>Download</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="https://docs.lubelogger.com"><i class="bi bi-file-text me-2"></i>Documentation</a></div>
|
||||
<div class="col-12 col-sm-6 col-md-2"><a class="btn btn-dark" href="https://github.com/hargata/lubelog"><i class="bi bi-git me-2"></i>GitHub Repo</a></div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row" id="showcase">
|
||||
@@ -120,17 +121,21 @@
|
||||
<li class="list-group-item">No limit on how many vehicles you have in your garage</li>
|
||||
<li class="list-group-item">Import existing records from CSV(supports imports from Fuelly)</li>
|
||||
<li class="list-group-item">Attach documents for each record(receipts, invoices, etc)</li>
|
||||
<li class="list-group-item">Keeps track of your To-Do's(Kanban Planner)</li>
|
||||
<li class="list-group-item">Set recurring reminders so you never miss another scheduled maintenance</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">Keeps track of your To-Do's(Kanban Planner)</li>
|
||||
<li class="list-group-item">Set recurring reminders so you never miss another scheduled maintenance</li>
|
||||
<li class="list-group-item">User-customizable fields</li>
|
||||
<li class="list-group-item">Supports multiple users</li>
|
||||
<li class="list-group-item">Reminder Emails</li>
|
||||
<li class="list-group-item">Dark Mode</li>
|
||||
<li class="list-group-item">Mobile/Small screen support</li>
|
||||
<li class="list-group-item">Basic Authentication for security</li>
|
||||
<li class="list-group-item">Basic and OpenID Connect(OIDC) Authentication for security</li>
|
||||
<li class="list-group-item">API Endpoints</li>
|
||||
<li class="list-group-item">Consolidated Vehicle Maintenance Report</li>
|
||||
<li class="list-group-item">Trip Recorder(GPS Integration)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -158,7 +163,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12 d-flex justify-content-center">
|
||||
<p class="lead">
|
||||
LubeLogger is available as both a Docker Image and a Windows Standalone Executable(EXE)
|
||||
LubeLogger is available as a Docker Image, a Windows Standalone Executable(EXE), and a Linux Standalone Executable
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 d-flex justify-content-center">
|
||||
|
||||
BIN
docs/planner.png
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 106 KiB |
@@ -461,4 +461,12 @@ html[data-bs-theme="light"] .api-method:hover {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.password-visible-button {
|
||||
padding: 0rem;
|
||||
}
|
||||
|
||||
::-ms-reveal {
|
||||
display: none;
|
||||
}
|
||||
@@ -1244,4 +1244,17 @@ function handleSwalEnter(e) {
|
||||
if (e.which == 13) {
|
||||
Swal.clickConfirm();
|
||||
}
|
||||
}
|
||||
function togglePasswordVisibility(elem) {
|
||||
var passwordField = $(elem).parent().siblings("input");
|
||||
var passwordButton = $(elem).find('.bi');
|
||||
if (passwordField.attr("type") == "password") {
|
||||
passwordField.attr("type", "text");
|
||||
passwordButton.removeClass('bi-eye');
|
||||
passwordButton.addClass('bi-eye-slash');
|
||||
} else {
|
||||
passwordField.attr("type", "password");
|
||||
passwordButton.removeClass('bi-eye-slash');
|
||||
passwordButton.addClass('bi-eye');
|
||||
}
|
||||
}
|
||||
@@ -618,7 +618,7 @@ function getLastOdometerReadingAndIncrement(odometerFieldName) {
|
||||
Swal.fire({
|
||||
title: 'Increment Last Reported Odometer Reading',
|
||||
html: `
|
||||
<input type="text" id="inputOdometerIncrement" class="swal2-input" placeholder="Increment" onkeydown="handleSwalEnter(event)">
|
||||
<input type="text" inputmode="decimal" id="inputOdometerIncrement" class="swal2-input" placeholder="Increment" onkeydown="handleSwalEnter(event)">
|
||||
`,
|
||||
confirmButtonText: 'Add',
|
||||
focusConfirm: false,
|
||||
|
||||