From 46f3be4045d57dc8025007de74288cf5a4a5eabd Mon Sep 17 00:00:00 2001 From: elixirel Date: Mon, 18 May 2009 23:14:03 +0900 Subject: [PATCH] add refresh function and moving-path function. --- erbtemp/filemanager.html.erb | 2 +- filemanager.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/erbtemp/filemanager.html.erb b/erbtemp/filemanager.html.erb index 1a64dc8..5fea18e 100644 --- a/erbtemp/filemanager.html.erb +++ b/erbtemp/filemanager.html.erb @@ -56,7 +56,7 @@
- 現在のディレクトリ : <%= db["pwd"] %> [更新] + 現在のディレクトリ : /root/<% db["relpath_list"].each_with_index { |rp, i| %><%= rp %>/<% } %> [更新]

  diff --git a/filemanager.rb b/filemanager.rb index 6624001..e2def5e 100644 --- a/filemanager.rb +++ b/filemanager.rb @@ -161,6 +161,16 @@ class WebFiler end end + # ディレクトリを絶対指定で移動するメソッド + def cd_abs(relpath_arr) + relpath_arr.each { |name| + if name.match(/([^\w]|\.\.|\/|\.)/) != nil + raise "Dir name is wrong." + end + } + @relpath_list = relpath_arr + end + # 現在のディレクトリを表示するメソッド def pwd @basepath + relpath @@ -303,6 +313,40 @@ class Controller db["pwd"] = filer.pwd db["relpath_list"] = filer.relpath_list + # 絶対位置でのディレクトリ移動時 + when "cd_abs" + filer = WebFiler.new(IMGPATH) + filer.relpath_list = db["relpath_list"] + + if params["arg"].to_i >= 0 + begin + movepath = [] + params["arg"].to_i.times { |i| + movepath << db["relpath_list"][i] + } + filer.cd_abs(movepath) + rescue => ever + db["error"] = "移動先のディレクトリが見つかりません!" + end + else + db["error"] = "移動先のディレクトリが見つかりません!" + end + + db["filelist"] = filer.ls.reverse + db["fileinfo"] = filer.lsinfo + db["pwd"] = filer.pwd + db["relpath_list"] = filer.relpath_list + + # 表示更新時 + when "refresh" + filer = WebFiler.new(IMGPATH) + filer.relpath_list = db["relpath_list"] + + db["filelist"] = filer.ls.reverse + db["fileinfo"] = filer.lsinfo + db["pwd"] = filer.pwd + db["relpath_list"] = filer.relpath_list + # 初期表示 else filer = WebFiler.new(IMGPATH) -- 2.11.0