Add multiple file/directory deletion in the filemanager (#544)

* Add deletion of multiple selected files
* Adjust success/failure text to properly represent multiple files
* Actually update the minimized versions with the new code
* Use let instead of var and seperate items into seperate code tags
* Deleting the selected items now supports the new endpoint
* Replaced the select buttons with checkboxes
* Selections is now handled by find all the selected checkboxes
* Add a warning if no files/folders are selected when pressing delete
* Add a select all files/folders checkbox
* Move mass delete button into a mass actions dropdown
* Move style to css file
* Actually update the minimized files (again)
* Mass actions button is now disabled by default
* Clicking on a row selects the checkbox and enables the actions button
* Fix clicking anything else but the row or checkbox triggering selection
This commit is contained in:
OrangeJuiced 2017-07-21 02:10:01 +03:00 committed by Dane Everitt
parent 0def41740a
commit e64eb4901e
7 changed files with 203 additions and 13 deletions

View file

@ -21,6 +21,14 @@
<div class="box-header with-border">
<h3 class="box-title">/home/container{{ $directory['header'] }}</h3>
<div class="box-tools pull-right">
<div class="btn-group">
<button type="button" id="mass_actions" class="btn btn-sm btn-info dropdown-toggle disabled" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@lang('server.files.mass_actions') <span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-massactions">
<li><a href="#" id="selective-deletion" data-action="selective-deletion">@lang('server.files.delete') <i class="fa fa-fw fa-trash-o"></i></a></li>
</ul>
</div>
<button class="btn btn-sm btn-success btn-icon" data-action="add-folder">
<i class="fa fa-fw fa-folder-open-o"></i>
</button>
@ -38,13 +46,13 @@
<table class="table table-hover" id="file_listing" data-current-dir="{{ $directory['header'] }}">
<thead>
<tr>
<th style="width:2%;" class="middle text-center">
<i class="fa fa-refresh muted muted-hover use-pointer" data-action="reload-files" style="font-size:14px;"></i>
<th style="width:4%;" class="middle">
<input type="checkbox" class="select-all-files" data-action="selectAll"><i class="fa fa-refresh muted muted-hover use-pointer" data-action="reload-files" style="font-size:14px;"></i>
</th>
<th style="width:55%">@lang('server.files.file_name')</th>
<th style="width:15%" class="hidden-xs">@lang('server.files.size')</th>
<th style="width:20%" class="hidden-xs">@lang('server.files.last_modified')</th>
<th style="width:8%"></th>
<th style="width:6%"></th>
</tr>
</thead>
<tbody id="append_files_to">
@ -70,7 +78,7 @@
@endif
@foreach ($folders as $folder)
<tr data-type="folder">
<td data-identifier="type" class="middle"><i class="fa fa-folder" style="margin-left: 0.859px;"></i></td>
<td data-identifier="type" class="middle"><input type="checkbox" class="select-folder" data-action="addSelection"><i class="fa fa-folder" style="margin-left: 0.859px;"></i></td>
<td data-identifier="name" data-name="{{ rawurlencode($folder['entry']) }}" data-path="@if($folder['directory'] !== ''){{ rawurlencode($folder['directory']) }}@endif/">
<a href="/server/{{ $server->uuidShort }}/files" data-action="directory-view">{{ $folder['entry'] }}</a>
</td>
@ -85,12 +93,12 @@
{{ $carbon->diffForHumans() }}
@endif
</td>
<td><button class="btn btn-xxs btn-default disable-menu-hide" data-action="toggleMenu" style="padding:2px 6px 0px;"><i class="fa fa-ellipsis-h disable-menu-hide"></i></button></td>
<td><button class="btn btn-xxs btn-default disable-menu-hide" data-action="toggleMenu" style="padding:2px 6px 0px;"><i class="fa fa-ellipsis-h disable-menu-hide"></i></td>
</tr>
@endforeach
@foreach ($files as $file)
<tr data-type="file" data-mime="{{ $file['mime'] }}">
<td data-identifier="type" class="middle">
<td data-identifier="type" class="middle"><input type="checkbox" class="select-file" data-action="addSelection">
{{-- oh boy --}}
@if(in_array($file['mime'], [
'application/x-7z-compressed',
@ -162,7 +170,7 @@
{{ $carbon->diffForHumans() }}
@endif
</td>
<td><button class="btn btn-xxs btn-default disable-menu-hide" data-action="toggleMenu" style="padding:2px 6px 0px;"><i class="fa fa-ellipsis-h disable-menu-hide"></i></button></td>
<td><button class="btn btn-xxs btn-default disable-menu-hide" data-action="toggleMenu" style="padding:2px 6px 0px;"><i class="fa fa-ellipsis-h disable-menu-hide"></i></td>
</tr>
@endforeach
</tbody>