(item, id, date)
| 77 | } |
| 78 | |
| 79 | function createItemElement(item, id, date) { |
| 80 | let itemContainer = document.createElement('div'); |
| 81 | itemContainer.id = id; |
| 82 | itemContainer.className = 'item-container'; |
| 83 | |
| 84 | let itemElement = document.createElement('div'); |
| 85 | itemElement.className = 'item'; |
| 86 | |
| 87 | // Favicon |
| 88 | let faviconElement = document.createElement('div'); |
| 89 | faviconElement.className = 'favicon'; |
| 90 | let faviconImage = document.createElement('img'); |
| 91 | faviconImage.src = item.favicon; |
| 92 | faviconElement.append(faviconImage); |
| 93 | itemElement.append(faviconElement); |
| 94 | |
| 95 | // Title |
| 96 | let titleLabel = document.createElement('div'); |
| 97 | titleLabel.className = 'label-title'; |
| 98 | let linkElement = document.createElement('a'); |
| 99 | linkElement.href = item.uri; |
| 100 | linkElement.title = item.title; |
| 101 | linkElement.textContent = item.title; |
| 102 | titleLabel.append(linkElement); |
| 103 | itemElement.append(titleLabel); |
| 104 | |
| 105 | // URI |
| 106 | let uriLabel = document.createElement('div'); |
| 107 | uriLabel.className = 'label-uri'; |
| 108 | let textElement = document.createElement('p'); |
| 109 | textElement.title = item.uri; |
| 110 | textElement.textContent = item.uri; |
| 111 | uriLabel.append(textElement); |
| 112 | itemElement.append(uriLabel); |
| 113 | |
| 114 | // Time |
| 115 | let timeLabel = document.createElement('div'); |
| 116 | timeLabel.className = 'label-time'; |
| 117 | let timeText = document.createElement('p'); |
| 118 | timeText.textContent = timeStringFormat.format(date); |
| 119 | timeLabel.append(timeText); |
| 120 | itemElement.append(timeLabel); |
| 121 | |
| 122 | // Close button |
| 123 | let closeButton = document.createElement('div'); |
| 124 | closeButton.className = 'btn-close'; |
| 125 | closeButton.addEventListener('click', function(e) { |
| 126 | if (itemContainer.parentNode.children.length <= 2) { |
| 127 | itemContainer.parentNode.remove(); |
| 128 | } else { |
| 129 | itemContainer.remove(); |
| 130 | } |
| 131 | |
| 132 | let entriesContainer = document.getElementById('entries-container'); |
| 133 | if (entriesContainer.childElementCount == 0) { |
| 134 | loadUIForEmptyHistory(); |
| 135 | } |
| 136 | removeItem(parseInt(id.split('-')[1])); |
no test coverage detected