Using an "edit" context instead of a separate "edit" subdomain
This commit is contained in:
parent
cf5ae1bf82
commit
a181c1837e
@ -5,34 +5,28 @@ ServerSignature Off
|
||||
Protocols h2 h2c http/1.1
|
||||
|
||||
DocumentRoot /var/simpleWeb/apps/acoeur/public
|
||||
<Location /author>
|
||||
Require all granted
|
||||
# Send back all headers, most importantly the eventual "authorization" one
|
||||
Header always echo
|
||||
# Do not send a 404
|
||||
Redirect 204 /
|
||||
|
||||
# For development
|
||||
Header always set authorization "test"
|
||||
</Location>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName edit.acoeur
|
||||
Protocols h2 h2c http/1.1
|
||||
|
||||
DocumentRoot /var/simpleWeb/apps/acoeur/content
|
||||
<Directory /var/simpleWeb/apps/acoeur/content>
|
||||
# This is special, anybody can see and edit it!
|
||||
Require all granted
|
||||
</Directory>
|
||||
Alias /edit /var/simpleWeb/apps/acoeur/content
|
||||
<Directory /var/simpleWeb/apps/acoeur>
|
||||
AuthUserFile /home/manu/Adata/.htaccessPasswords
|
||||
AuthName "Quiz d'A Livr'Ouvert"
|
||||
AuthType Basic
|
||||
Require user mag manu amelie tiffany
|
||||
</Directory>
|
||||
<Directory /var/simpleWeb/apps/acoeur/*/users/*/>
|
||||
Require all granted
|
||||
</Directory>
|
||||
<Directory /var/simpleWeb/apps/acoeur/public/ananke>
|
||||
Require all granted
|
||||
</Directory>
|
||||
<Directory /var/simpleWeb/apps/acoeur/public/assets>
|
||||
Require all granted
|
||||
</Directory>
|
||||
<Directory /var/simpleWeb/apps/acoeur/public/js>
|
||||
Require all granted
|
||||
</Directory>
|
||||
<Directory /var/simpleWeb/apps/acoeur/public/*.ico>
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
CustomLog /var/simpleWeb/log/apache/acoeur.log combined
|
||||
|
||||
# So that simple web editor can display eventual errors
|
||||
Alias /app.log /var/simpleWeb/apps/acoeur/public/app.log
|
||||
|
||||
Header set Access-Control-Allow-Origin acoeur
|
||||
Header set Access-Control-Allow-Methods "HEAD, GET, POST, PUT, OPTIONS, DELETE"
|
||||
Header set Access-Control-Allow-Headers *
|
||||
</VirtualHost>
|
||||
|
@ -6,6 +6,9 @@ line="$1"
|
||||
|
||||
url=$(echo "$line" | cut -d ' ' -f7)
|
||||
|
||||
# Remove the starting "/edit" part, which is an apache alias required to target the proper directory
|
||||
url=${url#/edit*}
|
||||
|
||||
full="$(pwd)/content$url"
|
||||
|
||||
dir=${full%/*}
|
||||
|
@ -1,8 +1,8 @@
|
||||
/pages/doc/devoir.md:title: Devoir
|
||||
/pages/doc/intro.md:title: Introduction
|
||||
/pages/doc/savoir.md:title: Savoir
|
||||
/pages/doc/vouloir.md:title: Vouloir
|
||||
/pages/doc/pouvoir.md:title: Pouvoir
|
||||
/pages/doc/intro.md:title: Introduction
|
||||
/pages/1er-quiz/cff71434-fdaf-468f-838c-067059979299.md:title: Chapitre 3 - Les lettres de nulle part
|
||||
/pages/1er-quiz/b80fcc08-170e-4422-8498-ae1f97b47eda.md:title: Chapitre 5 - Le chemin de traverse
|
||||
/pages/1er-quiz/7c038015-c989-4024-a3cf-14b8557fdb0c.md:title: Chapitre 6 - Rendez-vous sur la voie 9 3/4
|
||||
|
@ -10,7 +10,7 @@ document.querySelectorAll('aside#actions #create')
|
||||
.forEach(elt => elt.onclick = () => {
|
||||
const url = `${topSection}/${uuid()}`
|
||||
|
||||
fetch(`${document.body.dataset.editHost}/${url}.create`, { method: 'PUT', body: topSection })
|
||||
fetch(`/edit/${url}.create`, { method: 'PUT', body: topSection })
|
||||
.then(() => sleep(1))
|
||||
.then(() => window.location.assign('/' + url))
|
||||
.catch(error => console.error(`Error creating #{topSection}`, error))
|
||||
@ -37,7 +37,7 @@ document.querySelectorAll('aside#actions input#file')
|
||||
document.querySelectorAll('.delete_image')
|
||||
.forEach(elt => elt.onclick = () => {
|
||||
if (confirm(elt.dataset.confirm))
|
||||
fetch(document.body.dataset.editHost + elt.dataset.target, { method: 'DELETE' })
|
||||
fetch('/edit/' + elt.dataset.target, { method: 'DELETE' })
|
||||
.then(() => elt.parentNode.remove())
|
||||
.catch(error => console.error(error))
|
||||
.finally(() => elt.parentNode.remove())
|
||||
})
|
||||
|
@ -18,7 +18,7 @@ const pages = document.getElementById('pages')
|
||||
prepareChoiceEdition = (node) => {
|
||||
// Load list of pages from which authors can select results' page
|
||||
if (node.list && !node.dataset.old && !pages.children.length)
|
||||
fetch(`${editHost}/pages.txt`, { cache: 'no-store' })
|
||||
fetch('/pages.txt', { cache: 'no-store' })
|
||||
.then(pages => pages.text())
|
||||
.then(pages => pages.split('\n')
|
||||
.filter(line => line)
|
||||
|
@ -1,9 +1,4 @@
|
||||
document.body.dataset.editHost = window.location.protocol
|
||||
+ '//edit.'
|
||||
+ window.location.host
|
||||
document.body.dataset.editUrl = document.body.dataset.editHost
|
||||
+ '/'
|
||||
+ file.replace('.md', '')
|
||||
document.body.dataset.editUrl = '/edit/' + file.replace('.md', '')
|
||||
|
||||
const topSection = window.location.pathname.split('/')[1]
|
||||
if (topSection) document.body.classList.add(topSection)
|
||||
|
@ -8,7 +8,7 @@
|
||||
</button>
|
||||
{{ else if .Parent.Parent.IsHome }}
|
||||
<button id="delete"
|
||||
class="br-pill f6 link dim br3 ph3 pv2 mb2 dib white bg-dark-gray pointer author-only"
|
||||
class="br-pill f6 link dim br3 ph3 pv2 mb2 dib white bg-dark-gray pointer"
|
||||
data-confirm="{{ T (print .Section ".delete") }}?">
|
||||
{{ T (print .Section ".delete") }}
|
||||
</button>
|
||||
|
Loading…
Reference in New Issue
Block a user