Compare commits
4 Commits
462d888c03
...
5fc03e4870
Author | SHA1 | Date | |
---|---|---|---|
5fc03e4870 | |||
0e56714f6c | |||
b5173e8055 | |||
b557522945 |
@ -3,7 +3,7 @@ run-name: ${{ gitea.actor }} Building Docker Image 🐳
|
|||||||
on: [push]
|
on: [push]
|
||||||
env:
|
env:
|
||||||
DOCKER_HOST: tcp://127.0.0.1:2375
|
DOCKER_HOST: tcp://127.0.0.1:2375
|
||||||
ASSETS: 41d6948
|
ASSETS: 261aa07
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
51
public/css/custom.css
vendored
51
public/css/custom.css
vendored
@ -1,9 +1,3 @@
|
|||||||
img.jpegphoto {
|
|
||||||
display:block;
|
|
||||||
max-width:100px;
|
|
||||||
height:100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** ensure our userpassword has select is next to the password input */
|
/** ensure our userpassword has select is next to the password input */
|
||||||
div#userPassword .select2-container--bootstrap-5 .select2-selection {
|
div#userPassword .select2-container--bootstrap-5 .select2-selection {
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
@ -28,3 +22,48 @@ input.form-control.input-group-end {
|
|||||||
border-bottom-right-radius: 4px !important;
|
border-bottom-right-radius: 4px !important;
|
||||||
border-top-right-radius: 4px !important;
|
border-top-right-radius: 4px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.custom-tooltip-warning {
|
||||||
|
--bs-tooltip-bg: var(--bs-warning);
|
||||||
|
--bs-tooltip-color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-tooltip-danger {
|
||||||
|
--bs-tooltip-bg: var(--bs-danger);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.tooltip {
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
.custom-tooltip-warning .tooltip-inner {
|
||||||
|
--bs-tooltip-bg: #ffffff;
|
||||||
|
--bs-tooltip-color: var(--bs-warning);
|
||||||
|
--bs-font-size: 85%;
|
||||||
|
border: 2px solid var(--bs-warning);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-tooltip-warning .tooltip-arrow::before {
|
||||||
|
--bs-tooltip-bg: var(--bs-warning);
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-tooltip-danger .tooltip-inner {
|
||||||
|
--bs-tooltip-bg: #ffffff;
|
||||||
|
--bs-tooltip-color: var(--bs-danger);
|
||||||
|
--bs-font-size: 85%;
|
||||||
|
border: 2px solid var(--bs-danger);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-tooltip-danger .tooltip-arrow::before {
|
||||||
|
--bs-tooltip-bg: var(--bs-danger);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* hide the site icons when the search is opened */
|
||||||
|
.search-wrapper.active + .header-menu.nav {
|
||||||
|
display: none;
|
||||||
|
}
|
52
public/css/fixes.css
vendored
52
public/css/fixes.css
vendored
@ -143,11 +143,6 @@ ul.fancytree-container ul {
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix ellipsis icon (top right) on small display with the light background */
|
|
||||||
.closed-sidebar .app-header.header-text-light .app-header__menu .mobile-toggle-header-nav {
|
|
||||||
background: #343a40;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide tree when collapsed and show it when open */
|
/* Hide tree when collapsed and show it when open */
|
||||||
.sidebar-mobile-open:hover #tree, /* small */
|
.sidebar-mobile-open:hover #tree, /* small */
|
||||||
.fixed-sidebar #tree, /* wide */
|
.fixed-sidebar #tree, /* wide */
|
||||||
@ -160,12 +155,6 @@ ul.fancytree-container ul {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Server icons **/
|
/** Server icons **/
|
||||||
.closed-sidebar .server-icon {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.closed-sidebar .app-sidebar:hover .server-icon, .sidebar-mobile-open .server-icon {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.font-icon-wrapper {
|
.font-icon-wrapper {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: #e9ecef solid 1px;
|
border: #e9ecef solid 1px;
|
||||||
@ -181,47 +170,6 @@ ul.fancytree-container ul {
|
|||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
.font-icon-wrapper {
|
|
||||||
text-align: center;
|
|
||||||
border: $gray-200 solid 1px;
|
|
||||||
@include border-radius($border-radius);
|
|
||||||
margin: 0 0 10px;
|
|
||||||
padding: 5px;
|
|
||||||
|
|
||||||
&.font-icon-lg {
|
|
||||||
float: left;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: center;
|
|
||||||
margin-right: 15px;
|
|
||||||
min-width: 64px;
|
|
||||||
|
|
||||||
i {
|
|
||||||
font-size: $h1-font-size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: $gray-100;
|
|
||||||
color: $primary;
|
|
||||||
|
|
||||||
p {
|
|
||||||
color: $gray-600;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
i {
|
|
||||||
font-size: ($font-size-base * 1.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
color: $gray-500;
|
|
||||||
font-size: calc($font-size-sm / 1.2);
|
|
||||||
margin: 5px 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** Ensure our DN menu is at the top **/
|
/** Ensure our DN menu is at the top **/
|
||||||
.app-page-title .page-title-wrapper {
|
.app-page-title .page-title-wrapper {
|
||||||
align-items: start;
|
align-items: start;
|
||||||
|
6
public/js/custom.js
vendored
6
public/js/custom.js
vendored
@ -36,11 +36,11 @@ function getNode(item) {
|
|||||||
case 404:
|
case 404:
|
||||||
$('.main-content').empty().append(e.responseText);
|
$('.main-content').empty().append(e.responseText);
|
||||||
break;
|
break;
|
||||||
case 409:
|
case 409: // Not in root
|
||||||
location.replace('/#'+item);
|
location.replace('/#'+item);
|
||||||
break;
|
break;
|
||||||
case 419:
|
case 419: // Session Expired
|
||||||
alert('Session has expired, reloading the page and try again...');
|
location.replace('/#'+item);
|
||||||
location.reload();
|
location.reload();
|
||||||
break;
|
break;
|
||||||
case 500:
|
case 500:
|
||||||
|
@ -3,10 +3,23 @@
|
|||||||
// If you want the anchor version, it requires `href="#"`.
|
// If you want the anchor version, it requires `href="#"`.
|
||||||
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
||||||
|
|
||||||
|
.header-text-dark * .btn-close {
|
||||||
|
--#{$prefix}btn-close-color: #{$btn-close-color-dark};
|
||||||
|
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg-dark) };
|
||||||
|
}
|
||||||
|
.header-text-light *.btn-close {
|
||||||
|
--#{$prefix}btn-close-color: #{$btn-close-color-light};
|
||||||
|
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg-light) };
|
||||||
|
}
|
||||||
|
|
||||||
.btn-close {
|
.btn-close {
|
||||||
// scss-docs-start close-css-vars
|
// scss-docs-start close-css-vars
|
||||||
--#{$prefix}btn-close-color: #{$btn-close-color};
|
--#{$prefix}btn-close-color: #{$btn-close-color};
|
||||||
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) };
|
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) };
|
||||||
|
--#{$prefix}btn-close-color-light: #{$btn-close-color-light};
|
||||||
|
--#{$prefix}btn-close-bg-light: #{ escape-svg($btn-close-bg-light) };
|
||||||
|
--#{$prefix}btn-close-color-dark: #{$btn-close-color-dark};
|
||||||
|
--#{$prefix}btn-close-bg-dark: #{ escape-svg($btn-close-bg-dark) };
|
||||||
--#{$prefix}btn-close-opacity: #{$btn-close-opacity};
|
--#{$prefix}btn-close-opacity: #{$btn-close-opacity};
|
||||||
--#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
|
--#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
|
||||||
--#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
|
--#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
|
||||||
|
@ -1705,6 +1705,10 @@ $btn-close-padding-x: .25em !default;
|
|||||||
$btn-close-padding-y: $btn-close-padding-x !default;
|
$btn-close-padding-y: $btn-close-padding-x !default;
|
||||||
$btn-close-color: $black !default;
|
$btn-close-color: $black !default;
|
||||||
$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
|
$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
|
||||||
|
$btn-close-color-dark: $black !default;
|
||||||
|
$btn-close-color-light: $gray-100 !default;
|
||||||
|
$btn-close-bg-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color-dark}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
|
||||||
|
$btn-close-bg-light: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color-light}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
|
||||||
$btn-close-focus-shadow: $focus-ring-box-shadow !default;
|
$btn-close-focus-shadow: $focus-ring-box-shadow !default;
|
||||||
$btn-close-opacity: .5 !default;
|
$btn-close-opacity: .5 !default;
|
||||||
$btn-close-hover-opacity: .75 !default;
|
$btn-close-hover-opacity: .75 !default;
|
||||||
|
@ -26,20 +26,6 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-menu {
|
|
||||||
.nav-link {
|
|
||||||
color: $gray-600;
|
|
||||||
|
|
||||||
i {
|
|
||||||
color: $gray-500;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: $gray-900;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-header-right {
|
.app-header-right {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -114,14 +114,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-header__mobile-menu {
|
|
||||||
.hamburger-inner,
|
|
||||||
.hamburger-inner::before,
|
|
||||||
.hamburger-inner::after {
|
|
||||||
background: $gray-800;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@
|
|||||||
.hamburger-inner,
|
.hamburger-inner,
|
||||||
.hamburger-inner::before,
|
.hamburger-inner::before,
|
||||||
.hamburger-inner::after {
|
.hamburger-inner::after {
|
||||||
background: $gray-800;
|
background: rgba(0, 0, 0, .8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,6 +173,7 @@
|
|||||||
& > .btn {
|
& > .btn {
|
||||||
background: rgba(255, 255, 255, .1);
|
background: rgba(255, 255, 255, .1);
|
||||||
border-color: rgba(255, 255, 255, .1);
|
border-color: rgba(255, 255, 255, .1);
|
||||||
|
color: rgba(0, 0, 0, .9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,20 +13,20 @@
|
|||||||
<div class="mx-auto app-login-box col-md-8">
|
<div class="mx-auto app-login-box col-md-8">
|
||||||
<x-file-note file="login-note.html"/>
|
<x-file-note file="login-note.html"/>
|
||||||
|
|
||||||
<div class="modal-dialog w-100 mx-auto">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<form class="needs-validation" novalidate method="post">
|
<form class="form-control needs-validation p-0" novalidate method="post">
|
||||||
{{ csrf_field() }}
|
@csrf
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body p-3">
|
||||||
<div class="h5 modal-title text-center">
|
<div class="h5 modal-title text-center">
|
||||||
<h4 class="mt-2">
|
<h4 class="mt-2">
|
||||||
<div class="app-logo mx-auto mb-3"><img class="w-75" src="{{ url('images/logo-h-lg.png') }}"></div>
|
<div class="app-logo mx-auto mb-3"><img class="w-75" src="{{ url('images/logo-h-lg.png') }}"></div>
|
||||||
<small>@lang('Sign in to <strong>:server</strong>',['server'=>config('ldap.connections.default.name')])</small>
|
<small>@lang('Sign in to') <strong>{{ config('server')->name }}</strong></small>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="row">
|
||||||
<div class="col-md-12 mt-3">
|
<div class="col-md-12 mt-3">
|
||||||
<label class="mb-1">{{ login_attr_description() }}</label>
|
<label class="mb-1">{{ login_attr_description() }}</label>
|
||||||
<input name="{{ login_attr_name() }}" id="user" placeholder="" type="@if(in_array(login_attr_name(),['mail','email'])) email @else text @endif" class="form-control" required="">
|
<input name="{{ login_attr_name() }}" id="user" placeholder="" type="@if(in_array(login_attr_name(),['mail','email'])) email @else text @endif" class="form-control" required="">
|
||||||
@ -34,7 +34,9 @@
|
|||||||
@lang('Please enter your '.strtolower(login_attr_description()))
|
@lang('Please enter your '.strtolower(login_attr_description()))
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
<div class="col-md-12 mt-2">
|
<div class="col-md-12 mt-2">
|
||||||
<label class="mb-1">@lang('Password')</label>
|
<label class="mb-1">@lang('Password')</label>
|
||||||
<input name="password" id="password" placeholder="" type="password" class="form-control" required>
|
<input name="password" id="password" placeholder="" type="password" class="form-control" required>
|
||||||
@ -43,11 +45,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="modal-footer">
|
|
||||||
@if (count($errors) > 0)
|
@if (count($errors) > 0)
|
||||||
<div class="alert alert-danger w-100">
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="alert alert-danger m-3">
|
||||||
<strong>Whoops!</strong> Something went wrong?<br><br>
|
<strong>Whoops!</strong> Something went wrong?<br><br>
|
||||||
<ul>
|
<ul>
|
||||||
@foreach ($errors->all() as $error)
|
@foreach ($errors->all() as $error)
|
||||||
@ -55,11 +57,18 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endif
|
@endif
|
||||||
<div class="float-end">
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer p-2 border-top">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col float-end">
|
||||||
<button class="btn btn-lg btn-primary">Login</button>
|
<button class="btn btn-lg btn-primary">Login</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,24 +6,6 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<strong>{{ config('app.version') }}</strong>
|
<strong>{{ config('app.version') }}</strong>
|
||||||
</li>
|
</li>
|
||||||
@if(($x=Config::get('update_available')) && $x->action !== 'current')
|
|
||||||
<li class="nav-item ms-2">
|
|
||||||
@switch($x->action)
|
|
||||||
@case('unable')
|
|
||||||
<abbr title="Upstream Version Unavailable"><i class="fas fa-exclamation text-alternate"></i></abbr>
|
|
||||||
@break
|
|
||||||
@case('upgrade')
|
|
||||||
<abbr title="Update Available: {{ $x->version }}"><i class="fas fa-wrench text-danger"></i></abbr>
|
|
||||||
@break
|
|
||||||
@case('mismatch')
|
|
||||||
<abbr title="Version Issue - Upstream {{ $x->version }}"><i class="fas fa-exclamation text-danger"></i></abbr>
|
|
||||||
@break
|
|
||||||
@case('unknown')
|
|
||||||
<abbr title="Version Issue - Upstream {{ $x->version }}"><i class="fas fa-bolt text-alternate"></i></abbr>
|
|
||||||
@break
|
|
||||||
@endswitch
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
{{--
|
{{--
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="javascript:void(0);" class="nav-link">Footer Link</a>
|
<a href="javascript:void(0);" class="nav-link">Footer Link</a>
|
||||||
|
@ -6,54 +6,38 @@
|
|||||||
<i class="@yield('page_icon','')"></i>
|
<i class="@yield('page_icon','')"></i>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
<div>
|
|
||||||
@yield('page_title','Page Title')
|
@yield('page_title','Page Title')
|
||||||
<div class="page-title-subheading">
|
<div class="page-title-subheading">
|
||||||
@yield('page_subtitle','')
|
@yield('page_subtitle','')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (isset($page_actions) || old())
|
|
||||||
<div class="page-title-actions">
|
<div class="page-title-actions">
|
||||||
<div class="page-title-actions">
|
<div class="row">
|
||||||
<div class="d-inline-block dropdown">
|
<div class="col">
|
||||||
<button type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="dropdown-toggle btn btn-primary">
|
<div class="action-buttons float-end">
|
||||||
<span class="btn-icon-wrapper pe-2 opacity-7">
|
<ul class="nav">
|
||||||
<i class="fa fa-business-time fa-w-20"></i>
|
@if(isset($page_actions) && $page_actions->contains('export'))
|
||||||
</span>
|
<li>
|
||||||
@lang('Entry Options')
|
<span data-bs-toggle="modal" data-bs-target="#entry_export-modal">
|
||||||
</button>
|
<button class="btn btn-outline-dark p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Export')"><i class="fas fa-fw fa-download fs-5"></i></button>
|
||||||
|
|
||||||
<div tabindex="-1" role="menu" aria-hidden="true" class="dropdown-menu dropdown-menu-right">
|
|
||||||
<ul class="nav flex-column">
|
|
||||||
@if ((isset($page_actions) && $page_actions->contains('edit')) || old())
|
|
||||||
<li class="nav-item">
|
|
||||||
<span class="nav-link pt-0 pb-1">
|
|
||||||
<button id="entry-edit" class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start">
|
|
||||||
<i class="fas fa-fw fa-edit me-2"></i> @lang('Edit')
|
|
||||||
</button>
|
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
@if(isset($page_actions) && $page_actions->contains('copy'))
|
||||||
@if (isset($page_actions) && $page_actions->contains('export'))
|
<li>
|
||||||
<li class="nav-item">
|
<button class="btn btn-outline-dark p-1 m-1" id="entry-copy-move" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Copy/Move')"><i class="fas fa-fw fa-copy fs-5"></i></button>
|
||||||
<a class="nav-link pt-0 pb-1">
|
|
||||||
<button type="button" class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start" data-bs-toggle="modal" data-bs-target="#entry_export-modal">
|
|
||||||
<i class="fas fa-fw fa-file-export me-2"></i> @lang('Export')
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
@if((isset($page_actions) && $page_actions->contains('edit')) || old())
|
||||||
@if (isset($page_actions) && $page_actions->contains('copy'))
|
<li>
|
||||||
<li class="nav-item">
|
<button class="btn btn-outline-dark p-1 m-1" id="entry-edit" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Edit Entry')"><i class="fas fa-fw fa-edit fs-5"></i></button>
|
||||||
<a class="nav-link pt-0 pb-1">
|
</li>
|
||||||
<button class="p-2 m-0 border-0 btn btn-transition btn-outline-dark w-100 text-start">
|
@endif
|
||||||
<i class="fas fa-fw fa-truck-moving me-2"></i> @lang('Copy or Move')
|
@if(isset($page_actions) && $page_actions->contains('delete'))
|
||||||
</button>
|
<li>
|
||||||
</a>
|
<button class="btn btn-outline-danger p-1 m-1" id="entry-delete" data-bs-custom-class="custom-tooltip-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Delete Entry')"><i class="fas fa-fw fa-trash-can fs-5"></i></button>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
@ -61,6 +45,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@section('page-scripts')
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
console.log($('button[id=entry-edit]'));
|
||||||
|
$('button[id=entry-edit]').on('click',function(item) {
|
||||||
|
item.preventDefault();
|
||||||
|
|
||||||
|
if ($(this).hasClass('btn-dark'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
editmode();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@append
|
@ -33,23 +33,6 @@
|
|||||||
<div class="app-sidebar__inner">
|
<div class="app-sidebar__inner">
|
||||||
<ul class="vertical-nav-menu">
|
<ul class="vertical-nav-menu">
|
||||||
<li class="app-sidebar__heading">{{ config('server')->name }}</li>
|
<li class="app-sidebar__heading">{{ config('server')->name }}</li>
|
||||||
<li>
|
|
||||||
<div class="font-icon-wrapper float-start me-1 server-icon">
|
|
||||||
<a class="p-0 m-0" href="{{ url('info') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-info"></i></a>
|
|
||||||
</div>
|
|
||||||
<div class="font-icon-wrapper float-start ms-1 me-1 server-icon">
|
|
||||||
<a class="p-0 m-0" href="{{ url('schema') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-fingerprint"></i></a>
|
|
||||||
</div>
|
|
||||||
<div class="font-icon-wrapper float-start ms-1 me-1 server-icon">
|
|
||||||
<a class="p-0 m-0" href="{{ url('import') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-upload"></i></a>
|
|
||||||
</div>
|
|
||||||
@env(['local'])
|
|
||||||
<div class="font-icon-wrapper float-end ms-1 server-icon">
|
|
||||||
<a class="p-0 m-0" href="{{ url('debug') }}" onclick="return false;" style="display: contents;"><i class="fas fa-fw fa-toolbox"></i></a>
|
|
||||||
</div>
|
|
||||||
@endenv
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<i id="treeicon" class="metismenu-icon fa-fw fas fa-sitemap"></i>
|
<i id="treeicon" class="metismenu-icon fa-fw fas fa-sitemap"></i>
|
||||||
<span class="f16" id="tree"></span>
|
<span class="f16" id="tree"></span>
|
||||||
@ -58,38 +41,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@section('page-scripts')
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('.server-icon > a').on('click',function(item) {
|
|
||||||
var content;
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: $(this).attr('href'),
|
|
||||||
method: 'GET',
|
|
||||||
dataType: 'html',
|
|
||||||
statusCode: {
|
|
||||||
404: function() {
|
|
||||||
$('.main-content').empty().append(content);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeSend: function() {
|
|
||||||
content = $('.main-content').contents();
|
|
||||||
$('.main-content').empty().append('<div class="fa-3x"><i class="fas fa-spinner fa-pulse"></i></div>');
|
|
||||||
}
|
|
||||||
|
|
||||||
}).done(function(html) {
|
|
||||||
$('.main-content').empty().append(html);
|
|
||||||
|
|
||||||
}).fail(function() {
|
|
||||||
alert('Well that didnt work?');
|
|
||||||
});
|
|
||||||
|
|
||||||
item.stopPropagation();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@append
|
|
||||||
|
@ -39,22 +39,68 @@
|
|||||||
<button class="btn-close"></button>
|
<button class="btn-close"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="header-menu nav">
|
<ul class="header-menu nav server-icon">
|
||||||
{{--
|
<li>
|
||||||
<li class="nav-item">
|
<button id="link-info" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Server Info')" data-link="{{ url('info') }}">
|
||||||
<a href="javascript:void(0);" class="nav-link">
|
<i class="fas fa-fw fa-info fs-5"></i>
|
||||||
<i class="nav-link-icon fas fa-database"></i> Link
|
</button>
|
||||||
</a>
|
</li>
|
||||||
|
<li>
|
||||||
|
<button id="link-schema" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Schema Viewer')" data-link="{{ url('schema') }}">
|
||||||
|
<i class="fas fa-fw fa-fingerprint fs-5"></i>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button id="link-import" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Import')" data-link="{{ url('import') }}">
|
||||||
|
<i class="fas fa-fw fa-upload fs-5"></i>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button id="link-debug" class="btn btn-light p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="@lang('Debug')" data-link="{{ url('debug') }}">
|
||||||
|
<i class="fas fa-fw fa-toolbox fs-5"></i>
|
||||||
|
</button>
|
||||||
</li>
|
</li>
|
||||||
--}}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="app-header-right">
|
<div class="app-header-right">
|
||||||
|
<ul class="header-menu nav">
|
||||||
@if(! request()->isSecure())
|
@if(! request()->isSecure())
|
||||||
<span class="badge bg-danger">WARNING - SESSION NOT SECURE</span>
|
<li>
|
||||||
|
<button class="btn btn-danger p-1 m-1" data-bs-custom-class="custom-tooltip-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" title="WARNING - SESSION NOT SECURE">
|
||||||
|
<i class="fas fa-fw fa-unlock-keyhole fs-5"></i>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@if(($x=Config::get('update_available')) && $x->action !== 'current')
|
||||||
|
<li>
|
||||||
|
@switch($x->action)
|
||||||
|
@case('unable')
|
||||||
|
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Upstream Version Unavailable">
|
||||||
|
<i class="fas fa-fw fa-bolt fs-5"></i>
|
||||||
|
</button>
|
||||||
|
@break
|
||||||
|
@case('upgrade')
|
||||||
|
<button class="btn btn-warning p-1 m-1" data-bs-custom-class="custom-tooltip-warning" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Update Available:<br>{{ $x->version }}">
|
||||||
|
<i class="fas fa-fw fa-wrench fs-5"></i>
|
||||||
|
</button>
|
||||||
|
@break
|
||||||
|
@case('mismatch')
|
||||||
|
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Version Issue - Upstream<br>{{ $x->version }}">
|
||||||
|
<i class="fas fa-fw fa-exclamation fs-5"></i>
|
||||||
|
</button>
|
||||||
|
@break
|
||||||
|
@case('unknown')
|
||||||
|
<button class="btn btn-light opacity-2 p-1 m-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true" title="Version Issue - Unknown<br>{{ $x->version }}">
|
||||||
|
<i class="fas fa-fw fa-question fs-5"></i>
|
||||||
|
</button>
|
||||||
|
@break
|
||||||
|
@endswitch
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
|
||||||
<div class="header-btn-lg pe-0">
|
<div class="header-btn-lg pe-0">
|
||||||
<div class="widget-content p-0">
|
<div class="widget-content p-0">
|
||||||
<div class="widget-content-wrapper">
|
<div class="widget-content-wrapper">
|
||||||
@ -112,3 +158,38 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@section('page-scripts')
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('button[id^="link-"]').on('click',function(item) {
|
||||||
|
var content;
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: $(this).data('link'),
|
||||||
|
method: 'GET',
|
||||||
|
dataType: 'html',
|
||||||
|
statusCode: {
|
||||||
|
404: function() {
|
||||||
|
$('.main-content').empty().append(content);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeSend: function() {
|
||||||
|
content = $('.main-content').contents();
|
||||||
|
$('.main-content').empty().append('<div class="fa-3x"><i class="fas fa-spinner fa-pulse"></i></div>');
|
||||||
|
}
|
||||||
|
|
||||||
|
}).done(function(html) {
|
||||||
|
$('.main-content').empty().append(html);
|
||||||
|
|
||||||
|
}).fail(function() {
|
||||||
|
alert('Well that didnt work?');
|
||||||
|
});
|
||||||
|
|
||||||
|
item.stopPropagation();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@append
|
@ -9,12 +9,12 @@
|
|||||||
@default
|
@default
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="{{ $o->name_lc }}[]" value="{{ md5($value) }}">
|
<input type="hidden" name="{{ $o->name_lc }}[]" value="{{ md5($value) }}">
|
||||||
<img @class(['jpegphoto','is-invalid'=>($e=$errors->get($o->name_lc.'.'.$loop->index))]) src="data:{{ $x }};base64, {{ base64_encode($value) }}" />
|
<img @class(['border','rounded','p-2','m-0','is-invalid'=>($e=$errors->get($o->name_lc.'.'.$loop->index))]) src="data:{{ $x }};base64, {{ base64_encode($value) }}" />
|
||||||
|
|
||||||
@if ($edit)
|
@if ($edit)
|
||||||
<br>
|
<br>
|
||||||
<!-- @todo TO IMPLEMENT -->
|
<!-- @todo TO IMPLEMENT -->
|
||||||
<span class="btn btn-sm btn-danger deletable d-none"><i class="fas fa-trash-alt"></i> @lang('Delete')</span>
|
<span class="btn btn-sm btn-danger deletable d-none mt-3"><i class="fas fa-trash-alt"></i> @lang('Delete')</span>
|
||||||
|
|
||||||
<div class="invalid-feedback pb-2">
|
<div class="invalid-feedback pb-2">
|
||||||
@if($e)
|
@if($e)
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="offset-1 col-4 p-2">
|
<div class="offset-1 col-4 p-2">
|
||||||
<span class="p-0 m-0">
|
<span class="p-0 m-0">
|
||||||
<button type="button" class="btn btn-transition btn-sm btn-outline-dark mt-3" data-bs-toggle="modal" data-bs-target="#userpassword_check-modal"><i class="fas fa-user-check"></i> @lang('Check Password')</button>
|
<button type="button" class="btn btn-sm btn-outline-dark mt-3" data-bs-toggle="modal" data-bs-target="#userpassword_check-modal"><i class="fas fa-user-check"></i> @lang('Check Password')</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
<table class="table table-borderless">
|
<table class="table table-borderless">
|
||||||
<tr>
|
<tr class="border-bottom line-height-2">
|
||||||
<td class="{{ ($x=$o->getObject('jpegphoto')) ? 'border' : '' }}" rowspan="2">
|
<td class="p-1 pt-0" rowspan="2">
|
||||||
{!! $x ? $x->render(FALSE,TRUE) : sprintf('<div class="page-title-icon f32"><i class="%s"></i></div>',$o->icon() ?? "fas fa-info") !!}
|
{!! ($x=$o->getObject('jpegphoto')) ? $x->render(FALSE,TRUE) : sprintf('<div class="page-title-icon f32 m-2"><i class="%s"></i></div>',$o->icon() ?? "fas fa-info") !!}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-end align-text-top p-0 {{ $x ? 'ps-5' : 'pt-2' }}"><strong>{{ $o->getDn() }}</strong></td>
|
<td class="text-end align-bottom pb-0 mb-0 pt-2 pe-3 {{ $x ? 'ps-3' : '' }}"><strong>{{ $o->getDn() }}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="line-height-1" style="font-size: 55%;vertical-align: bottom;" colspan="2">
|
<td class="align-bottom" style="font-size: 55%" colspan="2">
|
||||||
<table>
|
<table class="table table-condensed table-borderless w-100">
|
||||||
<tr>
|
<tr class="mt-1">
|
||||||
<td class="p-1 m-1">Created</td>
|
<td class="p-0 pe-2">Created</td>
|
||||||
<th class="p-1 m-1">
|
<th class="p-0">
|
||||||
<x-attribute :o="$o->getObject('createtimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('creatorsname')" :na="__('Unknown')"/>]
|
<x-attribute :o="$o->getObject('createtimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('creatorsname')" :na="__('Unknown')"/>]
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="mt-1">
|
||||||
<td class="p-1 m-1">Modified</td>
|
<td class="p-0 pe-2">Modified</td>
|
||||||
<th class="p-1 m-1">
|
<th class="p-0">
|
||||||
<x-attribute :o="$o->getObject('modifytimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('modifiersname')" :na="__('Unknown')"/>]
|
<x-attribute :o="$o->getObject('modifytimestamp')" :na="__('Unknown')"/> [<x-attribute :o="$o->getObject('modifiersname')" :na="__('Unknown')"/>]
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="mt-1">
|
||||||
<td class="p-1 m-1">UUID</td>
|
<td class="p-0 pe-2">UUID</td>
|
||||||
<th class="p-1 m-1">
|
<th class="p-0">
|
||||||
<x-attribute :o="$o->getObject('entryuuid')" :na="__('Unknown')"/>
|
<x-attribute :o="$o->getObject('entryuuid')" :na="__('Unknown')"/>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
@switch($step)
|
@switch($step)
|
||||||
@case(1)
|
@case(1)
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 col-sm-6">
|
<div class="col-12 col-md-6">
|
||||||
<x-form.select
|
<x-form.select
|
||||||
id="objectclass"
|
id="objectclass"
|
||||||
name="objectclass[]"
|
name="objectclass[]"
|
||||||
@ -54,7 +54,7 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="row d-none pt-3">
|
<div class="row d-none pt-3">
|
||||||
<div class="col-12 {{ $step > 1 ? 'offset-sm-2' : '' }} col-sm-4 col-lg-2">
|
<div class="col-12 {{ $step > 1 ? 'offset-sm-2' : '' }} col-lg-10">
|
||||||
<x-form.reset form="dn-create"/>
|
<x-form.reset form="dn-create"/>
|
||||||
<x-form.submit action="Next" form="dn-create"/>
|
<x-form.submit action="Next" form="dn-create"/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -149,7 +149,9 @@
|
|||||||
function editmode() {
|
function editmode() {
|
||||||
$('#dn-edit input[name="dn"]').val(dn);
|
$('#dn-edit input[name="dn"]').val(dn);
|
||||||
|
|
||||||
$('button[id=entry-edit]').addClass('active').removeClass('btn-outline-dark').addClass('btn-outline-light');
|
$('button[id=entry-edit]')
|
||||||
|
.removeClass('btn-outline-dark')
|
||||||
|
.addClass('btn-dark');
|
||||||
|
|
||||||
// Find all input items and turn off readonly
|
// Find all input items and turn off readonly
|
||||||
$('input.form-control').each(function() {
|
$('input.form-control').each(function() {
|
||||||
@ -201,15 +203,6 @@
|
|||||||
$('#newattr-select').remove();
|
$('#newattr-select').remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('button[id=entry-edit]').on('click',function(item) {
|
|
||||||
item.preventDefault();
|
|
||||||
|
|
||||||
if ($(this).hasClass('active'))
|
|
||||||
return;
|
|
||||||
|
|
||||||
editmode();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#entry_export-download').on('click',function(item) {
|
$('#entry_export-download').on('click',function(item) {
|
||||||
item.preventDefault();
|
item.preventDefault();
|
||||||
|
|
||||||
|
@ -48,24 +48,12 @@
|
|||||||
var subpage = window.location.hash;
|
var subpage = window.location.hash;
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
if (subpage) {
|
|
||||||
// Enable navigating to a page via a URL fragment, and that fragment is defined with a server-icon
|
// Enable navigating to a page via a URL fragment, and that fragment is defined with a server-icon
|
||||||
var valid = Object.values($('.server-icon > a').map(function() {
|
if (subpage) {
|
||||||
return $(this).attr('id');
|
|
||||||
})).indexOf(subpage.substring(1));
|
|
||||||
|
|
||||||
if (valid !== -1) {
|
|
||||||
// @todo this condition can probably be removed
|
|
||||||
console.log('teleporting...:'+subpage.substring(1));
|
|
||||||
// The click() event wont have been registered yet, so we need to delay us clicking it
|
|
||||||
setTimeout(function() { $(subpage).click(); },250);
|
|
||||||
|
|
||||||
} else if (valid === -1) {
|
|
||||||
// Clear the hash
|
// Clear the hash
|
||||||
history.replaceState(null,null,' ');
|
history.replaceState(null,null,' ');
|
||||||
getNode(subpage.substring(1));
|
getNode(subpage.substring(1));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@append
|
@append
|
@ -13,3 +13,8 @@
|
|||||||
@yield('page-modals')
|
@yield('page-modals')
|
||||||
@yield('page-scripts')
|
@yield('page-scripts')
|
||||||
@yield('page-styles')
|
@yield('page-styles')
|
||||||
|
|
||||||
|
<!-- Initialise any ajax tool tip attributes -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('[data-bs-toggle="tooltip"]').tooltip();
|
||||||
|
</script>
|
Loading…
x
Reference in New Issue
Block a user