OSDN Git Service

add: short cut
[pettanr/pettanr.git] / app / controllers / folders_controller.rb
index fd8411e..f535d7a 100644 (file)
@@ -2,52 +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 => [:root, :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
-  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|
-      show_html_format format
-      show_json_format 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 {
-      @filer = Locmare::Filer.new self.class.model.item_name, @item.children, nil, :none, @operators
+      @filer = Locmare::Filer.new Folder.item_name, @item.children, nil, @operators
       render :action => :show
     }
   end
   
-  def show_json_format format
+  def children_json_format format
     format.json {
       @items = @item.children
-      render json: @items.to_json(self.class.model.list_json_opt)
+      render json: @items.to_json(Folder.list_json_opt)
     }
   end
   
   def show
     set_show
-    if @item.category_id == 10
-      redirect_to @item.remote_name
-    else
+    if params[:ref]
       respond_to do |format|
-        show_html_format format
-        show_prof_format 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