Browse Source

Merge pull request #587 from AngelFQC/fix-chat

Fix send invitations to friends
Angel Fernando Quiroz Campos 10 years ago
parent
commit
e0bdb63a43

+ 4 - 2
main/inc/ajax/message.ajax.php

@@ -28,8 +28,10 @@ switch ($action) {
         }
         break;
     case 'send_invitation':
-        $subject = isset($_REQUEST['subject']) ? $_REQUEST['subject'] : null;
-        SocialManager::send_invitation_friend_user($_REQUEST['user_id'], $subject, $_REQUEST['content']);
+        $subject = isset($_REQUEST['subject']) ? trim($_REQUEST['subject']) : null;
+        $invitationContent = isset($_REQUEST['content']) ? trim($_REQUEST['content']) : null;
+
+        SocialManager::send_invitation_friend_user($_REQUEST['user_id'], $subject, $invitationContent);
         break;
     case 'find_users':
         if (api_is_anonymous()) {

+ 5 - 6
main/inc/lib/message.lib.php

@@ -1387,19 +1387,18 @@ class MessageManager
     public static function generate_message_form($id, $params = array())
     {
         $form = new FormValidator('send_message');
-        $form->addElement('text', 'subject', get_lang('Subject'), array('id' => 'subject_id'));
-        $form->addElement('textarea', 'content', get_lang('Message'), array('id' => 'content_id', 'rows' => '5'));
+        $form->addText('subject', get_lang('Subject'), false, ['id' => 'subject_id']);
+        $form->addTextarea('content', get_lang('Message'), ['id' => 'content_id', 'rows' => '5']);
 
         return $form->return_form();
     }
 
     public static function generate_invitation_form($id, $params = array())
     {
-        $form = new FormValidator('send_invitation', null, 'post', null, array('id' => $id.'_form', 'class' => 'form-vertical'));
+        $form = new FormValidator('send_invitation');
         //$form->addElement('text', 'subject', get_lang('Subject'), array('id' => 'subject_id'));
-        $form->addElement('textarea', 'content', get_lang('AddPersonalMessage'), array('id' => 'content_invitation_id', 'rows' => '5', 'class' => 'span5'));
-        $div = Display::div($form->return_form(), array('id' => $id.'_div', 'style' => 'display:none'));
-        return $div;
+        $form->addTextarea('content', get_lang('AddPersonalMessage'), ['id' => 'content_invitation_id', 'rows' => 5]);
+        return $form->return_form();
     }
 
     //@todo this functions should be in the message class

+ 1 - 1
main/inc/lib/social.lib.php

@@ -771,7 +771,7 @@ class SocialManager extends UserManager
                 $html .= '<li><a href="'.api_get_path(WEB_CODE_PATH).'social/invitations.php">'.Display::return_icon('invitation.png', get_lang('YouAlreadySentAnInvitation')).'&nbsp;&nbsp;'.get_lang('YouAlreadySentAnInvitation').'</a></li>';
             } else {
                 if (!$show_full_profile) {
-                    $html .= '<li><a  href="javascript:void(0);" onclick="javascript:send_invitation_to_user(\''.$user_id.'\');" title="'.get_lang('SendInvitation').'">'.Display :: return_icon('invitation.png', get_lang('SocialInvitationToFriends')).'&nbsp;'.get_lang('SendInvitation').'</a></li>';
+                    $html .= '<li><a class="btn-to-send-invitation" href="#" data-send-to="' . $user_id . '" title="'.get_lang('SendInvitation').'">'.Display :: return_icon('invitation.png', get_lang('SocialInvitationToFriends')).'&nbsp;'.get_lang('SendInvitation').'</a></li>';
                 }
             }
 

+ 1 - 112
main/social/profile.php

