# HG changeset patch # User Matti Hamalainen # Date 1613032371 -7200 # Node ID 5eca657134a5b094d1637aa53c21b5631f20d89a # Parent e7c88d4e917c896bc9a8e1d776d015b219754e2d tj: Implement command to set/reset default ID for TJs. diff -r e7c88d4e917c -r 5eca657134a5 config.tj.example --- a/config.tj.example Thu Feb 11 10:02:55 2021 +0200 +++ b/config.tj.example Thu Feb 11 10:32:51 2021 +0200 @@ -24,6 +24,7 @@ "remind" {^(remind|muist)} "list" {^(list|listaa?)$} "delete" {^(del|delete|poista)$} + "default" {^(def|default|vakio)$} "show" {^(show|näytä|nayta)$} } @@ -71,14 +72,18 @@ "help" "@cmd@ \[#\] \[nimi\]" "help_set" "@cmd@ set \[#\] <\[-\]päivät \[+/-\] | dd.mm.yyyy \[hh:mm\]> []" "help_list" "@cmd@ list \[nimi\] -- listaa TJ:t (muiden listaus vain admineille)" - "help_delete" "@cmd@ delete #" + "help_delete" "@cmd@ del # -- poistaa TJ:n annetulla ID:llä" + "help_default" "@cmd@ def # -- asettaa käyttäjän vakio TJ-ID:n" "help_remind_add" "@cmd@ muistuta " "help_remind_delete" "@cmd@ poista " + "err_no_such_id" "@nick@:llä ei ole tuollaista TJ-ID:tä '@1@'." "err_invalid_user" "pyh, mene pois." "err_unknown_user" "en tunne käyttäjää @1@" + "default_set" "@nick@:n vakio-id asetettu: '@1@'." + "list_item" "#@1@/@2@: @3@ : \002@4@\002 / @5@" "tj_set" "@3@:n @2@-TJ asetettu @5@ (@6@): @4@" diff -r e7c88d4e917c -r 5eca657134a5 tj.tcl --- a/tj.tcl Thu Feb 11 10:02:55 2021 +0200 +++ b/tj.tcl Thu Feb 11 10:32:51 2021 +0200 @@ -88,8 +88,8 @@ } +# ------------------------------------------------------------------------ proc tj_get_id {rstr rindex rid} { - global tj_default_id upvar $rindex uindex upvar $rid uid @@ -98,12 +98,23 @@ incr uindex return 1 } else { - set uid $tj_default_id return 0 } } +proc tj_get_default_id {uhand} { + global tj_default_id + + set uid [getuser $uhand XTRA "tj_default_id"] + if {$uid == "" || $uid == "{}" || $uid == "*"} { + return $tj_default_id + } else { + return $uid + } +} + + proc tj_ctime {ustamp} { return [clock format $ustamp -format [tj_qm "datefmt"]] } @@ -167,6 +178,7 @@ } +# ------------------------------------------------------------------------ proc tj_display_tjs {upublic unick uchan uname uid uclock} { set nresults 0 @@ -230,6 +242,7 @@ set rdesc "" } else { set rdesc $tj_default_desc + set uid [tj_get_default_id $uhand] } if {![utl_arg_get $rarglist rindex rarg 1]} { @@ -392,7 +405,6 @@ set uname $uhand } - set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uname]'" if {[catch {set nitems [tj_dbh onecolumn $usql]} uerrmsg]} { tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] @@ -434,11 +446,40 @@ } tj_msg $upublic $unick $uchan "items_deleted" [list $uid $nitems] + + } elseif {[tj_cmd_match "default" $rcmd]} { + # !tj default # + # Check for #id prefix + if {![utl_arg_get $rarglist rindex rarg 0] || ![tj_get_id $rarg rindex uid]} { + tj_msg $upublic $unick $uchan "help_default" + return 1 + } + + if {$uid == "" || $uid == "{}" || $uid == "*"} { + set uid $tj_default_id + } else { + set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]' AND uid='[utl_escape $uid]'" + if {[catch {set nids [tj_dbh onecolumn $usql]} uerrmsg]} { + tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] + tj_log "$uerrmsg on SQL:\n$usql" + return 1 + } + + if {$nids < 1} { + tj_msg $upublic $unick $uchan "err_no_such_id" [list $uid] + return 1 + } + } + + setuser $uhand XTRA "tj_default_id" $uid + + tj_msg $upublic $unick $uchan "default_set" [list $uid] + } elseif {[tj_cmd_match "show" $rcmd]} { # !tj show [#] # Check for #id prefix if {[utl_arg_get $rarglist rindex rarg 0]} { - tj_get_id $rarg rindex uid + set notdefault [tj_get_id $rarg rindex uid] } if {![utl_arg_get $rarglist rindex rarg 0]} { @@ -452,14 +493,19 @@ return 1 } + if {!$notdefault} { + set uid [tj_get_default_id $uname] + } + tj_display_tjs $upublic $unick $uchan $uname $uid $uclock } else { # !tj [#] [name] + set notdefault 0 set uname $uhand set rindex 0 if {[utl_arg_get $rarglist rindex rarg 0]} { # Check for #id prefix - tj_get_id $rarg rindex uid + set notdefault [tj_get_id $rarg rindex uid] if {[utl_arg_get $rarglist rindex rarg 0]} { set uname [tj_correct_handle $rarg] @@ -468,8 +514,10 @@ return 1 } } - } else { - set uid $tj_default_id + } + + if {!$notdefault} { + set uid [tj_get_default_id $uname] } tj_display_tjs $upublic $unick $uchan $uname $uid $uclock