Hex Artifact Content
Not logged in

Artifact cc6def603d5e3cc450840ce429bd87acb42497d6:

File src/tktsetup.c part of check-in [ac3f1f2ba7] - Improvements to how ticket changes are displayed in the UI. The hyperlink is show with strick-through if the ticket is closed. The title is shown after the ticket hyperlink. SQL to determine the closed condition and the title can be set in the ticket setup screens. by drh on 2008-10-18 02:27:13.

0000: 2f 2a 0a 2a 2a 20 43 6f 70 79 72 69 67 68 74 20  /*.** Copyright 
0010: 28 63 29 20 32 30 30 37 20 44 2e 20 52 69 63 68  (c) 2007 D. Rich
0020: 61 72 64 20 48 69 70 70 0a 2a 2a 0a 2a 2a 20 54  ard Hipp.**.** T
0030: 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66  his program is f
0040: 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f  ree software; yo
0050: 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75  u can redistribu
0060: 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 2a 2a 20  te it and/or.** 
0070: 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 20  modify it under 
0080: 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65  the terms of the
0090: 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62   GNU General Pub
00a0: 6c 69 63 0a 2a 2a 20 4c 69 63 65 6e 73 65 20 76  lic.** License v
00b0: 65 72 73 69 6f 6e 20 32 20 61 73 20 70 75 62 6c  ersion 2 as publ
00c0: 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65  ished by the Fre
00d0: 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  e Software Found
00e0: 61 74 69 6f 6e 2e 0a 2a 2a 0a 2a 2a 20 54 68 69  ation..**.** Thi
00f0: 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73  s program is dis
0100: 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20  tributed in the 
0110: 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c  hope that it wil
0120: 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 2a 2a 20  l be useful,.** 
0130: 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20  but WITHOUT ANY 
0140: 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75  WARRANTY; withou
0150: 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69  t even the impli
0160: 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 2a  ed warranty of.*
0170: 2a 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54  * MERCHANTABILIT
0180: 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52  Y or FITNESS FOR
0190: 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55   A PARTICULAR PU
01a0: 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20  RPOSE.  See the 
01b0: 47 4e 55 0a 2a 2a 20 47 65 6e 65 72 61 6c 20 50  GNU.** General P
01c0: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f  ublic License fo
01d0: 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a  r more details..
01e0: 2a 2a 20 0a 2a 2a 20 59 6f 75 20 73 68 6f 75 6c  ** .** You shoul
01f0: 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20  d have received 
0200: 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e  a copy of the GN
0210: 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  U General Public
0220: 0a 2a 2a 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e  .** License alon
0230: 67 20 77 69 74 68 20 74 68 69 73 20 6c 69 62 72  g with this libr
0240: 61 72 79 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69  ary; if not, wri
0250: 74 65 20 74 6f 20 74 68 65 0a 2a 2a 20 46 72 65  te to the.** Fre
0260: 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  e Software Found
0270: 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 39 20  ation, Inc., 59 
0280: 54 65 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53  Temple Place - S
0290: 75 69 74 65 20 33 33 30 2c 0a 2a 2a 20 42 6f 73  uite 330,.** Bos
02a0: 74 6f 6e 2c 20 4d 41 20 20 30 32 31 31 31 2d 31  ton, MA  02111-1
02b0: 33 30 37 2c 20 55 53 41 2e 0a 2a 2a 0a 2a 2a 20  307, USA..**.** 
02c0: 41 75 74 68 6f 72 20 63 6f 6e 74 61 63 74 20 69  Author contact i
02d0: 6e 66 6f 72 6d 61 74 69 6f 6e 3a 0a 2a 2a 20 20  nformation:.**  
02e0: 20 64 72 68 40 68 77 61 63 69 2e 63 6f 6d 0a 2a   drh@hwaci.com.*
02f0: 2a 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e 68  *   http://www.h
0300: 77 61 63 69 2e 63 6f 6d 2f 64 72 68 2f 0a 2a 2a  waci.com/drh/.**
0310: 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .***************
0320: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0330: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0340: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0350: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0360: 0a 2a 2a 0a 2a 2a 20 54 68 69 73 20 66 69 6c 65  .**.** This file
0370: 20 63 6f 6e 74 61 69 6e 73 20 63 6f 64 65 20 74   contains code t
0380: 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20  o implement the 
0390: 74 69 63 6b 65 74 20 63 6f 6e 66 69 67 75 72 61  ticket configura
03a0: 74 69 6f 6e 0a 2a 2a 20 73 65 74 75 70 20 73 63  tion.** setup sc
03b0: 72 65 65 6e 73 2e 0a 2a 2f 0a 23 69 6e 63 6c 75  reens..*/.#inclu
03c0: 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 0a 23 69  de "config.h".#i
03d0: 6e 63 6c 75 64 65 20 22 74 6b 74 73 65 74 75 70  nclude "tktsetup
03e0: 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 3c 61 73  .h".#include <as
03f0: 73 65 72 74 2e 68 3e 0a 0a 2f 2a 0a 2a 2a 20 4d  sert.h>../*.** M
0400: 61 69 6e 20 73 75 62 2d 6d 65 6e 75 20 66 6f 72  ain sub-menu for
0410: 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 74 68 65   configuring the
0420: 20 74 69 63 6b 65 74 69 6e 67 20 73 79 73 74 65   ticketing syste
0430: 6d 2e 0a 2a 2a 20 57 45 42 50 41 47 45 3a 20 74  m..** WEBPAGE: t
0440: 6b 74 73 65 74 75 70 0a 2a 2f 0a 76 6f 69 64 20  ktsetup.*/.void 
0450: 74 6b 74 73 65 74 75 70 5f 70 61 67 65 28 76 6f  tktsetup_page(vo
0460: 69 64 29 7b 0a 20 20 6c 6f 67 69 6e 5f 63 68 65  id){.  login_che
0470: 63 6b 5f 63 72 65 64 65 6e 74 69 61 6c 73 28 29  ck_credentials()
0480: 3b 0a 20 20 69 66 28 20 21 67 2e 6f 6b 53 65 74  ;.  if( !g.okSet
0490: 75 70 20 29 7b 0a 20 20 20 20 6c 6f 67 69 6e 5f  up ){.    login_
04a0: 6e 65 65 64 65 64 28 29 3b 0a 20 20 7d 0a 0a 20  needed();.  }.. 
04b0: 20 73 74 79 6c 65 5f 68 65 61 64 65 72 28 22 54   style_header("T
04c0: 69 63 6b 65 74 20 53 65 74 75 70 22 29 3b 0a 20  icket Setup");. 
04d0: 20 40 20 3c 74 61 62 6c 65 20 62 6f 72 64 65 72   @ <table border
04e0: 3d 22 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  ="0" cellspacing
04f0: 3d 22 32 30 22 3e 0a 20 20 73 65 74 75 70 5f 6d  ="20">.  setup_m
0500: 65 6e 75 5f 65 6e 74 72 79 28 22 54 61 62 6c 65  enu_entry("Table
0510: 22 2c 20 22 74 6b 74 73 65 74 75 70 5f 74 61 62  ", "tktsetup_tab
0520: 22 2c 0a 20 20 20 20 22 53 70 65 63 69 66 79 20  ",.    "Specify 
0530: 74 68 65 20 73 63 68 65 6d 61 20 6f 66 20 74 68  the schema of th
0540: 65 20 20 5c 22 74 69 63 6b 65 74 5c 22 20 74 61  e  \"ticket\" ta
0550: 62 6c 65 20 69 6e 20 74 68 65 20 64 61 74 61 62  ble in the datab
0560: 61 73 65 2e 22 29 3b 0a 20 20 73 65 74 75 70 5f  ase.");.  setup_
0570: 6d 65 6e 75 5f 65 6e 74 72 79 28 22 54 69 6d 65  menu_entry("Time
0580: 6c 69 6e 65 22 2c 20 22 74 6b 74 73 65 74 75 70  line", "tktsetup
0590: 5f 74 69 6d 65 6c 69 6e 65 22 2c 0a 20 20 20 20  _timeline",.    
05a0: 22 48 6f 77 20 74 6f 20 64 69 73 70 6c 61 79 20  "How to display 
05b0: 74 69 63 6b 65 74 20 73 74 61 74 75 73 20 69 6e  ticket status in
05c0: 20 74 68 65 20 74 69 6d 65 6c 69 6e 65 22 29 3b   the timeline");
05d0: 0a 20 20 73 65 74 75 70 5f 6d 65 6e 75 5f 65 6e  .  setup_menu_en
05e0: 74 72 79 28 22 43 6f 6d 6d 6f 6e 22 2c 20 22 74  try("Common", "t
05f0: 6b 74 73 65 74 75 70 5f 63 6f 6d 22 2c 0a 20 20  ktsetup_com",.  
0600: 20 20 22 43 6f 6d 6d 6f 6e 20 54 48 31 20 63 6f    "Common TH1 co
0610: 64 65 20 72 75 6e 20 62 65 66 6f 72 65 20 61 6c  de run before al
0620: 6c 20 74 69 63 6b 65 74 20 70 72 6f 63 65 73 73  l ticket process
0630: 69 6e 67 2e 22 29 3b 0a 20 20 73 65 74 75 70 5f  ing.");.  setup_
0640: 6d 65 6e 75 5f 65 6e 74 72 79 28 22 4e 65 77 20  menu_entry("New 
0650: 54 69 63 6b 65 74 20 50 61 67 65 22 2c 20 22 74  Ticket Page", "t
0660: 6b 74 73 65 74 75 70 5f 6e 65 77 70 61 67 65 22  ktsetup_newpage"
0670: 2c 0a 20 20 20 20 22 48 54 4d 4c 20 77 69 74 68  ,.    "HTML with
0680: 20 65 6d 62 65 64 64 65 64 20 54 48 31 20 63 6f   embedded TH1 co
0690: 64 65 20 66 6f 72 20 74 68 65 20 5c 22 6e 65 77  de for the \"new
06a0: 20 74 69 63 6b 65 74 5c 22 20 77 65 62 70 61 67   ticket\" webpag
06b0: 65 2e 22 29 3b 0a 20 20 73 65 74 75 70 5f 6d 65  e.");.  setup_me
06c0: 6e 75 5f 65 6e 74 72 79 28 22 56 69 65 77 20 54  nu_entry("View T
06d0: 69 63 6b 65 74 20 50 61 67 65 22 2c 20 22 74 6b  icket Page", "tk
06e0: 74 73 65 74 75 70 5f 76 69 65 77 70 61 67 65 22  tsetup_viewpage"
06f0: 2c 0a 20 20 20 20 22 48 54 4d 4c 20 77 69 74 68  ,.    "HTML with
0700: 20 65 6d 62 65 64 64 65 64 20 54 48 31 20 63 6f   embedded TH1 co
0710: 64 65 20 66 6f 72 20 74 68 65 20 5c 22 76 69 65  de for the \"vie
0720: 77 20 74 69 63 6b 65 74 5c 22 20 77 65 62 70 61  w ticket\" webpa
0730: 67 65 2e 22 29 3b 0a 20 20 73 65 74 75 70 5f 6d  ge.");.  setup_m
0740: 65 6e 75 5f 65 6e 74 72 79 28 22 45 64 69 74 20  enu_entry("Edit 
0750: 54 69 63 6b 65 74 20 50 61 67 65 22 2c 20 22 74  Ticket Page", "t
0760: 6b 74 73 65 74 75 70 5f 65 64 69 74 70 61 67 65  ktsetup_editpage
0770: 22 2c 0a 20 20 20 20 22 48 54 4d 4c 20 77 69 74  ",.    "HTML wit
0780: 68 20 65 6d 62 65 64 64 65 64 20 54 48 31 20 63  h embedded TH1 c
0790: 6f 64 65 20 66 6f 72 20 74 68 65 20 5c 22 65 64  ode for the \"ed
07a0: 69 74 20 74 69 63 6b 65 74 5c 22 20 77 65 62 70  it ticket\" webp
07b0: 61 67 65 2e 22 29 3b 0a 20 20 73 65 74 75 70 5f  age.");.  setup_
07c0: 6d 65 6e 75 5f 65 6e 74 72 79 28 22 52 65 70 6f  menu_entry("Repo
07d0: 72 74 20 54 65 6d 70 6c 61 74 65 22 2c 20 22 74  rt Template", "t
07e0: 6b 74 73 65 74 75 70 5f 72 70 74 74 70 6c 74 22  ktsetup_rpttplt"
07f0: 2c 0a 20 20 20 20 22 54 68 65 20 64 65 66 61 75  ,.    "The defau
0800: 6c 74 20 74 69 63 6b 65 74 20 72 65 70 6f 72 74  lt ticket report
0810: 20 66 6f 72 6d 61 74 2e 22 29 3b 0a 20 20 73 65   format.");.  se
0820: 74 75 70 5f 6d 65 6e 75 5f 65 6e 74 72 79 28 22  tup_menu_entry("
0830: 4b 65 79 20 54 65 6d 70 6c 61 74 65 22 2c 20 22  Key Template", "
0840: 74 6b 74 73 65 74 75 70 5f 6b 65 79 74 70 6c 74  tktsetup_keytplt
0850: 22 2c 0a 20 20 20 20 22 54 68 65 20 64 65 66 61  ",.    "The defa
0860: 75 6c 74 20 63 6f 6c 6f 72 20 6b 65 79 20 66 6f  ult color key fo
0870: 72 20 72 65 70 6f 72 74 73 2e 22 29 3b 0a 20 20  r reports.");.  
0880: 40 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 73 74 79  @ </table>.  sty
0890: 6c 65 5f 66 6f 6f 74 65 72 28 29 3b 0a 7d 0a 0a  le_footer();.}..
08a0: 2f 2a 0a 2a 2a 20 4e 4f 54 45 3a 20 20 57 68 65  /*.** NOTE:  Whe
08b0: 6e 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 74  n changing the t
08c0: 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 20  able definition 
08d0: 62 65 6c 6f 77 2c 20 61 6c 73 6f 20 63 68 61 6e  below, also chan
08e0: 67 65 20 74 68 65 0a 2a 2a 20 65 71 75 69 76 61  ge the.** equiva
08f0: 6c 65 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 20  lent definition 
0900: 66 6f 75 6e 64 20 69 6e 20 73 63 68 65 6d 61 2e  found in schema.
0910: 63 2e 0a 2a 2f 0a 2f 2a 20 40 2d 63 6f 6d 6d 65  c..*/./* @-comme
0920: 6e 74 3a 20 2a 2a 20 2a 2f 0a 73 74 61 74 69 63  nt: ** */.static
0930: 20 63 6f 6e 73 74 20 63 68 61 72 20 7a 44 65 66   const char zDef
0940: 61 75 6c 74 54 69 63 6b 65 74 54 61 62 6c 65 5b  aultTicketTable[
0950: 5d 20 3d 0a 40 20 43 52 45 41 54 45 20 54 41 42  ] =.@ CREATE TAB
0960: 4c 45 20 74 69 63 6b 65 74 28 0a 40 20 20 20 2d  LE ticket(.@   -
0970: 2d 20 44 6f 20 6e 6f 74 20 63 68 61 6e 67 65 20  - Do not change 
0980: 61 6e 79 20 63 6f 6c 75 6d 6e 20 74 68 61 74 20  any column that 
0990: 62 65 67 69 6e 73 20 77 69 74 68 20 74 6b 74 5f  begins with tkt_
09a0: 0a 40 20 20 20 74 6b 74 5f 69 64 20 49 4e 54 45  .@   tkt_id INTE
09b0: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c  GER PRIMARY KEY,
09c0: 0a 40 20 20 20 74 6b 74 5f 75 75 69 64 20 54 45  .@   tkt_uuid TE
09d0: 58 54 20 55 4e 49 51 55 45 2c 0a 40 20 20 20 74  XT UNIQUE,.@   t
09e0: 6b 74 5f 6d 74 69 6d 65 20 44 41 54 45 2c 0a 40  kt_mtime DATE,.@
09f0: 20 20 20 2d 2d 20 41 64 64 20 61 73 20 6d 61 6e     -- Add as man
0a00: 79 20 66 69 65 6c 64 20 61 73 20 72 65 71 75 69  y field as requi
0a10: 72 65 64 20 62 65 6c 6f 77 20 74 68 69 73 20 6c  red below this l
0a20: 69 6e 65 0a 40 20 20 20 74 79 70 65 20 54 45 58  ine.@   type TEX
0a30: 54 2c 0a 40 20 20 20 73 74 61 74 75 73 20 54 45  T,.@   status TE
0a40: 58 54 2c 0a 40 20 20 20 73 75 62 73 79 73 74 65  XT,.@   subsyste
0a50: 6d 20 54 45 58 54 2c 0a 40 20 20 20 70 72 69 6f  m TEXT,.@   prio
0a60: 72 69 74 79 20 54 45 58 54 2c 0a 40 20 20 20 73  rity TEXT,.@   s
0a70: 65 76 65 72 69 74 79 20 54 45 58 54 2c 0a 40 20  everity TEXT,.@ 
0a80: 20 20 66 6f 75 6e 64 69 6e 20 54 45 58 54 2c 0a    foundin TEXT,.
0a90: 40 20 20 20 70 72 69 76 61 74 65 5f 63 6f 6e 74  @   private_cont
0aa0: 61 63 74 20 54 45 58 54 2c 0a 40 20 20 20 72 65  act TEXT,.@   re
0ab0: 73 6f 6c 75 74 69 6f 6e 20 54 45 58 54 2c 0a 40  solution TEXT,.@
0ac0: 20 20 20 74 69 74 6c 65 20 54 45 58 54 2c 0a 40     title TEXT,.@
0ad0: 20 20 20 63 6f 6d 6d 65 6e 74 20 54 45 58 54 0a     comment TEXT.
0ae0: 40 20 29 3b 0a 3b 0a 0a 2f 2a 0a 2a 2a 20 52 65  @ );.;../*.** Re
0af0: 74 75 72 6e 20 74 68 65 20 74 69 63 6b 65 74 20  turn the ticket 
0b00: 74 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e  table definition
0b10: 0a 2a 2f 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a  .*/.const char *
0b20: 74 69 63 6b 65 74 5f 74 61 62 6c 65 5f 73 63 68  ticket_table_sch
0b30: 65 6d 61 28 76 6f 69 64 29 7b 0a 20 20 72 65 74  ema(void){.  ret
0b40: 75 72 6e 20 64 62 5f 67 65 74 28 22 74 69 63 6b  urn db_get("tick
0b50: 65 74 2d 74 61 62 6c 65 22 2c 20 28 63 68 61 72  et-table", (char
0b60: 2a 29 7a 44 65 66 61 75 6c 74 54 69 63 6b 65 74  *)zDefaultTicket
0b70: 54 61 62 6c 65 29 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a  Table);.}../*.**
0b80: 20 43 6f 6d 6d 6f 6e 20 69 6d 70 6c 65 6d 65 6e   Common implemen
0b90: 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 74  tation for the t
0ba0: 69 63 6b 65 74 20 73 65 74 75 70 20 65 64 69 74  icket setup edit
0bb0: 6f 72 20 70 61 67 65 73 2e 0a 2a 2f 0a 73 74 61  or pages..*/.sta
0bc0: 74 69 63 20 76 6f 69 64 20 74 6b 74 73 65 74 75  tic void tktsetu
0bd0: 70 5f 67 65 6e 65 72 69 63 28 0a 20 20 63 6f 6e  p_generic(.  con
0be0: 73 74 20 63 68 61 72 20 2a 7a 54 69 74 6c 65 2c  st char *zTitle,
0bf0: 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 50 61             /* Pa
0c00: 67 65 20 74 69 74 6c 65 20 2a 2f 0a 20 20 63 6f  ge title */.  co
0c10: 6e 73 74 20 63 68 61 72 20 2a 7a 44 62 46 69 65  nst char *zDbFie
0c20: 6c 64 2c 20 20 20 20 20 20 20 20 20 2f 2a 20 43  ld,         /* C
0c30: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 65  onfiguration fie
0c40: 6c 64 20 62 65 69 6e 67 20 65 64 69 74 65 64 20  ld being edited 
0c50: 2a 2f 0a 20 20 63 6f 6e 73 74 20 63 68 61 72 20  */.  const char 
0c60: 2a 7a 44 66 6c 74 56 61 6c 75 65 2c 20 20 20 20  *zDfltValue,    
0c70: 20 20 20 2f 2a 20 44 65 66 61 75 6c 74 20 74 65     /* Default te
0c80: 78 74 20 76 61 6c 75 65 20 2a 2f 0a 20 20 63 6f  xt value */.  co
0c90: 6e 73 74 20 63 68 61 72 20 2a 7a 44 65 73 63 2c  nst char *zDesc,
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 44              /* D
0cb0: 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68  escription of th
0cc0: 69 73 20 66 69 65 6c 64 20 2a 2f 0a 20 20 63 68  is field */.  ch
0cd0: 61 72 20 2a 28 2a 78 54 65 78 74 29 28 63 6f 6e  ar *(*xText)(con
0ce0: 73 74 20 63 68 61 72 2a 29 2c 20 20 2f 2a 20 56  st char*),  /* V
0cf0: 61 6c 69 64 69 74 69 74 79 20 74 65 73 74 20 6f  aliditity test o
0d00: 72 20 4e 55 4c 4c 20 2a 2f 0a 20 20 76 6f 69 64  r NULL */.  void
0d10: 20 28 2a 78 52 65 62 75 69 6c 64 29 28 76 6f 69   (*xRebuild)(voi
0d20: 64 29 2c 20 20 20 20 20 20 20 2f 2a 20 52 75 6e  d),       /* Run
0d30: 20 61 66 74 65 72 20 73 75 63 63 65 73 73 75 6c   after successul
0d40: 66 20 75 70 64 61 74 65 20 2a 2f 0a 20 20 69 6e  f update */.  in
0d50: 74 20 68 65 69 67 68 74 20 20 20 20 20 20 20 20  t height        
0d60: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 48              /* H
0d70: 65 69 67 68 74 20 6f 66 20 74 68 65 20 65 64 69  eight of the edi
0d80: 74 20 62 6f 78 20 2a 2f 0a 29 7b 0a 20 20 63 6f  t box */.){.  co
0d90: 6e 73 74 20 63 68 61 72 20 2a 7a 3b 0a 20 20 69  nst char *z;.  i
0da0: 6e 74 20 69 73 53 75 62 6d 69 74 3b 0a 20 20 0a  nt isSubmit;.  .
0db0: 20 20 6c 6f 67 69 6e 5f 63 68 65 63 6b 5f 63 72    login_check_cr
0dc0: 65 64 65 6e 74 69 61 6c 73 28 29 3b 0a 20 20 69  edentials();.  i
0dd0: 66 28 20 21 67 2e 6f 6b 53 65 74 75 70 20 29 7b  f( !g.okSetup ){
0de0: 0a 20 20 20 20 6c 6f 67 69 6e 5f 6e 65 65 64 65  .    login_neede
0df0: 64 28 29 3b 0a 20 20 7d 0a 20 20 69 66 28 20 50  d();.  }.  if( P
0e00: 28 22 73 65 74 75 70 22 29 20 29 7b 0a 20 20 20  ("setup") ){.   
0e10: 20 63 67 69 5f 72 65 64 69 72 65 63 74 28 22 74   cgi_redirect("t
0e20: 6b 74 73 65 74 75 70 22 29 3b 0a 20 20 7d 0a 20  ktsetup");.  }. 
0e30: 20 69 73 53 75 62 6d 69 74 20 3d 20 50 28 22 73   isSubmit = P("s
0e40: 75 62 6d 69 74 22 29 21 3d 30 3b 0a 20 20 7a 20  ubmit")!=0;.  z 
0e50: 3d 20 50 28 22 78 22 29 3b 0a 20 20 69 66 28 20  = P("x");.  if( 
0e60: 7a 3d 3d 30 20 29 7b 0a 20 20 20 20 7a 20 3d 20  z==0 ){.    z = 
0e70: 64 62 5f 67 65 74 28 7a 44 62 46 69 65 6c 64 2c  db_get(zDbField,
0e80: 20 28 63 68 61 72 2a 29 7a 44 66 6c 74 56 61 6c   (char*)zDfltVal
0e90: 75 65 29 3b 0a 20 20 7d 0a 20 20 73 74 79 6c 65  ue);.  }.  style
0ea0: 5f 68 65 61 64 65 72 28 22 45 64 69 74 20 25 73  _header("Edit %s
0eb0: 22 2c 20 7a 54 69 74 6c 65 29 3b 0a 20 20 69 66  ", zTitle);.  if
0ec0: 28 20 50 28 22 63 6c 65 61 72 22 29 21 3d 30 20  ( P("clear")!=0 
0ed0: 29 7b 0a 20 20 20 20 64 62 5f 75 6e 73 65 74 28  ){.    db_unset(
0ee0: 7a 44 62 46 69 65 6c 64 2c 20 30 29 3b 0a 20 20  zDbField, 0);.  
0ef0: 20 20 69 66 28 20 78 52 65 62 75 69 6c 64 20 29    if( xRebuild )
0f00: 20 78 52 65 62 75 69 6c 64 28 29 3b 0a 20 20 20   xRebuild();.   
0f10: 20 7a 20 3d 20 7a 44 66 6c 74 56 61 6c 75 65 3b   z = zDfltValue;
0f20: 0a 20 20 7d 65 6c 73 65 20 69 66 28 20 69 73 53  .  }else if( isS
0f30: 75 62 6d 69 74 20 29 7b 0a 20 20 20 20 63 68 61  ubmit ){.    cha
0f40: 72 20 2a 7a 45 72 72 20 3d 20 30 3b 0a 20 20 20  r *zErr = 0;.   
0f50: 20 69 66 28 20 78 54 65 78 74 20 26 26 20 28 7a   if( xText && (z
0f60: 45 72 72 20 3d 20 78 54 65 78 74 28 7a 29 29 21  Err = xText(z))!
0f70: 3d 30 20 29 7b 0a 20 20 20 20 20 20 40 20 3c 70  =0 ){.      @ <p
0f80: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65  ><font color="re
0f90: 64 22 3e 3c 62 3e 45 52 52 4f 52 3a 20 25 68 28  d"><b>ERROR: %h(
0fa0: 7a 45 72 72 29 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e  zErr)</b></font>
0fb0: 3c 2f 70 3e 0a 20 20 20 20 7d 65 6c 73 65 7b 0a  </p>.    }else{.
0fc0: 20 20 20 20 20 20 64 62 5f 73 65 74 28 7a 44 62        db_set(zDb
0fd0: 46 69 65 6c 64 2c 20 7a 2c 20 30 29 3b 0a 20 20  Field, z, 0);.  
0fe0: 20 20 20 20 69 66 28 20 78 52 65 62 75 69 6c 64      if( xRebuild
0ff0: 20 29 20 78 52 65 62 75 69 6c 64 28 29 3b 0a 20   ) xRebuild();. 
1000: 20 20 20 20 20 63 67 69 5f 72 65 64 69 72 65 63       cgi_redirec
1010: 74 28 22 74 6b 74 73 65 74 75 70 22 29 3b 0a 20  t("tktsetup");. 
1020: 20 20 20 7d 0a 20 20 7d 0a 20 20 40 20 3c 66 6f     }.  }.  @ <fo
1030: 72 6d 20 61 63 74 69 6f 6e 3d 22 25 73 28 67 2e  rm action="%s(g.
1040: 7a 42 61 73 65 55 52 4c 29 2f 25 73 28 67 2e 7a  zBaseURL)/%s(g.z
1050: 50 61 74 68 29 22 20 6d 65 74 68 6f 64 3d 22 50  Path)" method="P
1060: 4f 53 54 22 3e 0a 20 20 40 20 3c 70 3e 25 73 28  OST">.  @ <p>%s(
1070: 7a 44 65 73 63 29 3c 2f 70 3e 0a 20 20 40 20 3c  zDesc)</p>.  @ <
1080: 74 65 78 74 61 72 65 61 20 6e 61 6d 65 3d 22 78  textarea name="x
1090: 22 20 72 6f 77 73 3d 22 25 64 28 68 65 69 67 68  " rows="%d(heigh
10a0: 74 29 22 20 63 6f 6c 73 3d 22 38 30 22 3e 25 68  t)" cols="80">%h
10b0: 28 7a 29 3c 2f 74 65 78 74 61 72 65 61 3e 0a 20  (z)</textarea>. 
10c0: 20 40 20 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a   @ <blockquote>.
10d0: 20 20 40 20 3c 69 6e 70 75 74 20 74 79 70 65 3d    @ <input type=
10e0: 22 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d 22 73  "submit" name="s
10f0: 75 62 6d 69 74 22 20 76 61 6c 75 65 3d 22 41 70  ubmit" value="Ap
1100: 70 6c 79 20 43 68 61 6e 67 65 73 22 3e 0a 20 20  ply Changes">.  
1110: 40 20 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 73  @ <input type="s
1120: 75 62 6d 69 74 22 20 6e 61 6d 65 3d 22 63 6c 65  ubmit" name="cle
1130: 61 72 22 20 76 61 6c 75 65 3d 22 52 65 76 65 72  ar" value="Rever
1140: 74 20 54 6f 20 44 65 66 61 75 6c 74 22 3e 0a 20  t To Default">. 
1150: 20 40 20 3c 69 6e 70 75 74 20 74 79 70 65 3d 22   @ <input type="
1160: 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d 22 73 65  submit" name="se
1170: 74 75 70 22 20 76 61 6c 75 65 3d 22 43 61 6e 63  tup" value="Canc
1180: 65 6c 22 3e 0a 20 20 40 20 3c 2f 62 6c 6f 63 6b  el">.  @ </block
1190: 71 75 6f 74 65 3e 0a 20 20 40 20 3c 2f 66 6f 72  quote>.  @ </for
11a0: 6d 3e 0a 20 20 40 20 3c 68 72 3e 0a 20 20 40 20  m>.  @ <hr>.  @ 
11b0: 3c 68 32 3e 44 65 66 61 75 6c 74 20 25 73 28 7a  <h2>Default %s(z
11c0: 54 69 74 6c 65 29 3c 2f 68 32 3e 0a 20 20 40 20  Title)</h2>.  @ 
11d0: 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c 70 72 65  <blockquote><pre
11e0: 3e 0a 20 20 40 20 25 68 28 7a 44 66 6c 74 56 61  >.  @ %h(zDfltVa
11f0: 6c 75 65 29 0a 20 20 40 20 3c 2f 70 72 65 3e 3c  lue).  @ </pre><
1200: 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 20 20 73  /blockquote>.  s
1210: 74 79 6c 65 5f 66 6f 6f 74 65 72 28 29 3b 0a 7d  tyle_footer();.}
1220: 0a 0a 2f 2a 0a 2a 2a 20 57 45 42 50 41 47 45 3a  ../*.** WEBPAGE:
1230: 20 74 6b 74 73 65 74 75 70 5f 74 61 62 0a 2a 2f   tktsetup_tab.*/
1240: 0a 76 6f 69 64 20 74 6b 74 73 65 74 75 70 5f 74  .void tktsetup_t
1250: 61 62 5f 70 61 67 65 28 76 6f 69 64 29 7b 0a 20  ab_page(void){. 
1260: 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68   static const ch
1270: 61 72 20 7a 44 65 73 63 5b 5d 20 3d 0a 20 20 40  ar zDesc[] =.  @
1280: 20 3c 70 3e 45 6e 74 65 72 20 61 20 76 61 6c 69   <p>Enter a vali
1290: 64 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 73  d CREATE TABLE s
12a0: 74 61 74 65 6d 65 6e 74 20 66 6f 72 20 74 68 65  tatement for the
12b0: 20 22 74 69 63 6b 65 74 22 20 74 61 62 6c 65 2e   "ticket" table.
12c0: 20 20 54 68 65 0a 20 20 40 20 74 61 62 6c 65 20    The.  @ table 
12d0: 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 63 6f 6c  must contain col
12e0: 75 6d 6e 73 20 6e 61 6d 65 64 20 22 74 6b 74 5f  umns named "tkt_
12f0: 69 64 22 2c 20 22 74 6b 74 5f 75 75 69 64 22 2c  id", "tkt_uuid",
1300: 20 61 6e 64 20 22 74 6b 74 5f 6d 74 69 6d 65 22   and "tkt_mtime"
1310: 0a 20 20 40 20 77 69 74 68 20 61 6e 20 75 6e 69  .  @ with an uni
1320: 71 75 65 20 69 6e 64 65 78 20 6f 6e 20 22 74 6b  que index on "tk
1330: 74 5f 75 75 69 64 22 20 61 6e 64 20 22 74 6b 74  t_uuid" and "tkt
1340: 5f 6d 74 69 6d 65 22 2e 3c 2f 70 3e 0a 20 20 3b  _mtime".</p>.  ;
1350: 0a 20 20 74 6b 74 73 65 74 75 70 5f 67 65 6e 65  .  tktsetup_gene
1360: 72 69 63 28 0a 20 20 20 20 22 54 69 63 6b 65 74  ric(.    "Ticket
1370: 20 54 61 62 6c 65 20 53 63 68 65 6d 61 22 2c 0a   Table Schema",.
1380: 20 20 20 20 22 74 69 63 6b 65 74 2d 74 61 62 6c      "ticket-tabl
1390: 65 22 2c 0a 20 20 20 20 7a 44 65 66 61 75 6c 74  e",.    zDefault
13a0: 54 69 63 6b 65 74 54 61 62 6c 65 2c 0a 20 20 20  TicketTable,.   
13b0: 20 7a 44 65 73 63 2c 0a 20 20 20 20 74 69 63 6b   zDesc,.    tick
13c0: 65 74 5f 73 63 68 65 6d 61 5f 63 68 65 63 6b 2c  et_schema_check,
13d0: 0a 20 20 20 20 74 69 63 6b 65 74 5f 72 65 62 75  .    ticket_rebu
13e0: 69 6c 64 2c 0a 20 20 20 20 32 30 0a 20 20 29 3b  ild,.    20.  );
13f0: 0a 7d 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74  .}..static const
1400: 20 63 68 61 72 20 7a 44 65 66 61 75 6c 74 54 69   char zDefaultTi
1410: 63 6b 65 74 43 6f 6d 6d 6f 6e 5b 5d 20 3d 0a 40  cketCommon[] =.@
1420: 20 73 65 74 20 74 79 70 65 5f 63 68 6f 69 63 65   set type_choice
1430: 73 20 7b 0a 40 20 20 20 20 43 6f 64 65 5f 44 65  s {.@    Code_De
1440: 66 65 63 74 0a 40 20 20 20 20 42 75 69 6c 64 5f  fect.@    Build_
1450: 50 72 6f 62 6c 65 6d 0a 40 20 20 20 20 44 6f 63  Problem.@    Doc
1460: 75 6d 65 6e 74 61 74 69 6f 6e 0a 40 20 20 20 20  umentation.@    
1470: 46 65 61 74 75 72 65 5f 52 65 71 75 65 73 74 0a  Feature_Request.
1480: 40 20 20 20 20 49 6e 63 69 64 65 6e 74 0a 40 20  @    Incident.@ 
1490: 7d 0a 40 20 73 65 74 20 70 72 69 6f 72 69 74 79  }.@ set priority
14a0: 5f 63 68 6f 69 63 65 73 20 7b 0a 40 20 20 20 49  _choices {.@   I
14b0: 6d 6d 65 64 69 61 74 65 0a 40 20 20 20 48 69 67  mmediate.@   Hig
14c0: 68 0a 40 20 20 20 4d 65 64 69 75 6d 0a 40 20 20  h.@   Medium.@  
14d0: 20 4c 6f 77 0a 40 20 20 20 5a 65 72 6f 0a 40 20   Low.@   Zero.@ 
14e0: 7d 0a 40 20 73 65 74 20 73 65 76 65 72 69 74 79  }.@ set severity
14f0: 5f 63 68 6f 69 63 65 73 20 7b 0a 40 20 20 20 43  _choices {.@   C
1500: 72 69 74 69 63 61 6c 0a 40 20 20 20 53 65 76 65  ritical.@   Seve
1510: 72 65 0a 40 20 20 20 49 6d 70 6f 72 74 61 6e 74  re.@   Important
1520: 0a 40 20 20 20 4d 69 6e 6f 72 0a 40 20 20 20 43  .@   Minor.@   C
1530: 6f 73 6d 65 74 69 63 0a 40 20 7d 0a 40 20 73 65  osmetic.@ }.@ se
1540: 74 20 72 65 73 6f 6c 75 74 69 6f 6e 5f 63 68 6f  t resolution_cho
1550: 69 63 65 73 20 7b 0a 40 20 20 20 4f 70 65 6e 0a  ices {.@   Open.
1560: 40 20 20 20 46 69 78 65 64 0a 40 20 20 20 52 65  @   Fixed.@   Re
1570: 6a 65 63 74 65 64 0a 40 20 20 20 55 6e 61 62 6c  jected.@   Unabl
1580: 65 5f 54 6f 5f 52 65 70 72 6f 64 75 63 65 0a 40  e_To_Reproduce.@
1590: 20 20 20 57 6f 72 6b 73 5f 41 73 5f 44 65 73 69     Works_As_Desi
15a0: 67 6e 65 64 0a 40 20 20 20 45 78 74 65 72 6e 61  gned.@   Externa
15b0: 6c 5f 42 75 67 0a 40 20 20 20 4e 6f 74 5f 41 5f  l_Bug.@   Not_A_
15c0: 42 75 67 0a 40 20 20 20 44 75 70 6c 69 63 61 74  Bug.@   Duplicat
15d0: 65 0a 40 20 20 20 4f 76 65 72 63 6f 6d 65 5f 42  e.@   Overcome_B
15e0: 79 5f 45 76 65 6e 74 73 0a 40 20 20 20 44 72 69  y_Events.@   Dri
15f0: 76 65 5f 42 79 5f 50 61 74 63 68 0a 40 20 7d 0a  ve_By_Patch.@ }.
1600: 40 20 73 65 74 20 73 74 61 74 75 73 5f 63 68 6f  @ set status_cho
1610: 69 63 65 73 20 7b 0a 40 20 20 20 4f 70 65 6e 0a  ices {.@   Open.
1620: 40 20 20 20 56 65 72 69 66 69 65 64 0a 40 20 20  @   Verified.@  
1630: 20 52 65 76 69 65 77 0a 40 20 20 20 44 65 66 65   Review.@   Defe
1640: 72 72 65 64 0a 40 20 20 20 46 69 78 65 64 0a 40  rred.@   Fixed.@
1650: 20 20 20 54 65 73 74 65 64 0a 40 20 20 20 43 6c     Tested.@   Cl
1660: 6f 73 65 64 0a 40 20 7d 0a 40 20 73 65 74 20 73  osed.@ }.@ set s
1670: 75 62 73 79 73 74 65 6d 5f 63 68 6f 69 63 65 73  ubsystem_choices
1680: 20 7b 6f 6e 65 20 74 77 6f 20 74 68 72 65 65 7d   {one two three}
1690: 0a 3b 0a 0a 2f 2a 0a 2a 2a 20 52 65 74 75 72 6e  .;../*.** Return
16a0: 20 74 68 65 20 74 69 63 6b 65 74 20 63 6f 6d 6d   the ticket comm
16b0: 6f 6e 20 63 6f 64 65 2e 0a 2a 2f 0a 63 6f 6e 73  on code..*/.cons
16c0: 74 20 63 68 61 72 20 2a 74 69 63 6b 65 74 5f 63  t char *ticket_c
16d0: 6f 6d 6d 6f 6e 5f 63 6f 64 65 28 76 6f 69 64 29  ommon_code(void)
16e0: 7b 0a 20 20 72 65 74 75 72 6e 20 64 62 5f 67 65  {.  return db_ge
16f0: 74 28 22 74 69 63 6b 65 74 2d 63 6f 6d 6d 6f 6e  t("ticket-common
1700: 22 2c 20 28 63 68 61 72 2a 29 7a 44 65 66 61 75  ", (char*)zDefau
1710: 6c 74 54 69 63 6b 65 74 43 6f 6d 6d 6f 6e 29 3b  ltTicketCommon);
1720: 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 57 45 42 50 41 47  .}../*.** WEBPAG
1730: 45 3a 20 74 6b 74 73 65 74 75 70 5f 63 6f 6d 0a  E: tktsetup_com.
1740: 2a 2f 0a 76 6f 69 64 20 74 6b 74 73 65 74 75 70  */.void tktsetup
1750: 5f 63 6f 6d 5f 70 61 67 65 28 76 6f 69 64 29 7b  _com_page(void){
1760: 0a 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20  .  static const 
1770: 63 68 61 72 20 7a 44 65 73 63 5b 5d 20 3d 0a 20  char zDesc[] =. 
1780: 20 40 20 3c 70 3e 45 6e 74 65 72 20 54 48 31 20   @ <p>Enter TH1 
1790: 73 63 72 69 70 74 20 74 68 61 74 20 69 6e 69 74  script that init
17a0: 69 61 6c 69 7a 65 73 20 76 61 72 69 61 62 6c 65  ializes variable
17b0: 73 20 70 72 69 6f 72 20 74 6f 20 67 65 6e 65 72  s prior to gener
17c0: 61 74 69 6e 67 0a 20 20 40 20 61 6e 79 20 6f 66  ating.  @ any of
17d0: 20 74 68 65 20 74 69 63 6b 65 74 20 76 69 65 77   the ticket view
17e0: 2c 20 65 64 69 74 2c 20 6f 72 20 63 72 65 61 74  , edit, or creat
17f0: 69 6f 6e 20 70 61 67 65 73 2e 3c 2f 70 3e 0a 20  ion pages.</p>. 
1800: 20 3b 0a 20 20 74 6b 74 73 65 74 75 70 5f 67 65   ;.  tktsetup_ge
1810: 6e 65 72 69 63 28 0a 20 20 20 20 22 54 69 63 6b  neric(.    "Tick
1820: 65 74 20 43 6f 6d 6d 6f 6e 20 53 63 72 69 70 74  et Common Script
1830: 22 2c 0a 20 20 20 20 22 74 69 63 6b 65 74 2d 63  ",.    "ticket-c
1840: 6f 6d 6d 6f 6e 22 2c 0a 20 20 20 20 7a 44 65 66  ommon",.    zDef
1850: 61 75 6c 74 54 69 63 6b 65 74 43 6f 6d 6d 6f 6e  aultTicketCommon
1860: 2c 0a 20 20 20 20 7a 44 65 73 63 2c 0a 20 20 20  ,.    zDesc,.   
1870: 20 30 2c 0a 20 20 20 20 30 2c 0a 20 20 20 20 33   0,.    0,.    3
1880: 30 0a 20 20 29 3b 0a 7d 0a 0a 73 74 61 74 69 63  0.  );.}..static
1890: 20 63 6f 6e 73 74 20 63 68 61 72 20 7a 44 65 66   const char zDef
18a0: 61 75 6c 74 4e 65 77 5b 5d 20 3d 0a 40 20 3c 74  aultNew[] =.@ <t
18b0: 68 31 3e 0a 40 20 20 20 69 66 20 7b 5b 69 6e 66  h1>.@   if {[inf
18c0: 6f 20 65 78 69 73 74 73 20 73 75 62 6d 69 74 5d  o exists submit]
18d0: 7d 20 7b 0a 40 20 20 20 20 20 20 73 65 74 20 73  } {.@      set s
18e0: 74 61 74 75 73 20 4f 70 65 6e 0a 40 20 20 20 20  tatus Open.@    
18f0: 20 20 73 75 62 6d 69 74 5f 74 69 63 6b 65 74 0a    submit_ticket.
1900: 40 20 20 20 7d 0a 40 20 3c 2f 74 68 31 3e 0a 40  @   }.@ </th1>.@
1910: 20 3c 68 31 20 61 6c 69 67 6e 3d 22 63 65 6e 74   <h1 align="cent
1920: 65 72 22 3e 45 6e 74 65 72 20 41 20 4e 65 77 20  er">Enter A New 
1930: 42 75 67 20 52 65 70 6f 72 74 3c 2f 68 31 3e 0a  Bug Report</h1>.
1940: 40 20 3c 74 61 62 6c 65 20 63 65 6c 6c 70 61 64  @ <table cellpad
1950: 64 69 6e 67 3d 22 35 22 3e 0a 40 20 3c 74 72 3e  ding="5">.@ <tr>
1960: 0a 40 20 3c 74 64 20 63 6f 6c 73 70 61 6e 3d 22  .@ <td colspan="
1970: 32 22 3e 0a 40 20 45 6e 74 65 72 20 61 20 6f 6e  2">.@ Enter a on
1980: 65 2d 6c 69 6e 65 20 73 75 6d 6d 61 72 79 20 6f  e-line summary o
1990: 66 20 74 68 65 20 70 72 6f 62 6c 65 6d 3a 3c 62  f the problem:<b
19a0: 72 3e 0a 40 20 3c 69 6e 70 75 74 20 74 79 70 65  r>.@ <input type
19b0: 3d 22 74 65 78 74 22 20 6e 61 6d 65 3d 22 74 69  ="text" name="ti
19c0: 74 6c 65 22 20 73 69 7a 65 3d 22 36 30 22 20 76  tle" size="60" v
19d0: 61 6c 75 65 3d 22 24 3c 74 69 74 6c 65 3e 22 3e  alue="$<title>">
19e0: 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 2f 74 72 3e  .@ </td>.@ </tr>
19f0: 0a 40 20 0a 40 20 3c 74 72 3e 0a 40 20 3c 74 64  .@ .@ <tr>.@ <td
1a00: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 54   align="right">T
1a10: 79 70 65 3a 0a 40 20 3c 74 68 31 3e 63 6f 6d 62  ype:.@ <th1>comb
1a20: 6f 62 6f 78 20 74 79 70 65 20 24 74 79 70 65 5f  obox type $type_
1a30: 63 68 6f 69 63 65 73 20 31 3c 2f 74 68 31 3e 0a  choices 1</th1>.
1a40: 40 20 3c 2f 74 64 3e 0a 40 20 3c 74 64 3e 57 68  @ </td>.@ <td>Wh
1a50: 61 74 20 74 79 70 65 20 6f 66 20 74 69 63 6b 65  at type of ticke
1a60: 74 20 69 73 20 74 68 69 73 3f 3c 2f 74 64 3e 0a  t is this?</td>.
1a70: 40 20 3c 2f 74 72 3e 0a 40 20 0a 40 20 3c 74 72  @ </tr>.@ .@ <tr
1a80: 3e 0a 40 20 3c 74 64 20 61 6c 69 67 6e 3d 22 72  >.@ <td align="r
1a90: 69 67 68 74 22 3e 56 65 72 73 69 6f 6e 3a 20 0a  ight">Version: .
1aa0: 40 20 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 74  @ <input type="t
1ab0: 65 78 74 22 20 6e 61 6d 65 3d 22 66 6f 75 6e 64  ext" name="found
1ac0: 69 6e 22 20 73 69 7a 65 3d 22 32 30 22 20 76 61  in" size="20" va
1ad0: 6c 75 65 3d 22 24 3c 66 6f 75 6e 64 69 6e 3e 22  lue="$<foundin>"
1ae0: 3e 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 74 64 3e  >.@ </td>.@ <td>
1af0: 49 6e 20 77 68 61 74 20 76 65 72 73 69 6f 6e 20  In what version 
1b00: 6f 72 20 62 75 69 6c 64 20 6e 75 6d 62 65 72 20  or build number 
1b10: 64 6f 20 79 6f 75 20 6f 62 73 65 72 76 65 20 74  do you observe t
1b20: 68 65 20 70 72 6f 62 6c 65 6d 3f 3c 2f 74 64 3e  he problem?</td>
1b30: 0a 40 20 3c 2f 74 72 3e 0a 40 20 0a 40 20 3c 74  .@ </tr>.@ .@ <t
1b40: 72 3e 0a 40 20 3c 74 64 20 61 6c 69 67 6e 3d 22  r>.@ <td align="
1b50: 72 69 67 68 74 22 3e 53 65 76 65 72 69 74 79 3a  right">Severity:
1b60: 0a 40 20 3c 74 68 31 3e 63 6f 6d 62 6f 62 6f 78  .@ <th1>combobox
1b70: 20 73 65 76 65 72 69 74 79 20 24 73 65 76 65 72   severity $sever
1b80: 69 74 79 5f 63 68 6f 69 63 65 73 20 31 3c 2f 74  ity_choices 1</t
1b90: 68 31 3e 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 74  h1>.@ </td>.@ <t
1ba0: 64 3e 48 6f 77 20 64 65 62 69 6c 69 74 61 74 69  d>How debilitati
1bb0: 6e 67 20 69 73 20 74 68 65 20 70 72 6f 62 6c 65  ng is the proble
1bc0: 6d 3f 20 20 48 6f 77 20 62 61 64 6c 79 20 64 6f  m?  How badly do
1bd0: 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 0a 40  es the problem.@
1be0: 20 61 66 66 65 63 74 20 74 68 65 20 6f 70 65 72   affect the oper
1bf0: 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f  ation of the pro
1c00: 64 75 63 74 3f 3c 2f 74 64 3e 0a 40 20 3c 2f 74  duct?</td>.@ </t
1c10: 72 3e 0a 40 20 0a 40 20 3c 74 72 3e 0a 40 20 3c  r>.@ .@ <tr>.@ <
1c20: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
1c30: 3e 45 4d 61 69 6c 3a 0a 40 20 3c 69 6e 70 75 74  >EMail:.@ <input
1c40: 20 74 79 70 65 3d 22 74 65 78 74 22 20 6e 61 6d   type="text" nam
1c50: 65 3d 22 70 72 69 76 61 74 65 5f 63 6f 6e 74 61  e="private_conta
1c60: 63 74 22 20 76 61 6c 75 65 3d 22 24 3c 70 72 69  ct" value="$<pri
1c70: 76 61 74 65 5f 63 6f 6e 74 61 63 74 3e 22 20 73  vate_contact>" s
1c80: 69 7a 65 3d 22 33 30 22 3e 0a 40 20 3c 2f 74 64  ize="30">.@ </td
1c90: 3e 0a 40 20 3c 74 64 3e 3c 75 3e 4e 6f 74 20 70  >.@ <td><u>Not p
1ca0: 75 62 6c 69 63 6c 79 20 76 69 73 69 62 6c 65 3c  ublicly visible<
1cb0: 2f 75 3e 2e 20 55 73 65 64 20 62 79 20 64 65 76  /u>. Used by dev
1cc0: 65 6c 6f 70 65 72 73 20 74 6f 20 63 6f 6e 74 61  elopers to conta
1cd0: 63 74 20 79 6f 75 20 77 69 74 68 0a 40 20 71 75  ct you with.@ qu
1ce0: 65 73 74 69 6f 6e 73 2e 3c 2f 74 64 3e 0a 40 20  estions.</td>.@ 
1cf0: 3c 2f 74 72 3e 0a 40 20 0a 40 20 3c 74 72 3e 0a  </tr>.@ .@ <tr>.
1d00: 40 20 3c 74 64 20 63 6f 6c 73 70 61 6e 3d 22 32  @ <td colspan="2
1d10: 22 3e 0a 40 20 45 6e 74 65 72 20 61 20 64 65 74  ">.@ Enter a det
1d20: 61 69 6c 65 64 20 64 65 73 63 72 69 70 74 69 6f  ailed descriptio
1d30: 6e 20 6f 66 20 74 68 65 20 70 72 6f 62 6c 65 6d  n of the problem
1d40: 2e 0a 40 20 46 6f 72 20 63 6f 64 65 20 64 65 66  ..@ For code def
1d50: 65 63 74 73 2c 20 62 65 20 73 75 72 65 20 74 6f  ects, be sure to
1d60: 20 70 72 6f 76 69 64 65 20 64 65 74 61 69 6c 73   provide details
1d70: 20 6f 6e 20 65 78 61 63 74 6c 79 20 68 6f 77 0a   on exactly how.
1d80: 40 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 63 61  @ the problem ca
1d90: 6e 20 62 65 20 72 65 70 72 6f 64 75 63 65 64 2e  n be reproduced.
1da0: 20 20 50 72 6f 76 69 64 65 20 61 73 20 6d 75 63    Provide as muc
1db0: 68 20 64 65 74 61 69 6c 20 61 73 0a 40 20 70 6f  h detail as.@ po
1dc0: 73 73 69 62 6c 65 2e 0a 40 20 3c 62 72 3e 0a 40  ssible..@ <br>.@
1dd0: 20 3c 74 68 31 3e 73 65 74 20 6e 6c 69 6e 65 20   <th1>set nline 
1de0: 5b 6c 69 6e 65 63 6f 75 6e 74 20 24 63 6f 6d 6d  [linecount $comm
1df0: 65 6e 74 20 35 30 20 31 30 5d 3c 2f 74 68 31 3e  ent 50 10]</th1>
1e00: 0a 40 20 3c 74 65 78 74 61 72 65 61 20 6e 61 6d  .@ <textarea nam
1e10: 65 3d 22 63 6f 6d 6d 65 6e 74 22 20 63 6f 6c 73  e="comment" cols
1e20: 3d 22 38 30 22 20 72 6f 77 73 3d 22 24 6e 6c 69  ="80" rows="$nli
1e30: 6e 65 22 0a 40 20 20 77 72 61 70 3d 22 76 69 72  ne".@  wrap="vir
1e40: 74 75 61 6c 22 20 63 6c 61 73 73 3d 22 77 69 6b  tual" class="wik
1e50: 69 65 64 69 74 22 3e 24 3c 63 6f 6d 6d 65 6e 74  iedit">$<comment
1e60: 3e 3c 2f 74 65 78 74 61 72 65 61 3e 3c 62 72 3e  ></textarea><br>
1e70: 0a 40 20 3c 69 6e 70 75 74 20 74 79 70 65 3d 22  .@ <input type="
1e80: 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d 22 70 72  submit" name="pr
1e90: 65 76 69 65 77 22 20 76 61 6c 75 65 3d 22 50 72  eview" value="Pr
1ea0: 65 76 69 65 77 22 3e 0a 40 20 3c 2f 74 72 3e 0a  eview">.@ </tr>.
1eb0: 40 0a 40 20 3c 74 68 31 3e 65 6e 61 62 6c 65 5f  @.@ <th1>enable_
1ec0: 6f 75 74 70 75 74 20 5b 69 6e 66 6f 20 65 78 69  output [info exi
1ed0: 73 74 73 20 70 72 65 76 69 65 77 5d 3c 2f 74 68  sts preview]</th
1ee0: 31 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 63 6f 6c  1>.@ <tr><td col
1ef0: 73 70 61 6e 3d 22 32 22 3e 0a 40 20 44 65 73 63  span="2">.@ Desc
1f00: 72 69 70 74 69 6f 6e 20 50 72 65 76 69 65 77 3a  ription Preview:
1f10: 3c 62 72 3e 3c 68 72 3e 0a 40 20 3c 74 68 31 3e  <br><hr>.@ <th1>
1f20: 77 69 6b 69 20 24 63 6f 6d 6d 65 6e 74 3c 2f 74  wiki $comment</t
1f30: 68 31 3e 0a 40 20 3c 68 72 3e 0a 40 20 3c 2f 74  h1>.@ <hr>.@ </t
1f40: 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74 68 31 3e 65  d></tr>.@ <th1>e
1f50: 6e 61 62 6c 65 5f 6f 75 74 70 75 74 20 31 3c 2f  nable_output 1</
1f60: 74 68 31 3e 0a 40 20 0a 40 20 3c 74 72 3e 0a 40  th1>.@ .@ <tr>.@
1f70: 20 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68   <td align="righ
1f80: 74 22 3e 0a 40 20 3c 69 6e 70 75 74 20 74 79 70  t">.@ <input typ
1f90: 65 3d 22 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d  e="submit" name=
1fa0: 22 73 75 62 6d 69 74 22 20 76 61 6c 75 65 3d 22  "submit" value="
1fb0: 53 75 62 6d 69 74 22 3e 0a 40 20 3c 2f 74 64 3e  Submit">.@ </td>
1fc0: 0a 40 20 3c 74 64 3e 41 66 74 65 72 20 66 69 6c  .@ <td>After fil
1fd0: 6c 69 6e 67 20 69 6e 20 74 68 65 20 69 6e 66 6f  ling in the info
1fe0: 72 6d 61 74 69 6f 6e 20 61 62 6f 76 65 2c 20 70  rmation above, p
1ff0: 72 65 73 73 20 74 68 69 73 20 62 75 74 74 6f 6e  ress this button
2000: 20 74 6f 20 63 72 65 61 74 65 0a 40 20 74 68 65   to create.@ the
2010: 20 6e 65 77 20 74 69 63 6b 65 74 3c 2f 74 64 3e   new ticket</td>
2020: 0a 40 20 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 0a  .@ </tr>.@ <tr>.
2030: 40 20 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  @ <td align="rig
2040: 68 74 22 3e 0a 40 20 3c 69 6e 70 75 74 20 74 79  ht">.@ <input ty
2050: 70 65 3d 22 73 75 62 6d 69 74 22 20 6e 61 6d 65  pe="submit" name
2060: 3d 22 63 61 6e 63 65 6c 22 20 76 61 6c 75 65 3d  ="cancel" value=
2070: 22 43 61 6e 63 65 6c 22 3e 0a 40 20 3c 2f 74 64  "Cancel">.@ </td
2080: 3e 0a 40 20 3c 74 64 3e 41 62 61 6e 64 6f 6e 20  >.@ <td>Abandon 
2090: 61 6e 64 20 66 6f 72 67 65 74 20 74 68 69 73 20  and forget this 
20a0: 62 75 67 20 72 65 70 6f 72 74 3c 2f 74 64 3e 0a  bug report</td>.
20b0: 40 20 3c 2f 74 72 3e 0a 40 20 3c 2f 74 61 62 6c  @ </tr>.@ </tabl
20c0: 65 3e 0a 3b 0a 0a 2f 2a 0a 2a 2a 20 52 65 74 75  e>.;../*.** Retu
20d0: 72 6e 20 74 68 65 20 63 6f 64 65 20 75 73 65 64  rn the code used
20e0: 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65   to generate the
20f0: 20 6e 65 77 20 74 69 63 6b 65 74 20 70 61 67 65   new ticket page
2100: 0a 2a 2f 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a  .*/.const char *
2110: 74 69 63 6b 65 74 5f 6e 65 77 70 61 67 65 5f 63  ticket_newpage_c
2120: 6f 64 65 28 76 6f 69 64 29 7b 0a 20 20 72 65 74  ode(void){.  ret
2130: 75 72 6e 20 64 62 5f 67 65 74 28 22 74 69 63 6b  urn db_get("tick
2140: 65 74 2d 6e 65 77 70 61 67 65 22 2c 20 28 63 68  et-newpage", (ch
2150: 61 72 2a 29 7a 44 65 66 61 75 6c 74 4e 65 77 29  ar*)zDefaultNew)
2160: 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 57 45 42 50 41  ;.}../*.** WEBPA
2170: 47 45 3a 20 74 6b 74 73 65 74 75 70 5f 6e 65 77  GE: tktsetup_new
2180: 70 61 67 65 0a 2a 2f 0a 76 6f 69 64 20 74 6b 74  page.*/.void tkt
2190: 73 65 74 75 70 5f 6e 65 77 70 61 67 65 5f 70 61  setup_newpage_pa
21a0: 67 65 28 76 6f 69 64 29 7b 0a 20 20 73 74 61 74  ge(void){.  stat
21b0: 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 7a 44  ic const char zD
21c0: 65 73 63 5b 5d 20 3d 0a 20 20 40 20 3c 70 3e 45  esc[] =.  @ <p>E
21d0: 6e 74 65 72 20 48 54 4d 4c 20 77 69 74 68 20 65  nter HTML with e
21e0: 6d 62 65 64 64 65 64 20 54 48 31 20 73 63 72 69  mbedded TH1 scri
21f0: 70 74 20 74 68 61 74 20 77 69 6c 6c 20 72 65 6e  pt that will ren
2200: 64 65 72 20 74 68 65 20 22 6e 65 77 20 74 69 63  der the "new tic
2210: 6b 65 74 22 0a 20 20 40 20 70 61 67 65 3c 2f 70  ket".  @ page</p
2220: 3e 0a 20 20 3b 0a 20 20 74 6b 74 73 65 74 75 70  >.  ;.  tktsetup
2230: 5f 67 65 6e 65 72 69 63 28 0a 20 20 20 20 22 48  _generic(.    "H
2240: 54 4d 4c 20 46 6f 72 20 4e 65 77 20 54 69 63 6b  TML For New Tick
2250: 65 74 73 22 2c 0a 20 20 20 20 22 74 69 63 6b 65  ets",.    "ticke
2260: 74 2d 6e 65 77 70 61 67 65 22 2c 0a 20 20 20 20  t-newpage",.    
2270: 7a 44 65 66 61 75 6c 74 4e 65 77 2c 0a 20 20 20  zDefaultNew,.   
2280: 20 7a 44 65 73 63 2c 0a 20 20 20 20 30 2c 0a 20   zDesc,.    0,. 
2290: 20 20 20 30 2c 0a 20 20 20 20 34 30 0a 20 20 29     0,.    40.  )
22a0: 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73  ;.}..static cons
22b0: 74 20 63 68 61 72 20 7a 44 65 66 61 75 6c 74 56  t char zDefaultV
22c0: 69 65 77 5b 5d 20 3d 0a 40 20 3c 74 61 62 6c 65  iew[] =.@ <table
22d0: 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 35 22   cellpadding="5"
22e0: 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67  >.@ <tr><td alig
22f0: 6e 3d 22 72 69 67 68 74 22 3e 54 69 63 6b 65 74  n="right">Ticket
2300: 26 6e 62 73 70 3b 55 55 49 44 3a 3c 2f 74 64 3e  &nbsp;UUID:</td>
2310: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <td bgcolor="#d0
2320: 64 30 64 30 22 20 63 6f 6c 73 70 61 6e 3d 22 33  d0d0" colspan="3
2330: 22 3e 0a 40 20 24 3c 74 6b 74 5f 75 75 69 64 3e  ">.@ $<tkt_uuid>
2340: 0a 40 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20  .@ </td></tr>.@ 
2350: 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  <tr><td align="r
2360: 69 67 68 74 22 3e 54 69 74 6c 65 3a 3c 2f 74 64  ight">Title:</td
2370: 3e 0a 40 20 3c 74 64 20 62 67 63 6f 6c 6f 72 3d  >.@ <td bgcolor=
2380: 22 23 64 30 64 30 64 30 22 20 63 6f 6c 73 70 61  "#d0d0d0" colspa
2390: 6e 3d 22 33 22 20 76 61 6c 69 67 6e 3d 22 74 6f  n="3" valign="to
23a0: 70 22 3e 0a 40 20 24 3c 74 69 74 6c 65 3e 0a 40  p">.@ $<title>.@
23b0: 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74   </td></tr>.@ <t
23c0: 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  r><td align="rig
23d0: 68 74 22 3e 53 74 61 74 75 73 3a 3c 2f 74 64 3e  ht">Status:</td>
23e0: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <td bgcolor="#d0
23f0: 64 30 64 30 22 3e 0a 40 20 24 3c 73 74 61 74 75  d0d0">.@ $<statu
2400: 73 3e 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 74 64  s>.@ </td>.@ <td
2410: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 54   align="right">T
2420: 79 70 65 3a 3c 2f 74 64 3e 3c 74 64 20 62 67 63  ype:</td><td bgc
2430: 6f 6c 6f 72 3d 22 23 64 30 64 30 64 30 22 3e 0a  olor="#d0d0d0">.
2440: 40 20 24 3c 74 79 70 65 3e 0a 40 20 3c 2f 74 64  @ $<type>.@ </td
2450: 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64  ></tr>.@ <tr><td
2460: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 53   align="right">S
2470: 65 76 65 72 69 74 79 3a 3c 2f 74 64 3e 3c 74 64  everity:</td><td
2480: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 64   bgcolor="#d0d0d
2490: 30 22 3e 0a 40 20 24 3c 73 65 76 65 72 69 74 79  0">.@ $<severity
24a0: 3e 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 74 64 20  >.@ </td>.@ <td 
24b0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 50 72  align="right">Pr
24c0: 69 6f 72 69 74 79 3a 3c 2f 74 64 3e 3c 74 64 20  iority:</td><td 
24d0: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 64 30  bgcolor="#d0d0d0
24e0: 22 3e 0a 40 20 24 3c 70 72 69 6f 72 69 74 79 3e  ">.@ $<priority>
24f0: 0a 40 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20  .@ </td></tr>.@ 
2500: 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  <tr><td align="r
2510: 69 67 68 74 22 3e 53 75 62 73 79 73 74 65 6d 3a  ight">Subsystem:
2520: 3c 2f 74 64 3e 3c 74 64 20 62 67 63 6f 6c 6f 72  </td><td bgcolor
2530: 3d 22 23 64 30 64 30 64 30 22 3e 0a 40 20 24 3c  ="#d0d0d0">.@ $<
2540: 73 75 62 73 79 73 74 65 6d 3e 0a 40 20 3c 2f 74  subsystem>.@ </t
2550: 64 3e 0a 40 20 3c 74 64 20 61 6c 69 67 6e 3d 22  d>.@ <td align="
2560: 72 69 67 68 74 22 3e 52 65 73 6f 6c 75 74 69 6f  right">Resolutio
2570: 6e 3a 3c 2f 74 64 3e 3c 74 64 20 62 67 63 6f 6c  n:</td><td bgcol
2580: 6f 72 3d 22 23 64 30 64 30 64 30 22 3e 0a 40 20  or="#d0d0d0">.@ 
2590: 24 3c 72 65 73 6f 6c 75 74 69 6f 6e 3e 0a 40 20  $<resolution>.@ 
25a0: 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72  </td></tr>.@ <tr
25b0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
25c0: 74 22 3e 4c 61 73 74 26 6e 62 73 70 3b 4d 6f 64  t">Last&nbsp;Mod
25d0: 69 66 69 65 64 3a 3c 2f 74 64 3e 3c 74 64 20 62  ified:</td><td b
25e0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 64 30 22  gcolor="#d0d0d0"
25f0: 3e 0a 40 20 24 3c 74 6b 74 5f 64 61 74 65 74 69  >.@ $<tkt_dateti
2600: 6d 65 3e 0a 40 20 3c 2f 74 64 3e 0a 40 20 3c 74  me>.@ </td>.@ <t
2610: 68 31 3e 65 6e 61 62 6c 65 5f 6f 75 74 70 75 74  h1>enable_output
2620: 20 5b 68 61 73 63 61 70 20 65 5d 3c 2f 74 68 31   [hascap e]</th1
2630: 3e 0a 40 20 20 20 3c 74 64 20 61 6c 69 67 6e 3d  >.@   <td align=
2640: 22 72 69 67 68 74 22 3e 43 6f 6e 74 61 63 74 3a  "right">Contact:
2650: 3c 2f 74 64 3e 3c 74 64 20 62 67 63 6f 6c 6f 72  </td><td bgcolor
2660: 3d 22 23 64 30 64 30 64 30 22 3e 0a 40 20 20 20  ="#d0d0d0">.@   
2670: 24 3c 70 72 69 76 61 74 65 5f 63 6f 6e 74 61 63  $<private_contac
2680: 74 3e 0a 40 20 20 20 3c 2f 74 64 3e 0a 40 20 3c  t>.@   </td>.@ <
2690: 74 68 31 3e 65 6e 61 62 6c 65 5f 6f 75 74 70 75  th1>enable_outpu
26a0: 74 20 31 3c 2f 74 68 31 3e 0a 40 20 3c 2f 74 72  t 1</th1>.@ </tr
26b0: 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67  >.@ <tr><td alig
26c0: 6e 3d 22 72 69 67 68 74 22 3e 56 65 72 73 69 6f  n="right">Versio
26d0: 6e 26 6e 62 73 70 3b 46 6f 75 6e 64 26 6e 62 73  n&nbsp;Found&nbs
26e0: 70 3b 49 6e 3a 3c 2f 74 64 3e 0a 40 20 3c 74 64  p;In:</td>.@ <td
26f0: 20 63 6f 6c 73 70 61 6e 3d 22 33 22 20 76 61 6c   colspan="3" val
2700: 69 67 6e 3d 22 74 6f 70 22 20 62 67 63 6f 6c 6f  ign="top" bgcolo
2710: 72 3d 22 23 64 30 64 30 64 30 22 3e 0a 40 20 24  r="#d0d0d0">.@ $
2720: 3c 66 6f 75 6e 64 69 6e 3e 0a 40 20 3c 2f 74 64  <foundin>.@ </td
2730: 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64  ></tr>.@ <tr><td
2740: 3e 44 65 73 63 72 69 70 74 69 6f 6e 20 26 61 6d  >Description &am
2750: 70 3b 20 43 6f 6d 6d 65 6e 74 73 3a 3c 2f 74 64  p; Comments:</td
2760: 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64  ></tr>.@ <tr><td
2770: 20 63 6f 6c 73 70 61 6e 3d 22 34 22 20 62 67 63   colspan="4" bgc
2780: 6f 6c 6f 72 3d 22 23 64 30 64 30 64 30 22 3e 0a  olor="#d0d0d0">.
2790: 40 20 3c 73 70 61 6e 20 20 62 67 63 6f 6c 6f 72  @ <span  bgcolor
27a0: 3d 22 23 64 30 64 30 64 30 22 3e 3c 74 68 31 3e  ="#d0d0d0"><th1>
27b0: 77 69 6b 69 20 24 63 6f 6d 6d 65 6e 74 3c 2f 74  wiki $comment</t
27c0: 68 31 3e 3c 2f 73 70 61 6e 3e 0a 40 20 3c 2f 74  h1></span>.@ </t
27d0: 64 3e 3c 2f 74 72 3e 0a 40 20 3c 2f 74 61 62 6c  d></tr>.@ </tabl
27e0: 65 3e 0a 3b 0a 0a 0a 2f 2a 0a 2a 2a 20 52 65 74  e>.;.../*.** Ret
27f0: 75 72 6e 20 74 68 65 20 63 6f 64 65 20 75 73 65  urn the code use
2800: 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68  d to generate th
2810: 65 20 76 69 65 77 20 74 69 63 6b 65 74 20 70 61  e view ticket pa
2820: 67 65 0a 2a 2f 0a 63 6f 6e 73 74 20 63 68 61 72  ge.*/.const char
2830: 20 2a 74 69 63 6b 65 74 5f 76 69 65 77 70 61 67   *ticket_viewpag
2840: 65 5f 63 6f 64 65 28 76 6f 69 64 29 7b 0a 20 20  e_code(void){.  
2850: 72 65 74 75 72 6e 20 64 62 5f 67 65 74 28 22 74  return db_get("t
2860: 69 63 6b 65 74 2d 76 69 65 77 70 61 67 65 22 2c  icket-viewpage",
2870: 20 28 63 68 61 72 2a 29 7a 44 65 66 61 75 6c 74   (char*)zDefault
2880: 56 69 65 77 29 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20  View);.}../*.** 
2890: 57 45 42 50 41 47 45 3a 20 74 6b 74 73 65 74 75  WEBPAGE: tktsetu
28a0: 70 5f 76 69 65 77 70 61 67 65 0a 2a 2f 0a 76 6f  p_viewpage.*/.vo
28b0: 69 64 20 74 6b 74 73 65 74 75 70 5f 76 69 65 77  id tktsetup_view
28c0: 70 61 67 65 5f 70 61 67 65 28 76 6f 69 64 29 7b  page_page(void){
28d0: 0a 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20  .  static const 
28e0: 63 68 61 72 20 7a 44 65 73 63 5b 5d 20 3d 0a 20  char zDesc[] =. 
28f0: 20 40 20 3c 70 3e 45 6e 74 65 72 20 48 54 4d 4c   @ <p>Enter HTML
2900: 20 77 69 74 68 20 65 6d 62 65 64 64 65 64 20 54   with embedded T
2910: 48 31 20 73 63 72 69 70 74 20 74 68 61 74 20 77  H1 script that w
2920: 69 6c 6c 20 72 65 6e 64 65 72 20 74 68 65 20 22  ill render the "
2930: 76 69 65 77 20 74 69 63 6b 65 74 22 0a 20 20 40  view ticket".  @
2940: 20 70 61 67 65 3c 2f 70 3e 0a 20 20 3b 0a 20 20   page</p>.  ;.  
2950: 74 6b 74 73 65 74 75 70 5f 67 65 6e 65 72 69 63  tktsetup_generic
2960: 28 0a 20 20 20 20 22 48 54 4d 4c 20 46 6f 72 20  (.    "HTML For 
2970: 56 69 65 77 69 6e 67 20 54 69 63 6b 65 74 73 22  Viewing Tickets"
2980: 2c 0a 20 20 20 20 22 74 69 63 6b 65 74 2d 76 69  ,.    "ticket-vi
2990: 65 77 70 61 67 65 22 2c 0a 20 20 20 20 7a 44 65  ewpage",.    zDe
29a0: 66 61 75 6c 74 56 69 65 77 2c 0a 20 20 20 20 7a  faultView,.    z
29b0: 44 65 73 63 2c 0a 20 20 20 20 30 2c 0a 20 20 20  Desc,.    0,.   
29c0: 20 30 2c 0a 20 20 20 20 34 30 0a 20 20 29 3b 0a   0,.    40.  );.
29d0: 7d 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20  }..static const 
29e0: 63 68 61 72 20 7a 44 65 66 61 75 6c 74 45 64 69  char zDefaultEdi
29f0: 74 5b 5d 20 3d 0a 40 20 3c 74 68 31 3e 0a 40 20  t[] =.@ <th1>.@ 
2a00: 20 20 69 66 20 7b 21 5b 69 6e 66 6f 20 65 78 69    if {![info exi
2a10: 73 74 73 20 75 73 65 72 6e 61 6d 65 5d 7d 20 7b  sts username]} {
2a20: 73 65 74 20 75 73 65 72 6e 61 6d 65 20 24 6c 6f  set username $lo
2a30: 67 69 6e 7d 0a 40 20 20 20 69 66 20 7b 5b 69 6e  gin}.@   if {[in
2a40: 66 6f 20 65 78 69 73 74 73 20 73 75 62 6d 69 74  fo exists submit
2a50: 5d 7d 20 7b 0a 40 20 20 20 20 20 69 66 20 7b 5b  ]} {.@     if {[
2a60: 69 6e 66 6f 20 65 78 69 73 74 73 20 63 6d 61 70  info exists cmap
2a70: 70 6e 64 5d 7d 20 7b 0a 40 20 20 20 20 20 20 20  pnd]} {.@       
2a80: 69 66 20 7b 5b 73 74 72 69 6e 67 20 6c 65 6e 67  if {[string leng
2a90: 74 68 20 24 63 6d 61 70 70 6e 64 5d 3e 30 7d 20  th $cmappnd]>0} 
2aa0: 7b 0a 40 20 20 20 20 20 20 20 20 20 73 65 74 20  {.@         set 
2ab0: 63 74 78 74 20 22 5c 6e 5c 6e 3c 68 72 3e 3c 69  ctxt "\n\n<hr><i
2ac0: 3e 5b 68 74 6d 6c 69 7a 65 20 24 6c 6f 67 69 6e  >[htmlize $login
2ad0: 5d 22 0a 40 20 20 20 20 20 20 20 20 20 69 66 20  ]".@         if 
2ae0: 7b 24 75 73 65 72 6e 61 6d 65 20 6e 65 20 24 6c  {$username ne $l
2af0: 6f 67 69 6e 7d 20 7b 0a 40 20 20 20 20 20 20 20  ogin} {.@       
2b00: 20 20 20 20 73 65 74 20 63 74 78 74 20 22 24 63      set ctxt "$c
2b10: 74 78 74 20 63 6c 61 69 6d 69 6e 67 20 74 6f 20  txt claiming to 
2b20: 62 65 20 5b 68 74 6d 6c 69 7a 65 20 24 75 73 65  be [htmlize $use
2b30: 72 6e 61 6d 65 5d 22 0a 40 20 20 20 20 20 20 20  rname]".@       
2b40: 20 20 7d 0a 40 20 20 20 20 20 20 20 20 20 73 65    }.@         se
2b50: 74 20 63 74 78 74 20 22 24 63 74 78 74 20 61 64  t ctxt "$ctxt ad
2b60: 64 65 64 20 6f 6e 20 5b 64 61 74 65 5d 3a 3c 2f  ded on [date]:</
2b70: 69 3e 3c 62 72 3e 5c 6e 24 63 6d 61 70 70 6e 64  i><br>\n$cmappnd
2b80: 22 0a 40 20 20 20 20 20 20 20 20 20 61 70 70 65  ".@         appe
2b90: 6e 64 5f 66 69 65 6c 64 20 63 6f 6d 6d 65 6e 74  nd_field comment
2ba0: 20 24 63 74 78 74 0a 40 20 20 20 20 20 20 20 7d   $ctxt.@       }
2bb0: 0a 40 20 20 20 20 20 7d 0a 40 20 20 20 20 20 73  .@     }.@     s
2bc0: 75 62 6d 69 74 5f 74 69 63 6b 65 74 0a 40 20 20  ubmit_ticket.@  
2bd0: 20 7d 0a 40 20 3c 2f 74 68 31 3e 0a 40 20 3c 74   }.@ </th1>.@ <t
2be0: 61 62 6c 65 20 63 65 6c 6c 70 61 64 64 69 6e 67  able cellpadding
2bf0: 3d 22 35 22 3e 0a 40 20 3c 74 72 3e 3c 74 64 20  ="5">.@ <tr><td 
2c00: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 54 69  align="right">Ti
2c10: 74 6c 65 3a 3c 2f 74 64 3e 3c 74 64 3e 0a 40 20  tle:</td><td>.@ 
2c20: 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 74 65 78  <input type="tex
2c30: 74 22 20 6e 61 6d 65 3d 22 74 69 74 6c 65 22 20  t" name="title" 
2c40: 76 61 6c 75 65 3d 22 24 3c 74 69 74 6c 65 3e 22  value="$<title>"
2c50: 20 73 69 7a 65 3d 22 36 30 22 3e 0a 40 20 3c 2f   size="60">.@ </
2c60: 74 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c  td></tr>.@ <tr><
2c70: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
2c80: 3e 53 74 61 74 75 73 3a 3c 2f 74 64 3e 3c 74 64  >Status:</td><td
2c90: 3e 0a 40 20 3c 74 68 31 3e 63 6f 6d 62 6f 62 6f  >.@ <th1>combobo
2ca0: 78 20 73 74 61 74 75 73 20 24 73 74 61 74 75 73  x status $status
2cb0: 5f 63 68 6f 69 63 65 73 20 31 3c 2f 74 68 31 3e  _choices 1</th1>
2cc0: 0a 40 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20  .@ </td></tr>.@ 
2cd0: 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  <tr><td align="r
2ce0: 69 67 68 74 22 3e 54 79 70 65 3a 3c 2f 74 64 3e  ight">Type:</td>
2cf0: 3c 74 64 3e 0a 40 20 3c 74 68 31 3e 63 6f 6d 62  <td>.@ <th1>comb
2d00: 6f 62 6f 78 20 74 79 70 65 20 24 74 79 70 65 5f  obox type $type_
2d10: 63 68 6f 69 63 65 73 20 31 3c 2f 74 68 31 3e 0a  choices 1</th1>.
2d20: 40 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20 3c  @ </td></tr>.@ <
2d30: 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  tr><td align="ri
2d40: 67 68 74 22 3e 53 65 76 65 72 69 74 79 3a 3c 2f  ght">Severity:</
2d50: 74 64 3e 3c 74 64 3e 0a 40 20 3c 74 68 31 3e 63  td><td>.@ <th1>c
2d60: 6f 6d 62 6f 62 6f 78 20 73 65 76 65 72 69 74 79  ombobox severity
2d70: 20 24 73 65 76 65 72 69 74 79 5f 63 68 6f 69 63   $severity_choic
2d80: 65 73 20 31 3c 2f 74 68 31 3e 0a 40 20 3c 2f 74  es 1</th1>.@ </t
2d90: 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74  d></tr>.@ <tr><t
2da0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
2db0: 50 72 69 6f 72 69 74 79 3a 3c 2f 74 64 3e 3c 74  Priority:</td><t
2dc0: 64 3e 0a 40 20 3c 74 68 31 3e 63 6f 6d 62 6f 62  d>.@ <th1>combob
2dd0: 6f 78 20 70 72 69 6f 72 69 74 79 20 24 70 72 69  ox priority $pri
2de0: 6f 72 69 74 79 5f 63 68 6f 69 63 65 73 20 31 3c  ority_choices 1<
2df0: 2f 74 68 31 3e 0a 40 20 3c 2f 74 64 3e 3c 2f 74  /th1>.@ </td></t
2e00: 72 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 61 6c 69  r>.@ <tr><td ali
2e10: 67 6e 3d 22 72 69 67 68 74 22 3e 52 65 73 6f 6c  gn="right">Resol
2e20: 75 74 69 6f 6e 3a 3c 2f 74 64 3e 3c 74 64 3e 0a  ution:</td><td>.
2e30: 40 20 3c 74 68 31 3e 63 6f 6d 62 6f 62 6f 78 20  @ <th1>combobox 
2e40: 72 65 73 6f 6c 75 74 69 6f 6e 20 24 72 65 73 6f  resolution $reso
2e50: 6c 75 74 69 6f 6e 5f 63 68 6f 69 63 65 73 20 31  lution_choices 1
2e60: 3c 2f 74 68 31 3e 0a 40 20 3c 2f 74 64 3e 3c 2f  </th1>.@ </td></
2e70: 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 61 6c  tr>.@ <tr><td al
2e80: 69 67 6e 3d 22 72 69 67 68 74 22 3e 53 75 62 73  ign="right">Subs
2e90: 79 73 74 65 6d 3a 3c 2f 74 64 3e 3c 74 64 3e 0a  ystem:</td><td>.
2ea0: 40 20 3c 74 68 31 3e 63 6f 6d 62 6f 62 6f 78 20  @ <th1>combobox 
2eb0: 73 75 62 73 79 73 74 65 6d 20 24 73 75 62 73 79  subsystem $subsy
2ec0: 73 74 65 6d 5f 63 68 6f 69 63 65 73 20 31 3c 2f  stem_choices 1</
2ed0: 74 68 31 3e 0a 40 20 3c 2f 74 64 3e 3c 2f 74 72  th1>.@ </td></tr
2ee0: 3e 0a 40 20 3c 74 68 31 3e 65 6e 61 62 6c 65 5f  >.@ <th1>enable_
2ef0: 6f 75 74 70 75 74 20 5b 68 61 73 63 61 70 20 65  output [hascap e
2f00: 5d 3c 2f 74 68 31 3e 0a 40 20 20 20 3c 74 72 3e  ]</th1>.@   <tr>
2f10: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
2f20: 22 3e 43 6f 6e 74 61 63 74 3a 3c 2f 74 64 3e 3c  ">Contact:</td><
2f30: 74 64 3e 0a 40 20 20 20 3c 69 6e 70 75 74 20 74  td>.@   <input t
2f40: 79 70 65 3d 22 74 65 78 74 22 20 6e 61 6d 65 3d  ype="text" name=
2f50: 22 70 72 69 76 61 74 65 5f 63 6f 6e 74 61 63 74  "private_contact
2f60: 22 20 73 69 7a 65 3d 22 34 30 22 0a 40 20 20 20  " size="40".@   
2f70: 20 76 61 6c 75 65 3d 22 24 3c 70 72 69 76 61 74   value="$<privat
2f80: 65 5f 63 6f 6e 74 61 63 74 3e 22 3e 0a 40 20 20  e_contact>">.@  
2f90: 20 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 40 20 3c 74   </td></tr>.@ <t
2fa0: 68 31 3e 65 6e 61 62 6c 65 5f 6f 75 74 70 75 74  h1>enable_output
2fb0: 20 31 3c 2f 74 68 31 3e 0a 40 20 3c 74 72 3e 3c   1</th1>.@ <tr><
2fc0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
2fd0: 3e 56 65 72 73 69 6f 6e 26 6e 62 73 70 3b 46 6f  >Version&nbsp;Fo
2fe0: 75 6e 64 26 6e 62 73 70 3b 49 6e 3a 3c 2f 74 64  und&nbsp;In:</td
2ff0: 3e 3c 74 64 3e 0a 40 20 3c 69 6e 70 75 74 20 74  ><td>.@ <input t
3000: 79 70 65 3d 22 74 65 78 74 22 20 6e 61 6d 65 3d  ype="text" name=
3010: 22 66 6f 75 6e 64 69 6e 22 20 73 69 7a 65 3d 22  "foundin" size="
3020: 35 30 22 20 76 61 6c 75 65 3d 22 24 3c 66 6f 75  50" value="$<fou
3030: 6e 64 69 6e 3e 22 3e 0a 40 20 3c 2f 74 64 3e 3c  ndin>">.@ </td><
3040: 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 63  /tr>.@ <tr><td c
3050: 6f 6c 73 70 61 6e 3d 22 32 22 3e 0a 40 20 3c 74  olspan="2">.@ <t
3060: 68 31 3e 0a 40 20 20 20 69 66 20 7b 21 5b 69 6e  h1>.@   if {![in
3070: 66 6f 20 65 78 69 73 74 73 20 65 61 6c 6c 5d 7d  fo exists eall]}
3080: 20 7b 73 65 74 20 65 61 6c 6c 20 30 7d 0a 40 20   {set eall 0}.@ 
3090: 20 20 69 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73    if {[info exis
30a0: 74 73 20 61 6f 6e 6c 79 62 74 6e 5d 7d 20 7b 73  ts aonlybtn]} {s
30b0: 65 74 20 65 61 6c 6c 20 30 7d 0a 40 20 20 20 69  et eall 0}.@   i
30c0: 66 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20  f {[info exists 
30d0: 65 61 6c 6c 62 74 6e 5d 7d 20 7b 73 65 74 20 65  eallbtn]} {set e
30e0: 61 6c 6c 20 31 7d 0a 40 20 20 20 69 66 20 7b 21  all 1}.@   if {!
30f0: 5b 68 61 73 63 61 70 20 77 5d 7d 20 7b 73 65 74  [hascap w]} {set
3100: 20 65 61 6c 6c 20 30 7d 0a 40 20 20 20 69 66 20   eall 0}.@   if 
3110: 7b 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 63  {![info exists c
3120: 6d 61 70 70 6e 64 5d 7d 20 7b 73 65 74 20 63 6d  mappnd]} {set cm
3130: 61 70 70 6e 64 20 7b 7d 7d 0a 40 20 20 20 73 65  appnd {}}.@   se
3140: 74 20 6e 6c 69 6e 65 20 5b 6c 69 6e 65 63 6f 75  t nline [linecou
3150: 6e 74 20 24 63 6f 6d 6d 65 6e 74 20 31 35 20 31  nt $comment 15 1
3160: 30 5d 0a 40 20 20 20 65 6e 61 62 6c 65 5f 6f 75  0].@   enable_ou
3170: 74 70 75 74 20 24 65 61 6c 6c 0a 40 20 3c 2f 74  tput $eall.@ </t
3180: 68 31 3e 0a 40 20 20 20 44 65 73 63 72 69 70 74  h1>.@   Descript
3190: 69 6f 6e 20 41 6e 64 20 43 6f 6d 6d 65 6e 74 73  ion And Comments
31a0: 3a 3c 62 72 3e 0a 40 20 20 20 3c 74 65 78 74 61  :<br>.@   <texta
31b0: 72 65 61 20 6e 61 6d 65 3d 22 63 6f 6d 6d 65 6e  rea name="commen
31c0: 74 22 20 63 6f 6c 73 3d 22 38 30 22 20 72 6f 77  t" cols="80" row
31d0: 73 3d 22 24 6e 6c 69 6e 65 22 0a 40 20 20 20 20  s="$nline".@    
31e0: 77 72 61 70 3d 22 76 69 72 74 75 61 6c 22 20 63  wrap="virtual" c
31f0: 6c 61 73 73 3d 22 77 69 6b 69 65 64 69 74 22 3e  lass="wikiedit">
3200: 24 3c 63 6f 6d 6d 65 6e 74 3e 3c 2f 74 65 78 74  $<comment></text
3210: 61 72 65 61 3e 3c 62 72 3e 0a 40 20 20 20 3c 69  area><br>.@   <i
3220: 6e 70 75 74 20 74 79 70 65 3d 22 68 69 64 64 65  nput type="hidde
3230: 6e 22 20 6e 61 6d 65 3d 22 65 61 6c 6c 22 20 76  n" name="eall" v
3240: 61 6c 75 65 3d 22 31 22 3e 0a 40 20 20 20 3c 69  alue="1">.@   <i
3250: 6e 70 75 74 20 74 79 70 65 3d 22 73 75 62 6d 69  nput type="submi
3260: 74 22 20 6e 61 6d 65 3d 22 61 6f 6e 6c 79 62 74  t" name="aonlybt
3270: 6e 22 20 76 61 6c 75 65 3d 22 41 70 70 65 6e 64  n" value="Append
3280: 20 52 65 6d 61 72 6b 22 3e 0a 40 20 3c 74 68 31   Remark">.@ <th1
3290: 3e 65 6e 61 62 6c 65 5f 6f 75 74 70 75 74 20 5b  >enable_output [
32a0: 65 78 70 72 20 7b 21 24 65 61 6c 6c 7d 5d 3c 2f  expr {!$eall}]</
32b0: 74 68 31 3e 0a 40 20 20 20 41 70 70 65 6e 64 20  th1>.@   Append 
32c0: 52 65 6d 61 72 6b 20 66 72 6f 6d 20 0a 40 20 20  Remark from .@  
32d0: 20 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 74 65   <input type="te
32e0: 78 74 22 20 6e 61 6d 65 3d 22 75 73 65 72 6e 61  xt" name="userna
32f0: 6d 65 22 20 76 61 6c 75 65 3d 22 24 3c 75 73 65  me" value="$<use
3300: 72 6e 61 6d 65 3e 22 20 73 69 7a 65 3d 22 33 30  rname>" size="30
3310: 22 3e 3a 3c 62 72 3e 0a 40 20 20 20 3c 74 65 78  ">:<br>.@   <tex
3320: 74 61 72 65 61 20 6e 61 6d 65 3d 22 63 6d 61 70  tarea name="cmap
3330: 70 6e 64 22 20 63 6f 6c 73 3d 22 38 30 22 20 72  pnd" cols="80" r
3340: 6f 77 73 3d 22 31 35 22 0a 40 20 20 20 20 77 72  ows="15".@    wr
3350: 61 70 3d 22 76 69 72 74 75 61 6c 22 20 63 6c 61  ap="virtual" cla
3360: 73 73 3d 22 77 69 6b 69 65 64 69 74 22 3e 24 3c  ss="wikiedit">$<
3370: 63 6d 61 70 70 6e 64 3e 3c 2f 74 65 78 74 61 72  cmappnd></textar
3380: 65 61 3e 3c 62 72 3e 0a 40 20 3c 74 68 31 3e 65  ea><br>.@ <th1>e
3390: 6e 61 62 6c 65 5f 6f 75 74 70 75 74 20 5b 65 78  nable_output [ex
33a0: 70 72 20 7b 5b 68 61 73 63 61 70 20 77 5d 20 26  pr {[hascap w] &
33b0: 26 20 21 24 65 61 6c 6c 7d 5d 3c 2f 74 68 31 3e  & !$eall}]</th1>
33c0: 0a 40 20 20 20 3c 69 6e 70 75 74 20 74 79 70 65  .@   <input type
33d0: 3d 22 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d 22  ="submit" name="
33e0: 65 61 6c 6c 62 74 6e 22 20 76 61 6c 75 65 3d 22  eallbtn" value="
33f0: 45 64 69 74 20 41 6c 6c 22 3e 0a 40 20 3c 74 68  Edit All">.@ <th
3400: 31 3e 65 6e 61 62 6c 65 5f 6f 75 74 70 75 74 20  1>enable_output 
3410: 31 3c 2f 74 68 31 3e 0a 40 20 3c 2f 74 64 3e 3c  1</th1>.@ </td><
3420: 2f 74 72 3e 0a 40 20 3c 74 72 3e 3c 74 64 20 61  /tr>.@ <tr><td a
3430: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 3c 2f 74  lign="right"></t
3440: 64 3e 3c 74 64 3e 0a 40 20 3c 69 6e 70 75 74 20  d><td>.@ <input 
3450: 74 79 70 65 3d 22 73 75 62 6d 69 74 22 20 6e 61  type="submit" na
3460: 6d 65 3d 22 73 75 62 6d 69 74 22 20 76 61 6c 75  me="submit" valu
3470: 65 3d 22 53 75 62 6d 69 74 20 43 68 61 6e 67 65  e="Submit Change
3480: 73 22 3e 0a 40 20 3c 69 6e 70 75 74 20 74 79 70  s">.@ <input typ
3490: 65 3d 22 73 75 62 6d 69 74 22 20 6e 61 6d 65 3d  e="submit" name=
34a0: 22 63 61 6e 63 65 6c 22 20 76 61 6c 75 65 3d 22  "cancel" value="
34b0: 43 61 6e 63 65 6c 22 3e 0a 40 20 3c 2f 74 64 3e  Cancel">.@ </td>
34c0: 3c 2f 74 72 3e 0a 40 20 3c 2f 74 61 62 6c 65 3e  </tr>.@ </table>
34d0: 0a 3b 0a 0a 2f 2a 0a 2a 2a 20 52 65 74 75 72 6e  .;../*.** Return
34e0: 20 74 68 65 20 63 6f 64 65 20 75 73 65 64 20 74   the code used t
34f0: 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 65  o generate the e
3500: 64 69 74 20 74 69 63 6b 65 74 20 70 61 67 65 0a  dit ticket page.
3510: 2a 2f 0a 63 6f 6e 73 74 20 63 68 61 72 20 2a 74  */.const char *t
3520: 69 63 6b 65 74 5f 65 64 69 74 70 61 67 65 5f 63  icket_editpage_c
3530: 6f 64 65 28 76 6f 69 64 29 7b 0a 20 20 72 65 74  ode(void){.  ret
3540: 75 72 6e 20 64 62 5f 67 65 74 28 22 74 69 63 6b  urn db_get("tick
3550: 65 74 2d 65 64 69 74 70 61 67 65 22 2c 20 28 63  et-editpage", (c
3560: 68 61 72 2a 29 7a 44 65 66 61 75 6c 74 45 64 69  har*)zDefaultEdi
3570: 74 29 3b 0a 7d 0a 0a 2f 2a 0a 2a 2a 20 57 45 42  t);.}../*.** WEB
3580: 50 41 47 45 3a 20 74 6b 74 73 65 74 75 70 5f 65  PAGE: tktsetup_e
3590: 64 69 74 70 61 67 65 0a 2a 2f 0a 76 6f 69 64 20  ditpage.*/.void 
35a0: 74 6b 74 73 65 74 75 70 5f 65 64 69 74 70 61 67  tktsetup_editpag
35b0: 65 5f 70 61 67 65 28 76 6f 69 64 29 7b 0a 20 20  e_page(void){.  
35c0: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61  static const cha
35d0: 72 20 7a 44 65 73 63 5b 5d 20 3d 0a 20 20 40 20  r zDesc[] =.  @ 
35e0: 3c 70 3e 45 6e 74 65 72 20 48 54 4d 4c 20 77 69  <p>Enter HTML wi
35f0: 74 68 20 65 6d 62 65 64 64 65 64 20 54 48 31 20  th embedded TH1 
3600: 73 63 72 69 70 74 20 74 68 61 74 20 77 69 6c 6c  script that will
3610: 20 72 65 6e 64 65 72 20 74 68 65 20 22 65 64 69   render the "edi
3620: 74 20 74 69 63 6b 65 74 22 0a 20 20 40 20 70 61  t ticket".  @ pa
3630: 67 65 3c 2f 70 3e 0a 20 20 3b 0a 20 20 74 6b 74  ge</p>.  ;.  tkt
3640: 73 65 74 75 70 5f 67 65 6e 65 72 69 63 28 0a 20  setup_generic(. 
3650: 20 20 20 22 48 54 4d 4c 20 46 6f 72 20 45 64 69     "HTML For Edi
3660: 74 69 6e 67 20 54 69 63 6b 65 74 73 22 2c 0a 20  ting Tickets",. 
3670: 20 20 20 22 74 69 63 6b 65 74 2d 65 64 69 74 70     "ticket-editp
3680: 61 67 65 22 2c 0a 20 20 20 20 7a 44 65 66 61 75  age",.    zDefau
3690: 6c 74 45 64 69 74 2c 0a 20 20 20 20 7a 44 65 73  ltEdit,.    zDes
36a0: 63 2c 0a 20 20 20 20 30 2c 0a 20 20 20 20 30 2c  c,.    0,.    0,
36b0: 0a 20 20 20 20 34 30 0a 20 20 29 3b 0a 7d 0a 0a  .    40.  );.}..
36c0: 2f 2a 0a 2a 2a 20 54 68 65 20 64 65 66 61 75 6c  /*.** The defaul
36d0: 74 20 74 65 6d 70 6c 61 74 65 20 74 69 63 6b 65  t template ticke
36e0: 74 20 72 65 70 6f 72 74 20 66 6f 72 6d 61 74 3a  t report format:
36f0: 0a 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20  .*/.static char 
3700: 7a 44 65 66 61 75 6c 74 52 65 70 6f 72 74 5b 5d  zDefaultReport[]
3710: 20 3d 20 0a 40 20 53 45 4c 45 43 54 0a 40 20 20   = .@ SELECT.@  
3720: 20 43 41 53 45 20 57 48 45 4e 20 73 74 61 74 75   CASE WHEN statu
3730: 73 20 49 4e 20 28 27 4f 70 65 6e 27 2c 27 56 65  s IN ('Open','Ve
3740: 72 69 66 69 65 64 27 29 20 54 48 45 4e 20 27 23  rified') THEN '#
3750: 66 32 64 63 64 63 27 0a 40 20 20 20 20 20 20 20  f2dcdc'.@       
3760: 20 57 48 45 4e 20 73 74 61 74 75 73 3d 27 52 65   WHEN status='Re
3770: 76 69 65 77 27 20 54 48 45 4e 20 27 23 65 38 65  view' THEN '#e8e
3780: 38 65 38 27 0a 40 20 20 20 20 20 20 20 20 57 48  8e8'.@        WH
3790: 45 4e 20 73 74 61 74 75 73 3d 27 46 69 78 65 64  EN status='Fixed
37a0: 27 20 54 48 45 4e 20 27 23 63 66 65 38 62 64 27  ' THEN '#cfe8bd'
37b0: 0a 40 20 20 20 20 20 20 20 20 57 48 45 4e 20 73  .@        WHEN s
37c0: 74 61 74 75 73 3d 27 54 65 73 74 65 64 27 20 54  tatus='Tested' T
37d0: 48 45 4e 20 27 23 62 64 65 35 64 36 27 0a 40 20  HEN '#bde5d6'.@ 
37e0: 20 20 20 20 20 20 20 57 48 45 4e 20 73 74 61 74         WHEN stat
37f0: 75 73 3d 27 44 65 66 65 72 72 65 64 27 20 54 48  us='Deferred' TH
3800: 45 4e 20 27 23 63 61 63 61 65 35 27 0a 40 20 20  EN '#cacae5'.@  
3810: 20 20 20 20 20 20 45 4c 53 45 20 27 23 63 38 63        ELSE '#c8c
3820: 38 63 38 27 20 45 4e 44 20 41 53 20 27 62 67 63  8c8' END AS 'bgc
3830: 6f 6c 6f 72 27 2c 0a 40 20 20 20 73 75 62 73 74  olor',.@   subst
3840: 72 28 74 6b 74 5f 75 75 69 64 2c 31 2c 31 30 29  r(tkt_uuid,1,10)
3850: 20 41 53 20 27 23 27 2c 0a 40 20 20 20 64 61 74   AS '#',.@   dat
3860: 65 74 69 6d 65 28 74 6b 74 5f 6d 74 69 6d 65 29  etime(tkt_mtime)
3870: 20 41 53 20 27 6d 74 69 6d 65 27 2c 0a 40 20 20   AS 'mtime',.@  
3880: 20 74 79 70 65 2c 0a 40 20 20 20 73 74 61 74 75   type,.@   statu
3890: 73 2c 0a 40 20 20 20 73 75 62 73 79 73 74 65 6d  s,.@   subsystem
38a0: 2c 0a 40 20 20 20 74 69 74 6c 65 2c 0a 40 20 20  ,.@   title,.@  
38b0: 20 63 6f 6d 6d 65 6e 74 20 41 53 20 27 5f 63 6f   comment AS '_co
38c0: 6d 6d 65 6e 74 73 27 0a 40 20 46 52 4f 4d 20 74  mments'.@ FROM t
38d0: 69 63 6b 65 74 0a 3b 0a 0a 0a 2f 2a 0a 2a 2a 20  icket.;.../*.** 
38e0: 52 65 74 75 72 6e 20 74 68 65 20 74 65 6d 70 6c  Return the templ
38f0: 61 74 65 20 74 69 63 6b 65 74 20 72 65 70 6f 72  ate ticket repor
3900: 74 20 66 6f 72 6d 61 74 3a 0a 2a 2f 0a 63 68 61  t format:.*/.cha
3910: 72 20 2a 74 69 63 6b 65 74 5f 72 65 70 6f 72 74  r *ticket_report
3920: 5f 74 65 6d 70 6c 61 74 65 28 76 6f 69 64 29 7b  _template(void){
3930: 0a 20 20 72 65 74 75 72 6e 20 64 62 5f 67 65 74  .  return db_get
3940: 28 22 74 69 63 6b 65 74 2d 72 65 70 6f 72 74 2d  ("ticket-report-
3950: 74 65 6d 70 6c 61 74 65 22 2c 20 7a 44 65 66 61  template", zDefa
3960: 75 6c 74 52 65 70 6f 72 74 29 3b 0a 7d 0a 0a 2f  ultReport);.}../
3970: 2a 0a 2a 2a 20 57 45 42 50 41 47 45 3a 20 74 6b  *.** WEBPAGE: tk
3980: 74 73 65 74 75 70 5f 72 70 74 74 70 6c 74 0a 2a  tsetup_rpttplt.*
3990: 2f 0a 76 6f 69 64 20 74 6b 74 73 65 74 75 70 5f  /.void tktsetup_
39a0: 72 70 74 74 70 6c 74 5f 70 61 67 65 28 76 6f 69  rpttplt_page(voi
39b0: 64 29 7b 0a 20 20 73 74 61 74 69 63 20 63 6f 6e  d){.  static con
39c0: 73 74 20 63 68 61 72 20 7a 44 65 73 63 5b 5d 20  st char zDesc[] 
39d0: 3d 0a 20 20 40 20 3c 70 3e 45 6e 74 65 72 20 74  =.  @ <p>Enter t
39e0: 68 65 20 64 65 66 61 75 6c 74 20 74 69 63 6b 65  he default ticke
39f0: 74 20 72 65 70 6f 72 74 20 66 6f 72 6d 61 74 20  t report format 
3a00: 74 65 6d 70 6c 61 74 65 2e 20 20 54 68 69 73 20  template.  This 
3a10: 69 73 20 74 68 65 0a 20 20 40 20 74 68 65 20 74  is the.  @ the t
3a20: 65 6d 70 6c 61 74 65 20 72 65 70 6f 72 74 20 66  emplate report f
3a30: 6f 72 6d 61 74 20 74 68 61 74 20 69 6e 69 74 69  ormat that initi
3a40: 61 6c 6c 79 20 61 70 70 65 61 72 73 20 77 68 65  ally appears whe
3a50: 6e 20 63 72 65 61 74 69 6e 67 20 61 0a 20 20 40  n creating a.  @
3a60: 20 6e 65 77 20 74 69 63 6b 65 74 20 73 75 6d 6d   new ticket summ
3a70: 61 72 79 20 72 65 70 6f 72 74 2e 3c 2f 70 3e 0a  ary report.</p>.
3a80: 20 20 3b 0a 20 20 74 6b 74 73 65 74 75 70 5f 67    ;.  tktsetup_g
3a90: 65 6e 65 72 69 63 28 0a 20 20 20 20 22 44 65 66  eneric(.    "Def
3aa0: 61 75 6c 74 20 52 65 70 6f 72 74 20 54 65 6d 70  ault Report Temp
3ab0: 6c 61 74 65 22 2c 0a 20 20 20 20 22 74 69 63 6b  late",.    "tick
3ac0: 65 74 2d 72 65 70 6f 72 74 2d 74 65 6d 70 6c 61  et-report-templa
3ad0: 74 65 22 2c 0a 20 20 20 20 7a 44 65 66 61 75 6c  te",.    zDefaul
3ae0: 74 52 65 70 6f 72 74 2c 0a 20 20 20 20 7a 44 65  tReport,.    zDe
3af0: 73 63 2c 0a 20 20 20 20 30 2c 0a 20 20 20 20 30  sc,.    0,.    0
3b00: 2c 0a 20 20 20 20 32 30 0a 20 20 29 3b 0a 7d 0a  ,.    20.  );.}.
3b10: 0a 2f 2a 0a 2a 2a 20 54 68 65 20 64 65 66 61 75  ./*.** The defau
3b20: 6c 74 20 74 65 6d 70 6c 61 74 65 20 74 69 63 6b  lt template tick
3b30: 65 74 20 6b 65 79 3a 0a 2a 2f 0a 73 74 61 74 69  et key:.*/.stati
3b40: 63 20 63 6f 6e 73 74 20 63 68 61 72 20 7a 44 65  c const char zDe
3b50: 66 61 75 6c 74 4b 65 79 5b 5d 20 3d 20 0a 40 20  faultKey[] = .@ 
3b60: 23 66 66 66 66 66 66 20 4b 65 79 3a 0a 40 20 23  #ffffff Key:.@ #
3b70: 66 32 64 63 64 63 20 41 63 74 69 76 65 0a 40 20  f2dcdc Active.@ 
3b80: 23 65 38 65 38 65 38 20 52 65 76 69 65 77 0a 40  #e8e8e8 Review.@
3b90: 20 23 63 66 65 38 62 64 20 46 69 78 65 64 0a 40   #cfe8bd Fixed.@
3ba0: 20 23 62 64 65 35 64 36 20 54 65 73 74 65 64 0a   #bde5d6 Tested.
3bb0: 40 20 23 63 61 63 61 65 35 20 44 65 66 65 72 72  @ #cacae5 Deferr
3bc0: 65 64 0a 40 20 23 63 38 63 38 63 38 20 43 6c 6f  ed.@ #c8c8c8 Clo
3bd0: 73 65 64 0a 3b 0a 0a 0a 2f 2a 0a 2a 2a 20 52 65  sed.;.../*.** Re
3be0: 74 75 72 6e 20 74 68 65 20 74 65 6d 70 6c 61 74  turn the templat
3bf0: 65 20 74 69 63 6b 65 74 20 72 65 70 6f 72 74 20  e ticket report 
3c00: 66 6f 72 6d 61 74 3a 0a 2a 2f 0a 63 6f 6e 73 74  format:.*/.const
3c10: 20 63 68 61 72 20 2a 74 69 63 6b 65 74 5f 6b 65   char *ticket_ke
3c20: 79 5f 74 65 6d 70 6c 61 74 65 28 76 6f 69 64 29  y_template(void)
3c30: 7b 0a 20 20 72 65 74 75 72 6e 20 64 62 5f 67 65  {.  return db_ge
3c40: 74 28 22 74 69 63 6b 65 74 2d 6b 65 79 2d 74 65  t("ticket-key-te
3c50: 6d 70 6c 61 74 65 22 2c 20 28 63 68 61 72 2a 29  mplate", (char*)
3c60: 7a 44 65 66 61 75 6c 74 4b 65 79 29 3b 0a 7d 0a  zDefaultKey);.}.
3c70: 0a 2f 2a 0a 2a 2a 20 57 45 42 50 41 47 45 3a 20  ./*.** WEBPAGE: 
3c80: 74 6b 74 73 65 74 75 70 5f 6b 65 79 74 70 6c 74  tktsetup_keytplt
3c90: 0a 2a 2f 0a 76 6f 69 64 20 74 6b 74 73 65 74 75  .*/.void tktsetu
3ca0: 70 5f 6b 65 79 74 70 6c 74 5f 70 61 67 65 28 76  p_keytplt_page(v
3cb0: 6f 69 64 29 7b 0a 20 20 73 74 61 74 69 63 20 63  oid){.  static c
3cc0: 6f 6e 73 74 20 63 68 61 72 20 7a 44 65 73 63 5b  onst char zDesc[
3cd0: 5d 20 3d 0a 20 20 40 20 3c 70 3e 45 6e 74 65 72  ] =.  @ <p>Enter
3ce0: 20 74 68 65 20 64 65 66 61 75 6c 74 20 74 69 63   the default tic
3cf0: 6b 65 74 20 72 65 70 6f 72 74 20 63 6f 6c 6f 72  ket report color
3d00: 2d 6b 65 79 20 74 65 6d 70 6c 61 74 65 2e 20 20  -key template.  
3d10: 54 68 69 73 20 69 73 20 74 68 65 0a 20 20 40 20  This is the.  @ 
3d20: 74 68 65 20 63 6f 6c 6f 72 2d 6b 65 79 20 74 68  the color-key th
3d30: 61 74 20 69 6e 69 74 69 61 6c 6c 79 20 61 70 70  at initially app
3d40: 65 61 72 73 20 77 68 65 6e 20 63 72 65 61 74 69  ears when creati
3d50: 6e 67 20 61 0a 20 20 40 20 6e 65 77 20 74 69 63  ng a.  @ new tic
3d60: 6b 65 74 20 73 75 6d 6d 61 72 79 20 72 65 70 6f  ket summary repo
3d70: 72 74 2e 3c 2f 70 3e 0a 20 20 3b 0a 20 20 74 6b  rt.</p>.  ;.  tk
3d80: 74 73 65 74 75 70 5f 67 65 6e 65 72 69 63 28 0a  tsetup_generic(.
3d90: 20 20 20 20 22 44 65 66 61 75 6c 74 20 52 65 70      "Default Rep
3da0: 6f 72 74 20 43 6f 6c 6f 72 2d 4b 65 79 20 54 65  ort Color-Key Te
3db0: 6d 70 6c 61 74 65 22 2c 0a 20 20 20 20 22 74 69  mplate",.    "ti
3dc0: 63 6b 65 74 2d 6b 65 79 2d 74 65 6d 70 6c 61 74  cket-key-templat
3dd0: 65 22 2c 0a 20 20 20 20 7a 44 65 66 61 75 6c 74  e",.    zDefault
3de0: 4b 65 79 2c 0a 20 20 20 20 7a 44 65 73 63 2c 0a  Key,.    zDesc,.
3df0: 20 20 20 20 30 2c 0a 20 20 20 20 30 2c 0a 20 20      0,.    0,.  
3e00: 20 20 31 30 0a 20 20 29 3b 0a 7d 0a 0a 2f 2a 0a    10.  );.}../*.
3e10: 2a 2a 20 57 45 42 50 41 47 45 3a 20 74 6b 74 73  ** WEBPAGE: tkts
3e20: 65 74 75 70 5f 74 69 6d 65 6c 69 6e 65 0a 2a 2f  etup_timeline.*/
3e30: 0a 76 6f 69 64 20 74 6b 74 73 65 74 75 70 5f 74  .void tktsetup_t
3e40: 69 6d 65 6c 69 6e 65 5f 70 61 67 65 28 76 6f 69  imeline_page(voi
3e50: 64 29 7b 0a 20 20 6c 6f 67 69 6e 5f 63 68 65 63  d){.  login_chec
3e60: 6b 5f 63 72 65 64 65 6e 74 69 61 6c 73 28 29 3b  k_credentials();
3e70: 0a 20 20 69 66 28 20 21 67 2e 6f 6b 53 65 74 75  .  if( !g.okSetu
3e80: 70 20 29 7b 0a 20 20 20 20 6c 6f 67 69 6e 5f 6e  p ){.    login_n
3e90: 65 65 64 65 64 28 29 3b 0a 20 20 7d 0a 0a 20 20  eeded();.  }..  
3ea0: 69 66 28 20 50 28 22 73 65 74 75 70 22 29 20 29  if( P("setup") )
3eb0: 7b 0a 20 20 20 20 63 67 69 5f 72 65 64 69 72 65  {.    cgi_redire
3ec0: 63 74 28 22 74 6b 74 73 65 74 75 70 22 29 3b 0a  ct("tktsetup");.
3ed0: 20 20 7d 0a 20 20 73 74 79 6c 65 5f 68 65 61 64    }.  style_head
3ee0: 65 72 28 22 54 69 63 6b 65 74 20 44 69 73 70 6c  er("Ticket Displ
3ef0: 61 79 20 4f 6e 20 54 69 6d 65 6c 69 6e 65 73 22  ay On Timelines"
3f00: 29 3b 0a 20 20 64 62 5f 62 65 67 69 6e 5f 74 72  );.  db_begin_tr
3f10: 61 6e 73 61 63 74 69 6f 6e 28 29 3b 0a 20 20 40  ansaction();.  @
3f20: 20 3c 66 6f 72 6d 20 61 63 74 69 6f 6e 3d 22 25   <form action="%
3f30: 73 28 67 2e 7a 42 61 73 65 55 52 4c 29 2f 74 6b  s(g.zBaseURL)/tk
3f40: 74 73 65 74 75 70 5f 74 69 6d 65 6c 69 6e 65 22  tsetup_timeline"
3f50: 20 6d 65 74 68 6f 64 3d 22 50 4f 53 54 22 3e 0a   method="POST">.
3f60: 0a 20 20 40 20 3c 68 72 3e 0a 20 20 65 6e 74 72  .  @ <hr>.  entr
3f70: 79 5f 61 74 74 72 69 62 75 74 65 28 22 54 69 63  y_attribute("Tic
3f80: 6b 65 74 20 54 69 74 6c 65 22 2c 20 34 30 2c 20  ket Title", 40, 
3f90: 22 74 69 63 6b 65 74 2d 74 69 74 6c 65 2d 65 78  "ticket-title-ex
3fa0: 70 72 22 2c 20 22 74 22 2c 20 22 74 69 74 6c 65  pr", "t", "title
3fb0: 22 29 3b 0a 20 20 40 20 3c 70 3e 41 6e 20 53 51  ");.  @ <p>An SQ
3fc0: 4c 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20  L expression in 
3fd0: 61 20 71 75 65 72 79 20 61 67 61 69 6e 73 74 20  a query against 
3fe0: 74 68 65 20 54 49 43 4b 45 54 20 74 61 62 6c 65  the TICKET table
3ff0: 20 74 68 61 74 20 77 69 6c 6c 0a 20 20 40 20 72   that will.  @ r
4000: 65 74 75 72 6e 20 74 68 65 20 74 69 74 6c 65 20  eturn the title 
4010: 6f 66 20 74 68 65 20 74 69 63 6b 65 74 20 66 6f  of the ticket fo
4020: 72 20 64 69 73 70 6c 61 79 20 70 75 72 70 6f 73  r display purpos
4030: 65 73 20 61 66 74 65 72 20 68 79 70 65 72 6c 69  es after hyperli
4040: 6e 6b 73 20 74 6f 0a 20 20 40 20 74 68 61 74 20  nks to.  @ that 
4050: 74 69 63 6b 65 74 3c 2f 70 3e 0a 0a 20 20 40 20  ticket</p>..  @ 
4060: 3c 68 72 3e 0a 20 20 65 6e 74 72 79 5f 61 74 74  <hr>.  entry_att
4070: 72 69 62 75 74 65 28 22 54 69 63 6b 65 74 20 43  ribute("Ticket C
4080: 6c 6f 73 65 64 22 2c 20 34 30 2c 20 22 74 69 63  losed", 40, "tic
4090: 6b 65 74 2d 63 6c 6f 73 65 64 2d 65 78 70 72 22  ket-closed-expr"
40a0: 2c 20 22 63 22 2c 0a 20 20 20 20 20 20 20 20 20  , "c",.         
40b0: 20 20 20 20 20 20 20 20 20 22 73 74 61 74 75 73           "status
40c0: 3d 27 43 6c 6f 73 65 64 27 22 29 3b 0a 20 20 40  ='Closed'");.  @
40d0: 20 3c 70 3e 41 6e 20 53 51 4c 20 65 78 70 72 65   <p>An SQL expre
40e0: 73 73 69 6f 6e 20 74 68 61 74 20 65 76 61 6c 75  ssion that evalu
40f0: 61 74 65 73 20 74 6f 20 74 72 75 65 20 69 6e 20  ates to true in 
4100: 61 20 54 49 43 4b 45 54 20 74 61 62 6c 65 20 71  a TICKET table q
4110: 75 65 72 79 20 69 66 0a 20 20 40 20 74 68 65 20  uery if.  @ the 
4120: 74 69 63 6b 65 74 20 69 73 20 63 6c 6f 73 65 64  ticket is closed
4130: 2e 3c 2f 70 3e 0a 0a 20 20 40 20 3c 68 72 3e 0a  .</p>..  @ <hr>.
4140: 20 20 40 20 3c 70 3e 0a 20 20 40 20 3c 69 6e 70    @ <p>.  @ <inp
4150: 75 74 20 74 79 70 65 3d 22 73 75 62 6d 69 74 22  ut type="submit"
4160: 20 20 6e 61 6d 65 3d 22 73 75 62 6d 69 74 22 20    name="submit" 
4170: 76 61 6c 75 65 3d 22 41 70 70 6c 79 20 43 68 61  value="Apply Cha
4180: 6e 67 65 73 22 3e 0a 20 20 40 20 3c 69 6e 70 75  nges">.  @ <inpu
4190: 74 20 74 79 70 65 3d 22 73 75 62 6d 69 74 22 20  t type="submit" 
41a0: 6e 61 6d 65 3d 22 73 65 74 75 70 22 20 76 61 6c  name="setup" val
41b0: 75 65 3d 22 43 61 6e 63 65 6c 22 3e 0a 20 20 40  ue="Cancel">.  @
41c0: 20 3c 2f 70 3e 0a 20 20 40 20 3c 2f 66 6f 72 6d   </p>.  @ </form
41d0: 3e 0a 20 20 64 62 5f 65 6e 64 5f 74 72 61 6e 73  >.  db_end_trans
41e0: 61 63 74 69 6f 6e 28 30 29 3b 0a 20 20 73 74 79  action(0);.  sty
41f0: 6c 65 5f 66 6f 6f 74 65 72 28 29 3b 0a 20 20 0a  le_footer();.  .
4200: 7d 0a                                            }.