From 7af38aed3e2f4d019b371da3ec58a41457173248 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Mon, 23 May 2022 11:34:57 +0200 Subject: [PATCH] handler addresses allowing easyier relative link navigation --- handlers/20_attachment.sh | 15 +++++++++------ handlers/20_revision.sh | 9 ++++++--- themes/default.css | 15 +++++++++++---- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/handlers/20_attachment.sh b/handlers/20_attachment.sh index 983cc7e..efc66f1 100755 --- a/handlers/20_attachment.sh +++ b/handlers/20_attachment.sh @@ -66,10 +66,13 @@ attachment_convert(){ case ${PATH_INFO} in */\[attachment\]/) + REDIRECT "${_BASE}${PATH_INFO%/}" + ;; + */\[attachment\]) tsid="$(POST session_key)"; tsid="${tsid%% *}" attachment_delete="$(POST delete)" - if [ "${CONTENT_TYPE%%;*}" = "multipart/form-data" ] && acl_write "${PATH_INFO%\[attachment\]/}"; then + if [ "${CONTENT_TYPE%%;*}" = "multipart/form-data" ] && acl_write "${PATH_INFO%\[attachment\]}"; then . "$_EXEC/multipart.sh" multipart_cache @@ -84,10 +87,10 @@ case ${PATH_INFO} in return 0 fi - mkdir -p "$_DATA/pages/${PATH_INFO%/\[attachment\]/}/#attachments/" + mkdir -p "$_DATA/pages/${PATH_INFO%/\[attachment\]}/#attachments/" n=1; while filename=$(multipart_filename "file" "$n"); do filename="$(printf %s "$filename" |tr /\\0 __)" - multipart "file" "$n" >"$_DATA/pages/${PATH_INFO%/\[attachment\]/}/#attachments/$filename" + multipart "file" "$n" >"$_DATA/pages/${PATH_INFO%/\[attachment\]}/#attachments/$filename" n=$((n + 1)) done rm -- "$multipart_cachefile" @@ -98,14 +101,14 @@ case ${PATH_INFO} in head -c $((CONTENT_LENGTH)) >/dev/null return 0 elif [ "$attachment_delete" -a "$SESSION_ID" = "$tsid" ]; then - rm -- "$_DATA/pages/${PATH_INFO%/\[attachment\]/}/#attachments/$attachment_delete" + rm -- "$_DATA/pages/${PATH_INFO%/\[attachment\]}/#attachments/$attachment_delete" REDIRECT "${_BASE}${PATH_INFO}" elif [ "$attachment_delete" ]; then printf 'Refresh: %i\r\n' 4 theme_error 403 return 0 - elif acl_read "${PATH_INFO%\[attachment\]/}"; then - theme_attachments "${PATH_INFO%\[attachment\]/}" + elif acl_read "${PATH_INFO%\[attachment\]}"; then + theme_attachments "${PATH_INFO%\[attachment\]}" return 0 else theme_error 404 diff --git a/handlers/20_revision.sh b/handlers/20_revision.sh index a9c5d39..b34b2b9 100644 --- a/handlers/20_revision.sh +++ b/handlers/20_revision.sh @@ -1,11 +1,14 @@ #!/bin/sh case "${PATH_INFO}" in - */\[revision\]|*/\[revision\]/) - if ! acl_read "${PATH_INFO%\[revision\]?}"; then + */\[revision\]/) + REDIRECT "${_BASE}/${PATH_INFO%/}" + ;; + */\[revision\]) + if ! acl_read "${PATH_INFO%\[revision\]}"; then theme_error 403 else - theme_revisions "${PATH_INFO%\[revision\]?}" + theme_revisions "${PATH_INFO%\[revision\]}" fi return 0 ;; diff --git a/themes/default.css b/themes/default.css index 9b8cc75..c22da7c 100644 --- a/themes/default.css +++ b/themes/default.css @@ -52,18 +52,20 @@ main .pagemenu li { main .pagemenu li a { color: #FFF; } main article, -[id$="/[attachment]/"] main form.upload { +[id$="/[attachment]"] main form.upload { margin: 1em; padding: .125em 1em 1em 1em; box-shadow: .25em .25em .75em; background-color: #FFF; } -[id$="/[attachment]/"] main .attachment.list { +[id$="/[revision]"] main .revisions, +[id$="/[attachment]"] main .attachment.list { margin: 1em; padding: 1em 2em; } -[id$="/[attachment]/"] main .attachment.list:before { +[id$="/[revision]"] main .revisions:before, +[id$="/[attachment]"] main .attachment.list:before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; @@ -74,7 +76,7 @@ main article, /* === Editor === */ -body.editor textarea { +body[id$="/[edit]"] textarea { width: 100%; min-height: 20em; min-height: 70vh; font-family: monospace; @@ -102,6 +104,11 @@ body.editor textarea { margin-right: 1em; } +.revisions li { margin: 1em 0; } +.revisions li span.hash, +.revisions li span.date { + margin-right: 1em; +} /* === Macros === */ -- 2.39.2