Skip to content

Commit

Permalink
Minor Fixes (#47)
Browse files Browse the repository at this point in the history
* Update Query Selector

* Update Variables

* Update Hidden and Cleanup Comments

* Update Display
  • Loading branch information
smashedr authored Dec 15, 2023
1 parent 5ce4d85 commit 167de2c
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 68 deletions.
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Easily extract, parse, or open all links/domains from a site or text with optional filters.",
"homepage_url": "https://link-extractor.cssnr.com/",
"author": "Shane",
"version": "0.3.1",
"version": "0.3.2",
"manifest_version": 3,
"commands": {
"_execute_action": {
Expand Down
18 changes: 9 additions & 9 deletions src/html/links.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@
</head>
<body>

<div id="top-container" class="position-fixed top-0 end-0 user-select-none visually-hidden links domains">
<div class="row g-1 visually-hidden links">
<div id="top-container" class="position-fixed top-0 end-0 user-select-none">
<div class="row g-1 links d-none">
<div class="col">
<a href="#links"><span class="badge text-bg-success visually-hidden w-100 links">Links</span></a>
<a href="#links"><span class="badge text-bg-success w-100">Links</span></a>
</div>
<div class="col">
<a role="button" class="clip" data-clipboard-target="#links-body" data-toast="Copied Links">
<span class="badge text-bg-success w-100">Copy</span></a>
</div>
</div>
<div class="row g-1 visually-hidden domains">
<div class="row g-1 domains d-none">
<div class="col">
<a href="#domains"><span class="badge text-bg-primary w-100">Domains</span></a>
</div>
Expand All @@ -32,8 +32,8 @@
</div>

<div class="container-fluid p-3">
<h2 id="loading-message" class="user-select-none">Loading...</h2>
<div class="visually-hidden links">
<h2 id="loading-message" class="user-select-none d-none">Loading...</h2>
<div class="links d-none">
<div class="user-select-none">
<h2 id="links">Links <span id="links-count" class="badge bg-success-subtle"></span></h2>
<a id="copy-links" class="btn btn-sm btn-success clip me-1 mb-2" role="button" data-clipboard-target="#links-body" data-toast="Copied Links">
Expand All @@ -52,13 +52,13 @@ <h2 id="links">Links <span id="links-count" class="badge bg-success-subtle"></sp
<datalist id="savedFilters"></datalist>

<table id="links-table" class="table table-sm table-striped table-hover small">
<caption class="visually-hidden user-select-none" style="display: none;">Links</caption>
<caption class="visually-hidden user-select-none">Links</caption>
<thead class="visually-hidden"><tr><th></th></tr></thead>
<tbody id="links-body"></tbody>
</table>
</div>

<div class="visually-hidden domains">
<div class="domains d-none">
<div class="user-select-none">
<h2 id="domains">Domains <span id="domains-count" class="badge bg-primary-subtle"></span></h2>
<a id="copy-domains" class="btn btn-sm btn-primary clip me-1 mb-2" role="button" data-clipboard-target="#domains-body" data-toast="Copied Domains">
Expand All @@ -70,7 +70,7 @@ <h2 id="domains">Domains <span id="domains-count" class="badge bg-primary-subtle
<span class="d-inline-block me-1 mb-2">Press <kbd>D</kbd> or <kbd>M</kbd> to Copy Domains.</span>
</div>
<table id="domains-table" class="table table-sm table-striped table-hover small">
<caption class="visually-hidden user-select-none" style="display: none;">Domains</caption>
<caption class="visually-hidden user-select-none">Domains</caption>
<thead class="visually-hidden"><tr><th></th></tr></thead>
<tbody id="domains-body"></tbody>
</table>
Expand Down
54 changes: 19 additions & 35 deletions src/js/links.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ async function processLinks(links) {
const onlyDomains = urlParams.has('domains')
console.log(`urlFilter: ${urlFilter}`)
console.log(`onlyDomains: ${onlyDomains}`)
// const openWarnCount = 30
const { options } = await chrome.storage.sync.get(['options'])
console.log('options:', options)

Expand Down Expand Up @@ -108,13 +107,8 @@ async function processLinks(links) {
if (!onlyDomains) {
document.getElementById('links-count').textContent =
items.length.toString()
// if (items.length >= openWarnCount) {
// const openCount = document.getElementById('open-links-count')
// openCount.classList.remove('visually-hidden')
// openCount.textContent = items.length.toString()
// }
const linksElements = document.querySelectorAll('.links')
linksElements.forEach((el) => el.classList.remove('visually-hidden'))
linksElements.forEach((el) => el.classList.remove('d-none'))
updateTable(items, '#links-table')
}

Expand All @@ -125,19 +119,14 @@ async function processLinks(links) {
})
document.getElementById('domains-count').textContent =
domains.length.toString()
// if (domains.length >= openWarnCount) {
// const openCount = document.getElementById('open-domains-count')
// openCount.classList.remove('visually-hidden')
// openCount.textContent = domains.length.toString()
// }
if (domains.length) {
const domainsElements = document.querySelectorAll('.domains')
domainsElements.forEach((el) => el.classList.remove('visually-hidden'))
domainsElements.forEach((el) => el.classList.remove('d-none'))
updateTable(domains, '#domains-table')
}

// Hide Loading message
document.getElementById('loading-message').classList.add('visually-hidden')
document.getElementById('loading-message').classList.add('d-none')
}

/**
Expand Down Expand Up @@ -177,7 +166,6 @@ function updateTable(data, selector) {

/**
* Keyboard keydown Callback
* Requires JQuery
* @function handleKeybinds
* @param {KeyboardEvent} event
*/
Expand All @@ -196,7 +184,7 @@ function handleKeybinds(event) {
event.preventDefault() // prevent typing f on focus
document.getElementById('filter-links').focus()
} else if (checkKey(event, ['KeyZ', 'KeyK'])) {
$('#keybinds-modal').modal('toggle')
bootstrap.Modal.getOrCreateInstance('#keybinds-modal').toggle()
}
}
}
Expand Down Expand Up @@ -249,10 +237,8 @@ function openLinksClick(event) {
*/
function downloadFileClick(event) {
console.log('downloadFileClick:', event)
console.log(`querySelector: ${event.target.dataset.target}`)
const element = document.querySelector(event.target.dataset.target)
const links = element.innerText.trim()
console.log('links:', links)
if (links) {
download(event.target.dataset.filename, links)
showToast('Download Started.')
Expand All @@ -275,22 +261,31 @@ function download(filename, text) {
'data:text/plain;charset=utf-8,' + encodeURIComponent(text)
)
element.setAttribute('download', filename)
element.style.display = 'none'
element.classList.add('d-none')
document.body.appendChild(element)
element.click()
document.body.removeChild(element)
}

/**
* Reset Filter Click Callback
* @function resetButton
* @param {MouseEvent} event
*/
function resetButton(event) {
document.getElementById('filter-links').value = ''
filterLinks()
}

/**
* Filter Links
* Requires JQuery
* @function filterLinks
* @param {MouseEvent} event
*/
function filterLinks(event) {
// console.log('filterLinks:', event)
// console.log(`value: ${event.target.value}`)
const input = $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b')
function filterLinks() {
const input = $.trim($('#filter-links').val())
.split(/\s+/)
.join('\\b)(?=.*\\b')
const value = `^(?=.*\\b${input}).*$`
const reg = RegExp(value, 'i')

Expand All @@ -305,14 +300,3 @@ function filterLinks(event) {
$('#links-count').text($('#links-table tr:visible').length)
$('#domains-count').text($('#domains-table tr:visible').length)
}

/**
* Reset Filter Click Callback
* @function resetButton
* @param {MouseEvent} event
*/
function resetButton(event) {
console.log('resetButton:', event)
document.getElementById('filter-links').value = ''
filterLinks(event)
}
30 changes: 15 additions & 15 deletions src/js/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,31 @@ function updateTable(data) {
data.forEach(function (value) {
const row = tbody.insertRow()

const deleteBtn = document.createElement('a')
const button = document.createElement('a')
const svg = document.getElementById('bi-trash3').cloneNode(true)
deleteBtn.appendChild(svg)
deleteBtn.title = 'Delete'
deleteBtn.dataset.value = value
deleteBtn.classList.add('link-danger')
deleteBtn.setAttribute('role', 'button')
deleteBtn.addEventListener('click', deleteHost)
button.appendChild(svg)
button.title = 'Delete'
button.dataset.value = value
button.classList.add('link-danger')
button.setAttribute('role', 'button')
button.addEventListener('click', deleteHost)
const cell1 = row.insertCell()
cell1.classList.add('text-center')
cell1.appendChild(deleteBtn)
cell1.appendChild(button)

const filterLink = document.createElement('a')
filterLink.dataset.clipboardText = value
filterLink.text = value
filterLink.title = value
filterLink.classList.add(
const link = document.createElement('a')
link.dataset.clipboardText = value
link.text = value
link.title = value
link.classList.add(
'clip',
'link-body-emphasis',
'link-underline',
'link-underline-opacity-0'
)
filterLink.setAttribute('role', 'button')
link.setAttribute('role', 'button')
const cell2 = row.insertCell()
cell2.appendChild(filterLink)
cell2.appendChild(link)
})
}

Expand Down
14 changes: 6 additions & 8 deletions src/js/popup.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,14 +156,12 @@ function updateLinks(event) {
let text = event.target.value.split(/\r\n?|\n/g)
text = text.filter((str) => str !== '')
const urls = extractURLs(event.target.value)
const parseLines = document.getElementsByClassName('parse-lines')
Array.from(parseLines).forEach(function (el) {
updateElements(el, text)
})
const parseLinks = document.getElementsByClassName('parse-links')
Array.from(parseLinks).forEach(function (el) {
updateElements(el, urls)
})
document
.querySelectorAll('.parse-lines')
.forEach((el) => updateElements(el, text))
document
.querySelectorAll('.parse-links')
.forEach((el) => updateElements(el, urls))
}

/**
Expand Down

0 comments on commit 167de2c

Please sign in to comment.