@@ -56,9 +56,9 @@
style_footer();
}
/* @-comment: ** */
-static char zDefaultTab[] =
+static const char zDefaultTicketTable[] =
@ CREATE TABLE ticket(
@ -- Do not change any column that begins with tkt_
@ tkt_id INTEGER PRIMARY KEY,
@ tkt_uuid TEXT,
@@ -79,15 +79,24 @@
@ );
;
/*
+** Return the ticket table definition
+*/
+const char *ticket_table_schema(void){
+ return db_get("ticket-table", (char*)zDefaultTicketTable);
+}
+
+/*
** Common implementation for the ticket setup editor pages.
*/
static void tktsetup_generic(
const char *zTitle, /* Page title */
const char *zDbField, /* Configuration field being edited */
- char *zDfltValue, /* Default text value */
+ const char *zDfltValue, /* Default text value */
const char *zDesc, /* Description of this field */
+ char *(*xText)(const char*), /* Validitity test or NULL */
+ void (*xRebuild)(void), /* Run after successulf update */
int height /* Height of the edit box */
){
const char *z;
int isSubmit;
@@ -99,23 +108,29 @@
if( P("setup") ){
cgi_redirect("tktsetup");
}
isSubmit = P("submit")!=0;
- db_begin_transaction();
z = P("x");
if( z==0 ){
- z = db_get(zDbField, zDfltValue);
+ z = db_get(zDbField, (char*)zDfltValue);
}
style_header("Edit %s", zTitle);
if( P("clear")!=0 ){
db_unset(zDbField, 0);
+ if( xRebuild ) xRebuild();
z = zDfltValue;
}else if( isSubmit ){
- db_set(zDbField, z, 0);
+ char *zErr = 0;
+ if( xText && (zErr = xText(z))!=0 ){
+ @ <p><font color="red"><b>ERROR: %h(zErr)</b></font></p>
+ }else{
+ db_set(zDbField, z, 0);
+ if( xRebuild ) xRebuild();
+ }
}
@ <form action="%s(g.zBaseURL)/%s(g.zPath)" method="POST">
@ %s(zDesc)
- @ <textarea name="tab" rows="%d(height)" cols="80">%h(z)</textarea>
+ @ <textarea name="x" rows="%d(height)" cols="80">%h(z)</textarea>
@ <br />
@ <input type="submit" name="submit" value="Apply Changes">
@ <input type="submit" name="clear" value="Revert To Default">
@ <input type="submit" name="setup" value="Ticket Setup Menu">
@@ -124,9 +139,8 @@
@ <h2>Default %s(zTitle)</h2>
@ <blockquote><pre>
@ %h(zDfltValue)
@ </pre></blockquote>
- db_end_transaction(0);
style_footer();
}
/*
@@ -140,15 +154,17 @@
;
tktsetup_generic(
"Ticket Table Schema",
"ticket-table",
- zDefaultTab,
+ zDefaultTicketTable,
zDesc,
+ ticket_schema_check,
+ ticket_rebuild,
20
);
}
-static char zDefaultCom[] =
+static const char zDefaultTicketCommon[] =
@ set type_choices {
@ Code_Defect
@ Build_Problem
@ Documentation
@@ -193,8 +209,15 @@
@ set subsystem_choices {one two three}
;
/*
+** Return the ticket common code.
+*/
+const char *ticket_common_code(void){
+ return db_get("ticket-common", (char*)zDefaultTicketCommon);
+}
+
+/*
** WEBPAGE: tktsetup_com
*/
void tktsetup_com_page(void){
static const char zDesc[] =
@@ -203,15 +226,17 @@
;
tktsetup_generic(
"Ticket Common Script",
"ticket-common",
- zDefaultCom,
+ zDefaultTicketCommon,
zDesc,
+ 0,
+ 0,
30
);
}
-static char zDefaultNew[] =
+static const char zDefaultNew[] =
@ <th1>
@ if {[info exists submit]} {
@ set status Open
@ submit_ticket
@@ -286,8 +311,15 @@
@ </table>
;
/*
+** Return the code used to generate the new ticket page
+*/
+const char *ticket_newpage_code(void){
+ return db_get("ticket-newpage", (char*)zDefaultNew);
+}
+
+/*
** WEBPAGE: tktsetup_newpage
*/
void tktsetup_newpage_page(void){
static const char zDesc[] =
@@ -298,13 +330,15 @@
"HTML For New Tickets",
"ticket-newpage",
zDefaultNew,
zDesc,
+ 0,
+ 0,
40
);
}
-static char zDefaultView[] =
+static const char zDefaultView[] =
@ <table cellpadding="5">
@ <tr><td align="right">Title:</td><td>
@ $<title>
@ </td></tr>
@@ -342,8 +376,15 @@
;
/*
+** Return the code used to generate the view ticket page
+*/
+const char *ticket_viewpage_code(void){
+ return db_get("ticket-viewpage", (char*)zDefaultView);
+}
+
+/*
** WEBPAGE: tktsetup_viewpage
*/
void tktsetup_viewpage_page(void){
static const char zDesc[] =
@@ -354,13 +395,15 @@
"HTML For Viewing Tickets",
"ticket-viewpage",
zDefaultView,
zDesc,
+ 0,
+ 0,
40
);
}
-static char zDefaultEdit[] =
+static const char zDefaultEdit[] =
@ <th1>
@ if {![info exists username]} {set username $login}
@ if {[info exists submit]} {
@ if {[info exists cmappnd]} {
@@ -436,8 +479,15 @@
@ </table>
;
/*
+** Return the code used to generate the edit ticket page
+*/
+const char *ticket_editpage_code(void){
+ return db_get("ticket-editpage", (char*)zDefaultEdit);
+}
+
+/*
** WEBPAGE: tktsetup_editpage
*/
void tktsetup_editpage_page(void){
static const char zDesc[] =
@@ -448,7 +498,9 @@
"HTML For Editing Tickets",
"ticket-editpage",
zDefaultEdit,
zDesc,
+ 0,
+ 0,
40
);
}