You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

219 lines
6.7 KiB

$(function () {
var chatarea = $("#chat");
$("#chat .message-center a").on("click", function () {
var name = $(this).find(".mail-contnet h5").text();
var img = $(this).find(".user-img img").attr("src");
var id = $(this).attr("data-user-id");
var status = $(this).find(".profile-status").attr("data-status");
if ($(this).hasClass("active")) {
$(this).toggleClass("active");
$(".chat-windows #user-chat" + id).hide();
} else {
$(this).toggleClass("active");
if ($(".chat-windows #user-chat" + id).length) {
$(".chat-windows #user-chat" + id)
.removeClass("mini-chat")
.show();
} else {
var msg = msg_receive(
"I watched the storm, so beautiful yet terrific."
);
msg += msg_sent("That is very deep indeed!");
var html =
"<div class='user-chat' id='user-chat" +
id +
"' data-user-id='" +
id +
"'>";
html +=
"<div class='chat-head'><img src='" +
img +
"' data-user-id='" +
id +
"'><span class='status " +
status +
"'></span><span class='name'>" +
name +
"</span><span class='opts'><i class='material-icons closeit' data-user-id='" +
id +
"'>clear</i><i class='material-icons mini-chat' data-user-id='" +
id +
"'>remove</i></span></div>";
html +=
"<div class='chat-body'><ul class='chat-list'>" + msg + "</ul></div>";
html +=
"<div class='chat-footer'><input type='text' data-user-id='" +
id +
"' placeholder='Type & Enter' class='form-control'></div>";
html += "</div>";
$(".chat-windows").append(html);
}
}
});
$("body").on(
"click",
".chat-windows .user-chat .chat-head .closeit",
function (e) {
var id = $(this).attr("data-user-id");
$(".chat-windows #user-chat" + id).hide();
$("#chat .message-center .user-info#chat_user_" + id).removeClass(
"active"
);
}
);
$("body").on(
"click",
".chat-windows .user-chat .chat-head img, .chat-windows .user-chat .chat-head .mini-chat",
function (e) {
var id = $(this).attr("data-user-id");
if (!$(".chat-windows #user-chat" + id).hasClass("mini-chat")) {
$(".chat-windows #user-chat" + id).addClass("mini-chat");
} else {
$(".chat-windows #user-chat" + id).removeClass("mini-chat");
}
}
);
$("body").on(
"keypress",
".chat-windows .user-chat .chat-footer input",
function (e) {
if (e.keyCode == 13) {
var id = $(this).attr("data-user-id");
var msg = $(this).val();
msg = msg_sent(msg);
$(".chat-windows #user-chat" + id + " .chat-body .chat-list").append(
msg
);
$(this).val("");
$(this).focus();
}
$(".chat-windows #user-chat" + id + " .chat-body").perfectScrollbar({
suppressScrollX: true,
});
}
);
});
function msg_receive(msg) {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
return (
"<li class='msg_receive'><div class='chat-content'><div class='box bg-light-info'>" +
msg +
"</div></div><div class='chat-time d-inline-block text-end fs-2 font-weight-medium'>" +
h +
":" +
m +
"</div></li>"
);
}
function msg_sent(msg) {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
return (
"<li class='odd msg_sent'><div class='chat-content'><div class='box bg-light-info'>" +
msg +
"</div><br></div><div class='chat-time d-inline-block text-end fs-2 font-weight-medium'>" +
h +
":" +
m +
"</div></li>"
);
}
// *******************************************************************
// Chat Application
// *******************************************************************
$(".searchbar > input").on("keyup", function () {
var rex = new RegExp($(this).val(), "i");
$(".chat-users .chat-user").hide();
$(".chat-users .chat-user")
.filter(function () {
return rex.test($(this).text());
})
.show();
});
$(".app-chat .chat-user ").on("click", function (event) {
if ($(this).hasClass(".active")) {
return false;
} else {
var findChat = $(this).attr("data-user-id");
var personName = $(this).find(".message-title").text();
var personImage = $(this).find("img").attr("src");
var hideTheNonSelectedContent = $(this)
.parents(".chat-application")
.find(".chat-not-selected")
.hide()
.siblings(".chatting-box")
.show();
var showChatInnerContent = $(this)
.parents(".chat-application")
.find(".chat-container .chat-box-inner-part")
.show();
if (window.innerWidth <= 767) {
$(".chat-container .current-chat-user-name .name").html(
personName.split(" ")[0]
);
} else if (window.innerWidth > 767) {
$(".chat-container .current-chat-user-name .name").html(personName);
}
$(".chat-container .current-chat-user-name img").attr("src", personImage);
$(".chat").removeClass("active-chat");
$(".user-chat-box .chat-user").removeClass("active");
//$('.chat-container .chat-box-inner-part').css('height', '100%');
$(this).addClass("active");
$(".chat[data-user-id = " + findChat + "]").addClass("active-chat");
}
if ($(this).parents(".user-chat-box").hasClass("user-list-box-show")) {
$(this).parents(".user-chat-box").removeClass("user-list-box-show");
}
$(".chat-meta-user").addClass("chat-active");
//$('.chat-container').css('height', 'calc(100vh - 158px)');
$(".chat-send-message-footer").addClass("chat-active");
});
// Send Messages
$(".message-type-box").on("keydown", function (event) {
if (event.key === "Enter") {
// Start getting time
var now = new Date();
var hh = now.getHours();
var min = now.getMinutes();
var ampm = hh >= 12 ? "pm" : "am";
hh = hh % 12;
hh = hh ? hh : 12;
hh = hh < 10 ? "0" + hh : hh;
min = min < 10 ? "0" + min : min;
var time = hh + " : " + min + " " + ampm;
// End
var chatInput = $(this);
var chatMessageValue = chatInput.val();
if (chatMessageValue === "") {
return;
}
$messageHtml =
'<li class="odd mt-4"> <div class="chat-content pl-3 d-inline-block text-end"> <div class="box mb-2 d-inline-block text-dark message font-weight-medium fs-3 bg-light-inverse">' +
chatMessageValue +
'<br> </div></div><div class="chat-time d-inline-block text-end fs-2 font-weight-medium">' +
time +
"</div> </li>";
var appendMessage = $(this)
.parents(".chat-application")
.find(".active-chat")
.append($messageHtml);
var clearChatInput = chatInput.val("");
}
});