134 lines
6.4 KiB
PHP
134 lines
6.4 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ app()->getLocale() }}">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>elFinder 2.0</title>
|
|
|
|
<!-- jQuery and jQuery UI (REQUIRED) -->
|
|
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" />
|
|
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
|
|
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
|
|
|
|
<!-- elFinder CSS (REQUIRED) - CDN -->
|
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/elfinder/2.1.65/css/elfinder.min.css">
|
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/elfinder/2.1.65/css/theme.css">
|
|
<!-- elFinder JS (REQUIRED) - CDN -->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/elfinder/2.1.65/js/elfinder.min.js"></script>
|
|
<!-- elFinder Edit Plugin - CDN -->
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/elfinder/2.1.65/js/extras/editors.default.min.js"></script>
|
|
|
|
@if($locale)
|
|
<!-- elFinder translation (OPTIONAL) -->
|
|
<script src="{{ asset($dir."/js/i18n/elfinder.$locale.js") }}"></script>
|
|
@endif
|
|
<!-- elFinder initialization (REQUIRED) -->
|
|
<script type="text/javascript" charset="utf-8">
|
|
// Documentation for client options:
|
|
// https://github.com/Studio-42/elFinder/wiki/Client-configuration-options
|
|
$().ready(function() {
|
|
// Check if user is admin from parent window
|
|
var isAdmin = false;
|
|
try {
|
|
if (window.parent && window.parent.document) {
|
|
var iframe = window.parent.document.getElementById('elfinder-iframe');
|
|
if (iframe) {
|
|
var permissionLevel = iframe.getAttribute('data-permission-level');
|
|
isAdmin = (permissionLevel === 'full_control');
|
|
}
|
|
}
|
|
} catch(e) {
|
|
console.log('Could not check admin status:', e);
|
|
}
|
|
|
|
var elfinderInstance = $('#elfinder').elfinder({
|
|
// set your elFinder options here
|
|
@if($locale)
|
|
lang: '{{ $locale }}', // locale
|
|
@endif
|
|
customData: {
|
|
_token: '{{ csrf_token() }}'
|
|
},
|
|
url : '{{ route("elfinder.connector") }}', // connector URL
|
|
requestType : 'post', // Performance optimization for large folders
|
|
soundPath: '{{ asset($dir.'/sounds') }}',
|
|
height: $(window).height() - 20,
|
|
checkSubfolders: false,
|
|
// Enable edit command and plugin
|
|
commands: ['open', 'reload', 'home', 'up', 'back', 'forward', 'getfile', 'quicklook', 'download', 'rm', 'duplicate', 'rename', 'mkdir', 'mkfile', 'upload', 'copy', 'cut', 'paste', 'view', 'resize', 'sort', 'search', 'help', 'info'],
|
|
plugins: [],
|
|
// Force edit to be available
|
|
ui: ['toolbar', 'tree', 'path', 'stat'],
|
|
toolbar: isAdmin ? [
|
|
// Admin toolbar - full access
|
|
['reload'],
|
|
['home', 'up'],
|
|
['mkdir', 'mkfile', 'upload'],
|
|
['open', 'download', 'getfile'],
|
|
['info'],
|
|
['quicklook'],
|
|
['copy', 'cut', 'paste'],
|
|
['rm'],
|
|
['duplicate', 'rename', 'resize', 'rotate'],
|
|
['extract', 'archive'],
|
|
['search'],
|
|
['view', 'sort']
|
|
] : [
|
|
// Regular user toolbar
|
|
['reload'],
|
|
['home', 'up'],
|
|
['mkdir', 'mkfile', 'upload'],
|
|
['open', 'download', 'getfile'],
|
|
['info'],
|
|
['quicklook'],
|
|
['copy', 'cut', 'paste'],
|
|
['rm'],
|
|
['duplicate', 'rename', 'resize', 'rotate'],
|
|
['extract', 'archive'],
|
|
['search'],
|
|
['view', 'sort']
|
|
]
|
|
}).elfinder('instance');
|
|
|
|
// Admin override - force full permissions display
|
|
if (isAdmin) {
|
|
console.log('Admin user detected - applying full permissions override');
|
|
|
|
// Override permission display for admin users
|
|
elfinderInstance.bind('load', function() {
|
|
// Force all items to show full permissions for admin
|
|
setTimeout(function() {
|
|
$('.elfinder-cwd-view .elfinder-cwd-file').each(function() {
|
|
var $this = $(this);
|
|
var $perm = $this.find('.elfinder-cwd-filename .elfinder-cwd-perms');
|
|
if ($perm.length && $perm.text().indexOf('read') !== -1) {
|
|
$perm.text('read and write').removeClass('elfinder-perms-read').addClass('elfinder-perms-write');
|
|
}
|
|
});
|
|
}, 1000);
|
|
});
|
|
}
|
|
|
|
// Edit button removed - using standard Elfinder functionality
|
|
|
|
|
|
var resizeTimer = null;
|
|
$(window).resize(function() {
|
|
resizeTimer && clearTimeout(resizeTimer);
|
|
resizeTimer = setTimeout(function() {
|
|
var h = parseInt($(window).height()) - 20;
|
|
if (h != parseInt($('#elfinder').height())) {
|
|
elfinderInstance.resize('100%', h);
|
|
}
|
|
}, 200);
|
|
});
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- Element where elFinder will be created (REQUIRED) -->
|
|
<div id="elfinder"></div>
|
|
|
|
</body>
|
|
</html>
|