X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fresource_pictures_controller.rb;h=47772db5f3443abd353a220b0abe8a48bebb90f3;hb=eff044772f42afece0e021e0142974b67bfd978c;hp=b630cdd24eff2b5a3c08a9937d46824c7e5cde29;hpb=e5489fabe79c2e0c28a61e7af03162e9f8b4bdfe;p=pettanr%2Fpettanr.git diff --git a/app/controllers/resource_pictures_controller.rb b/app/controllers/resource_pictures_controller.rb index b630cdd2..47772db5 100644 --- a/app/controllers/resource_pictures_controller.rb +++ b/app/controllers/resource_pictures_controller.rb @@ -1,50 +1,87 @@ class ResourcePicturesController < ApplicationController - layout 'test' if Pettanr::TestLayout - before_filter :authenticate_user!, :only => [:index, :show, :credit, :new, :create, :update] - before_filter :authenticate_admin!, :only => [:list, :browse] + if Manifest.manifest.magic_numbers['run_mode'] == 0 + before_filter :authenticate_user, :only => [:new, :create, :update, :destroy] + before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy] + else + before_filter :authenticate_resource_reader, :only => [ + :index, :show, :credit, :by_original_picture, :by_license, :by_artist, :count, :count_by_license, :count_by_artist + ] + before_filter :authenticate_user, :only => [:new, :create, :update, :destroy] + before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy] + end - # GET /resource_pictures - # GET /resource_pictures.json + def self.model + ResourcePicture + end + def index - @page = ResourcePicture.page params[:page] - @page_size = ResourcePicture.page_size params[:page_size] - @resource_pictures = ResourcePicture.list({}, @page, @page_size) - - respond_to do |format| - format.html # index.html.erb - format.json { render :json => @resource_pictures.to_json(ResourcePicture.list_json_opt) } - end + filer_list end - - # GET /resource_pictures/1 - # GET /resource_pictures/1.json + + def by_original_picture + filer_list + end + + def by_license + filer_list + end + + def by_artist + filer_list + end + + def show_html_format format + format.html { + @resource_picture = @item + } + end + def show - @resource_picture = ResourcePicture.show(params[:id]) - + set_show respond_to do |format| - opt = {:type => @resource_picture.mime_type, :disposition=>"inline"} - format.png { send_data(@resource_picture.restore(params[:subdir]), opt ) } - format.gif { send_data(@resource_picture.restore(params[:subdir]), opt ) } - format.jpeg { send_data(@resource_picture.restore(params[:subdir]), opt ) } - format.html # show.html.erb - format.json { render :json => @resource_picture.to_json(ResourcePicture.list_json_opt)} + opt = {:type => @item.mime_type, :disposition=>"inline"} + format.png { send_data(@item.restore(params[:subdir]), opt ) } + format.gif { send_data(@item.restore(params[:subdir]), opt ) } + format.jpeg { send_data(@item.restore(params[:subdir]), opt ) } + show_html_format format + show_prof_format format + show_json_format format end end def credit - @resource_picture = ResourcePicture.show(params[:id]) + @resource_picture = ResourcePicture.show(params[:id], @operators) respond_to do |format| format.html { render :layout => false } # show.html.erb - format.json { render :json => @resource_picture.to_json(ResourcePicture.list_json_opt)} + format.json { render :json => @resource_picture.to_json(ResourcePicture.show_json_opt)} end end + def count + list_count + end + + def count_by_license + list_count + end + + def count_by_artist + list_count + end + def new - @original_picture = OriginalPicture.show params[:original_picture_id], @artist + @original_picture = OriginalPicture.edit params[:original_picture_id], @operators + @imager = PettanImager.load @original_picture.restore @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group] @license_group = LicenseGroup.show @original_picture_license_group.license_group_id - @resource_picture = @original_picture.resource_picture || ResourcePicture.new(params[:resource_picture]) + @resource_picture = @original_picture.resource_picture + unless @resource_picture + @resource_picture = ResourcePicture.new + @resource_picture.supply_default + end + @resource_picture.attributes = params[:resource_picture] + @resource_picture.overwrite @original_picture @license = @resource_picture.license respond_to do |format| @@ -54,38 +91,40 @@ class ResourcePicturesController < ApplicationController end def create - @original_picture = OriginalPicture.show params[:original_picture_id], @artist + @original_picture = OriginalPicture.edit params[:original_picture_id], @operators + @imager = PettanImager.load @original_picture.restore @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group] - @license_group = LicenseGroup.show @original_picture_license_group.license_group_id - @resource_picture = ResourcePicture.new(params[:resource_picture]) + @license_group = LicenseGroup.show @original_picture_license_group.license_group_id, @operators + @resource_picture = @original_picture.resource_picture + unless @resource_picture + @resource_picture = ResourcePicture.new + @resource_picture.supply_default + end + @resource_picture.attributes = params[:resource_picture] + @resource_picture.overwrite @original_picture @license = @resource_picture.license respond_to do |format| - if @resource_picture.store + if @resource_picture.store(@imager) format.html { redirect_to @resource_picture } - format.js { render json: @resource_picture, status: :created, location: @resource_picture } + format.json { render json: @resource_picture.to_json(ResourcePicture.show_json_opt), status: :created, location: @resource_picture } else format.html { render action: "new" } - format.js { render action: "new" } + format.json { render json: @resource_picture.errors, status: :unprocessable_entity } end end end - def update - @original_picture = OriginalPicture.show params[:original_picture_id], @artist - @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group] - @license_group = LicenseGroup.show @original_picture_license_group.license_group_id - @resource_picture = @original_picture.resource_picture - @resource_picture.attributes = params[:resource_picture] - @license = @resource_picture.license + def destroy + @resource_picture = ResourcePicture.edit(params[:id], @operators) respond_to do |format| - if @resource_picture.store - format.html { redirect_to @resource_picture } - format.js { render json: @resource_picture, status: :created, location: @resource_picture } + if @resource_picture.unpublish + format.html { redirect_to :controller => '/home', :action => :resource_pictures } + format.json { head :ok } else - format.html { render action: "new" } - format.js { render action: "new" } + format.html { redirect_to resource_picture_path(@resource_picture) } + format.json { render json: @resource_picture.errors, status: :unprocessable_entity } end end end @@ -97,22 +136,4 @@ class ResourcePicturesController < ApplicationController end end - def list - @resource_pictures = ResourcePicture.all - - respond_to do |format| - format.html { render layout: 'system' } - format.json { render json: @resource_pictures } - end - end - - def browse - @resource_picture = ResourcePicture.find(params[:id]) - - respond_to do |format| - format.html { render layout: 'system' } - format.json { render json: @resource_picture } - end - end - end