Compare commits
113 Commits
Author | SHA1 | Date | |
---|---|---|---|
2ab98a36d5 | |||
b8a4e9d660 | |||
037abb1749 | |||
be6061fb6e | |||
ba18a2a21c | |||
83470c3ff5 | |||
d5d7f4f4a0 | |||
d7897d5c66 | |||
92dd7ac3cb | |||
293d9913c6 | |||
8acc3a91af | |||
eaece2b69d | |||
628fbac8f9 | |||
4a4cf3c5bf | |||
f393813311 | |||
3a12ec005e | |||
83bdea458f | |||
f32c29fa8c | |||
b9a3cd5647 | |||
12496101e1 | |||
01e77cb807 | |||
b5c8e41e78 | |||
a69049c4ff | |||
fd3487f9b0 | |||
4b541857d7 | |||
4e9bdca2f5 | |||
e0333e352a | |||
f44d780e19 | |||
46df11f087 | |||
dc8983aa91 | |||
|
9db703d88f | ||
|
05d3caddf4 | ||
|
e3ebef90d9 | ||
|
d494400e7e | ||
|
61f38aefe7 | ||
|
8e9ca4c531 | ||
|
2e512cc3ed | ||
|
9ef7e8e626 | ||
|
c9cd560b36 | ||
|
b3471f31a0 | ||
|
71712d445f | ||
|
ef210651aa | ||
|
cbfd13ffce | ||
|
d9896fbe93 | ||
|
d376c79fad | ||
|
ab86ddc386 | ||
|
e3e43b87f4 | ||
|
0507dc83d8 | ||
|
dd64cba897 | ||
|
8093eb8b72 | ||
|
af1ea1b5fd | ||
|
a4650f8710 | ||
|
4b25f97314 | ||
|
2eaf000ce0 | ||
|
1f114667aa | ||
|
f801001571 | ||
|
45be8553a2 | ||
|
9798f6aa7d | ||
|
d4824ecda5 | ||
|
2fe9b5c134 | ||
|
85d2a7eeea | ||
|
9b583e8479 | ||
|
de2b894b55 | ||
|
47075871dc | ||
|
0a541c1a36 | ||
|
7dc9ebf3a6 | ||
|
432606760b | ||
|
958dbc7092 | ||
|
12f33b6853 | ||
|
b67df24219 | ||
|
7ffcdb139a | ||
|
5a9437db37 | ||
|
9389fd9e83 | ||
|
87819891a1 | ||
|
b3924ea239 | ||
|
6bc2787602 | ||
|
96a6830e61 | ||
|
176f680ff7 | ||
|
62f66d7eed | ||
|
f131db31c6 | ||
|
8b83990a66 | ||
|
4472202afb | ||
|
2040266ab2 | ||
|
1774987dea | ||
|
6c60298e8f | ||
|
41b320a5b9 | ||
|
1096f0e28d | ||
|
b0730b9ed3 | ||
|
163a7f2587 | ||
|
4f2707a374 | ||
|
0ca66c6d1c | ||
|
5833122ab5 | ||
|
a946ce4418 | ||
|
e5ff189d3e | ||
|
1efdfca55f | ||
|
6d876f2c94 | ||
|
70a7142877 | ||
|
c406c35ff7 | ||
|
6d84613158 | ||
|
05dbcaf6c4 | ||
|
867b42be91 | ||
|
f44e6f1d09 | ||
|
fb88cf2866 | ||
|
91aa1d9378 | ||
|
062b1bce8c | ||
|
11a321603c | ||
|
8aa21663d5 | ||
|
3af5ae6466 | ||
|
f8d7432965 | ||
|
98b7b9f6a8 | ||
|
f1787aaa32 | ||
|
0bd32aab4a | ||
|
444c159ab9 |
@ -1,34 +1,33 @@
|
||||
{
|
||||
"name": "leenooks/laravel",
|
||||
"description": "Leenooks standard templates and tools.",
|
||||
"keywords": ["laravel", "leenooks"],
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Deon George",
|
||||
"email": "deon@leenooks.net"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"igaster/laravel-theme": "2.0.6",
|
||||
"orchestra/asset": "^3.6"
|
||||
},
|
||||
"require-dev": {
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Leenooks\\": "src"
|
||||
},
|
||||
"files": [
|
||||
"src/helpers.php"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Leenooks\\Providers\\LeenooksServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev"
|
||||
"name": "leenooks/laravel",
|
||||
"description": "Leenooks standard templates and tools.",
|
||||
"keywords": ["laravel","leenooks"],
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Deon George",
|
||||
"email": "deon@dege.au"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
},
|
||||
"require-dev": {
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Leenooks\\": "src"
|
||||
},
|
||||
"files": [
|
||||
"src/helpers.php"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Leenooks\\Providers\\LeenooksServiceProvider",
|
||||
"Leenooks\\Providers\\CustomBladeServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev"
|
||||
}
|
||||
|
11
resources/components/button/cancel.blade.php
Normal file
11
resources/components/button/cancel.blade.php
Normal file
@ -0,0 +1,11 @@
|
||||
<button type="cancel" id="cancel" {{ $attributes->class(['mt-4','btn','btn-sm','btn-danger']) }}>Cancel</button>
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#cancel').on('click',function(item) {
|
||||
return history.back();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
9
resources/components/button/error.blade.php
Normal file
9
resources/components/button/error.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@if(isset($row) && $row)
|
||||
<div class="row pt-2 pb-2">
|
||||
<div class="col">
|
||||
@endif
|
||||
@error($name)<button {{ $attributes->class(['btn','btn-sm','btn-danger']) }}>{{ $message }}</button>@enderror
|
||||
@if(isset($row) && $row)
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
1
resources/components/button/reset.blade.php
Normal file
1
resources/components/button/reset.blade.php
Normal file
@ -0,0 +1 @@
|
||||
<button type="reset" id="reset" {{ $attributes->class(['mt-4','btn','btn-sm','btn-secondary']) }}>Reset</button>
|
1
resources/components/button/submit.blade.php
Normal file
1
resources/components/button/submit.blade.php
Normal file
@ -0,0 +1 @@
|
||||
<button type="submit" id="submit" {{ $attributes->class(['mt-4','btn','btn-sm','btn-success']) }} @disabled(isset($disabled))>{{ $slot }}</button>
|
9
resources/components/button/success.blade.php
Normal file
9
resources/components/button/success.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@if(isset($row) && $row)
|
||||
<div class="row pt-2 pb-2">
|
||||
<div class="col">
|
||||
@endif
|
||||
@session('success')<button {{ $attributes->class(['btn','btn-sm','btn-success']) }}>{{ $value }}</button>@endsession
|
||||
@if(isset($row) && $row)
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
11
resources/components/errors.blade.php
Normal file
11
resources/components/errors.blade.php
Normal file
@ -0,0 +1,11 @@
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger alert-dismissible">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<h5><i class="icon fas fa-ban"></i> Whoops!</h5>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{!! $error !!}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
23
resources/components/form/base.blade.php
Normal file
23
resources/components/form/base.blade.php
Normal file
@ -0,0 +1,23 @@
|
||||
<div class="form-group">
|
||||
@if(isset($label))
|
||||
<label {{ $attributes->only(['class']) }} for="{{ $id ?? $name }}">{{ $label }}</label>
|
||||
@endisset
|
||||
<div class="input-group has-validation">
|
||||
@if(isset($icon) || isset($prepend))
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">@isset($icon)<i class="fas fa-fw {{ $icon }}"></i>@endisset @isset($prepend){!! $prepend !!}@endisset</span>
|
||||
</div>
|
||||
@endif
|
||||
{{ $slot }}
|
||||
<span class="invalid-feedback">
|
||||
@error((! empty($old)) ? $old : $name)
|
||||
{{ $message }}
|
||||
@elseif(isset($feedback))
|
||||
{{ $feedback }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
@isset($helper)
|
||||
<span class="input-helper">{{ $helper }}</span>
|
||||
@endif
|
||||
</div>
|
5
resources/components/form/checkbox.blade.php
Normal file
5
resources/components/form/checkbox.blade.php
Normal file
@ -0,0 +1,5 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<div class="form-check text-right">
|
||||
<input type="checkbox" class="form-check-input {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @checked(old($old ?? $name)) @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</div>
|
||||
</x-leenooks::form.base>
|
3
resources/components/form/date.blade.php
Normal file
3
resources/components/form/date.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="date" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
3
resources/components/form/email.blade.php
Normal file
3
resources/components/form/email.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="email" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
17
resources/components/form/file.blade.php
Normal file
17
resources/components/form/file.blade.php
Normal file
@ -0,0 +1,17 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="file" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
||||
{{ $slot }}
|
||||
|
||||
@section('page-scripts')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#{{ $id ?? $name }}').on('change',function(){
|
||||
//get the file name
|
||||
var fileName = $(this).val();
|
||||
//replace the "Choose a file" label
|
||||
$(this).parent().next('.input-helper').html(fileName);
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@append
|
3
resources/components/form/number.blade.php
Normal file
3
resources/components/form/number.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="number" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
3
resources/components/form/password.blade.php
Normal file
3
resources/components/form/password.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="password" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
60
resources/components/form/select.blade.php
Normal file
60
resources/components/form/select.blade.php
Normal file
@ -0,0 +1,60 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="hidden" id="{{ $name }}_disabled" name="{{ $name }}" value="" disabled>
|
||||
<select class="form-control @error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" @required(isset($required)) @disabled(isset($disabled))>
|
||||
@if(empty($value) || isset($addnew) || isset($choose))
|
||||
<option value=""></option>
|
||||
@isset($addnew)
|
||||
<option value="new">{{ $addnew ?: 'Add New' }}</option>
|
||||
@endisset
|
||||
@endif
|
||||
|
||||
@isset($options)
|
||||
@empty($groupby)
|
||||
@foreach($options as $option)
|
||||
@continue(! Arr::get($option,'value'))
|
||||
<option value="{{ Arr::get($option,'id') }}" @selected(Arr::get($option,'id') == old($old ?? $name,$value ?? ''))>{{ Arr::get($option,'value') }}</option>
|
||||
@endforeach
|
||||
|
||||
@else
|
||||
@foreach($options->groupBy($groupby) as $group)
|
||||
<optgroup label="{{ $groupby == 'active' ? (Arr::get($group->first(),$groupby) ? 'Active' : 'Not Active') : Arr::get($group->first(),$groupby) }}">
|
||||
@foreach($group as $option)
|
||||
@continue(! Arr::get($option,'value'))
|
||||
<option value="{{ Arr::get($option,'id') }}" @selected(Arr::get($option,'id') == old($old ?? $name,$value ?? ''))>{{ Arr::get($option,'value') }}</option>
|
||||
@endforeach
|
||||
</optgroup>
|
||||
@endforeach
|
||||
@endempty
|
||||
@endisset
|
||||
</select>
|
||||
</x-leenooks::form.base>
|
||||
|
||||
@pa(select2)
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
// Select doesnt support read only so we'll use disable and a new field
|
||||
function {{$id ?? $name}}_readonly(on) {
|
||||
if (on) {
|
||||
$('#{{ $name }}').prop('disabled',true);
|
||||
$('#{{ $name }}_disabled').prop('disabled',false).val($('#{{ $name }}').val());
|
||||
|
||||
} else {
|
||||
$('#{{ $name }}').prop('disabled',false);
|
||||
$('#{{ $name }}_disabled').prop('disabled',true);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#{{ $id ?? $name }}').select2({
|
||||
dropdownAutoWidth: true,
|
||||
width: 'style',
|
||||
@isset($addvalues)
|
||||
tags: true,
|
||||
placeholder: '',
|
||||
allowClear: true,
|
||||
@endisset
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
3
resources/components/form/text.blade.php
Normal file
3
resources/components/form/text.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="text" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" placeholder="{{ $placeholder ?? '' }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
43
resources/components/form/textarea.blade.php
Normal file
43
resources/components/form/textarea.blade.php
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
<div class="form-group">
|
||||
@if(isset($label))
|
||||
<label {{ $attributes->only(['class']) }} for="{{ $id ?? $name }}">{{ $label }}</label>
|
||||
@endisset
|
||||
<div class="input-group has-validation">
|
||||
@if(isset($icon) || isset($prepend))
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">@isset($icon)<i class="fas fa-fw {{ $icon }}"></i>@endisset @isset($prepend){!! $prepend !!}@endisset</span>
|
||||
</div>
|
||||
@endif
|
||||
<div class="w-100">
|
||||
<textarea class="form-control {{ $class ?? ''}} @error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" @isset($placeholder)placeholder="{{ $placeholder }}"@endisset @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>{{ old($old ?? $name,$value ?? '') }}</textarea>
|
||||
<span class="invalid-feedback">
|
||||
@error($old ?? $name)
|
||||
{{ $message }}
|
||||
@elseif(isset($feedback))
|
||||
{{ $feedback }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@isset($helper)
|
||||
<span class="input-helper">{{ $helper }}</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@pa(simplemde)
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
new SimpleMDE({
|
||||
element: $('#{{ $id ?? $name }}')[0],
|
||||
forceSync: true
|
||||
});
|
||||
|
||||
@error($old ?? $name)
|
||||
$('div.CodeMirror-wrap').addClass('form-control is-invalid');
|
||||
@enderror
|
||||
});
|
||||
</script>
|
||||
@append
|
3
resources/components/form/time.blade.php
Normal file
3
resources/components/form/time.blade.php
Normal file
@ -0,0 +1,3 @@
|
||||
<x-leenooks::form.base {{ $attributes }}>
|
||||
<input type="time" class="form-control {{ $class ?? ''}}@error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" value="{{ old($old ?? $name,$value ?? '') }}" @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
</x-leenooks::form.base>
|
17
resources/components/form/toggle.blade.php
Normal file
17
resources/components/form/toggle.blade.php
Normal file
@ -0,0 +1,17 @@
|
||||
<div class="form-group">
|
||||
<div class="input-group has-validation">
|
||||
<div class="custom-control custom-switch custom-switch-off-danger custom-switch-on-success">
|
||||
<input type="checkbox" class="custom-control-input @error((! empty($old)) ? $old : $name) is-invalid @enderror" id="{{ $id ?? $name }}" name="{{ $name }}" @checked(old($old ?? $name,$value ?? '')) @readonly(isset($readonly)) @required(isset($required)) @disabled(isset($disabled))>
|
||||
@if(isset($label))
|
||||
<label class="custom-control-label" for="{{ $id ?? $name }}">{{ $label }}</label>
|
||||
@endif
|
||||
</div>
|
||||
<span class="invalid-feedback">
|
||||
@error($name)
|
||||
{{ $message }}
|
||||
@elseif(isset($feedback))
|
||||
{{ $feedback }}
|
||||
@enderror
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
59
resources/components/modal/delete.blade.php
Normal file
59
resources/components/modal/delete.blade.php
Normal file
@ -0,0 +1,59 @@
|
||||
<div class="modal fade" id="confirm_delete" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-danger">
|
||||
<h5 class="modal-title">WARNING: DELETING record</h5>
|
||||
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close">X</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>This action is irreversible. Are you sure, your sure, that you want to delete it?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<a type="button" class="btn btn-danger btn-ok" data-hide="{{ $hide }}">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
var confirm_delete = new bootstrap.Modal(document.getElementById('confirm_delete'), {});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.{{$trigger}}').click(function(e) {
|
||||
confirm_delete.show();
|
||||
|
||||
$('#confirm_delete')
|
||||
.find('.btn-ok')
|
||||
.attr('href',$(this).attr('href'))
|
||||
.attr('data-id',$(this).data('id'));
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.btn-ok').click(function(item) {
|
||||
var that = $(this);
|
||||
|
||||
// Delete
|
||||
$.ajax({
|
||||
url: that.attr('href'),
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
|
||||
}).done(function(data) {
|
||||
if (that.data('hide') == 'row')
|
||||
$('a[data-id="'+that.data('id')+'"].{{$trigger}}').closest('tr').hide();
|
||||
|
||||
}).fail(function() {
|
||||
alert('Hmm, that didnt work?');
|
||||
});
|
||||
|
||||
// Clear the data cache
|
||||
that.removeData();
|
||||
confirm_delete.hide();
|
||||
return false;
|
||||
})
|
||||
});
|
||||
</script>
|
||||
@append
|
@ -24,15 +24,16 @@ return [
|
||||
'conditions' => 'Terms and conditions',
|
||||
'register' => 'Register',
|
||||
'login' => 'Login',
|
||||
'membreship' => 'I already have a membership',
|
||||
'membership' => 'I already have a membership',
|
||||
'passwordclickreset' => 'Click here to reset your password:',
|
||||
'signGithub' => 'Sign in using Github',
|
||||
'signFacebook' => 'Sign in using Facebook',
|
||||
'signTwitter' => 'Sign in using Twitter',
|
||||
'signGoogle+' => 'Sign in using Google+',
|
||||
'signLinkedin' => 'Sign in using Linkedin',
|
||||
'signGoogle' => 'Sign in using Google',
|
||||
'signLinkedin' => 'Sign in using Linkedin',
|
||||
'signW3id' => 'Sign in using W3id',
|
||||
'signIBMid' => 'Sign in using IBMid',
|
||||
'signMeetup' => 'Sign in using Meetup',
|
||||
'sendpassword' => 'Send Password Reset Link',
|
||||
'passwordreset' => 'Reset password',
|
||||
'pagenotfound' => 'Page not found',
|
||||
@ -51,35 +52,21 @@ return [
|
||||
'level' => 'Level',
|
||||
'here' => 'Here',
|
||||
'recentactivity' => 'Recent Activity',
|
||||
'descriptionpackage' => 'A Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template',
|
||||
'createdby' => 'Created by',
|
||||
'seecode' => 'See code at',
|
||||
'online' => 'Online',
|
||||
'home' => 'Home',
|
||||
'header' => 'HEADER',
|
||||
'anotherlink' => 'Another Link',
|
||||
'multilevel' => 'Multilevel',
|
||||
'linklevel2' => 'Link in level2',
|
||||
'birthday' => 'Langdon\'s Birthday',
|
||||
'birthdaydate' => 'Will be 23 on April 24th',
|
||||
'progress' => 'Tasks Progress',
|
||||
'customtemplate' => 'Custom Template Design',
|
||||
'statstab' => 'Stats Tab Content',
|
||||
'generalset' => 'General Settings',
|
||||
'reportpanel' => 'Report panel usage',
|
||||
'checked' => 'checked',
|
||||
'informationsettings' => 'Some information about this general settings option',
|
||||
'togglenav' => 'Toggle navigation',
|
||||
'tabmessages' => 'You have 4 messages',
|
||||
'supteam' => 'Support Team',
|
||||
'awesometheme' => 'Why not buy a new awesome theme?',
|
||||
'allmessages' => 'See All Messages',
|
||||
'notifications' => 'You have 10 notifications',
|
||||
'newmembers' => '5 new members joined today',
|
||||
'viewall' => 'View all',
|
||||
'tasks' => 'You have 9 tasks',
|
||||
'alltasks' => 'View all tasks',
|
||||
'desbuttons' => 'Design some buttons',
|
||||
'complete' => 'Complete',
|
||||
'membersince' => 'Member since',
|
||||
'followers' => 'Followers',
|
||||
@ -87,26 +74,15 @@ return [
|
||||
'friends' => 'Friends',
|
||||
'profile' => 'Profile',
|
||||
'signout' => 'Sign out',
|
||||
'landingdescription' => 'Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template with Bootstrap 3.0 and Pratt Landing page',
|
||||
'landingdescriptionpratt' => 'Acacha AdminLTE Laravel package template Landing page - Using Pratt',
|
||||
'description' => 'Description',
|
||||
'showcase' => 'Showcase',
|
||||
'contact' => 'Contact',
|
||||
'laravelpackage' => '5 package that switchs default Laravel',
|
||||
'to' => 'to',
|
||||
'templatewith' => 'template with',
|
||||
'and' => 'and',
|
||||
'gedstarted' => 'Get Started!',
|
||||
'amazing' => 'Amazing admin template',
|
||||
'basedadminlte' => 'Based on adminlte bootstrap theme',
|
||||
'awesomepackaged' => 'Awesome packaged...',
|
||||
'by' => 'by',
|
||||
'at' => 'at',
|
||||
'readytouse' => 'ready to use with Laravel!',
|
||||
'designed' => 'Designed To Excel',
|
||||
'community' => 'Community',
|
||||
'see' => 'See',
|
||||
'githubproject' => 'Github project',
|
||||
'post' => 'post',
|
||||
'issues' => 'issues',
|
||||
'pullrequests' => 'Pull requests',
|
||||
@ -114,10 +90,6 @@ return [
|
||||
'monitoring' => 'Monitoring',
|
||||
'whatnew' => 'What\'s New?',
|
||||
'features' => 'Some Features',
|
||||
'design' => 'First Class Design',
|
||||
'retina' => 'Retina Ready Theme',
|
||||
'support' => 'Awesome Support',
|
||||
'responsive' => 'Responsive Design',
|
||||
'screenshots' => 'Some Screenshots',
|
||||
'address' => 'Address',
|
||||
'dropus' => 'Drop Us A Line',
|
||||
@ -137,4 +109,6 @@ return [
|
||||
'entering' => 'Entering...',
|
||||
'registered' => 'User Registered!',
|
||||
'switchoff' => 'Switch Back',
|
||||
'success' => 'Success!',
|
||||
'resetemaillink' => 'We have e-mailed your password reset link!',
|
||||
];
|
||||
|
@ -1,53 +1,128 @@
|
||||
@extends('adminlte::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Log in
|
||||
Log in
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<body class="hold-transition login-page">
|
||||
<div id="app" v-cloak>
|
||||
<div class="login-box">
|
||||
<div class="login-logo">
|
||||
<a href="{{ url('/home') }}">{!! config('app.name_html_long') !!}</a>
|
||||
</div><!-- /.login-logo -->
|
||||
@if(isset($login_note) AND $login_note)
|
||||
<div class="alert alert-info alert-dismissible m-auto">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<h5><i class="icon fas fa-info"></i> NOTE!</h5>
|
||||
{!! $login_note !!}
|
||||
</div>
|
||||
<br>
|
||||
@endisset
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="login-box m-auto">
|
||||
<div class="login-logo">
|
||||
<a>{!! config('app.name_html_long') !!}</a>
|
||||
</div>
|
||||
|
||||
<div class="login-box-body">
|
||||
<p class="login-box-msg"> {{ trans('adminlte_lang::message.siginsession') }} </p>
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<login-form name="{{ config('auth.providers.users.field','email') }}"
|
||||
domain="{{ config('auth.defaults.domain','') }}"></login-form>
|
||||
@if (Session::has('error'))
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
<li>{{ Session::get('error') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<a href="{{ url('/password/reset') }}">{{ trans('adminlte_lang::message.forgotpassword') }}</a><br>
|
||||
<!-- /.login-logo -->
|
||||
<div class="card">
|
||||
<div class="card-body login-card-body">
|
||||
<p class="login-box-msg">{{ trans('adminlte_lang::message.siginsession') }}</p>
|
||||
|
||||
@if(count(config('auth.social',[])))
|
||||
@include('adminlte::auth.partials.social_login')
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form method="post">
|
||||
@csrf
|
||||
|
||||
@include('adminlte::layouts.partials.scripts_auth')
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="input-group mb-3">
|
||||
<input type="email" name="email" class="form-control" placeholder="Email">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-envelope"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('input').iCheck({
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%' // optional
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
<div class="col-12">
|
||||
<div class="input-group mb-3">
|
||||
<input type="password" name="password" class="form-control" placeholder="Password">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-key"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
<div class="checkbox icheck">
|
||||
<label>
|
||||
<input type="checkbox" name="remember"> Remember Me
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<button type="submit" name="submit" class="btn btn-sm btn-primary float-right">Sign In</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 pt-2">
|
||||
<button type="button" id="passkey" class="btn btn-sm btn-primary float-right"><i class="bi bi-key"></i> Passkey</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@if(count(config('auth.social',[])))
|
||||
@include('adminlte::auth.partials.social_login')
|
||||
@endif
|
||||
|
||||
<p class="mb-1">
|
||||
<a name="reset" href="{{ url('password/reset') }}">{{ trans('adminlte_lang::message.forgotpassword') }}</a>
|
||||
</p>
|
||||
|
||||
@isset($register)
|
||||
<p class="mb-0">
|
||||
<a href="{{ url('register') }}" class="text-center">{{ trans('adminlte_lang::message.register') }}</a>
|
||||
</p>
|
||||
@endisset
|
||||
</div>
|
||||
<!-- /.login-card-body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.login-box -->
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
<!-- Passkeys -->
|
||||
<script type='text/javascript' src='{{ asset('/passkey/passkey.js') }}'></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#passkey').on('click',function() {
|
||||
passkey_check('{{ csrf_token() }}','{{ redirect()->intended("/passkey/loggedin")->getTargetUrl() }}');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@ -0,0 +1,10 @@
|
||||
<!-- Bootstrap & Jquery App -->
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
|
||||
<!-- AdminLTE -->
|
||||
<script src="//cdn.jsdelivr.net/npm/admin-lte@3.1.0/dist/js/adminlte.min.js"></script>
|
||||
|
||||
@if(file_exists('js/custom-auth.js'))
|
||||
<!-- Any Custom JS -->
|
||||
<script src="{{ asset('js/custom-auth.js') }}"></script>
|
||||
@endif
|
@ -1,6 +1,9 @@
|
||||
<div class="social-auth-links text-center">
|
||||
<div class="social-auth-links text-center mb-3">
|
||||
<p>- OR -</p>
|
||||
@foreach(config('auth.social') as $o)
|
||||
<a href="{{ url('/auth/'.$o['id']) }}" class="btn btn-block btn-social btn-{{ $o['class'] }} btn-flat"><i class="fa fa-{{ $o['icon'] }}"></i> {{ trans('adminlte_lang::message.sign'.$o['name']) }}</a>
|
||||
<a href="{{ url('/auth/'.$o['id']) }}" class="btn btn-block {{ $o['class'] }}">
|
||||
<i class="{{ $o['icon'] }} fa-fw mr-2"></i> {{ trans('adminlte_lang::message.sign'.$o['name']) }}
|
||||
</a>
|
||||
@endforeach
|
||||
</div><!-- /.social-auth-links -->
|
||||
</div>
|
||||
<!-- /.social-auth-links -->
|
@ -1,59 +1,69 @@
|
||||
@extends('adminlte::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Password recovery
|
||||
Password recovery
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="login-box m-auto">
|
||||
<div class="login-logo">
|
||||
<a>{!! config('app.name_html_long') !!}</a>
|
||||
</div>
|
||||
|
||||
<body class="login-page">
|
||||
<div id="app">
|
||||
@if (Session::has('status'))
|
||||
<div class="text-center mb-3">
|
||||
<div class="alert alert-success m-auto">
|
||||
<strong>OK!</strong> {{ Session::get('status') }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="login-box">
|
||||
<div class="login-logo">
|
||||
<a href="{{ url('/home') }}"><b>Admin</b>LTE</a>
|
||||
</div><!-- /.login-logo -->
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
<!-- /.login-logo -->
|
||||
<div class="card">
|
||||
<div class="card-body login-card-body">
|
||||
<p class="login-box-msg">You forgot your password? Here you can easily retrieve a new password.</p>
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<form method="post" action="{{ url('password/email') }}">
|
||||
@csrf
|
||||
|
||||
<div class="login-box-body">
|
||||
<p class="login-box-msg">Reset Password</p>
|
||||
<div class="input-group mb-3">
|
||||
<input type="email" name="email" class="form-control" placeholder="Email" required>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-envelope"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<email-reset-password-form></email-reset-password-form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<button type="submit" class="btn btn-primary btn-block">{{ trans('adminlte_lang::message.sendpassword') }}</button>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<a href="{{ url('/login') }}">Log in</a><br>
|
||||
|
||||
</div><!-- /.login-box-body -->
|
||||
|
||||
</div><!-- /.login-box -->
|
||||
</div>
|
||||
|
||||
@include('adminlte::layouts.partials.scripts_auth')
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('input').iCheck({
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%' // optional
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
<p class="mt-3 mb-1">
|
||||
<a href="{{ url('login') }}">{{ trans('adminlte_lang::message.login') }}</a>
|
||||
</p>
|
||||
|
||||
@isset($register)
|
||||
<p class="mb-0">
|
||||
<a href="{{ url('register') }}" class="text-center">{{ trans('adminlte_lang::message.register') }}</a>
|
||||
</p>
|
||||
@endisset
|
||||
</div>
|
||||
<!-- /.login-card-body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.login-box -->
|
||||
@endsection
|
@ -0,0 +1,73 @@
|
||||
@extends('adminlte::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Password reset
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="login-box m-auto">
|
||||
<div class="login-logo">
|
||||
<a>{!! config('app.name_html_long') !!}</a>
|
||||
</div>
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- /.login-logo -->
|
||||
<div class="card">
|
||||
<div class="card-body login-card-body">
|
||||
<p class="login-box-msg">You are only one step a way from your new password, set your new password now.</p>
|
||||
|
||||
<form method="post" action="{{ url('password/reset') }}">
|
||||
<input type="hidden" name="token" value="{{ $token }}">
|
||||
@csrf
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<input type="email" name="email" class="form-control" placeholder="Email" required>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-envelope"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<input type="password" name="password" class="form-control" placeholder="Password" required>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-lock"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<input type="password" name="password_confirmation" class="form-control" placeholder="Confirm Password" data-match="#password" required>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-fw fa-clone"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<button type="submit" class="btn btn-primary btn-block">{{ trans('adminlte_lang::message.passwordreset') }}</button>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p class="mt-3 mb-1">
|
||||
<a href="{{ url('login') }}">Login</a>
|
||||
@isset($register)
|
||||
<a href="{{ url('register') }}" class="text-center">{{ trans('adminlte_lang::message.register') }}</a>
|
||||
@endisset
|
||||
</p>
|
||||
</div>
|
||||
<!-- /.login-card-body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.login-box -->
|
||||
@endsection
|
@ -1,44 +0,0 @@
|
||||
@extends('adminlte::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Register
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
|
||||
<body class="hold-transition register-page">
|
||||
<div id="app" v-cloak>
|
||||
<div class="register-box">
|
||||
<div class="register-logo">
|
||||
<a href="{{ url('/home') }}">{!! config('app.name_html_long') !!}</a>
|
||||
</div>
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="register-box-body">
|
||||
<p class="login-box-msg">Register for access</p>
|
||||
|
||||
<register-form></register-form>
|
||||
<!-- #include('adminlte::auth.partials.social_login') -->
|
||||
|
||||
<a href="{{ url('/login') }}" class="text-center">I already have an account</a>
|
||||
</div><!-- /.form-box -->
|
||||
</div><!-- /.register-box -->
|
||||
</div>
|
||||
|
||||
@include('adminlte::layouts.partials.scripts_auth')
|
||||
|
||||
@include('adminlte::auth.terms')
|
||||
|
||||
</body>
|
||||
|
||||
@endsection
|
@ -1,20 +0,0 @@
|
||||
@extends('adminlte::layouts.errors')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('adminlte_lang::message.servererror') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
|
||||
<div class="error-page">
|
||||
<h2 class="headline text-red">403</h2>
|
||||
<div class="error-content">
|
||||
<h3><i class="fa fa-warning text-red"></i> Oops! Bad Authentication</h3>
|
||||
<p>
|
||||
Sorry, your authentication failed.
|
||||
{{ trans('adminlte_lang::message.mainwhile') }} <a href='{{ url('/home') }}'>{{ trans('adminlte_lang::message.returndashboard') }}</a>.
|
||||
</p>
|
||||
<br>
|
||||
</div>
|
||||
</div><!-- /.error-page -->
|
||||
@endsection
|
@ -1,20 +0,0 @@
|
||||
@extends('adminlte::layouts.errors')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('adminlte_lang::message.pagenotfound') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
|
||||
<div class="error-page">
|
||||
<h2 class="headline text-yellow">404</h2>
|
||||
<div class="error-content">
|
||||
<h3><i class="fa fa-warning text-yellow"></i> Oops! {{ trans('adminlte_lang::message.pagenotfound') }}.</h3>
|
||||
<p>
|
||||
{{ trans('adminlte_lang::message.notfindpage') }}
|
||||
{{ trans('adminlte_lang::message.mainwhile') }} <a href='{{ url('/home') }}'>{{ trans('adminlte_lang::message.returndashboard') }}</a>.
|
||||
</p>
|
||||
<br/>
|
||||
</div><!-- /.error-content -->
|
||||
</div><!-- /.error-page -->
|
||||
@endsection
|
@ -1,20 +0,0 @@
|
||||
@extends('adminlte::layouts.errors')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('adminlte_lang::message.servererror') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
|
||||
<div class="error-page">
|
||||
<h2 class="headline text-red">500</h2>
|
||||
<div class="error-content">
|
||||
<h3><i class="fa fa-warning text-red"></i> Oops! {{ trans('adminlte_lang::message.somethingwrong') }}</h3>
|
||||
<h4><i class="text-red"></i> {{ trans($msg) }}</h4>
|
||||
<p>
|
||||
{{ trans('adminlte_lang::message.wewillwork') }}
|
||||
{{ trans('adminlte_lang::message.mainwhile') }} <a href='{{ url('/home') }}'>{{ trans('adminlte_lang::message.returndashboard') }}</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div><!-- /.error-page -->
|
||||
@endsection
|
@ -1,44 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
@section('htmlheader')
|
||||
@include('adminlte::layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
<body class="fixed skin-blue sidebar-mini">
|
||||
<div id="app" v-cloak>
|
||||
<div class="wrapper">
|
||||
@include('adminlte::layouts.partials.mainheader')
|
||||
|
||||
@include('adminlte::layouts.partials.sidebar')
|
||||
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper">
|
||||
|
||||
@include('adminlte::layouts.partials.contentheader')
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<div class="row">
|
||||
<!-- Your Page Content Here -->
|
||||
@yield('main-content')
|
||||
</div>
|
||||
</section><!-- /.content -->
|
||||
|
||||
</div><!-- /.content-wrapper -->
|
||||
|
||||
<!-- #include('adminlte::layouts.partials.controlsidebar') -->
|
||||
@include('adminlte::layouts.partials.footer')
|
||||
</div><!-- ./wrapper -->
|
||||
</div> <!-- ./app -->
|
||||
|
||||
@section('scripts')
|
||||
@include('adminlte::layouts.partials.scripts')
|
||||
{{-- Scripts --}}
|
||||
{!! Asset::scripts() !!}
|
||||
|
||||
@yield('page-scripts')
|
||||
@section('htmlheader')
|
||||
@include('adminlte::layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
</body>
|
||||
<body class="hold-transition sidebar-mini @if (Cookie::get('toggleState') === 'closed') {{ 'sidebar-collapse' }} @endif">
|
||||
<div id="app">
|
||||
<div class="wrapper">
|
||||
@include('adminlte::layouts.partials.mainheader')
|
||||
|
||||
@include('adminlte::layouts.partials.sidebar')
|
||||
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper">
|
||||
<!-- In case we have input fields in the header -->
|
||||
@yield('page-form-start')
|
||||
@include('adminlte::layouts.partials.contentheader')
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<!-- Your Page Content Here -->
|
||||
@yield('main-content')
|
||||
</div>
|
||||
</section><!-- /.content -->
|
||||
|
||||
@yield('page-form-end')
|
||||
</div><!-- /.content-wrapper -->
|
||||
|
||||
@isset($controlsidebar)
|
||||
@include('adminlte::layouts.partials.controlsidebar')
|
||||
@endisset
|
||||
|
||||
@include('adminlte::layouts.partials.footer')
|
||||
</div><!-- ./wrapper -->
|
||||
</div> <!-- ./app -->
|
||||
|
||||
@section('scripts')
|
||||
@include('adminlte::layouts.partials.scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
@ -1,8 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@section('htmlheader')
|
||||
@include('adminlte::layouts.partials.htmlheader')
|
||||
|
||||
@include('adminlte::layouts.partials.htmlheader')
|
||||
<!-- iCheck -->
|
||||
<link rel="stylesheet" href="{{ asset('plugin/iCheck/square/blue.css') }}">
|
||||
@show
|
||||
|
||||
@yield('content')
|
||||
<body class="hold-transition login-page">
|
||||
<div id="app">
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@section('scripts')
|
||||
@include('adminlte::auth.partials.scripts')
|
||||
|
||||
<!-- iCheck -->
|
||||
<script src="{{ asset('plugin/iCheck/icheck.min.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('input').iCheck({
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass : 'iradio_square-blue',
|
||||
increaseArea : '20%' // optional
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
@yield('page-scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
@ -1,17 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@include('adminlte::layouts.partials.htmlheader')
|
||||
<body>
|
||||
<div id="app" v-cloak>
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- Your Page Content Here -->
|
||||
@yield('main-content')
|
||||
</section>
|
||||
</div>
|
||||
@section('scripts')
|
||||
@include('adminlte::layouts.partials.scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
@ -1,17 +1,26 @@
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<div id="search_results"></div>
|
||||
<h1>
|
||||
@yield('contentheader_title', 'Content Title')
|
||||
<small>@yield('contentheader_description')</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ url('/home'.(isset($ido) ? '/'.$ido->id : '')) }}"><i class="fa fa-dashboard"></i>Home</a></li>
|
||||
<div class="content-header d-print-none">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-8">
|
||||
<h1 class="m-0 text-dark">@yield('contentheader_title', 'Content Title')</h1>
|
||||
<small>@yield('contentheader_description','Description')</small>
|
||||
</div><!-- /.col -->
|
||||
|
||||
@isset($breadcrumb)
|
||||
@foreach ($breadcrumb as $item => $url)
|
||||
<li><a href="{{url($url)}}">{{ $item }}</a></li>
|
||||
@endforeach
|
||||
@endisset
|
||||
</ol> <!-- /.breadcrumb -->
|
||||
</section> <!-- /.content-header -->
|
||||
<div class="col-sm-4">
|
||||
<ol class="breadcrumb float-sm-right small">
|
||||
<li class="breadcrumb-item"><a href="{{ url('/home'.(isset($ido) ? '/'.$ido->id : '')) }}">Home</a></li>
|
||||
@isset($breadcrumb)
|
||||
@foreach ($breadcrumb as $item => $url)
|
||||
<li class="breadcrumb-item"><a href="{{url($url)}}">{{ $item }}</a></li>
|
||||
@endforeach
|
||||
@endisset
|
||||
@if(View::hasSection('page_title'))
|
||||
<li class="breadcrumb-item active">@yield('page_title','Page Title')</li>
|
||||
@endif
|
||||
</ol>
|
||||
</div><!-- /.col -->
|
||||
</div><!-- /.row -->
|
||||
</div><!-- /.container-fluid -->
|
||||
</div>
|
||||
<!-- /.content-header -->
|
||||
|
@ -0,0 +1,5 @@
|
||||
<!-- Control Sidebar -->
|
||||
<aside class="control-sidebar control-sidebar-dark">
|
||||
<!-- Control sidebar content goes here -->
|
||||
</aside>
|
||||
<!-- /.control-sidebar -->
|
@ -1,8 +1,10 @@
|
||||
<!-- Main Footer -->
|
||||
<footer class="main-footer">
|
||||
<!-- To the right -->
|
||||
<div class="pull-right hidden-xs">
|
||||
<a href="#"></a><b>{{ config('app.name') }}</b></a>
|
||||
</div>
|
||||
<strong>© Leenooks</strong>
|
||||
<!-- To the right -->
|
||||
<div class="float-right d-sm-none d-md-block">
|
||||
{{ config('app.name') }}
|
||||
</div>
|
||||
|
||||
<!-- Default to the left -->
|
||||
<strong>Copyright © 2014-{{ \Carbon\Carbon::now()->year }} <a href="#">© Leenooks</a>.</strong> All rights reserved.
|
||||
</footer>
|
@ -1,35 +1,58 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{ config('app.name') }} - @yield('htmlheader_title', 'Your title here')</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>{{ config('app.name') }} - @yield('htmlheader_title','Your title here')</title>
|
||||
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<link href="{{ asset('/css/all.css') }}" rel="stylesheet" type="text/css" />
|
||||
{{--
|
||||
<!-- Included in adminlte -->
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
|
||||
--}}
|
||||
|
||||
<!-- Font Awesome Icons -->
|
||||
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||
{{--
|
||||
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.15.4/css/v4-shims.css">
|
||||
--}}
|
||||
|
||||
<!-- Theme style -->
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/admin-lte@3.2.0/dist/css/adminlte.min.css">
|
||||
|
||||
<!-- Google Font: Source Sans Pro -->
|
||||
<link href="https://fonts.googleapis.com/css2?family={{ str_replace(' ','+',config('app.font') ?: 'IBM Plex Sans') }}:wght@300&display=swap" rel="stylesheet">
|
||||
|
||||
@if(file_exists('css/social.css'))
|
||||
<!-- Social Logins -->
|
||||
<link rel="stylesheet" href="{{ asset('css/social.css') }}">
|
||||
@endif
|
||||
@if(file_exists('css/print.css'))
|
||||
<!-- Printing Modifications -->
|
||||
<link rel="stylesheet" href="{{ asset('css/print.css') }}">
|
||||
@endif
|
||||
|
||||
{{--
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
--}}
|
||||
|
||||
<script>
|
||||
//See https://laracasts.com/discuss/channels/vue/use-trans-in-vuejs
|
||||
window.trans =
|
||||
@php
|
||||
// copy all translations from /resources/lang/CURRENT_LOCALE/* to global JS variable
|
||||
$lang_files = File::files(resource_path() . '/lang/' . App::getLocale());
|
||||
$trans = [];
|
||||
foreach ($lang_files as $f) {
|
||||
$filename = pathinfo($f)['filename'];
|
||||
$trans[$filename] = trans($filename);
|
||||
}
|
||||
$trans['adminlte_lang_message'] = trans('adminlte_lang::message');
|
||||
echo json_encode($trans);
|
||||
@endphp
|
||||
</script>
|
||||
<!-- Page Styles -->
|
||||
{!! PageAssets::css() !!}
|
||||
|
||||
<!-- STYLESHEETS -->
|
||||
{!! Asset::styles() !!}
|
||||
@yield('page-styles')
|
||||
|
||||
@if(file_exists('css/fixes.css'))
|
||||
<!-- CSS Fixes -->
|
||||
<link rel="stylesheet" href="{{ asset('css/fixes.css') }}">
|
||||
@endif
|
||||
|
||||
@if(file_exists('css/custom.css'))
|
||||
<!-- Custom CSS -->
|
||||
<link rel="stylesheet" href="{{ asset('css/custom.css') }}">
|
||||
@endif
|
||||
</head>
|
||||
|
@ -1,104 +1,161 @@
|
||||
<!-- Main Header -->
|
||||
<header class="main-header">
|
||||
<!-- Navbar -->
|
||||
<nav class="main-header navbar navbar-expand bg-white navbar-light border-bottom">
|
||||
<!-- Left navbar links -->
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- Logo -->
|
||||
<a href="{{ url('/home') }}" class="logo">
|
||||
<!-- mini logo for sidebar mini 50x50 pixels -->
|
||||
<span class="logo-mini">{!! config('app.name_html_short','<b>A</b>N') !!}</span>
|
||||
<!-- logo for regular state and mobile devices -->
|
||||
<span class="logo-lg">{!! config('app.name_html_long','<b>App</b>Name') !!}</span>
|
||||
</a>
|
||||
|
||||
<!-- Header Navbar -->
|
||||
<nav class="navbar navbar-static-top" role="navigation">
|
||||
<!-- Sidebar toggle button-->
|
||||
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
|
||||
<span class="sr-only">{{ trans('adminlte_lang::message.togglenav') }}</span>
|
||||
</a>
|
||||
<!-- Navbar Right Menu -->
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
<!-- Tasks Menu -->
|
||||
@if (Auth::guest())
|
||||
<li><a href="{{ url('/register') }}">{{ trans('adminlte_lang::message.register') }}</a></li>
|
||||
<li><a href="{{ url('/login') }}">{{ trans('adminlte_lang::message.login') }}</a></li>
|
||||
@else
|
||||
|
||||
@if (isset($topmenu))
|
||||
<!-- Available Data Menu -->
|
||||
<li class="dropdown tasks-menu" id="import_date">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="hidden-xs">Items</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="header">Header</li>
|
||||
<li>
|
||||
<ul class="menu small">
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li class="footer"><a href="#">(Not Active)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
<!-- Top Menu Items -->
|
||||
@include('adminlte::layouts.partials.topmenu')
|
||||
|
||||
<li class="dropdown user user-menu @if($user->switched) bg-red @endif" id="user_menu">
|
||||
<!-- Menu Toggle Button -->
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<!-- The user image in the navbar-->
|
||||
<img src="{{ Gravatar::get($user->email) }}" class="user-image" alt="User Image"/>
|
||||
<!-- hidden-xs hides the username on small devices so only the image appears. -->
|
||||
<span class="hidden-xs">{{ $user->name }}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<!-- The user image in the menu -->
|
||||
<li class="user-header">
|
||||
<img src="{{ Gravatar::get($user->email) }}" class="img-circle" alt="User Image" />
|
||||
<p>
|
||||
{{ $user->name }}
|
||||
<small>{{ trans('adminlte_lang::message.login') }}: @if($user->last_access) {{ $user->last_access->format('Y-m-d') }} @else Unknown @endif</small>
|
||||
</p>
|
||||
</li>
|
||||
<!-- Menu Footer-->
|
||||
<li class="user-footer">
|
||||
<div class="pull-left">
|
||||
<a href="{{ url('/settings') }}" class="btn btn-default btn-flat">{{ trans('adminlte_lang::message.profile') }}</a>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
@if ($user->switched)
|
||||
<a href="{{ url('/admin/switch/stop') }}" class="btn btn-default btn-flat" id="switch">
|
||||
{{ trans('adminlte_lang::message.switchoff') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ url('/logout') }}" class="btn btn-default btn-flat" id="logout"
|
||||
onclick="event.preventDefault();
|
||||
document.getElementById('logout-form').submit();">
|
||||
{{ trans('adminlte_lang::message.signout') }}
|
||||
</a>
|
||||
|
||||
<form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
|
||||
{{ csrf_field() }}
|
||||
<input type="submit" value="logout" style="display: none;">
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@endif
|
||||
|
||||
<!-- Control Sidebar Toggle Button -->
|
||||
@if (isset($controlbar))
|
||||
<li>
|
||||
<a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
<!-- SEARCH FORM -->
|
||||
<form class="form-inline ml-3">
|
||||
<div class="input-group input-group-sm">
|
||||
<input class="form-control form-control-navbar" name="q" type="search" placeholder="Search" aria-label="Search" autocomplete="off">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fas fa-search"></i></span>
|
||||
<span class="p-1 d-none" name="searching"><i class="fas fa-spinner fa-spin" style="margin-top: .33em; width: 1em; height: 1em;"></i></span>
|
||||
</div>
|
||||
<div id="search_results"></div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
</form>
|
||||
|
||||
<!-- Right navbar links -->
|
||||
<ul class="navbar-nav ml-auto">
|
||||
@include('adminlte::layouts.partials.topmenu')
|
||||
|
||||
@if(Auth::check())
|
||||
<!-- Profile Settings -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link" data-toggle="dropdown" href="#">
|
||||
<i class="fas fa-cog"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
|
||||
<span class="dropdown-item dropdown-header @if($user->switched) bg-danger @endif">
|
||||
@if($user->switched)
|
||||
SUDO (<small>{{ $user->name ?: 'User Name' }}</small>)
|
||||
@else
|
||||
{{ $user->name ?: 'User Name' }}
|
||||
@endif
|
||||
</span>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
<a href="{{ url('settings') }}" class="dropdown-item">
|
||||
<i class="fas fa-user mr-2"></i> Settings
|
||||
</a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
@if ($user->switched)
|
||||
<a href="{{ url('/admin/switch/stop') }}" class="dropdown-item">
|
||||
<i class="fas fa-sign-out-alt mr-2"></i> {{ trans('adminlte_lang::message.switchoff') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ url('logout') }}" class="dropdown-item">
|
||||
<i class="fas fa-sign-out-alt mr-2"></i> Log Out
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@else
|
||||
<a href="{{ url()->current().'?login=1' }}" class="text-muted pr-2"><i class="fas fa-lock"></i></a>
|
||||
@endif
|
||||
|
||||
<!-- Control Side Bar -->
|
||||
@isset($controlsidebar)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#">
|
||||
<i class="fas fa-th"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endisset
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@section('page-scripts')
|
||||
<style>
|
||||
/* Solid border */
|
||||
div.typeahead.dropdown-menu > .dropdown-header {
|
||||
color: #000000;
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('input[name=q]').typeahead({
|
||||
autoSelect: false,
|
||||
scrollHeight: 10,
|
||||
theme: 'bootstrap4',
|
||||
delay: 500,
|
||||
minLength: 2,
|
||||
items: {{ isset($search_limit) ? $search_limit : 100 }},
|
||||
fitToElement: false,
|
||||
selectOnBlur: false,
|
||||
appendTo: "#search_results",
|
||||
source: function (query,process) {
|
||||
search('{{ url("search",['date'=>isset($ido) ? $ido->id : NULL]) }}',query,process);
|
||||
},
|
||||
|
||||
matcher: function () { return true; },
|
||||
|
||||
// Disable sorting and just return the items (items should by the ajax method)
|
||||
sorter: function(items) {
|
||||
return items;
|
||||
},
|
||||
|
||||
updater: function (item) {
|
||||
window.parent.location.href = item.value;
|
||||
},
|
||||
})
|
||||
.on('keyup keypress', function(event) {
|
||||
var key = event.keyCode || event.which;
|
||||
if (key === 13) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var c=0;
|
||||
var search = _.debounce(function(url,query,process,icon){
|
||||
$.ajax({
|
||||
url : url,
|
||||
type : 'GET',
|
||||
data : 'term=' + query,
|
||||
dataType : 'JSON',
|
||||
async : true,
|
||||
cache : false,
|
||||
beforeSend : function() {
|
||||
if (c++ == 0) {
|
||||
if (icon)
|
||||
$('i[name='+icon+']').addClass("fa-spin");
|
||||
else {
|
||||
$('span[name=searching]').removeClass("d-none");
|
||||
}
|
||||
}
|
||||
},
|
||||
success : function(data) {
|
||||
// if json is null, means no match, won't do again.
|
||||
if(data==null || (data.length===0)) return;
|
||||
|
||||
process(data);
|
||||
},
|
||||
complete : function() {
|
||||
if (--c == 0) {
|
||||
if (icon)
|
||||
$('i[name='+icon+']').removeClass("fa-spin");
|
||||
else {
|
||||
$('span[name=searching]').addClass("d-none");
|
||||
}
|
||||
}
|
||||
},
|
||||
statusCode: {
|
||||
401: function() {
|
||||
window.parent.location.href = '{{ route('login') }}';
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 500);
|
||||
</script>
|
||||
@append
|
@ -1,22 +1,112 @@
|
||||
<!-- REQUIRED JS SCRIPTS -->
|
||||
<!-- Bootstrap & Jquery App -->
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
|
||||
<!-- AdminLTE -->
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/admin-lte@3.2.0/dist/js/adminlte.min.js"></script>
|
||||
|
||||
<!-- JQuery and bootstrap are required by Laravel 5.3 in resources/assets/js/bootstrap.js-->
|
||||
<!-- Laravel App -->
|
||||
<script src="{{ url(mix('/js/app.js')) }}" type="text/javascript"></script>
|
||||
<!-- Additional Utilities -->
|
||||
<script src="{{ asset('plugin/bootstrap3-typeahead/js/bootstrap3-typeahead.min.js') }}"></script>
|
||||
|
||||
<!-- Our our CSRF token to each interaction -->
|
||||
{{-- @todo Test that we are validating this, also axios should be doing this for us? --}}
|
||||
<script type="text/javascript">
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
// Our CSRF token to each interaction
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
|
||||
$.AdminLTESidebarTweak = {};
|
||||
$.AdminLTESidebarTweak.Open = true;
|
||||
$.AdminLTESidebarTweak.ResizeDelay = 1000;
|
||||
|
||||
$.AdminLTESidebarTweak.options = {
|
||||
EnableRemember: true,
|
||||
//Removes the transition after page reload.
|
||||
NoTransitionAfterReload: false
|
||||
};
|
||||
|
||||
// Work out our timezone.
|
||||
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
|
||||
/**
|
||||
* Open and close the sidebar
|
||||
* @param state
|
||||
* @param addclass
|
||||
*/
|
||||
function sidebaropenclose(state,addclass) {
|
||||
// Dont do anything if the state hasnt changed.
|
||||
if (state == $.AdminLTESidebarTweak.Open) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.AdminLTESidebarTweak.Open = state;
|
||||
|
||||
if (addclass !== 'undefined')
|
||||
$('body')
|
||||
.addClass(state ? 'sidebar-open' : 'sidebar-collapse');
|
||||
|
||||
$(this).delay($.AdminLTESidebarTweak.ResizeDelay).queue(function() {
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
$(this).dequeue();
|
||||
});
|
||||
}
|
||||
|
||||
$(function () {
|
||||
"use strict";
|
||||
|
||||
$('body').on('collapsed.lte.pushmenu', function(){
|
||||
if($.AdminLTESidebarTweak.options.EnableRemember) {
|
||||
document.cookie = "toggleState=closed;path=/";
|
||||
|
||||
$("body").queue(sidebaropenclose(false));
|
||||
}
|
||||
});
|
||||
|
||||
$('body').on('shown.lte.pushmenu', function(){
|
||||
if($.AdminLTESidebarTweak.options.EnableRemember){
|
||||
document.cookie = "toggleState=opened;path=/";
|
||||
|
||||
$("body").queue(sidebaropenclose(true));
|
||||
}
|
||||
});
|
||||
|
||||
if($.AdminLTESidebarTweak.options.EnableRemember){
|
||||
var re = new RegExp('toggleState' + "=([^;]+)");
|
||||
var value = re.exec(document.cookie);
|
||||
var toggleState = (value != null) ? unescape(value[1]) : null;
|
||||
if(toggleState == 'closed'){
|
||||
if($.AdminLTESidebarTweak.options.NoTransitionAfterReload){
|
||||
$("body").addClass('sidebar-collapse hold-transition').delay(100).queue(function(){
|
||||
$(this).removeClass('hold-transition');
|
||||
});
|
||||
}else{
|
||||
$("body").queue(sidebaropenclose(false,true));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Optionally, you can add Slimscroll and FastClick plugins.
|
||||
Both of these plugins are recommended to enhance the
|
||||
user experience. Slimscroll is required when using the
|
||||
fixed layout. -->
|
||||
@js('/site/js/jquery.slimscroll.min.js','jq.slimscroll');
|
||||
@js('/site/js/fastclick.min.js','jq.fastclick');
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('body')
|
||||
.addClass('sidebar-collapse')
|
||||
.delay(500)
|
||||
.queue(function () {
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
$(this).dequeue();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Page Scripts -->
|
||||
{!! PageAssets::js() !!}
|
||||
|
||||
@yield('page-scripts')
|
||||
|
||||
@if(file_exists('js/custom.js'))
|
||||
<!-- Any Custom JS -->
|
||||
<script src="{{ asset('js/custom.js') }}"></script>
|
||||
@endif
|
@ -1,2 +0,0 @@
|
||||
<!-- Compiled app javascript -->
|
||||
<script src="{{ url (mix('/js/app.js')) }}"></script>
|
@ -1,112 +1,37 @@
|
||||
<!-- Left side column. contains the logo and sidebar -->
|
||||
<aside class="main-sidebar">
|
||||
<!-- Main Sidebar Container -->
|
||||
<aside class="main-sidebar sidebar-dark-primary elevation-4 d-print-none">
|
||||
<!-- Brand Logo -->
|
||||
<a href="{{ url('home') }}" class="brand-link">
|
||||
<img src="{{ asset('img/logo.png') }}" alt="Logo" style="margin-left: 0; padding: 5px;" class="brand-image">
|
||||
<span class="brand-text font-weight-light">{!! config('app.name_html_long','<b>App</b>Name') !!}</span>
|
||||
</a>
|
||||
|
||||
<!-- sidebar: style can be found in sidebar.less -->
|
||||
<section class="sidebar">
|
||||
<!-- Sidebar -->
|
||||
<div class="sidebar">
|
||||
<!-- Sidebar user panel (optional) -->
|
||||
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
|
||||
<div class="image">
|
||||
@if(isset($user) AND $user->exists)
|
||||
<i class="fa fa-fw fa-2x fa-user text-white"></i>
|
||||
@else
|
||||
<a name="login" href="{{ url()->current().'?login=1' }}" class="d-block"><i class="pl-1 fas fa-lock fa-2x"></i></a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Sidebar user panel (optional) -->
|
||||
@if (! Auth::guest())
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<img src="{{ Gravatar::get($user->email) }}" class="img-circle" alt="User Image" />
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{ Auth::user()->name }}</p>
|
||||
<!-- Status -->
|
||||
<a href="#"><i class="fa fa-circle text-success"></i> {{ trans('adminlte_lang::message.online') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="info">
|
||||
<a href="{{ url('login') }}" class="d-block">{{ (isset($user) AND $user->exists) ? ($user->name ?: 'No Name') : 'Login' }}</a>
|
||||
@isset($user->lastlogin)<a name="login" span="d-block"><small><span style="color: #747474;">Last On:</span> {{ $user->lastlogin->format('Y-m-d H:i') }}</small></a>@endisset
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- search form (Optional) -->
|
||||
<form action="#" method="get" class="sidebar-form">
|
||||
<div class="input-group">
|
||||
<input type="text" name="q" class="form-control" autocomplete="off" placeholder="{{ trans('adminlte_lang::message.search') }}..."/>
|
||||
<span class="input-group-btn">
|
||||
<button type='submit' name='search' id='search-btn' class="btn btn-flat"><i class="fa fa-search"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<!-- /.search form -->
|
||||
|
||||
<!-- Sidebar Menu -->
|
||||
@include('adminlte::layouts.partials.sidebarmenu')
|
||||
<!-- Sidebar Menu -->
|
||||
<nav class="mt-2">
|
||||
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" data-accordion="false">
|
||||
<!-- Add icons to the links using the .nav-icon class with font-awesome or any other icon font library -->
|
||||
@include('adminlte::layouts.partials.sidebarmenu')
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- /.sidebar-menu -->
|
||||
</section>
|
||||
<!-- /.sidebar -->
|
||||
</div>
|
||||
<!-- /.sidebar -->
|
||||
</aside>
|
||||
|
||||
@section('page-scripts')
|
||||
@js('/site/js/bootstrap3-typeahead.min.js','bs-typeahead')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("input[name=q]").typeahead({
|
||||
delay: 300,
|
||||
minLength: 2,
|
||||
fitToElement: false,
|
||||
appendTo: "#search_results",
|
||||
source: function (query,process) {
|
||||
search('{{ url("search",['date'=>isset($ido) ? $ido->id : NULL]) }}',query,process);
|
||||
},
|
||||
|
||||
matcher: function () { return true; },
|
||||
|
||||
updater: function (item) {
|
||||
window.parent.location.href = '{{ url("/") }}'+users[item];
|
||||
},
|
||||
})
|
||||
.on('keyup keypress', function(event) {
|
||||
var key = event.keyCode || event.which;
|
||||
if (key === 13) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var c=0;
|
||||
var search = _.debounce(function(url,query,process,icon){
|
||||
$.ajax({
|
||||
url : url,
|
||||
type : 'GET',
|
||||
data : 'term=' + query,
|
||||
dataType : 'JSON',
|
||||
async : false,
|
||||
cache : false,
|
||||
beforeSend : function() {
|
||||
if (c++ == 0) {
|
||||
if (icon)
|
||||
$('i[name='+icon+']').addClass("fa-spin");
|
||||
else
|
||||
$('i[name=searching]').removeClass("hidden");
|
||||
}
|
||||
},
|
||||
success : function(data) {
|
||||
// if json is null, means no match, won't do again.
|
||||
if(data==null || (data.length===0)) return;
|
||||
|
||||
users = {};
|
||||
userLabels = [];
|
||||
_.each(data,function(item,ix,list) {
|
||||
if (_.includes(users,item.label))
|
||||
item.label = item.label + ' #' + item.value;
|
||||
|
||||
userLabels.push(item.label);
|
||||
users[item.label] = item.value;
|
||||
});
|
||||
|
||||
process(userLabels);
|
||||
},
|
||||
complete : function() {
|
||||
if (--c == 0) {
|
||||
if (icon)
|
||||
$('i[name='+icon+']').removeClass("fa-spin");
|
||||
else
|
||||
$('i[name=searching]').addClass("hidden");
|
||||
}
|
||||
}
|
||||
})
|
||||
}, 500);
|
||||
</script>
|
||||
@append
|
||||
|
@ -1,5 +1,11 @@
|
||||
<ul class="sidebar-menu" data-widget="tree">
|
||||
<li class="header">Menu</li>
|
||||
<!-- Optionally, you can add icons to the links -->
|
||||
<li @if(Route::current()->getName() == 'home')class="active"@endif><a href="{{ url('home',['date'=>(isset($ido) ? $ido->id : NULL)]) }}"><i class='fa fa-link'></i> <span>{{ trans('adminlte_lang::message.home') }}</span></a></li>
|
||||
</ul>
|
||||
<li class="nav-header">MAIN</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#" class="nav-link @if(Route::current()->getName() == 'home') active @endif">
|
||||
<i class="nav-icon fas fa-th"></i>
|
||||
<p>
|
||||
My Link Title
|
||||
<span class="right badge badge-danger">New</span>
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
@ -0,0 +1,7 @@
|
||||
{{--
|
||||
@foreach ($topmenu as $url => $title)
|
||||
<li class="nav-item d-none d-sm-inline-block">
|
||||
<a href="{{ $url }}" class="nav-link">{{ $title }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
--}}
|
114
resources/themes/architect/views/auth/login.blade.php
Normal file
114
resources/themes/architect/views/auth/login.blade.php
Normal file
@ -0,0 +1,114 @@
|
||||
@extends('architect::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Log in
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<!-- /.login-logo -->
|
||||
<div class="app-container app-theme-white body-tabs-shadow">
|
||||
<div class="app-container">
|
||||
<div class="h-100 bg-animation">
|
||||
<div class="d-flex h-100 justify-content-center align-items-center">
|
||||
<div class="mx-auto app-login-box col-md-8">
|
||||
@if(file_exists('login-note.html'))
|
||||
<div class="mx-auto card text-white card-body bg-primary w-50">
|
||||
<h5 class="text-white card-title"><i class="icon fa-2x fas fa-info pr-3"></i><span class="font-size-xlg">NOTE</span></h5>
|
||||
<span class="w-100 pb-0">
|
||||
{!! file_get_contents('login-note.html') !!}
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="modal-dialog w-100 mx-auto">
|
||||
<div class="modal-content">
|
||||
<form class="needs-validation" novalidate method="post">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="h5 modal-title text-center">
|
||||
<h4 class="mt-2">
|
||||
<div class="app-logo mx-auto mb-3"><img class="w-75" src="{{ url('img/logo-h-lg.png') }}"></div>
|
||||
<small>@lang('Sign in to <strong>:server</strong>',['server'=>'Foo'])</small>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-md-12 mt-3">
|
||||
<label class="mb-1">Email</label>
|
||||
<input name="email" id="user" placeholder="" type="email" class="form-control" required="">
|
||||
<div class="invalid-feedback">
|
||||
@lang('Please enter your email')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 mt-2">
|
||||
<label class="mb-1">@lang('Password')</label>
|
||||
<input name="password" id="password" placeholder="" type="password" class="form-control" required>
|
||||
<div class="invalid-feedback">
|
||||
@lang('Please enter your password')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger w-100">
|
||||
<strong>Whoops!</strong> Something went wrong?<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="float-right">
|
||||
<button class="btn btn-primary btn-lg">Login</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
<style>
|
||||
label {
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
font-size: 85%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table.table tr:last-child {
|
||||
border-bottom: 1px solid #e9ecef;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
// Example starter JavaScript for disabling form submissions if there are invalid fields
|
||||
(function () {
|
||||
'use strict';
|
||||
window.addEventListener('load',function () {
|
||||
// Fetch all the forms we want to apply custom Bootstrap validation styles to
|
||||
var forms = document.getElementsByClassName('needs-validation');
|
||||
// Loop over them and prevent submission
|
||||
var validation = Array.prototype.filter.call(forms, function (form) {
|
||||
form.addEventListener('submit', function (event) {
|
||||
if (form.checkValidity() === false) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
form.classList.add('was-validated');
|
||||
}, false);
|
||||
});
|
||||
}, false);
|
||||
})();
|
||||
</script>
|
||||
@append
|
44
resources/themes/architect/views/layouts/app.blade.php
Normal file
44
resources/themes/architect/views/layouts/app.blade.php
Normal file
@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@section('htmlheader')
|
||||
@include('architect::layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
<body>
|
||||
<div class="app-container app-theme-white body-tabs-shadow fixed-sidebar">
|
||||
@include('architect::layouts.partials.topmenu')
|
||||
|
||||
@includeIf('architect::layouts.partials.controlsidebar')
|
||||
|
||||
<div class="app-main">
|
||||
@include('architect::layouts.partials.sidebarmenu')
|
||||
|
||||
<div class="app-main__outer">
|
||||
<div class="app-main__inner">
|
||||
<div class="main-content">
|
||||
@if (trim($__env->yieldContent('page_title')))
|
||||
@include('architect::layouts.partials.contentheader')
|
||||
@endif
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<!-- Your Page Content Here -->
|
||||
@yield('main-content')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('architect::layouts.partials.contentfooter')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('scripts')
|
||||
@include('architect::layouts.partials.scripts')
|
||||
|
||||
@yield('page-scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
18
resources/themes/architect/views/layouts/auth.blade.php
Normal file
18
resources/themes/architect/views/layouts/auth.blade.php
Normal file
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@section('htmlheader')
|
||||
@include('architect::layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
<body class="hold-transition login-page">
|
||||
<div id="app">
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@section('scripts')
|
||||
@include('architect::auth.partials.scripts')
|
||||
|
||||
@yield('page-scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,29 @@
|
||||
<div class="app-wrapper-footer">
|
||||
<div class="app-footer">
|
||||
<div class="app-footer__inner">
|
||||
<div class="app-footer-left">
|
||||
<ul class="nav">
|
||||
{{--
|
||||
<li class="nav-item">
|
||||
<a href="javascript:void(0);" class="nav-link">Footer Link</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="app-footer-right">
|
||||
<ul class="nav">
|
||||
{{--
|
||||
<li class="nav-item">
|
||||
<a href="javascript:void(0);" class="nav-link">
|
||||
<div class="badge badge-success mr-1 ml-0">
|
||||
<small>NEW</small>
|
||||
</div>
|
||||
Footer Link
|
||||
</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,49 @@
|
||||
<div class="app-page-title">
|
||||
<div class="page-title-wrapper">
|
||||
<div class="page-title-heading">
|
||||
@if (trim($__env->yieldContent('page_icon')))
|
||||
<div class="page-title-icon f32">
|
||||
<i class="@yield('page_icon','')"></i>
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
@yield('page_title','Page Title')
|
||||
<div class="page-title-subheading">
|
||||
@yield('page_subtitle','')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@isset($page_actions)
|
||||
<div class="page-title-actions">
|
||||
{{--
|
||||
<button type="button" data-toggle="tooltip" title="Example Tooltip" data-placement="bottom" class="btn-shadow mr-3 btn btn-dark">
|
||||
<i class="fa fa-star"></i>
|
||||
</button>
|
||||
--}}
|
||||
<div class="d-inline-block dropdown">
|
||||
<button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn-shadow dropdown-toggle btn btn-info">
|
||||
<span class="btn-icon-wrapper pr-2 opacity-7">
|
||||
<i class="fa fa-business-time fa-w-20"></i>
|
||||
</span>
|
||||
Item Menu
|
||||
</button>
|
||||
|
||||
<div tabindex="-1" role="menu" aria-hidden="true" class="dropdown-menu dropdown-menu-right">
|
||||
<ul class="nav flex-column">
|
||||
{{--
|
||||
<li class="nav-item">
|
||||
<a href="javascript:void(0);" class="nav-link">
|
||||
<i class="nav-link-icon lnr-inbox"></i>
|
||||
<span>Inbox</span>
|
||||
<div class="ml-auto badge badge-pill badge-secondary">86</div>
|
||||
</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,195 @@
|
||||
<div class="ui-theme-settings">
|
||||
<button type="button" id="TooltipDemo" class="btn-open-options btn btn-warning">
|
||||
<i class="fas fa-cog fa-w-16 fa-spin fa-2x"></i>
|
||||
</button>
|
||||
<div class="theme-settings__inner">
|
||||
<div class="scrollbar-container">
|
||||
<div class="theme-settings__options-wrapper">
|
||||
<h3 class="themeoptions-heading">Layout Options</h3>
|
||||
<div class="p-3">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<div class="widget-content p-0">
|
||||
<div class="widget-content-wrapper">
|
||||
<div class="widget-content-left mr-3">
|
||||
<div class="switch has-switch switch-container-class" data-class="fixed-header">
|
||||
<div class="switch-animate switch-on">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content-left">
|
||||
<div class="widget-heading">Fixed Header</div>
|
||||
<div class="widget-subheading">Makes the header top fixed, always visible!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="widget-content p-0">
|
||||
<div class="widget-content-wrapper">
|
||||
<div class="widget-content-left mr-3">
|
||||
<div class="switch has-switch switch-container-class" data-class="fixed-sidebar">
|
||||
<div class="switch-animate switch-on">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content-left">
|
||||
<div class="widget-heading">Fixed Sidebar</div>
|
||||
<div class="widget-subheading">Makes the sidebar left fixed, always visible!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="widget-content p-0">
|
||||
<div class="widget-content-wrapper">
|
||||
<div class="widget-content-left mr-3">
|
||||
<div class="switch has-switch switch-container-class" data-class="fixed-footer">
|
||||
<div class="switch-animate switch-off">
|
||||
<input type="checkbox" data-toggle="toggle" data-onstyle="success">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content-left">
|
||||
<div class="widget-heading">Fixed Footer</div>
|
||||
<div class="widget-subheading">Makes the app footer bottom fixed, always visible!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 class="themeoptions-heading">
|
||||
<div>Header Options</div>
|
||||
<button type="button" class="btn-pill btn-shadow btn-wide ml-auto btn btn-focus btn-sm switch-header-cs-class" data-class="">
|
||||
Restore Default
|
||||
</button>
|
||||
</h3>
|
||||
<div class="p-3">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<h5 class="pb-2">Choose Color Scheme</h5>
|
||||
<div class="theme-settings-swatches">
|
||||
<div class="swatch-holder bg-primary switch-header-cs-class" data-class="bg-primary header-text-light"></div>
|
||||
<div class="swatch-holder bg-secondary switch-header-cs-class" data-class="bg-secondary header-text-light"></div>
|
||||
<div class="swatch-holder bg-success switch-header-cs-class" data-class="bg-success header-text-dark"></div>
|
||||
<div class="swatch-holder bg-info switch-header-cs-class" data-class="bg-info header-text-dark"></div>
|
||||
<div class="swatch-holder bg-warning switch-header-cs-class" data-class="bg-warning header-text-dark"></div>
|
||||
<div class="swatch-holder bg-danger switch-header-cs-class" data-class="bg-danger header-text-light"></div>
|
||||
<div class="swatch-holder bg-light switch-header-cs-class" data-class="bg-light header-text-dark"></div>
|
||||
<div class="swatch-holder bg-dark switch-header-cs-class" data-class="bg-dark header-text-light"></div>
|
||||
<div class="swatch-holder bg-focus switch-header-cs-class" data-class="bg-focus header-text-light"></div>
|
||||
<div class="swatch-holder bg-alternate switch-header-cs-class" data-class="bg-alternate header-text-light"></div>
|
||||
<div class="divider"></div>
|
||||
<div class="swatch-holder bg-vicious-stance switch-header-cs-class" data-class="bg-vicious-stance header-text-light"></div>
|
||||
<div class="swatch-holder bg-midnight-bloom switch-header-cs-class" data-class="bg-midnight-bloom header-text-light"></div>
|
||||
<div class="swatch-holder bg-night-sky switch-header-cs-class" data-class="bg-night-sky header-text-light"></div>
|
||||
<div class="swatch-holder bg-slick-carbon switch-header-cs-class" data-class="bg-slick-carbon header-text-light"></div>
|
||||
<div class="swatch-holder bg-asteroid switch-header-cs-class" data-class="bg-asteroid header-text-light"></div>
|
||||
<div class="swatch-holder bg-royal switch-header-cs-class" data-class="bg-royal header-text-light"></div>
|
||||
<div class="swatch-holder bg-warm-flame switch-header-cs-class" data-class="bg-warm-flame header-text-dark"></div>
|
||||
<div class="swatch-holder bg-night-fade switch-header-cs-class" data-class="bg-night-fade header-text-dark"></div>
|
||||
<div class="swatch-holder bg-sunny-morning switch-header-cs-class" data-class="bg-sunny-morning header-text-dark"></div>
|
||||
<div class="swatch-holder bg-tempting-azure switch-header-cs-class" data-class="bg-tempting-azure header-text-dark"></div>
|
||||
<div class="swatch-holder bg-amy-crisp switch-header-cs-class" data-class="bg-amy-crisp header-text-dark"></div>
|
||||
<div class="swatch-holder bg-heavy-rain switch-header-cs-class" data-class="bg-heavy-rain header-text-dark"></div>
|
||||
<div class="swatch-holder bg-mean-fruit switch-header-cs-class" data-class="bg-mean-fruit header-text-dark"></div>
|
||||
<div class="swatch-holder bg-malibu-beach switch-header-cs-class" data-class="bg-malibu-beach header-text-light"></div>
|
||||
<div class="swatch-holder bg-deep-blue switch-header-cs-class" data-class="bg-deep-blue header-text-dark"></div>
|
||||
<div class="swatch-holder bg-ripe-malin switch-header-cs-class" data-class="bg-ripe-malin header-text-light"></div>
|
||||
<div class="swatch-holder bg-arielle-smile switch-header-cs-class" data-class="bg-arielle-smile header-text-light"></div>
|
||||
<div class="swatch-holder bg-plum-plate switch-header-cs-class" data-class="bg-plum-plate header-text-light"></div>
|
||||
<div class="swatch-holder bg-happy-fisher switch-header-cs-class" data-class="bg-happy-fisher header-text-dark"></div>
|
||||
<div class="swatch-holder bg-happy-itmeo switch-header-cs-class" data-class="bg-happy-itmeo header-text-light"></div>
|
||||
<div class="swatch-holder bg-mixed-hopes switch-header-cs-class" data-class="bg-mixed-hopes header-text-light"></div>
|
||||
<div class="swatch-holder bg-strong-bliss switch-header-cs-class" data-class="bg-strong-bliss header-text-light"></div>
|
||||
<div class="swatch-holder bg-grow-early switch-header-cs-class" data-class="bg-grow-early header-text-light"></div>
|
||||
<div class="swatch-holder bg-love-kiss switch-header-cs-class" data-class="bg-love-kiss header-text-light"></div>
|
||||
<div class="swatch-holder bg-premium-dark switch-header-cs-class" data-class="bg-premium-dark header-text-light"></div>
|
||||
<div class="swatch-holder bg-happy-green switch-header-cs-class" data-class="bg-happy-green header-text-light"></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 class="themeoptions-heading">
|
||||
<div>Sidebar Options</div>
|
||||
<button type="button" class="btn-pill btn-shadow btn-wide ml-auto btn btn-focus btn-sm switch-sidebar-cs-class" data-class="">
|
||||
Restore Default
|
||||
</button>
|
||||
</h3>
|
||||
<div class="p-3">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<h5 class="pb-2">Choose Color Scheme
|
||||
</h5>
|
||||
<div class="theme-settings-swatches">
|
||||
<div class="swatch-holder bg-primary switch-sidebar-cs-class" data-class="bg-primary sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-secondary switch-sidebar-cs-class" data-class="bg-secondary sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-success switch-sidebar-cs-class" data-class="bg-success sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-info switch-sidebar-cs-class" data-class="bg-info sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-warning switch-sidebar-cs-class" data-class="bg-warning sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-danger switch-sidebar-cs-class" data-class="bg-danger sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-light switch-sidebar-cs-class" data-class="bg-light sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-dark switch-sidebar-cs-class" data-class="bg-dark sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-focus switch-sidebar-cs-class" data-class="bg-focus sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-alternate switch-sidebar-cs-class" data-class="bg-alternate sidebar-text-light"></div>
|
||||
<div class="divider"></div>
|
||||
<div class="swatch-holder bg-vicious-stance switch-sidebar-cs-class" data-class="bg-vicious-stance sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-midnight-bloom switch-sidebar-cs-class" data-class="bg-midnight-bloom sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-night-sky switch-sidebar-cs-class" data-class="bg-night-sky sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-slick-carbon switch-sidebar-cs-class" data-class="bg-slick-carbon sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-asteroid switch-sidebar-cs-class" data-class="bg-asteroid sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-royal switch-sidebar-cs-class" data-class="bg-royal sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-warm-flame switch-sidebar-cs-class" data-class="bg-warm-flame sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-night-fade switch-sidebar-cs-class" data-class="bg-night-fade sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-sunny-morning switch-sidebar-cs-class" data-class="bg-sunny-morning sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-tempting-azure switch-sidebar-cs-class" data-class="bg-tempting-azure sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-amy-crisp switch-sidebar-cs-class" data-class="bg-amy-crisp sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-heavy-rain switch-sidebar-cs-class" data-class="bg-heavy-rain sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-mean-fruit switch-sidebar-cs-class" data-class="bg-mean-fruit sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-malibu-beach switch-sidebar-cs-class" data-class="bg-malibu-beach sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-deep-blue switch-sidebar-cs-class" data-class="bg-deep-blue sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-ripe-malin switch-sidebar-cs-class" data-class="bg-ripe-malin sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-arielle-smile switch-sidebar-cs-class" data-class="bg-arielle-smile sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-plum-plate switch-sidebar-cs-class" data-class="bg-plum-plate sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-happy-fisher switch-sidebar-cs-class" data-class="bg-happy-fisher sidebar-text-dark"></div>
|
||||
<div class="swatch-holder bg-happy-itmeo switch-sidebar-cs-class" data-class="bg-happy-itmeo sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-mixed-hopes switch-sidebar-cs-class" data-class="bg-mixed-hopes sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-strong-bliss switch-sidebar-cs-class" data-class="bg-strong-bliss sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-grow-early switch-sidebar-cs-class" data-class="bg-grow-early sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-love-kiss switch-sidebar-cs-class" data-class="bg-love-kiss sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-premium-dark switch-sidebar-cs-class" data-class="bg-premium-dark sidebar-text-light"></div>
|
||||
<div class="swatch-holder bg-happy-green switch-sidebar-cs-class" data-class="bg-happy-green sidebar-text-light"></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 class="themeoptions-heading">
|
||||
<div>Main Content Options</div>
|
||||
<button type="button" class="btn-pill btn-shadow btn-wide ml-auto active btn btn-focus btn-sm">Restore Default
|
||||
</button>
|
||||
</h3>
|
||||
<div class="p-3">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<h5 class="pb-2">Page Section Tabs
|
||||
</h5>
|
||||
<div class="theme-settings-swatches">
|
||||
<div role="group" class="mt-2 btn-group">
|
||||
<button type="button" class="btn-wide btn-shadow btn-primary btn btn-secondary switch-theme-class" data-class="body-tabs-line">
|
||||
Line
|
||||
</button>
|
||||
<button type="button" class="btn-wide btn-shadow btn-primary active btn btn-secondary switch-theme-class" data-class="body-tabs-shadow">
|
||||
Shadow
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,50 @@
|
||||
<head>
|
||||
<!--
|
||||
=========================================================
|
||||
* ArchitectUI HTML Theme Dashboard - v1.0.0
|
||||
=========================================================
|
||||
* Product Page: https://dashboardpack.com
|
||||
* Copyright 2019 DashboardPack (https://dashboardpack.com)
|
||||
* Licensed under MIT (https://github.com/DashboardPack/architectui-html-theme-free/blob/master/LICENSE)
|
||||
=========================================================
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
-->
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="Content-Language" content="en">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>{{ config('app.name') }} - @yield('htmlheader_title','Your title here')</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no" />
|
||||
|
||||
<meta name="description" content="phpLDAPadmin - A web interface into LDAP data management">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
{{--
|
||||
<!-- Font Awesome Icons -->
|
||||
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.13.0/css/all.css">
|
||||
--}}
|
||||
|
||||
<!-- Google Font: Source Sans Pro -->
|
||||
<link href="https://fonts.googleapis.com/css2?family={{ str_replace(' ','+',config('app.font') ?: 'IBM Plex Sans') }}:wght@300&display=swap" rel="stylesheet">
|
||||
|
||||
@if(file_exists('css/print.css'))
|
||||
<!-- Printing Modifications -->
|
||||
<link rel="stylesheet" href="{{ asset('/css/print.css') }}">
|
||||
@endif
|
||||
|
||||
<!-- Theme style -->
|
||||
<link rel="stylesheet" href="{{ asset('/css/architect.min.css') }}">
|
||||
|
||||
@if(file_exists('css/fixes.css'))
|
||||
<!-- CSS Fixes -->
|
||||
<link rel="stylesheet" href="{{ asset('/css/fixes.css') }}">
|
||||
@endif
|
||||
|
||||
@if(file_exists('css/custom.css'))
|
||||
<!-- Custom CSS -->
|
||||
<link rel="stylesheet" href="{{ asset('/css/custom.css') }}">
|
||||
@endif
|
||||
</head>
|
@ -0,0 +1,96 @@
|
||||
{{--
|
||||
<script src="{{ asset('/js/app.js') }}" type="text/javascript"></script>
|
||||
--}}
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
|
||||
<!-- Architect -->
|
||||
<script src="{{ asset('/js/architect.min.js') }}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
// Our CSRF token to each interaction
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
|
||||
$.ArchitectSidebarTweak = {};
|
||||
$.ArchitectSidebarTweak.Open = true;
|
||||
$.ArchitectSidebarTweak.ResizeDelay = 1000;
|
||||
|
||||
$.ArchitectSidebarTweak.options = {
|
||||
EnableRemember: true,
|
||||
//Removes the transition after page reload.
|
||||
NoTransitionAfterReload: false
|
||||
};
|
||||
|
||||
// Work out our timezone.
|
||||
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
|
||||
/**
|
||||
* Open and close the sidebar
|
||||
* @param state
|
||||
* @param addclass
|
||||
*/
|
||||
function sidebaropenclose(state,addclass) {
|
||||
// Dont do anything if the state hasnt changed.
|
||||
if (state == $.ArchitectSidebarTweak.Open) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.ArchitectSidebarTweak.Open = state;
|
||||
|
||||
if (addclass !== 'undefined')
|
||||
if (state)
|
||||
$(".app-container")
|
||||
.removeClass('closed-sidebar');
|
||||
else
|
||||
$(".app-container")
|
||||
.addClass('closed-sidebar');
|
||||
|
||||
$(this).delay($.ArchitectSidebarTweak.ResizeDelay).queue(function() {
|
||||
window.dispatchEvent(new Event('resize'));
|
||||
$(this).dequeue();
|
||||
});
|
||||
}
|
||||
|
||||
$(function () {
|
||||
"use strict";
|
||||
|
||||
// @todo This event were for AdminLTE.
|
||||
$("body").on("collapsed.lte.pushmenu", function(){
|
||||
if($.ArchitectSidebarTweak.options.EnableRemember) {
|
||||
document.cookie = "toggleState=closed;path=/";
|
||||
|
||||
$("body").queue(sidebaropenclose(false));
|
||||
}
|
||||
});
|
||||
|
||||
$("body").on("shown.lte.pushmenu", function(){
|
||||
if($.ArchitectSidebarTweak.options.EnableRemember){
|
||||
document.cookie = "toggleState=opened;path=/";
|
||||
|
||||
$("body").queue(sidebaropenclose(true));
|
||||
}
|
||||
});
|
||||
|
||||
if($.ArchitectSidebarTweak.options.EnableRemember){
|
||||
var re = new RegExp('toggleState' + "=([^;]+)");
|
||||
var value = re.exec(document.cookie);
|
||||
var toggleState = (value != null) ? unescape(value[1]) : null;
|
||||
if(toggleState == 'closed'){
|
||||
if($.ArchitectSidebarTweak.options.NoTransitionAfterReload){
|
||||
$("body").addClass('sidebar-collapse hold-transition').delay(100).queue(function(){
|
||||
$(this).removeClass('hold-transition');
|
||||
});
|
||||
}else{
|
||||
$("body").queue(sidebaropenclose(false,true));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@if(file_exists('js/custom.js'))
|
||||
<!-- Any Custom JS -->
|
||||
<script src="{{ asset('js/custom.js') }}"></script>
|
||||
@endif
|
@ -0,0 +1,85 @@
|
||||
<div class="app-sidebar sidebar-shadow">
|
||||
<div class="app-header__logo">
|
||||
<div class="logo-src"></div>
|
||||
<div class="header__pane ml-auto">
|
||||
<div>
|
||||
<button type="button" class="hamburger close-sidebar-btn hamburger--elastic" data-class="closed-sidebar">
|
||||
<span class="hamburger-box">
|
||||
<span class="hamburger-inner"></span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-header__mobile-menu">
|
||||
<div>
|
||||
<button type="button" class="hamburger hamburger--elastic mobile-toggle-nav">
|
||||
<span class="hamburger-box">
|
||||
<span class="hamburger-inner"></span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-header__menu">
|
||||
<span>
|
||||
<button type="button" class="btn-icon btn-icon-only btn btn-primary btn-sm mobile-toggle-header-nav">
|
||||
<span class="btn-icon-wrapper">
|
||||
<i class="fas fa-ellipsis-v fa-w-6"></i>
|
||||
</span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="scrollbar-sidebar scrollbar-container">
|
||||
<div class="app-sidebar__inner">
|
||||
<ul class="vertical-nav-menu">
|
||||
<li class="app-sidebar__heading">Header</li>
|
||||
<li>
|
||||
<a href="index.html" class="mm-active">
|
||||
<i class="metismenu-icon pe-7s-rocket"></i> Example 1
|
||||
</a>
|
||||
</li>
|
||||
{{--
|
||||
<li class="app-sidebar__heading">UI Components</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="metismenu-icon pe-7s-diamond"></i> Elements
|
||||
<i class="metismenu-state-icon pe-7s-angle-down caret-left"></i>
|
||||
</a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="elements-buttons-standard.html">
|
||||
<i class="metismenu-icon"></i> Buttons
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="metismenu-icon pe-7s-car"></i> Components
|
||||
<i class="metismenu-state-icon pe-7s-angle-down caret-left"></i>
|
||||
</a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="components-tabs.html">
|
||||
<i class="metismenu-icon"></i> Tabs
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables-regular.html">
|
||||
<i class="metismenu-icon pe-7s-display2"></i> Tables
|
||||
</a>
|
||||
</li>
|
||||
<li class="app-sidebar__heading">Widgets</li>
|
||||
<li>
|
||||
<a href="dashboard-boxes.html">
|
||||
<i class="metismenu-icon pe-7s-display2"></i> Dashboard Boxes
|
||||
</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,91 @@
|
||||
<div class="app-header header-shadow bg-dark header-text-light">
|
||||
<div class="app-header__logo">
|
||||
<div class="logo-src"></div>
|
||||
<div class="header__pane ml-auto">
|
||||
<div>
|
||||
<button type="button" class="hamburger close-sidebar-btn hamburger--elastic" data-class="closed-sidebar">
|
||||
<span class="hamburger-box">
|
||||
<span class="hamburger-inner"></span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-header__mobile-menu">
|
||||
<div>
|
||||
<button type="button" class="hamburger hamburger--elastic mobile-toggle-nav">
|
||||
<span class="hamburger-box">
|
||||
<span class="hamburger-inner"></span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-header__menu">
|
||||
<span>
|
||||
<button type="button" class="btn-icon btn-icon-only btn btn-primary btn-sm mobile-toggle-header-nav">
|
||||
<span class="btn-icon-wrapper">
|
||||
<i class="fas fa-ellipsis-v fa-w-6"></i>
|
||||
</span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="app-header__content">
|
||||
<div class="app-header-left">
|
||||
<div class="search-wrapper">
|
||||
<div class="input-holder">
|
||||
<input type="text" class="search-input" placeholder="Type to search">
|
||||
<button class="search-icon"><span></span></button>
|
||||
</div>
|
||||
<button class="close"></button>
|
||||
</div>
|
||||
|
||||
<ul class="header-menu nav">
|
||||
{{--
|
||||
<li class="nav-item">
|
||||
<a href="javascript:void(0);" class="nav-link">
|
||||
<i class="nav-link-icon fas fa-database"></i> Link
|
||||
</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="app-header-right">
|
||||
<div class="header-btn-lg pr-0">
|
||||
<div class="widget-content p-0">
|
||||
<div class="widget-content-wrapper">
|
||||
<div class="widget-content-left">
|
||||
<div class="btn-group">
|
||||
<a data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="p-0 btn">
|
||||
<img width="42" class="rounded-circle" src="assets/images/avatars/1.jpg" alt="">
|
||||
<i class="fas fa-angle-down ml-2 opacity-8"></i>
|
||||
</a>
|
||||
<div tabindex="-1" role="menu" aria-hidden="true" class="dropdown-menu dropdown-menu-right">
|
||||
<button type="button" tabindex="0" class="dropdown-item">User Account</button>
|
||||
<button type="button" tabindex="0" class="dropdown-item">Settings</button>
|
||||
<h6 tabindex="-1" class="dropdown-header">Header</h6>
|
||||
<button type="button" tabindex="0" class="dropdown-item">Actions</button>
|
||||
<div tabindex="-1" class="dropdown-divider"></div>
|
||||
<button type="button" tabindex="0" class="dropdown-item">Dividers</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content-left ml-3 header-user-info">
|
||||
<div class="widget-heading">
|
||||
{{ $user->name ?? 'John Smith' }}
|
||||
</div>
|
||||
<div class="widget-subheading">
|
||||
{{ $user->title ?? 'Primary Developer' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content-right header-user-info ml-3">
|
||||
<button type="button" class="btn-shadow p-1 btn btn-primary btn-sm show-toastr-example">
|
||||
<i class="fas text-white fa-calendar pr-1 pl-1"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
650
resources/themes/metronic/assets/components.css
Normal file
650
resources/themes/metronic/assets/components.css
Normal file
@ -0,0 +1,650 @@
|
||||
/* Reset rounded corners for all elements */
|
||||
div,
|
||||
input,
|
||||
select,
|
||||
textarea,
|
||||
span,
|
||||
img,
|
||||
table,
|
||||
label,
|
||||
td,
|
||||
th,
|
||||
p,
|
||||
a,
|
||||
button,
|
||||
ul,
|
||||
code,
|
||||
pre,
|
||||
li {
|
||||
-webkit-border-radius: 0 !important;
|
||||
-moz-border-radius: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
a,
|
||||
a:focus,
|
||||
a:hover,
|
||||
a:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/*Fix for Firefox*/
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* Bootstrap buttons */
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active,
|
||||
.btn-primary.active {
|
||||
color: #fff;
|
||||
background-color: #3379b5;
|
||||
border-color: #2a6496;
|
||||
}
|
||||
|
||||
.open .btn-primary.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #3379b5;
|
||||
border-color: #2a6496;
|
||||
}
|
||||
|
||||
.btn-primary:active,
|
||||
.btn-primary.active {
|
||||
background-image: none;
|
||||
background-color: #2d6ca2;
|
||||
}
|
||||
|
||||
.btn-primary:active:hover,
|
||||
.btn-primary.active:hover {
|
||||
background-color: #3071a9;
|
||||
}
|
||||
|
||||
.open .btn-primary.dropdown-toggle {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.btn-primary.disabled,
|
||||
.btn-primary.disabled:hover,
|
||||
.btn-primary.disabled:focus,
|
||||
.btn-primary.disabled:active,
|
||||
.btn-primary.disabled.active,
|
||||
.btn-primary[disabled],
|
||||
.btn-primary[disabled]:hover,
|
||||
.btn-primary[disabled]:focus,
|
||||
.btn-primary[disabled]:active,
|
||||
.btn-primary[disabled].active,
|
||||
fieldset[disabled] .btn-primary,
|
||||
fieldset[disabled] .btn-primary:hover,
|
||||
fieldset[disabled] .btn-primary:focus,
|
||||
fieldset[disabled] .btn-primary:active,
|
||||
fieldset[disabled] .btn-primary.active {
|
||||
background-color: #428bca;
|
||||
border-color: #357ebd;
|
||||
}
|
||||
|
||||
.btn-primary .badge {
|
||||
color: #428bca;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
color: #fff;
|
||||
background-color: #45B6AF;
|
||||
border-color: #3ea49d;
|
||||
}
|
||||
|
||||
.btn-success:hover,
|
||||
.btn-success:focus,
|
||||
.btn-success:active,
|
||||
.btn-success.active {
|
||||
color: #fff;
|
||||
background-color: #3b9c96;
|
||||
border-color: #307f7a;
|
||||
}
|
||||
|
||||
.open .btn-success.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #3b9c96;
|
||||
border-color: #307f7a;
|
||||
}
|
||||
|
||||
.btn-success:active,
|
||||
.btn-success.active {
|
||||
background-image: none;
|
||||
background-color: #348a84;
|
||||
}
|
||||
|
||||
.btn-success:active:hover,
|
||||
.btn-success.active:hover {
|
||||
background-color: #37918b;
|
||||
}
|
||||
|
||||
.open .btn-success.dropdown-toggle {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.btn-success.disabled,
|
||||
.btn-success.disabled:hover,
|
||||
.btn-success.disabled:focus,
|
||||
.btn-success.disabled:active,
|
||||
.btn-success.disabled.active,
|
||||
.btn-success[disabled],
|
||||
.btn-success[disabled]:hover,
|
||||
.btn-success[disabled]:focus,
|
||||
.btn-success[disabled]:active,
|
||||
.btn-success[disabled].active,
|
||||
fieldset[disabled] .btn-success,
|
||||
fieldset[disabled] .btn-success:hover,
|
||||
fieldset[disabled] .btn-success:focus,
|
||||
fieldset[disabled] .btn-success:active,
|
||||
fieldset[disabled] .btn-success.active {
|
||||
background-color: #45B6AF;
|
||||
border-color: #3ea49d;
|
||||
}
|
||||
|
||||
.btn-success .badge {
|
||||
color: #45B6AF;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
color: #fff;
|
||||
background-color: #89C4F4;
|
||||
border-color: #72b8f2;
|
||||
}
|
||||
|
||||
.btn-info:hover,
|
||||
.btn-info:focus,
|
||||
.btn-info:active,
|
||||
.btn-info.active {
|
||||
color: #fff;
|
||||
background-color: #68b4f1;
|
||||
border-color: #43a1ed;
|
||||
}
|
||||
|
||||
.open .btn-info.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #68b4f1;
|
||||
border-color: #43a1ed;
|
||||
}
|
||||
|
||||
.btn-info:active,
|
||||
.btn-info.active {
|
||||
background-image: none;
|
||||
background-color: #51a8ef;
|
||||
}
|
||||
|
||||
.btn-info:active:hover,
|
||||
.btn-info.active:hover {
|
||||
background-color: #5aadf0;
|
||||
}
|
||||
|
||||
.open .btn-info.dropdown-toggle {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.btn-info.disabled,
|
||||
.btn-info.disabled:hover,
|
||||
.btn-info.disabled:focus,
|
||||
.btn-info.disabled:active,
|
||||
.btn-info.disabled.active,
|
||||
.btn-info[disabled],
|
||||
.btn-info[disabled]:hover,
|
||||
.btn-info[disabled]:focus,
|
||||
.btn-info[disabled]:active,
|
||||
.btn-info[disabled].active,
|
||||
fieldset[disabled] .btn-info,
|
||||
fieldset[disabled] .btn-info:hover,
|
||||
fieldset[disabled] .btn-info:focus,
|
||||
fieldset[disabled] .btn-info:active,
|
||||
fieldset[disabled] .btn-info.active {
|
||||
background-color: #89C4F4;
|
||||
border-color: #72b8f2;
|
||||
}
|
||||
|
||||
.btn-info .badge {
|
||||
color: #89C4F4;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn-warning {
|
||||
color: #fff;
|
||||
background-color: #dfba49;
|
||||
border-color: #dbb233;
|
||||
}
|
||||
|
||||
.btn-warning:hover,
|
||||
.btn-warning:focus,
|
||||
.btn-warning:active,
|
||||
.btn-warning.active {
|
||||
color: #fff;
|
||||
background-color: #daae2b;
|
||||
border-color: #bb9521;
|
||||
}
|
||||
|
||||
.open .btn-warning.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #daae2b;
|
||||
border-color: #bb9521;
|
||||
}
|
||||
|
||||
.btn-warning:active,
|
||||
.btn-warning.active {
|
||||
background-image: none;
|
||||
background-color: #c89f23;
|
||||
}
|
||||
|
||||
.btn-warning:active:hover,
|
||||
.btn-warning.active:hover {
|
||||
background-color: #d0a625;
|
||||
}
|
||||
|
||||
.open .btn-warning.dropdown-toggle {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.btn-warning.disabled,
|
||||
.btn-warning.disabled:hover,
|
||||
.btn-warning.disabled:focus,
|
||||
.btn-warning.disabled:active,
|
||||
.btn-warning.disabled.active,
|
||||
.btn-warning[disabled],
|
||||
.btn-warning[disabled]:hover,
|
||||
.btn-warning[disabled]:focus,
|
||||
.btn-warning[disabled]:active,
|
||||
.btn-warning[disabled].active,
|
||||
fieldset[disabled] .btn-warning,
|
||||
fieldset[disabled] .btn-warning:hover,
|
||||
fieldset[disabled] .btn-warning:focus,
|
||||
fieldset[disabled] .btn-warning:active,
|
||||
fieldset[disabled] .btn-warning.active {
|
||||
background-color: #dfba49;
|
||||
border-color: #dbb233;
|
||||
}
|
||||
|
||||
.btn-warning .badge {
|
||||
color: #dfba49;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
color: #fff;
|
||||
background-color: #F3565D;
|
||||
border-color: #f13e46;
|
||||
}
|
||||
|
||||
.btn-danger:hover,
|
||||
.btn-danger:focus,
|
||||
.btn-danger:active,
|
||||
.btn-danger.active {
|
||||
color: #fff;
|
||||
background-color: #f1353d;
|
||||
border-color: #ec111b;
|
||||
}
|
||||
|
||||
.open .btn-danger.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #f1353d;
|
||||
border-color: #ec111b;
|
||||
}
|
||||
|
||||
.btn-danger:active,
|
||||
.btn-danger.active {
|
||||
background-image: none;
|
||||
background-color: #ef1d26;
|
||||
}
|
||||
|
||||
.btn-danger:active:hover,
|
||||
.btn-danger.active:hover {
|
||||
background-color: #f0262f;
|
||||
}
|
||||
|
||||
.open .btn-danger.dropdown-toggle {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.btn-danger.disabled,
|
||||
.btn-danger.disabled:hover,
|
||||
.btn-danger.disabled:focus,
|
||||
.btn-danger.disabled:active,
|
||||
.btn-danger.disabled.active,
|
||||
.btn-danger[disabled],
|
||||
.btn-danger[disabled]:hover,
|
||||
.btn-danger[disabled]:focus,
|
||||
.btn-danger[disabled]:active,
|
||||
.btn-danger[disabled].active,
|
||||
fieldset[disabled] .btn-danger,
|
||||
fieldset[disabled] .btn-danger:hover,
|
||||
fieldset[disabled] .btn-danger:focus,
|
||||
fieldset[disabled] .btn-danger:active,
|
||||
fieldset[disabled] .btn-danger.active {
|
||||
background-color: #F3565D;
|
||||
border-color: #f13e46;
|
||||
}
|
||||
|
||||
.btn-danger .badge {
|
||||
color: #F3565D;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
/***
|
||||
Social Icons
|
||||
***/
|
||||
.social-icons {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.social-icons:before,
|
||||
.social-icons:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
.social-icons:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.social-icons li {
|
||||
float: left;
|
||||
display: inline;
|
||||
list-style: none;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
.social-icons li > a {
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-ms-border-radius: 2px;
|
||||
-o-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
background-position: 0 0;
|
||||
background-repeat: no-repeat;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
.social-icons li:hover > a {
|
||||
background-position: 0 -38px;
|
||||
}
|
||||
.social-icons li .amazon {
|
||||
background: url(../../pages/img/social/amazon.png) no-repeat;
|
||||
}
|
||||
.social-icons li .behance {
|
||||
background: url(../../pages/img/social/behance.png) no-repeat;
|
||||
}
|
||||
.social-icons li .blogger {
|
||||
background: url(../../pages/img/social/blogger.png) no-repeat;
|
||||
}
|
||||
.social-icons li .deviantart {
|
||||
background: url(../../pages/img/social/deviantart.png) no-repeat;
|
||||
}
|
||||
.social-icons li .dribbble {
|
||||
background: url(../../pages/img/social/dribbble.png) no-repeat;
|
||||
}
|
||||
.social-icons li .dropbox {
|
||||
background: url(../../pages/img/social/dropbox.png) no-repeat;
|
||||
}
|
||||
.social-icons li .evernote {
|
||||
background: url(../../pages/img/social/evernote.png) no-repeat;
|
||||
}
|
||||
.social-icons li .facebook {
|
||||
background: url(../../pages/img/social/facebook.png) no-repeat;
|
||||
}
|
||||
.social-icons li .forrst {
|
||||
background: url(../../pages/img/social/forrst.png) no-repeat;
|
||||
}
|
||||
.social-icons li .github {
|
||||
background: url(../../pages/img/social/github.png) no-repeat;
|
||||
}
|
||||
.social-icons li .googleplus {
|
||||
background: url(../../pages/img/social/googleplus.png) no-repeat;
|
||||
}
|
||||
.social-icons li .jolicloud {
|
||||
background: url(../../pages/img/social/jolicloud.png) no-repeat;
|
||||
}
|
||||
.social-icons li .last-fm {
|
||||
background: url(../../pages/img/social/last-fm.png) no-repeat;
|
||||
}
|
||||
.social-icons li .linkedin {
|
||||
background: url(../../pages/img/social/linkedin.png) no-repeat;
|
||||
}
|
||||
.social-icons li .picasa {
|
||||
background: url(../../pages/img/social/picasa.png) no-repeat;
|
||||
}
|
||||
.social-icons li .pintrest {
|
||||
background: url(../../pages/img/social/pintrest.png) no-repeat;
|
||||
}
|
||||
.social-icons li .rss {
|
||||
background: url(../../pages/img/social/rss.png) no-repeat;
|
||||
}
|
||||
.social-icons li .skype {
|
||||
background: url(../../pages/img/social/skype.png) no-repeat;
|
||||
}
|
||||
.social-icons li .spotify {
|
||||
background: url(../../pages/img/social/spotify.png) no-repeat;
|
||||
}
|
||||
.social-icons li .stumbleupon {
|
||||
background: url(../../pages/img/social/stumbleupon.png) no-repeat;
|
||||
}
|
||||
.social-icons li .tumblr {
|
||||
background: url(../../pages/img/social/tumblr.png) no-repeat;
|
||||
}
|
||||
.social-icons li .twitter {
|
||||
background: url(../../pages/img/social/twitter.png) no-repeat;
|
||||
}
|
||||
.social-icons li .vimeo {
|
||||
background: url(../../pages/img/social/vimeo.png) no-repeat;
|
||||
}
|
||||
.social-icons li .wordpress {
|
||||
background: url(../../pages/img/social/wordpress.png) no-repeat;
|
||||
}
|
||||
.social-icons li .xing {
|
||||
background: url(../../pages/img/social/xing.png) no-repeat;
|
||||
}
|
||||
.social-icons li .yahoo {
|
||||
background: url(../../pages/img/social/yahoo.png) no-repeat;
|
||||
}
|
||||
.social-icons li .youtube {
|
||||
background: url(../../pages/img/social/youtube.png) no-repeat;
|
||||
}
|
||||
.social-icons li .vk {
|
||||
background: url(../../pages/img/social/vk.png) no-repeat;
|
||||
}
|
||||
.social-icons li .instagram {
|
||||
background: url(../../pages/img/social/instagram.png) no-repeat;
|
||||
}
|
||||
.social-icons li .reddit {
|
||||
background: url(../../pages/img/social/reddit.png) no-repeat;
|
||||
}
|
||||
.social-icons li .aboutme {
|
||||
background: url(../../pages/img/social/aboutme.png) no-repeat;
|
||||
}
|
||||
.social-icons li .flickr {
|
||||
background: url(../../pages/img/social/flickr.png) no-repeat;
|
||||
}
|
||||
.social-icons li .foursquare {
|
||||
background: url(../../pages/img/social/foursquare.png) no-repeat;
|
||||
}
|
||||
.social-icons li .gravatar {
|
||||
background: url(../../pages/img/social/gravatar.png) no-repeat;
|
||||
}
|
||||
.social-icons li .klout {
|
||||
background: url(../../pages/img/social/klout.png) no-repeat;
|
||||
}
|
||||
.social-icons li .myspace {
|
||||
background: url(../../pages/img/social/myspace.png) no-repeat;
|
||||
}
|
||||
.social-icons li .quora {
|
||||
background: url(../../pages/img/social/quora.png) no-repeat;
|
||||
}
|
||||
.social-icons.social-icons-color > li > a {
|
||||
opacity: 0.7;
|
||||
background-position: 0 -38px !important;
|
||||
}
|
||||
.social-icons.social-icons-color > li > a:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.social-icons.social-icons-circle > li > a {
|
||||
border-radius: 25px !important;
|
||||
}
|
||||
|
||||
/***
|
||||
Inline Social Icons
|
||||
***/
|
||||
.social-icon {
|
||||
display: inline-block !important;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
background-position: 0 0;
|
||||
background-repeat: no-repeat;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-ms-border-radius: 2px;
|
||||
-o-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
-ms-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
}
|
||||
.social-icon.social-icon-circle {
|
||||
border-radius: 25px !important;
|
||||
}
|
||||
|
||||
.social-icon.amazon {
|
||||
background: url(../../pages/img/social/amazon.png) no-repeat;
|
||||
}
|
||||
.social-icon.behance {
|
||||
background: url(../../pages/img/social/behance.png) no-repeat;
|
||||
}
|
||||
.social-icon.blogger {
|
||||
background: url(../../pages/img/social/blogger.png) no-repeat;
|
||||
}
|
||||
.social-icon.deviantart {
|
||||
background: url(../../pages/img/social/deviantart.png) no-repeat;
|
||||
}
|
||||
.social-icon.dribbble {
|
||||
background: url(../../pages/img/social/dribbble.png) no-repeat;
|
||||
}
|
||||
.social-icon.dropbox {
|
||||
background: url(../../pages/img/social/dropbox.png) no-repeat;
|
||||
}
|
||||
.social-icon.evernote {
|
||||
background: url(../../pages/img/social/evernote.png) no-repeat;
|
||||
}
|
||||
.social-icon.facebook {
|
||||
background: url(../../pages/img/social/facebook.png) no-repeat;
|
||||
}
|
||||
.social-icon.forrst {
|
||||
background: url(../../pages/img/social/forrst.png) no-repeat;
|
||||
}
|
||||
.social-icon.github {
|
||||
background: url(../../pages/img/social/github.png) no-repeat;
|
||||
}
|
||||
.social-icon.googleplus {
|
||||
background: url(../../pages/img/social/googleplus.png) no-repeat;
|
||||
}
|
||||
.social-icon.jolicloud {
|
||||
background: url(../../pages/img/social/jolicloud.png) no-repeat;
|
||||
}
|
||||
.social-icon.last-fm {
|
||||
background: url(../../pages/img/social/last-fm.png) no-repeat;
|
||||
}
|
||||
.social-icon.linkedin {
|
||||
background: url(../../pages/img/social/linkedin.png) no-repeat;
|
||||
}
|
||||
.social-icon.picasa {
|
||||
background: url(../../pages/img/social/picasa.png) no-repeat;
|
||||
}
|
||||
.social-icon.pintrest {
|
||||
background: url(../../pages/img/social/pintrest.png) no-repeat;
|
||||
}
|
||||
.social-icon.rss {
|
||||
background: url(../../pages/img/social/rss.png) no-repeat;
|
||||
}
|
||||
.social-icon.skype {
|
||||
background: url(../../pages/img/social/skype.png) no-repeat;
|
||||
}
|
||||
.social-icon.spotify {
|
||||
background: url(../../pages/img/social/spotify.png) no-repeat;
|
||||
}
|
||||
.social-icon.stumbleupon {
|
||||
background: url(../../pages/img/social/stumbleupon.png) no-repeat;
|
||||
}
|
||||
.social-icon.tumblr {
|
||||
background: url(../../pages/img/social/tumblr.png) no-repeat;
|
||||
}
|
||||
.social-icon.twitter {
|
||||
background: url(../../pages/img/social/twitter.png) no-repeat;
|
||||
}
|
||||
.social-icon.vimeo {
|
||||
background: url(../../pages/img/social/vimeo.png) no-repeat;
|
||||
}
|
||||
.social-icon.wordpress {
|
||||
background: url(../../pages/img/social/wordpress.png) no-repeat;
|
||||
}
|
||||
.social-icon.xing {
|
||||
background: url(../../pages/img/social/xing.png) no-repeat;
|
||||
}
|
||||
.social-icon.yahoo {
|
||||
background: url(../../pages/img/social/yahoo.png) no-repeat;
|
||||
}
|
||||
.social-icon.youtube {
|
||||
background: url(../../pages/img/social/youtube.png) no-repeat;
|
||||
}
|
||||
.social-icon.vk {
|
||||
background: url(../../pages/img/social/vk.png) no-repeat;
|
||||
}
|
||||
.social-icon.instagram {
|
||||
background: url(../../pages/img/social/instagram.png) no-repeat;
|
||||
}
|
||||
.social-icon.reddit {
|
||||
background: url(../../pages/img/social/reddit.png) no-repeat;
|
||||
}
|
||||
.social-icon.aboutme {
|
||||
background: url(../../pages/img/social/aboutme.png) no-repeat;
|
||||
}
|
||||
.social-icon.flickr {
|
||||
background: url(../../pages/img/social/flickr.png) no-repeat;
|
||||
}
|
||||
.social-icon.foursquare {
|
||||
background: url(../../pages/img/social/foursquare.png) no-repeat;
|
||||
}
|
||||
.social-icon.gravatar {
|
||||
background: url(../../pages/img/social/gravatar.png) no-repeat;
|
||||
}
|
||||
.social-icon.klout {
|
||||
background: url(../../pages/img/social/klout.png) no-repeat;
|
||||
}
|
||||
.social-icon.myspace {
|
||||
background: url(../../pages/img/social/myspace.png) no-repeat;
|
||||
}
|
||||
.social-icon.quora {
|
||||
background: url(../../pages/img/social/quora.png) no-repeat;
|
||||
}
|
||||
.social-icon:hover {
|
||||
background-position: 0 -38px;
|
||||
}
|
||||
|
||||
.social-icon-color {
|
||||
opacity: 0.7;
|
||||
background-position: 0 -38px !important;
|
||||
}
|
||||
.social-icon-color:hover {
|
||||
opacity: 1;
|
||||
}
|
805
resources/themes/metronic/assets/style-responsive.css
Normal file
805
resources/themes/metronic/assets/style-responsive.css
Normal file
@ -0,0 +1,805 @@
|
||||
/* BEGIN max width 1200px */
|
||||
@media (max-width: 1200px) {
|
||||
.content-form-page .control-label {
|
||||
padding-left: 30px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.content-form-page .col-md-offset-4 {
|
||||
margin-left: 15px;
|
||||
}
|
||||
.content-form-page .pull-right {
|
||||
float: left !important;
|
||||
}
|
||||
|
||||
.quote-v1 span {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
/* END max width 1200px */
|
||||
|
||||
/* BEGIN min width 1025px */
|
||||
@media (min-width: 1025px) {
|
||||
.header .header-navigation {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
/* END min width 1025px */
|
||||
|
||||
/* BEGIN min width 1025px max width 1205 */
|
||||
@media (min-width: 1025px) and (max-width: 1205px) {
|
||||
body.page-header-fixed {
|
||||
padding-top: 121px !important; /* height of the header */
|
||||
}
|
||||
|
||||
.header .header-navigation {
|
||||
display: block !important;
|
||||
clear: both;
|
||||
margin-top: -10px;
|
||||
float: left !important;
|
||||
}
|
||||
.reduce-header .header-navigation {
|
||||
margin-top: -6px;
|
||||
}
|
||||
.header .header-navigation > ul > li {
|
||||
margin-right: 27px;
|
||||
}
|
||||
.header .header-navigation > ul > li > a {
|
||||
padding: 5px 0 18px;
|
||||
}
|
||||
.reduce-header .header-navigation > ul > li > a {
|
||||
padding-bottom: 13px;
|
||||
}
|
||||
.header .header-navigation > ul > li.active > a, .header .header-navigation > ul > li > a:hover, .header .header-navigation > ul > li > a:focus, .header .header-navigation > ul > li.open > a, .header .header-navigation > ul > li.open > a:hover, .header .header-navigation > ul > li.open > a:focus {
|
||||
background: none;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.dropdown-fix-right .dropdown-menu {
|
||||
left: 0;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.header .header-navigation li.menu-search {
|
||||
top: 1px;
|
||||
margin-left: -20px;
|
||||
}
|
||||
.ecommerce .header .header-navigation li.menu-search {
|
||||
top: 2px;
|
||||
}
|
||||
.header .header-navigation li.menu-search span.sep {
|
||||
top: 2px;
|
||||
margin-right: 26px;
|
||||
}
|
||||
.header .header-navigation li.menu-search i {
|
||||
top: -4px;
|
||||
}
|
||||
}
|
||||
/* END min width 1025px max width 1205 */
|
||||
|
||||
/* BEGIN max width 1024px */
|
||||
@media (max-width: 1024px) {
|
||||
body.page-header-fixed {
|
||||
padding-top: 107px !important; /* height of the header */
|
||||
}
|
||||
|
||||
.header .mobi-toggler {
|
||||
display: block;
|
||||
}
|
||||
.header .header-navigation {
|
||||
float: none !important;
|
||||
display: none;
|
||||
clear: both;
|
||||
background: #F9F9F9;
|
||||
padding: 0 20px;
|
||||
margin: 0 -20px 25px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.header .header-navigation li {
|
||||
float: none;
|
||||
padding: 0;
|
||||
clear: both;
|
||||
}
|
||||
.header .header-navigation li > a,
|
||||
.header .dropdown.open .dropdown-toggle,
|
||||
.header .header-navigation li.open > a {
|
||||
border-bottom: 1px solid #efefef !important;
|
||||
padding: 8px 10px 9px;
|
||||
margin: 0 -10px;
|
||||
position: relative;
|
||||
color: #666 !important;
|
||||
background: none !important;
|
||||
}
|
||||
.ecommerce .header .header-navigation li > a,
|
||||
.ecommerce .header .dropdown.open .dropdown-toggle,
|
||||
.ecommerce .header .header-navigation li.open > a {
|
||||
padding: 12px 10px 9px;
|
||||
}
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
border-bottom: 1px solid #efefef !important;
|
||||
background: none !important;
|
||||
color: #dd4632 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.header-navigation > ul > li > a > i.fa-angle-down {
|
||||
display: block;
|
||||
float: right;
|
||||
margin: 3px 0 0;
|
||||
}
|
||||
|
||||
/* dropdown menu */
|
||||
.header-navigation .dropdown-menu,
|
||||
.header-navigation > ul > li > .dropdown-menu {
|
||||
position: static;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
margin-top: 0;
|
||||
border-top: none;
|
||||
z-index: 22;
|
||||
}
|
||||
.header-navigation .dropdown-menu li {
|
||||
border: none !important;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.header-navigation .dropdown-menu li > a {
|
||||
padding: 10px 10px 9px;
|
||||
z-index: 999;
|
||||
position: relative;
|
||||
}
|
||||
.header-navigation .dropdown-menu li > a > i {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu .dropdown-menu {
|
||||
display: block;
|
||||
}
|
||||
.header-navigation .header-navigation-content {
|
||||
border: none;
|
||||
}
|
||||
.dropdown-megamenu .header-navigation-content {
|
||||
padding: 5px 0 0;
|
||||
margin-left: -20px;
|
||||
}
|
||||
.dropdown-megamenu .header-navigation-content .row {
|
||||
margin: 0;
|
||||
}
|
||||
.dropdown-megamenu .header-navigation-content .header-navigation-col {
|
||||
padding: 0;
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
.dropdown-megamenu .header-navigation-content h4 {
|
||||
font-size: 13px;
|
||||
padding: 10px 10px 9px;
|
||||
margin: 0 -10px 0 10px;
|
||||
}
|
||||
.header-navigation .dropdown-megamenu .header-navigation-content li > a {
|
||||
padding: 10px 10px 9px;
|
||||
}
|
||||
|
||||
.header-navigation-content-ext {
|
||||
background: none;
|
||||
}
|
||||
.header-navigation-description {
|
||||
height: auto !important;
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
padding: 0;
|
||||
margin: 0 10px;
|
||||
}
|
||||
.header-navigation-content-ext .col-md-6,
|
||||
.header-navigation-content-ext .col-md-3 {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
.dropdown-megamenu .header-navigation-content-ext .col-md-3 h4 {
|
||||
border-bottom: 1px solid #EFEFEF;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a {
|
||||
display: block;
|
||||
}
|
||||
.header-navigation-content-ext .col-md-3, .header-navigation-content-ext .col-md-6 {
|
||||
padding: 0;
|
||||
}
|
||||
.header-navigation-content-ext .col-md-6 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.header-navigation-content-ext .col-md-6 h4 {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.header .nav-brands {
|
||||
margin: 15px 10px;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
}
|
||||
.header .nav-brands ul {
|
||||
border: 1px solid #F0F0F0;
|
||||
padding: 10px;
|
||||
}
|
||||
.header .nav-brands li {
|
||||
max-width: 50%;
|
||||
display: inline-block;
|
||||
border: none;
|
||||
margin-left: 0
|
||||
}
|
||||
.header .nav-brands li a,
|
||||
.header .nav-brands li a:hover {
|
||||
border: none !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.nav-catalogue .dropdown-menu > li {
|
||||
margin-left: 0;
|
||||
}
|
||||
.nav-catalogue .header-navigation-content {
|
||||
padding: 20px 0 0;
|
||||
}
|
||||
.nav-catalogue .product-item {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.header-navigation li.menu-search,
|
||||
.ecommerce .header-navigation li.menu-search {
|
||||
top: 0;
|
||||
padding: 20px 0 10px;
|
||||
position: relative;
|
||||
}
|
||||
.header-navigation li.menu-search span.sep {
|
||||
display: none;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
position: relative;
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.top-cart-block {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.page-header-fixed .header-navigation {
|
||||
height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
/* END max width 1024px */
|
||||
|
||||
/* BEGIN max width 992px */
|
||||
@media (max-width: 992px) {
|
||||
.shop-index-carousel {
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.brands .container {
|
||||
padding-right: 25px;
|
||||
}
|
||||
|
||||
.sidebar-menu a:focus {
|
||||
color: #333 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sale-product___removed {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.new-arrivals___removed {
|
||||
margin-left: 15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
.two-items-bottom-items {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.carousel img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*.steps-block {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.steps-block-col {
|
||||
border: 2px solid #FFF;
|
||||
margin: 0 20px 20px 15px;
|
||||
padding: 20px 20px 15px;
|
||||
min-height: auto;
|
||||
float: left;
|
||||
}
|
||||
.steps-block-col:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
.steps-block .steps-block-col div {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.steps-block h2 {
|
||||
font-size: 25px;
|
||||
}
|
||||
.steps-block em {
|
||||
text-transform: inherit;
|
||||
}
|
||||
.steps-block-col span,
|
||||
.steps-block-col .fa {
|
||||
display: none;
|
||||
}
|
||||
.steps-block-col:first-child em {
|
||||
margin-left: 0;
|
||||
}*/
|
||||
|
||||
.steps-block-col {
|
||||
border: 2px solid #FFF;
|
||||
margin: 0 25px 20px 15px;
|
||||
padding: 20px 20px 15px;
|
||||
min-height: auto;
|
||||
float: none;
|
||||
}
|
||||
.steps-block-col:last-child {
|
||||
margin-right: 25px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.steps-block .steps-block-col div {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.steps-block h2 {
|
||||
font-size: 43px;
|
||||
}
|
||||
.steps-block em {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.steps-block-col span {
|
||||
display: none;
|
||||
}
|
||||
.steps-block-col .fa {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pre-footer-subscribe-box form {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sidebar-products img {
|
||||
float: none;
|
||||
margin-bottom: 5px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.sidebar-products h3,
|
||||
.sidebar-products .price {
|
||||
margin-left: 0;
|
||||
}
|
||||
.product-page-options .pull-left {
|
||||
margin-bottom: 10px;
|
||||
|
||||
}
|
||||
.product-quantity {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
if you want to hide buttons on mobile view, uncomment this block
|
||||
.pi-img-wrapper div {
|
||||
display: none !important;
|
||||
}*/
|
||||
.review .rateit {
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.list-view-sorting .pull-right {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.service-box p, .service-box .service-box-heading em, .service-box .service-box-heading span {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
.service-box .service-box-heading em {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.quote-v1 {
|
||||
text-align: center;
|
||||
}
|
||||
.quote-v1 .text-right {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.recent-work .owl-carousel {
|
||||
margin-left: -10px;
|
||||
}
|
||||
.our-clients .owl-carousel {
|
||||
margin-left: -2px;
|
||||
}
|
||||
.recent-work .owl-carousel,
|
||||
.our-clients .owl-carousel {
|
||||
padding-top: 30px;
|
||||
}
|
||||
.recent-work .owl-buttons,
|
||||
.our-clients .owl-buttons {
|
||||
top: 0;
|
||||
left: -3px;
|
||||
}
|
||||
.our-clients .owl-buttons {
|
||||
left: -10px;
|
||||
}
|
||||
|
||||
.testimonials-v1 {
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.recent-work .recent-work-item .fa {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-top: -18px;
|
||||
font-size: 14px;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.recent-news-inner {
|
||||
padding: 10px 15px 0;
|
||||
}
|
||||
|
||||
.ecommerce .pre-footer-subscribe-box h2, .corporate .pre-footer-subscribe-box h2 {
|
||||
padding-top: 0;
|
||||
}
|
||||
.pre-footer .pre-footer-subscribe-box {
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
.ecommerce .pre-footer-subscribe-box form {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ecommerce .content-search h1 {
|
||||
padding-top: 0;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.content-search form {
|
||||
margin: 0 0 6px;
|
||||
}
|
||||
}
|
||||
/* END max width 992px */
|
||||
|
||||
/* BEGIN max width 767px */
|
||||
@media (max-width: 767px) {
|
||||
.pre-header .pull-right {
|
||||
float: left !important;
|
||||
}
|
||||
.pre-header .pull-right li:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
.ecommerce .pre-footer-subscribe-box form {
|
||||
float: none;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.header .header-navigation {
|
||||
margin: 0 -10px 0;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.header-navigation-content {
|
||||
min-width: 100px;
|
||||
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.sidebar___removed {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.sidebar-menu .fa-angle-right {
|
||||
display: inline-block;
|
||||
}
|
||||
.pre-footer .pull-right,
|
||||
.footer .pull-right {
|
||||
float: none !important;
|
||||
}
|
||||
.pre-footer .pull-right,
|
||||
.footer .pull-right {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.footer .list-inline > li {
|
||||
padding-left: 0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
.form-info {
|
||||
border-left: none;
|
||||
padding-left: 0;
|
||||
padding-top: 30px;
|
||||
border-top: 1px solid #E4E6E8;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.sidebar-products .item {
|
||||
float: left;
|
||||
width: 48%;
|
||||
margin-bottom: 20px;
|
||||
padding: 0 10px 10px;
|
||||
}
|
||||
.sidebar-products img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.list-view-sorting {
|
||||
/*background: #fff;*/
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.list-view-sorting .col-md-10 {
|
||||
padding-right: 0;
|
||||
}
|
||||
.product-other-images {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.product-page-options .pull-left {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.product-item .img-responsive {
|
||||
width: 100%;
|
||||
}
|
||||
.pagination {
|
||||
float: left !important;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.pagination > li {
|
||||
margin-left: 0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.pre-footer .margin-bottom-40 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ls-layer3 .ls-price strong {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
.glyphicons-demo ul li {
|
||||
width: 12.5%;
|
||||
}
|
||||
|
||||
.tab-style-1 .tab-content img {
|
||||
margin: 5px 0 10px;
|
||||
}
|
||||
.testimonials-v1 {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.front-steps-wrapper {
|
||||
margin-left: -10px;
|
||||
margin-right: -10px;
|
||||
}
|
||||
.front-steps-wrapper .front-step-col {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.front-steps-wrapper .front-step:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.blog-posts h2, .ecommerce .blog-posts h2 {
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.ecommerce .footer {
|
||||
padding: 10px 0 10px;
|
||||
}
|
||||
.ecommerce .footer .pull-right {
|
||||
padding-top: 10px;
|
||||
}
|
||||
.ecommerce .pre-footer address {
|
||||
margin-bottom: 15px !important;
|
||||
}
|
||||
.footer img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ecommerce .pre-footer-subscribe-box h2, .corporate .pre-footer-subscribe-box h2 {
|
||||
padding-top: 7px;
|
||||
}
|
||||
}
|
||||
/* END max width 767px */
|
||||
|
||||
/* BEGIN max width 600px */
|
||||
@media (max-width: 600px) {
|
||||
.ls-layer3 .ls-price strong {
|
||||
top: -5px;
|
||||
}
|
||||
}
|
||||
/* END max width 600px */
|
||||
|
||||
/* BEGIN max width 480px */
|
||||
@media (max-width: 480px) {
|
||||
.pre-header .list-inline li {
|
||||
display: block;
|
||||
border: none;
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
.pre-header .col-md-6 {
|
||||
float: left;
|
||||
}
|
||||
.pre-header .additional-nav {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.nav-catalogue .pi-price {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.nav-catalogue .pi-price,
|
||||
.nav-catalogue .product-item .add2cart {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.top-cart-block {
|
||||
clear: both;
|
||||
float: left;
|
||||
padding-top: 0;
|
||||
margin: 0 0 29px;
|
||||
width: 100%;
|
||||
}
|
||||
.top-cart-info {
|
||||
float: none;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
top: 0;
|
||||
}
|
||||
.top-cart-content-wrapper {
|
||||
left: 0;
|
||||
right: auto;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
left: 15px;
|
||||
}
|
||||
|
||||
.ls-fullwidth .ls-nav-prev, .ls-fullwidth .ls-nav-next {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.checkout-content {
|
||||
padding: 0 0 40px;
|
||||
}
|
||||
.checkout-page h2 a {
|
||||
padding: 9px 10px 8px;
|
||||
}
|
||||
.table-wrapper-responsive {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
||||
.shopping-cart-page .btn-default {
|
||||
float: right;
|
||||
}
|
||||
.shopping-cart-page .btn-primary {
|
||||
clear: both;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.checkout-page .btn-default {
|
||||
clear: both;
|
||||
margin-top: 10px;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
.product-item:hover > .pi-img-wrapper>div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.steps-block-simple h2 {
|
||||
font-size: 21px;
|
||||
}
|
||||
.steps-block-simple em {
|
||||
font-size: 14px;
|
||||
text-transform: inherit;
|
||||
}
|
||||
|
||||
.ecommerce .pre-footer-subscribe-box h2,
|
||||
.corporate .pre-footer-subscribe-box h2 {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.list-view-sorting .pull-right {
|
||||
float: left !important;
|
||||
margin: 0 30px 10px 0;
|
||||
}
|
||||
|
||||
.header .top-cart-block {
|
||||
margin-top: 0;
|
||||
}
|
||||
.reduce-header .top-cart-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
}
|
||||
/* END max width 480px */
|
||||
|
||||
/* BEGIN max width 450px */
|
||||
@media (max-width: 450px) {
|
||||
.ecommerce .steps-block h2 {
|
||||
font-size: 33px;
|
||||
}
|
||||
}
|
||||
/* END max width 450px */
|
||||
|
||||
/* BEGIN max width 405px */
|
||||
@media (max-width: 405px) {
|
||||
.top-cart-content {
|
||||
width: 100%;
|
||||
}
|
||||
.top-cart-block img,
|
||||
.top-cart-block .cart-content-count {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
/* END max width 405px */
|
||||
|
||||
/* BEGIN max width 390px */
|
||||
@media (max-width: 390px) {
|
||||
.steps-block .fa-truck, .steps-block .fa-gift, .steps-block .fa-phone {
|
||||
border: 2px solid #FFFFFF;
|
||||
border-radius: 30px !important;
|
||||
float: left;
|
||||
font-size: 20px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 11px;
|
||||
padding-top: 12px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ecommerce .steps-block h2 {
|
||||
font-size: 25px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
.ecommerce .steps-block em {
|
||||
text-transform: inherit;
|
||||
}
|
||||
|
||||
.mix-block .tab-content .col-md-3 {
|
||||
padding-right: 15px;
|
||||
}
|
||||
}
|
||||
/* END max width 390px */
|
||||
|
||||
/* BEGIN max width 330px */
|
||||
@media (max-width: 330px) {
|
||||
.top-cart-content {
|
||||
width: 280px;
|
||||
}
|
||||
}
|
||||
/* END max width 330px */
|
||||
|
||||
/* BEGIN max width 320px */
|
||||
@media (max-width: 320px) {
|
||||
.site-logo {
|
||||
margin-right: 0;
|
||||
}
|
||||
.content-form-page .btn-default {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.price-availability-block .availability {
|
||||
clear: left;
|
||||
float: left;
|
||||
}
|
||||
.product-page-options .pull-left {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
/* END max width 320px */
|
3089
resources/themes/metronic/assets/style.css
Normal file
3089
resources/themes/metronic/assets/style.css
Normal file
File diff suppressed because it is too large
Load Diff
382
resources/themes/metronic/assets/themes/blue.css
Normal file
382
resources/themes/metronic/assets/themes/blue.css
Normal file
@ -0,0 +1,382 @@
|
||||
a {
|
||||
color: #64aed9;
|
||||
}
|
||||
a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #64aed9;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #64aed9;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #64aed9;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #64aed9;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #64aed9;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #64aed9;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #64aed9;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #64aed9;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #64aed9;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #64aed9;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #64aed9;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #64aed9;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #64aed9;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #64aed9;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #64aed9;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #64aed9;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #64aed9;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #64aed9;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #64aed9;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #64aed9;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #64aed9;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #64aed9;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #64aed9;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #64aed9;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #64aed9;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #64aed9;
|
||||
}
|
||||
|
||||
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #64aed9;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #64aed9;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #64aed9;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #64aed9;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #64aed9;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #64aed9;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #64aed9;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #64aed9;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #64aed9;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #64aed9;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #64aed9;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #64aed9;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #64aed9;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #64aed9;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #64aed9;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #64aed9;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #64aed9;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #64aed9;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #64aed9;
|
||||
box-shadow: 7px 7px rgba(100, 174, 217, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #64aed9;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #64aed9;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #64aed9;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #64aed9;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #64aed9;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #64aed9;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #64aed9;
|
||||
}
|
||||
.pi-price {
|
||||
color: #64aed9;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #64aed9 !important;
|
||||
border-color: #64aed9;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #64aed9;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #64aed9;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #64aed9;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #64aed9;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #64aed9;
|
||||
}
|
||||
|
||||
.require {
|
||||
color: #64aed9;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #64aed9;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #64aed9;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #64aed9;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #64aed9;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #64aed9;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #83BEE0;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #83BEE0;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -22px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -22px -37px;
|
||||
}
|
||||
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #83BEE0;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #83BEE0;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #83BEE0;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #83BEE0;
|
||||
border-color: #83BEE0;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #83BEE0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #83BEE0;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #83BEE0;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #83BEE0;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #83BEE0;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #83BEE0;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #1ab8db;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #83BEE0;
|
||||
}
|
||||
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -325px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -325px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #83BEE0;
|
||||
}
|
382
resources/themes/metronic/assets/themes/gray.css
Normal file
382
resources/themes/metronic/assets/themes/gray.css
Normal file
@ -0,0 +1,382 @@
|
||||
a {
|
||||
color: #798b97;
|
||||
}
|
||||
a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #798b97;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #798b97;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #798b97;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #798b97;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #798b97;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #798b97;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #798b97;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #798b97;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #798b97;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #798b97;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #798b97;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #798b97;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #798b97;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #798b97;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #798b97;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #798b97;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #798b97;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #798b97;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #798b97;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #798b97;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #798b97;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #798b97;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #798b97;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #798b97;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #798b97;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #798b97;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #798b97;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #798b97;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #798b97;
|
||||
}
|
||||
|
||||
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #798b97;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #798b97;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #798b97;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #798b97;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #798b97;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #798b97;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #798b97;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #798b97;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #798b97;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #798b97;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #798b97;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #798b97;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #798b97;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #798b97;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #798b97;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #798b97;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #798b97;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #798b97;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #798b97;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #798b97;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #798b97;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #798b97;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #798b97;
|
||||
box-shadow: 7px 7px rgba(121, 139, 151, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #798b97;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #798b97;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #798b97;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #798b97;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #798b97;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #798b97;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #798b97;
|
||||
}
|
||||
.pi-price {
|
||||
color: #798b97;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #798b97 !important;
|
||||
border-color: #798b97;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #798b97;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #798b97;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #798b97;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #798b97;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #798b97;
|
||||
}
|
||||
|
||||
.require {
|
||||
color: #798b97;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #798b97;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #798b97;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #798b97;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #798b97;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #798b97;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #93A2AB;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #93A2AB;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -66px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -66px -37px;
|
||||
}
|
||||
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #93A2AB;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #93A2AB;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #93A2AB;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #93A2AB;
|
||||
border-color: #93A2AB;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #93A2AB !important;
|
||||
}
|
||||
}
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #93A2AB;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #93A2AB;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #93A2AB;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #93A2AB;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #93A2AB;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #959798;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #93A2AB;
|
||||
}
|
||||
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -753px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -753px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #93A2AB;
|
||||
}
|
382
resources/themes/metronic/assets/themes/green.css
Normal file
382
resources/themes/metronic/assets/themes/green.css
Normal file
@ -0,0 +1,382 @@
|
||||
a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #67bd3c;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #67bd3c;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #67bd3c;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #67bd3c;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #67bd3c;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #67bd3c;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #67bd3c;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #67bd3c;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #67bd3c;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #67bd3c;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #67bd3c;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #67bd3c;
|
||||
}
|
||||
|
||||
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #67bd3c;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #67bd3c;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #67bd3c;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #67bd3c;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #67bd3c;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #67bd3c;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #67bd3c;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #67bd3c;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #67bd3c;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #67bd3c;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #67bd3c;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #67bd3c;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #67bd3c;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #67bd3c;
|
||||
box-shadow: 7px 7px rgba(103, 189, 60, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #67bd3c;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.pi-price {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #67bd3c !important;
|
||||
border-color: #67bd3c;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #67bd3c;
|
||||
}
|
||||
|
||||
.require {
|
||||
color: #67bd3c;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #67bd3c;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #67bd3c;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #67bd3c;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #67bd3c;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #67bd3c;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #85CA63;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #85CA63;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -33px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -33px -37px;
|
||||
}
|
||||
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #85CA63;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #85CA63;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #85CA63;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #85CA63;
|
||||
border-color: #85CA63;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #85CA63 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #85CA63;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #85CA63;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #85CA63;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #85CA63;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #85CA63;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #7edb1a;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #85CA63;
|
||||
}
|
||||
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -432px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -432px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #85CA63;
|
||||
}
|
382
resources/themes/metronic/assets/themes/orange.css
Normal file
382
resources/themes/metronic/assets/themes/orange.css
Normal file
@ -0,0 +1,382 @@
|
||||
a {
|
||||
color: #e18604;
|
||||
}
|
||||
a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #e18604;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #e18604;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #e18604;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #e18604;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #e18604;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #e18604;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #e18604;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #e18604;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #e18604;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #e18604;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #e18604;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #e18604;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #e18604;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #e18604;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #e18604;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #e18604;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #e18604;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #e18604;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #e18604;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #e18604;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #e18604;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #e18604;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #e18604;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #e18604;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #e18604;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #e18604;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #e18604;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #e18604;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #e18604;
|
||||
}
|
||||
|
||||
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #e18604;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #e18604;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #e18604;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #e18604;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #e18604;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #e18604;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #e18604;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #e18604;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #e18604;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #e18604;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #e18604;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #e18604;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #e18604;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #e18604;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #e18604;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #e18604;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #e18604;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #e18604;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #e18604;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #e18604;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #e18604;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #e18604;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #e18604;
|
||||
box-shadow: 7px 7px rgba(225, 134, 4, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #e18604;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #e18604;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #e18604;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #e18604;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #e18604;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #e18604;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #e18604;
|
||||
}
|
||||
.pi-price {
|
||||
color: #e18604;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #e18604 !important;
|
||||
border-color: #e18604;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #e18604;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #e18604;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #e18604;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #e18604;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #e18604;
|
||||
}
|
||||
|
||||
.require {
|
||||
color: #e18604;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #e18604;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #e18604;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #e18604;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #e18604;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #e18604;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #E79E36;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #E79E36;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -44px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -44px -37px;
|
||||
}
|
||||
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #E79E36;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #E79E36;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #E79E36;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #E79E36;
|
||||
border-color: #E79E36;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #E79E36 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #E79E36;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #E79E36;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #E79E36;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #E79E36;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #E79E36;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #db681a;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #E79E36;
|
||||
}
|
||||
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -539px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -539px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #E79E36;
|
||||
}
|
377
resources/themes/metronic/assets/themes/red.css
Normal file
377
resources/themes/metronic/assets/themes/red.css
Normal file
@ -0,0 +1,377 @@
|
||||
a {
|
||||
color: #E02222;
|
||||
}
|
||||
a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #E02222;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #e02222;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #e02222;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #E02222;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #E02222;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #E02222;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #E02222;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #e02222;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #E02222;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #e6400c;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #e6400c;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #e6400c;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #e6400c;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #e6400c;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #ea4c1d;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #e6400c;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #e6400c;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #e6400c;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #e6400c;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #e6400c;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #e6400c;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #E6400C;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #E6400C;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #E6400C;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #E6400C;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #e6400c;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #e6400c;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #e6400c;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #E6400C;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #E6400C;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #e45000;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #e45000;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #e45000;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #e45000;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #e84d1c;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #e84d1c;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #e84d1c;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #E84D1C;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #e84d1c;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #e84d1c;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #e84d1c;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #e84d1c;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #E84D1C;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #E84D1C;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #E84D1C;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #E84D1C;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #E84D1C;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #E84D1C;
|
||||
box-shadow: 7px 7px rgba(232, 77, 22, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #E84D1C;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #E84D1C;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #e84d1c;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #e84d1c;
|
||||
}
|
||||
.pi-price {
|
||||
color: #e84d1c;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #E84D1C !important;
|
||||
border-color: #E84D1C;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #e84d1c;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #e84d1c;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #E84D1C;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #e84d1c;
|
||||
}
|
||||
|
||||
|
||||
.require {
|
||||
color: #e94d1c;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #e94d1c;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #e94d1c;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #e94d1c;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #cc3304;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #EA4C1D;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #EC7049;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #E94D1C;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -11px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -11px -37px;
|
||||
}
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #ea4c1d;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #EF4D2E;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #d73d04;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #e34f00;
|
||||
border-color: #e34f00;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #dd4632 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #e44f00;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #e44f00;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #e44f00;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #e44f00;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #e44f00;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #DB3A1B;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #ea4c1d;
|
||||
}
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -217px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -217px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #e64f00;
|
||||
}
|
383
resources/themes/metronic/assets/themes/turquoise.css
Normal file
383
resources/themes/metronic/assets/themes/turquoise.css
Normal file
@ -0,0 +1,383 @@
|
||||
a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.pre-header a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.shop-currencies a.current {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.header-navigation ul > li.active > a,
|
||||
.header-navigation ul > li > a:hover,
|
||||
.header-navigation ul > li > a:focus,
|
||||
.header-navigation ul > li.open > a,
|
||||
.header-navigation ul > li.open > a:hover,
|
||||
.header-navigation ul > li.open > a:focus {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.header-navigation li.menu-search i:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.sidebar a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.sidebar .dropdown.open .dropdown-toggle:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.content-page a:hover,
|
||||
.sidebar2 a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.content-page .link, .content-page .link:hover, .content-page .link:active {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.page-404 .number,
|
||||
.page-500 .number {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.content-form-page a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.quote-v1 a.btn-transparent:hover {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.recent-work h2 a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.recent-work .recent-work-item .fa:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.our-clients h2 a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.front-team h3 strong {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.ecommerce .header-navigation ul > li.active > a,
|
||||
.ecommerce .header-navigation ul > li > a:hover,
|
||||
.ecommerce .header-navigation ul > li > a:focus,
|
||||
.ecommerce .header-navigation ul > li.open > a,
|
||||
.ecommerce .header-navigation ul > li.open > a:hover,
|
||||
.ecommerce .header-navigation ul > li.open > a:focus {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.product-item h3 a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.checkout-page a:hover {
|
||||
color: #44b1c1;
|
||||
}
|
||||
|
||||
|
||||
.langs-block-others:after {
|
||||
border-bottom: 8px solid #44b1c1;
|
||||
}
|
||||
.header-navigation > ul > li.dropdown:hover > a:after {
|
||||
border-bottom: 8px solid #44b1c1;
|
||||
}
|
||||
.header-navigation .dropdown-menu > li > a:hover,
|
||||
.header-navigation .dropdown-menu > li.active > a,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li > a:hover,
|
||||
.header-navigation .header-navigation-content .header-navigation-col li.active > a {
|
||||
background: #44b1c1;
|
||||
color: #fff;
|
||||
}
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover,
|
||||
.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a {
|
||||
background: #fff;
|
||||
color: #44b1c1;
|
||||
}
|
||||
.header-navigation .search-box:after {
|
||||
border-bottom: 8px solid #44b1c1;
|
||||
}
|
||||
.header-navigation .search-box {
|
||||
border-top: solid 2px #44b1c1;
|
||||
}
|
||||
.title-wrapper h1 span {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.breadcrumb > .active {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.form-info h2 em {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-color: #44b1c1;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.content-search h1 em {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.recent-work .recent-work-item:hover a.recent-work-description {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.testimonials-v1 blockquote:after {
|
||||
background-color: #44b1c1;
|
||||
}
|
||||
.testimonials-v1 span.testimonials-name {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.search-result-item h4 a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.top-cart-content:after {
|
||||
border-bottom: 8px solid #44b1c1;
|
||||
}
|
||||
.goods-data a,
|
||||
.checkout-page .checkout-description a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.product-page .review a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
|
||||
background: #44b1c1;
|
||||
color: #fff;
|
||||
}
|
||||
.list-view-sorting a {
|
||||
background: #fff;
|
||||
color: #44b1c1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
background: #44b1c1;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #44b1c1;
|
||||
}
|
||||
.steps-block ::-moz-selection {
|
||||
color: #44b1c1;
|
||||
background: #fff;
|
||||
}
|
||||
.steps-block ::selection {
|
||||
color: #44b1c1;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.owl-buttons .owl-prev:hover {
|
||||
background-color: #44b1c1;
|
||||
}
|
||||
.owl-buttons .owl-next:hover {
|
||||
background-color: #44b1c1;
|
||||
}
|
||||
.steps-block-red {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.pre-footer .photo-stream img:hover {
|
||||
border-color: #44b1c1;
|
||||
}
|
||||
.pre-footer-light dl.f-twitter dd a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.pre-footer-light address a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.testimonials-v1 .left-btn:hover {
|
||||
background-color: #44b1c1;
|
||||
}
|
||||
.testimonials-v1 .right-btn:hover {
|
||||
background-color: #44b1c1;
|
||||
}
|
||||
.blog-tags li i,
|
||||
.blog-info li i {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.blog-posts .more,
|
||||
.blog-sidebar .more {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.recent-news h3 a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.blog-photo-stream li img:hover {
|
||||
border-color: #44b1c1;
|
||||
}
|
||||
.blog-tags li a:hover {
|
||||
color: #fff;
|
||||
background: #44b1c1;
|
||||
}
|
||||
.blog-tags li a:hover:after {
|
||||
border-left-color: #44b1c1;
|
||||
}
|
||||
.sidebar-categories li > a:hover,
|
||||
.sidebar-categories li.active > a,
|
||||
.sidebar-categories li.active:hover > a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.blog-item blockquote {
|
||||
border-color: #44b1c1;
|
||||
}
|
||||
.blog-item h4.media-heading span a {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.front-steps-wrapper .front-step1 {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.pricing-active {
|
||||
border: 3px solid #44b1c1;
|
||||
box-shadow: 7px 7px rgba(68, 177, 193, 0.2);
|
||||
}
|
||||
.pricing:hover {
|
||||
border: 3px solid #44b1c1;
|
||||
}
|
||||
.pricing:hover h4 {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.pricing-head h3 {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.pricing-head-active h4 {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.pricing-content li i {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.top-cart-block .fa-shopping-cart {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.product-item .btn:hover {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.pi-price {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.product-item .add2cart:hover {
|
||||
color: #fff !important;
|
||||
background: #44b1c1 !important;
|
||||
border-color: #44b1c1;
|
||||
}
|
||||
.goods-page-price strong,
|
||||
.goods-page-total strong,
|
||||
.checkout-price strong,
|
||||
.checkout-total strong {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.shopping-total strong,
|
||||
.checkout-total-block strong {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.compare-item strong {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.sidebar-products .price {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.price-availability-block .price strong {
|
||||
color: #44b1c1;
|
||||
}
|
||||
|
||||
.require {
|
||||
color: #44b1c1;
|
||||
}
|
||||
.content-form-page .form-control:focus {
|
||||
border: solid 1px #44b1c1;
|
||||
}
|
||||
.content-search input:focus {
|
||||
border: solid 1px #44b1c1;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #44b1c1;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary:active {
|
||||
background: #44b1c1;
|
||||
}
|
||||
|
||||
.header-navigation .dropdown-menu > li:first-child {
|
||||
border-top: 2px solid #44b1c1;
|
||||
}
|
||||
.front-steps-wrapper .front-step1:after {
|
||||
border-left: 15px solid #69C0CD;
|
||||
}
|
||||
|
||||
.del-goods:hover,
|
||||
.add-goods:hover {
|
||||
background-color: #69C0CD;
|
||||
}
|
||||
|
||||
.sidebar a:hover > .fa-angle-down {
|
||||
background-position: -55px 0;
|
||||
}
|
||||
.sidebar .collapsed:hover > .fa-angle-down {
|
||||
background-position: -55px -37px;
|
||||
}
|
||||
|
||||
.top-cart-content {
|
||||
border-top: solid 2px #69C0CD;
|
||||
}
|
||||
|
||||
.front-skills .progress-bar {
|
||||
background: #69C0CD;
|
||||
}
|
||||
|
||||
.service-box-v1:hover {
|
||||
background: #69C0CD;
|
||||
}
|
||||
|
||||
.header .mobi-toggler:hover {
|
||||
background-color: #69C0CD;
|
||||
border-color: #69C0CD;
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.header .header-navigation li > a:hover,
|
||||
.header .header-navigation li.active > a,
|
||||
.header .header-navigation li.open > a:hover {
|
||||
color: #69C0CD !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.faq-tabbable {
|
||||
border-left: solid 2px #69C0CD;
|
||||
}
|
||||
.faq-tabbable li:hover a,
|
||||
.faq-tabbable li.active a{
|
||||
background: #69C0CD;
|
||||
}
|
||||
.faq-tabbable li.active:after {
|
||||
border-left: 6px solid #69C0CD;
|
||||
}
|
||||
|
||||
.mix-filter li:hover, .mix-filter li.active {
|
||||
background: #69C0CD;
|
||||
color: #fff;
|
||||
}
|
||||
.mix-grid .mix .mix-details {
|
||||
background: #69C0CD;
|
||||
}
|
||||
.mix-grid .mix a.mix-link,
|
||||
.mix-grid .mix a.mix-preview {
|
||||
background: #1adbd2;
|
||||
}
|
||||
.langs-block-others {
|
||||
border-top: solid 2px #69C0CD;
|
||||
}
|
||||
|
||||
.brands .owl-buttons .owl-prev:hover {
|
||||
background-position: 18px -646px;
|
||||
}
|
||||
.brands .owl-buttons .owl-next:hover {
|
||||
background-position: -249px -646px;
|
||||
}
|
||||
.header-navigation ul > li.active > a/*,
|
||||
.ecommerce .header-navigation ul > li.active > a*/ {
|
||||
border-bottom: 2px solid #69C0CD;
|
||||
}
|
44
resources/themes/metronic/views/layouts/app.blade.php
Normal file
44
resources/themes/metronic/views/layouts/app.blade.php
Normal file
@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en"
|
||||
@section('htmlheader')
|
||||
@include('metronic::layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
<body class="corporate">
|
||||
<div id="app">
|
||||
<div class="wrapper">
|
||||
@include('metronic::layouts.partials.mainheader')
|
||||
|
||||
@include('metronic::layouts.partials.sidebar')
|
||||
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper">
|
||||
@include('metronic::layouts.partials.contentheader')
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- Your Page Content Here -->
|
||||
<div class="main">
|
||||
<div class="container">
|
||||
@yield('breadcrumb')
|
||||
</div>
|
||||
|
||||
@yield('main-content')
|
||||
</div>
|
||||
</section><!-- /.content -->
|
||||
</div><!-- /.content-wrapper -->
|
||||
|
||||
@include('metronic::layouts.partials.controlsidebar')
|
||||
|
||||
@include('metronic::layouts.partials.footer')
|
||||
|
||||
</div><!-- ./wrapper -->
|
||||
</div> <!-- ./app -->
|
||||
|
||||
@section('scripts')
|
||||
@include('metronic::layouts.partials.scripts')
|
||||
|
||||
@yield('page-scripts')
|
||||
@show
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,99 @@
|
||||
{{-- This page needs $site_social --}}
|
||||
|
||||
<!-- BEGIN PRE-FOOTER -->
|
||||
<div class="pre-footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN BOTTOM ABOUT BLOCK -->
|
||||
<div class="col-md-4 col-sm-6 pre-footer-col">
|
||||
@isset($site->site_aboutus))
|
||||
<h2>About us</h2>
|
||||
<p>{!! $site->site_aboutus !!}</p>
|
||||
<!--
|
||||
<div class="photo-stream">
|
||||
<h2>Photos Stream</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="javascript:;"><img alt="" src="{{!! Theme::url('/') !!}}"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
@endisset
|
||||
</div>
|
||||
<!-- END BOTTOM ABOUT BLOCK -->
|
||||
|
||||
<!-- BEGIN BOTTOM CONTACTS -->
|
||||
<div class="col-md-offset-5 col-md-3 col-sm-6 pre-footer-col">
|
||||
<h2 style="text-align: right;">Our Contact Details</h2>
|
||||
<address class="margin-bottom-40" style="float: right;">
|
||||
<table>
|
||||
<tr><th style="vertical-align:top; padding-right: 5px;">Address</th><td>{!! join('<br>',$site->address) !!}</td></tr>
|
||||
@isset($site->site_fax)
|
||||
<tr><th>Fax</th><td>{{ $site->site_fax }}</tr>
|
||||
@endif
|
||||
<tr><th>Email</th><td> <a href="mailto:{{ $site->site_email }}">{{ $site->site_email }}</a></tr>
|
||||
</table>
|
||||
</address>
|
||||
<!--
|
||||
<div class="pre-footer-subscribe-box pre-footer-subscribe-box-vertical">
|
||||
<h2>Newsletter</h2>
|
||||
<p>Subscribe to our newsletter and stay up to date with the latest news and deals!</p>
|
||||
<form action="#">
|
||||
<div class="input-group">
|
||||
<input type="text" placeholder="youremail@mail.com" class="form-control">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">Subscribe</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
<!-- END BOTTOM CONTACTS -->
|
||||
|
||||
<!-- BEGIN TWITTER BLOCK -->
|
||||
<!--
|
||||
<div class="col-md-4 col-sm-6 pre-footer-col">
|
||||
<h2 class="margin-bottom-0">Latest Tweets</h2>
|
||||
<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-tweet-limit="2" data-theme="dark" data-link-color="#57C8EB" data-widget-id="" data-chrome="noheader nofooter noscrollbar noborders transparent">Loading tweets...</a>
|
||||
</div>
|
||||
-->
|
||||
<!-- END TWITTER BLOCK -->
|
||||
|
||||
<!-- BEGIN ADDRESS MAP -->
|
||||
{{-- @todo --}}
|
||||
<!-- END ADDRESS MAP -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END PRE-FOOTER -->
|
||||
|
||||
<!-- BEGIN FOOTER -->
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN COPYRIGHT -->
|
||||
<div class="col-md-4 col-sm-4 padding-top-10">
|
||||
{{ \Carbon\Carbon::now()->year }} © Leenooks. ALL Rights Reserved. <!-- <a href="javascript:;">Privacy Policy</a> | <a href="javascript:;">Terms of Service</a> -->
|
||||
</div>
|
||||
<!-- END COPYRIGHT -->
|
||||
|
||||
<!-- BEGIN SOCIAL -->
|
||||
<div class="col-md-4 col-sm-4">
|
||||
<ul class="social-footer list-unstyled list-inline pull-right">
|
||||
@foreach ($site->social as $social)
|
||||
<li><a href="{{ $social['url'] }}"><i class="fab fa-{{ $social['name'] }}"></i></a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END SOCIAL -->
|
||||
|
||||
<!-- BEGIN POWERED -->
|
||||
<div class="col-md-4 col-sm-4 text-right">
|
||||
<p class="powered">Powered by: <a href="http://www.leenooks.net/">leenooks</a></p>
|
||||
</div>
|
||||
<!-- END POWERED -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END FOOTER -->
|
@ -0,0 +1,38 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<title>{{ config('app.name') }} - @yield('htmlheader_title','Your title here')</title>
|
||||
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||
<!-- Font Awesome Icons -->
|
||||
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.15.3/css/all.css">
|
||||
{{--
|
||||
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.15.3/css/v4-shims.css">
|
||||
--}}
|
||||
|
||||
<!-- Theme style -->
|
||||
<link rel="stylesheet" href="{{ asset('theme/frontend/metronic/css/components.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('theme/frontend/metronic/css/style.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('theme/frontend/metronic/css/style-responsive.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('theme/frontend/metronic/css/themes/blue.css') }}">
|
||||
|
||||
<!-- Google Font: Source Sans Pro -->
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|PT+Sans+Narrow|Source+Sans+Pro:200,300,400,600,700,900&subset=all" rel="stylesheet" type="text/css">
|
||||
|
||||
<meta property="og:site_name" content="{{ config('app.name') }}" />
|
||||
<meta property="og:title" content="{{ $site->site_name }}" />
|
||||
<meta property="og:description" content="{{ $site->site_description }}" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="{{ $site->site_logo }}" />
|
||||
<meta property="og:url" content="{{ url('/') }}" />
|
||||
|
||||
<link rel="shortcut icon" href="{{ object_get($site,'favicon','favicon.ico') }}" />
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link rel="stylesheet" href="{{ asset('theme/frontend/metronic/css/custom.css') }}">
|
||||
|
||||
@yield('page-styles')
|
||||
</head>
|
@ -0,0 +1,81 @@
|
||||
<!-- BEGIN TOP BAR -->
|
||||
<div class="pre-header">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN TOP BAR LEFT PART -->
|
||||
<div class="col-md-6 col-sm-6 additional-shop-info">
|
||||
<ul class="list-unstyled list-inline">
|
||||
<li><i class="fas fa-phone mr-4"></i><span>{!! $site->site_phone !!}</span></li>
|
||||
<li><i class="fas fa-envelope mr-4"></i><span>{!! $site->site_email !!}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END TOP BAR LEFT PART -->
|
||||
|
||||
<!-- BEGIN TOP BAR MENU -->
|
||||
<div class="col-md-6 col-sm-6 additional-nav">
|
||||
<ul class="list-unstyled list-inline pull-right">
|
||||
<li><a href="{{ url('home') }}">Log In</a></li>
|
||||
@isset($register)
|
||||
<li><a href="{{ url('register') }}">Registration</a></li>
|
||||
@endisset
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END TOP BAR MENU -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END TOP BAR -->
|
||||
|
||||
<!-- BEGIN HEADER -->
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<a class="site-logo" href="{{ url('/') }}"><img src="{{ $site->site_logo }}" alt="{{ $site->site_description }}" height="32"></a>
|
||||
<a href="javascript:void(0);" class="mobi-toggler"><i class="fa fa-bars"></i></a>
|
||||
|
||||
<!-- BEGIN NAVIGATION -->
|
||||
<div class="header-navigation pull-right font-transform-inherit">
|
||||
<ul>
|
||||
{{-- @todo Replace this with a function that can traverse children with multiple depths --}}
|
||||
@foreach ($site->top_menu as $item => $menu)
|
||||
<li class="dropdown {{ Request::is($menu['url']) ? 'active' : '' }}">
|
||||
|
||||
@if (! \Illuminate\Support\Arr::get($menu,'children'))
|
||||
<a {{ Request::is($menu['url']) ? 'class=active' : '' }} href="{{ url($menu['url']) }}">{{ $menu['name'] }}</a>
|
||||
@else
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="javascript:;">{{ $item }}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li {{ (Request::is($menu['url']) ? 'class=active' : '') }}><a href="{{ url($menu['url']) }}">{{ $menu['name'] }}</a></li>
|
||||
@foreach($menu['children'] as $name => $menuitem)
|
||||
<li {{ (Request::is($menuitem['url']) ? 'class=active' : '') }}><a href="{{ url($menuitem['url']) }}">{{ $menuitem['name'] }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
<!-- BEGIN TOP SEARCH -->
|
||||
@isset($search_enabled)
|
||||
<li class="menu-search">
|
||||
<span class="sep"></span>
|
||||
<i class="fa fa-search search-btn"></i>
|
||||
|
||||
<div class="search-box">
|
||||
<form action="#">
|
||||
<div class="input-group">
|
||||
<input type="text" placeholder="Search" class="form-control">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
@endisset
|
||||
<!-- END TOP SEARCH -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END NAVIGATION -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- Header END -->
|
@ -0,0 +1,22 @@
|
||||
<!-- REQUIRED JS SCRIPTS -->
|
||||
<!-- Bootstrap & Jquery App -->
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
||||
@if(file_exists('plugin/back-to-top/back-to-top.js'))
|
||||
<script src="{{ asset('plugin/back-to-top/back-to-top.js') }}"></script>
|
||||
@endif
|
||||
|
||||
<script type="text/javascript">
|
||||
// Our CSRF token to each interaction
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@if(file_exists('js/custom.js'))
|
||||
<!-- Any Custom JS -->
|
||||
<script type="text/javascript" src="{{ asset('js/custom.js') }}"></script>
|
||||
@endif
|
@ -13,17 +13,40 @@ class Carbon extends CarbonBase
|
||||
{
|
||||
const MONTHS_PER_HALF = 6;
|
||||
|
||||
public function __get($name)
|
||||
public function __get(string $name): mixed
|
||||
{
|
||||
switch (true) {
|
||||
case $name === 'half':
|
||||
switch ($name) {
|
||||
case 'half':
|
||||
return (int) ceil($this->month / static::MONTHS_PER_HALF);
|
||||
|
||||
case 'quarter_string':
|
||||
return sprintf('%dQ%d',$this->year,$this->quarter);
|
||||
|
||||
default:
|
||||
return parent::__get($name);
|
||||
}
|
||||
}
|
||||
|
||||
public function addHalf(): self
|
||||
{
|
||||
return $this->addHalves(1);
|
||||
}
|
||||
|
||||
public function addHalves(int $unit): self
|
||||
{
|
||||
return $this->addQuarters(2*$unit);
|
||||
}
|
||||
|
||||
public function subHalf(): self
|
||||
{
|
||||
return $this->subHalves(1);
|
||||
}
|
||||
|
||||
public function subHalves(int $unit): self
|
||||
{
|
||||
return $this->subQuarters(2*$unit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify to the first occurrence of a given day of the week
|
||||
* in the current quarter. If no dayOfWeek is provided, modify to the
|
||||
@ -34,7 +57,7 @@ class Carbon extends CarbonBase
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function firstOfHalf($dayOfWeek = null)
|
||||
public function startOfHalf(int $dayOfWeek=NULL)
|
||||
{
|
||||
return $this->setDate($this->year, $this->half * static::MONTHS_PER_HALF - 5, 1)->firstOfMonth($dayOfWeek);
|
||||
}
|
||||
@ -49,7 +72,7 @@ class Carbon extends CarbonBase
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function lastOfHalf($dayOfWeek = null)
|
||||
public function endOfHalf(int $dayOfWeek=NULL)
|
||||
{
|
||||
return $this->setDate($this->year, $this->half * static::MONTHS_PER_HALF, 1)->lastOfMonth($dayOfWeek);
|
||||
}
|
||||
|
30
src/Casts/LeenooksCarbon.php
Normal file
30
src/Casts/LeenooksCarbon.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Casts;
|
||||
|
||||
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Leenooks\Carbon;
|
||||
|
||||
class LeenooksCarbon implements CastsAttributes
|
||||
{
|
||||
/**
|
||||
* Cast the given value.
|
||||
*
|
||||
* @param array<string, mixed> $attributes
|
||||
*/
|
||||
public function get(Model $model, string $key, mixed $value, array $attributes): ?Carbon
|
||||
{
|
||||
return $value ? Carbon::create($value) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare the given value for storage.
|
||||
*
|
||||
* @param array<string, mixed> $attributes
|
||||
*/
|
||||
public function set(Model $model, string $key, mixed $value, array $attributes): string|null
|
||||
{
|
||||
return ($value instanceof Carbon ? $value : $this->get($model,$key,$value,$attributes))?->format('Y-m-d H:i:s');
|
||||
}
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
|
||||
class ScheduleList extends Command
|
||||
{
|
||||
protected $signature = 'schedule:list';
|
||||
|
||||
protected $description = 'List when scheduled commands are executed.';
|
||||
|
||||
/**
|
||||
* @var Schedule
|
||||
*/
|
||||
protected $schedule;
|
||||
|
||||
/**
|
||||
* ScheduleList constructor.
|
||||
*
|
||||
* @param Schedule $schedule
|
||||
*/
|
||||
public function __construct(Schedule $schedule)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->schedule = $schedule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$events = array_map(function ($event) {
|
||||
return [
|
||||
'cron' => $event->expression,
|
||||
'command' => static::fixupCommand($event->command),
|
||||
];
|
||||
}, $this->schedule->events());
|
||||
|
||||
$this->table(
|
||||
['Cron', 'Command'],
|
||||
$events
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* If it's an artisan command, strip off the PHP
|
||||
*
|
||||
* @param $command
|
||||
* @return string
|
||||
*/
|
||||
protected static function fixupCommand($command)
|
||||
{
|
||||
$parts = explode(' ', $command);
|
||||
if (count($parts) > 2 && $parts[1] === "'artisan'") {
|
||||
array_shift($parts);
|
||||
}
|
||||
|
||||
return implode(' ', $parts);
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Controllers;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Redirect;
|
||||
use Session;
|
||||
|
||||
use App\User;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function switch_authorised()
|
||||
{
|
||||
return Auth::user()->isAdmin ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
public function switch_session()
|
||||
{
|
||||
return ! Session::get('orig_user');
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo Change the background color (or something) so we know we are switched
|
||||
*/
|
||||
public function user_switch_start($id)
|
||||
{
|
||||
if ($this->switch_session() AND $this->switch_authorised())
|
||||
{
|
||||
$uo = User::find($id);
|
||||
|
||||
if (! $uo)
|
||||
abort(404,'User not found');
|
||||
|
||||
Session::put('orig_user',Auth::id());
|
||||
Auth::login($uo);
|
||||
}
|
||||
|
||||
return Redirect::to('/home');
|
||||
}
|
||||
|
||||
public function user_switch_stop()
|
||||
{
|
||||
if ($id = Session::pull('orig_user')) {
|
||||
$uo = User::find($id);
|
||||
Auth::login($uo);
|
||||
}
|
||||
|
||||
return Redirect::to('/home');
|
||||
}
|
||||
}
|
61
src/Controllers/SwitchUserController.php
Normal file
61
src/Controllers/SwitchUserController.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Redirect;
|
||||
use Session;
|
||||
|
||||
use App\Models\User;
|
||||
|
||||
class SwitchUserController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the user is authorised to switch to another user
|
||||
*
|
||||
* @param User $user
|
||||
* @return bool
|
||||
*/
|
||||
public function switch_authorised(User $user): bool
|
||||
{
|
||||
return (method_exists(Auth::user(),'isAdmin') && Auth::user()->isAdmin($user)) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch to a different user
|
||||
*
|
||||
* @param User $user
|
||||
* @return mixed
|
||||
*/
|
||||
public function switch_start(User $user)
|
||||
{
|
||||
if ($user->switched)
|
||||
abort(403,'User already switched');
|
||||
|
||||
if ($this->switch_authorised($user)) {
|
||||
Session::put('orig_user',Auth::user());
|
||||
Auth::login($user);
|
||||
}
|
||||
|
||||
return Redirect::to('/home');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return back from the switch users
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function switch_stop()
|
||||
{
|
||||
if ($user = Session::pull('orig_user'))
|
||||
Auth::login($user);
|
||||
|
||||
return Redirect::to('/home');
|
||||
}
|
||||
}
|
29
src/GuestUser.php
Normal file
29
src/GuestUser.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks;
|
||||
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
|
||||
class GuestUser extends Authenticatable
|
||||
{
|
||||
use Notifiable;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name', 'email', 'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for arrays.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password', 'remember_token',
|
||||
];
|
||||
}
|
26
src/Http/Middleware/ActiveUser.php
Normal file
26
src/Http/Middleware/ActiveUser.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ActiveUser
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request,\Closure $next)
|
||||
{
|
||||
if ((! Auth::user()?->exists) || (! Auth::user()->active)) {
|
||||
Auth::logout();
|
||||
abort(403,'Your account is not active');
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
27
src/Http/Middleware/GuestUser.php
Normal file
27
src/Http/Middleware/GuestUser.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
|
||||
/**
|
||||
* Class GuestUser
|
||||
* @package Leenooks\Laravel\Http\Middleware
|
||||
*/
|
||||
class GuestUser
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
view()->share('loggedin',auth()->check());
|
||||
view()->share('user', auth()->user() ?: new \Leenooks\GuestUser);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
213
src/PageAssets.php
Normal file
213
src/PageAssets.php
Normal file
@ -0,0 +1,213 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks;
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
/**
|
||||
* Useful tools (js/css) used when rendering pages
|
||||
*/
|
||||
class PageAssets
|
||||
{
|
||||
// Types that we can handle
|
||||
private const array types = [
|
||||
'css',
|
||||
'js',
|
||||
];
|
||||
|
||||
public const array assets = [
|
||||
'datatables' => [
|
||||
'base' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/2.1.2/css/dataTables.bootstrap4.css',
|
||||
//'//cdn.datatables.net/2.1.2/css/dataTables.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/2.1.2/js/dataTables.min.js',
|
||||
'//cdn.datatables.net/2.1.2/js/dataTables.bootstrap4.min.js',
|
||||
],
|
||||
],
|
||||
'buttons' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/buttons/3.1.0/css/buttons.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/buttons/3.1.0/css/buttons.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/buttons/3.1.0/js/dataTables.buttons.min.js',
|
||||
//'//cdn.datatables.net/buttons/3.1.0/js/buttons.dataTables.min.js',
|
||||
'//cdn.datatables.net/buttons/3.1.0/js/buttons.bootstrap4.min.js',
|
||||
'//cdnjs.cloudflare.com/ajax/libs/jszip/3.2.0/jszip.min.js',
|
||||
],
|
||||
],
|
||||
'conditionalpaging' => [
|
||||
'js' => [
|
||||
'//cdn.datatables.net/plug-ins/2.0.5/features/conditionalPaging/dataTables.conditionalPaging.min.js',
|
||||
],
|
||||
],
|
||||
'fixedheader' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/fixedheader/4.0.1/css/fixedHeader.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/fixedheader/4.0.1/css/fixedHeader.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/fixedheader/4.0.1/js/dataTables.fixedHeader.min.js',
|
||||
//'//cdn.datatables.net/fixedheader/4.0.1/js/fixedHeader.dataTables.min.js',
|
||||
'//cdn.datatables.net/fixedheader/4.0.1/js/fixedHeader.bootstrap4.min.js',
|
||||
]
|
||||
],
|
||||
'responsive' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/responsive/3.0.2/css/responsive.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/responsive/3.0.2/css/responsive.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/responsive/3.0.2/js/dataTables.responsive.min.js',
|
||||
//'//cdn.datatables.net/responsive/3.0.2/js/responsive.bootstrap.min.js',
|
||||
'//cdn.datatables.net/responsive/3.0.2/js/responsive.bootstrap4.min.js',
|
||||
]
|
||||
],
|
||||
'rowgroup' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/rowgroup/1.5.0/css/rowGroup.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/rowgroup/1.5.0/css/rowGroup.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/rowgroup/1.5.0/js/dataTables.rowGroup.min.js',
|
||||
//'//cdn.datatables.net/rowgroup/1.5.0/js/rowGroup.dataTables.min.js',
|
||||
'//cdn.datatables.net/rowgroup/1.5.0/js/rowGroup.bootstrap4.min.js',
|
||||
],
|
||||
],
|
||||
'searchpanes' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/searchpanes/2.3.1/css/searchPanes.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/searchpanes/2.3.1/css/searchPanes.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/searchpanes/2.3.1/js/dataTables.searchPanes.min.js',
|
||||
//'//cdn.datatables.net/searchpanes/2.3.1/js/searchPanes.dataTables.min.js',
|
||||
'//cdn.datatables.net/searchpanes/2.3.1/js/searchPanes.bootstrap4.min.js',
|
||||
],
|
||||
],
|
||||
'searchpanes-left' => [
|
||||
'css' => [
|
||||
'/plugin/dataTables/leftSearchPanes.css',
|
||||
],
|
||||
],
|
||||
'select' => [
|
||||
'css' => [
|
||||
'//cdn.datatables.net/select/2.0.3/css/select.bootstrap4.min.css',
|
||||
//'//cdn.datatables.net/select/2.0.3/css/select.dataTables.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.datatables.net/select/2.0.3/js/dataTables.select.min.js',
|
||||
//'//cdn.datatables.net/select/2.0.3/js/select.dataTables.min.js',
|
||||
'//cdn.datatables.net/select/2.0.3/js/select.bootstrap4.min.js',
|
||||
]
|
||||
],
|
||||
],
|
||||
'select2' => [
|
||||
'base' => [
|
||||
'css' => [
|
||||
'//cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js',
|
||||
],
|
||||
],
|
||||
'autofocus' => [
|
||||
'js' => [
|
||||
'/plugin/select2/fix-autofocus.js',
|
||||
],
|
||||
]
|
||||
],
|
||||
'simplemde' => [
|
||||
'base' => [
|
||||
'css' => [
|
||||
'//cdn.jsdelivr.net/simplemde/latest/simplemde.min.css',
|
||||
],
|
||||
'js' => [
|
||||
'//cdn.jsdelivr.net/simplemde/latest/simplemde.min.js',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
// Items to manage
|
||||
public static Collection $items;
|
||||
|
||||
// Add an item to the list
|
||||
public static function add(string $type,Collection|array|string $asset): void
|
||||
{
|
||||
if (! in_array($type,self::types))
|
||||
throw new \Exception('Invalid type: '.$type);
|
||||
|
||||
if (! isset(self::$items))
|
||||
self::init();
|
||||
|
||||
if (is_string($asset))
|
||||
self::$items
|
||||
->get($type)
|
||||
->push($asset)
|
||||
->unique();
|
||||
else
|
||||
self::$items->put($type,
|
||||
self::$items
|
||||
->get($type)
|
||||
->merge($asset->values())
|
||||
->unique());
|
||||
}
|
||||
|
||||
// Add a predefined asset
|
||||
public static function asset(string $id): void
|
||||
{
|
||||
if (! isset(self::$items))
|
||||
self::init();
|
||||
|
||||
if (str_contains($id,',')) {
|
||||
[$item,$arguments] = explode(',',$id,2);
|
||||
$arguments = collect(explode('|',$arguments));
|
||||
|
||||
} else {
|
||||
$item = $id;
|
||||
$arguments = collect();
|
||||
}
|
||||
|
||||
$arguments = $arguments->prepend('base');
|
||||
$asset = collect(Arr::get(self::assets,$item))->only($arguments);
|
||||
|
||||
foreach (self::types as $type)
|
||||
if ($x=$asset->pluck($type)->filter()->flatten())
|
||||
self::add($type,$x);
|
||||
}
|
||||
|
||||
// Render the CSS items
|
||||
public static function css(): string
|
||||
{
|
||||
return isset(self::$items)
|
||||
? self::$items
|
||||
->get('css')
|
||||
->map(fn($item)=>sprintf('<link rel="stylesheet" href="%s">',$item))
|
||||
->join('')
|
||||
: '';
|
||||
}
|
||||
|
||||
public static function init(): void
|
||||
{
|
||||
self::$items = collect([
|
||||
'js' => collect(),
|
||||
'css' => collect(),
|
||||
]);
|
||||
}
|
||||
|
||||
// Render the JS items
|
||||
public static function js(): string
|
||||
{
|
||||
return isset(self::$items)
|
||||
? self::$items
|
||||
->get('js')
|
||||
->map(fn($item)=>sprintf('<script type="text/javascript" src="%s"></script>',$item))
|
||||
->join('')
|
||||
: '';
|
||||
}
|
||||
}
|
188
src/Providers/CustomBladeServiceProvider.php
Normal file
188
src/Providers/CustomBladeServiceProvider.php
Normal file
@ -0,0 +1,188 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class CustomBladeServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
Blade::directive('css',function(string $expression) {
|
||||
return $this->resolve('css',$expression);
|
||||
});
|
||||
|
||||
Blade::directive('js',function($expression) {
|
||||
return $this->resolve('js',$expression);
|
||||
});
|
||||
}
|
||||
|
||||
private function resolve(string $content,string $expression): string
|
||||
{
|
||||
if (str_contains($expression,',')) {
|
||||
[$type,$arguments] = explode(',',$expression,2);
|
||||
$arguments = explode('|',$arguments);
|
||||
|
||||
} else {
|
||||
$type = $expression;
|
||||
$arguments = [];
|
||||
}
|
||||
|
||||
$return = collect();
|
||||
$css = collect();
|
||||
$js = collect();
|
||||
|
||||
switch ($type) {
|
||||
case 'datatables':
|
||||
case 'select2':
|
||||
case 'simplemde':
|
||||
Log::alert(sprintf('Blade @css/@js for %s deprecicated, use @pa',$type));
|
||||
break;
|
||||
|
||||
case 'datepick':
|
||||
switch ($content) {
|
||||
case 'css':
|
||||
$css->put($type,'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css');
|
||||
break;
|
||||
|
||||
case 'js':
|
||||
$js->put($type,'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'debounce':
|
||||
switch ($content) {
|
||||
case 'js':
|
||||
$js->put($type,'js/debounce.js');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'highcharts':
|
||||
switch ($content) {
|
||||
case 'js':
|
||||
// Base
|
||||
$js->put($type,'https://code.highcharts.com/highcharts.js');
|
||||
|
||||
foreach ($arguments as $option) {
|
||||
$key = $type.':'.$option;
|
||||
switch ($option) {
|
||||
case '3d':
|
||||
$js->put($key,'https://code.highcharts.com/highcharts-3d.js');
|
||||
$js->put($key.'mouseover','/plugin/highcharts/3dmouseover.js');
|
||||
break;
|
||||
|
||||
case 'data':
|
||||
$js->put($key,'https://code.highcharts.com/modules/data.js');
|
||||
break;
|
||||
|
||||
case 'defaults':
|
||||
$js->put($key,'/plugin/highcharts/defaults.js');
|
||||
break;
|
||||
|
||||
case 'drilldown':
|
||||
$js->put($key,'https://code.highcharts.com/modules/drilldown.js');
|
||||
break;
|
||||
|
||||
case 'export':
|
||||
$js->put($key,'https://code.highcharts.com/modules/exporting.js');
|
||||
$js->put($key.'data','https://code.highcharts.com/modules/export-data.js');
|
||||
break;
|
||||
|
||||
case 'funnel':
|
||||
$js->put($key,'https://code.highcharts.com/modules/funnel.js');
|
||||
break;
|
||||
|
||||
case 'heatmap':
|
||||
$js->put($key,'https://code.highcharts.com/modules/heatmap.js');
|
||||
break;
|
||||
|
||||
case 'solidguage':
|
||||
$js->put($key,'https://code.highcharts.com/highcharts-more.js');
|
||||
$js->put($key.'accessiblity','https://code.highcharts.com/modules/accessibility.js');
|
||||
$js->put($key.'solid-guage','https://code.highcharts.com/modules/solid-gauge.js');
|
||||
break;
|
||||
|
||||
case 'theme-dark':
|
||||
$js->put($key,'https://code.highcharts.com/themes/dark-unica.js');
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \Exception(sprintf('Unknown [%s] option: [%s:%s]',$type,$content,$option));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'highcharts-stock':
|
||||
switch ($content) {
|
||||
case 'js':
|
||||
// Base
|
||||
$js->put($type,'https://code.highcharts.com/stock/highstock.js');
|
||||
|
||||
foreach ($arguments as $option) {
|
||||
$key = $type.':'.$option;
|
||||
switch ($option) {
|
||||
case 'data':
|
||||
$js->put($key,'https://code.highcharts.com/stock/modules/data.js');
|
||||
break;
|
||||
|
||||
case 'export':
|
||||
$js->put($key,'https://code.highcharts.com/stock/modules/exporting.js');
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \Exception(sprintf('Unknown [%s] option: [%s:%s]',$type,$content,$option));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'summernote':
|
||||
switch ($content) {
|
||||
case 'css':
|
||||
// Base
|
||||
$css->put($type,'https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.18/summernote-bs4.css');
|
||||
|
||||
break;
|
||||
|
||||
case 'js':
|
||||
// Base
|
||||
$js->put($type,'https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.18/summernote-bs4.js');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'validation':
|
||||
switch ($content) {
|
||||
case 'js':
|
||||
// Base
|
||||
$js->put('validate','https://cdn.jsdelivr.net/npm/jquery-validation@1.19.3/dist/jquery.validate.min.js');
|
||||
$js->put('validate.additional','https://cdn.jsdelivr.net/npm/jquery-validation@1.19.3/dist/additional-methods.min.js');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \Exception(sprintf('Unknown Expression: [%s]',$expression));
|
||||
}
|
||||
|
||||
if ($js->count())
|
||||
$return = $return->merge($js->map(fn($item)=>sprintf('<script type="text/javascript" src="%s"></script>',$item)));
|
||||
|
||||
if ($css->count())
|
||||
$return = $return->merge($css->map(fn($item)=>sprintf('<link rel="stylesheet" href="%s">',$item)));
|
||||
|
||||
return $return->join('');
|
||||
}
|
||||
}
|
@ -2,8 +2,14 @@
|
||||
|
||||
namespace Leenooks\Providers;
|
||||
|
||||
use Illuminate\Foundation\AliasLoader;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Routing\Router;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Leenooks\Http\Middleware\GuestUser;
|
||||
use Leenooks\PageAssets;
|
||||
use Leenooks\Traits\SingleOrFail;
|
||||
|
||||
/**
|
||||
* Class GuestUserServiceProvider.
|
||||
@ -12,60 +18,77 @@ use Illuminate\Support\ServiceProvider;
|
||||
*/
|
||||
class LeenooksServiceProvider extends ServiceProvider
|
||||
{
|
||||
private $_path = '';
|
||||
use SingleOrFail;
|
||||
|
||||
/**
|
||||
* Bootstrap the application services.
|
||||
*
|
||||
* @param Router $router
|
||||
*/
|
||||
public function boot(Router $router)
|
||||
{
|
||||
$this->loadViewsFrom($this->_path.'/resources/themes/adminlte/views/', 'adminlte');
|
||||
$this->loadTranslationsFrom($this->_path.'/resources/themes/adminlte/lang/', 'adminlte_lang');
|
||||
private string $_path = '';
|
||||
|
||||
// Enable a recusive() collection function so that we can just arrives in config/*.php
|
||||
\Illuminate\Support\Collection::macro('recursive', function () {
|
||||
return $this->map(function ($value) {
|
||||
if (is_array($value) || is_object($value)) {
|
||||
return collect($value)->recursive();
|
||||
}
|
||||
/**
|
||||
* Bootstrap the application services.
|
||||
*
|
||||
* @param Router $router
|
||||
*/
|
||||
public function boot(Router $router)
|
||||
{
|
||||
self::bootSingleOrfail();
|
||||
|
||||
return $value;
|
||||
// Custom Aliases
|
||||
$loader = AliasLoader::getInstance();
|
||||
$loader->alias('PageAssets',PageAssets::class);
|
||||
|
||||
$router->pushMiddlewareToGroup('web',GuestUser::class);
|
||||
|
||||
$this->loadViewsFrom($this->_path.'/resources/themes/adminlte/views/', 'adminlte');
|
||||
$this->loadTranslationsFrom($this->_path.'/resources/themes/adminlte/lang/', 'adminlte_lang');
|
||||
|
||||
$this->loadViewsFrom($this->_path.'/resources/themes/architect/views/', 'architect');
|
||||
|
||||
$this->loadViewsFrom($this->_path.'/resources/themes/metronic/views/', 'metronic');
|
||||
|
||||
//Blade::componentNamespace('Leenooks\\Components','leenooks');
|
||||
Blade::anonymousComponentPath($this->_path.'/resources/components', 'leenooks');
|
||||
|
||||
// Add our page assets
|
||||
Blade::directive('pa',function($expression) {
|
||||
return sprintf('<?php PageAssets::asset(\'%s\') ?>',$expression);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
if (! $this->_path) {
|
||||
$this->_path = realpath(__DIR__.'/../../');
|
||||
}
|
||||
}
|
||||
// Enable a Collect::recursive() function
|
||||
Collection::macro('recursive', function () {
|
||||
return $this->map(function ($value) {
|
||||
if (is_array($value) || is_object($value)) {
|
||||
return collect($value)->recursive();
|
||||
}
|
||||
|
||||
/**
|
||||
* Views copy path.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function views()
|
||||
{
|
||||
return [
|
||||
$this->_path.'/resources/views/auth' =>
|
||||
resource_path('views/vendor/adminlte/auth'),
|
||||
$this->_path.'/resources/views/errors' =>
|
||||
resource_path('views/vendor/adminlte/errors'),
|
||||
$this->_path.'/resources/views/layouts' =>
|
||||
resource_path('views/vendor/adminlte/layouts'),
|
||||
$this->_path.'/resources/views/home.blade.php' =>
|
||||
resource_path('views/vendor/adminlte/home.blade.php'),
|
||||
$this->_path.'/resources/views/welcome.blade.php' =>
|
||||
resource_path('views/welcome.blade.php'),
|
||||
];
|
||||
}
|
||||
return $value;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
if (! $this->_path) {
|
||||
$this->_path = realpath(__DIR__.'/../../');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Views copy path.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function views()
|
||||
{
|
||||
return [
|
||||
$this->_path.'/resources/views/auth' => resource_path('views/vendor/adminlte/auth'),
|
||||
$this->_path.'/resources/views/errors' => resource_path('views/vendor/adminlte/errors'),
|
||||
$this->_path.'/resources/views/layouts' => resource_path('views/vendor/adminlte/layouts'),
|
||||
$this->_path.'/resources/views/home.blade.php' => resource_path('views/vendor/adminlte/home.blade.php'),
|
||||
$this->_path.'/resources/views/welcome.blade.php' => resource_path('views/welcome.blade.php'),
|
||||
];
|
||||
}
|
||||
}
|
114
src/Traits/CompositeKeys.php
Normal file
114
src/Traits/CompositeKeys.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
namespace Leenooks\Traits;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
/**
|
||||
* Trait CompositeKeys
|
||||
* Enable Models to have multiple primary keys
|
||||
*
|
||||
* Need to add to the Model...
|
||||
* public $incrementing = false;
|
||||
* protected $primaryKey = [<ARRAY_OF_KEYS>];
|
||||
*
|
||||
* @package Leenooks\Traits
|
||||
*/
|
||||
trait CompositeKeys {
|
||||
/**
|
||||
* Set the keys for a save update query.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
protected function setKeysForSaveQuery($query)
|
||||
{
|
||||
$keys = $this->getKeyName();
|
||||
|
||||
return !is_array($keys)
|
||||
? parent::setKeysForSaveQuery($query)
|
||||
: $query->where(function($q) use($keys) {
|
||||
foreach ($keys as $key){
|
||||
$q->where($key,$this->getAttribute($key));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the casts array.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCasts()
|
||||
{
|
||||
if ($this->getIncrementing())
|
||||
return array_merge([$this->getKeyName() => $this->getKeyType()],$this->casts);
|
||||
|
||||
return $this->casts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return false
|
||||
*/
|
||||
public function getIncrementing()
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value of the model's primary key.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
$fields = $this->getKeyName();
|
||||
$keys = [];
|
||||
|
||||
array_map(function($key) use(&$keys) {
|
||||
$keys[] = $this->getAttribute($key);
|
||||
}, $fields);
|
||||
|
||||
return $keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds model by primary keys
|
||||
*
|
||||
* @param array $ids
|
||||
* @return mixed
|
||||
*/
|
||||
public static function find(array $ids)
|
||||
{
|
||||
$modelClass = get_called_class();
|
||||
$model = new $modelClass();
|
||||
$keys = $model->primaryKey;
|
||||
|
||||
return $model->where(function($query) use($ids,$keys) {
|
||||
foreach ($keys as $idx => $key) {
|
||||
if (isset($ids[$idx]))
|
||||
$query->where($key, $ids[$idx]);
|
||||
else
|
||||
$query->whereNull($key);
|
||||
}
|
||||
})->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Find model by primary key or throws ModelNotFoundException
|
||||
*
|
||||
* @param array $ids
|
||||
* @return mixed
|
||||
*/
|
||||
public static function findOrFail(array $ids)
|
||||
{
|
||||
$modelClass = get_called_class();
|
||||
$model = new $modelClass();
|
||||
$record = $model->find($ids);
|
||||
|
||||
if (! $record)
|
||||
throw new ModelNotFoundException;
|
||||
|
||||
return $record;
|
||||
}
|
||||
}
|
15
src/Traits/ObjectIssetFix.php
Normal file
15
src/Traits/ObjectIssetFix.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Fix for when there is a call to pluck() for values resolved via __get()
|
||||
*/
|
||||
namespace Leenooks\Traits;
|
||||
|
||||
trait ObjectIssetFix
|
||||
{
|
||||
// Fix for a call to pluck('something') (which is resolved via __get()), but it returns false.
|
||||
public function __isset($key)
|
||||
{
|
||||
return (bool)$this->{$key};
|
||||
}
|
||||
}
|
17
src/Traits/ScopeActive.php
Normal file
17
src/Traits/ScopeActive.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Add a ScopeActive to an Eloquent Model
|
||||
*/
|
||||
namespace Leenooks\Traits;
|
||||
|
||||
trait ScopeActive
|
||||
{
|
||||
/**
|
||||
* Only query active records
|
||||
*/
|
||||
public function scopeActive($query)
|
||||
{
|
||||
return $query->where($this->getTable().'.active',TRUE);
|
||||
}
|
||||
}
|
45
src/Traits/SingleOrFail.php
Normal file
45
src/Traits/SingleOrFail.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Extend Eloquent so that it includes singleOrFail calls to test that a query returns only 1 record
|
||||
*/
|
||||
namespace Leenooks\Traits;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
|
||||
trait SingleOrFail
|
||||
{
|
||||
public static function bootSingleOrfail(): void
|
||||
{
|
||||
// When a query should return 1 object, or FAIL if it doesnt
|
||||
Builder::macro('singleOrFail',function () {
|
||||
$result = $this->get();
|
||||
|
||||
if (($x=$result->count()) == 1)
|
||||
return $result->first();
|
||||
|
||||
throw new ModelNotFoundException(sprintf('Query brings back %d record(s) called for singleOrFail()',$x));
|
||||
});
|
||||
|
||||
// When a query should return 1 object, or NULL if it doesnt
|
||||
Builder::macro('single',function () {
|
||||
$result = $this->get();
|
||||
|
||||
if ($result->count() == 1)
|
||||
return $result->first();
|
||||
|
||||
return NULL;
|
||||
});
|
||||
|
||||
// When a query should return 1 object, or setup to create a new object
|
||||
Builder::macro('singleOrNew',function (array $args=[]) {
|
||||
$result = $this->where($args)->get();
|
||||
|
||||
if ($result->count() == 1)
|
||||
return $result->first();
|
||||
|
||||
return $this->newModelInstance($args);
|
||||
});
|
||||
}
|
||||
}
|
@ -7,15 +7,28 @@ namespace Leenooks\Traits;
|
||||
|
||||
use Session;
|
||||
|
||||
use App\Models\User;
|
||||
|
||||
trait UserSwitch
|
||||
{
|
||||
public function GetIsAdminAttribute()
|
||||
{
|
||||
return isset($this->admin) ? $this->admin : FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return if this is a switched user
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getSwitchedAttribute()
|
||||
{
|
||||
return Session::get('orig_user');
|
||||
}
|
||||
|
||||
/**
|
||||
* If the user record has an admin attribute, we'll return that
|
||||
*
|
||||
* @param User|null $user
|
||||
* @return false|mixed
|
||||
*/
|
||||
public function isAdmin(User $user=NULL)
|
||||
{
|
||||
return isset($this->admin) ? $this->admin : FALSE;
|
||||
}
|
||||
}
|
@ -13,3 +13,17 @@ if (! function_exists('is_json')) {
|
||||
return (json_last_error() == JSON_ERROR_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
// Inverse of array_dot()
|
||||
if (! function_exists('array_undot')) {
|
||||
function array_undot($dotNotationArray)
|
||||
{
|
||||
$array = [];
|
||||
|
||||
foreach ($dotNotationArray as $key => $value) {
|
||||
\Illuminate\Support\Arr::set($array, $key, $value);
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user