mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-14 01:20:27 +00:00
174 lines
6.7 KiB
JavaScript
174 lines
6.7 KiB
JavaScript
/**
|
|
Core script to handle the entire theme and core functions
|
|
**/
|
|
var QuickSidebar = function () {
|
|
|
|
// Handles quick sidebar toggler
|
|
var handleQuickSidebarToggler = function () {
|
|
// quick sidebar toggler
|
|
$('.top-menu .dropdown-quick-sidebar-toggler a, .page-quick-sidebar-toggler').click(function (e) {
|
|
$('body').toggleClass('page-quick-sidebar-open');
|
|
});
|
|
};
|
|
|
|
// Handles quick sidebar chats
|
|
var handleQuickSidebarChat = function () {
|
|
var wrapper = $('.page-quick-sidebar-wrapper');
|
|
var wrapperChat = wrapper.find('.page-quick-sidebar-chat');
|
|
|
|
var initChatSlimScroll = function () {
|
|
var chatUsers = wrapper.find('.page-quick-sidebar-chat-users');
|
|
var chatUsersHeight;
|
|
|
|
chatUsersHeight = wrapper.height() - wrapper.find('.nav-justified > .nav-tabs').outerHeight();
|
|
|
|
// chat user list
|
|
Metronic.destroySlimScroll(chatUsers);
|
|
chatUsers.attr("data-height", chatUsersHeight);
|
|
Metronic.initSlimScroll(chatUsers);
|
|
|
|
var chatMessages = wrapperChat.find('.page-quick-sidebar-chat-user-messages');
|
|
var chatMessagesHeight = chatUsersHeight - wrapperChat.find('.page-quick-sidebar-chat-user-form').outerHeight() - wrapperChat.find('.page-quick-sidebar-nav').outerHeight();
|
|
|
|
// user chat messages
|
|
Metronic.destroySlimScroll(chatMessages);
|
|
chatMessages.attr("data-height", chatMessagesHeight);
|
|
Metronic.initSlimScroll(chatMessages);
|
|
};
|
|
|
|
initChatSlimScroll();
|
|
Metronic.addResizeHandler(initChatSlimScroll); // reinitialize on window resize
|
|
|
|
wrapper.find('.page-quick-sidebar-chat-users .media-list > .media').click(function () {
|
|
wrapperChat.addClass("page-quick-sidebar-content-item-shown");
|
|
});
|
|
|
|
wrapper.find('.page-quick-sidebar-chat-user .page-quick-sidebar-back-to-list').click(function () {
|
|
wrapperChat.removeClass("page-quick-sidebar-content-item-shown");
|
|
});
|
|
|
|
var handleChatMessagePost = function (e) {
|
|
e.preventDefault();
|
|
|
|
var chatContainer = wrapperChat.find(".page-quick-sidebar-chat-user-messages");
|
|
var input = wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control');
|
|
|
|
var text = input.val();
|
|
if (text.length === 0) {
|
|
return;
|
|
}
|
|
|
|
var preparePost = function(dir, time, name, avatar, message) {
|
|
var tpl = '';
|
|
tpl += '<div class="post '+ dir +'">';
|
|
tpl += '<img class="avatar" alt="" src="' + Layout.getLayoutImgPath() + avatar +'.jpg"/>';
|
|
tpl += '<div class="message">';
|
|
tpl += '<span class="arrow"></span>';
|
|
tpl += '<a href="#" class="name">Bob Nilson</a> ';
|
|
tpl += '<span class="datetime">' + time + '</span>';
|
|
tpl += '<span class="body">';
|
|
tpl += message;
|
|
tpl += '</span>';
|
|
tpl += '</div>';
|
|
tpl += '</div>';
|
|
|
|
return tpl;
|
|
};
|
|
|
|
// handle post
|
|
var time = new Date();
|
|
var message = preparePost('out', (time.getHours() + ':' + time.getMinutes()), "Bob Nilson", 'avatar3', text);
|
|
message = $(message);
|
|
chatContainer.append(message);
|
|
|
|
var getLastPostPos = function() {
|
|
var height = 0;
|
|
chatContainer.find(".post").each(function() {
|
|
height = height + $(this).outerHeight();
|
|
});
|
|
|
|
return height;
|
|
};
|
|
|
|
chatContainer.slimScroll({
|
|
scrollTo: getLastPostPos()
|
|
});
|
|
|
|
input.val("");
|
|
|
|
// simulate reply
|
|
setTimeout(function(){
|
|
var time = new Date();
|
|
var message = preparePost('in', (time.getHours() + ':' + time.getMinutes()), "Ella Wong", 'avatar2', 'Lorem ipsum doloriam nibh...');
|
|
message = $(message);
|
|
chatContainer.append(message);
|
|
|
|
chatContainer.slimScroll({
|
|
scrollTo: getLastPostPos()
|
|
});
|
|
}, 3000);
|
|
};
|
|
|
|
wrapperChat.find('.page-quick-sidebar-chat-user-form .btn').click(handleChatMessagePost);
|
|
wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control').keypress(function (e) {
|
|
if (e.which == 13) {
|
|
handleChatMessagePost(e);
|
|
return false;
|
|
}
|
|
});
|
|
};
|
|
|
|
// Handles quick sidebar tasks
|
|
var handleQuickSidebarAlerts = function () {
|
|
var wrapper = $('.page-quick-sidebar-wrapper');
|
|
var wrapperAlerts = wrapper.find('.page-quick-sidebar-alerts');
|
|
|
|
var initAlertsSlimScroll = function () {
|
|
var alertList = wrapper.find('.page-quick-sidebar-alerts-list');
|
|
var alertListHeight;
|
|
|
|
alertListHeight = wrapper.height() - wrapper.find('.nav-justified > .nav-tabs').outerHeight();
|
|
|
|
// alerts list
|
|
Metronic.destroySlimScroll(alertList);
|
|
alertList.attr("data-height", alertListHeight);
|
|
Metronic.initSlimScroll(alertList);
|
|
};
|
|
|
|
initAlertsSlimScroll();
|
|
Metronic.addResizeHandler(initAlertsSlimScroll); // reinitialize on window resize
|
|
};
|
|
|
|
// Handles quick sidebar settings
|
|
var handleQuickSidebarSettings = function () {
|
|
var wrapper = $('.page-quick-sidebar-wrapper');
|
|
var wrapperAlerts = wrapper.find('.page-quick-sidebar-settings');
|
|
|
|
var initSettingsSlimScroll = function () {
|
|
var settingsList = wrapper.find('.page-quick-sidebar-settings-list');
|
|
var settingsListHeight;
|
|
|
|
settingsListHeight = wrapper.height() - wrapper.find('.nav-justified > .nav-tabs').outerHeight();
|
|
|
|
// alerts list
|
|
Metronic.destroySlimScroll(settingsList);
|
|
settingsList.attr("data-height", settingsListHeight);
|
|
Metronic.initSlimScroll(settingsList);
|
|
};
|
|
|
|
initSettingsSlimScroll();
|
|
Metronic.addResizeHandler(initSettingsSlimScroll); // reinitialize on window resize
|
|
};
|
|
|
|
return {
|
|
|
|
init: function () {
|
|
//layout handlers
|
|
handleQuickSidebarToggler(); // handles quick sidebar's toggler
|
|
handleQuickSidebarChat(); // handles quick sidebar's chats
|
|
handleQuickSidebarAlerts(); // handles quick sidebar's alerts
|
|
handleQuickSidebarSettings(); // handles quick sidebar's setting
|
|
}
|
|
};
|
|
|
|
}(); |