]> git.plutz.net Git - webpoll/commitdiff
UI improvements
authorPaul Hänsch <paul@plutz.net>
Wed, 28 Jul 2021 20:31:48 +0000 (22:31 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 28 Jul 2021 20:31:48 +0000 (22:31 +0200)
newdate.sh
poll.sh
webpoll.css

index e2902e471256cd1dd42e0fd385de94efc7d6c6e6..9c5a1e71cb9dd654c55cc2642eb46f5ae8963035 100755 (executable)
@@ -127,9 +127,13 @@ if [ "$REQUEST_METHOD" = POST ]; then
     | sort -u
   )"
 
-  if [ "$(POST cancel)" = cancel ]; then
-    rm -- "$file"
-    REDIRECT "$_BASE/"
+  if [ "$(POST delete)" = delete ]; then
+    if [ "$(POST delconfirm)" -o ! "$(DBM "$file" get participants)" ]; then
+      rm -- "$file"
+      REDIRECT "$_BASE/"
+    else
+      REDIRECT "$_BASE$PATH_INFO${month:+?month=}${month}#ERROR_NEEDCONFIRM"
+    fi
   elif [ "$(POST post)" = post ]; then
     REDIRECT "$_BASE${PATH_INFO%/*}"
   elif [ "$(POST bookmark)" -a ! "$bookmarks" ]; then
@@ -161,8 +165,12 @@ else
            [hidden "month" "$month"]
          ]
          $([ "$splittimes" = "yes" ] && fs_splittimes || fs_timeofday )
-         [submit "cancel" "cancel" Cancel]
-         [submit "post" "post" Post Event]
+         $(if [ "$(DBM "$file" get participants)" ]; then
+           printf '[checkbox "delconfirm" "confirm" id="delconfirm"][label for=delconfirm Delete Poll]
+                    [submit "delete" "delete" Delete Poll] [submit "post" "post" Poll page]'
+         else
+           printf '[submit "delete" "delete" Cancel] [submit "post" "post" Post Event]'
+         fi)
          $(if [ "$bookmarks" ]; then
            printf '[section .bookmark This admin page is accessible via the link [a href="%s" %s]. You must copy this link and keep it safe, so you can modify this poll later! The poll has also been bookmarked and will be listed on the front page.' \
            "$(URL "//$(HEADER Host)/${_BASE}/${id}/${admin}")" \
diff --git a/poll.sh b/poll.sh
index 5624284347abf702012712528d37fb126fa39f12..de5b614c74321c93521a6ac0e1bb3c2e08f45d05 100644 (file)
--- a/poll.sh
+++ b/poll.sh
@@ -88,8 +88,12 @@ table_poll() {
   if [ "$splittimes" = yes -o "$todall" ]; then
     printf '[tr .tod [th]'
     for time in $timelist; do
-      [ "${time#*_}" = "${time}" ] && time="_${time}"
-      printf '[th . %s]' "${time#*_}"
+      case $time in
+       *-*-*_*:*) time="${time#*_}";;
+       *-*-*) time="";;
+       *:*);;  # time="${time}"
+      esac
+      printf '[th . %s]' "${time}"
     done
     printf '[th]]\n'
   fi
index 193b2ed30a57b4febad9d7424b23900be4ec617a..7b1579f7b49ed5f68358e142eb47824f10a254c6 100644 (file)
@@ -29,20 +29,26 @@ body section {
   background-color: rgba(255,255,255,.5);
   word-wrap: break-word;
 }
-body.poll .description .title {
+body.poll .description {
   margin-top: 0;
   text-align: left;
 }
 body.poll .description .title {
+  margin-top: 0;
   text-align: center;
 }
 body.poll table {
+  display: block;
+  max-width 100%;
+  overflow-x: auto;
+
   background-color: rgba(255,255,255,.5);
   border-collapse: collapse;
   margin: auto;
   box-shadow: #000 .25em .25em .5em;
   border-radius: 2pt;
 }
+
 body.poll table thead tr.dates th {
   padding: .25em;
 }
@@ -135,6 +141,7 @@ body.newdate form fieldset.splittimes {
   body.newdate form fieldset.date { padding-right: .75em; }
   body.newdate form fieldset.timeofday,
   body.newdate form fieldset.splittimes { padding-left: .75em; }
+  body.poll table { display: table;}
 }
 
 body.newdate form input[name=title],
@@ -220,3 +227,22 @@ body.newdate form fieldset input.splittimes:checked + *:before { content: '\2713
 body.newdate form .timeofday button[name=splittimes] { margin-top: 1.5em;}
 
 body.newdate form .splittimes p { margin-top: 2em; padding: .5em; background: rgba(255,255,255,.5); }
+
+body.newdate form #delconfirm {
+  margin-left: -6em;
+}
+body.newdate form #delconfirm + label:after {
+  content: '\0A';
+  white-space: pre;
+}
+body.newdate form #delconfirm + label + button {
+  pointer-events: none;
+  color: #AAA;
+  border-color: #AAA;
+}
+body.newdate form #delconfirm:checked + label + button {
+  pointer-events: auto;
+  color: inherit;
+  border-color: inherit;
+  background-color: #FDD;
+}