drg_elfinder 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +8 -0
- data/app/assets/config/drg_elfinder_manifest.js +1 -0
- data/app/assets/javascripts/drg_elfinder.js +15 -0
- data/app/assets/javascripts/elfinder/Changelog +1283 -0
- data/app/assets/javascripts/elfinder/LICENSE.md +15 -0
- data/app/assets/javascripts/elfinder/README.md +216 -0
- data/app/assets/javascripts/elfinder/bower.json +28 -0
- data/app/assets/javascripts/elfinder/composer.json +39 -0
- data/app/assets/javascripts/elfinder/css/elfinder.full.css +5350 -0
- data/app/assets/javascripts/elfinder/css/elfinder.min.css +9 -0
- data/app/assets/javascripts/elfinder/css/theme.css +430 -0
- data/app/assets/javascripts/elfinder/elfinder.html +74 -0
- data/app/assets/javascripts/elfinder/elfinder.legacy.html +94 -0
- data/app/assets/javascripts/elfinder/img/arrows-active.png +0 -0
- data/app/assets/javascripts/elfinder/img/arrows-normal.png +0 -0
- data/app/assets/javascripts/elfinder/img/crop.gif +0 -0
- data/app/assets/javascripts/elfinder/img/dialogs.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_aceeditor.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_ckeditor.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_ckeditor5.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_codemirror.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_creativecloud.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_onlineconvert.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_pixlreditor.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_pixlrexpress.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_simplemde.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_tinymce.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_tuiimgedit.png +0 -0
- data/app/assets/javascripts/elfinder/img/edit_zohooffice.png +0 -0
- data/app/assets/javascripts/elfinder/img/editor-icons.png +0 -0
- data/app/assets/javascripts/elfinder/img/icons-big.png +0 -0
- data/app/assets/javascripts/elfinder/img/icons-big.svg +1 -0
- data/app/assets/javascripts/elfinder/img/icons-small.png +0 -0
- data/app/assets/javascripts/elfinder/img/logo.png +0 -0
- data/app/assets/javascripts/elfinder/img/progress.gif +0 -0
- data/app/assets/javascripts/elfinder/img/quicklook-bg.png +0 -0
- data/app/assets/javascripts/elfinder/img/quicklook-icons.png +0 -0
- data/app/assets/javascripts/elfinder/img/resize.png +0 -0
- data/app/assets/javascripts/elfinder/img/spinner-mini.gif +0 -0
- data/app/assets/javascripts/elfinder/img/toolbar.png +0 -0
- data/app/assets/javascripts/elfinder/img/trashmesh.png +0 -0
- data/app/assets/javascripts/elfinder/img/tui-icon-a.svg +235 -0
- data/app/assets/javascripts/elfinder/img/tui-icon-b.svg +224 -0
- data/app/assets/javascripts/elfinder/img/tui-icon-c.svg +224 -0
- data/app/assets/javascripts/elfinder/img/tui-icon-d.svg +224 -0
- data/app/assets/javascripts/elfinder/img/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_box.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_box.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_dropbox.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_dropbox.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_ftp.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_ftp.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_googledrive.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_googledrive.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_local.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_local.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_network.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_network.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_onedrive.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_onedrive.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_sql.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_sql.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_trash.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_trash.svg +1 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_zip.png +0 -0
- data/app/assets/javascripts/elfinder/img/volume_icon_zip.svg +1 -0
- data/app/assets/javascripts/elfinder/js/elfinder.full.js +36019 -0
- data/app/assets/javascripts/elfinder/js/elfinder.min.js +25 -0
- data/app/assets/javascripts/elfinder/js/extras/editors.default.js +2643 -0
- data/app/assets/javascripts/elfinder/js/extras/editors.default.min.js +2 -0
- data/app/assets/javascripts/elfinder/js/extras/quicklook.googledocs.js +75 -0
- data/app/assets/javascripts/elfinder/js/extras/quicklook.googledocs.min.js +1 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.LANG.js +587 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ar.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.bg.js +559 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ca.js +375 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.cs.js +581 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.da.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.de.js +582 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.el.js +374 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.es.js +546 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.fa.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.fallback.js +11 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.fo.js +419 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.fr.js +578 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.fr_CA.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.he.js +375 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.hr.js +434 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.hu.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.id.js +498 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.it.js +552 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ja.js +581 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ko.js +582 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.nl.js +581 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.no.js +374 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.pl.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.pt_BR.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ro.js +417 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ru.js +582 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.si.js +537 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.sk.js +581 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.sl.js +374 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.sr.js +374 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.sv.js +375 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.tr.js +583 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.ug_CN.js +374 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.uk.js +580 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.vi.js +579 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.zh_CN.js +585 -0
- data/app/assets/javascripts/elfinder/js/i18n/elfinder.zh_TW.js +582 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/cs.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/de.html.js +15 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/en.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/es.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/ja.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/ko.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/pl.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/ru.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/sk.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/i18n/help/tr.html.js +10 -0
- data/app/assets/javascripts/elfinder/js/proxy/elFinderSupportVer1.js +408 -0
- data/app/assets/javascripts/elfinder/js/worker/calcfilehash.js +20 -0
- data/app/assets/javascripts/elfinder/js/worker/quicklook.tiff.js +7 -0
- data/app/assets/javascripts/elfinder/js/worker/quicklook.unzip.js +55 -0
- data/app/assets/javascripts/elfinder/main.default.js +175 -0
- data/app/assets/javascripts/elfinder/package.json +13 -0
- data/app/assets/javascripts/elfinder/php/MySQLStorage.sql +47 -0
- data/app/assets/javascripts/elfinder/php/autoload.php +56 -0
- data/app/assets/javascripts/elfinder/php/connector.maximal.php-dist +449 -0
- data/app/assets/javascripts/elfinder/php/connector.minimal.php-dist +180 -0
- data/app/assets/javascripts/elfinder/php/editors/OnlineConvert/editor.php +113 -0
- data/app/assets/javascripts/elfinder/php/editors/ZipArchive/editor.php +12 -0
- data/app/assets/javascripts/elfinder/php/editors/ZohoOffice/editor.php +206 -0
- data/app/assets/javascripts/elfinder/php/editors/editor.php +79 -0
- data/app/assets/javascripts/elfinder/php/elFinder.class.php +5401 -0
- data/app/assets/javascripts/elfinder/php/elFinderConnector.class.php +380 -0
- data/app/assets/javascripts/elfinder/php/elFinderFlysystemGoogleDriveNetmount.php +380 -0
- data/app/assets/javascripts/elfinder/php/elFinderPlugin.php +113 -0
- data/app/assets/javascripts/elfinder/php/elFinderSession.php +335 -0
- data/app/assets/javascripts/elfinder/php/elFinderSessionInterface.php +57 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeBox.class.php +1972 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeDriver.class.php +7651 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeDropbox.class.php +1464 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeDropbox2.class.php +1516 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeFTP.class.php +1810 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeGoogleDrive.class.php +2163 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeGroup.class.php +315 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeLocalFileSystem.class.php +1477 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeMySQL.class.php +1022 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeOneDrive.class.php +2131 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeSFTPphpseclib.class.php +838 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeTrash.class.php +51 -0
- data/app/assets/javascripts/elfinder/php/elFinderVolumeTrashMySQL.class.php +51 -0
- data/app/assets/javascripts/elfinder/php/libs/GdBmp.php +473 -0
- data/app/assets/javascripts/elfinder/php/mime.types +781 -0
- data/app/assets/javascripts/elfinder/php/plugins/AutoResize/plugin.php +151 -0
- data/app/assets/javascripts/elfinder/php/plugins/AutoRotate/plugin.php +148 -0
- data/app/assets/javascripts/elfinder/php/plugins/Normalizer/plugin.php +204 -0
- data/app/assets/javascripts/elfinder/php/plugins/Sanitizer/plugin.php +157 -0
- data/app/assets/javascripts/elfinder/php/plugins/Watermark/logo.png +0 -0
- data/app/assets/javascripts/elfinder/php/plugins/Watermark/plugin.php +432 -0
- data/app/assets/javascripts/elfinder/php/plugins/WinRemoveTailDots/plugin.php +114 -0
- data/app/assets/javascripts/elfinder/php/resources/image.png +0 -0
- data/app/assets/javascripts/elfinder/php/resources/video.png +0 -0
- data/app/assets/javascripts/elfinder/sounds/rm.wav +0 -0
- data/app/controllers/dc_elfinder_controller.rb +63 -0
- data/app/models/drgcms_form_fields/elfinder.rb +85 -0
- data/changelog.md +0 -0
- data/lib/drg_elfinder/engine.rb +5 -0
- data/lib/drg_elfinder/version.rb +3 -0
- data/lib/drg_elfinder.rb +9 -0
- data/lib/el_finder/action.rb +19 -0
- data/lib/el_finder/base64.rb +24 -0
- data/lib/el_finder/connector.rb +625 -0
- data/lib/el_finder/image.rb +33 -0
- data/lib/el_finder/mime_type.rb +86 -0
- data/lib/el_finder/pathname.rb +185 -0
- data/lib/el_finder/version.rb +5 -0
- data/lib/el_finder.rb +8 -0
- data/lib/patches/patch_for_elfinder.rb +115 -0
- data/lib/tasks/drg_elfinder_tasks.rake +10 -0
- metadata +245 -0
@@ -0,0 +1,86 @@
|
|
1
|
+
module ElFinder
|
2
|
+
|
3
|
+
# Represents default MIME types recognizer.
|
4
|
+
class MimeType
|
5
|
+
|
6
|
+
# File extension to mime type mapping.
|
7
|
+
TYPES = {
|
8
|
+
'ai' => 'application/postscript',
|
9
|
+
'eps' => 'application/postscript',
|
10
|
+
'exe' => 'application/octet-stream',
|
11
|
+
'doc' => 'application/vnd.ms-word',
|
12
|
+
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
13
|
+
'xls' => 'application/vnd.ms-excel',
|
14
|
+
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
15
|
+
'ppt' => 'application/vnd.ms-powerpoint',
|
16
|
+
'pps' => 'application/vnd.ms-powerpoint',
|
17
|
+
'pdf' => 'application/pdf',
|
18
|
+
'xml' => 'application/xml',
|
19
|
+
'odt' => 'application/vnd.oasis.opendocument.text',
|
20
|
+
'swf' => 'application/x-shockwave-flash',
|
21
|
+
# archives
|
22
|
+
'gz' => 'application/x-gzip',
|
23
|
+
'tgz' => 'application/x-gzip',
|
24
|
+
'bz' => 'application/x-bzip2',
|
25
|
+
'bz2' => 'application/x-bzip2',
|
26
|
+
'tbz' => 'application/x-bzip2',
|
27
|
+
'zip' => 'application/zip',
|
28
|
+
'rar' => 'application/x-rar',
|
29
|
+
'tar' => 'application/x-tar',
|
30
|
+
'7z' => 'application/x-7z-compressed',
|
31
|
+
# texts
|
32
|
+
'txt' => 'text/plain',
|
33
|
+
'php' => 'text/x-php',
|
34
|
+
'html' => 'text/html',
|
35
|
+
'htm' => 'text/html',
|
36
|
+
'js' => 'text/javascript',
|
37
|
+
'css' => 'text/css',
|
38
|
+
'rtf' => 'text/rtf',
|
39
|
+
'rtfd' => 'text/rtfd',
|
40
|
+
'py' => 'text/x-python',
|
41
|
+
'java' => 'text/x-java-source',
|
42
|
+
'rb' => 'text/x-ruby',
|
43
|
+
'erb' => 'text/x-ruby',
|
44
|
+
'sh' => 'text/x-shellscript',
|
45
|
+
'pl' => 'text/x-perl',
|
46
|
+
'sql' => 'text/x-sql',
|
47
|
+
# images
|
48
|
+
'bmp' => 'image/x-ms-bmp',
|
49
|
+
'jpg' => 'image/jpeg',
|
50
|
+
'jpeg' => 'image/jpeg',
|
51
|
+
'gif' => 'image/gif',
|
52
|
+
'png' => 'image/png',
|
53
|
+
'tif' => 'image/tiff',
|
54
|
+
'tiff' => 'image/tiff',
|
55
|
+
'tga' => 'image/x-targa',
|
56
|
+
'psd' => 'image/vnd.adobe.photoshop',
|
57
|
+
# audio
|
58
|
+
'mp3' => 'audio/mpeg',
|
59
|
+
'mid' => 'audio/midi',
|
60
|
+
'ogg' => 'audio/ogg',
|
61
|
+
'mp4a' => 'audio/mp4',
|
62
|
+
'wav' => 'audio/wav',
|
63
|
+
'wma' => 'audio/x-ms-wma',
|
64
|
+
# video
|
65
|
+
'avi' => 'video/x-msvideo',
|
66
|
+
'dv' => 'video/x-dv',
|
67
|
+
'mp4' => 'video/mp4',
|
68
|
+
'mpeg' => 'video/mpeg',
|
69
|
+
'mpg' => 'video/mpeg',
|
70
|
+
'mov' => 'video/quicktime',
|
71
|
+
'wm' => 'video/x-ms-wmv',
|
72
|
+
'flv' => 'video/x-flv',
|
73
|
+
'mkv' => 'video/x-matroska'
|
74
|
+
}
|
75
|
+
|
76
|
+
# Gets MIME type fort specified path.
|
77
|
+
# @param [::Pathname, String] pathname Path to recognize its MIME type.
|
78
|
+
# @return [String] MIME type if known; 'unknown/unknown' otherwise.
|
79
|
+
def self.for(pathname)
|
80
|
+
pathname = ::Pathname.new(pathname) if pathname.is_a?(String)
|
81
|
+
TYPES[pathname.extname.downcase[1..-1]] || 'unknown/unknown'
|
82
|
+
end # of for
|
83
|
+
|
84
|
+
end # of class MimeType
|
85
|
+
|
86
|
+
end # of module ElFinder
|
@@ -0,0 +1,185 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'pathname'
|
3
|
+
|
4
|
+
module ElFinder
|
5
|
+
|
6
|
+
class Pathname
|
7
|
+
attr_reader :root, :path
|
8
|
+
|
9
|
+
#
|
10
|
+
def initialize(root, path = '.')
|
11
|
+
@root = root.is_a?(ElFinder::Pathname) ? root.root : ::Pathname.new(root)
|
12
|
+
|
13
|
+
@path = ::Pathname.new(path)
|
14
|
+
@path = path.is_a?(ElFinder::Pathname) ? path.path : ::Pathname.new(path)
|
15
|
+
if absolute?
|
16
|
+
if @path.cleanpath.to_s.start_with?(@root.to_s)
|
17
|
+
@path = ::Pathname.new @path.to_s.slice((@root.to_s.length + 1)..-1)
|
18
|
+
elsif @path.cleanpath.to_s.start_with?(@root.realpath.to_s)
|
19
|
+
@path = ::Pathname.new @path.to_s.slice((@root.realpath.to_s.length + 1)..-1)
|
20
|
+
else
|
21
|
+
raise SecurityError, "Absolute paths are not allowed"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
raise SecurityError, "Paths outside the root are not allowed" if outside_of_root?
|
25
|
+
|
26
|
+
end # of initialize
|
27
|
+
|
28
|
+
#
|
29
|
+
def +(other)
|
30
|
+
if other.is_a? ::ElFinder::Pathname
|
31
|
+
other = other.path
|
32
|
+
end
|
33
|
+
self.class.new(@root, (@path + other).to_s)
|
34
|
+
end # of +
|
35
|
+
|
36
|
+
#
|
37
|
+
def is_root?
|
38
|
+
@path.to_s == '.'
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
def absolute?
|
43
|
+
@path.absolute?
|
44
|
+
end # of absolute?
|
45
|
+
|
46
|
+
#
|
47
|
+
def relative?
|
48
|
+
@path.relative?
|
49
|
+
end # of relative?
|
50
|
+
|
51
|
+
#
|
52
|
+
def outside_of_root?
|
53
|
+
!cleanpath.to_s.start_with?(@root.to_s)
|
54
|
+
end # of outside_of_root?
|
55
|
+
|
56
|
+
#
|
57
|
+
def fullpath
|
58
|
+
@path.nil? ? @root : @root + @path
|
59
|
+
end # of fullpath
|
60
|
+
|
61
|
+
#
|
62
|
+
def cleanpath
|
63
|
+
fullpath.cleanpath
|
64
|
+
end # of cleanpath
|
65
|
+
|
66
|
+
#
|
67
|
+
def realpath
|
68
|
+
fullpath.realpath
|
69
|
+
end # of realpath
|
70
|
+
|
71
|
+
#
|
72
|
+
def basename(*args)
|
73
|
+
@path.basename(*args)
|
74
|
+
end # of basename
|
75
|
+
|
76
|
+
#
|
77
|
+
def basename_sans_extension
|
78
|
+
@path.basename(@path.extname)
|
79
|
+
end # of basename
|
80
|
+
|
81
|
+
#
|
82
|
+
def basename(*args)
|
83
|
+
@path.basename(*args)
|
84
|
+
end # of basename
|
85
|
+
|
86
|
+
#
|
87
|
+
def dirname
|
88
|
+
self.class.new(@root, @path.dirname)
|
89
|
+
end # of basename
|
90
|
+
|
91
|
+
#
|
92
|
+
def extname
|
93
|
+
@path.nil? ? '' : @path.extname
|
94
|
+
end # of extname
|
95
|
+
|
96
|
+
#
|
97
|
+
def to_s
|
98
|
+
cleanpath.to_s
|
99
|
+
end # of to_s
|
100
|
+
alias_method :to_str, :to_s
|
101
|
+
|
102
|
+
#
|
103
|
+
def child_directories(with_directory=true)
|
104
|
+
realpath.children(with_directory).select{ |child| child.directory? }.map{|e| self.class.new(@root, e)}
|
105
|
+
end
|
106
|
+
|
107
|
+
#
|
108
|
+
def children(with_directory=true)
|
109
|
+
realpath.children(with_directory).map{|e| self.class.new(@root, e)}
|
110
|
+
end
|
111
|
+
|
112
|
+
#
|
113
|
+
def touch(options = {})
|
114
|
+
FileUtils.touch(cleanpath)#, options)
|
115
|
+
end
|
116
|
+
|
117
|
+
#
|
118
|
+
def relative_to(other)
|
119
|
+
@path.relative_path_from(other)
|
120
|
+
end
|
121
|
+
|
122
|
+
#
|
123
|
+
def unique
|
124
|
+
return self.dup unless self.file?
|
125
|
+
copy = 1
|
126
|
+
begin
|
127
|
+
new_file = self.class.new(@root, dirname + "#{basename_sans_extension} #{copy}#{extname}")
|
128
|
+
copy += 1
|
129
|
+
end while new_file.exist?
|
130
|
+
new_file
|
131
|
+
end # of unique
|
132
|
+
|
133
|
+
#
|
134
|
+
def duplicate
|
135
|
+
_basename = basename_sans_extension
|
136
|
+
copy = 1
|
137
|
+
if _basename.to_s =~ /^(.*) copy (\d+)$/
|
138
|
+
_basename = $1
|
139
|
+
copy = $2.to_i
|
140
|
+
end
|
141
|
+
begin
|
142
|
+
new_file = self.class.new(@root, dirname + "#{_basename} copy #{copy}#{extname}")
|
143
|
+
copy += 1
|
144
|
+
end while new_file.exist?
|
145
|
+
new_file
|
146
|
+
end # of duplicate
|
147
|
+
|
148
|
+
#
|
149
|
+
def rename(to)
|
150
|
+
to = self.class.new(@root, to.to_s)
|
151
|
+
realpath.rename(to.fullpath.to_s)
|
152
|
+
rescue Errno::EXDEV
|
153
|
+
FileUtils.move(realpath.to_s, to.fullpath.to_s)
|
154
|
+
ensure
|
155
|
+
@path = to.path
|
156
|
+
end # of rename
|
157
|
+
|
158
|
+
{
|
159
|
+
'directory?' => {:path => 'realpath', :rescue => true },
|
160
|
+
'exist?' => {:path => 'realpath', :rescue => true },
|
161
|
+
'file?' => {:path => 'realpath', :rescue => true },
|
162
|
+
'ftype' => {:path => 'realpath', },
|
163
|
+
'mkdir' => {:path => 'fullpath', :args => '(*args)' },
|
164
|
+
'mtime' => {:path => 'realpath', },
|
165
|
+
'open' => {:path => 'fullpath', :args => '(*args, &block)' },
|
166
|
+
'read' => {:path => 'fullpath', :args => '(*args)' },
|
167
|
+
'readlink' => {:path => 'fullpath', },
|
168
|
+
'readable?' => {:path => 'realpath', :rescue => true },
|
169
|
+
'size' => {:path => 'realpath', },
|
170
|
+
'symlink?' => {:path => 'fullpath', },
|
171
|
+
'unlink' => {:path => 'realpath', },
|
172
|
+
'writable?' => {:path => 'realpath', :rescue => true },
|
173
|
+
}.each_pair do |meth, opts|
|
174
|
+
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
175
|
+
def #{meth}#{opts[:args]}
|
176
|
+
#{opts[:path]}.#{meth}#{opts[:args]}
|
177
|
+
#{"rescue Errno::ENOENT\nfalse" if opts[:rescue]}
|
178
|
+
end
|
179
|
+
METHOD
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
end # of class Pathname
|
184
|
+
|
185
|
+
end # of module ElFinder
|
data/lib/el_finder.rb
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2014+ Damjan Rems
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
module ElFinder
|
25
|
+
class Connector
|
26
|
+
|
27
|
+
private
|
28
|
+
#######################################################################
|
29
|
+
# Will only move selected files to .trash folder instead of remove them.
|
30
|
+
#
|
31
|
+
# The only problem I see is that if user has rights to perform remove parent
|
32
|
+
# folder but not some of its children, whole parent folder will be moved to .trash.
|
33
|
+
#######################################################################
|
34
|
+
def remove_target(target)
|
35
|
+
if perms_for(target)[:rm] == false
|
36
|
+
@response[:error] ||= 'Some files/directories were unable to be removed'
|
37
|
+
@response[:errorData][target.basename.to_s] = "Access Denied"
|
38
|
+
return
|
39
|
+
end
|
40
|
+
# create trash folder if it doesn't exist
|
41
|
+
trash_dir = File.join(@root,'.trash/')
|
42
|
+
FileUtils.mkdir(trash_dir) unless File.exist?(trash_dir)
|
43
|
+
|
44
|
+
begin
|
45
|
+
FileUtils.mv(target, trash_dir, force: true)
|
46
|
+
if !target.directory?
|
47
|
+
if @options[:thumbs] && (thumbnail = thumbnail_for(target)).file?
|
48
|
+
FileUtils.mv(thumbnail, trash_dir, force: true )
|
49
|
+
end
|
50
|
+
end
|
51
|
+
rescue
|
52
|
+
@response[:error] ||= 'Some files/directories were unable to be removed'
|
53
|
+
@response[:errorData][target.basename.to_s] = "Remove failed"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
#######################################################################
|
58
|
+
# Return permissions for a file or directory. This overwrites default
|
59
|
+
# behavior and inserts drgcms users roles.
|
60
|
+
#######################################################################
|
61
|
+
def perms_for(pathname, options = {})
|
62
|
+
if @permissions.nil?
|
63
|
+
@permissions = {}
|
64
|
+
# find root name and get all rules, that are descendent of root.
|
65
|
+
# There can be more than one root, because each site can have its own root
|
66
|
+
root = pathname.root.to_s.sub(Rails.root.join('public').to_s,'')
|
67
|
+
DcFolderPermission.where(folder_name: /#{root}*/).sort(folder_name: 1).each do |permission|
|
68
|
+
folder = permission.folder_name.sub(root,'')
|
69
|
+
folder.gsub!(/^\/|\/$/, '')
|
70
|
+
# root is always ., remove leading and trailing /
|
71
|
+
folder = '.' if folder.blank?
|
72
|
+
# no rights by default.
|
73
|
+
h = { read: false, write: false, rw: false, inherited: permission.inherited }
|
74
|
+
# go through policy_rules and set rights if role matches rules role
|
75
|
+
permission.dc_policy_rules.each do |r|
|
76
|
+
@options[:user_roles].each do |role|
|
77
|
+
next unless role == r.dc_policy_role_id
|
78
|
+
|
79
|
+
h[:read] ||= r.permission > 0
|
80
|
+
h[:write] ||= r.permission > 1
|
81
|
+
h[:rw] ||= r.permission > 8
|
82
|
+
end
|
83
|
+
@permissions[folder] = h
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
# create response. First check for defaults of root folder
|
88
|
+
response = {}
|
89
|
+
response[:read] = pathname.exist? && @permissions['.'][:read]
|
90
|
+
response[:write] = pathname.exist? && @permissions['.'][:write]
|
91
|
+
response[:rm] = !pathname.is_root? && @permissions['.'][:rw]
|
92
|
+
dir = ''
|
93
|
+
# go through every subfolder part. Policy is: if right has been revoked on
|
94
|
+
# parent folder it can't be set on child unless inherited is false.
|
95
|
+
pathname.path.to_s.split('/').each do |path|
|
96
|
+
dir << (dir.size > 0 ? '/' : '') + path
|
97
|
+
pe = @permissions[dir]
|
98
|
+
next if pe.nil? # ignore if not set
|
99
|
+
|
100
|
+
if pe[:inherited]
|
101
|
+
response[:read] &&= pe[:read]
|
102
|
+
response[:write] &&= pe[:write]
|
103
|
+
response[:rm] &&= pe[:rw]
|
104
|
+
else
|
105
|
+
response[:read] = pe[:read]
|
106
|
+
response[:write] = pe[:write]
|
107
|
+
response[:rm] = pe[:rw]
|
108
|
+
end
|
109
|
+
end
|
110
|
+
response[:hidden] = false
|
111
|
+
response
|
112
|
+
end # of perms_for
|
113
|
+
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
desc "Copy elfinder folder from gem's assets folder to public/assets/ directory"
|
4
|
+
task "assets:precompile" do
|
5
|
+
p 'Copying elfinder files to public/assets directory '
|
6
|
+
|
7
|
+
input_dir = File.realpath( File.dirname(__FILE__) + '/../../app/assets/javascripts/elfinder')
|
8
|
+
output_dir = Rails.root.join('public/assets')
|
9
|
+
cp_r(input_dir, output_dir, verbose: true)
|
10
|
+
end
|
metadata
ADDED
@@ -0,0 +1,245 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: drg_elfinder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Damjan Rems
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-10-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: image_size
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
27
|
+
description: Package consists of ElFinder file manager for web for usage with DRG
|
28
|
+
Forms
|
29
|
+
email:
|
30
|
+
- damjan.rems@gmail.com
|
31
|
+
executables: []
|
32
|
+
extensions: []
|
33
|
+
extra_rdoc_files: []
|
34
|
+
files:
|
35
|
+
- MIT-LICENSE
|
36
|
+
- README.md
|
37
|
+
- Rakefile
|
38
|
+
- app/assets/config/drg_elfinder_manifest.js
|
39
|
+
- app/assets/javascripts/drg_elfinder.js
|
40
|
+
- app/assets/javascripts/elfinder/Changelog
|
41
|
+
- app/assets/javascripts/elfinder/LICENSE.md
|
42
|
+
- app/assets/javascripts/elfinder/README.md
|
43
|
+
- app/assets/javascripts/elfinder/bower.json
|
44
|
+
- app/assets/javascripts/elfinder/composer.json
|
45
|
+
- app/assets/javascripts/elfinder/css/elfinder.full.css
|
46
|
+
- app/assets/javascripts/elfinder/css/elfinder.min.css
|
47
|
+
- app/assets/javascripts/elfinder/css/theme.css
|
48
|
+
- app/assets/javascripts/elfinder/elfinder.html
|
49
|
+
- app/assets/javascripts/elfinder/elfinder.legacy.html
|
50
|
+
- app/assets/javascripts/elfinder/img/arrows-active.png
|
51
|
+
- app/assets/javascripts/elfinder/img/arrows-normal.png
|
52
|
+
- app/assets/javascripts/elfinder/img/crop.gif
|
53
|
+
- app/assets/javascripts/elfinder/img/dialogs.png
|
54
|
+
- app/assets/javascripts/elfinder/img/edit_aceeditor.png
|
55
|
+
- app/assets/javascripts/elfinder/img/edit_ckeditor.png
|
56
|
+
- app/assets/javascripts/elfinder/img/edit_ckeditor5.png
|
57
|
+
- app/assets/javascripts/elfinder/img/edit_codemirror.png
|
58
|
+
- app/assets/javascripts/elfinder/img/edit_creativecloud.png
|
59
|
+
- app/assets/javascripts/elfinder/img/edit_onlineconvert.png
|
60
|
+
- app/assets/javascripts/elfinder/img/edit_pixlreditor.png
|
61
|
+
- app/assets/javascripts/elfinder/img/edit_pixlrexpress.png
|
62
|
+
- app/assets/javascripts/elfinder/img/edit_simplemde.png
|
63
|
+
- app/assets/javascripts/elfinder/img/edit_tinymce.png
|
64
|
+
- app/assets/javascripts/elfinder/img/edit_tuiimgedit.png
|
65
|
+
- app/assets/javascripts/elfinder/img/edit_zohooffice.png
|
66
|
+
- app/assets/javascripts/elfinder/img/editor-icons.png
|
67
|
+
- app/assets/javascripts/elfinder/img/icons-big.png
|
68
|
+
- app/assets/javascripts/elfinder/img/icons-big.svg
|
69
|
+
- app/assets/javascripts/elfinder/img/icons-small.png
|
70
|
+
- app/assets/javascripts/elfinder/img/logo.png
|
71
|
+
- app/assets/javascripts/elfinder/img/progress.gif
|
72
|
+
- app/assets/javascripts/elfinder/img/quicklook-bg.png
|
73
|
+
- app/assets/javascripts/elfinder/img/quicklook-icons.png
|
74
|
+
- app/assets/javascripts/elfinder/img/resize.png
|
75
|
+
- app/assets/javascripts/elfinder/img/spinner-mini.gif
|
76
|
+
- app/assets/javascripts/elfinder/img/toolbar.png
|
77
|
+
- app/assets/javascripts/elfinder/img/trashmesh.png
|
78
|
+
- app/assets/javascripts/elfinder/img/tui-icon-a.svg
|
79
|
+
- app/assets/javascripts/elfinder/img/tui-icon-b.svg
|
80
|
+
- app/assets/javascripts/elfinder/img/tui-icon-c.svg
|
81
|
+
- app/assets/javascripts/elfinder/img/tui-icon-d.svg
|
82
|
+
- app/assets/javascripts/elfinder/img/ui-icons_ffffff_256x240.png
|
83
|
+
- app/assets/javascripts/elfinder/img/volume_icon_box.png
|
84
|
+
- app/assets/javascripts/elfinder/img/volume_icon_box.svg
|
85
|
+
- app/assets/javascripts/elfinder/img/volume_icon_dropbox.png
|
86
|
+
- app/assets/javascripts/elfinder/img/volume_icon_dropbox.svg
|
87
|
+
- app/assets/javascripts/elfinder/img/volume_icon_ftp.png
|
88
|
+
- app/assets/javascripts/elfinder/img/volume_icon_ftp.svg
|
89
|
+
- app/assets/javascripts/elfinder/img/volume_icon_googledrive.png
|
90
|
+
- app/assets/javascripts/elfinder/img/volume_icon_googledrive.svg
|
91
|
+
- app/assets/javascripts/elfinder/img/volume_icon_local.png
|
92
|
+
- app/assets/javascripts/elfinder/img/volume_icon_local.svg
|
93
|
+
- app/assets/javascripts/elfinder/img/volume_icon_network.png
|
94
|
+
- app/assets/javascripts/elfinder/img/volume_icon_network.svg
|
95
|
+
- app/assets/javascripts/elfinder/img/volume_icon_onedrive.png
|
96
|
+
- app/assets/javascripts/elfinder/img/volume_icon_onedrive.svg
|
97
|
+
- app/assets/javascripts/elfinder/img/volume_icon_sql.png
|
98
|
+
- app/assets/javascripts/elfinder/img/volume_icon_sql.svg
|
99
|
+
- app/assets/javascripts/elfinder/img/volume_icon_trash.png
|
100
|
+
- app/assets/javascripts/elfinder/img/volume_icon_trash.svg
|
101
|
+
- app/assets/javascripts/elfinder/img/volume_icon_zip.png
|
102
|
+
- app/assets/javascripts/elfinder/img/volume_icon_zip.svg
|
103
|
+
- app/assets/javascripts/elfinder/js/elfinder.full.js
|
104
|
+
- app/assets/javascripts/elfinder/js/elfinder.min.js
|
105
|
+
- app/assets/javascripts/elfinder/js/extras/editors.default.js
|
106
|
+
- app/assets/javascripts/elfinder/js/extras/editors.default.min.js
|
107
|
+
- app/assets/javascripts/elfinder/js/extras/quicklook.googledocs.js
|
108
|
+
- app/assets/javascripts/elfinder/js/extras/quicklook.googledocs.min.js
|
109
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.LANG.js
|
110
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ar.js
|
111
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.bg.js
|
112
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ca.js
|
113
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.cs.js
|
114
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.da.js
|
115
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.de.js
|
116
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.el.js
|
117
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.es.js
|
118
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.fa.js
|
119
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.fallback.js
|
120
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.fo.js
|
121
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.fr.js
|
122
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.fr_CA.js
|
123
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.he.js
|
124
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.hr.js
|
125
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.hu.js
|
126
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.id.js
|
127
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.it.js
|
128
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ja.js
|
129
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ko.js
|
130
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.nl.js
|
131
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.no.js
|
132
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.pl.js
|
133
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.pt_BR.js
|
134
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ro.js
|
135
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ru.js
|
136
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.si.js
|
137
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.sk.js
|
138
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.sl.js
|
139
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.sr.js
|
140
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.sv.js
|
141
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.tr.js
|
142
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.ug_CN.js
|
143
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.uk.js
|
144
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.vi.js
|
145
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.zh_CN.js
|
146
|
+
- app/assets/javascripts/elfinder/js/i18n/elfinder.zh_TW.js
|
147
|
+
- app/assets/javascripts/elfinder/js/i18n/help/cs.html.js
|
148
|
+
- app/assets/javascripts/elfinder/js/i18n/help/de.html.js
|
149
|
+
- app/assets/javascripts/elfinder/js/i18n/help/en.html.js
|
150
|
+
- app/assets/javascripts/elfinder/js/i18n/help/es.html.js
|
151
|
+
- app/assets/javascripts/elfinder/js/i18n/help/ja.html.js
|
152
|
+
- app/assets/javascripts/elfinder/js/i18n/help/ko.html.js
|
153
|
+
- app/assets/javascripts/elfinder/js/i18n/help/pl.html.js
|
154
|
+
- app/assets/javascripts/elfinder/js/i18n/help/ru.html.js
|
155
|
+
- app/assets/javascripts/elfinder/js/i18n/help/sk.html.js
|
156
|
+
- app/assets/javascripts/elfinder/js/i18n/help/tr.html.js
|
157
|
+
- app/assets/javascripts/elfinder/js/proxy/elFinderSupportVer1.js
|
158
|
+
- app/assets/javascripts/elfinder/js/worker/calcfilehash.js
|
159
|
+
- app/assets/javascripts/elfinder/js/worker/quicklook.tiff.js
|
160
|
+
- app/assets/javascripts/elfinder/js/worker/quicklook.unzip.js
|
161
|
+
- app/assets/javascripts/elfinder/main.default.js
|
162
|
+
- app/assets/javascripts/elfinder/package.json
|
163
|
+
- app/assets/javascripts/elfinder/php/MySQLStorage.sql
|
164
|
+
- app/assets/javascripts/elfinder/php/autoload.php
|
165
|
+
- app/assets/javascripts/elfinder/php/connector.maximal.php-dist
|
166
|
+
- app/assets/javascripts/elfinder/php/connector.minimal.php-dist
|
167
|
+
- app/assets/javascripts/elfinder/php/editors/OnlineConvert/editor.php
|
168
|
+
- app/assets/javascripts/elfinder/php/editors/ZipArchive/editor.php
|
169
|
+
- app/assets/javascripts/elfinder/php/editors/ZohoOffice/editor.php
|
170
|
+
- app/assets/javascripts/elfinder/php/editors/editor.php
|
171
|
+
- app/assets/javascripts/elfinder/php/elFinder.class.php
|
172
|
+
- app/assets/javascripts/elfinder/php/elFinderConnector.class.php
|
173
|
+
- app/assets/javascripts/elfinder/php/elFinderFlysystemGoogleDriveNetmount.php
|
174
|
+
- app/assets/javascripts/elfinder/php/elFinderPlugin.php
|
175
|
+
- app/assets/javascripts/elfinder/php/elFinderSession.php
|
176
|
+
- app/assets/javascripts/elfinder/php/elFinderSessionInterface.php
|
177
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeBox.class.php
|
178
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeDriver.class.php
|
179
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeDropbox.class.php
|
180
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeDropbox2.class.php
|
181
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeFTP.class.php
|
182
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeGoogleDrive.class.php
|
183
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeGroup.class.php
|
184
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeLocalFileSystem.class.php
|
185
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeMySQL.class.php
|
186
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeOneDrive.class.php
|
187
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeSFTPphpseclib.class.php
|
188
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeTrash.class.php
|
189
|
+
- app/assets/javascripts/elfinder/php/elFinderVolumeTrashMySQL.class.php
|
190
|
+
- app/assets/javascripts/elfinder/php/libs/GdBmp.php
|
191
|
+
- app/assets/javascripts/elfinder/php/mime.types
|
192
|
+
- app/assets/javascripts/elfinder/php/plugins/AutoResize/plugin.php
|
193
|
+
- app/assets/javascripts/elfinder/php/plugins/AutoRotate/plugin.php
|
194
|
+
- app/assets/javascripts/elfinder/php/plugins/Normalizer/plugin.php
|
195
|
+
- app/assets/javascripts/elfinder/php/plugins/Sanitizer/plugin.php
|
196
|
+
- app/assets/javascripts/elfinder/php/plugins/Watermark/logo.png
|
197
|
+
- app/assets/javascripts/elfinder/php/plugins/Watermark/plugin.php
|
198
|
+
- app/assets/javascripts/elfinder/php/plugins/WinRemoveTailDots/plugin.php
|
199
|
+
- app/assets/javascripts/elfinder/php/resources/image.png
|
200
|
+
- app/assets/javascripts/elfinder/php/resources/video.png
|
201
|
+
- app/assets/javascripts/elfinder/sounds/rm.wav
|
202
|
+
- app/controllers/dc_elfinder_controller.rb
|
203
|
+
- app/models/drgcms_form_fields/elfinder.rb
|
204
|
+
- changelog.md
|
205
|
+
- lib/drg_elfinder.rb
|
206
|
+
- lib/drg_elfinder/engine.rb
|
207
|
+
- lib/drg_elfinder/version.rb
|
208
|
+
- lib/el_finder.rb
|
209
|
+
- lib/el_finder/action.rb
|
210
|
+
- lib/el_finder/base64.rb
|
211
|
+
- lib/el_finder/connector.rb
|
212
|
+
- lib/el_finder/image.rb
|
213
|
+
- lib/el_finder/mime_type.rb
|
214
|
+
- lib/el_finder/pathname.rb
|
215
|
+
- lib/el_finder/version.rb
|
216
|
+
- lib/patches/patch_for_elfinder.rb
|
217
|
+
- lib/tasks/drg_elfinder_tasks.rake
|
218
|
+
homepage: https://www.drgcms.org
|
219
|
+
licenses:
|
220
|
+
- MIT
|
221
|
+
metadata:
|
222
|
+
homepage_uri: https://www.drgcms.org
|
223
|
+
source_code_uri: https://github.com/drg-cms/drg-elfinder
|
224
|
+
changelog_uri: https://github.com/drg-cms/drg-elfinder/changelog.md
|
225
|
+
post_install_message:
|
226
|
+
rdoc_options: []
|
227
|
+
require_paths:
|
228
|
+
- lib
|
229
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
230
|
+
requirements:
|
231
|
+
- - ">="
|
232
|
+
- !ruby/object:Gem::Version
|
233
|
+
version: '0'
|
234
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - ">="
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '0'
|
239
|
+
requirements:
|
240
|
+
- ImageMagick
|
241
|
+
rubygems_version: 3.3.15
|
242
|
+
signing_key:
|
243
|
+
specification_version: 4
|
244
|
+
summary: ElFinder file manager for web. DRG Forms plugin.
|
245
|
+
test_files: []
|