Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 182 additions & 35 deletions Controller/ManagerController.php

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public function getConfigTreeBuilder(): TreeBuilder {
->children()
->scalarNode('dir')->end()
->enumNode('type')->values(['file', 'image', 'media'])->end()
->booleanNode('remember_last_path')->defaultValue(true)->end()
->booleanNode('tree')->end()
->booleanNode('show_file_count')->defaultValue(true)->end()
->scalarNode('root_name')->defaultValue(null)->end()
Expand Down
2 changes: 2 additions & 0 deletions Event/FileManagerEvents.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ final class FileManagerEvents {
public const PRE_DELETE_FOLDER = ' file_manager.pre_delete_folder';
/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
public const POST_DELETE_FOLDER = 'file_manager.post_delete_folder';
/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
public const RENAME_FOLDER = 'file_manager.post_rename_folder';

/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
public const POST_DIRECTORY_FILTER_CONFIGURATION = 'file_manager.post_directory_filter_configuration';
Expand Down
2 changes: 2 additions & 0 deletions Helpers/FileManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Symfony\Component\EventDispatcher\GenericEvent;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\Routing\RouterInterface;

Expand Down Expand Up @@ -75,6 +76,7 @@ public function getParent(): ?string
$queryParentParameters['route'] = \dirname($this->getRoute());
} else {
unset($queryParentParameters['route']);
// $queryParentParameters['route'] = '/';
}

$parentRoute = $this->router->generate('file_manager', $queryParentParameters);
Expand Down
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,19 @@ FileManagerBundle

FileManager is a simple Multilingual File Manager Bundle for Symfony

<img src="https://raw.githubusercontent.com/artgris/FileManagerBundle/master/Resources/doc/images/filemanager-promo.png" alt="Symfony Filemanager created with FileManagerBundle" align="center" />
**Main Window**
![filemanager](https://github.com/user-attachments/assets/b1be19f7-d66f-44f3-958c-e6c5063b7dc4)
**Tree Context Menu**
![tree_context_menu](https://github.com/user-attachments/assets/794352ab-512e-4ef8-a148-f5bbde85e06d)

* [Documentation](#documentation)
* [Installation](#installation)
* [Creating Your First File Manager](#creating-your-first-file-manager)


**Features**
* Upload, delete (multiple), rename, download and sort files
* Create, rename and delete folders
* Upload, delete (_multiple_), rename, download and sort files
* Create, rename, Filter (_search_) and delete folders (_on tree contextmenu_)
* Manage **Public** and **Private** folders
* File Names **Sanitizer** / **Slugger** ([Look Documentation](Resources/doc/book/1-basic-configuration.md))
* **Multilingual** (English, French, Catalan, German, Spanish, Dutch, Portuguese, Romanian, Russian, Turkish)
Expand Down
Binary file added Resources/doc/book/filemanager.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/doc/book/tree_context_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion Resources/doc/tutorials/input-button.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ artgris_file_manager:
</div>
<div class="modal-body">
<iframe id="myframe" src="{{ path('file_manager', {module:1, conf:'button'}) }}" width="100%" height="500"
frameborder="0"></iframe>
frameborder="0" scrolling="no"></iframe>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
Expand Down
2 changes: 1 addition & 1 deletion Resources/doc/tutorials/integrate-tinymce.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ TinyMCE v5
type: 'panel',
items: [{
type: 'htmlpanel',
html: windowManagerCSS + '<iframe src="' + cmsURL + '" frameborder="0" style="width:100%; height:100%"></iframe>'
html: windowManagerCSS + '<iframe src="' + cmsURL + '" frameborder="0" style="width:100%; height:100%" scrolling="no"></iframe>'
}]
},
buttons: [],
Expand Down
118 changes: 113 additions & 5 deletions Resources/public/css/manager.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@ body {

.thead-default th {
color: #464a4c;
background-color: #eceeef;
background-color: #f7f8f9;
border-bottom: 0 !important;
font-size: 12px !important;
position: sticky;
top: 0;
z-index: 1;
}

.bar {
Expand All @@ -23,7 +28,7 @@ body {
}

.top-bar {
padding: 10px 0;
padding: 7px 0;
margin: 3px 0;
}

Expand Down Expand Up @@ -52,14 +57,23 @@ body {
}

.label {
font-size: 70% !important;
/*font-size: 70% !important;*/
line-height: 24px !important;
vertical-align: middle;
/*vertical-align: middle;*/
}

.jstree {
background-color: #f9f9f9;
padding: 10px 5px;
padding: 5px 5px;
font-size: 12px;
height: 470px;
padding-bottom: 25px;
overflow: hidden;
}

.jstree:hover{
overflow-y: scroll;
scrollbar-width: thin;
}

.thumbnail {
Expand Down Expand Up @@ -148,3 +162,97 @@ button i {

}

.jstree-default .jstree-striped{
background: none;
}

.list-blk, .thumbnail-blk{
font-size: 13px !important;
overflow-y:scroll;
scrollbar-width: thin;
height:500px;
}

div.select-all{
background-color: #f7f8f9;
position: sticky !important;
z-index: 1 !important;
top: 10px !important;
box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, rgba(0, 0, 0, 0.3) 0px 1px 3px -1px;
padding-top: 3px;
}

.filemanager-sort-icon{
padding-left: 5px;
}

.jstree-default .jstree-search {
font-style: italic;
color: #CD5C5C;
font-weight: normal;
}



/* Context Menu Theme */

.vakata-context,
.vakata-context ul {
padding:.5rem 0;
min-width:150px;
font-size:1.3rem;
background: #ffffff;
box-shadow:0px 0px 50px 0px rgba(82, 63, 105, 0.15);
border:0;
border-radius:.475rem;
}

.vakata-context li,
.vakata-context ul li {
padding:0;
border:0
}
.vakata-context li a,
.vakata-context ul li a {
padding:0 1.2rem;
border:0
}
.vakata-context li a i,
.vakata-context ul li a i {
display:none
}

.vakata-context li a ins,
.vakata-context li a span,
.vakata-context ul li a ins,
.vakata-context ul li a span {
display:none;
border:0!important
}
.vakata-context .vakata-context-hover>a,
.vakata-context li a:hover,
.vakata-context ul .vakata-context-hover>a,
.vakata-context ul li a:hover {
margin:0;
background-color:#F9F9F9;
color:#1B84FF;
box-shadow:none
}
.vakata-context .vakata-context-hover>a .ins,
.vakata-context .vakata-context-hover>a .span,
.vakata-context li a:hover .ins,
.vakata-context li a:hover .span,
.vakata-context ul .vakata-context-hover>a .ins,
.vakata-context ul .vakata-context-hover>a .span,
.vakata-context ul li a:hover .ins,
.vakata-context ul li a:hover .span {
border:0!important
}
.vakata-context .vakata-context-separator a,
.vakata-context-rtl .vakata-context-separator a {
margin:0;
border:0;
height:2px;
background-color:#F1F1F4;
}

Loading
Loading