check for photo existence before offering options or the file

master
Coleman 2008-06-27 20:55:01 -05:00
parent 3dca339ab1
commit 7e0d757d20
3 changed files with 28 additions and 19 deletions

View File

@ -8,9 +8,9 @@ class Photos < Application
raise NotFound unless @photo
@secondary_title = h(@photo.filename)
img = get_photo_version(600, 600)
@width = img.columns
@height = img.rows
img = get_photo_version(600, 600) rescue nil
@width = img.columns rescue 150
@height = img.rows rescue 150
render
end
@ -68,21 +68,24 @@ class Photos < Application
end
end
def thumbnail
def send_rmagicked_image
only_provides :html
@photo = Photo.find(params[:id])
raise NotFound unless @photo
send_data get_photo_version(150, 150).to_blob,
if @photo.exist?
w = case params[:action]
when 'screen'
600
else
150
end
send_data get_photo_version(w, w).to_blob,
:filename => @photo.filename, :disposition => 'inline',
:type => @photo.content_type
else
send_file Merb.root + '/public/images/image-missing.png', :disposition => 'inline'
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
alias_method :thumbnail, :send_rmagicked_image
alias_method :screen, :send_rmagicked_image
end

View File

@ -5,7 +5,11 @@
padding: 0px;
width: <%= @width -%>px;
height: <%= @height -%>px;
<% if @photo.exist? -%>
background-image: url('/photos/screen/<%= @photo.id -%>');
<% else -%>
background-image: url('/images/image-missing.png');
<% end -%>
background-repeat: no-repeat;
}
#photo_block_container {
@ -203,9 +207,11 @@ function toggle_photo_tag_editor(direction)
</div>
</div>
<% if @photo.exist? -%>
<div id="photo_tags">
<%= partial 'photo_tags/photo_tags' %>
</div>
<% end -%>
<script type="text/javascript">
//<![CDATA[
@ -223,9 +229,9 @@ function toggle_photo_tag_editor(direction)
<% throw_content :for_sidebar do -%>
<a href="<%= url(:album, :id => @photo.album.name.gsub(/ /, '_')) -%>"><img src="/images/camera-photo.png" /> Back to <%= @photo.album.name -%></a><br />
<% if allowed_to?(:edit_photo, @photo) -%><a href="<%= url(:edit_photo, :id => @photo.id) -%>" rel="nofollow"><img src="/images/document-save.png" /> Edit photo</a><br /><% end %>
<% if allowed_to?(:edit_photo, @photo) and @photo.exist? -%><a href="<%= url(:edit_photo, :id => @photo.id) -%>" rel="nofollow"><img src="/images/document-save.png" /> Edit photo</a><br /><% end %>
<% if allowed_to?(:delete_photo, @photo) -%><a href="<%= url(:delete_photo, :id => @photo.id) -%>" onclick="if(!confirm('Are you sure you want to delete this photo?')){return false;}" rel="nofollow"><img src="/images/edit-delete.png" /> Destroy photo</a><br /><% end -%>
<a href="<%= photo_url(@photo) -%>"><img src="/images/image-x-generic.png" /> Download original</a><br />
<% if @photo.exist? -%><a href="<%= photo_url(@photo) -%>"><img src="/images/image-x-generic.png" /> Download original</a><br /><% end -%>
<% if allowed_to?(:upload_images) -%><a href="<%= url(:new_photo, :photo => { :album_id => @photo.album_id }) -%>"><img src="/images/emblem-photos.png" /> Upload Image</a><br /><% end %>
<% if allowed_to?(:tag_photo) -%><span id="show_photo_tag_editor"><a href="#" onclick="toggle_photo_tag_editor(true)"><img src="/images/face-monkey.png" /> Tag Image</a></span><span id="hide_photo_tag_editor" style="display: none;"><a href="#" onclick="toggle_photo_tag_editor(false); return false;"><img src="/images/face-monkey.png" /> Done Tagging</a></span><br /><% end %>
<% if allowed_to?(:tag_photo) and @photo.exist? -%><span id="show_photo_tag_editor"><a href="#" onclick="toggle_photo_tag_editor(true)"><img src="/images/face-monkey.png" /> Tag Image</a></span><span id="hide_photo_tag_editor" style="display: none;"><a href="#" onclick="toggle_photo_tag_editor(false); return false;"><img src="/images/face-monkey.png" /> Done Tagging</a></span><br /><% end %>
<% end -%>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB