ticket_create { -msg_html plain -new_msg_id {} -public_p t -notify_p t -severity_id null -priority_id null -cause_id null -status_id null -source_id null -type_id null -assignee {} -deadline null -from_url null -from_query null -from_project null -from_host null -from_ip null -from_user_agent null -version null -code_set ad } db user_id project_id domain_id one_line messageWhat it does:
generate a new ticket and take all standard actionsDefined in: /web/philip/tcl/ticket-defs.tcl
Source code:
arg_parser_for_ticket_create $args ############################################################ ##Setup the defaults ############################################################ ##Generate good values for each code if it doesn't exist if {[string compare $status_id null] == 0} { set status_id [database_to_tcl_string $db "select code_id as status_id from ticket_codes_i where code = 'open' and code_type = 'status'"] } set codes {severity priority type cause} foreach code $codes { set code_id "${code}_id" if {[string compare [set $code_id] null] == 0} { set where_clause "code_type = '$code' and code_set = '$code_set'" set ret [database_to_tcl_string_or_null $db " select code_id from ticket_codes where $where_clause and code_seq = (select min(code_seq) from ticket_codes where $where_clause) and rownum = 1"] if {![empty_string_p $ret]} { set $code_id $ret } } } ## assignee if {[empty_string_p $assignee]} { set assignee [database_to_tcl_string_or_null $db "select tm.default_assignee from ticket_domain_project_map tm where tm.project_id = $project_id and tm.domain_id = $domain_id"] ##What do we do if we don't get anything here???? } if {[empty_string_p $new_msg_id]} { set new_msg_id [database_to_tcl_string $db "select ticket_issue_id_sequence.nextval from dual"] } set selection [ns_db 1row $db "select to_char(sysdate,'Month, DD YYYY ') || sysdate as when_saved, email, first_names || ' ' || last_name as username from users where user_id = $user_id"] set_variables_after_query ########################################################## ## Do DB inserts into general comments/ticket_issues_i ########################################################## set indexed_stuff "TR\#$new_msg_id\n$email\n$username\n$when_saved\n$message" util_dbq -null_is_null_p t {version one_line public_p notify_p from_url from_query from_host from_project deadline from_ip from_user_agent} with_transaction $db { set comment_id [database_to_tcl_string $db " select general_comment_id_sequence.nextval from dual"] if { $msg_html == "pre" } { regsub "\[ \012\015\]+\$" $message {} message set message "<pre>[ns_quotehtml $message]</pre>" set html_p t } elseif { $msg_html == "html" } { set html_p t } else { set html_p f } ad_general_comment_add $db $comment_id {ticket_issues_i} $new_msg_id "\#$new_msg_id $one_line" $message $user_id [peeraddr] {t} $html_p $one_line # create the ticket ns_db dml $db "insert into ticket_issues_i (msg_id, project_id, version, domain_id, user_id, one_line, comment_id, ticket_type_id, priority_id, severity_id, source_id, cause_id, status_id, posting_time, deadline, public_p, notify_p, from_host, from_url, from_query, from_project, from_ip, from_user_agent, last_modified, last_modifying_user, modified_ip_address ) values ( $new_msg_id,$project_id,$DBQversion,$domain_id, $user_id,$DBQone_line, $comment_id, $type_id, $priority_id, $severity_id, $source_id, $cause_id, $status_id, sysdate, $DBQdeadline, $DBQpublic_p, $DBQnotify_p, $DBQfrom_host, $DBQfrom_url, $DBQfrom_query, $DBQfrom_project, $DBQfrom_ip, $DBQfrom_user_agent, sysdate, $user_id, '[DoubleApos [peeraddr]]')" if { ![empty_string_p $assignee]} { ns_db dml $db "insert into ticket_issue_assignments (msg_id, user_id, active_p) values ($new_msg_id, $assignee, 't')" } ns_ora clob_dml $db "insert into ticket_index (msg_id, indexed_stuff, last_modified ) values ($new_msg_id, empty_clob(), sysdate) returning indexed_stuff into :1" $indexed_stuff } { # something went a bit wrong during the insert error "<li>Here was the bad news from the database: <pre>$errmsg</pre>" } ############################## ##Now send out some email ############################## set returned_text "" if { $notify_p == "t"} { set selection [ns_db 0or1row $db "select td.title_long as domain_title, tp.title_long as project_title, priority_long, status_long, one_line as one_line from ticket_issues ti, ticket_domains td, ticket_projects tp where msg_id = $new_msg_id and td.domain_id = ti.domain_id and tp.project_id = ti.project_id"] set_variables_after_query set status_msg "STATUS: $status_long" set body "\n\nACTION BY: $username ($email)\nPRIORITY: $priority_long $status_msg\n\n----------------------------------------\nTicket #$new_msg_id $one_line\n\n" if {$msg_html == "plain" } { append body [wrap_string $message 80] } else { append body [util_striphtml $message] } append body "\n\nProject $project_title - $domain_title\n" append returned_text [ticket_notify $db new_ticket $new_msg_id $one_line $body] } return $returned_text