OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / controllers / original_pictures_controller.rb
1 #原画
2 class OriginalPicturesController < ApplicationController
3   layout 'test' if MagicNumber['test_layout']
4   before_filter :authenticate_reader, :only => [:show, :history]
5   before_filter :authenticate_user, :only => [:index, :new, :edit, :create, :update, :destroy]
6   before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
7   before_filter :authenticate_admin!, :only => [:list, :browse]
8   
9   def index
10     @page = OriginalPicture.page params[:page]
11     @page_size = OriginalPicture.page_size params[:page_size]
12     @original_pictures = OriginalPicture.mylist(@artist, @page, @page_size)
13
14     respond_to do |format|
15       format.html {
16         @paginate = OriginalPicture.mylist_paginate(@artist, @page, @page_size)
17       }
18       format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) }
19     end
20   end
21
22   def show
23     @original_picture = OriginalPicture.show(params[:id], [@artist, @admin])
24     
25     respond_to do |format|
26       opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
27       format.png { send_data(@original_picture.restore, opt ) }
28       format.gif { send_data(@original_picture.restore, opt ) }
29       format.jpeg { send_data(@original_picture.restore, opt ) }
30       format.html {
31         #ライセンス付与のために原画ライセンスグループ作成準備
32         @original_picture_license_group  = OriginalPictureLicenseGroup.new :original_picture_id => @original_picture.id
33         render
34       }
35       format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt)}
36     end
37   end
38
39   def history
40     @original_picture = OriginalPicture.show(params[:id], [@artist, @admin])
41     @history = @original_picture.history
42     
43     respond_to do |format|
44       format.html # index.html.erb
45       format.json { render json: @history.to_json }
46     end
47   end
48   
49   def list
50     @original_pictures = OriginalPicture.all
51
52     respond_to do |format|
53       format.html { render layout: 'system' }
54       format.json { render json: @original_pictures }
55     end
56   end
57
58   def browse
59     @original_picture = OriginalPicture.find(params[:id])
60
61     respond_to do |format|
62       format.html { render layout: 'system' }
63       format.json { render json: @original_picture }
64     end
65   end
66
67   def new
68     @original_picture = OriginalPicture.new
69     @original_picture.supply_default
70
71     respond_to do |format|
72       format.html # new.html.erb
73       format.js
74       format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt) }
75     end
76   end
77
78   def edit
79     @original_picture = OriginalPicture.edit(params[:id], @artist)
80     respond_to do |format|
81       format.html
82       format.js
83     end
84   end
85
86   def create
87     @imager = if params[:original_picture]
88       PettanImager.load set_image params[:original_picture][:file]
89     else
90       nil
91     end
92     @original_picture = OriginalPicture.new
93     @original_picture.supply_default
94     @original_picture.overwrite @artist
95
96     respond_to do |format|
97       if @original_picture.store(@imager)
98         flash[:notice] = I18n.t('flash.notice.created', :model => OriginalPicture.model_name.human)
99         format.html { redirect_to @original_picture }
100         format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture }
101       else
102         format.html { render action: "new" }
103         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
104       end
105     end
106   end
107
108   def update
109     @imager = if params[:original_picture]
110       PettanImager.load set_image params[:original_picture][:file]
111     else
112       nil
113     end
114     @original_picture = OriginalPicture.edit(params[:id], @artist)
115     @original_picture.overwrite @artist
116
117     respond_to do |format|
118       if @original_picture.store(@imager)
119         flash[:notice] = I18n.t('flash.notice.updated', :model => OriginalPicture.model_name.human)
120         format.html { redirect_to @original_picture }
121         format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture }
122       else
123         format.html { render action: "edit" }
124         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
125       end
126     end
127   end
128
129   def destroy
130     @original_picture = OriginalPicture.edit(params[:id], @artist)
131     
132     respond_to do |format|
133       if @original_picture.destroy_with_resource_picture
134         format.html { redirect_to original_pictures_url }
135         format.json { head :ok }
136       else
137         format.html { redirect_to original_picture_path(@original_picture) }
138         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
139       end
140     end
141   end
142 end