Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit fe1779d

Browse files
committed
v1.3.0
1 parent 7a08bf0 commit fe1779d

28 files changed

+1359
-1120
lines changed

README.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,15 @@
8484

8585
- events
8686

87-
| event-name | description |
88-
|------------|-----------------------------------|
89-
| modal-show | do something when modal is showen |
90-
| modal-hide | do something when modal is hidden |
87+
| event-name | description |
88+
|--------------------|------------------------------|
89+
| modal-show | when modal is showen |
90+
| modal-hide | when modal is hidden |
91+
| no-files-show | when no files msg is showen |
92+
| no-files-hide | when no files msg is hidden |
93+
| loading-files-show | when loading files is hidden |
94+
| loading-files-hide | when loading files is hidden |
95+
| ajax-error-show | when ajax call fails |
9196

9297
## Config
9398
**config/mediaManager.php**
@@ -134,6 +139,11 @@ return [
134139
* display file last modification time as
135140
*/
136141
'last_modified_format' => 'toDateString',
142+
143+
/**
144+
* hide file extension in files list
145+
*/
146+
'hide_ext' => true
137147
];
138148
```
139149

@@ -149,9 +159,9 @@ return [
149159
- install dependencies
150160

151161
```bash
152-
yarn add vue dropzone keycode vue-tippy vue2-filters vue-lightbox vuemit
162+
yarn add vue dropzone keycode vue-tippy vue2-filters vuemit
153163
# or
154-
npm install vue dropzone keycode vue-tippy vue2-filters vue-lightbox vuemit
164+
npm install vue dropzone keycode vue-tippy vue2-filters vuemit
155165
```
156166

157167
- for styling we use ***bulma***

composer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
"require": {
1919
"php" : "~7.0",
2020
"illuminate/support": "^5.4",
21-
"tightenco/ziggy": "^0.4",
2221
"ctf0/package-changelog": "^1.0"
2322
},
2423
"autoload": {

logs/v1.2.3.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

logs/v1.3.0.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
- remove ziggy
2+
- remove vue-lightbox
3+
- remove bs-modal
4+
- add new option to config
5+
- add events
6+
- add new animation for ajax call fail
7+
- add new key into lang for “ajax_error”
8+
- optimize bm animation
9+
- show folder content size instead of NaN
10+
- auto-scroll to first item when adding new folder
11+
- fix rename issue with folder vs file
12+
- fix file size conversion
13+
- update folder size on file move
14+
- update assets
15+
- update view
16+
- update rdme

src/Controllers/MediaController.php

Lines changed: 50 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
namespace ctf0\MediaManager\Controllers;
44

55
use Exception;
6-
use Carbon\Carbon;
76
use Illuminate\Http\Request;
87
use App\Http\Controllers\Controller;
98

109
class MediaController extends Controller
1110
{
11+
use OpsTrait;
12+
1213
protected $fileSystem;
1314
protected $storageDisk;
1415
protected $ignoreFiles;
@@ -42,6 +43,45 @@ public function index()
4243
return view("MediaManager::{$this->fw}.media");
4344
}
4445

46+
/**
47+
* [files description].
48+
*
49+
* @param Request $request [description]
50+
*
51+
* @return [type] [description]
52+
*/
53+
public function get_files(Request $request)
54+
{
55+
$folder = $request->folder !== '/'
56+
? $request->folder
57+
: '';
58+
59+
return response()->json([
60+
'path' => $folder,
61+
'items' => $this->getData($folder),
62+
]);
63+
}
64+
65+
/**
66+
* [get_all_dirs description].
67+
*
68+
* @param Request $request [description]
69+
*
70+
* @return [type] [description]
71+
*/
72+
public function get_dirs(Request $request)
73+
{
74+
$folderLocation = $request->folder_location;
75+
76+
if (is_array($folderLocation)) {
77+
$folderLocation = rtrim(implode('/', $folderLocation), '/');
78+
}
79+
80+
return response()->json(
81+
str_replace($folderLocation, '', $this->storageDisk->allDirectories($folderLocation))
82+
);
83+
}
84+
4585
/**
4686
* [upload description].
4787
*
@@ -95,27 +135,6 @@ public function upload(Request $request)
95135
return response()->json(['data'=>$result]);
96136
}
97137

98-
/**
99-
* [files description].
100-
*
101-
* @param Request $request [description]
102-
*
103-
* @return [type] [description]
104-
*/
105-
public function files(Request $request)
106-
{
107-
$folder = $request->folder;
108-
109-
if ($folder == '/') {
110-
$folder = '';
111-
}
112-
113-
return response()->json([
114-
'path' => $folder,
115-
'items' => $this->getFiles($folder),
116-
]);
117-
}
118-
119138
/**
120139
* [new_folder description].
121140
*
@@ -139,17 +158,17 @@ public function new_folder(Request $request)
139158
$message = trans('MediaManager::messages.error_creating_dir');
140159
}
141160

142-
return compact('success', 'message', 'new_folder');
161+
return compact('success', 'message', 'new_folder_name', 'full_path');
143162
}
144163

145164
/**
146-
* [delete_file_folder description].
165+
* [delete_file description].
147166
*
148167
* @param Request $request [description]
149168
*
150169
* @return [type] [description]
151170
*/
152-
public function delete_file_folder(Request $request)
171+
public function delete_file(Request $request)
153172
{
154173
$folderLocation = $request->folder_location;
155174
$result = [];
@@ -188,26 +207,6 @@ public function delete_file_folder(Request $request)
188207
return response()->json(['data'=>$result]);
189208
}
190209

191-
/**
192-
* [get_all_dirs description].
193-
*
194-
* @param Request $request [description]
195-
*
196-
* @return [type] [description]
197-
*/
198-
public function get_all_dirs(Request $request)
199-
{
200-
$folderLocation = $request->folder_location;
201-
202-
if (is_array($folderLocation)) {
203-
$folderLocation = rtrim(implode('/', $folderLocation), '/');
204-
}
205-
206-
return response()->json(
207-
str_replace($folderLocation, '', $this->storageDisk->allDirectories($folderLocation))
208-
);
209-
}
210-
211210
/**
212211
* [move_file description].
213212
*
@@ -225,13 +224,15 @@ public function move_file(Request $request)
225224
}
226225

227226
foreach ($request->moved_files as $one) {
228-
$file_type =$one['type'];
227+
$file_type = $one['type'];
229228
$file_name = $one['name'];
229+
$file_size = $one['size'];
230+
230231
$destination = "{$request->destination}/$file_name";
231232
$file_name = "$folderLocation/$file_name";
232233
$destination = strpos($destination, '../') == true
233-
? '/' . dirname($folderLocation) . '/' . str_replace('../', '', $destination)
234-
: "$folderLocation/$destination";
234+
? '/' . dirname($folderLocation) . '/' . str_replace('../', '', $destination)
235+
: "$folderLocation/$destination";
235236

236237
try {
237238
if (!file_exists($destination)) {
@@ -240,6 +241,7 @@ public function move_file(Request $request)
240241
'success' => true,
241242
'name' => $one['name'],
242243
'type' => $file_type,
244+
'size' => $file_size,
243245
];
244246
} else {
245247
throw new Exception(trans('MediaManager::messages.error_moving'));
@@ -289,80 +291,4 @@ public function rename_file(Request $request)
289291

290292
return compact('success', 'message', 'new_filename');
291293
}
292-
293-
/**
294-
* [getFiles description].
295-
*
296-
* @param [type] $dir [description]
297-
*
298-
* @return [type] [description]
299-
*/
300-
public function getFiles($dir)
301-
{
302-
$files = [];
303-
$storageFiles = $this->storageDisk->files($dir);
304-
$storageFolders = $this->storageDisk->directories($dir);
305-
306-
$pattern = $this->ignoreFiles;
307-
308-
foreach ($storageFolders as $folder) {
309-
if (!preg_grep($pattern, [$folder])) {
310-
$time = $this->storageDisk->lastModified($folder);
311-
$files[] = [
312-
'name' => strpos($folder, '/') > 1 ? str_replace('/', '', strrchr($folder, '/')) : $folder,
313-
'type' => 'folder',
314-
'path' => $this->storageDisk->url($folder),
315-
'size' => '',
316-
'items' => count($this->storageDisk->allFiles($folder)) + count($this->storageDisk->allDirectories($folder)),
317-
'last_modified' => $time,
318-
'last_modified_formated' => Carbon::createFromTimestamp($time)->{$this->LMF}(),
319-
];
320-
}
321-
}
322-
323-
foreach ($storageFiles as $file) {
324-
if (!preg_grep($pattern, [$file])) {
325-
$time = $this->storageDisk->lastModified($file);
326-
$files[] = [
327-
'name' => strpos($file, '/') > 1 ? str_replace('/', '', strrchr($file, '/')) : $file,
328-
'type' => $this->storageDisk->mimeType($file),
329-
'path' => $this->storageDisk->url($file),
330-
'size' => $this->storageDisk->size($file),
331-
'last_modified' => $time,
332-
'last_modified_formated' => Carbon::createFromTimestamp($time)->{$this->LMF}(),
333-
];
334-
}
335-
}
336-
337-
return $files;
338-
}
339-
340-
/**
341-
* sanitize input.
342-
*
343-
* @param [type] $text [description]
344-
* @param null|mixed $folder
345-
*
346-
* @return [type] [description]
347-
*/
348-
protected function cleanName($text, $folder = null)
349-
{
350-
$pattern = [
351-
'/(script.*?\/script)|[^(' . $this->fileChars . ')a-zA-Z0-9]+/ius',
352-
];
353-
354-
if ($folder) {
355-
$pattern = [
356-
'/(script.*?\/script)|[^(' . $this->folderChars . ')a-zA-Z0-9]+/ius',
357-
];
358-
}
359-
360-
$text = preg_replace($pattern, '', $text);
361-
362-
if ($text == '') {
363-
$text = $this->sanitizedText;
364-
}
365-
366-
return $text;
367-
}
368294
}

0 commit comments

Comments
 (0)