mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
Change signature of ui.process_condensing().
I renamed ui.process_condensing() to ui.condense_and_collapse(), and, more importantly, it now takes a list of elements, not a single element, which allows us to do some computations outside the loop. (imported from commit d5984088030c2a0d4ec8b258c7fcec3e84caf2b1)
This commit is contained in:
@@ -401,7 +401,7 @@ MessageListView.prototype = {
|
||||
|
||||
// Must happen after the elements are inserted into the document for
|
||||
// getBoundingClientRect to work.
|
||||
_.each(rendered_elems, ui.process_condensing);
|
||||
ui.condense_and_collapse(rendered_elems);
|
||||
|
||||
// Must happen after anything that changes the height of messages has
|
||||
// taken effect.
|
||||
|
||||
@@ -249,7 +249,7 @@ exports.activate = function (operators, opts) {
|
||||
// above us could change size -- which is problematic, because it
|
||||
// could cause us to lose our position. But doing this here, right
|
||||
// after showing the table, seems to cause us to win the race.
|
||||
_.each($("tr.message_row"), ui.process_condensing);
|
||||
ui.condense_and_collapse($("tr.message_row"));
|
||||
|
||||
reset_load_more_status();
|
||||
if (! defer_selecting_closest) {
|
||||
|
||||
@@ -1705,42 +1705,44 @@ exports.restore_compose_cursor = function () {
|
||||
.caret(saved_compose_cursor, saved_compose_cursor);
|
||||
};
|
||||
|
||||
exports.process_condensing = function (elem) {
|
||||
exports.condense_and_collapse = function (elems) {
|
||||
var height_cutoff = viewport.height() * 0.65;
|
||||
|
||||
function could_be_condensed(elem) {
|
||||
return elem.getBoundingClientRect().height > height_cutoff;
|
||||
}
|
||||
|
||||
var content = $(elem).find(".message_content");
|
||||
var message = current_msg_list.get(rows.id($(elem)));
|
||||
if (content !== undefined && message !== undefined) {
|
||||
var long_message = could_be_condensed(elem);
|
||||
if (long_message) {
|
||||
// All long messages are flagged as such.
|
||||
content.addClass("could-be-condensed");
|
||||
}
|
||||
_.each(elems, function (elem) {
|
||||
var content = $(elem).find(".message_content");
|
||||
var message = current_msg_list.get(rows.id($(elem)));
|
||||
if (content !== undefined && message !== undefined) {
|
||||
var long_message = could_be_condensed(elem);
|
||||
if (long_message) {
|
||||
// All long messages are flagged as such.
|
||||
content.addClass("could-be-condensed");
|
||||
}
|
||||
|
||||
// If message.condensed is defined, then the user has manually
|
||||
// specified whether this message should be expanded or condensed.
|
||||
if (message.condensed === true) {
|
||||
condense($(elem));
|
||||
return;
|
||||
} else if (message.condensed === false) {
|
||||
uncondense($(elem));
|
||||
return;
|
||||
} else if (long_message) {
|
||||
// By default, condense a long message.
|
||||
condense($(elem));
|
||||
}
|
||||
// If message.condensed is defined, then the user has manually
|
||||
// specified whether this message should be expanded or condensed.
|
||||
if (message.condensed === true) {
|
||||
condense($(elem));
|
||||
return;
|
||||
} else if (message.condensed === false) {
|
||||
uncondense($(elem));
|
||||
return;
|
||||
} else if (long_message) {
|
||||
// By default, condense a long message.
|
||||
condense($(elem));
|
||||
}
|
||||
|
||||
// Completely hide the message and replace it with a [More]
|
||||
// link if the user has collapsed it.
|
||||
if (message.collapsed) {
|
||||
content.addClass("collapsed");
|
||||
$(elem).find(".message_expander").show();
|
||||
// Completely hide the message and replace it with a [More]
|
||||
// link if the user has collapsed it.
|
||||
if (message.collapsed) {
|
||||
content.addClass("collapsed");
|
||||
$(elem).find(".message_expander").show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$(function () {
|
||||
|
||||
Reference in New Issue
Block a user