OSDN Git Service

add: short cut
[pettanr/pettanr.git] / app / controllers / folders_controller.rb
index 318f1c8..f535d7a 100644 (file)
@@ -2,31 +2,95 @@ 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
   
-  def self.model
-    Folder
+  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
+    if params['path']  # secret api
+      list = Folder.where(['name = ?', params['path']])
+      respond_to do |format|
+        format.json {
+          res = {
+            :page_status => {:type => :unlimited},
+            :list => list
+          }
+          render json: res.to_json
+        }
+      end
+    else
+      filer_list
+    end
   end
   
-  def show_html_format format
+  def children_html_format format
     format.html {
-      @folder = @item
+      @filer = Locmare::Filer.new Folder.item_name, @item.children, nil, @operators
+      render :action => :show
+    }
+  end
+  
+  def children_json_format format
+    format.json {
+      @items = @item.children
+      render json: @items.to_json(Folder.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
   
+  def count
+    list_count
+  end
+  
+  def destroy
+    set_model
+    @item = @my_model_class.edit(params[:id], @operators)
+    render_destroy '/' + @my_model_class.path_name
+  end
+  
 end