From f493d9a5655cd4f951955e6d9aa7332774b01375 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@enhancesoft.com>
Date: Tue, 26 Nov 2013 03:55:12 +0000
Subject: [PATCH] Use the new user modal dialog

---
 include/staff/ticket-view.inc.php | 67 ++++++++++++++++++-------------
 scp/css/scp.css                   |  5 +++
 scp/js/scp.js                     |  3 +-
 scp/js/ticket.js                  |  2 +-
 4 files changed, 46 insertions(+), 31 deletions(-)

diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php
index 719d19f9e..38db1af32 100644
--- a/include/staff/ticket-view.inc.php
+++ b/include/staff/ticket-view.inc.php
@@ -67,28 +67,9 @@ if($ticket->isOverdue())
             } ?>
             <?php
             if($thisstaff->canEditTickets()) { ?>
-            <a class="action-button" href="#"
-                onclick="javascript:
-                    $.userLookup('ajax.php/tickets/<?php echo $ticket->getId(); ?>/change-user',
-                        function(user) {
-                            var cid = <?php echo $ticket->getOwnerId(); ?>;
-                            if(cid!=user.id && $('.dialog#confirm-action #changeuser-confirm').length) {
-                                $('#newuser').html(user.name +' <'+user.email+'>');
-                                $('.dialog#confirm-action #action').val('changeuser');
-                                $('#confirm-form').append('<input type=hidden name=user_id value='+user.id+' />');
-                                $('#overlay').show();
-                                $('.dialog#confirm-action .confirm-action').hide();
-                                $('.dialog#confirm-action p#changeuser-confirm')
-                                .show()
-                                .parent('div').show().trigger('click');
-                            }
-                       });
-                    return false;
-                "><i class="icon-edit"></i> Change Owner</a>
                 <a class="action-button" href="tickets.php?id=<?php echo $ticket->getId(); ?>&a=edit"><i class="icon-edit"></i> Edit</a>
             <?php
             } ?>
