myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2941] trunk/app: Fixed group invite from user pr


From: noreply
Subject: [myexperiment-hackers] [2941] trunk/app: Fixed group invite from user profile
Date: Wed, 22 Feb 2012 09:15:14 +0000 (UTC)

Revision
2941
Author
fbacall
Date
2012-02-22 09:15:13 +0000 (Wed, 22 Feb 2012)

Log Message

Fixed group invite from user profile

Modified Paths

Diff

Modified: trunk/app/controllers/networks_controller.rb (2940 => 2941)


--- trunk/app/controllers/networks_controller.rb	2012-02-22 04:10:39 UTC (rev 2940)
+++ trunk/app/controllers/networks_controller.rb	2012-02-22 09:15:13 UTC (rev 2941)
@@ -68,11 +68,19 @@
             logger.error("EXCEPTION:" + e)
           end
   
-          flash[:notice] = 'An invitation has been sent to the User.'
-          format.html { redirect_to network_url(@network) }
+          if request.xhr?
+            format.html { render :nothing => :true, :status => 200 }
+          else
+            flash[:notice] = 'An invitation has been sent to the User.'
+            format.html { redirect_to network_url(@network) }
+          end
         else
-          flash[:error] = 'Failed to send invitation to User. Please try again or report this.'
-          format.html { redirect_to invite_network_url(@network) }
+          if request.xhr?
+            format.html { render :nothing => :true, :status => 400 }
+          else
+            flash[:error] = 'Failed to send invitation to User. Please try again or report this.'
+            format.html { redirect_to invite_network_url(@network) }
+          end
         end
       end
     else
@@ -82,7 +90,11 @@
         flash[:error] = "User invited is already a member of the group"
       end
       respond_to do |format|
-        format.html { redirect_to invite_network_url(@network) }
+        if request.xhr?
+          format.html { render :nothing => :true, :status => 403 }
+        else
+          format.html { redirect_to invite_network_url(@network) }
+        end
       end
     end
   end

Modified: trunk/app/views/networks/_invite.rhtml (2940 => 2941)


--- trunk/app/views/networks/_invite.rhtml	2012-02-22 04:10:39 UTC (rev 2940)
+++ trunk/app/views/networks/_invite.rhtml	2012-02-22 09:15:13 UTC (rev 2941)
@@ -1,52 +1,53 @@
+<% networks = current.networks_admined(true) %>
+
 <script type="text/_javascript_">
