X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=courses%2Fwidgets.sh;h=9e4fdd0d3119884657b9c032b22e2a2009d08320;hp=41fc6866b70e6ea7d739d624a310c372795c2112;hb=009e9158a9241258da11b1b5c582f8176b0b7e0f;hpb=203fc5d63ba59a30688bac00c98d199cb08a8f30 diff --git a/courses/widgets.sh b/courses/widgets.sh index 41fc686..9e4fdd0 100755 --- a/courses/widgets.sh +++ b/courses/widgets.sh @@ -113,43 +113,49 @@ edit_item(){ for item in $@; do cnt="$(pdi_count "$course" "$item")" - [ $cnt -lt 1 ] && cnt=1 + [ "$cnt" -lt 1 ] && cnt=1 case $item in DTSTART) - dtstart="$(pdi_value "$course" DTSTART |cal_date)" - ystart="${dtstart%%-*}"; ystart="${ystart##* }" - mstart="${dtstart#*-}"; mstart="${mstart%%-*}" - dstart="${dtstart##*-}"; dstart="${dstart%% *}" - hhstart="${dtstart##* }"; hhstart="${hhstart%%:*}" - mmstart="${dtstart##*:}"; + local dtstart="$(pdi_value "$course" DTSTART |cal_date)" + local ystart="${dtstart%%-*}"; ystart="${ystart##* }" + local mstart="${dtstart#*-}"; mstart="${mstart%%-*}" + local dstart="${dtstart##*-}"; dstart="${dstart%% *}" + local hhstart="${dtstart##* }"; hhstart="${hhstart%%:*}" + local mmstart="${dtstart##*:}"; + local m mn cdow d printf '[div .section .DTSTART][h3 %s]' "$(l10n DTSTART)" - printf '[select .DTSYEAR name="DTSYEAR" onchange="this.form.submit();"' + printf '[select .DTSYEAR name="DTSYEAR" onchange="this.form.submit();"\n' seq $((ystart - 50)) $((ystart + 50)) |while read y; do - printf '[option value="%i" %s %i]' $y "$([ $y -eq $ystart ] && printf selected)" $y + printf '[option value="%i" %s %i]\n' $y "$([ $y -eq $ystart ] && printf selected)" $y done printf ']' - printf '[select .DTSMONTH name="DTSMONTH" onchange="this.form.submit();"' - seq 1 12 |while read m; do - printf '[option value="%i" %s %s]' $m "$([ $m -eq $mstart ] && printf selected)" "$(date -d "2000-${m}-01" +%B)" + printf '[select .DTSMONTH name="DTSMONTH" onchange="this.form.submit();"\n' + m=1; for mn in $(l10n January February March April May June July August September October November December); do + printf '[option value="%i" %s . %s]\n' $m "$(selected $m $mstart)" "$mn" + m=$((m+1)) done - printf '][submit "DTS" "update" .DTS %s]' "$(l10n edit_dtscal)" - printf 'mon tue wed thu fri sat sun' |xargs -n1 date -d '{}' +"[span .DTSCALHEAD %a]" - seq 2 "$(date -d ${ystart}-${mstart}-1 +%u)" |xargs -n1 printf '[span .DTSCAL]' - cnt=$(date -d ${dts_year}-${dts_month}-1 +%s) - dn=1; while [ "$(date ${ystart}-${mstart}-${dn} +%m)" -eq "$mstart" ]; do - printf '[input .DTSCAL type="radio" name="DTSDAY" #DTSCAL_%i value="%i" %s][label .DTSCAL for="DTSCAL_%i" %i]' \ - $dn $n "$([ $dn -eq "$dstart" ] && printf checked)" $dn $dn - dn=$((dn + 1)) + printf '][submit "DTS" "update" .DTS %s]\n' "$(l10n edit_dtscal)" + printf '[table .dtscalt [tr' + printf '[th . %s]' $(l10n Mon Tue Wed Thu Fri Sat Sun) + printf ']\n[tr ' + cdow="$(date -d ${ystart}-${mstart}-1 +%u)" + seq 2 $cdow |xargs -n1 printf '[td .padding .%s]' + d=1; while [ "$d" -lt 29 ] || [ "$(date -d ${ystart}-${mstart}-${d} +%m)" -eq "$mstart" ]; do + [ $cdow -eq 1 -a $d -ne 1 ] && printf ']\n[tr ' + printf '[td [input .DTSCAL type="radio" name="DTSDAY" #DTSCAL_%i value="%i" %s][label .DTSCAL for="DTSCAL_%i" %i]]' \ + $d $d "$(checked $d $dstart)" $d $d + d=$((d + 1)); cdow=$(((cdow + 1) % 7)) done 2>/dev/null + printf ']]\n' printf '[span .DTSTIME %s:][select .DTSTIME name="DTSHOUR"' "$(l10n time)" - seq 0 23 |while read h; do - printf '[option value="%i" %s %i]' $h "$([ $h -eq $hhstart ] && printf checked)" $h + seq 00 23 |while read h; do + printf '[option value="%i" %s %02i]' $h "$(selected "$h" "$hhstart")" $h done printf ']:[select .DTSTIME name="DTSMINUTE"' - seq 0 5 55 |while read m; do - printf '[option value="%i" %s %i]' $m "$([ $m -eq $mmstart ] && printf checked)" $m + seq 00 5 55 |while read m; do + printf '[option value="%i" %s %02i]' $m "$(selected "$m" "$mmstart")" $m done printf ']' ;;