-
             <?php
             if($ticket->isOpen() && !$ticket->isAssigned() && $thisstaff->canAssignTickets()) {?>
                 <a id="ticket-claim" class="action-button" href="#claim"><i class="icon-user"></i> Claim</a>
@@ -101,6 +82,10 @@ if($ticket->isOverdue())
             <div id="action-dropdown-more" class="action-dropdown anchor-right">
               <ul>
                 <?php
+                 if($thisstaff->canEditTickets()) { ?>
+                    <li><a class="change-user" href="#tickets/<?php echo $ticket->getId(); ?>/change-user"><i class="icon-user"></i> Change Ticket Owner</a></li>
+                <?php
+                 }
                 if($ticket->isOpen() && ($dept && $dept->isManager($thisstaff))) {
 
                     if($ticket->isAssigned()) { ?>
@@ -162,12 +147,15 @@ if($ticket->isOverdue())
             <table border="0" cellspacing="" cellpadding="4" width="100%">
                 <tr>
                     <th width="100">Client:</th>
-                    <td><a href="ajax.php/form/user-info/<?php
-                            echo $ticket->getOwnerId(); ?>"
+                    <td><a href="#tickets/<?php echo $ticket->getId(); ?>/user"
                         onclick="javascript:
-                            $('#overlay').show();
-                            $('#user-info .body').load(this.href);
-                            $('#user-info').show();
+                            $.userLookup('ajax.php/tickets/<?php echo $ticket->getId(); ?>/user',
+                                    function (user) {
+                                        $('#user-'+user.id+'-name').text(user.name);
+                                        $('#user-'+user.id+'-email').text(user.email);
+                                        $('#user-to-name').text(user.name);
+                                        $('#user-to-email').text(user.email);
+                                    });
                             return false;
                             "><i class="icon-user"></i> <span id="user-<?php echo $ticket->getOwnerId(); ?>-name"
                             ><?php echo Format::htmlchars($ticket->getName());
@@ -198,7 +186,7 @@ if($ticket->isOverdue())
                 <tr>
                     <th>Email:</th>
                     <td>
-                    <?php echo $ticket->getEmail(); ?>
+                        <span id="user-<?php echo $ticket->getOwnerId(); ?>-email"><?php echo $ticket->getEmail(); ?></span>
                     </td>
                 </tr>
                 <tr>
@@ -423,10 +411,8 @@ $tcount+= $ticket->getNumNotes();
                 </td>
                 <td>
                     <?php
-                    $to = $ticket->getReplyToEmail();
-                    if(($name=$ticket->getName()) && !strpos($name,'@'))
-                        $to =sprintf('%s <em>&lt;%s&gt;</em>', $name, $to);
-                    echo $to;
+                    echo sprintf('<span id="user-to-name">%s</span> <em>&lt;<span id="user-to-email">%s</span>&gt;</em>',
+                                $ticket->getName(), $ticket->getReplyToEmail());
                     ?>
                     &nbsp;&nbsp;&nbsp;
                     <label><input type='checkbox' value='1' name="emailreply" id="remailreply"
@@ -926,3 +912,26 @@ $tcount+= $ticket->getNumNotes();
     <div class="clear"></div>
 </div>
 <script type="text/javascript" src="js/ticket.js"></script>
+<script type="text/javascript">
+$(function() {
+    $(document).on('click', 'a.change-user', function(e) {
+        e.preventDefault();
+        var tid = <?php echo $ticket->getOwnerId(); ?>;
+        var cid = <?php echo $ticket->getOwnerId(); ?>;
+        var url = 'ajax.php/'+$(this).attr('href').substr(1);
+        $.userLookup(url, function(user) {
+            if(cid!=user.id
+                    && $('.dialog#confirm-action #changeuser-confirm').length) {
+                $('#newuser').html(user.name +' <'+user.email+'>');
+                $('.dialog#confirm-action #action').val('changeuser');
+                $('#confirm-form').append('<input type=hidden name=user_id value='+user.id+' />');
+                $('#overlay').show();
+                $('.dialog#confirm-action .confirm-action').hide();
+                $('.dialog#confirm-action p#changeuser-confirm')
+                .show()
+                .parent('div').show().trigger('click');
+            }
+        });
+    });
+});
+</script>
diff --git a/scp/css/scp.css b/scp/css/scp.css
index d99c0ecb4..43387a443 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -1277,6 +1277,11 @@ time {
     padding-right: 3em;
 }
 
+.dialog a {
+        color:#184E81;
+}
+
+
 .dialog a.close {
     position: absolute;
     display:inline-block;
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 05b528a19..70700a4b4 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -404,7 +404,8 @@ $(document).ready(function(){
         $('.dialog#popup .body').load(url, function () {
             $('#overlay').show();
             $('.dialog#popup').show();
-            $(document).on('submit', '.dialog#popup form.user',function(e) {
+            $(document).off('.user');
+            $(document).on('submit.user', '.dialog#popup form.user',function(e) {
                 e.preventDefault();
                 var $form = $(this);
                 var $dialog = $form.closest('.dialog');
diff --git a/scp/js/ticket.js b/scp/js/ticket.js
index 619becddf..c2110121a 100644
--- a/scp/js/ticket.js
+++ b/scp/js/ticket.js
@@ -345,7 +345,7 @@ jQuery(function($) {
     });
 
     //ticket actions confirmation - Delete + more
-    $('a#ticket-delete, a#ticket-claim, #action-dropdown-more li a').click(function(e) {
+    $('a#ticket-delete, a#ticket-claim, #action-dropdown-more li a:not(.change-user)').click(function(e) {
         e.preventDefault();
         if($('.dialog#confirm-action '+$(this).attr('href')+'-confirm').length) {
             var action = $(this).attr('href').substr(1, $(this).attr('href').length);
-- 
GitLab