OSDN Git Service

t#30143:au and ar change
[pettanr/pettanr.git] / app / controllers / artists_controller.rb
index 442890a..acd5fa2 100644 (file)
@@ -1,54 +1,94 @@
 class ArtistsController < ApplicationController
+  layout 'test' if MagicNumber['test_layout']
+  before_filter :authenticate_user!, :only => [:index, :show, :new, :create, :edit, :update, :destroy]
+  before_filter :authenticate_author, :only => [:index, :show, :new, :create, :edit, :update, :destroy]
+  before_filter :authenticate_admin!, :only => [:list, :browse]
+
   # GET /artists
   # GET /artists.json
   def index
-    @artists = Artist.all
+    @page = Artist.page params[:page]
+    @page_size = Artist.page_size params[:page_size]
+    @artists = Artist.list(@page, @page_size)
 
     respond_to do |format|
       format.html # index.html.erb
-      format.json { render json: @artists }
+      format.json { render :json => @artists.to_json(Artist.list_json_opt) }
     end
   end
 
   # GET /artists/1
   # GET /artists/1.json
   def show
-    @artist = Artist.find(params[:id])
+    @ar = Artist.show(params[:id], @author)
 
     respond_to do |format|
       format.html # show.html.erb
-      format.json { render json: @artist }
+      format.json { render :json => @ar.to_json(Artist.show_json_opt) }
+    end
+  end
+
+  def count
+    @ar = {:count => Artist.visible_count}
+    respond_to do |format|
+      format.json { render json: @ar.to_json }
+    end
+  end
+  
+  def list
+    @artists = Artist.all
+
+    respond_to do |format|
+      format.html { render layout: 'system' }
+      format.json { render json: @artists }
+    end
+  end
+
+  def browse
+    @ar = Artist.find(params[:id])
+
+    respond_to do |format|
+      format.html { render layout: 'system' }
+      format.json { render json: @ar }
     end
   end
 
   # GET /artists/new
   # GET /artists/new.json
   def new
-    @artist = Artist.new
+    @ar = Artist.new
+    @ar.supply_default 
 
     respond_to do |format|
       format.html # new.html.erb
-      format.json { render json: @artist }
+      format.js
+      format.json { render json: @ar.to_json(Artist.show_json_opt) }
     end
   end
 
   # GET /artists/1/edit
   def edit
-    @artist = Artist.find(params[:id])
+    @ar = Artist.edit(params[:id], @author)
+    respond_to do |format|
+      format.html 
+      format.js
+    end
   end
 
   # POST /artists
   # POST /artists.json
   def create
-    @artist = Artist.new(params[:artist])
-
+    @ar = Artist.new()
+    @ar.supply_default 
+    @ar.attributes = params[:artist]
+    @ar.overwrite @author
     respond_to do |format|
-      if @artist.save
-        format.html { redirect_to @artist, notice: 'Artist was successfully created.' }
-        format.json { render json: @artist, status: :created, location: @artist }
+      if @ar.save
+        format.html { redirect_to root_path, notice: 'Artist was successfully created.' }
+        format.json { render json: @ar.to_json(Artist.show_json_opt), status: :created, location: @artist }
       else
         format.html { render action: "new" }
-        format.json { render json: @artist.errors, status: :unprocessable_entity }
+        format.json { render json: @ar.errors, status: :unprocessable_entity }
       end
     end
   end
@@ -56,15 +96,17 @@ class ArtistsController < ApplicationController
   # PUT /artists/1
   # PUT /artists/1.json
   def update
-    @artist = Artist.find(params[:id])
+    @ar = Artist.edit(params[:id], @author)
+    @ar.attributes = params[:artist]
+    @ar.overwrite @author
 
     respond_to do |format|
-      if @artist.update_attributes(params[:artist])
-        format.html { redirect_to @artist, notice: 'Artist was successfully updated.' }
+      if @ar.save
+        format.html { redirect_to '/home/configure', notice: 'Artist was successfully updated.' }
         format.json { head :ok }
       else
         format.html { render action: "edit" }
-        format.json { render json: @artist.errors, status: :unprocessable_entity }
+        format.json { render json: @ar.errors, status: :unprocessable_entity }
       end
     end
   end
@@ -72,8 +114,8 @@ class ArtistsController < ApplicationController
   # DELETE /artists/1
   # DELETE /artists/1.json
   def destroy
-    @artist = Artist.find(params[:id])
-    @artist.destroy
+    @ar = Artist.edit(params[:id], @author)
+    @ar.destroy
 
     respond_to do |format|
       format.html { redirect_to artists_url }