Initial commit

This commit is contained in:
Chris Smith
2025-02-19 14:51:16 +01:00
commit d82a6cad96
198 changed files with 13819 additions and 0 deletions

7
frontend/web/.htaccess Normal file
View File

@@ -0,0 +1,7 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

2
frontend/web/assets/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

View File

@@ -0,0 +1,185 @@
.select2-container--bootstrap .select2-selection--single {
height: calc(1.5em + .75rem + 2px);
font-size: 1rem;
line-height: 2.4;
color: #495057;
background-color: #fff;
border: 1px solid #ced4da;
border-radius: .25rem;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
box-shadow: inset 0 0 0 transparent;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
min-width: 150px;
display: inline-block;
width: 100%;
vertical-align: middle;
}
.select2-container--bootstrap .select2-selection__arrow {
height: 100%;
top: 50%;
transform: translateY(-50%);
right: 10px;
color: #495057;
position: absolute;
}
.select2-container--bootstrap .select2-selection__rendered {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1;
}
.select2-container--bootstrap .select2-selection--single:focus {
border-color: #80bdff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.select2-container--bootstrap .select2-selection--single:hover {
border-color: #80bdff;
}
.select2-container--bootstrap .select2-selection__placeholder {
color: #6c757d;
}
.select2-container--bootstrap .select2-selection--single .select2-selection__rendered {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-left: 10px;
padding-right: 10px;
}
.select2-container--bootstrap .select2-search--dropdown .select2-search__field {
width: 100%;
box-sizing: border-box;
padding: .375rem .75rem;
border: 1px solid #ced4da;
border-radius: .25rem;
}
.select2-container {
width: 100% !important;
}
.select2-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
-webkit-clip-path: inset(50%);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap
}
.select2-dropdown {
background-color: white;
border: 1px solid #ced4da;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
}
.select2-container--open .select2-dropdown {
left: 0
}
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0
}
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0
}
.select2-search--dropdown {
display: block;
padding: 4px
}
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box
}
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none
}
.select2-search--dropdown.select2-search--hide {
display: none
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa
}
.select2-container--classic .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa;
outline: 0
}
.select2-container--classic .select2-dropdown {
background-color: #fff;
border: 1px solid transparent
}
.select2-container--classic .select2-dropdown--above {
border-bottom: none
}
.select2-container--classic .select2-dropdown--below {
border-top: none
}
.select2-container--classic.select2-container--open .select2-dropdown {
border-color: #5897fb
}
.select2-container--bootstrap .select2-results__option:hover {
background-color: #f1f1f1;
color: #333;
width: 100%;
}
.select2-container--bootstrap .select2-selection__clear {
margin-right: 2px;
color: #d9534f;
font-size: 1.2rem;
cursor: pointer;
}
.select2-container--bootstrap .select2-selection__clear:hover {
color: #c9302c;
}
.select2-container--bootstrap .select2-results__option {
list-style: none;
padding-left: 20px;
padding-right: 20px;
font-size: 1rem;
color: #333;
margin-bottom: 8px;
box-sizing: border-box;
white-space: normal;
}
.select2-results__options {
margin: 0;
padding: 5px 0;
}

325
frontend/web/css/site.css Normal file
View File

