Sonar recommendations

This commit is contained in:
echarp 2023-05-07 17:52:17 +02:00
parent 3fd0a25c70
commit 2876fc914f
6 changed files with 19 additions and 37 deletions

View File

@ -78,10 +78,10 @@ body.author .ac_choice label.text {
} }
body.users .ac_choice label.text:hover { body.users .ac_choice label.text:hover {
cursor: pointer; cursor: pointer;
box-shadow: 0 0 5px blue inset, 0 0 5px blue;
} }
body.users .ac_choice input[type="radio"]:checked + label.text {
#content { box-shadow: 0 0 5px red inset, 0 0 5px red !important;
padding: 0 0.2em;
} }
.ac_choice input[type=radio] { .ac_choice input[type=radio] {
@ -99,13 +99,6 @@ body.users .ac_choice label.text:hover {
color: inherit; color: inherit;
content: attr(placeholder); content: attr(placeholder);
} }
body.users .ac_choice label.text:hover {
box-shadow: 0 0 5px blue inset, 0 0 5px blue;
}
body.users .ac_choice input[type="radio"]:checked + label.text {
box-shadow: 0 0 5px red inset, 0 0 5px red !important;
}
.ac_choice a.gotoChoice { .ac_choice a.gotoChoice {
float: left; float: left;
font-size: x-large; font-size: x-large;

View File

@ -12,7 +12,7 @@ const sleep = (seconds) => new Promise(resolve => {
/* /*
* From the current URL generate an UUID * From the current URL generate an UUID
*/ */
getUuidFromUrl = (pathname = document.location.pathname) => const getUuidFromUrl = (pathname = document.location.pathname) =>
pathname pathname
.split('') .split('')
.reverse() .reverse()

View File

@ -6,7 +6,7 @@ const tons = [264, 275, 297, 316.8, 330, 352, 371.25, 396, 412.5, 440, 475.2, 49
/* /*
* Play one note * Play one note
*/ */
note = (context, freq, counter) => { const note = (context, freq, counter) => {
// console.log("Note n°", counter, freq) // console.log("Note n°", counter, freq)
const oscil = context.createOscillator() const oscil = context.createOscillator()
@ -21,7 +21,6 @@ note = (context, freq, counter) => {
// All are in seconds // All are in seconds
const start = counter / notesPerSecond const start = counter / notesPerSecond
const duration = .5 const duration = .5
const ramp = .2 / notesPerSecond / 3 // Exponential increase
// Increase volume // Increase volume
gainNode.gain.setValueAtTime(1, start) gainNode.gain.setValueAtTime(1, start)
@ -35,7 +34,7 @@ note = (context, freq, counter) => {
/* /*
* Launch notes based on the current URL * Launch notes based on the current URL
*/ */
launchNotes = (event, counter = 0, uuid = getUuidFromUrl()) => { const launchNotes = (event, counter = 0, uuid = getUuidFromUrl()) => {
if (counter >= uuid.length || counter >= 5) return if (counter >= uuid.length || counter >= 5) return
const context = new (window.AudioContext || window.webkitAudioContext)(); const context = new (window.AudioContext || window.webkitAudioContext)();
@ -50,4 +49,4 @@ launchNotes = (event, counter = 0, uuid = getUuidFromUrl()) => {
launchNotes(event, counter + 1, uuid) launchNotes(event, counter + 1, uuid)
} }
// document.onclick = launchNotes // document.onclick = launchNotes

View File

@ -1,8 +1,8 @@
const propUrl = document.body.dataset.editUrl + '.prop' const propUrl = document.body.dataset.editUrl + '.prop'
preparePropertyEdition = (node) => node.dataset.old = node.innerText const preparePropertyEdition = (node) => node.dataset.old = node.innerText
updateProperty = (node) => { const updateProperty = (node) => {
if (node.dataset.old == node.innerText) return if (node.dataset.old == node.innerText) return
const body = `${node.dataset.property}: ${node.innerText.trim()}` const body = `${node.dataset.property}: ${node.innerText.trim()}`
@ -15,7 +15,7 @@ updateProperty = (node) => {
const pages = document.getElementById('pages') const pages = document.getElementById('pages')
prepareChoiceEdition = (node) => { const prepareChoiceEdition = (node) => {
// Load list of pages from which authors can select results' page // Load list of pages from which authors can select results' page
if (node.list && !node.dataset.old && !pages.children.length) if (node.list && !node.dataset.old && !pages.children.length)
fetch('/pages.txt', { cache: 'no-store' }) fetch('/pages.txt', { cache: 'no-store' })
@ -46,7 +46,7 @@ prepareChoiceEdition = (node) => {
} }
} }
createChoice = (node) => { const createChoice = (node) => {
if (node.nextSibling if (node.nextSibling
&& (!node.querySelector('label.text').innerText && (!node.querySelector('label.text').innerText
|| !node.querySelector('input[type=text]').value)) { || !node.querySelector('input[type=text]').value)) {
@ -64,9 +64,9 @@ createChoice = (node) => {
setupChoiceEdition() setupChoiceEdition()
} }
createPage = (title) => { const createPage = (title) => {
// Page automatic creation, later there should be a mechanism to remove eventual orphans :) // Page automatic creation, later there should be a mechanism to remove eventual orphans :)
option = pages.appendChild(document.createElement('option')) const option = pages.appendChild(document.createElement('option'))
option.dataset.title = title option.dataset.title = title
option.dataset.url = uuid() option.dataset.url = uuid()
option.innerText = title option.innerText = title
@ -77,7 +77,7 @@ createPage = (title) => {
return option return option
} }
readPage = (node) => { const readPage = (node) => {
const title = node.querySelector('input[type=text]').value.trim() const title = node.querySelector('input[type=text]').value.trim()
let option = pages.querySelector(`option[data-title='${title}']`) let option = pages.querySelector(`option[data-title='${title}']`)
if (!option) { if (!option) {
@ -87,7 +87,7 @@ readPage = (node) => {
return `"[${node.querySelector('label.text').innerText.trim()}](${option.dataset.url})"` return `"[${node.querySelector('label.text').innerText.trim()}](${option.dataset.url})"`
} }
updateChoice = (node) => { const updateChoice = (node) => {
if (node.dataset.old == (node.innerText || node.value)) return if (node.dataset.old == (node.innerText || node.value)) return
const choice = node.closest('.ac_choice') const choice = node.closest('.ac_choice')
@ -98,7 +98,7 @@ updateChoice = (node) => {
.catch(error => console.error('Error editing property', error)) .catch(error => console.error('Error editing property', error))
} }
deleteChoice = (node) => { const deleteChoice = (node) => {
const choice = node.closest('.ac_choice') const choice = node.closest('.ac_choice')
const property = choice.querySelector('label').dataset.property const property = choice.querySelector('label').dataset.property
const index = Array.from(node.closest('form').children).indexOf(choice) const index = Array.from(node.closest('form').children).indexOf(choice)
@ -110,7 +110,7 @@ deleteChoice = (node) => {
} }
// Utility method // Utility method
uuid = () => { const uuid = () => {
const temp_url = URL.createObjectURL(new Blob()) const temp_url = URL.createObjectURL(new Blob())
const uuid = temp_url.toString() const uuid = temp_url.toString()
URL.revokeObjectURL(temp_url) URL.revokeObjectURL(temp_url)

View File

@ -30,7 +30,7 @@ document.querySelectorAll('body [data-property]')
node.onblur = () => updateProperty(node) node.onblur = () => updateProperty(node)
}) })
setupChoiceEdition = () => { const setupChoiceEdition = () => {
document.querySelectorAll('body.author .ac_choice label.text, body.author .ac_choice input[type=text]') document.querySelectorAll('body.author .ac_choice label.text, body.author .ac_choice input[type=text]')
.forEach(node => { .forEach(node => {
node.contentEditable = true node.contentEditable = true
@ -45,9 +45,6 @@ setupChoiceEdition = () => {
document.querySelectorAll('body.author .ac_choice button.delete') document.querySelectorAll('body.author .ac_choice button.delete')
.forEach(node => node.onclick = () => deleteChoice(node)) .forEach(node => node.onclick = () => deleteChoice(node))
window.getSelection().removeAllRanges()
const range = document.createRange()
} }
document.addEventListener('paste', (e) => { document.addEventListener('paste', (e) => {
@ -55,7 +52,7 @@ document.addEventListener('paste', (e) => {
e.preventDefault() e.preventDefault()
const text = (e.originalEvent || e).clipboardData.getData('text/plain') const text = (e.originalEvent || e).clipboardData.getData('text/plain')
window.document.execCommand('insertText', false, text) document.execCommand('insertText', false, text)
}) })
setupChoiceEdition() setupChoiceEdition()

View File

@ -1,7 +0,0 @@
{{ range .Ancestors.Reverse }}
{{ if and (not .IsHome) (not .Parent.IsHome) }}
<li>
<a href="{{ .Permalink }}">{{- .Title -}}</a>
</li>
{{ end }}
{{ end }}