X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Foriginal_pictures_controller.rb;h=6f70a0ef94d773ca7e32e67f8188b25407a17088;hb=630984f4850fdde8252089bc49bd2614a84f9ef7;hp=ca3bc02b822a694901e1cde1965dbfd115e65685;hpb=c7216b685d62319f15e1cb982a0cfc50274ba043;p=pettanr%2Fpettanr.git diff --git a/app/controllers/original_pictures_controller.rb b/app/controllers/original_pictures_controller.rb index ca3bc02b..6f70a0ef 100644 --- a/app/controllers/original_pictures_controller.rb +++ b/app/controllers/original_pictures_controller.rb @@ -1,39 +1,26 @@ #原画 class OriginalPicturesController < ApplicationController - layout 'test' if Pettanr::TestLayout - before_filter :authenticate_user!, :only => [:index, :show, :history, :new, :edit, :create, :update, :destroy] + layout 'test' if MagicNumber['test_layout'] + before_filter :authenticate_reader, :only => [:show, :history] + before_filter :authenticate_user, :only => [:index, :new, :edit, :create, :update, :destroy] + before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy] before_filter :authenticate_admin!, :only => [:list, :browse] - before_filter :authenticate_artist, :only => [:index, :show, :history, :new, :edit, :create, :update, :destroy] - private - - def set_image(file) - if file.respond_to?(:read) - file.read - else - Base64.decode64(file.to_s.gsub(' ', '+')) #rubyのバグ?+でデコードされるべきキャラがスペースになる - end - end - - public - - # GET /original_pictures - # GET /original_pictures.json def index @page = OriginalPicture.page params[:page] @page_size = OriginalPicture.page_size params[:page_size] - @original_pictures = OriginalPicture.mylist(@artist.id, @page, @page_size) + @original_pictures = OriginalPicture.mylist(@artist, @page, @page_size) respond_to do |format| - format.html # index.html.erb + format.html { + @paginate = OriginalPicture.mylist_paginate(@artist, @page, @page_size) + } format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) } end end - # GET /original_pictures/1 - # GET /original_pictures/1.json def show - @original_picture = OriginalPicture.show(params[:id], @artist) + @original_picture = OriginalPicture.show(params[:id], [@artist, @admin]) respond_to do |format| opt = {:type => @original_picture.mime_type, :disposition=>"inline"} @@ -45,12 +32,13 @@ class OriginalPicturesController < ApplicationController @original_picture_license_group = OriginalPictureLicenseGroup.new :original_picture_id => @original_picture.id render } + format.prof { render :template => 'top/prof', :layout => true } format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt)} end end def history - @original_picture = OriginalPicture.show(params[:id], @artist) + @original_picture = OriginalPicture.show(params[:id], [@artist, @admin]) @history = @original_picture.history respond_to do |format| @@ -77,8 +65,6 @@ class OriginalPicturesController < ApplicationController end end - # GET /original_pictures/new - # GET /original_pictures/new.json def new @original_picture = OriginalPicture.new @original_picture.supply_default @@ -90,61 +76,70 @@ class OriginalPicturesController < ApplicationController end end - # GET /original_pictures/1/edit def edit - @original_picture = OriginalPicture.edit(params[:id], @author) + @original_picture = OriginalPicture.edit(params[:id], @artist) respond_to do |format| format.html format.js end end - # POST /original_pictures - # POST /original_pictures.json def create - @picture_data = set_image params[:original_picture][:file] + @imager = if params[:original_picture] + PettanImager.load set_image params[:original_picture][:file] + else + nil + end @original_picture = OriginalPicture.new - @original_picture.supply_default @artist + @original_picture.supply_default + @original_picture.overwrite @artist respond_to do |format| - if @original_picture.store(@picture_data, @artist) - format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' } + if @original_picture.store(@imager) + flash[:notice] = I18n.t('flash.notice.created', :model => OriginalPicture.model_name.human) + format.html { redirect_to @original_picture } format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture } else + flash[:notice] = I18n.t('flash.notice.not_created', :model => OriginalPicture.model_name.human) format.html { render action: "new" } format.json { render json: @original_picture.errors, status: :unprocessable_entity } end end end - # PUT /original_pictures/1 - # PUT /original_pictures/1.json def update - @picture_data = set_image params[:original_picture][:file] - @original_picture = OriginalPicture.edit(params[:id], @author) + @imager = if params[:original_picture] + PettanImager.load set_image params[:original_picture][:file] + else + nil + end + @original_picture = OriginalPicture.edit(params[:id], @artist) + @original_picture.overwrite @artist respond_to do |format| - if @original_picture.store(@picture_data, @artist) - format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' } + if @original_picture.store(@imager) + flash[:notice] = I18n.t('flash.notice.updated', :model => OriginalPicture.model_name.human) + format.html { redirect_to @original_picture } format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture } else + flash[:notice] = I18n.t('flash.notice.not_updated', :model => OriginalPicture.model_name.human) format.html { render action: "edit" } format.json { render json: @original_picture.errors, status: :unprocessable_entity } end end end - # DELETE /original_pictures/1 - # DELETE /original_pictures/1.json def destroy - @original_picture = OriginalPicture.edit(params[:id], @author) - OriginalPicture.transaction do - @original_picture.destroy - end + @original_picture = OriginalPicture.edit(params[:id], @artist) respond_to do |format| - format.html { redirect_to original_pictures_url } - format.json { head :ok } + if @original_picture.destroy_with_resource_picture + format.html { redirect_to original_pictures_url } + format.json { head :ok } + else + format.html { redirect_to original_picture_path(@original_picture) } + format.json { render json: @original_picture.errors, status: :unprocessable_entity } + end end end end