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 ']'
;;