Dynamically resize conversation page boxes

This commit is contained in:
Pierre 2018-05-20 14:31:46 +02:00
parent 8458c6190d
commit 8777832600
6 changed files with 64 additions and 14 deletions

View File

@ -8,6 +8,10 @@
max-height: 100%;
}
.conversations-page-container .conversations-list-box ul {
max-height: 100%;
}
.conversations-page-container a.selected {
background: #f7f7f7;
}

View File

@ -1156,7 +1156,15 @@ var ComunicWeb = {
*/
conversation: {
//TODO : implement
}
},
/**
* Conversation page utilities
*/
utils: {
//TODO : implement
},
},
/**

View File

@ -330,9 +330,7 @@ ComunicWeb.pages.conversations.conversation = {
//Enable / update slimscroll
var target = ComunicWeb.pages.conversations.conversation._conv_info.window.messagesTarget;
var scrollBottom = $(target).prop("scrollHeight")+"px";
$(target).slimScroll({
scrollTo: scrollBottom
});
ComunicWeb.pages.conversations.utils.enableSlimScroll(target, ComunicWeb.pages.conversations.utils.getAvailableHeight(), scrollBottom);
}, 100);
}
@ -577,11 +575,12 @@ ComunicWeb.pages.conversations.conversation = {
newScrollPos = oldestMessage.offsetTop - 30;
if(newScrollPos < 0)
newScrollPos = 0;
$(convInfo.window.messagesTarget).slimScroll({
scrollTo: newScrollPos + "px"
});
ComunicWeb.pages.conversations.utils.enableSlimScroll(
convInfo.window.messagesTarget,
ComunicWeb.pages.conversations.utils.getAvailableHeight(),
newScrollPos);
});
});
}
},
};

View File

@ -145,19 +145,24 @@ ComunicWeb.pages.conversations.listPane = {
}
//Enable slimscroll
$(conversationsContainer).slimScroll({
height: '100%'
});
ComunicWeb.pages.conversations.utils.enableSlimScroll(
conversationsContainer,
ComunicWeb.pages.conversations.utils.getAvailableHeight(),
0);
//Scroll to selected conversation, if possible
if(args.selected_conversation != null){
var newScrollPos = args.selected_conversation.offsetTop - 30;
if(newScrollPos < 0)
newScrollPos = 0;
$(conversationsContainer).slimScroll({
scrollTo: newScrollPos + "px"
});
//Enable slimscroll again
ComunicWeb.pages.conversations.utils.enableSlimScroll(
conversationsContainer,
ComunicWeb.pages.conversations.utils.getAvailableHeight() + 55,
newScrollPos);
}
},
/**

View File

@ -0,0 +1,33 @@
/**
* Conversation page utilities
*
* @author Pierre HUBERT
*/
ComunicWeb.pages.conversations.utils = {
/**
* Enable slimscroll for the conversation element
*
* @param {HMTLElement} target The target for slimscroll
* @param {Number} height The available height for the element
* @param {Number} pos Scroll position to go to
*/
enableSlimScroll: function(target, height, pos){
$(target).slimScroll({
scrollTo: pos + "px",
height: height + "px",
});
},
/**
* Get the available height for the conversations
*
* @return {Number} The available height, in pixel
*/
getAvailableHeight: function(){
return Number(byId("pageTarget").style.minHeight.replace("px", "")) - 180;
}
}

View File

@ -387,6 +387,7 @@ class Dev {
"js/pages/conversations/main.js",
"js/pages/conversations/listPane.js",
"js/pages/conversations/conversation.js",
"js/pages/conversations/utils.js",
//User settings page
"js/pages/settings/main.js",