Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- msglist = Array.from(document.querySelectorAll('.msg-list')).find(list => list.querySelectorAll('.card').length > 10);
- messages = Array.from(msglist.querySelectorAll('.card'));
- threaded = [];
- messages_by_id = {};
- messages.reverse().forEach((message) => {
- let id = message.querySelector('.msg-head-author .msg-num').textContent.trim();
- messages_by_id[id] = message;
- let parentid = message.querySelector('.msg-head-replied .msg-num');
- if (parentid)
- {
- let parent = threaded.find(messages => messages.includes(parentid.textContent.trim()));
- if (parent)
- {
- parent.push(id);
- threaded = threaded.filter(item => item != parent)
- threaded.push(parent);
- }
- else
- threaded.push([id]);
- }
- else
- threaded.push([id]);
- });
- msglist.insertAdjacentHTML("beforeend", `<div class="accordion" id="accordionExample"></div>`);
- threaded.reverse().forEach((messages, id) => {
- let text = messages_by_id[messages[0]].querySelector('.msg-content').textContent;
- document.querySelector('#accordionExample').insertAdjacentHTML('beforeend', `
- <div class="card">
- <div class="card-header" id="accordionheading${id}">
- <h2 class="mb-0">
- <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#accordioncollapse${id}" aria-expanded="true" aria-controls="accordioncollapse${id}" title="${text.replace(/["\r\n<>]/, ' ')}">
- <span class="badge badge-warning">${(messages.length - 1) + ' válasz'}</span>
- ${text.substring(0, 70) + '...'}
- </button>
- </h2>
- </div>
- <div id="accordioncollapse${id}" class="collapse" aria-labelledby="accordionheading${id}" data-parent="#accordionExample">
- <div class="card-body">
- <ul class="list-group">
- </ul>
- </div>
- </div>
- </div>
- `);
- let list = document.querySelector('#accordioncollapse' + id + ' .card-body .list-group');
- messages.reverse().forEach(message => {
- list.insertAdjacentHTML('beforeend', '<li class="list-group-item"></li>');
- list.querySelector('.list-group-item:last-child').appendChild(messages_by_id[message]);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement