support message header collapsing
* toggle header collapse/expand
* initially render read messages collapsed
* collapse removes attachments footer and stops loader
* expand creates/reuses attachments footer, but ONLY if visible
* can (mostly) expand/collapse details
* can expand/collapse quoted text
* add lots of logging (disabled during scrolling!) to catch
strange layouts
Change-Id: I73f533c91d24ef1c05919d0a3b396f276898107a
diff --git a/assets/script.js b/assets/script.js
index a68db32..da380e6 100644
--- a/assets/script.js
+++ b/assets/script.js
@@ -46,6 +46,7 @@
var isHidden = getComputedStyle(elidedTextElement).display == 'none';
toggleElement.innerHTML = isHidden ? MSG_HIDE_ELIDED : MSG_SHOW_ELIDED;
elidedTextElement.style.display = isHidden ? 'block' : 'none';
+ measurePositions();
}
function collapseQuotedText() {
@@ -166,6 +167,32 @@
}
}
}
+
+function setMessageHeaderSpacerHeight(messageDomId, spacerHeight) {
+ var spacer = document.querySelector("#" + messageDomId + " > .mail-message-header");
+ if (!spacer) {
+ console.log("can't set spacer for message with id: " + messageDomId);
+ return;
+ }
+ spacer.style.height = spacerHeight + "px";
+ measurePositions();
+}
+
+function setMessageBodyVisible(messageDomId, isVisible, spacerHeight) {
+ var i, len;
+ var visibility = isVisible ? "block" : "none";
+ var messageDiv = document.querySelector("#" + messageDomId);
+ var collapsibleDivs = document.querySelectorAll("#" + messageDomId + " > .collapsible");
+ if (!messageDiv || collapsibleDivs.length == 0) {
+ console.log("can't set body visibility for message with id: " + messageDomId);
+ return;
+ }
+ messageDiv.classList.toggle("expanded");
+ for (i = 0, len = collapsibleDivs.length; i < len; i++) {
+ collapsibleDivs[i].style.display = visibility;
+ }
+ setMessageHeaderSpacerHeight(messageDomId, spacerHeight);
+}
// END Java->JavaScript handlers
collapseQuotedText();