89 lines
2.0 KiB
Ruby
89 lines
2.0 KiB
Ruby
class Photos < Application
|
|
def index
|
|
redirect url(:albums)
|
|
end
|
|
|
|
def show
|
|
@photo = Photo.find_by_id(params[:id])
|
|
raise NotFound unless @photo
|
|
@secondary_title = h(@photo.filename)
|
|
|
|
img = get_photo_version(600, 600)
|
|
@width = img.columns
|
|
@height = img.rows
|
|
|
|
render
|
|
end
|
|
|
|
def new
|
|
only_provides :html
|
|
@photo = Photo.new(params[:photo])
|
|
render
|
|
end
|
|
|
|
def create
|
|
@photo = Photo.new(params[:photo])
|
|
if params[:photo][:album_id].to_i == 0
|
|
album = (Album.find_by_name(params[:photo][:album_id]) rescue nil)
|
|
raise NotFound unless album
|
|
@photo.album = album
|
|
end
|
|
if @photo.save
|
|
redirect url(:photo, @photo)
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def edit
|
|
only_provides :html
|
|
@photo = Photo.find_by_id(params[:id])
|
|
raise NotFound unless @photo
|
|
render
|
|
end
|
|
|
|
def update
|
|
@photo = Photo.find_by_id(params[:id])
|
|
raise NotFound unless @photo
|
|
@photo.attributes = params[:photo]
|
|
if params[:photo][:album_id].to_i == 0
|
|
album = (Album.find_by_name(params[:photo][:album_id]) rescue nil)
|
|
raise NotFound unless album
|
|
@photo.album = album
|
|
end
|
|
if @photo.save
|
|
redirect url(:photo, @photo)
|
|
else
|
|
raise BadRequest
|
|
end
|
|
end
|
|
|
|
def delete
|
|
@photo = Photo.find_by_id(params[:id])
|
|
raise NotFound unless @photo
|
|
if @photo.destroy
|
|
redirect url(:photos)
|
|
else
|
|
raise BadRequest
|
|
end
|
|
end
|
|
|
|
def thumbnail
|
|
only_provides :html
|
|
@photo = Photo.find(params[:id])
|
|
raise NotFound unless @photo
|
|
send_data get_photo_version(150, 150).to_blob,
|
|
:filename => @photo.filename, :disposition => 'inline',
|
|
:type => @photo.content_type
|
|
end
|
|
|
|
def screen
|
|
only_provides :html
|
|
@photo = Photo.find(params[:id])
|
|
raise NotFound unless @photo
|
|
send_data get_photo_version(600, 600).to_blob,
|
|
:filename => @photo.filename, :disposition => 'inline',
|
|
:type => @photo.content_type
|
|
end
|
|
end
|