Index: src/configure.c ================================================================== --- src/configure.c +++ src/configure.c @@ -93,10 +93,11 @@ #endif { "timeline-block-markup", CONFIGSET_SKIN }, { "timeline-max-comment", CONFIGSET_SKIN }, { "ticket-table", CONFIGSET_TKT }, { "ticket-common", CONFIGSET_TKT }, + { "ticket-change", CONFIGSET_TKT }, { "ticket-newpage", CONFIGSET_TKT }, { "ticket-viewpage", CONFIGSET_TKT }, { "ticket-editpage", CONFIGSET_TKT }, { "ticket-reportlist", CONFIGSET_TKT }, { "ticket-report-template", CONFIGSET_TKT }, Index: src/tkt.c ================================================================== --- src/tkt.c +++ src/tkt.c @@ -242,10 +242,20 @@ const char *zConfig; Th_FossilInit(); zConfig = ticket_common_code(); Th_Eval(g.interp, 0, zConfig, -1); } + +/* +** Create the subscript interpreter and load the "change" code. +*/ +int ticket_change(void){ + const char *zConfig; + Th_FossilInit(); + zConfig = ticket_change_code(); + return Th_Eval(g.interp, 0, zConfig, -1); +} /* ** Recreate the ticket table. */ void ticket_create_table(int separateConnection){ @@ -487,11 +497,11 @@ manifest_crosslink_begin(); manifest_crosslink(rid, &tktchng); assert( blob_is_reset(&tktchng) ); manifest_crosslink_end(); } - return TH_RETURN; + return ticket_change(); } /* ** WEBPAGE: tktnew Index: src/tktsetup.c ================================================================== --- src/tktsetup.c +++ src/tktsetup.c @@ -38,10 +38,12 @@ "Specify the schema of the \"ticket\" table in the database."); setup_menu_entry("Timeline", "tktsetup_timeline", "How to display ticket status in the timeline"); setup_menu_entry("Common", "tktsetup_com", "Common TH1 code run before all ticket processing."); + setup_menu_entry("Change", "tktsetup_change", + "The TH1 code run after a ticket is edited or created."); setup_menu_entry("New Ticket Page", "tktsetup_newpage", "HTML with embedded TH1 code for the \"new ticket\" webpage."); setup_menu_entry("View Ticket Page", "tktsetup_viewpage", "HTML with embedded TH1 code for the \"view ticket\" webpage."); setup_menu_entry("Edit Ticket Page", "tktsetup_editpage", @@ -238,10 +240,40 @@ "Ticket Common Script", "ticket-common", zDefaultTicketCommon, zDesc, 0, + 0, + 30 + ); +} + +static const char zDefaultTicketChange[] = +@ return +; + +/* +** Return the ticket change code. +*/ +const char *ticket_change_code(void){ + return db_get("ticket-change", (char*)zDefaultTicketChange); +} + +/* +** WEBPAGE: tktsetup_change +*/ +void tktsetup_change_page(void){ + static const char zDesc[] = + @ Enter TH1 script that runs after processing the ticket editing + @ and creation pages. + ; + tktsetup_generic( + "Ticket Change Script", + "ticket-change", + zDefaultTicketChange, + zDesc, + 0, 0, 30 ); }