filemanager 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +4 -0
- data/README +1 -1
- data/README.zh_CN +32 -0
- data/Rakefile +2 -2
- data/{rails → filemanager}/app/controllers/fm/filemanager_controller.rb +0 -0
- data/{rails → filemanager}/app/views/fm/filemanager/index.html.erb +8 -8
- data/{rails → filemanager}/app/views/fm/filemanager/view.html.erb +1 -1
- data/{rails/config → filemanager}/filemanager.yml +2 -2
- data/{rails → filemanager}/public/filemanager/images/avi.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/box.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/bullet.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/close.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/closelabel.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/doc.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/donate-button.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/download-icon.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/folder.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/gif.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/htm.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/html.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/image-1.jpg +0 -0
- data/{rails → filemanager}/public/filemanager/images/image.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/jpg.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/loading.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/mov.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/nextlabel.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/pdf.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/png.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/ppt.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/prevlabel.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/rar.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/rm.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/rmvb.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/separator.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/spacer.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/swf.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/thumb-1.jpg +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_copy.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_cut.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_del.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_folder.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_imagemanager.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_new.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_paste.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_props.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_refresh.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_unzip.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_upload.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/tool_zip.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/txt.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/unknown.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/wmv.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/xls.gif +0 -0
- data/{rails → filemanager}/public/filemanager/images/zip.gif +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/builder.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/effects.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/filemanager.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/lang/en.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/lang/zh_CN.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/lightbox.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/prototype.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/prototype_ext.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/scriptaculous.js +0 -0
- data/{rails → filemanager}/public/filemanager/javascripts/translate.js +0 -0
- data/{rails/public/fm_resources → filemanager/public/filemanager/resources}/resources.txt +0 -0
- data/{rails → filemanager}/public/filemanager/stylesheets/filelist.css +0 -0
- data/{rails → filemanager}/public/filemanager/stylesheets/general.css +0 -0
- data/{rails → filemanager}/public/filemanager/stylesheets/lightbox.css +0 -0
- data/{rails/fm_temp → filemanager/temp}/temp +0 -0
- data/lib/filemanager.rb +33 -8
- data/lib/filemanager/controller.rb +205 -185
- metadata +83 -86
- data/rails/app/helpers/fm/filemanager_helper.rb +0 -61
data/CHANGELOG
CHANGED
data/README
CHANGED
data/README.zh_CN
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Filemanager, release 0.2.0 (May. 2008)
|
|
2
|
+
Rails��Ŀ�������ļ�������
|
|
3
|
+
|
|
4
|
+
����
|
|
5
|
+
=======
|
|
6
|
+
1. �ļ���Ŀ¼����������ƣ����У�ճ������������ɾ���������ȹ���
|
|
7
|
+
2. ��ѹzip�ļ�
|
|
8
|
+
3. ѹ��������ָ���Ķ���ļ���Ŀ¼
|
|
9
|
+
4. �ϴ��ļ�
|
|
10
|
+
5. �����ļ���ʽ�鿴�ļ�
|
|
11
|
+
6. �ļ���Ŀ¼�����ʻ���ҳ���������ʻ�
|
|
12
|
+
|
|
13
|
+
����
|
|
14
|
+
=======
|
|
15
|
+
#������������environment.rb����
|
|
16
|
+
|
|
17
|
+
$FM_OVERWRITE = true
|
|
18
|
+
require 'filemanager'
|
|
19
|
+
|
|
20
|
+
#ע��: �������Ҫ��������Ŀ�ж�Filemanager�ĸı䣬�����ɾ��$FM_OVERWRITE��һ��
|
|
21
|
+
#��ͬʱҲ�ᵼ��Filemanager����ʱijЩ������ܷ������ã�����Ը�����Ҫ����$FM_OVERWRITE���趨
|
|
22
|
+
|
|
23
|
+
ʹ��
|
|
24
|
+
=======
|
|
25
|
+
����rails����� http://localhost:3000/fm/filemanager
|
|
26
|
+
�������ܶ��������Ҽ��˵���
|
|
27
|
+
|
|
28
|
+
����������� "RAILS_ROOT/confile/filemanager.yml"
|
|
29
|
+
Ĭ�ϵĹ���Ŀ¼�� "RAILS_ROOT/public/fm_resources"
|
|
30
|
+
ҳ������i18n�� "RAILS_ROOT/public/filemanager/javascripts/lang"
|
|
31
|
+
|
|
32
|
+
Copyright (c) 2008 Leon Li, released under the MIT license
|
data/Rakefile
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
2
|
require 'rake/gempackagetask'
|
|
3
3
|
PKG_NAME = "filemanager"
|
|
4
|
-
PKG_VERSION = "0.
|
|
4
|
+
PKG_VERSION = "0.2.0"
|
|
5
5
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
|
6
6
|
PKG_FILES = FileList[
|
|
7
7
|
'[A-Z]*',
|
|
8
8
|
'lib/**/*',
|
|
9
|
-
'
|
|
9
|
+
'filemanager/**/*'
|
|
10
10
|
]
|
|
11
11
|
spec = Gem::Specification.new do |s|
|
|
12
12
|
s.platform = Gem::Platform::RUBY
|
|
File without changes
|
|
@@ -151,13 +151,13 @@ background-color:#039;
|
|
|
151
151
|
<td class=filelistheadcol id=fmodcol1 nowrap width="2%" align="center"> <span fmLang="modification_date">Modification Date</span> </td>
|
|
152
152
|
</tr>
|
|
153
153
|
<%
|
|
154
|
-
path = encode(@path)
|
|
154
|
+
path = @controller.encode(@path)
|
|
155
155
|
unless @parent_path.nil?
|
|
156
156
|
%>
|
|
157
157
|
<tr class=filelistroweven>
|
|
158
158
|
<td width=1></td>
|
|
159
159
|
<td><a onmousedown="return false;" href="#"><img class="" title=directory height=16 alt=directory src="/filemanager/images/folder.gif" width=16 border=0></a></td>
|
|
160
|
-
<td class=filelistfilename><a onmousedown="return false;" href="?path=<%= encode(@parent_path) %>">..</a></td>
|
|
160
|
+
<td class=filelistfilename><a onmousedown="return false;" href="?path=<%= @controller.encode(@parent_path) %>">..</a></td>
|
|
161
161
|
<td nowrap></td>
|
|
162
162
|
<td nowrap><%= File.ctime(@resource_path + @parent_path).strftime("%Y-%m-%d %H:%M:%S") %></td>
|
|
163
163
|
</tr>
|
|
@@ -167,7 +167,7 @@ background-color:#039;
|
|
|
167
167
|
@directories.each do |i|
|
|
168
168
|
next if i == '.' || i == '..'
|
|
169
169
|
old_i = i
|
|
170
|
-
i = encode(i)
|
|
170
|
+
i = @controller.encode(i)
|
|
171
171
|
%>
|
|
172
172
|
<tr class=filelistroweven id="tr_<%= i %>">
|
|
173
173
|
<td width=1><input onclick="triggerselect(this)" type="checkbox" name="fileCheck" value="<%= i %>"></td>
|
|
@@ -185,15 +185,15 @@ background-color:#039;
|
|
|
185
185
|
unless @files.nil?
|
|
186
186
|
@files.each do |i|
|
|
187
187
|
old_i = i
|
|
188
|
-
i = encode(i)
|
|
188
|
+
i = @controller.encode(i)
|
|
189
189
|
%>
|
|
190
190
|
<tr class=filelistroweven id="tr_<%= i %>">
|
|
191
191
|
<td width=1><input onclick="triggerselect(this)" type="checkbox" name="fileCheck" value="<%= i %>"></td>
|
|
192
|
-
<td><a onmousedown="return false;" name="<%= i %>"></a><a href="#"><img class="" height=16 src="/filemanager/images/<%= get_file_type(i) %>.gif" width=16 border=0></a></td>
|
|
192
|
+
<td><a onmousedown="return false;" name="<%= i %>"></a><a href="#"><img class="" height=16 src="/filemanager/images/<%= @controller.get_file_type(i) %>.gif" width=16 border=0></a></td>
|
|
193
193
|
<td class=filelistfilename>
|
|
194
194
|
<a id="context_file_<%= i %>" title="<%= path + '/' + i %>" href="javascript:ajaxLink('/fm/filemanager/view?path=<%= path + '/' + i %>', 'view', 'none');" onmousedown="hideMenu();" onclick="showControl('<%= path + '/' + i %>')" ><%= i %></a>
|
|
195
195
|
</td>
|
|
196
|
-
<td nowrap><%= hsize(File.size(@current_path + '/' + old_i).to_f) %></td>
|
|
196
|
+
<td nowrap><%= @controller.hsize(File.size(@current_path + '/' + old_i).to_f) %></td>
|
|
197
197
|
<td nowrap><%= File.ctime(@current_path + '/' + old_i).strftime("%Y-%m-%d %H:%M:%S") %></td>
|
|
198
198
|
</tr>
|
|
199
199
|
<%
|
|
@@ -209,7 +209,7 @@ background-color:#039;
|
|
|
209
209
|
<legend align=left><span fmLang="directory_information">Directory Information</span></legend>
|
|
210
210
|
<div style="margin: 2px; overflow: hidden; width: 100%">
|
|
211
211
|
<div class=previewsubtitle><span fmLang="directory_name">Directory Name</span></div>
|
|
212
|
-
<div class=previewtext><%= encode(File.basename(@current_path)) %></div>
|
|
212
|
+
<div class=previewtext><%= @controller.encode(File.basename(@current_path)) %></div>
|
|
213
213
|
</div>
|
|
214
214
|
<div style="float: left; margin: 2px; width: 45%">
|
|
215
215
|
<div class=previewsubtitle><span fmLang="sub_directories">Sub-directories</span>:</div>
|
|
@@ -221,7 +221,7 @@ background-color:#039;
|
|
|
221
221
|
<div class=previewsubtitle><span fmLang="files">Files</span>:</div>
|
|
222
222
|
<div class=previewtext><%= @files.size %></div>
|
|
223
223
|
<div class=previewsubtitle><span fmLang="file_total_size">File Total Size</span>:</div>
|
|
224
|
-
<div class=previewtext><%= hsize(@file_total_size) %></div>
|
|
224
|
+
<div class=previewtext><%= @controller.hsize(@file_total_size) %></div>
|
|
225
225
|
|
|
226
226
|
</div>
|
|
227
227
|
<br style="clear: both">
|
|
@@ -9,8 +9,8 @@ excel.type: xls xla ods
|
|
|
9
9
|
ppt.type: ppt pps ppz pot
|
|
10
10
|
help.type: hlp chm
|
|
11
11
|
none.type: rar zip
|
|
12
|
-
resources.url: /
|
|
13
|
-
resources.path: <%= RAILS_ROOT %>/public/
|
|
12
|
+
resources.url: /filemanager/resources
|
|
13
|
+
resources.path: <%= RAILS_ROOT %>/public/filemanager/resources
|
|
14
14
|
encoding.to: UTF-8
|
|
15
15
|
encoding.from:
|
|
16
16
|
temp.dir:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/filemanager.rb
CHANGED
|
@@ -8,12 +8,17 @@
|
|
|
8
8
|
|
|
9
9
|
require 'action_controller/routing'
|
|
10
10
|
require 'fileutils'
|
|
11
|
+
FM_ID = 'filemanager'
|
|
12
|
+
FM_ROOT = File.join(RAILS_ROOT, 'vendor', FM_ID)
|
|
13
|
+
FM_PATH_CONTROLLER = File.join(FM_ROOT, 'app', 'controllers')
|
|
14
|
+
FM_PATH_VIEW = File.join(FM_ROOT, 'app', 'views')
|
|
15
|
+
FM_PATH_PUBLIC = File.join(FM_ROOT, 'public')
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
if $FM_OVERWRITE || ! File.exist?(FM_ROOT)
|
|
18
|
+
fm_rails_path = File.dirname(File.dirname(__FILE__)) + "/#{FM_ID}"
|
|
19
|
+
FileUtils.cp_r(fm_rails_path, File.join(RAILS_ROOT, 'vendor'))
|
|
20
|
+
FileUtils.cp_r(FM_PATH_PUBLIC, RAILS_ROOT)
|
|
21
|
+
FileUtils.rm_rf(FM_PATH_PUBLIC)
|
|
17
22
|
end
|
|
18
23
|
|
|
19
24
|
ActionController::Routing::RouteSet.class_eval do
|
|
@@ -31,9 +36,29 @@ ActionController::Routing::RouteSet.class_eval do
|
|
|
31
36
|
|
|
32
37
|
end
|
|
33
38
|
|
|
39
|
+
Rails::Initializer.class_eval do
|
|
40
|
+
|
|
41
|
+
def fm_set_load_path
|
|
42
|
+
configuration.load_paths << FM_PATH_CONTROLLER
|
|
43
|
+
fm_old_set_load_path
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def fm_initialize_framework_views
|
|
47
|
+
fm_old_initialize_framework_views
|
|
48
|
+
ActionController::Base.view_paths << FM_PATH_VIEW
|
|
49
|
+
configuration.controller_paths << FM_PATH_CONTROLLER
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
alias_method :fm_old_initialize_framework_views, :initialize_framework_views
|
|
53
|
+
alias_method :initialize_framework_views, :fm_initialize_framework_views
|
|
54
|
+
alias_method :fm_old_set_load_path, :set_load_path
|
|
55
|
+
alias_method :set_load_path, :fm_set_load_path
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
|
|
34
59
|
require "erb"
|
|
35
60
|
require "yaml"
|
|
36
|
-
$FM_PROPERTIES = YAML::load(ERB.new(IO.read(
|
|
61
|
+
$FM_PROPERTIES = YAML::load(ERB.new(IO.read(File.join(FM_ROOT, 'filemanager.yml'))).result)
|
|
37
62
|
|
|
38
63
|
FM_IMAGE_TYPES = $FM_PROPERTIES['image.type'].split(' ')
|
|
39
64
|
FM_FLASH_TYPES = $FM_PROPERTIES['flash.type'].split(' ')
|
|
@@ -54,6 +79,6 @@ FM_LOCK_PATH = $FM_PROPERTIES['resources.url']
|
|
|
54
79
|
FM_ENCODING_TO = $FM_PROPERTIES['encoding.to']
|
|
55
80
|
FM_ENCODING_FROM = $FM_PROPERTIES['encoding.from'].nil? ? '' : $FM_PROPERTIES['encoding.from']
|
|
56
81
|
|
|
57
|
-
FM_TEMP_DIR = $FM_PROPERTIES['temp.dir'].nil? ? File.join(
|
|
82
|
+
FM_TEMP_DIR = $FM_PROPERTIES['temp.dir'].nil? ? File.join(FM_ROOT, 'temp') : $FM_PROPERTIES['temp.dir']
|
|
58
83
|
|
|
59
|
-
FileUtils.rm_rf(Dir.glob("#{FM_TEMP_DIR}/*"))
|
|
84
|
+
FileUtils.rm_rf(Dir.glob("#{FM_TEMP_DIR}/*"))
|
|
@@ -8,190 +8,210 @@
|
|
|
8
8
|
module Filemanager
|
|
9
9
|
module Controller
|
|
10
10
|
def set_up
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
11
|
+
@lock_path = FM_LOCK_PATH
|
|
12
|
+
@source = params[:source]
|
|
13
|
+
@source = decode(@source) unless @source.nil?
|
|
14
|
+
@path = (params[:path].nil? || ! params[:path].index('..').nil?) ? '' : params[:path]
|
|
15
|
+
@path = '' if @path == '/'
|
|
16
|
+
@path = decode(@path)
|
|
17
|
+
@resource_path = FM_RESOURCES_PATH
|
|
18
|
+
@current_path = @resource_path + @path
|
|
19
|
+
@current_file = (File.directory?(@current_path) ? Dir.new(@current_path) : File.new(@current_path))
|
|
20
|
+
@parent_path = (!@path.blank? && !@path.rindex('/').nil?) ? (@path.rindex('/') == 0 ? '/' : @path[0..(@path.rindex('/')-1)]) : nil
|
|
21
|
+
@path_suffix = @path.index('.').nil? || @path[-1] == '.' ? '' : @path[@path.index('.')+1..-1].downcase
|
|
22
|
+
if File.directory?(@current_path)
|
|
23
|
+
@all_files = Dir.entries(@current_path)
|
|
24
|
+
@directories = @all_files.map{|f| File.directory?(@current_path + File::SEPARATOR + f) ? f : nil}.compact
|
|
25
|
+
@files = @all_files.map{|f| File.directory?(@current_path + File::SEPARATOR + f) ? nil : f}.compact
|
|
26
|
+
@file_total_size = @files.inject(0){|size, f| size + File.size(@current_path + File::SEPARATOR + f)}
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def tear_off
|
|
31
|
+
@current_file.close unless @current_file.nil?
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def index
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def view
|
|
39
|
+
# respond_to do |wants|
|
|
40
|
+
# wants.js { render :text => File.size(@current_path) > 1000000 ? 'File too big' : File.read(@current_path) }
|
|
41
|
+
# end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def file_content
|
|
45
|
+
File.size(@current_path) > 1000000 ? 'File too big' : File.read(@current_path)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# def office
|
|
49
|
+
# render :action=>'excel' if is_excel?
|
|
50
|
+
# render :action=>'word' if is_word?
|
|
51
|
+
# render :action=>'ppt' if is_ppt?
|
|
52
|
+
# render :action=>'help' if is_help?
|
|
53
|
+
# end
|
|
54
|
+
|
|
55
|
+
def rename
|
|
56
|
+
old_name = @current_path + File::SEPARATOR + decode(params[:old_name])
|
|
57
|
+
new_name = @current_path + File::SEPARATOR + decode(params[:new_name])
|
|
58
|
+
File.rename(old_name, new_name)
|
|
59
|
+
success
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def remove
|
|
63
|
+
FileUtils.rm_rf(@source.map{|s| @current_path + File::SEPARATOR + s})
|
|
64
|
+
success
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def new_file
|
|
68
|
+
File.new(@current_path + File::SEPARATOR + decode(params[:new_name]), 'w')
|
|
69
|
+
success
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def new_folder
|
|
73
|
+
Dir.mkdir(@current_path + File::SEPARATOR + decode(params[:new_name]))
|
|
74
|
+
success
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def copy
|
|
78
|
+
session[:source] = @source.map{|s| @current_path + File::SEPARATOR + s}
|
|
79
|
+
session[:remove] = false
|
|
80
|
+
success
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def cut
|
|
84
|
+
session[:source] = @source.map{|s| @current_path + File::SEPARATOR + s}
|
|
85
|
+
session[:remove] = true
|
|
86
|
+
success
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def paste
|
|
90
|
+
return error if session[:remove].nil? || session[:source].nil?
|
|
91
|
+
begin
|
|
92
|
+
session[:remove] == true ? FileUtils.mv(session[:source], @current_path) : FileUtils.cp_r(session[:source], @current_path)
|
|
93
|
+
session[:remove] = nil
|
|
94
|
+
session[:source] = nil
|
|
95
|
+
success
|
|
96
|
+
rescue => exception
|
|
97
|
+
result(exception)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def download
|
|
103
|
+
now = Time.new
|
|
104
|
+
now = "#{now.to_i}#{now.usec}"
|
|
105
|
+
temp_file = FM_TEMP_DIR + File::SEPARATOR + now + '.zip'
|
|
106
|
+
FileUtils.cd(@current_path) do |dir|
|
|
107
|
+
system "zip -r #{temp_file} #{@source.map{|s| '"' + s + '"'}.join(' ')}"
|
|
108
|
+
end
|
|
109
|
+
send_file(temp_file)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def upload
|
|
114
|
+
file = params[:upload]
|
|
115
|
+
filename = decode(file.original_filename)
|
|
116
|
+
File.open(@current_path + File::SEPARATOR + filename, "wb") do |f|
|
|
117
|
+
f.write(file.read)
|
|
118
|
+
end
|
|
119
|
+
to_index
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
#TODO
|
|
125
|
+
def adjust_size
|
|
126
|
+
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
#TODO
|
|
130
|
+
def rotate
|
|
131
|
+
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
#TODO
|
|
135
|
+
def unzip
|
|
136
|
+
filename = decode(params[:old_name])
|
|
137
|
+
FileUtils.cd(@current_path) do |dir|
|
|
138
|
+
system "unzip -o #{filename}"
|
|
139
|
+
end
|
|
140
|
+
to_index
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def to_index
|
|
144
|
+
redirect_to :action => 'index', :path => encode(@path)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def success
|
|
148
|
+
result("SUCCESS")
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def error()
|
|
152
|
+
result("ERROR")
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def result(message)
|
|
156
|
+
respond_to do |wants|
|
|
157
|
+
wants.js { render :text => message }
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
#methods for view
|
|
162
|
+
def method_missing(method_id, *args)
|
|
163
|
+
method_id_s = method_id.to_s
|
|
164
|
+
if method_id_s[0, 3] == 'is_' && method_id_s[-1, 1] == '?'
|
|
165
|
+
instance_eval %{
|
|
166
|
+
def #{method_id}(*args)
|
|
167
|
+
FM_#{method_id_s[3..-2].upcase}_TYPES.include?(@path_suffix)
|
|
168
|
+
end
|
|
169
|
+
}
|
|
170
|
+
send(method_id, *args)
|
|
171
|
+
else
|
|
172
|
+
super
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def transfer(from, to, target)
|
|
177
|
+
if FM_ENCODING_TO.nil?
|
|
178
|
+
target
|
|
179
|
+
else
|
|
180
|
+
if target.is_a?(Array)
|
|
181
|
+
target.map{|i| to.nil? ? i : Iconv.conv(to, from, i)}
|
|
182
|
+
else
|
|
183
|
+
Iconv.conv(to, from, target)
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def encode(target)
|
|
189
|
+
transfer(FM_ENCODING_FROM, FM_ENCODING_TO, target);
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def decode(target)
|
|
193
|
+
transfer(FM_ENCODING_TO, FM_ENCODING_FROM, target);
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def hsize(size)
|
|
197
|
+
size = size/1024
|
|
198
|
+
if size > 1024
|
|
199
|
+
size = size/1024
|
|
200
|
+
size = format('%0.2f',(size)) + ' mb'
|
|
201
|
+
else
|
|
202
|
+
size = format('%0.2f', size) + ' kb'
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def get_file_type(file)
|
|
207
|
+
type = File.extname(file)
|
|
208
|
+
|
|
209
|
+
unless type.blank?
|
|
210
|
+
type = type.downcase[1..-1]
|
|
211
|
+
return type if FM_SUPPORT_TYPES.include?(type)
|
|
212
|
+
end
|
|
213
|
+
FM_UNKNOWN_TYPE
|
|
214
|
+
end
|
|
215
|
+
|
|
196
216
|
end
|
|
197
217
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: filemanager
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Leon Li
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2008-05-
|
|
12
|
+
date: 2008-05-20 00:00:00 +08:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|
|
@@ -23,12 +23,13 @@ extra_rdoc_files: []
|
|
|
23
23
|
|
|
24
24
|
files:
|
|
25
25
|
- CHANGELOG
|
|
26
|
+
- filemanager
|
|
26
27
|
- lib
|
|
27
28
|
- MIT-LICENSE
|
|
28
29
|
- pkg
|
|
29
|
-
- rails
|
|
30
30
|
- Rakefile
|
|
31
31
|
- README
|
|
32
|
+
- README.zh_CN
|
|
32
33
|
- lib/filemanager
|
|
33
34
|
- lib/filemanager/controller.rb
|
|
34
35
|
- lib/filemanager.rb
|
|
@@ -41,89 +42,85 @@ files:
|
|
|
41
42
|
- lib/locale/win32.rb
|
|
42
43
|
- lib/locale/win32_table.rb
|
|
43
44
|
- lib/locale.rb
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
- rails/public/filemanager/stylesheets/general.css
|
|
124
|
-
- rails/public/filemanager/stylesheets/lightbox.css
|
|
125
|
-
- rails/public/fm_resources
|
|
126
|
-
- rails/public/fm_resources/resources.txt
|
|
45
|
+
- filemanager/app
|
|
46
|
+
- filemanager/app/controllers
|
|
47
|
+
- filemanager/app/controllers/fm
|
|
48
|
+
- filemanager/app/controllers/fm/filemanager_controller.rb
|
|
49
|
+
- filemanager/app/views
|
|
50
|
+
- filemanager/app/views/fm
|
|
51
|
+
- filemanager/app/views/fm/filemanager
|
|
52
|
+
- filemanager/app/views/fm/filemanager/index.html.erb
|
|
53
|
+
- filemanager/app/views/fm/filemanager/view.html.erb
|
|
54
|
+
- filemanager/filemanager.yml
|
|
55
|
+
- filemanager/public
|
|
56
|
+
- filemanager/public/filemanager
|
|
57
|
+
- filemanager/public/filemanager/images
|
|
58
|
+
- filemanager/public/filemanager/images/avi.gif
|
|
59
|
+
- filemanager/public/filemanager/images/box.gif
|
|
60
|
+
- filemanager/public/filemanager/images/bullet.gif
|
|
61
|
+
- filemanager/public/filemanager/images/close.gif
|
|
62
|
+
- filemanager/public/filemanager/images/closelabel.gif
|
|
63
|
+
- filemanager/public/filemanager/images/doc.gif
|
|
64
|
+
- filemanager/public/filemanager/images/donate-button.gif
|
|
65
|
+
- filemanager/public/filemanager/images/download-icon.gif
|
|
66
|
+
- filemanager/public/filemanager/images/folder.gif
|
|
67
|
+
- filemanager/public/filemanager/images/gif.gif
|
|
68
|
+
- filemanager/public/filemanager/images/htm.gif
|
|
69
|
+
- filemanager/public/filemanager/images/html.gif
|
|
70
|
+
- filemanager/public/filemanager/images/image-1.jpg
|
|
71
|
+
- filemanager/public/filemanager/images/image.gif
|
|
72
|
+
- filemanager/public/filemanager/images/jpg.gif
|
|
73
|
+
- filemanager/public/filemanager/images/loading.gif
|
|
74
|
+
- filemanager/public/filemanager/images/mov.gif
|
|
75
|
+
- filemanager/public/filemanager/images/nextlabel.gif
|
|
76
|
+
- filemanager/public/filemanager/images/pdf.gif
|
|
77
|
+
- filemanager/public/filemanager/images/png.gif
|
|
78
|
+
- filemanager/public/filemanager/images/ppt.gif
|
|
79
|
+
- filemanager/public/filemanager/images/prevlabel.gif
|
|
80
|
+
- filemanager/public/filemanager/images/rar.gif
|
|
81
|
+
- filemanager/public/filemanager/images/rm.gif
|
|
82
|
+
- filemanager/public/filemanager/images/rmvb.gif
|
|
83
|
+
- filemanager/public/filemanager/images/separator.gif
|
|
84
|
+
- filemanager/public/filemanager/images/spacer.gif
|
|
85
|
+
- filemanager/public/filemanager/images/swf.gif
|
|
86
|
+
- filemanager/public/filemanager/images/thumb-1.jpg
|
|
87
|
+
- filemanager/public/filemanager/images/tool_copy.gif
|
|
88
|
+
- filemanager/public/filemanager/images/tool_cut.gif
|
|
89
|
+
- filemanager/public/filemanager/images/tool_del.gif
|
|
90
|
+
- filemanager/public/filemanager/images/tool_folder.gif
|
|
91
|
+
- filemanager/public/filemanager/images/tool_imagemanager.gif
|
|
92
|
+
- filemanager/public/filemanager/images/tool_new.gif
|
|
93
|
+
- filemanager/public/filemanager/images/tool_paste.gif
|
|
94
|
+
- filemanager/public/filemanager/images/tool_props.gif
|
|
95
|
+
- filemanager/public/filemanager/images/tool_refresh.gif
|
|
96
|
+
- filemanager/public/filemanager/images/tool_unzip.gif
|
|
97
|
+
- filemanager/public/filemanager/images/tool_upload.gif
|
|
98
|
+
- filemanager/public/filemanager/images/tool_zip.gif
|
|
99
|
+
- filemanager/public/filemanager/images/txt.gif
|
|
100
|
+
- filemanager/public/filemanager/images/unknown.gif
|
|
101
|
+
- filemanager/public/filemanager/images/wmv.gif
|
|
102
|
+
- filemanager/public/filemanager/images/xls.gif
|
|
103
|
+
- filemanager/public/filemanager/images/zip.gif
|
|
104
|
+
- filemanager/public/filemanager/javascripts
|
|
105
|
+
- filemanager/public/filemanager/javascripts/builder.js
|
|
106
|
+
- filemanager/public/filemanager/javascripts/effects.js
|
|
107
|
+
- filemanager/public/filemanager/javascripts/filemanager.js
|
|
108
|
+
- filemanager/public/filemanager/javascripts/lang
|
|
109
|
+
- filemanager/public/filemanager/javascripts/lang/en.js
|
|
110
|
+
- filemanager/public/filemanager/javascripts/lang/zh_CN.js
|
|
111
|
+
- filemanager/public/filemanager/javascripts/lightbox.js
|
|
112
|
+
- filemanager/public/filemanager/javascripts/prototype.js
|
|
113
|
+
- filemanager/public/filemanager/javascripts/prototype_ext.js
|
|
114
|
+
- filemanager/public/filemanager/javascripts/scriptaculous.js
|
|
115
|
+
- filemanager/public/filemanager/javascripts/translate.js
|
|
116
|
+
- filemanager/public/filemanager/resources
|
|
117
|
+
- filemanager/public/filemanager/resources/resources.txt
|
|
118
|
+
- filemanager/public/filemanager/stylesheets
|
|
119
|
+
- filemanager/public/filemanager/stylesheets/filelist.css
|
|
120
|
+
- filemanager/public/filemanager/stylesheets/general.css
|
|
121
|
+
- filemanager/public/filemanager/stylesheets/lightbox.css
|
|
122
|
+
- filemanager/temp
|
|
123
|
+
- filemanager/temp/temp
|
|
127
124
|
has_rdoc: false
|
|
128
125
|
homepage: http://filemanager.rubyforge.org/
|
|
129
126
|
post_install_message:
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
=begin
|
|
2
|
-
filemanager_helper.rb
|
|
3
|
-
Copyright (C) 2008 Leon Li
|
|
4
|
-
|
|
5
|
-
You may redistribute it and/or modify it under the same
|
|
6
|
-
license terms as Ruby.
|
|
7
|
-
=end
|
|
8
|
-
|
|
9
|
-
module Fm
|
|
10
|
-
module FilemanagerHelper
|
|
11
|
-
|
|
12
|
-
def get_file_type(file)
|
|
13
|
-
type = File.extname(file)
|
|
14
|
-
|
|
15
|
-
unless type.blank?
|
|
16
|
-
type = type.downcase[1..-1]
|
|
17
|
-
return type if FM_SUPPORT_TYPES.include?(type)
|
|
18
|
-
end
|
|
19
|
-
FM_UNKNOWN_TYPE
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def get_file_content(path, to=FM_ENCODING_TO, from=FM_ENCODING_FROM)
|
|
23
|
-
if File.new(path).size > 1000000
|
|
24
|
-
'File too big'
|
|
25
|
-
else
|
|
26
|
-
str = File.read(path)
|
|
27
|
-
to.nil? ? str : Iconv.conv(to, from, str)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def transfer(from, to, target)
|
|
32
|
-
if FM_ENCODING_TO.nil?
|
|
33
|
-
target
|
|
34
|
-
else
|
|
35
|
-
if target.is_a?(Array)
|
|
36
|
-
target.map{|i| to.nil? ? i : Iconv.conv(to, from, i)}
|
|
37
|
-
else
|
|
38
|
-
Iconv.conv(to, from, target)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def encode(target)
|
|
44
|
-
transfer(FM_ENCODING_FROM, FM_ENCODING_TO, target);
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def decode(target)
|
|
48
|
-
transfer(FM_ENCODING_TO, FM_ENCODING_FROM, target);
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def hsize(size)
|
|
52
|
-
size = size/1024
|
|
53
|
-
if size > 1024
|
|
54
|
-
size = size/1024
|
|
55
|
-
size = format('%0.2f',(size)) + ' mb'
|
|
56
|
-
else
|
|
57
|
-
size = format('%0.2f', size) + ' kb'
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|