Panel/themes/AdminLTE/modules/tickets/viewticket.js
2025-09-11 13:29:15 -04:00

191 lines
5.2 KiB
JavaScript

$(document).ready(function()
{
//prepare main row for side by side layout
$('section.content > .container-fluid > .row > .col-12').addClass('col-md-6');
//replace css table with real table
$('.divTableCell').each(function()
{
$(this).replaceWith('<td>'+$(this).html()+'</td>');
});
$('.divTableRow').each(function()
{
$(this).replaceWith('<tr>'+$(this).html()+'</tr>');
});
$('.divTableBody').each(function()
{
$(this).replaceWith('<tbody>'+$(this).html()+'</tbody>');
});
$('.divTable').each(function()
{
$(this).replaceWith('<table>'+$(this).html()+'</table>');
});
//buttons
$('#add_file_attachment').addClass('btn-secondary');
$('[name="ticket_close"]').addClass('btn-danger');
if($('.ticket_closed').length>0)
{
$('.ticket_closed').wrap('<div class="callout callout-danger mt-2"><p></p></div>');
var newReplyBox = '\
<div class="card collapsed-card">\
<div class="card-header" data-card-widget="collapse" role="button">\
<h3 class="card-title">'+$('#toggleNoticeMessage').text()+'\</h3>\
<div class="card-tools">\
<button type="button" class="btn btn-tool" data-card-widget="collapse"> \
<i class="fas fa-plus"></i>\
</button>\
</div>\
</div>\
<div class="card-body" style="display: none;">\
'+$('.ticket_ReplyBox').html()+'\
</div>\
</div>\
';
$('.ticket_reply_notice').remove();
$('.ticket_ReplyBox').replaceWith(newReplyBox);
}
});
$(window).load(function()
{
//replace direct chat
var username = $('.user-panel > .info > a').text();
var allChats = [];
$('.ticket_reply').each(function()
{
if($(this).hasClass('admin'))
{
var isAdmin = true
}else
{
var isAdmin = false
}
if($(this).find('.name').find('a').text()==username)
{
var direction = 'left'
}else
{
var direction = 'right'
}
// add text-dark class to userlink
$(this).find('.name').find('a').addClass('text-dark');
var date = $(this).find('.date').text().replace(/\s+/g, ' ').trim();
var user = $(this).find('.name').html().replace(/\s+/g, ' ').trim();
var message = $(this).find('.message').html().trim();
var footer = $(this).find('.ticket_footer').html().trim();
//Create chatItem object for current reply
var chatItem = {
direction: direction,
isAdmin: isAdmin,
date: date,
user: user,
message: message,
footer: footer
};
//Push chatItem object into allChats array
allChats.push(chatItem);
});
//remove .replyContainer
$('.replyContainer').remove();
var newReplyContainer = '\
<div class="col-12 col-md-6">\
<div class="card card-primary direct-chat direct-chat-primary">\
<div class="card-body p-2">\
<div class="direct-chat-messages">\
';
Object.keys(allChats).forEach(function(key)
{
var isAdmin = '';
if(allChats[key]['isAdmin'])
{
isAdmin = '<span class="badge badge-danger mx-1">Admin</span>';
}
var avatarUrl = 'themes/AdminLTE/dist/img/default-avatar.png';
var avatarUserId = new URLSearchParams($($.parseHTML(allChats[key]['user'])).filter('a').attr('href')).get('user_id');
if(!localStorage.getItem('avatar_' + avatarUserId))
{
// load avatar from db
$.ajax({
cache: false,
async: false,
type: 'GET',
url: 'themes/AdminLTE/dist/php/settings.php?m=user&p=getavatar&userid=' + avatarUserId,
success: function(avatar)
{
// create avatar cookie
localStorage.setItem('avatar_' + avatarUserId, avatar);
// set user avatar
avatarUrl = avatar;
}
});
}else
{
// read user avatar cookie value
avatarUrl = localStorage.getItem('avatar_' + avatarUserId);
}
if(allChats[key]['direction']=='left')
{
newReplyContainer += '\
<div class="direct-chat-msg">\
<div class="direct-chat-infos clearfix">\
<span class="direct-chat-name float-left font-weight-bold">' + allChats[key]['user'] + isAdmin + '</span>\
<span class="direct-chat-timestamp float-right">' + allChats[key]['date'] + '</span>\
</div>\
<img class="direct-chat-img" src="' + avatarUrl + '" data-userid="' + avatarUserId + '" alt="message user image">\
<div class="direct-chat-text">\
' + allChats[key]['message'] + '\
</div>\
<div class="direct-chat-footer">\
' + allChats[key]['footer'] + '\
</div>\
</div>\
';
}else
{
newReplyContainer += '\
<div class="direct-chat-msg right">\
<div class="direct-chat-infos clearfix">\
<span class="direct-chat-name float-right font-weight-bold">' + isAdmin + allChats[key]['user'] + '</span>\
<span class="direct-chat-timestamp float-left">' + allChats[key]['date'] + '</span>\
</div>\
<img class="direct-chat-img" src="' + avatarUrl + '" data-userid="' + avatarUserId + '" alt="message user image">\
<div class="direct-chat-text">\
' + allChats[key]['message'] + '\
</div>\
<div class="direct-chat-footer">\
' + allChats[key]['footer'] + '\
</div>\
</div>\
';
}
});
newReplyContainer += '\
</div>\
</div>\
</div>\
</div>\
';
$('section.content > .container-fluid > .row').append(newReplyContainer);
$('.downloadAttachmentLink').addClass('btn btn-primary btn-sm')
// reload body scripts after dom modify
reloadBodyScripts();
});