gitlab-org--gitlab-foss/app/assets/javascripts/abuse_reports.js.es6

40 lines
1.4 KiB
JavaScript
Raw Normal View History

window.gl = window.gl || {};
2016-08-08 09:04:18 -04:00
((global) => {
const MAX_MESSAGE_LENGTH = 500;
const MESSAGE_CELL_SELECTOR = '.abuse-reports .message';
class AbuseReports {
constructor() {
$(MESSAGE_CELL_SELECTOR).each(this.truncateLongMessage);
$(document)
.off('click', MESSAGE_CELL_SELECTOR)
.on('click', MESSAGE_CELL_SELECTOR, this.toggleMessageTruncation);
}
truncateLongMessage() {
2016-08-13 07:20:57 -04:00
const $messageCellElement = $(this);
const reportMessage = $messageCellElement.text();
2016-08-08 09:04:18 -04:00
if (reportMessage.length > MAX_MESSAGE_LENGTH) {
$messageCellElement.data('original-message', reportMessage);
$messageCellElement.data('message-truncated', 'true');
$messageCellElement.text(global.text.truncate(reportMessage, MAX_MESSAGE_LENGTH));
2016-08-08 09:04:18 -04:00
}
}
toggleMessageTruncation() {
2016-08-13 07:20:57 -04:00
const $messageCellElement = $(this);
const originalMessage = $messageCellElement.data('original-message');
2016-08-08 09:04:18 -04:00
if (!originalMessage) return;
if ($messageCellElement.data('message-truncated') === 'true') {
$messageCellElement.data('message-truncated', 'false');
$messageCellElement.text(originalMessage);
} else {
$messageCellElement.data('message-truncated', 'true');
$messageCellElement.text(`${originalMessage.substr(0, (MAX_MESSAGE_LENGTH - 3))}...`);
2016-08-08 09:04:18 -04:00
}
}
}
global.AbuseReports = AbuseReports;
})(window.gl);