OSDN Git Service

t#32472:add select on profiles
[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         render :template => 'system/filer', :locals => {
18           :items => @original_pictures, :model => OriginalPicture, 
19           :roles => [@user, @admin], :pager => @paginate
20         }
21       }
22       format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) }
23     end
24   end
25
26   def show
27     @item = OriginalPicture.show(params[:id], [@artist, @admin])
28     
29     respond_to do |format|
30       opt = {:type => @item.mime_type, :disposition=>"inline"}
31       format.png { send_data(@item.restore, opt ) }
32       format.gif { send_data(@item.restore, opt ) }
33       format.jpeg { send_data(@item.restore, opt ) }
34       format.html {
35         @original_picture = @item
36         #ライセンス付与のために原画ライセンスグループ作成準備
37         @original_picture_license_group  = OriginalPictureLicenseGroup.new :original_picture_id => @item.id
38         render
39       }
40       format_prof format
41       format.json { render json: @item.to_json(OriginalPicture.show_json_opt)}
42     end
43   end
44
45   def history
46     @original_picture = OriginalPicture.show(params[:id], [@artist, @admin])
47     @history = @original_picture.history
48     
49     respond_to do |format|
50       format.html # index.html.erb
51       format.json { render json: @history.to_json }
52     end
53   end
54   
55   def list
56     @original_pictures = OriginalPicture.all
57
58     respond_to do |format|
59       format.html { render layout: 'system' }
60       format.json { render json: @original_pictures }
61     end
62   end
63
64   def browse
65     @original_picture = OriginalPicture.find(params[:id])
66
67     respond_to do |format|
68       format.html { render layout: 'system' }
69       format.json { render json: @original_picture }
70     end
71   end
72
73   def new
74     @original_picture = OriginalPicture.new
75     @original_picture.supply_default
76
77     respond_to do |format|
78       format.html # new.html.erb
79       format.js
80       format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt) }
81     end
82   end
83
84   def edit
85     @original_picture = OriginalPicture.edit(params[:id], @artist)
86     respond_to do |format|
87       format.html
88       format.js
89     end
90   end
91
92   def create
93     @imager = if params[:original_picture]
94       PettanImager.load set_image params[:original_picture][:file]
95     else
96       nil
97     end
98     @original_picture = OriginalPicture.new
99     @original_picture.supply_default
100     @original_picture.overwrite @artist
101
102     respond_to do |format|
103       if @original_picture.store(@imager)
104         flash[:notice] = I18n.t('flash.notice.created', :model => OriginalPicture.model_name.human)
105         format.html { redirect_to @original_picture }
106         format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture }
107       else
108         flash[:notice] = I18n.t('flash.notice.not_created', :model => OriginalPicture.model_name.human)
109         format.html { render action: "new" }
110         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
111       end
112     end
113   end
114
115   def update
116     @imager = if params[:original_picture]
117       PettanImager.load set_image params[:original_picture][:file]
118     else
119       nil
120     end
121     @original_picture = OriginalPicture.edit(params[:id], @artist)
122     @original_picture.overwrite @artist
123
124     respond_to do |format|
125       if @original_picture.store(@imager)
126         flash[:notice] = I18n.t('flash.notice.updated', :model => OriginalPicture.model_name.human)
127         format.html { redirect_to @original_picture }
128         format.json { render json: @original_picture.to_json(OriginalPicture.show_json_opt), status: :created, location: @original_picture }
129       else
130         flash[:notice] = I18n.t('flash.notice.not_updated', :model => OriginalPicture.model_name.human)
131         format.html { render action: "edit" }
132         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
133       end
134     end
135   end
136
137   def destroy
138     @original_picture = OriginalPicture.edit(params[:id], @artist)
139     
140     respond_to do |format|
141       if @original_picture.destroy_with_resource_picture
142         format.html { redirect_to original_pictures_url }
143         format.json { head :ok }
144       else
145         format.html { redirect_to original_picture_path(@original_picture) }
146         format.json { render json: @original_picture.errors, status: :unprocessable_entity }
147       end
148     end
149   end
150 end