From c46ad0d7fa3c9806f26796b4284ae1440d8c198e Mon Sep 17 00:00:00 2001
From: mishudark <moonsadly@gmail.com>
Date: Sat, 18 Sep 2010 12:33:22 -0500
Subject: [PATCH] photo  description with ajax request

---
 app/views/photos/edit.html.haml    |  1 +
 app/views/photos/show.html.haml    | 48 ++++++++++++++++++++++++++++--
 public/stylesheets/application.css | 21 ++++++++++++-
 3 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/app/views/photos/edit.html.haml b/app/views/photos/edit.html.haml
index f695f850d0..107b679447 100644
--- a/app/views/photos/edit.html.haml
+++ b/app/views/photos/edit.html.haml
@@ -16,6 +16,7 @@
   = form_for @photo do |p|
     = p.text_field :caption, :value => @photo.caption
     = p.submit
+  %div{:class => 'clear'}
 
   #content_bottom
     .back
diff --git a/app/views/photos/show.html.haml b/app/views/photos/show.html.haml
index bbef1cbef1..29b4944419 100644
--- a/app/views/photos/show.html.haml
+++ b/app/views/photos/show.html.haml
@@ -19,15 +19,43 @@
     }
   });
 
-  //asign a flag to determine if textarea has focus
   $(document).ready(function(){
+    //add a clas to verify if a textarea has focus
     $("textarea").live('focus',function(){
       $(this).addClass("hasfocus");
     });
     $("textarea").live('blur',function(){
       $(this).removeClass("hasfocus");
     });
-  });
+
+    //show form to add description
+    $(".edit-desc").click(function(){
+      $(".edit_photo").toggle(); 
+      //$(".caption").toggle();
+    });
+
+    //Add a description with ajax request
+    $("#photo_submit").click(function(evenet){
+      event.preventDefault();
+      var method = $(".edit_photo").attr("method");
+      var url = $(".edit_photo").attr("action");
+      var data = $(".edit_photo").serialize();
+      $(".description").text($("#photo_caption").val());
+      //$(".caption").toggle();
+      $(".edit_photo").toggle();
+
+        $.ajax({  
+          type: method,
+          url: url,  
+          data: data,  
+          success: function(response){  
+            $("#add-description").remove();
+          }
+        });
+
+    });
+
+  });//end document ready
 
 = content_for :page_title do
   = link_to "◂ #{@photo.album.name}", @photo.album
@@ -54,7 +82,21 @@
   #show_photo
     = linked_scaled_photo @photo, @album
     .caption
-      = @photo.caption
+      -if current_user.owns? @album
+        -if @photo.caption and @photo.caption != ""
+          = link_to 'Edit','javascript:void(0)', :id => "edit-desc", :class => "edit-desc"
+      .description
+        = @photo.caption
+
+    -if current_user.owns? @album
+      %div{:class => 'clear'}
+      -if !@photo.caption or @photo.caption == ""
+        = link_to 'Add a description','javascript:void(0)', :id => "add-description", :class => "edit-desc"
+
+    = form_for @photo do |p|
+      = p.text_field :caption, :value => @photo.caption
+      = p.submit
+      %div{:class => 'clear'}
 
   #content_bottom
     .back
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index ed7dae38ec..05c09b3f1d 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -610,6 +610,25 @@ h1.big_text {
 
 #fancybox-close:hover {
   background-color: transparent; }
+.edit_photo{
+  display:none;}
 #photo_caption{
+  width:100%;
   margin:auto;}
-
+.caption .description{
+  text-align:left;
+  margin-left:3em;
+  display:block
+  width:90%;}
+.caption a{
+  float:left;
+}
+#add-description{
+  width:100%;}
+.caption, .edit_photo{
+  margin:auto;
+  width:70%;}
+#photo_submit{
+  float:right;}
+.clear{
+  clear:both;}
-- 
GitLab