changeset 502:46a8da2740d9

Add CheckBox WikiStyle notation "- [ ]"
author HIROSE Yuuji <yuuji@gentei.org>
date Sat, 12 Jan 2019 14:26:46 +0900
parents f877fc7e2835
children 5119c19d15b5
files examples/common/default/default.css s4-funcs.sh
diffstat 2 files changed, 39 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/examples/common/default/default.css	Fri Nov 16 07:50:16 2018 +0900
+++ b/examples/common/default/default.css	Sat Jan 12 14:26:46 2019 +0900
@@ -202,6 +202,33 @@
     display: inline;}
 div.foldtabs p {margin: 0;}
 
+/* ToDo List CheckBox inspired by https://cultureacademia.jp/webcreate/303/ */
+input.s4-checkbox {display: none;}	/* Do not show real checkbox */
+input.s4-checkbox + label {
+    position: relative; padding-left: 0.8em; margin-right: 1em;
+}
+input.s4-checkbox + label:before,
+input.s4-checkbox + label:after {
+    content: ""; display: block;	/* Mimic Checkbox by absolute box */
+    position: absolute; top: 0; left: 0; margin: 0;
+}
+input.s4-checkbox + label:before {		/* checkbox frame */
+    width: 0.8em; height: 0.8em; border: 1px solid #aaa; border-radius: 20%;
+}
+input.s4-checkbox:checked + label:before {	/* checked frame bg */
+    background: pink;
+}
+input.s4-checkbox:checked + label {		/* checked text */
+    /* text-shadow: red 1px 1px;	*/
+}
+input.s4-checkbox:checked + label:after {	/* checked mark */
+    width: 0.6em; height: 0.4em; top: 0.05em; left: 0.1em;
+    border-bottom: 3px solid navy;
+    border-left: 3px solid navy;
+    transform: rotate(-40deg);
+}
+/* ---------------------------------------------------- */
+
 div.dumptable {max-height: 15em; overflow: auto;}
 div.dumptable tr:hover {background-color: #fee;}
 table.dumpblogs td,
--- a/s4-funcs.sh	Fri Nov 16 07:50:16 2018 +0900
+++ b/s4-funcs.sh	Sat Jan 12 14:26:46 2019 +0900
@@ -476,6 +476,9 @@
   #   **Word**		- <strong>Word</strong>
   #   __Word__		- <strong>Word</strong>
   #   SPC+SPC+$		- <br>
+  cb='<input type="checkbox" class="s4-checkbox" disabled'
+  checkboxON="${cb} checked>"
+  checkboxOFF="${cb}>"
   _hrefptn="[-A-Za-z0-9,.:;/~_%#&+?=@!]*"
   _hrefptn="[A-Za-z0-9/~%+?=@!.][^][()<> ]*"	# URL should start with ASCII
   sed -e "s|\[\[\#\([0-9][0-9]*\)\]\]|<a href=\"?aid\1\">#\1</a>|g" \
@@ -497,7 +500,10 @@
       -e 's, __\([^_ |][^_]*[^ ]\)__ ,<strong>\1</strong>,g' \
       -e 's, \*\([^* |][^*|]*[^ |]\)\* ,<em>\1</em>,g' \
       -e 's, _\([^_ ][^_]*[^ ]\)_ ,<em>\1</em>,g' \
-      -e 's,  $,<br>,'
+      -e 's,  $,<br>,' \
+      -e "s,- \[  *\]\([^|-]*\),${checkboxOFF}<label>\\1</label>,g" \
+      -e "s,- \[[^ ]\]\([^|-]*\),${checkboxON}<label>\\1</label>,g" \
+      
 }
 minitbl() {
   sed -n '
@@ -1150,15 +1156,15 @@
   if [ -z "$dbuser" ]; then
     return 1
   elif [ x"$pswd" = x"wasureta" ]; then
-    wasureta $user
+    wasureta "$user"
     return 1		# wasureta error
   fi
  # dbpswd="`sq $db \"select pswd from passwd where name='$user'\"`"
   # putheader; echo; echo user=$user, db=$dbpswd, enc=$encpswd
   if pwcheck "$pswd"; then
     newsession=`genrandom 50`
-    dbsetbyid user $user skey "$newsession"
-    dbsetbyid user $user login "`date '+%F %T'`"
+    dbsetbyid user "$user" skey "$newsession"
+    dbsetbyid user "$user" login "`date '+%F %T'`"
     gencookie "user=$user" "skey=$newsession"
     return 0
   fi
@@ -1367,8 +1373,8 @@
 }
 invite() {
   email=`getpar email`
-  case $email in
-    *@*@*)  repo="無効なアドレスです" ;;
+  case "$email" in
+    *@*@*|*\ *)  repo="無効なアドレスです" ;;
     *@*)
       local=${email%@*} domain=${email#*@}
       if ! repo=`emaildomaincheck $email`; then

yatex.org