frontend update to tabler beta 19 (#4029)
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
require('./sass/app.scss');
|
require('./sass/_app.scss');
|
||||||
|
|
||||||
// ------ Kimai itself ------
|
// ------ Kimai itself ------
|
||||||
require('./js/KimaiWebLoader.js');
|
require('./js/KimaiWebLoader.js');
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
require('./sass/export-pdf.scss');
|
require('./sass/_export-pdf.scss');
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
require('./sass/invoice-pdf.scss');
|
require('./sass/_invoice-pdf.scss');
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
require('./sass/invoice.scss');
|
require('./sass/_invoice.scss');
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ export default class KimaiAlert extends KimaiPlugin {
|
|||||||
<div class="toast-body">
|
<div class="toast-body">
|
||||||
` + icon + ' ' + message + `
|
` + icon + ' ' + message + `
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="` + translation.get('close') + `"></button>
|
<button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast" aria-label="` + translation.get('close') + `"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|
||||||
|
|||||||
37
assets/sass/_app.scss
Normal file
37
assets/sass/_app.scss
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Kimai time-tracking app.
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import "bootstrap/scss/functions";
|
||||||
|
|
||||||
|
@import "@tabler/core/src/scss/variables";
|
||||||
|
@import "@tabler/core/src/scss/variables-dark";
|
||||||
|
@import "@tabler/core/src/scss/mixins";
|
||||||
|
|
||||||
|
@import "bootstrap/scss/variables";
|
||||||
|
@import "bootstrap/scss/variables-dark";
|
||||||
|
@import "bootstrap/scss/maps";
|
||||||
|
@import "bootstrap/scss/mixins";
|
||||||
|
@import "bootstrap/scss/utilities";
|
||||||
|
|
||||||
|
@import "layout";
|
||||||
|
@import "error-page";
|
||||||
|
@import "print";
|
||||||
|
@import "content";
|
||||||
|
@import "loading-spinner";
|
||||||
|
@import "tables";
|
||||||
|
@import "calendar";
|
||||||
|
@import "ticktac";
|
||||||
|
@import "selectpicker";
|
||||||
|
@import "forms";
|
||||||
|
@import "modal";
|
||||||
|
@import "progressbar";
|
||||||
|
@import "avatar";
|
||||||
|
@import "theme-dark";
|
||||||
|
@import "pages";
|
||||||
|
@import "tabler-fixes";
|
||||||
|
@import "help";
|
||||||
|
@import "rtl";
|
||||||
@@ -7,15 +7,17 @@
|
|||||||
|
|
||||||
@import "bootstrap/scss/functions";
|
@import "bootstrap/scss/functions";
|
||||||
@import "bootstrap/scss/variables";
|
@import "bootstrap/scss/variables";
|
||||||
|
@import "bootstrap/scss/variables-dark";
|
||||||
@import "bootstrap/scss/maps";
|
@import "bootstrap/scss/maps";
|
||||||
@import "bootstrap/scss/mixins";
|
@import "bootstrap/scss/mixins";
|
||||||
|
@import "bootstrap/scss/utilities";
|
||||||
|
|
||||||
@import "bootstrap/scss/reboot";
|
@import "bootstrap/scss/reboot";
|
||||||
@import "bootstrap/scss/type";
|
@import "bootstrap/scss/type";
|
||||||
@import "bootstrap/scss/grid";
|
@import "bootstrap/scss/grid";
|
||||||
@import "bootstrap/scss/tables";
|
@import "bootstrap/scss/tables";
|
||||||
@import "bootstrap/scss/list-group";
|
@import "bootstrap/scss/list-group";
|
||||||
@import "bootstrap/scss/card";
|
@import "bootstrap/scss/card";
|
||||||
@import "bootstrap/scss/utilities";
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: $font-family-sans-serif;
|
font-family: $font-family-sans-serif;
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Kimai time-tracking app.
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import 'variables';
|
|
||||||
@import 'layout';
|
|
||||||
@import 'error-page';
|
|
||||||
@import 'print';
|
|
||||||
@import 'content';
|
|
||||||
@import 'loading-spinner';
|
|
||||||
@import 'tables';
|
|
||||||
@import 'calendar';
|
|
||||||
@import 'ticktac';
|
|
||||||
@import 'selectpicker';
|
|
||||||
@import 'forms';
|
|
||||||
@import 'modal';
|
|
||||||
@import 'progressbar';
|
|
||||||
@import 'avatar';
|
|
||||||
@import 'theme-dark';
|
|
||||||
@import 'pages';
|
|
||||||
@import 'tabler-fixes';
|
|
||||||
@import 'help';
|
|
||||||
@import 'rtl';
|
|
||||||
@@ -3,18 +3,18 @@ $avatar-base-size: 30;
|
|||||||
|
|
||||||
.initials {
|
.initials {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: ceil($avatar-base-size / 2 - 2)+px;
|
font-size: ceil(calc($avatar-base-size / 2 - 2))+px;
|
||||||
}
|
}
|
||||||
|
|
||||||
$avatarSizes: "xs" .75, "sm" 1.25, "md" 1.5, "lg" 2;
|
$avatarSizes: "xs" .75, "sm" 1.25, "md" 1.5, "lg" 2;
|
||||||
|
|
||||||
@each $avatarSizeName, $avatarBaseSize in $avatarSizes {
|
@each $avatarSizeName, $avatarBaseSize in $avatarSizes {
|
||||||
.avatar-#{$avatarSizeName} {
|
.avatar-#{$avatarSizeName} {
|
||||||
width: ceil($avatar-base-size * $avatarBaseSize)+px;
|
width: ceil(calc($avatar-base-size * $avatarBaseSize))+px;
|
||||||
height: ceil($avatar-base-size * $avatarBaseSize)+px;
|
height: ceil(calc($avatar-base-size * $avatarBaseSize))+px;
|
||||||
|
|
||||||
.initials {
|
.initials {
|
||||||
font-size: ceil($avatar-base-size * $avatarBaseSize / 2 - 2)+px;
|
font-size: ceil(calc($avatar-base-size * $avatarBaseSize / 2 - 2))+px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,10 +23,10 @@ $avatarSizes: "xs" .75, "sm" 1.25, "md" 1.5, "lg" 2;
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: 3px solid #fff;
|
border: 3px solid #fff;
|
||||||
.avatar {
|
.avatar {
|
||||||
width: ceil($avatar-base-size * 2.75)+px;
|
width: ceil(calc($avatar-base-size * 2.75))+px;
|
||||||
height: ceil($avatar-base-size * 2.75)+px;
|
height: ceil(calc($avatar-base-size * 2.75))+px;
|
||||||
.initials {
|
.initials {
|
||||||
font-size: ceil($avatar-base-size * 2.75 / 2 - 2)+px;
|
font-size: ceil(calc($avatar-base-size * 2.75 / 2 - 2))+px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,3 +39,8 @@ table.dataTable.table > tbody > tr > td {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* decreases the margin between avatars, see https://github.com/tabler/tabler/issues/1567 */
|
||||||
|
.avatar-list-stacked .avatar {
|
||||||
|
margin-right: calc(var(--tblr-avatar-size)*-.1)!important;
|
||||||
|
}
|
||||||
@@ -5,6 +5,11 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* used in security screens and other full-size pages */
|
||||||
|
.page-center {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
/* make sure that elements can be hidden without taking space (eg. hidden modals like the search or column visibility) */
|
/* make sure that elements can be hidden without taking space (eg. hidden modals like the search or column visibility) */
|
||||||
.hidden-no-space {
|
.hidden-no-space {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -33,11 +38,6 @@ td {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.label-gray {
|
|
||||||
background-color: $gray-lte;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.open-edit {
|
.open-edit {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|||||||
19
assets/sass/fontawesome.scss
vendored
19
assets/sass/fontawesome.scss
vendored
@@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Kimai time-tracking app.
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
$fa-font-path: "~@fortawesome/fontawesome-free/webfonts/";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/fontawesome";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/regular";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/solid";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/brands";
|
|
||||||
|
|
||||||
/* all icon-buttons with fontawesome icons */
|
|
||||||
.btn-icon i.icon {
|
|
||||||
font-size: 16px;
|
|
||||||
color: $text-muted;
|
|
||||||
padding-top: 2px;
|
|
||||||
}
|
|
||||||
@@ -38,3 +38,8 @@ h1.navbar-brand a {
|
|||||||
/* bootstrap thead.sticky-top has z-index 1020 and the reporting form dropdowns hide behind that */
|
/* bootstrap thead.sticky-top has z-index 1020 and the reporting form dropdowns hide behind that */
|
||||||
z-index: 1021;
|
z-index: 1021;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* reduce the default font size for the brand header */
|
||||||
|
.navbar {
|
||||||
|
--tblr-navbar-brand-font-size: 1rem;
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
z-index: 50;
|
z-index: 1021;
|
||||||
background: rgba(255, 255, 255, 0.7);
|
background: rgba(255, 255, 255, 0.7);
|
||||||
> .fas {
|
> .fas {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -1,23 +1,22 @@
|
|||||||
@import "tom-select/dist/scss/tom-select.bootstrap5";
|
|
||||||
|
|
||||||
/* bootstrap thead.sticky-top has z-index 1020 and tomselect dropdowns often hide behind that */
|
/* bootstrap thead.sticky-top has z-index 1020 and tomselect dropdowns often hide behind that */
|
||||||
.ts-dropdown {
|
.ts-dropdown {
|
||||||
z-index: 1021;
|
z-index: 1021;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* can be removed if no error is reported. it is unknown why this was added */
|
||||||
|
/*
|
||||||
.ts-control {
|
.ts-control {
|
||||||
> input {
|
> input {
|
||||||
min-width: unset;
|
min-width: unset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
.ts-dropdown {
|
.ts-dropdown {
|
||||||
.optgroup-header {
|
.optgroup {
|
||||||
background-color: #eee;
|
[data-selectable].option {
|
||||||
color: #000;
|
padding-left: 20px;
|
||||||
font-weight: 600;
|
}
|
||||||
}
|
|
||||||
[data-selectable].option {
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
@import "@tabler/core/src/scss/variables";
|
|
||||||
|
|
||||||
/* fix for vertical labels in date-time pickers, if they are used in half-column forms, e.g. "create tasks" or "create expenses" */
|
/* fix for vertical labels in date-time pickers, if they are used in half-column forms, e.g. "create tasks" or "create expenses" */
|
||||||
fieldset legend.col-form-label {
|
fieldset legend.col-form-label {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
@import "variables";
|
|
||||||
|
|
||||||
table.dataTable {
|
table.dataTable {
|
||||||
clear: both;
|
clear: both;
|
||||||
@@ -93,7 +92,7 @@ table.dataTable {
|
|||||||
&.summary td {
|
&.summary td {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: 0;
|
border: 0;
|
||||||
background-color: var(--tblr-table-striped-bg);
|
background-color: var(--tblr-bg-surface-secondary);
|
||||||
}
|
}
|
||||||
th.multiCheckbox {
|
th.multiCheckbox {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
@@ -118,30 +117,17 @@ table.dataTable {
|
|||||||
padding: .3em .6em .3em;
|
padding: .3em .6em .3em;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
span.label-activity,
|
|
||||||
span.label-project,
|
|
||||||
span.label-customer {
|
|
||||||
a {
|
|
||||||
color: unset;
|
|
||||||
padding-bottom: 2px;
|
|
||||||
border-bottom: 1px dotted $gray-lte;
|
|
||||||
&:hover {
|
|
||||||
border-bottom: 1px dotted darken($gray-lte, 20);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
span.label-invisible {
|
span.label-invisible {
|
||||||
opacity: 0.8;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
th.weekend,
|
th.weekend,
|
||||||
td.weekend {
|
td.weekend {
|
||||||
background-color: #f9f9f9;
|
background-color: var(--tblr-bg-surface-secondary);
|
||||||
}
|
}
|
||||||
/* order is important, "today” should overwrite "weekend" therefor later in the file */
|
/* order is important, "today” should overwrite "weekend" therefor later in the file */
|
||||||
th.today,
|
th.today {
|
||||||
td.today {
|
background-color: var(--tblr-highlight-bg);
|
||||||
background-color: $highlight-today;
|
|
||||||
}
|
}
|
||||||
th.total,
|
th.total,
|
||||||
td.total {
|
td.total {
|
||||||
|
|||||||
@@ -1,48 +1,7 @@
|
|||||||
@include dark-mode {
|
@include color-mode(dark, true) {
|
||||||
.form-check-input {
|
|
||||||
border-color: $input-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* selectpicker.scss / Tom Select */
|
|
||||||
.ts-wrapper.form-select .ts-control,
|
|
||||||
.ts-wrapper.form-select.single.input-active .ts-control {
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
.ts-dropdown {
|
|
||||||
background-color: $dark-mode-lighten;
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
.ts-control {
|
|
||||||
> input {
|
|
||||||
min-width: unset;
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item {
|
|
||||||
background-color: $dark;
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.optgroup-header {
|
|
||||||
background-color: $dropdown-dark-bg;
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.dataTable {
|
table.dataTable {
|
||||||
th.weekend, td.weekend {
|
th.today {
|
||||||
background-color: $dark-mode-weekend;
|
color: var(--tblr-muted);
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
/* must be defined after weekend, to overwrite it */
|
|
||||||
th.today, td.today {
|
|
||||||
background-color: $dark-mode-today;
|
|
||||||
color: $dark-mode-text;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr {
|
|
||||||
&.summary td {
|
|
||||||
background-color: $dark-mode-darken;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,7 +9,7 @@
|
|||||||
background: rgba(0, 0, 0, 0.5);
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
|
||||||
> .fas {
|
> .fas {
|
||||||
color: $dark-mode-text;
|
color: var(--tblr-white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -37,8 +37,6 @@
|
|||||||
@include media-breakpoint-down(lg) {
|
@include media-breakpoint-down(lg) {
|
||||||
aside.navbar .btn-outline-white,
|
aside.navbar .btn-outline-white,
|
||||||
header.navbar .btn-outline-white {
|
header.navbar .btn-outline-white {
|
||||||
background-color: var(--tblr-body-color);
|
|
||||||
border-color: hsla(0,0%,100%,.2);
|
border-color: hsla(0,0%,100%,.2);
|
||||||
color: hsla(0,0%,100%,.7);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the Kimai time-tracking app.
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "bootstrap/scss/functions";
|
|
||||||
@import "bootstrap/scss/variables";
|
|
||||||
@import "bootstrap/scss/mixins";
|
|
||||||
|
|
||||||
@import "@tabler/core/src/scss/variables";
|
|
||||||
@import "@tabler/core/src/scss/mixins";
|
|
||||||
|
|
||||||
/* For highlighting rows, fieldsets and so on */
|
|
||||||
$highlight-bg: #f5f5f5;
|
|
||||||
$highlight-today: #fcf8e3;
|
|
||||||
|
|
||||||
$red: #dd4b39;
|
|
||||||
$green: #00a65a;
|
|
||||||
$yellow: #f0ad4e;
|
|
||||||
$blue: #0073b7;
|
|
||||||
|
|
||||||
$gray-lte: #d2d6de;
|
|
||||||
$kimai-default: $gray-lte;
|
|
||||||
|
|
||||||
$box-border-radius: 3px;
|
|
||||||
|
|
||||||
$dark-mode-today: var(--tblr-blue);
|
|
||||||
$dark-mode-weekend: lighten($dark, 5%) !default;
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"friendsofsymfony/rest-bundle": "^3.0",
|
"friendsofsymfony/rest-bundle": "^3.0",
|
||||||
"gedmo/doctrine-extensions": "^3.6",
|
"gedmo/doctrine-extensions": "^3.6",
|
||||||
"jms/serializer-bundle": "^5.0",
|
"jms/serializer-bundle": "^5.0",
|
||||||
"kevinpapst/tabler-bundle": "^0.15",
|
"kevinpapst/tabler-bundle": "^0.16",
|
||||||
"league/csv": "^9.4",
|
"league/csv": "^9.4",
|
||||||
"mpdf/mpdf": "^8.0",
|
"mpdf/mpdf": "^8.0",
|
||||||
"nelmio/api-doc-bundle": "^4.0",
|
"nelmio/api-doc-bundle": "^4.0",
|
||||||
|
|||||||
14
composer.lock
generated
14
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "276b8b25218c04ae6527eccfec7f1464",
|
"content-hash": "26d6641fd4c8f977b0a50cab05e1df87",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bacon/bacon-qr-code",
|
"name": "bacon/bacon-qr-code",
|
||||||
@@ -2416,16 +2416,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "kevinpapst/tabler-bundle",
|
"name": "kevinpapst/tabler-bundle",
|
||||||
"version": "0.15",
|
"version": "0.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/kevinpapst/TablerBundle.git",
|
"url": "https://github.com/kevinpapst/TablerBundle.git",
|
||||||
"reference": "570cdda287a49127217f0f2aa4425d3174073bdb"
|
"reference": "c5986daa3595fc5163f7d0cb15f69dc5f696b987"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/kevinpapst/TablerBundle/zipball/570cdda287a49127217f0f2aa4425d3174073bdb",
|
"url": "https://api.github.com/repos/kevinpapst/TablerBundle/zipball/c5986daa3595fc5163f7d0cb15f69dc5f696b987",
|
||||||
"reference": "570cdda287a49127217f0f2aa4425d3174073bdb",
|
"reference": "c5986daa3595fc5163f7d0cb15f69dc5f696b987",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -2474,7 +2474,7 @@
|
|||||||
"description": "Admin/Backend theme bundle for Symfony based on Tabler.io",
|
"description": "Admin/Backend theme bundle for Symfony based on Tabler.io",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/kevinpapst/TablerBundle/issues",
|
"issues": "https://github.com/kevinpapst/TablerBundle/issues",
|
||||||
"source": "https://github.com/kevinpapst/TablerBundle/tree/0.15"
|
"source": "https://github.com/kevinpapst/TablerBundle/tree/0.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2486,7 +2486,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-04-06T16:30:28+00:00"
|
"time": "2023-05-15T12:01:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laminas/laminas-escaper",
|
"name": "laminas/laminas-escaper",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"@fullcalendar/interaction": "^5.11",
|
"@fullcalendar/interaction": "^5.11",
|
||||||
"@fullcalendar/timegrid": "^5.11",
|
"@fullcalendar/timegrid": "^5.11",
|
||||||
"@symfony/webpack-encore": "^4.0",
|
"@symfony/webpack-encore": "^4.0",
|
||||||
"@tabler/core": "1.0.0-beta16",
|
"@tabler/core": "1.0.0-beta18",
|
||||||
"chart.js": "^3.9",
|
"chart.js": "^3.9",
|
||||||
"core-js": "^3.6",
|
"core-js": "^3.6",
|
||||||
"eslint": "^8.0",
|
"eslint": "^8.0",
|
||||||
@@ -44,9 +44,9 @@
|
|||||||
"gridstack": "^7.1",
|
"gridstack": "^7.1",
|
||||||
"litepicker": "^2.0",
|
"litepicker": "^2.0",
|
||||||
"luxon": "^3.3",
|
"luxon": "^3.3",
|
||||||
"node-sass": "^8.0",
|
"sass": "^1.62.1",
|
||||||
"sass-loader": "^13.2",
|
"sass-loader": "^13.2",
|
||||||
"tom-select": "^2.0",
|
"tom-select": "^2.2",
|
||||||
"webpack": "^5.74.0",
|
"webpack": "^5.74.0",
|
||||||
"webpack-cli": "^4.10.0",
|
"webpack-cli": "^4.10.0",
|
||||||
"webpack-notifier": "^1.13"
|
"webpack-notifier": "^1.13"
|
||||||
|
|||||||
1
public/build/app.80fb16e8.css
Normal file
1
public/build/app.80fb16e8.css
Normal file
File diff suppressed because one or more lines are too long
2
public/build/app.bed7a1bf.js
Normal file
2
public/build/app.bed7a1bf.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* Bootstrap v5.2.2 (https://getbootstrap.com/)
|
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* Bootstrap v5.2.2 (https://getbootstrap.com/)
|
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -3,16 +3,16 @@
|
|||||||
"app": {
|
"app": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/runtime.f0079159.js",
|
"/build/runtime.f0079159.js",
|
||||||
"/build/app.c61734af.js"
|
"/build/app.bed7a1bf.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/app.d3ccebf5.css"
|
"/build/app.80fb16e8.css"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"export-pdf": {
|
"export-pdf": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/runtime.f0079159.js",
|
"/build/runtime.f0079159.js",
|
||||||
"/build/export-pdf.587575e7.js"
|
"/build/export-pdf.d367a32e.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/export-pdf.d8a6c23b.css"
|
"/build/export-pdf.d8a6c23b.css"
|
||||||
@@ -21,16 +21,16 @@
|
|||||||
"invoice": {
|
"invoice": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/runtime.f0079159.js",
|
"/build/runtime.f0079159.js",
|
||||||
"/build/invoice.c8ae95ad.js"
|
"/build/invoice.2604495e.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/invoice.d0ae14e1.css"
|
"/build/invoice.5bea118e.css"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"invoice-pdf": {
|
"invoice-pdf": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/runtime.f0079159.js",
|
"/build/runtime.f0079159.js",
|
||||||
"/build/invoice-pdf.d86b82ee.js"
|
"/build/invoice-pdf.ce9aace0.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/invoice-pdf.2b749265.css"
|
"/build/invoice-pdf.2b749265.css"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
"calendar": {
|
"calendar": {
|
||||||
"js": [
|
"js": [
|
||||||
"/build/runtime.f0079159.js",
|
"/build/runtime.f0079159.js",
|
||||||
"/build/calendar.8577d9cd.js"
|
"/build/calendar.198a5c2b.js"
|
||||||
],
|
],
|
||||||
"css": [
|
"css": [
|
||||||
"/build/calendar.bb473428.css"
|
"/build/calendar.bb473428.css"
|
||||||
@@ -63,16 +63,16 @@
|
|||||||
},
|
},
|
||||||
"integrity": {
|
"integrity": {
|
||||||
"/build/runtime.f0079159.js": "sha384-H22sAW1aTvyIPqvHOvGXWSWTxf0y6mptp+MsVmyXCfjx/WJjBbhX9gbUZ+qIuihV",
|
"/build/runtime.f0079159.js": "sha384-H22sAW1aTvyIPqvHOvGXWSWTxf0y6mptp+MsVmyXCfjx/WJjBbhX9gbUZ+qIuihV",
|
||||||
"/build/app.c61734af.js": "sha384-EP0ldSWtoYJlwRuaj2IjQCncdMT5rlz4cfZgDzciCd0i2pGn6MEijujB4bUU0PCP",
|
"/build/app.bed7a1bf.js": "sha384-OCg9guQNr23augSqlruX0IK2FWrKO1MWMx0sBRIzAkKgg561U4stZRHfxQbrwJeG",
|
||||||
"/build/app.d3ccebf5.css": "sha384-9ufQd+D9ebk0tkPhQvGxswVMeHGES5GgJGK5lsDFS9+dQmdKbxwB/58ZSCVA3N/2",
|
"/build/app.80fb16e8.css": "sha384-kDryvDuNVyJAdIyQEuF5NpT1duQ4VmScmUNtha3B0ssQyzLuQdWBz/G3m70wao12",
|
||||||
"/build/export-pdf.587575e7.js": "sha384-J50GStmmfVwUTN4dIRQ02eg9hyzGFPSzpTtpPody92j0V6zCqw+s5l8+ZhVTugeW",
|
"/build/export-pdf.d367a32e.js": "sha384-Z5baqnzjI636nYFs4g63ViIKBZKRW4Jhv/7PQmTEQlqhfA7eK0vUMUtiyy0R5A9u",
|
||||||
"/build/export-pdf.d8a6c23b.css": "sha384-ztepocHE4rnGE9eKZ4kL6jTKaePUyiwiB9TjJjstjpf/ckcKg1HedrEOOk/8ElJg",
|
"/build/export-pdf.d8a6c23b.css": "sha384-ztepocHE4rnGE9eKZ4kL6jTKaePUyiwiB9TjJjstjpf/ckcKg1HedrEOOk/8ElJg",
|
||||||
"/build/invoice.c8ae95ad.js": "sha384-2eVY7MBiMQxo1vhfizU+fYfEZbz9bYUdzqxnpTQhxpYiLaxeSV4WnaObq2G7/Pks",
|
"/build/invoice.2604495e.js": "sha384-D6JvhGSqlx7z72b/qD3nF3QDXPy+XsCSRGtWfs1icjDKOcd2UzuXwuSa/E1Fg2TJ",
|
||||||
"/build/invoice.d0ae14e1.css": "sha384-DZ9f2EsTAIOVoFBZe4jMaW3R6yNVGCtcn3Dq3hxZnWRDdFzhyt1O1iQqRZUyQFTM",
|
"/build/invoice.5bea118e.css": "sha384-KNyGdZSTXnAi8Tn2WqrxJnCP18yRK7BrZTHKCAGAEtl5/4S/XAe4IHKpM5gfsmB7",
|
||||||
"/build/invoice-pdf.d86b82ee.js": "sha384-A0HJqP+MvEqQr1uG8wViCeEWxBRKyS6l8D+Ao4pFYHUA12gCC1gRYhk9I+SJPvZq",
|
"/build/invoice-pdf.ce9aace0.js": "sha384-mtZkXrpsXFMX2YvmmTlCm91QgsTlZLzLJnDAFcTuBDtDZ7TNkqLYkfCeLzFLVfwb",
|
||||||
"/build/invoice-pdf.2b749265.css": "sha384-DXXgkz2WWnrWnfBnXX5fmfPQSPb98upMnWxYKwTGYS04EhrPIWfDCutB2unIrWh7",
|
"/build/invoice-pdf.2b749265.css": "sha384-DXXgkz2WWnrWnfBnXX5fmfPQSPb98upMnWxYKwTGYS04EhrPIWfDCutB2unIrWh7",
|
||||||
"/build/chart.f5becfac.js": "sha384-GSqETm8wULiVXyizvwRompfwu63r/C0Qd/AvrHDE4cqAKiIGCssb3QyBtGu1WN+W",
|
"/build/chart.f5becfac.js": "sha384-GSqETm8wULiVXyizvwRompfwu63r/C0Qd/AvrHDE4cqAKiIGCssb3QyBtGu1WN+W",
|
||||||
"/build/calendar.8577d9cd.js": "sha384-1qlF+4tr7/zve+wvZef7sVcbUxhK0/yEm5Hbuct8K/ZV4JtENdNY7YRLqOcZ/8Y3",
|
"/build/calendar.198a5c2b.js": "sha384-Rx1eiPfZeAO2iapu94+f3xx4tjj7xbtkUaZwycaxMU+v/bYLjAJIL+VSjiBPYnTg",
|
||||||
"/build/calendar.bb473428.css": "sha384-900W9o8666Qpw21rLP7hn5Ql8tWd40k0IcE3QpFm7E7V6bKva7xQgGlyzVuuh4GK",
|
"/build/calendar.bb473428.css": "sha384-900W9o8666Qpw21rLP7hn5Ql8tWd40k0IcE3QpFm7E7V6bKva7xQgGlyzVuuh4GK",
|
||||||
"/build/dashboard.6774a712.js": "sha384-lBwkNqUPv+IBbznagiFakY2BOIueq/Bg89wHO2XeM9YAZ51rPkrvdMd+XmFupHsM",
|
"/build/dashboard.6774a712.js": "sha384-lBwkNqUPv+IBbznagiFakY2BOIueq/Bg89wHO2XeM9YAZ51rPkrvdMd+XmFupHsM",
|
||||||
"/build/dashboard.18f5a8b7.css": "sha384-PBD8ftb2yBoSjRe2sN5Xb4dEz045kOEUfcIufdSis+tWoWdAx5j4Yic+F/6CYbrP"
|
"/build/dashboard.18f5a8b7.css": "sha384-PBD8ftb2yBoSjRe2sN5Xb4dEz045kOEUfcIufdSis+tWoWdAx5j4Yic+F/6CYbrP"
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[185],{8810:function(i,n,u){u(8568)},8568:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=8810,i(i.s=n)}]);
|
|
||||||
1
public/build/export-pdf.d367a32e.js
Normal file
1
public/build/export-pdf.d367a32e.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[185],{8810:function(i,n,u){u(9508)},9508:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=8810,i(i.s=n)}]);
|
||||||
1
public/build/invoice-pdf.ce9aace0.js
Normal file
1
public/build/invoice-pdf.ce9aace0.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[266],{35:function(i,n,u){u(6197)},6197:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=35,i(i.s=n)}]);
|
||||||
@@ -1 +0,0 @@
|
|||||||
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[266],{35:function(i,n,u){u(297)},297:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=35,i(i.s=n)}]);
|
|
||||||
1
public/build/invoice.2604495e.js
Normal file
1
public/build/invoice.2604495e.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[149],{474:function(i,n,u){u(9822)},9822:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=474,i(i.s=n)}]);
|
||||||
1
public/build/invoice.5bea118e.css
Normal file
1
public/build/invoice.5bea118e.css
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[149],{474:function(i,n,u){u(3648)},3648:function(i,n,u){"use strict";u.r(n)}},function(i){var n;n=474,i(i.s=n)}]);
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"build/app.css": "/build/app.d3ccebf5.css",
|
"build/app.css": "/build/app.80fb16e8.css",
|
||||||
"build/app.js": "/build/app.c61734af.js",
|
"build/app.js": "/build/app.bed7a1bf.js",
|
||||||
"build/export-pdf.css": "/build/export-pdf.d8a6c23b.css",
|
"build/export-pdf.css": "/build/export-pdf.d8a6c23b.css",
|
||||||
"build/export-pdf.js": "/build/export-pdf.587575e7.js",
|
"build/export-pdf.js": "/build/export-pdf.d367a32e.js",
|
||||||
"build/invoice.css": "/build/invoice.d0ae14e1.css",
|
"build/invoice.css": "/build/invoice.5bea118e.css",
|
||||||
"build/invoice.js": "/build/invoice.c8ae95ad.js",
|
"build/invoice.js": "/build/invoice.2604495e.js",
|
||||||
"build/invoice-pdf.css": "/build/invoice-pdf.2b749265.css",
|
"build/invoice-pdf.css": "/build/invoice-pdf.2b749265.css",
|
||||||
"build/invoice-pdf.js": "/build/invoice-pdf.d86b82ee.js",
|
"build/invoice-pdf.js": "/build/invoice-pdf.ce9aace0.js",
|
||||||
"build/chart.js": "/build/chart.f5becfac.js",
|
"build/chart.js": "/build/chart.f5becfac.js",
|
||||||
"build/calendar.css": "/build/calendar.bb473428.css",
|
"build/calendar.css": "/build/calendar.bb473428.css",
|
||||||
"build/calendar.js": "/build/calendar.8577d9cd.js",
|
"build/calendar.js": "/build/calendar.198a5c2b.js",
|
||||||
"build/dashboard.css": "/build/dashboard.18f5a8b7.css",
|
"build/dashboard.css": "/build/dashboard.18f5a8b7.css",
|
||||||
"build/dashboard.js": "/build/dashboard.6774a712.js",
|
"build/dashboard.js": "/build/dashboard.6774a712.js",
|
||||||
"build/runtime.js": "/build/runtime.f0079159.js"
|
"build/runtime.js": "/build/runtime.f0079159.js"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
namespace App\EventSubscriber;
|
namespace App\EventSubscriber;
|
||||||
|
|
||||||
use App\Configuration\LocaleService;
|
use App\Configuration\LocaleService;
|
||||||
|
use App\Constants;
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Entity\UserPreference;
|
use App\Entity\UserPreference;
|
||||||
use KevinPapst\TablerBundle\Helper\ContextHelper;
|
use KevinPapst\TablerBundle\Helper\ContextHelper;
|
||||||
@@ -41,6 +42,8 @@ final class ThemeOptionsSubscriber implements EventSubscriberInterface
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->helper->setAssetVersion((string) Constants::VERSION_ID);
|
||||||
|
|
||||||
if ($this->localeService->isRightToLeft(\Locale::getDefault())) {
|
if ($this->localeService->isRightToLeft(\Locale::getDefault())) {
|
||||||
$this->helper->setIsRightToLeft(true);
|
$this->helper->setIsRightToLeft(true);
|
||||||
}
|
}
|
||||||
@@ -66,8 +69,7 @@ final class ThemeOptionsSubscriber implements EventSubscriberInterface
|
|||||||
$this->helper->setIsCondensedUserMenu(false);
|
$this->helper->setIsCondensedUserMenu(false);
|
||||||
$this->helper->setIsCondensedNavbar(false);
|
$this->helper->setIsCondensedNavbar(false);
|
||||||
$this->helper->setIsNavbarOverlapping(false);
|
$this->helper->setIsNavbarOverlapping(false);
|
||||||
if (!$this->helper->isDarkMode()) {
|
$this->helper->setIsNavbarDark(true);
|
||||||
$this->helper->setIsNavbarDark(true);
|
$this->helper->setIsHeaderDark($this->helper->isDarkMode());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,27 +12,27 @@
|
|||||||
<h3 class="m-0 mb-1">
|
<h3 class="m-0 mb-1">
|
||||||
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank">{{ constant('App\\Constants::SOFTWARE') }}</a>
|
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank">{{ constant('App\\Constants::SOFTWARE') }}</a>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="text-muted">
|
<div class="text-body-secondary">
|
||||||
{{ constant('App\\Constants::VERSION') }}
|
{{ constant('App\\Constants::VERSION') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<a href="{{ ''|docu_link }}" target="_blank" class="card-btn">
|
<a href="{{ ''|docu_link }}" target="_blank" class="card-btn">
|
||||||
<i class="me-2 text-muted {{ 'help'|icon(false) }}"></i>
|
<i class="me-2 text-body-secondary {{ 'help'|icon(false) }}"></i>
|
||||||
{{ 'help'|trans({}, 'about') }}
|
{{ 'help'|trans({}, 'about') }}
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ constant('App\\Constants::GITHUB') }}discussions" target="_blank" class="card-btn">
|
<a href="{{ constant('App\\Constants::GITHUB') }}discussions" target="_blank" class="card-btn">
|
||||||
<i class="me-2 text-muted {{ 'fab fa-github'|icon(false) }}"></i>
|
<i class="me-2 text-body-secondary {{ 'fab fa-github'|icon(false) }}"></i>
|
||||||
{{ 'support'|trans({}, 'about') }}
|
{{ 'support'|trans({}, 'about') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank" class="card-btn">
|
<a href="{{ constant('App\\Constants::HOMEPAGE') }}" target="_blank" class="card-btn">
|
||||||
<i class="me-2 text-muted {{ 'home'|icon(false) }}"></i>
|
<i class="me-2 text-body-secondary {{ 'home'|icon(false) }}"></i>
|
||||||
{{ 'website'|trans({}, 'about') }}
|
{{ 'website'|trans({}, 'about') }}
|
||||||
</a>
|
</a>
|
||||||
<a href="{{ constant('App\\Constants::HOMEPAGE') }}/donate/" target="_blank" class="card-btn">
|
<a href="{{ constant('App\\Constants::HOMEPAGE') }}/donate/" target="_blank" class="card-btn">
|
||||||
<i class="me-2 text-muted {{ 'fas fa-hand-holding-heart'|icon(false) }}"></i>
|
<i class="me-2 text-body-secondary {{ 'fas fa-hand-holding-heart'|icon(false) }}"></i>
|
||||||
{{ 'donate'|trans({}, 'about') }}
|
{{ 'donate'|trans({}, 'about') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -92,11 +92,11 @@
|
|||||||
<i class="fa-2x fas fa-balance-scale"></i>
|
<i class="fa-2x fas fa-balance-scale"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<small class="text-muted">{{ constant('\\App\\Constants::SOFTWARE') }} is licensed under the</small>
|
<small class="text-body-secondary">{{ constant('\\App\\Constants::SOFTWARE') }} is licensed under the</small>
|
||||||
<h3 class="lh-1">GNU Affero General Public License v3.0</h3>
|
<h3 class="lh-1">GNU Affero General Public License v3.0</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted mb-3">
|
<div class="text-body-secondary mb-3">
|
||||||
Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications,
|
Permissions of this strongest copyleft license are conditioned on making available complete source code of licensed works and modifications,
|
||||||
which include larger works using a licensed work, under the same license.
|
which include larger works using a licensed work, under the same license.
|
||||||
Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.
|
Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.
|
||||||
|
|||||||
@@ -157,7 +157,7 @@
|
|||||||
{% if block('table_actions') is defined %}
|
{% if block('table_actions') is defined %}
|
||||||
{{ block('table_actions') }}
|
{{ block('table_actions') }}
|
||||||
{% elseif block('breadcrumb') is defined %}
|
{% elseif block('breadcrumb') is defined %}
|
||||||
<div class="text-muted mt-1">
|
<div class="text-body-secondary mt-1">
|
||||||
{{ block('breadcrumb') }}
|
{{ block('breadcrumb') }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
{% if source.blockInclude is not null and entry.blockName is not null and block(entry.blockName, source.blockInclude) is defined %}
|
{% if source.blockInclude is not null and entry.blockName is not null and block(entry.blockName, source.blockInclude) is defined %}
|
||||||
{{ block(entry.blockName, source.blockInclude) }}
|
{{ block(entry.blockName, source.blockInclude) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="d-block text-muted text-truncate mt-n1">{{ entry.title }}</span>
|
<span class="d-block text-body-secondary text-truncate mt-n1">{{ entry.title }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
{% import "macros/widgets.html.twig" as widgets %}
|
{% import "macros/widgets.html.twig" as widgets %}
|
||||||
{{ title }}
|
{{ title }}
|
||||||
{% if project is not null %}
|
{% if project is not null %}
|
||||||
<small class="d-block text-muted text-truncate mt-n1">{{ project }}{% if customer is not null %}, {{ customer }}{% endif %}</small>
|
<small class="d-block text-body-secondary text-truncate mt-n1">{{ project }}{% if customer is not null %}, {{ customer }}{% endif %}</small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</h5>
|
</h5>
|
||||||
<button type="button" class="btn-close{% if tabler_bundle.isDarkMode() %} btn-close-white{% endif %}" data-bs-dismiss="modal" aria-label="{{ 'action.close'|trans }}"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ 'action.close'|trans }}"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
{% block modal_body %}
|
{% block modal_body %}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@
|
|||||||
{%- elseif '.ERROR' in logLine -%}
|
{%- elseif '.ERROR' in logLine -%}
|
||||||
{%- set logLineClass = 'text-warning text-bold' -%}
|
{%- set logLineClass = 'text-warning text-bold' -%}
|
||||||
{%- elseif '.DEBUG' in logLine -%}
|
{%- elseif '.DEBUG' in logLine -%}
|
||||||
{%- set logLineClass = 'text-muted' -%}
|
{%- set logLineClass = 'text-body-secondary' -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
<span class="{{ logLineClass }}">{{- logLine -}}</span>
|
<span class="{{ logLineClass }}">{{- logLine -}}</span>
|
||||||
{%- endfor %}</pre>
|
{%- endfor %}</pre>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<div class="text-truncate">
|
<div class="text-truncate">
|
||||||
<strong>{{ widgets.username(comment.createdBy) }}</strong>
|
<strong>{{ widgets.username(comment.createdBy) }}</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted">{{ comment.createdAt|date_time }}</div>
|
<div class="text-body-secondary">{{ comment.createdAt|date_time }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto align-self-center">
|
<div class="col-auto align-self-center">
|
||||||
{% if route_pin is not null %}
|
{% if route_pin is not null %}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
{% block box_attributes %}id="team_listing_box"{% endblock %}
|
{% block box_attributes %}id="team_listing_box"{% endblock %}
|
||||||
{% block box_title %}
|
{% block box_title %}
|
||||||
{{ 'permissions'|trans({}, 'actions') }}
|
{{ 'permissions'|trans({}, 'actions') }}
|
||||||
{% if teams|length > 0 %}<small class="text-muted d-none d-sm-inline ms-1">{{ 'team.visibility_restricted'|trans({}, 'teams') }}</small>{% endif %}
|
{% if teams|length > 0 %}<small class="text-body-secondary d-none d-sm-inline ms-1">{{ 'team.visibility_restricted'|trans({}, 'teams') }}</small>{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block box_body_class %}{% if teams|length > 0 %}p-0{% endif %}{% endblock %}
|
{% block box_body_class %}{% if teams|length > 0 %}p-0{% endif %}{% endblock %}
|
||||||
{% block box_body %}
|
{% block box_body %}
|
||||||
|
|||||||
@@ -103,9 +103,9 @@
|
|||||||
{{ form_errors(form.user) }}
|
{{ form_errors(form.user) }}
|
||||||
</div>
|
</div>
|
||||||
{% if user is not null %}
|
{% if user is not null %}
|
||||||
<div class="text-muted">{{- form.vars.data.user.title -}}</div>
|
<div class="text-body-secondary">{{- form.vars.data.user.title -}}</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="text-muted">__TITLE__</div>
|
<div class="text-body-secondary">__TITLE__</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
{% import "invoice/actions.html.twig" as actions %}
|
{% import "invoice/actions.html.twig" as actions %}
|
||||||
|
|
||||||
{% block datatable_row %}
|
{% block datatable_row %}
|
||||||
<tr class="modal-ajax-form open-edit{% if entry.canceled %} warning text-muted{% endif %}" data-href="{{ path('admin_invoice_edit', {'id': entry.id}) }}">
|
<tr class="modal-ajax-form open-edit{% if entry.canceled %} text-body-secondary{% endif %}" data-href="{{ path('admin_invoice_edit', {'id': entry.id}) }}">
|
||||||
<td class="{{ tables.class(dataTable, 'avatar') }}">{{ widgets.user_avatar(entry.user) }}</td>
|
<td class="{{ tables.class(dataTable, 'avatar') }}">{{ widgets.user_avatar(entry.user) }}</td>
|
||||||
<td class="{{ tables.class(dataTable, 'date') }}">{{ entry.createdAt|date_short }}</td>
|
<td class="{{ tables.class(dataTable, 'date') }}">{{ entry.createdAt|date_short }}</td>
|
||||||
<td class="{{ tables.class(dataTable, 'user') }}">{{ widgets.label_user(entry.user) }}</td>
|
<td class="{{ tables.class(dataTable, 'user') }}">{{ widgets.label_user(entry.user) }}</td>
|
||||||
|
|||||||
@@ -262,7 +262,7 @@
|
|||||||
{{ form_end(multi_update_form) }}
|
{{ form_end(multi_update_form) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if route is not empty and entries is not null %}
|
{% if route is not empty and entries is not null %}
|
||||||
<p class="d-none d-sm-block m-0 text-muted multi_update_form_hide">
|
<p class="d-none d-sm-block m-0 text-body-secondary multi_update_form_hide">
|
||||||
{{ 'pagination'|trans({'%start%': entries.getCurrentPageOffsetStart(), '%end%': entries.getCurrentPageOffsetEnd(), '%total%': entries.getNbResults()}) }}
|
{{ 'pagination'|trans({'%start%': entries.getCurrentPageOffsetStart(), '%end%': entries.getCurrentPageOffsetEnd(), '%total%': entries.getNbResults()}) }}
|
||||||
</p>
|
</p>
|
||||||
{% set options = { 'css_container_class': 'pagination m-0 ms-auto d-print-none' } %}
|
{% set options = { 'css_container_class': 'pagination m-0 ms-auto d-print-none' } %}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block login_actions %}
|
{% block login_actions %}
|
||||||
<div class="text-center text-muted mt-3">
|
<div class="text-center text-body-secondary mt-3">
|
||||||
<a href="{{ path('homepage') }}">
|
<a href="{{ path('homepage') }}">
|
||||||
{{ 'Show homepage'|trans({}, 'TablerBundle') }}
|
{{ 'Show homepage'|trans({}, 'TablerBundle') }}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{% block login_box_msg %}{{ 'security.unlock.title'|trans }}{% endblock %}
|
{% block login_box_msg %}{{ 'security.unlock.title'|trans }}{% endblock %}
|
||||||
|
|
||||||
{% block login_form %}
|
{% block login_form %}
|
||||||
<p class="text-muted text-center mb-4">
|
<p class="text-body-secondary text-center mb-4">
|
||||||
{% block unlock_title %}{{ 'security.unlock.intro'|trans }}{% endblock %}
|
{% block unlock_title %}{{ 'security.unlock.intro'|trans }}{% endblock %}
|
||||||
</p>
|
</p>
|
||||||
<div class="mb-4 text-center">
|
<div class="mb-4 text-center">
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
{{ user_avatar(app.user, false, 'avatar-xl mb-3') }}
|
{{ user_avatar(app.user, false, 'avatar-xl mb-3') }}
|
||||||
<h3>{{ username(app.user) }}</h3>
|
<h3>{{ username(app.user) }}</h3>
|
||||||
{% if app.user.title is not empty %}
|
{% if app.user.title is not empty %}
|
||||||
<p class="text-muted">{{ app.user.title }}</p>
|
<p class="text-body-secondary">{{ app.user.title }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% block unlock_form %}
|
{% block unlock_form %}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
{% for section in sorted|sort((a, b) => a.name <=> b.name) %}
|
{% for section in sorted|sort((a, b) => a.name <=> b.name) %}
|
||||||
<a class="list-group-item d-flex" href="#conf_{{ section.id }}">
|
<a class="list-group-item d-flex" href="#conf_{{ section.id }}">
|
||||||
{{ section.name }}
|
{{ section.name }}
|
||||||
<small class="text-muted ms-auto">{{ section.counter }}</small>
|
<small class="text-body-secondary ms-auto">{{ section.counter }}</small>
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<div class="col" style="min-width: 100px">
|
<div class="col" style="min-width: 100px">
|
||||||
<h4 class="card-title m-0">{{ widgets.username(user) }}</h4>
|
<h4 class="card-title m-0">{{ widgets.username(user) }}</h4>
|
||||||
{% if user.title is not empty %}
|
{% if user.title is not empty %}
|
||||||
<div class="text-muted">
|
<div class="text-body-secondary">
|
||||||
{{ user.title }}
|
{{ user.title }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<div class="font-weight-medium">
|
<div class="font-weight-medium">
|
||||||
{{ title|trans }}
|
{{ title|trans }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted">
|
<div class="text-body-secondary">
|
||||||
{% block widget_data %}
|
{% block widget_data %}
|
||||||
{{ data }}
|
{{ data }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
{{ title|trans }}
|
{{ title|trans }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted">
|
<div class="text-body-secondary">
|
||||||
{% if data is iterable %}
|
{% if data is iterable %}
|
||||||
{{ 'Invalid data' }}
|
{{ 'Invalid data' }}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<div class="card-body text-center py-4 p-sm-5">
|
<div class="card-body text-center py-4 p-sm-5">
|
||||||
<img src="{{ asset('wizard/done.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
|
<img src="{{ asset('wizard/done.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
|
||||||
<h1 class="mt-5">{{ 'wizard.done.title'|trans({}, 'wizard') }}</h1>
|
<h1 class="mt-5">{{ 'wizard.done.title'|trans({}, 'wizard') }}</h1>
|
||||||
<p class="text-muted">{{ 'wizard.done.description'|trans({}, 'wizard') }}</p>
|
<p class="text-body-secondary">{{ 'wizard.done.description'|trans({}, 'wizard') }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
<div class="card-body text-center py-4 p-sm-5">
|
<div class="card-body text-center py-4 p-sm-5">
|
||||||
<img src="{{ asset('wizard/time-management.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
|
<img src="{{ asset('wizard/time-management.png') }}" height="120" class="mb-n2" alt="Illustration by Katerina Limpitsouni from https://undraw.co/">
|
||||||
<h1 class="mt-5">{{ 'wizard.intro.title'|trans({}, 'wizard') }}</h1>
|
<h1 class="mt-5">{{ 'wizard.intro.title'|trans({}, 'wizard') }}</h1>
|
||||||
<p class="text-muted">{{ 'wizard.intro.description'|trans({}, 'wizard') }}</p>
|
<p class="text-body-secondary">{{ 'wizard.intro.description'|trans({}, 'wizard') }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{% block wizard_content %}
|
{% block wizard_content %}
|
||||||
<div class="card-body text-center py-4 p-sm-5">
|
<div class="card-body text-center py-4 p-sm-5">
|
||||||
<h1 class="mt-2">{{ 'wizard.profile.title'|trans({}, 'wizard') }}</h1>
|
<h1 class="mt-2">{{ 'wizard.profile.title'|trans({}, 'wizard') }}</h1>
|
||||||
<p class="text-muted">{{ 'wizard.profile.description'|trans({}, 'wizard') }}</p>
|
<p class="text-body-secondary">{{ 'wizard.profile.description'|trans({}, 'wizard') }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="hr-text hr-text-center hr-text-spaceless">{{ 'wizard.separator'|trans({}, 'wizard') }}</div>
|
<div class="hr-text hr-text-center hr-text-spaceless">{{ 'wizard.separator'|trans({}, 'wizard') }}</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|||||||
Reference in New Issue
Block a user