Add project files.
This commit is contained in:
93
Content/Panel/js/pages/custom/chat/chat.js
Normal file
93
Content/Panel/js/pages/custom/chat/chat.js
Normal file
@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
// Class definition
|
||||
var KTAppChat = function () {
|
||||
var _chatAsideEl;
|
||||
var _chatAsideOffcanvasObj;
|
||||
var _chatContentEl;
|
||||
|
||||
// Private functions
|
||||
var _initAside = function () {
|
||||
// Mobile offcanvas for mobile mode
|
||||
_chatAsideOffcanvasObj = new KTOffcanvas(_chatAsideEl, {
|
||||
overlay: true,
|
||||
baseClass: 'offcanvas-mobile',
|
||||
//closeBy: 'kt_chat_aside_close',
|
||||
toggleBy: 'kt_app_chat_toggle'
|
||||
});
|
||||
|
||||
// User listing
|
||||
var cardScrollEl = KTUtil.find(_chatAsideEl, '.scroll');
|
||||
var cardBodyEl = KTUtil.find(_chatAsideEl, '.card-body');
|
||||
var searchEl = KTUtil.find(_chatAsideEl, '.input-group');
|
||||
|
||||
if (cardScrollEl) {
|
||||
// Initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)
|
||||
KTUtil.scrollInit(cardScrollEl, {
|
||||
mobileNativeScroll: true, // Enable native scroll for mobile
|
||||
desktopNativeScroll: false, // Disable native scroll and use custom scroll for desktop
|
||||
resetHeightOnDestroy: true, // Reset css height on scroll feature destroyed
|
||||
handleWindowResize: true, // Recalculate hight on window resize
|
||||
rememberPosition: true, // Remember scroll position in cookie
|
||||
height: function() { // Calculate height
|
||||
var height;
|
||||
|
||||
if (KTUtil.isBreakpointUp('lg')) {
|
||||
height = KTLayoutContent.getHeight();
|
||||
} else {
|
||||
height = KTUtil.getViewPort().height;
|
||||
}
|
||||
|
||||
if (_chatAsideEl) {
|
||||
height = height - parseInt(KTUtil.css(_chatAsideEl, 'margin-top')) - parseInt(KTUtil.css(_chatAsideEl, 'margin-bottom'));
|
||||
height = height - parseInt(KTUtil.css(_chatAsideEl, 'padding-top')) - parseInt(KTUtil.css(_chatAsideEl, 'padding-bottom'));
|
||||
}
|
||||
|
||||
if (cardScrollEl) {
|
||||
height = height - parseInt(KTUtil.css(cardScrollEl, 'margin-top')) - parseInt(KTUtil.css(cardScrollEl, 'margin-bottom'));
|
||||
}
|
||||
|
||||
if (cardBodyEl) {
|
||||
height = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));
|
||||
}
|
||||
|
||||
if (searchEl) {
|
||||
height = height - parseInt(KTUtil.css(searchEl, 'height'));
|
||||
height = height - parseInt(KTUtil.css(searchEl, 'margin-top')) - parseInt(KTUtil.css(searchEl, 'margin-bottom'));
|
||||
}
|
||||
|
||||
// Remove additional space
|
||||
height = height - 2;
|
||||
|
||||
return height;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
// Public functions
|
||||
init: function() {
|
||||
// Elements
|
||||
_chatAsideEl = KTUtil.getById('kt_chat_aside');
|
||||
_chatContentEl = KTUtil.getById('kt_chat_content');
|
||||
|
||||
// Init aside and user list
|
||||
_initAside();
|
||||
|
||||
// Init inline chat example
|
||||
KTLayoutChat.setup(KTUtil.getById('kt_chat_content'));
|
||||
|
||||
// Trigger click to show popup modal chat on page load
|
||||
if (KTUtil.getById('kt_app_chat_toggle')) {
|
||||
setTimeout(function() {
|
||||
KTUtil.getById('kt_app_chat_toggle').click();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
};
|
||||
}();
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
KTAppChat.init();
|
||||
});
|
||||
Reference in New Issue
Block a user