OSDN Git Service

mrg
[pettanr/pettanr.git] / app / controllers / folders_controller.rb
index 318f1c8..cbf5918 100644 (file)
@@ -2,7 +2,7 @@ class FoldersController < ApplicationController
   if Manifest.manifest.magic_numbers['run_mode'] == 0
     before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
   else
-    before_filter :authenticate_reader, :only => [:index, :show]
+    before_filter :authenticate_reader, :only => [:root, :index, :show, :watch]
     before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy]
   end
   
@@ -10,22 +10,67 @@ class FoldersController < ApplicationController
     Folder
   end
   
+  def root
+    set_model
+    @item = Folder.root
+    if params[:ref]
+      respond_to do |format|
+        show_json_format format
+      end
+    else
+      respond_to do |format|
+        children_html_format format
+        children_json_format format
+      end
+    end
+  end
+  
+  def watch
+    set_show
+    respond_to do |format|
+      format.json { render json: @item.to_json }
+    end
+  end
+  
   def index
     filer_list
   end
   
-  def show_html_format format
+  def children_html_format format
     format.html {
-      @folder = @item
+      @filer = Locmare::Filer.new self.class.model.item_name, @item.children, nil, :none, @operators
+      render :action => :show
+    }
+  end
+  
+  def children_json_format format
+    format.json {
+      @items = @item.children
+      render json: @items.to_json(self.class.model.list_json_opt)
     }
   end
   
   def show
     set_show
-    respond_to do |format|
-      show_html_format format
-      show_prof_format format
-      show_json_format format
+    if params[:ref]
+      respond_to do |format|
+        show_json_format format
+      end
+    else
+      if params[:format] == 'prof'
+        respond_to do |format|
+          show_prof_format format
+        end
+      else
+        if @item.category_id == 10
+          redirect_to @item.remote_name
+        else
+          respond_to do |format|
+            children_html_format format
+            children_json_format format
+          end
+        end
+      end
     end
   end