480 lines
19 KiB
PHP
480 lines
19 KiB
PHP
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>{{ Lang::get('laravel-filemanager::lfm.title-page') }}</title>
|
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
|
<!--<link rel="stylesheet" href="/FaveoHELPDESK+KBenvatoLite/vendor/laravel-filemanager/css/cropper.min.css">-->
|
|
<link rel="stylesheet" href="{{asset('vendor/laravel-filemanager/css/cropper.min.css')}}">
|
|
<!--<link rel="stylesheet" href="/FaveoHELPDESK+KBenvatoLite/vendor/laravel-filemanager/css/lfm.css">-->
|
|
<link rel="stylesheet" href="{{asset('vendor/laravel-filemanager/css/lfm.css')}}">
|
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.css">
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="row fill">
|
|
<div class="panel panel-primary fill">
|
|
<div class="panel-heading">
|
|
<h3 class="panel-title">{{ Lang::get('laravel-filemanager::lfm.title-panel') }}</h3>
|
|
</div>
|
|
<div class="panel-body fill">
|
|
<div class="row fill">
|
|
<div class="wrapper fill">
|
|
<div class="col-md-2 col-lg-2 col-sm-2 col-xs-2 left-nav fill" id="lfm-leftcol">
|
|
<div id="tree1">
|
|
</div>
|
|
</div>
|
|
<div class="col-md-10 col-lg-10 col-sm-10 col-xs-10 right-nav" id="right-nav">
|
|
<nav class="navbar navbar-default">
|
|
<div class="container-fluid">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
|
<span class="sr-only">Toggle navigation</span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
</div>
|
|
<div class="collapse navbar-collapse">
|
|
<ul class="nav navbar-nav" id="nav-buttons">
|
|
<li>
|
|
<a href="#!" id="upload" data-toggle="modal" data-target="#uploadModal"><i class="fa fa-upload"></i> {{ Lang::get('laravel-filemanager::lfm.nav-upload') }}</a>
|
|
</li>
|
|
<li>
|
|
<a href="#!" class="thumbnail-display" id="thumbnail-display"><i class="fa fa-picture-o"></i> {{ Lang::get('laravel-filemanager::lfm.nav-thumbnails') }}</a>
|
|
</li>
|
|
<li>
|
|
<a href="#!" class="list-display" id="list-display"><i class="fa fa-list"></i> {{ Lang::get('laravel-filemanager::lfm.nav-list') }}</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
@if ($errors->any())
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="alert alert-danger" role="alert">
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
<ul>
|
|
@foreach($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div id="content" class="row fill">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aia-hidden="true">×</span></button>
|
|
<h4 class="modal-title" id="myModalLabel">{{ Lang::get('laravel-filemanager::lfm.title-upload') }}</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<form action="{{url('/laravel-filemanager/upload')}}" role='form' id='uploadForm' name='uploadForm' method='post' enctype='multipart/form-data'>
|
|
<div class="form-group" id="attachment">
|
|
<label for='upload' class='control-label'>{{ Lang::get('laravel-filemanager::lfm.message-choose') }}</label>
|
|
<div class="controls">
|
|
<div class="input-group" style="width: 100%">
|
|
<input type="file" id="upload" name="upload">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<input type='hidden' name='working_dir' id='working_dir' value='{{$working_dir}}'>
|
|
<input type='hidden' name='show_list' id='show_list' value='0'>
|
|
<input type='hidden' name='_token' value='{{csrf_token()}}'>
|
|
</form>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">{{ Lang::get('laravel-filemanager::lfm.btn-close') }}</button>
|
|
<button type="button" class="btn btn-primary" id="upload-btn">{{ Lang::get('laravel-filemanager::lfm.btn-upload') }}</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="fileViewModal" tabindex="-1" role="dialog" aria-labelledby="fileLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
<h4 class="modal-title" id="fileLabel">{{ Lang::get('laravel-filemanager::lfm.title-view') }}</h4>
|
|
</div>
|
|
<div class="modal-body" id="fileview_body">
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">{{ Lang::get('laravel-filemanager::lfm.btn-close') }}</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
|
|
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
|
|
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.3.0/bootbox.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
|
|
<!--<script src="/FaveoHELPDESK+KBenvatoLite/vendor/laravel-filemanager/js/cropper.min.js"></script>-->
|
|
<script src="{{asset('vendor/laravel-filemanager/js/cropper.min.js')}}"></script>
|
|
|
|
<!--<script src="/FaveoHELPDESK+KBenvatoLite/vendor/laravel-filemanager/js/jquery.form.min.js"></script>-->
|
|
<script src="{{asset('vendor/laravel-filemanager/js/jquery.form.min.js')}}"></script>
|
|
<script>
|
|
var shared_folder = "{{ Config::get('lfm.shared_folder_name') }}";
|
|
var image_url = "{{ Config::get('lfm.images_url') }}";
|
|
var file_url = "{{ Config::get('lfm.files_url') }}";
|
|
|
|
$(document).ready(function () {
|
|
bootbox.setDefaults({locale:"{{ Lang::get('laravel-filemanager::lfm.locale-bootbox') }}"});
|
|
// load folders
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/folders')}}',
|
|
|
|
data: 'working_dir={{ $working_dir }}',
|
|
cache: false
|
|
}).done(function (data) {
|
|
$('#tree1').html(data);
|
|
});
|
|
loadItems();
|
|
refreshFolders();
|
|
});
|
|
|
|
$('#upload-btn').click(function () {
|
|
var options = {
|
|
beforeSubmit: showRequest,
|
|
success: showResponse
|
|
};
|
|
|
|
function showRequest(formData, jqForm, options) {
|
|
$('#upload-btn').html('<i class="fa fa-refresh fa-spin"></i> {{ Lang::get("laravel-filemanager::lfm.btn-uploading") }}');
|
|
return true;
|
|
}
|
|
|
|
function showResponse(responseText, statusText, xhr, $form) {
|
|
$('#uploadModal').modal('hide');
|
|
$('#upload-btn').html('{{ Lang::get("laravel-filemanager::lfm.btn-upload") }}');
|
|
if (responseText != 'OK'){
|
|
notify(responseText);
|
|
}
|
|
$('#upload').val('');
|
|
loadItems();
|
|
}
|
|
|
|
$('#uploadForm').ajaxSubmit(options);
|
|
return false;
|
|
});
|
|
|
|
function clickRoot() {
|
|
$('.folder-item').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_shared > i').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_root > i').addClass('fa-folder-open').removeClass('fa-folder');
|
|
$('#working_dir').val("{{ (Config::get('lfm.allow_multi_user')) ? Auth::user()->user_field : '/'}}");
|
|
loadItems();
|
|
}
|
|
|
|
function clickShared() {
|
|
$('.folder-item').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_root > i').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_shared > i').addClass('fa-folder-open').removeClass('fa-folder');
|
|
$('#working_dir').val(shared_folder);
|
|
loadItems();
|
|
}
|
|
|
|
function clickFolder(x, y) {
|
|
$('.folder-item').addClass('fa-folder');
|
|
$('#folder_shared > i').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_root > i').addClass('fa-folder-open').removeClass('fa-folder');
|
|
$('.folder-item').not('#folder_root > i').removeClass('fa-folder-open');
|
|
if (y == 0) {
|
|
if ($('#' + x + ' > i').hasClass('fa-folder')) {
|
|
$('#' + x + ' > i').not('#folder_root > i').removeClass('fa-folder');
|
|
$('#' + x + ' > i').not('#folder_root > i').addClass('fa-folder-open');
|
|
} else {
|
|
$('#' + x + ' > i').removeClass('fa-folder-open');
|
|
$('#' + x + ' > i').addClass('fa-folder');
|
|
}
|
|
}
|
|
$('#working_dir').val("{{ (Config::get('lfm.allow_multi_user')) ? Auth::user()->user_field.'/' : '' }}" + $('#' + x).data('id'));
|
|
loadItems();
|
|
}
|
|
|
|
function clickSharedFolder(x, y) {
|
|
$('.folder-item').addClass('fa-folder');
|
|
$('#folder_root > i').removeClass('fa-folder-open').addClass('fa-folder');
|
|
$('#folder_shared > i').addClass('fa-folder-open').removeClass('fa-folder');
|
|
$('.folder-item').not('#folder_shared > i').removeClass('fa-folder-open');
|
|
if (y == 0) {
|
|
if ($('#' + x + ' > i').hasClass('fa-folder')) {
|
|
$('#' + x + ' > i').not('#folder_shared > i').removeClass('fa-folder');
|
|
$('#' + x + ' > i').not('#folder_shared > i').addClass('fa-folder-open');
|
|
} else {
|
|
$('#' + x + ' > i').removeClass('fa-folder-open');
|
|
$('#' + x + ' > i').addClass('fa-folder');
|
|
}
|
|
}
|
|
$('#working_dir').val(shared_folder + '/' + $('#' + x).data('id'));
|
|
loadItems();
|
|
}
|
|
|
|
function download(x) {
|
|
location.href = '{{url('/laravel-filemanager/download?')}}'
|
|
+ 'working_dir='
|
|
+ $('#working_dir').val()
|
|
+ '&file='
|
|
+ x;
|
|
}
|
|
|
|
function loadItems() {
|
|
var type = 'Images';
|
|
|
|
@if ((Session::has('lfm_type')) && (Session::get('lfm_type') == 'Files'))
|
|
type = 'Files';
|
|
@endif
|
|
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'html',
|
|
url: '{{url('/laravel-filemanager/jsonitems')}}',
|
|
|
|
data: {
|
|
working_dir: $('#working_dir').val(),
|
|
show_list: $('#show_list').val(),
|
|
type: type
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
$('#content').html(data);
|
|
$('#nav-buttons').removeClass('hidden');
|
|
$('.dropdown-toggle').dropdown();
|
|
refreshFolders();
|
|
});
|
|
}
|
|
|
|
function trash(x) {
|
|
bootbox.confirm("{{ Lang::get('laravel-filemanager::lfm.message-delete') }}", function (result) {
|
|
if (result == true) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/delete')}}',
|
|
|
|
data: {
|
|
working_dir: $('#working_dir').val(),
|
|
items: x
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
if (data != 'OK') {
|
|
notify(data);
|
|
} else {
|
|
if ($('#working_dir').val() == '{{ Auth::user()->user_field }}') {
|
|
loadFolders();
|
|
}
|
|
loadItems();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function loadFolders() {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'html',
|
|
url: '{{url('/laravel-filemanager/folders')}}',
|
|
|
|
data: {
|
|
working_dir: $('#working_dir').val(),
|
|
show_list: $('#show_list').val()
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
$('#tree1').html(data);
|
|
});
|
|
}
|
|
|
|
function refreshFolders() {
|
|
var wd = $('#working_dir').val();
|
|
if (wd != '/') {
|
|
try {
|
|
$('#' + wd + '-folder').removeClass('fa-folder');
|
|
$('#' + wd + '-folder').addClass('fa-folder-open');
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
|
|
function cropImage(x) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/crop')}}',
|
|
|
|
data: {
|
|
img: x,
|
|
working_dir: $('#working_dir').val()
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
$('#nav-buttons').addClass('hidden');
|
|
$('#content').html(data);
|
|
});
|
|
}
|
|
|
|
function notImp() {
|
|
bootbox.alert('Not yet implemented!');;
|
|
}
|
|
|
|
$('body').on('click', '#add-folder', function () {
|
|
bootbox.prompt("{{ Lang::get('laravel-filemanager::lfm.message-name') }}", function (result) {
|
|
if (result === null) {
|
|
} else {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/newfolder')}}',
|
|
|
|
data: {
|
|
name: result,
|
|
working_dir: $('#working_dir').val()
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
if (data == 'OK') {
|
|
loadFolders();
|
|
loadItems();
|
|
refreshFolders();
|
|
} else {
|
|
notify(data);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
function useFile(file) {
|
|
var path = $('#working_dir').val();
|
|
|
|
var item_url = image_url;
|
|
|
|
@if ((Session::has('lfm_type')) && (Session::get('lfm_type') != "Images"))
|
|
item_url = file_url;
|
|
@endif
|
|
|
|
if (path != '/') {
|
|
item_url = item_url + path + '/';
|
|
}
|
|
|
|
function getUrlParam(paramName) {
|
|
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
|
|
var match = window.location.search.match(reParam);
|
|
return ( match && match.length > 1 ) ? match[1] : null;
|
|
}
|
|
|
|
var funcNum = getUrlParam('CKEditorFuncNum');
|
|
|
|
window.opener.CKEDITOR.tools.callFunction(funcNum, path + '/' + file);
|
|
|
|
window.opener.CKEDITOR.tools.callFunction(funcNum, item_url + file);
|
|
|
|
window.close();
|
|
}
|
|
|
|
function rename(x) {
|
|
bootbox.prompt({
|
|
title: "{{ Lang::get('laravel-filemanager::lfm.message-rename') }}",
|
|
value: x,
|
|
callback: function (result) {
|
|
if (result !== null) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/rename')}}',
|
|
|
|
data: {
|
|
file: x,
|
|
working_dir: $('#working_dir').val(),
|
|
new_name: result
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
if (data == 'OK') {
|
|
loadItems();
|
|
loadFolders();
|
|
} else {
|
|
notify(data);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function notify(x) {
|
|
bootbox.alert(x);
|
|
}
|
|
|
|
function resizeImage(x) {
|
|
$.ajax({
|
|
type: 'GET',
|
|
dataType: 'text',
|
|
url: '{{url('/laravel-filemanager/resize')}}',
|
|
|
|
data: {
|
|
img: x,
|
|
working_dir: $('#working_dir').val()
|
|
},
|
|
cache: false
|
|
}).done(function (data) {
|
|
$('#nav-buttons').addClass('hidden');
|
|
$('#content').html(data);
|
|
});
|
|
}
|
|
|
|
$('#thumbnail-display').click(function () {
|
|
$('#show_list').val(0);
|
|
loadItems();
|
|
});
|
|
|
|
$('#list-display').click(function () {
|
|
$('#show_list').val(1);
|
|
loadItems();
|
|
});
|
|
|
|
function fileView(x) {
|
|
var rnd = makeRandom();
|
|
var img_src = image_url + $('#working_dir').val() + '/' + x;
|
|
var img = "<img class='img img-responsive center-block' src='" + img_src + "'>";
|
|
$('#fileview_body').html(img);
|
|
$('#fileViewModal').modal();
|
|
}
|
|
|
|
function makeRandom() {
|
|
var text = '';
|
|
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
|
|
for( var i=0; i < 20; i++ )
|
|
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
return text;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|