@@ -0,0 +1,325 @@
/* Customize container or page background */
body {
background-color: #fff; /* Light pastel background color */
}
main > .container, main > .container-fluid
{
padding: 70px 15px 20px;
}
.date-date {
width: 300px;
}
.login {
color: rgba(255, 255, 255, 0.55);
}
.login:hover {
color: rgba(255, 255, 255, 0.75);
}
.login:active {
color: #fff;
}
.footer {
background-color: #f5f5f5;
font-size: .9em;
height: 60px;
}
.footer > .container, .footer > .container-fluid {
padding-right: 15px;
padding-left: 15px;
}
.not-set {
color: #c55;
font-style: italic;
}
/* add sorting icons to gridview sort links */
a.asc:after, a.desc:after {
content: '';
left: 3px;
display: inline-block;
width: 0;
height: 0;
border: solid 5px transparent;
margin: 4px 4px 2px 4px;
background: transparent;
}
a.asc:after {
border-bottom: solid 7px #212529;
border-top-width: 0;
}
a.desc:after {
border-top: solid 7px #212529;
border-bottom-width: 0;
}
.grid-view th,
.grid-view td:last-child {
white-space: nowrap;
}
.grid-view .filters input,
.grid-view .filters select {
min-width: 50px;
}
.hint-block {
display: block;
margin-top: 5px;
color: #999;
}
.error-summary {
color: #a94442;
background: #fdf7f7;
border-left: 3px solid #eed3d7;
padding: 10px 20px;
margin: 0 0 15px 0;
}
/* align the logout "link" (button in form) of the navbar */
.navbar form > button.logout {
padding-top: 7px;
color: rgba(255, 255, 255, 0.5);
}
@media(max-width:767px) {
.navbar form > button.logout {
display:block;
text-align: left;
width: 100%;
padding: 10px 0;
}
}
.navbar form > button.logout:focus,
.navbar form > button.logout:hover {
text-decoration: none;
color: rgba(255, 255, 255, 0.75);
}
.navbar form > button.logout:focus {
outline: none;
}
/* style breadcrumb widget as in previous bootstrap versions */
.breadcrumb {
background-color: var(--bs-gray-200);
border-radius: .25rem;
padding: .75rem 1rem;
}
.breadcrumb-item > a
{
text-decoration: none;
}
.index{
padding-top: 20px;
}
/* Main table styling */
.custom-table {
margin: 0 auto;
border-collapse: separate;
border-spacing: 0;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
width: 100%;
}
/* Header styling */
.custom-table th {
background-color: #99c7e7;
color: #fff;
padding: 15px;
text-align: center;
font-weight: bold;
}
.custom-table th a {
text-decoration: none;
color: #000;
}
/* Row styling */
.custom-table td {
padding: 15px;
text-align: center !important;
border-bottom: 1px solid #ddd;
}
.custom-table tr:last-child td {
border-bottom: none; /* Remove bottom border for the last row */
}
/* Alternating row colors */
.custom-table tr:nth-child(even) {
background-color: #f2f2f2;
}
/* Action buttons */
.blue-back {
background-color: #333; /* Darker background for buttons */
color: white;
border: none;
padding: 8px 12px;
border-radius: 5px;
cursor: pointer;
}
/* Action buttons */
.blue-back {
background-color: #333; /* Darker background for buttons */
}
/* Align filter input text vertically in the middle */
.custom-table input[type="text"] {
padding: 10px;
font-size: 14px;
color: #333; /* Regular text color */
}
/* Style for placeholder text */
.custom-table input::placeholder {
color: #444;
text-align: center;
}
/* Align text vertically in the middle */
.align-middle {
vertical-align: middle;
}
/* Lighter text color */
.text-light-gray {
color: #888888; /* Light grey text */
}
/* Pagination container */
.pagination {
display: flex;
justify-content: center;
align-items: center;
list-style: none;
padding: 0;
margin: 20px 0;
}
/* Pagination item styles */
.pagination li {
margin: 0 5px;
}
/* Pagination link styles */
.pagination li a, .pagination li span {
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
line-height: normal;
text-align: center;
text-decoration: none;
border: 2px solid black;
color: black;
font-size: 16px;
font-weight: bold;
transition: background-color 0.3s, color 0.3s;
}
.pagination li.active.disabled a,
.pagination li.disabled.active a {
background-color: black;
color: white;
border-color: black;
cursor: default;
pointer-events: none;
}
.pagination .active a {
background-color: black;
color: white;
border-color: black;
}
.pagination .first a:hover,
.pagination .last a:hover {
background: none !important;
}
.pagination .first a,
.pagination .last a,
.pagination .last.disabled span,
.pagination .first.disabled span {
border: none;
background: none;
position: relative;
transition: color 0.3s;
}
.pagination .last.disabled span,
.pagination .first.disabled span {
cursor: not-allowed;
}
.pagination .first a, .pagination .last a {
position: relative;
transition: color 0.3s;
}
.pagination li:not(.prev):not(.next):not(.disabled):not(.active) a:hover {
background-color: #ddd;
}
.pagination .prev a, .pagination .next a {
padding: 0;
font-size: 18px;
color: black;
border: none;
transition: color 0.3s ease;
}
.pagination .prev a:hover, .pagination .next a:hover {
color: #555555;
}
.pagination .prev.disabled span,
.pagination .next.disabled span {
cursor: not-allowed;
border: none;
color: #ccc;
}
.pagination li a, .pagination li span {
display: flex;
justify-content: center;
align-items: center;
}
.custom-table .filters input::placeholder {
text-align: left;
}
.custom-table .filters input {
text-align: left;
}
.spacing1{
padding-bottom: 40px;
}
.container1{
padding-top: 10px;
}

BIN
frontend/web/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB