1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*global _, converse_utils */
- const u = converse_utils;
- window.renderAvatars = function (el) {
- el = el || document;
- const canvasses = el.querySelectorAll('canvas.chat-msg__avatar');
- _.each(canvasses, (canvas_el) => {
- const avatar_url = canvas_el.getAttribute('data-avatar');
- if (!avatar_url) {
- return;
- }
- const ctx = canvas_el.getContext('2d');
- const img = new Image();
- img.onload = function () {
- const canvas = ctx.canvas ;
- const hRatio = canvas.width / img.width ;
- const vRatio = canvas.height / img.height ;
- const ratio = Math.min ( hRatio, vRatio );
- const centerShift_x = ( canvas.width - img.width*ratio ) / 2;
- const centerShift_y = ( canvas.height - img.height*ratio ) / 2;
- ctx.clearRect(0,0,canvas.width, canvas.height);
- ctx.drawImage(img, 0,0, img.width, img.height, centerShift_x,centerShift_y,img.width*ratio, img.height*ratio);
- };
- img.src = avatar_url;
- });
- }
- function toggleSpoilerMessage (ev) {
- if (ev && ev.preventDefault) {
- ev.preventDefault();
- }
- const toggle_el = ev.target,
- icon_el = toggle_el.firstElementChild;
- u.slideToggleElement(
- toggle_el.parentElement.parentElement.querySelector('.spoiler')
- );
- if (toggle_el.getAttribute("data-toggle-state") == "closed") {
- toggle_el.textContent = 'Show less';
- icon_el.classList.remove("fa-eye");
- icon_el.classList.add("fa-eye-slash");
- toggle_el.insertAdjacentElement('afterBegin', icon_el);
- toggle_el.setAttribute("data-toggle-state", "open");
- } else {
- toggle_el.textContent = 'Show more';
- icon_el.classList.remove("fa-eye-slash");
- icon_el.classList.add("fa-eye");
- toggle_el.insertAdjacentElement('afterBegin', icon_el);
- toggle_el.setAttribute("data-toggle-state", "closed");
- }
- }
- window.initSpoilers = function () {
- const spoilers = document.querySelectorAll('.spoiler-toggle');
- _.each(spoilers, (spoiler_el) => {
- spoiler_el.addEventListener('click', toggleSpoilerMessage);
- });
- }
|