copy_and_paste.js: Extract method for constructing div with copied text.

This commit is contained in:
knovokresch
2018-03-20 20:49:42 +03:00
committed by Tim Abbott
parent b94a24ffe3
commit 2320a38a9c

View File

@@ -35,6 +35,23 @@ function find_boundary_tr(initial_tr, iterate_row) {
return [rows.id(tr), skip_same_td_check];
}
function construct_copy_div(div, start_id, end_id) {
for (var row = current_msg_list.get_row(start_id);
rows.id(row) <= end_id;
row = rows.next_visible(row)) {
if (row.prev().hasClass("message_header")) {
var content = $('<div>').text(row.prev().text()
.replace(/\s+/g, " ")
.replace(/^\s/, "").replace(/\s$/, ""));
div.append($('<p>').append($('<strong>').text(content.text())));
}
var message = current_msg_list.get(rows.id(row));
var message_firstp = $(message.content).slice(0, 1);
message_firstp.prepend(message.sender_full_name + ": ");
div.append(message_firstp);
div.append($(message.content).slice(1));
}
}
function copy_handler() {
var selection = window.getSelection();
@@ -46,13 +63,10 @@ function copy_handler() {
var initial_end_tr;
var start_id;
var end_id;
var row;
var message;
var start_data;
var end_data;
var skip_same_td_check = false;
var div = $('<div>');
var content;
for (i = 0; i < selection.rangeCount; i += 1) {
range = selection.getRangeAt(i);
ranges.push(range);
@@ -97,21 +111,7 @@ function copy_handler() {
}
// Construct a div for what we want to copy (div)
for (row = current_msg_list.get_row(start_id);
rows.id(row) <= end_id;
row = rows.next_visible(row)) {
if (row.prev().hasClass("message_header")) {
content = $('<div>').text(row.prev().text()
.replace(/\s+/g, " ")
.replace(/^\s/, "").replace(/\s$/, ""));
div.append($('<p>').append($('<strong>').text(content.text())));
}
message = current_msg_list.get(rows.id(row));
var message_firstp = $(message.content).slice(0, 1);
message_firstp.prepend(message.sender_full_name + ": ");
div.append(message_firstp);
div.append($(message.content).slice(1));
}
construct_copy_div(div, start_id, end_id);
}
if (window.bridge !== undefined) {