new photo form now loads through ajax

This commit is contained in:
Raphael 2010-08-23 13:58:33 -07:00
parent efb4100e01
commit ae6f0fdc51
5 changed files with 34 additions and 18 deletions

View file

@ -2,6 +2,7 @@ class PhotosController < ApplicationController
before_filter :authenticate_user! before_filter :authenticate_user!
def create def create
render :nothing => true
begin begin
@photo = current_user.post(:photo, params) @photo = current_user.post(:photo, params)
@ -21,6 +22,7 @@ class PhotosController < ApplicationController
def new def new
@photo = Photo.new @photo = Photo.new
@album = current_user.album_by_id(params[:album_id])
render :partial => "new_photo" render :partial => "new_photo"
end end

View file

@ -47,8 +47,6 @@ class User
model_class = class_name.to_s.camelize.constantize model_class = class_name.to_s.camelize.constantize
pp options
post = model_class.instantiate(options) post = model_class.instantiate(options)
post.creator_signature = post.sign_with_key(encryption_key) post.creator_signature = post.sign_with_key(encryption_key)
post.save post.save
@ -327,6 +325,11 @@ class User
groups.detect{|x| x.id == id } groups.detect{|x| x.id == id }
end end
def album_by_id( id )
id = ensure_bson id
albums.detect{|x| x.id == id }
end
def groups_with_person person def groups_with_person person
id = ensure_bson person.id id = ensure_bson person.id
groups.select {|group| group.person_ids.include? id} groups.select {|group| group.person_ids.include? id}

View file

@ -1,3 +1,9 @@
:javascript
$(document).ready(function(){
reset_photo_fancybox();
});
.album_id{:id => @album.id, :style => "display:hidden;"}
.back= link_to '⇧ albums', albums_path .back= link_to '⇧ albums', albums_path
%h1.big_text %h1.big_text
@ -11,7 +17,6 @@
.yo{:style => "display:none;"} .yo{:style => "display:none;"}
#new_photo_pane #new_photo_pane
= render "photos/new_photo", :photo => @photo, :album => @album
.sub_header .sub_header
="updated #{how_long_ago(@album)}" ="updated #{how_long_ago(@album)}"

View file

@ -2,7 +2,7 @@
$(function() { $(function() {
$("#photo_image").html5_upload({ $("#photo_image").html5_upload({
// WE INSERT ALBUM_ID PARAM HERE // WE INSERT ALBUM_ID PARAM HERE
url: "/photos?album_id=#{album.id}", url: "/photos?album_id=#{@album.id}",
sendBoundary: window.FormData || $.browser.mozilla, sendBoundary: window.FormData || $.browser.mozilla,
setName: function(text) { setName: function(text) {
$("#progress_report_name").text(text); $("#progress_report_name").text(text);
@ -12,8 +12,9 @@
$("#add_photo_loader").fadeOut(400); $("#add_photo_loader").fadeOut(400);
$("#photo_title_status").text("Done!"); $("#photo_title_status").text("Done!");
$("#progress_report").html(""); $("#progress_report").html("Good job me!");
resetPhotoButton
$("#add_photo_button").addClass("uploading_complete");
}, },
onStart: function(event, total){ onStart: function(event, total){
$("#add_photo_button").html( "Uploading Photos" ); $("#add_photo_button").html( "Uploading Photos" );
@ -27,21 +28,13 @@
}); });
}); });
function resetPhotoButton{
$("#add_photo_button").click(function (evt){
$("#new_photo_pane").html($.get("photos/ajax_new"));
$("#add_photo_button").unbind();
$("#add_photo_button").fancybox();
}
}
%h1 %h1
%span{:id=>"photo_title_status"} %span{:id=>"photo_title_status"}
Add photos to Add photos to
%i= album.name %i= @album.name
= form_for photo, :html => {:multipart => true} do |f| = form_for @photo, :html => {:multipart => true} do |f|
= f.error_messages = f.error_messages
= f.hidden_field :album_id, :value => album.id = f.hidden_field :album_id, :value => @album.id
= f.file_field :image, :multiple => 'multiple' = f.file_field :image, :multiple => 'multiple'
#progress_report{ :style => "display:none;text-align:center;" } #progress_report{ :style => "display:none;text-align:center;" }

View file

@ -71,7 +71,14 @@ $(document).ready(function(){
$("#add_album_button").fancybox(); $("#add_album_button").fancybox();
$("#add_group_button").fancybox(); $("#add_group_button").fancybox();
$("#add_request_button").fancybox({ 'titleShow': false }); $("#add_request_button").fancybox({ 'titleShow': false });
$("#add_photo_button").fancybox(); $("#add_photo_button").fancybox({
'onClosed' : function(){
if($("#add_photo_button").hasClass("uploading_complete")){
$("#add_photo_button").removeClass("uploading_complete");
reset_photo_fancybox();
}
}
});
//pane_toggler_button("photo"); //pane_toggler_button("photo");
@ -91,6 +98,12 @@ $(document).ready(function(){
});//end document ready });//end document ready
function reset_photo_fancybox(){
album_id = $(".album_id")[0].id;
ajax = $.get("/photos/new?album_id=" + album_id, function(){
$("#new_photo_pane").html(ajax.responseText)
});
}
function pane_toggler_button( name ) { function pane_toggler_button( name ) {