+
+  var invites_in_progress = 0;
+
+  function networkInvitationPending(network_id) {
+    $('group_invite_spinner').show();
+    $('my_network_font_' + network_id).setStyle({color:'red'});
+    $('my_network_' + network_id).disabled = true;
+    //Disable button
+    $("my_networks_button").disabled = true;
+    $("my_networks_button").value = "Inviting (" +
+        invites_in_progress + ((invites_in_progress % 10) == 1 ? " request" : " requests") + " in progress)";
+  }
+
+  function networkInvitationDone(network_id, success) {
+    if(success) {
+      $('my_network_font_' + network_id).setStyle({color:'green'});
+    }
+    else {
+      $('my_network_' + network_id + '_status').update("(An error occurred when sending the invitation)");
+    }
+    $('my_network_' + network_id + '_status').show();
+
+    invites_in_progress--;
+    if (invites_in_progress == 0) {
+      $("my_networks_button").value = "Invite";
+      $("my_networks_button").disabled = false;
+      $('group_invite_spinner').hide();
+    }
+    else {
+      $("my_networks_button").value = "Inviting (" +
+          invites_in_progress + ((invites_in_progress % 10) == 1 ? " request" : " requests") + " in progress)";
+    }
+  }
+
   function inviteAndDisable() {
-	  var invites_in_progress = 0;
-	
-    <% current.networks_owned.each do |n| %>
+    <% networks.each do |n| %>
       <% unless n.member?(user.id) || user.membership_pending?(n.id) %>
-        if ($("my_network_<%= n.id %>").checked && !$("my_network_<%= n.id %>").disabled) {
+        if ($("my_network_<%= n.id -%>").checked && !$("my_network_<%= n.id -%>").disabled) {
+          <%= remote_function(:url ="" membership_invite_network_path(n),
+                              :method => :post,
+                              :loading => "networkInvitationPending(#{n.id});",
+                              :success => "networkInvitationDone(#{n.id}, true);",
+                              :failure => "networkInvitationDone(#{n.id}, false);",
+                              :form => false,
+                              :with => "'user_id=#{user.id}&membership[message]='") -%>;
+
 					invites_in_progress++;
-          var xmlhttp_<%= n.id %> = new XMLHttpRequest();
-					var xmlhttp_<%= n.id %>_params = "&user_id=<%= user.id %>&membership[message]=";
-					
-          xmlhttp_<%= n.id %>.open('POST', '<%= membership_invite_network_path(n) %>', true);
-          
-					// Send the proper header information along with the request
-					xmlhttp_<%= n.id %>.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-					xmlhttp_<%= n.id %>.setRequestHeader("Content-length", xmlhttp_<%= n.id %>_params.length);
-					xmlhttp_<%= n.id %>.setRequestHeader("Connection", "close");
-
-          xmlhttp_<%= n.id %>. {
-            $("my_network_<%= n.id %>").disabled = true;
-          
-					  // DEBUG
-						// alert("ready state : " + xmlhttp_<%= n.id %>.readyState + "\nstatus: " + xmlhttp_<%= n.id %>.status + "\nresponse: " + xmlhttp_<%= n.id %>.responseText);
-						// END OF DEBUG
-            
-						if (xmlhttp_<%= n.id %>.readyState == 4 && xmlhttp_<%= n.id %>.status == 200)
-						{
-              invites_in_progress--;
-							$("my_networks_button").value = "Inviting (" + invites_in_progress + ((invites_in_progress % 10) == 1 ? " request" : " requests") + " in progress)";
-							
-							$("my_network_font_<%= n.id %>").color = "green";
-							$("my_network_<%= n.id %>_status").show();
-              
-              if (invites_in_progress == 0)
-							{
-						  	$("my_networks_button").value = "Invite";
-						  	$("my_networks_button").disabled = false;
-						  }
-            }
-						else
-						{
-							$("my_network_font_<%= n.id %>").color = "red";
-							$("my_networks_button").disabled = true;
-							// $("my_networks_button").value = "Inviting (<%= h(n.title) %>)";
-							$("my_networks_button").value = "Inviting (" + invites_in_progress + ((invites_in_progress % 10) == 1 ? " request" : " requests") + " in progress)";
-            }
-          }
-          
-          xmlhttp_<%= n.id %>.send(xmlhttp_<%= n.id %>_params);
         }
       <% end %>
     <% end %>
@@ -62,18 +63,18 @@
 </p>
 
 <form>
-  <% networks_owned = current.networks_owned -%>
-  <% networks_owned.each_index do |index| %>
-    <% n = networks_owned[index] -%>
+  <% networks.each_with_index do |n, index| %>
     <% if n.member?(user.id) %>
-      <input type="checkbox" id="my_network_<%= n.id %>" value="<%= n.id %>" disabled=true CHECKED /> - <font color="green"><%= h(n.title) %></font> (already a member)
+      <input type="checkbox" id="my_network_<%= n.id -%>" value="<%= n.id -%>" disabled=true CHECKED /> - <span style="color: green"><%= h(n.title) -%></span> (already a member)
     <% elsif user.membership_pending?(n.id) %>
-		  <input type="checkbox" id="my_network_<%= n.id %>" value="<%= n.id %>" disabled=true CHECKED /> - <font color="green"><%= h(n.title) %></font> (waiting for the user to confirm)
+      <input type="checkbox" id="my_network_<%= n.id -%>" value="<%= n.id -%>" disabled=true CHECKED /> - <span style="color: green"><%= h(n.title) -%></span> (waiting for the user to confirm)
 		<% else %>
-      <label for="" n.id %>"><input type="checkbox" id="my_network_<%= n.id %>" value="<%= n.id %>"/> - <font id="my_network_font_<%= n.id %>"><%= h(n.title) %></font></label><span style="display: none;" id="my_network_<%= n.id %>_status"> (invitation was sent successfully)</span>
+      <input type="checkbox" id="my_network_<%= n.id -%>" value="<%= n.id -%>"/>
+      <label for="" n.id %>"> - <span id="my_network_font_<%= n.id %>"><%= h(n.title) %></span></label>
+      <span style="display: none;" id="my_network_<%= n.id -%>_status"> (invitation was sent successfully)</span>
     <% end %>
         
-    <%= "<br />" unless (index.to_i == (networks_owned.length.to_i - 1)) %>
+    <%= "<br />" unless (index.to_i == (networks.length - 1)) %>
   <% end %>
   
   <br/>
@@ -81,6 +82,7 @@
     
   <p>
     <input id="my_networks_button"  type="button" value="Invite" />
+    <img style="display: none" id="group_invite_spinner" src="" />
   </p>
 </form>
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]