@@ -134,105 +134,7 @@ if (file_exists($timeAgoLocaleDir)) {
 
 $htmlHeadXtra[] = '<script>
 
-function checkLength( o, n, min, max ) {
-    if ( o.val().length > max || o.val().length < min ) {
-        o.addClass( "ui-state-error" );
-        //updateTips( "Length of " + n + " must be between " + min + " and " + max + "." );
-        return false;
-    } else {
-        return true;
-    }
-}
-
-function send_invitation_to_user(user_id) {
-    var content = $( "#content_invitation_id" );
-    $("#send_invitation_form").show();
-    $("#send_invitation_div").dialog({
-        modal:true,
-        buttons: {
-            "'.  addslashes(get_lang('SendInvitation')).'": function() {
-                var bValid = true;
-                bValid = bValid && checkLength( content, "content", 1, 255 );
-                if (bValid) {
-                    var url = "'.$ajax_url.'?a=send_invitation&user_id="+user_id;
-                    var params = $("#send_invitation_form").serialize();
-                    $.ajax({
-                        url: url+"&"+params,
-                        success:function(data) {
-                            $("#message_ajax_reponse").attr("class", "");
-                            $("#message_ajax_reponse").html(data);
-                            $("#message_ajax_reponse").show();
-
-                            $("#send_invitation_div").dialog({ buttons:{}});
-
-                            $("#send_invitation_form").hide();
-                            $("#send_invitation_div").dialog("close");
-                            $("#content_invitation_id").val("");
-                        }
-                    });
-                }
-            },
-        },
-        close: function() {
-        }
-    });
-    $("#send_invitation_div").dialog("open");
-    //prevent the browser to follow the link
-}
-
-function toogle_course (element_html, course_code){
-    elem_id=$(element_html).attr("id");
-    id_elem=elem_id.split("_");
-    ident="div#div_group_"+id_elem[1];
-
-    id_button="#btn_"+id_elem[1];
-    elem_src=$(id_button).attr("src");
-    image_show=elem_src.split("/");
-    my_image=image_show[2];
-    var content = \'social_content\' + id_elem[1];
-    if (my_image=="nolines_plus.gif") {
-        $(id_button).attr("src","../img/nolines_minus.gif"); var action = "load_course";
-        $("div#"+content).show("fast");
-    } else {
-        $("div#"+content).hide("fast");
-        $(id_button).attr("src","../img/nolines_plus.gif"); var action = "unload";
-        return false;
-    }
-
-     $.ajax({
-        contentType: "application/x-www-form-urlencoded",
-        beforeSend: function(objeto) {
-        $("div#"+content).html("<img src=\'../inc/lib/javascript/indicator.gif\' />"); },
-        type: "POST",
-        url: "'.api_get_path(WEB_AJAX_PATH).'social.ajax.php?a=toogle_course",
-        data: "load_ajax="+id_elem+"&action="+action+"&course_code="+course_code,
-        success: function(datos) {
-         $("div#"+content).html(datos);
-        }
-    });
-}
-
 $(document).ready(function (){
-    $("input#id_btn_send_invitation").bind("click", function(){
-        if (confirm("'.get_lang('SendMessageInvitation', '').'")) {
-            $("#form_register_friend").submit();
-        }
-    });
-
-    $("#send_message_div").dialog({
-        autoOpen: false,
-        modal    : false,
-        width    : 550,
-        height    : 300
-       });
-
-    $("#send_invitation_div").dialog({
-        autoOpen: false,
-        modal    : false,
-        width    : 550,
-        height    : 300
-       });
-
     var container = $("#wallMessages");
     container.jscroll({
         loadingHtml: "<div class=\"well_border\">' . get_lang('Loading') . ' </div>",
@@ -248,19 +150,6 @@ function timeAgo() {
     $(".timeago").timeago();
 }
 
-function display_hide () {
-    setTimeout("hide_display_message()",3000);
-}
-
-function hide_display_message () {
-    $("div#display_response_id").html("");
-    try {
-        $("#txt_subject_id").val("");
-        $("#txt_area_invite").val("");
-    }catch(e) {
-        $("#txt_area_invite").val("");
-    }
-}
 function register_friend(element_input) {
     if(confirm("'.get_lang('AddToFriends').'")) {
         name_button=$(element_input).attr("id");
@@ -838,7 +727,6 @@ if ($show_full_profile) {
     }
 }
 
-$social_right_content .= MessageManager::generate_invitation_form('send_invitation');
 
 
 $tpl = new Template(get_lang('Social'));
@@ -857,6 +745,7 @@ $tpl->assign('socialAutoExtendLink', $socialAutoExtendLink);
 
 $formModalTpl =  new Template();
 $formModalTpl->assign('messageForm', MessageManager::generate_message_form('send_message'));
+$formModalTpl->assign('invitationForm', MessageManager::generate_invitation_form('send_invitation'));
 $formModals = $formModalTpl->fetch('default/social/form_modals.tpl');
 
 $tpl->assign('formModals', $formModals);

+ 2 - 73
main/social/search.php

@@ -14,77 +14,6 @@ require_once api_get_path(LIBRARY_PATH).'magpierss/rss_fetch.inc';
 $ajax_url = api_get_path(WEB_AJAX_PATH).'message.ajax.php';
 api_block_anonymous_users();
 
-$htmlHeadXtra[] = '<script>
-
-function checkLength( o, n, min, max ) {
-    if ( o.val().length > max || o.val().length < min ) {
-        o.addClass( "ui-state-error" );
-        //updateTips( "Length of " + n + " must be between " + min + " and " + max + "." );
-        return false;
-    } else {
-        return true;
-    }
-}
-
-function send_invitation_to_user(user_id) {
-    var content = $( "#content_invitation_id" );
-    $("#send_invitation_form").show();
-    $("#send_invitation_div").dialog({
-        modal:true,
-        buttons: {
-            "'.addslashes(get_lang('SendInvitation')).'": function() {
-                var bValid = true;
-                bValid = bValid && checkLength( content, "content", 1, 255 );
-                if (bValid) {
-                    var url = "'.$ajax_url.'?a=send_invitation&user_id="+user_id;
-                    var params = $("#send_invitation_form").serialize();
-                    $.ajax({
-                        url: url+"&"+params,
-                        success:function(data) {
-                            $("#message_ajax_reponse").attr("class", "");
-                            $("#message_ajax_reponse").html(data);
-                            $("#message_ajax_reponse").show();
-
-                            $("#send_invitation_div").dialog({ buttons:{}});
-
-                            $("#send_invitation_form").hide();
-                            $("#send_invitation_div").dialog("close");
-                            $("#content_invitation_id").val("");
-                        }
-                    });
-                }
-            },
-        },
-        close: function() {
-        }
-    });
-    $("#send_invitation_div").dialog("open");
-    //prevent the browser to follow the link
-}
-
-$(document).ready(function (){
-    $("input#id_btn_send_invitation").bind("click", function(){
-        if (confirm("'.get_lang('SendMessageInvitation', '').'")) {
-            $("#form_register_friend").submit();
-        }
-    });
-
-    $("#send_message_div").dialog({
-        autoOpen: false,
-        modal    : false,
-        width    : 550,
-        height    : 300
-       });
-
-    $("#send_invitation_div").dialog({
-        autoOpen: false,
-        modal    : false,
-        width    : 550,
-        height    : 300
-       });
-});
-</script>';
-
 if (api_get_setting('allow_social_tool') != 'true') {
     api_not_allowed();
 }
@@ -153,7 +82,7 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
 
             // Show send invitation icon if they are not friends yet
             if ($relation_type != 3 && $relation_type != 4 && $user['user_id'] != api_get_user_id()) {
-                $send_inv = '<a href="javascript:void(0);" onclick="javascript:send_invitation_to_user(\''.$user['user_id'].'\');"/>
+                $send_inv = '<a href="#" class="btn-to-send-invitation" data-send-to="' . $user['user_id'] . '">
                              <button class="btn btn-mini"><i class="fa fa-user"></i> '.get_lang('SendInvitation').'</button></a><br /><br />';
             }
             $send_msg = '<a href="#" class="btn-to-send-message" data-send-to="' . $user['user_id'] . '">
@@ -284,7 +213,6 @@ if ($query != '' || ($query_vars['search_type']=='1' && count($query_vars)>2) )
     );
 }
 
-$social_right_content .= MessageManager::generate_invitation_form('send_invitation');
 
 $tpl = new Template($tool_name);
 $tpl->assign('social_avatar_block', $social_avatar_block);
@@ -293,6 +221,7 @@ $tpl->assign('social_right_content', $social_right_content);
 
 $formModalTpl =  new Template();
 $formModalTpl->assign('messageForm', MessageManager::generate_message_form('send_message'));
+$formModalTpl->assign('invitationForm', MessageManager::generate_invitation_form('send_invitation'));
 $formModals = $formModalTpl->fetch('default/social/form_modals.tpl');
 
 $tpl->assign('formModals', $formModals);

+ 48 - 2
main/template/default/social/form_modals.tpl

@@ -12,7 +12,31 @@
                 {{ messageForm }}
             </div>
             <div class="modal-footer">
-                <button type="button" id="btn-send-message" class="btn btn-primary">{{ 'Send' | get_lang }}</button>
+                <button type="button" id="btn-send-message" class="btn btn-primary">
+                    <i class="fa fa-send"></i> {{ 'Send' | get_lang }}
+                </button>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="modal fade" id="send-invitation-modal" tabindex="-1" role="dialog" aria-labelledby="send-invitation-modal-title" aria-hidden="true">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="{{ 'Close' | get_lang }}">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+                <h4 class="modal-title" id="send-invitation-modal-title">{{ 'SendInvitation' | get_lang }}</h4>
+            </div>
+            <div class="modal-body">
+                <div id="send-invitation-alert"></div>
+                {{ invitationForm }}
+            </div>
+            <div class="modal-footer">
+                <button type="button" id="btn-send-invitation" class="btn btn-primary">
+                    <i class="fa fa-send"></i> {{ 'Send' | get_lang }}
+                </button>
             </div>
         </div>
     </div>
@@ -20,7 +44,8 @@
 
 <script>
     $(document).on('ready', function() {
-        var $sendMessageModal = $('#send-message-modal');
+        var $sendMessageModal = $('#send-message-modal'),
+            $sendInvitationModal = $('#send-invitation-modal');
 
         var sendToUser = 0;
 
@@ -44,5 +69,26 @@
                 $frmSendMessage[0].reset();
             });
         });
+
+        $('.btn-to-send-invitation').on('click', function(e) {
+            e.preventDefault();
+
+            sendToUser = $(this).data('send-to');
+
+            $sendInvitationModal.modal('show');
+        });
+
+        $('#btn-send-invitation').on('click', function(e) {
+            e.preventDefault();
+
+            var $frmSendInvitation = $sendInvitationModal.find('.modal-body form'),
+                url = '{{ _p.web_ajax }}message.ajax.php?a=send_invitation&user_id=' + sendToUser;
+
+            $.get(url, $frmSendInvitation.serialize(), function(response) {
+                $('#send-invitation-alert').html(response);
+
+                $frmSendInvitation[0].reset();
+            });
+        });
     });
 </script>