This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
bdfr-browser/priv/templates/http/chat.eex

68 lines
2.2 KiB
Elixir

<h2>Chats</h2>
<%= for message <- messages do %>
<div class="row" style="margin-bottom: 2px;"
id="msg-<%= message.id %>"
<%= unless is_nil(message.bookmark) do %>
data-bookmark="<%= message.bookmark %>"
<% end %>
>
<div class="card">
<div class="card-body" style="padding: 8px;">
<blockquote class="blockquote mb-0" style="font-size: 1rem;">
<%= BdfrBrowser.RenderUtils.message(message.message) %>
<footer class="blockquote-footer">
<a href="/user/<%= message.author %>"><%= message.author %></a>,
<small><%= DateTime.to_iso8601(message.posted_at) %></small>
<%= unless is_nil(message.bookmark) do %>
<span class="badge text-bg-secondary"><%= message.bookmark %></span>
<% end %>
</footer>
</blockquote>
</div>
</div>
</div>
<% end %>
<script>
const bookmarks = document.querySelectorAll('[data-bookmark]');
if (bookmarks.length > 0) {
const header = document.getElementsByTagName('h2')[0];
const container = document.createElement('div');
container.className = 'dropdown';
const dropdownButton = document.createElement('button');
dropdownButton.id = 'bookmarkDropdown';
dropdownButton.className = 'btn btn-secondary dropdown-toggle';
dropdownButton.setAttribute('type', 'button');
dropdownButton.setAttribute('data-bs-toggle', 'dropdown');
dropdownButton.setAttribute('aria-expanded', 'false');
dropdownButton.innerText = 'Bookmarks';
container.appendChild(dropdownButton);
const dropdownMenu = document.createElement('ul');
dropdownMenu.className = 'dropdown-menu';
for (var i = 0; i < bookmarks.length; i++) {
console.log(bookmarks[i]);
let liElement = document.createElement('li');
let bookmarkElement = document.createElement('a');
bookmarkElement.href = `#${bookmarks[i].id}`;
bookmarkElement.innerText = bookmarks[i].dataset.bookmark;
bookmarkElement.className = "dropdown-item";
liElement.appendChild(bookmarkElement);
dropdownMenu.appendChild(liElement);
}
container.appendChild(dropdownMenu);
header.after(container);
container.after(document.createElement('br'));
}
</script>