Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch tkt-improvements Excluding Merge-Ins
This is equivalent to a diff from f04b61f7e1 to 3e16be4e02
2025-04-17
| ||
11:00 | different improvements to the ticket system as described in forum post 4756d97a64 ... (check-in: fab9f00477 user: jkosche tags: trunk) | |
2025-04-13
| ||
12:39 | better quoting to make intent clearer, thanks to forum:/forumpost/cf724a9bea ... (Closed-Leaf check-in: 3e16be4e02 user: jkosche tags: tkt-improvements) | |
12:15 | better regexp to match the hyphen, thanks to forum:/forumpost/81529972df ... (check-in: ac848122fa user: jkosche tags: tkt-improvements) | |
2025-03-30
| ||
18:40 | Update the help text for "fossil branch new" to make it clear that the preferred idiom for branch creation in Fossil is to use the --branch option on the "fossil commit" command. ... (check-in: 1869b58580 user: drh tags: trunk) | |
15:54 | improve navigation of tktsetup-subpages ... (check-in: f5619ef3e0 user: jkosche tags: tkt-improvements) | |
11:18 | Replaced the mention of "fossil branch new" in the Quick Start doc with a link to the section of the gitusers doc which explains why this is not the recommended way of working with Fossil. Both options remain documented, but now we bring Git expats to the place where many of their _other_ questions are most likely to be answered. ... (check-in: f04b61f7e1 user: wyoung tags: trunk) | |
11:08 | Expanded the "Starting A New Project" section of the Quick Start doc to cover the next few common steps. Also updated the "fossil version" example above it to the current release version to keep the doc from looking *too* outdated. ... (check-in: 4f42caee47 user: wyoung tags: trunk) | |
Changes to src/report.c.
︙ | ︙ | |||
581 582 583 584 585 586 587 | rn = 0; zTitle = mprintf("Copy Of %s", zTitle); zOwner = g.zLogin; } } if( zOwner==0 ) zOwner = g.zLogin; style_submenu_element("Cancel", "%R/reportlist"); | < < < | 581 582 583 584 585 586 587 588 589 590 591 592 593 594 | rn = 0; zTitle = mprintf("Copy Of %s", zTitle); zOwner = g.zLogin; } } if( zOwner==0 ) zOwner = g.zLogin; style_submenu_element("Cancel", "%R/reportlist"); style_header("%s", rn>0 ? "Edit Report Format":"Create New Report Format"); if( zErr ){ @ <blockquote class="reportError">%h(zErr)</blockquote> } @ <form action="rptedit" method="post"><div> @ <input type="hidden" name="rn" value="%d(rn)"> @ <p>Report Title:<br> |
︙ | ︙ | |||
895 896 897 898 899 900 901 | } ++pState->nCount; /* Output the separator above each entry in a table which has multiple lines ** per database entry. */ if( pState->iNewRow>=0 ){ | | > | 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 | } ++pState->nCount; /* Output the separator above each entry in a table which has multiple lines ** per database entry. */ if( pState->iNewRow>=0 ){ @ <tr><td colspan="%d(pState->nCol)" style="padding:0px"> @ <hr style="margin:0px"></td></tr> } /* Output the data for this entry from the database */ zBg = pState->iBg>=0 ? azArg[pState->iBg] : 0; if( zBg==0 ) zBg = "white"; @ <tr style="background-color:%h(zBg)"> |
︙ | ︙ |
Changes to src/tkt.c.
︙ | ︙ | |||
188 189 190 191 192 193 194 | */ static void initializeVariablesFromDb(void){ const char *zName; Stmt q; int i, n, size, j; zName = PD("name","-none-"); | | > > > > > | 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | */ static void initializeVariablesFromDb(void){ const char *zName; Stmt q; int i, n, size, j; zName = PD("name","-none-"); db_prepare(&q, "SELECT datetime(tkt_mtime,toLocal()) AS tkt_datetime, " "datetime(tkt_ctime,toLocal()) AS tkt_datetime_creation, " "julianday('now') - tkt_mtime, " "julianday('now') - tkt_ctime, *" " FROM ticket WHERE tkt_uuid GLOB '%q*'", zName); if( db_step(&q)==SQLITE_ROW ){ n = db_column_count(&q); for(i=0; i<n; i++){ const char *zVal = db_column_text(&q, i); const char *zName = db_column_name(&q, i); char *zRevealed = 0; if( zVal==0 ){ zVal = ""; }else if( strncmp(zName, "private_", 8)==0 ){ zVal = zRevealed = db_reveal(zVal); } if( (j = fieldId(zName))>=0 ){ aField[j].zValue = mprintf("%s", zVal); }else if( memcmp(zName, "tkt_", 4)==0 && Th_Fetch(zName, &size)==0 ){ Th_Store(zName, zVal); } free(zRevealed); } Th_Store("tkt_mage", human_readable_age(db_column_double(&q, 2))); Th_Store("tkt_cage", human_readable_age(db_column_double(&q, 3))); } db_finalize(&q); for(i=0; i<nField; i++){ if( Th_Fetch(aField[i].zName, &size)==0 ){ Th_Store(aField[i].zName, aField[i].zValue); } } |
︙ | ︙ | |||
767 768 769 770 771 772 773 | if( !showTimeline && g.perm.Hyperlink ){ style_submenu_element("Timeline", "%R/info/%T", zUuid); } zFullName = db_text(0, "SELECT tkt_uuid FROM ticket" " WHERE tkt_uuid GLOB '%q*'", zUuid); if( g.perm.WrWiki && g.perm.WrTkt ){ | | > | 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 | if( !showTimeline && g.perm.Hyperlink ){ style_submenu_element("Timeline", "%R/info/%T", zUuid); } zFullName = db_text(0, "SELECT tkt_uuid FROM ticket" " WHERE tkt_uuid GLOB '%q*'", zUuid); if( g.perm.WrWiki && g.perm.WrTkt ){ style_submenu_element("Edit Description", "%R/wikiedit?name=ticket/%T", zFullName); } if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW<br>\n", -1); ticket_init(); initializeVariablesFromCGI(); getAllTicketFields(); initializeVariablesFromDb(); zScript = ticket_viewpage_code(); |
︙ | ︙ |
Changes to src/tktsetup.c.
︙ | ︙ | |||
123 124 125 126 127 128 129 | login_check_credentials(); if( !g.perm.Setup ){ login_needed(0); return; } style_set_current_feature("tktsetup"); | | | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | login_check_credentials(); if( !g.perm.Setup ){ login_needed(0); return; } style_set_current_feature("tktsetup"); if( P("setup") ){ cgi_redirect("tktsetup"); } isSubmit = P("submit")!=0; z = P("x"); if( z==0 ){ z = db_get(zDbField, zDfltValue); } |
︙ | ︙ | |||
162 163 164 165 166 167 168 169 170 171 172 173 174 175 | @ </p></blockquote> @ </div></form> @ <hr> @ <h2>Default %s(zTitle)</h2> @ <blockquote><pre> @ %h(zDfltValue) @ </pre></blockquote> style_finish_page(); } /* ** WEBPAGE: tktsetup_tab ** Administrative page for defining the "ticket" table used ** to hold ticket information. | > | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | @ </p></blockquote> @ </div></form> @ <hr> @ <h2>Default %s(zTitle)</h2> @ <blockquote><pre> @ %h(zDfltValue) @ </pre></blockquote> style_submenu_element("Back", "%R/tktsetup"); style_finish_page(); } /* ** WEBPAGE: tktsetup_tab ** Administrative page for defining the "ticket" table used ** to hold ticket information. |
︙ | ︙ | |||
491 492 493 494 495 496 497 498 499 500 | @ $<resolution> @ </td></tr> @ <tr><td class="tktDspLabel">Last Modified:</td><td class="tktDspValue"> @ <th1> @ if {[info exists tkt_datetime]} { @ html $tkt_datetime @ } @ </th1> @ </td> @ <th1>enable_output [hascap e]</th1> | > > > > > > > > > > > > > > | > < > > > > > > > > > > > > > > > > > > | > > > > > > > > | 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 | @ $<resolution> @ </td></tr> @ <tr><td class="tktDspLabel">Last Modified:</td><td class="tktDspValue"> @ <th1> @ if {[info exists tkt_datetime]} { @ html $tkt_datetime @ } @ if {[info exists tkt_mage]} { @ html "<br>$tkt_mage" @ } @ </th1> @ </td> @ <td class="tktDspLabel">Created:</td><td class="tktDspValue"> @ <th1> @ if {[info exists tkt_datetime_creation]} { @ html $tkt_datetime_creation @ } @ if {[info exists tkt_cage]} { @ html "<br>$tkt_cage" @ } @ </th1> @ </td></tr> @ <th1>enable_output [hascap e]</th1> @ <tr> @ <td class="tktDspLabel">Contact:</td><td class="tktDspValue" colspan="3"> @ $<private_contact> @ </td> @ </tr> @ <th1>enable_output 1</th1> @ <tr><td class="tktDspLabel">Version Found In:</td> @ <td colspan="3" valign="top" class="tktDspValue"> @ <th1> @ set versionlink "" @ set urlfoundin [httpize $foundin] @ set tagpattern {^[-0-9A-Za-z_\\.]+$} @ if [regexp $tagpattern $foundin] { @ query {SELECT count(*) AS match FROM tag @ WHERE tagname=concat('sym-',$foundin)} { @ if {$match} {set versionlink "/timeline?t=$urlfoundin"} @ } @ } @ set hashpattern {^[0-9a-f]+$} @ if [regexp $hashpattern $foundin] { @ set pattern $foundin* @ query {SELECT count(*) AS match FROM blob WHERE uuid GLOB $pattern} { @ if {$match} {set versionlink "/info/$urlfoundin"} @ } @ } @ if {$versionlink eq ""} { @ puts $foundin @ } else { @ html "<a href=\"" @ puts $versionlink @ html "\">" @ puts $foundin @ html "</a>" @ } @ </th1> @ </td></tr> @ </table> @ @ <th1> @ wiki_assoc "ticket" $tkt_uuid @ </th1> @ |
︙ | ︙ | |||
535 536 537 538 539 540 541 | @ mimetype as xmimetype, icomment AS xcomment, @ username AS xusername @ FROM ticketchng @ WHERE tkt_id=$tkt_id AND length(icomment)>0} { @ if {$seenRow} { @ html "<hr>\n" @ } else { | | > | 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 | @ mimetype as xmimetype, icomment AS xcomment, @ username AS xusername @ FROM ticketchng @ WHERE tkt_id=$tkt_id AND length(icomment)>0} { @ if {$seenRow} { @ html "<hr>\n" @ } else { @ html "<tr><td class='tktDspLabel' style='text-align:left'>\n" @ html "User Comments:</td></tr>\n" @ html "<tr><td colspan='5' class='tktDspValue'>\n" @ set seenRow 1 @ } @ html "<span class='tktDspCommenter'>" @ html "[htmlize $xlogin]" @ if {$xlogin ne $xusername && [string length $xusername]>0} { @ html " (claiming to be [htmlize $xusername])" |
︙ | ︙ | |||
709 710 711 712 713 714 715 716 717 718 719 720 721 722 | @ <tr> @ <td align="right"> @ <input type="submit" name="cancel" value="Cancel"> @ </td> @ <td>Abandon this edit</td> @ </tr> @ @ </table> ; /* ** Return the code used to generate the edit ticket page */ const char *ticket_editpage_code(void){ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 | @ <tr> @ <td align="right"> @ <input type="submit" name="cancel" value="Cancel"> @ </td> @ <td>Abandon this edit</td> @ </tr> @ @ <th1> @ set seenRow 0 @ set alwaysPlaintext [info exists plaintext] @ query {SELECT datetime(tkt_mtime) AS xdate, login AS xlogin, @ mimetype as xmimetype, icomment AS xcomment, @ username AS xusername @ FROM ticketchng @ WHERE tkt_id=$tkt_id AND length(icomment)>0} { @ if {$seenRow} { @ html "<hr>\n" @ } else { @ html "<tr><td colspan='2'><hr></td></tr>\n" @ html "<tr><td colspan='2' class='tktDspLabel' style='text-align:left'>\n" @ html "Previous User Comments:</td></tr>\n" @ html "<tr><td colspan='2' class='tktDspValue'>\n" @ set seenRow 1 @ } @ html "<span class='tktDspCommenter'>" @ html "[htmlize $xlogin]" @ if {$xlogin ne $xusername && [string length $xusername]>0} { @ html " (claiming to be [htmlize $xusername])" @ } @ html " added on $xdate:" @ html "</span>\n" @ if {$alwaysPlaintext || $xmimetype eq "text/plain"} { @ set r [randhex] @ if {$xmimetype ne "text/plain"} {html "([htmlize $xmimetype])\n"} @ wiki "<verbatim-$r>[string trimright $xcomment]</verbatim-$r>\n" @ } elseif {$xmimetype eq "text/x-fossil-wiki"} { @ wiki "<p>\n[string trimright $xcomment]\n</p>\n" @ } elseif {$xmimetype eq "text/x-markdown"} { @ html [lindex [markdown $xcomment] 1] @ } elseif {$xmimetype eq "text/html"} { @ wiki "<p><nowiki>\n[string trimright $xcomment]\n</nowiki>\n" @ } else { @ set r [randhex] @ wiki "<verbatim-$r links>[string trimright $xcomment]</verbatim-$r>\n" @ } @ } @ if {$seenRow} {html "</td></tr>\n"} @ </th1> @ @ </table> ; /* ** Return the code used to generate the edit ticket page */ const char *ticket_editpage_code(void){ |
︙ | ︙ | |||
807 808 809 810 811 812 813 | @ CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc' @ WHEN status='Review' THEN '#e8e8e8' @ WHEN status='Fixed' THEN '#cfe8bd' @ WHEN status='Tested' THEN '#bde5d6' @ WHEN status='Deferred' THEN '#cacae5' @ ELSE '#c8c8c8' END AS 'bgcolor', @ substr(tkt_uuid,1,10) AS '#', | > | | 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 | @ CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc' @ WHEN status='Review' THEN '#e8e8e8' @ WHEN status='Fixed' THEN '#cfe8bd' @ WHEN status='Tested' THEN '#bde5d6' @ WHEN status='Deferred' THEN '#cacae5' @ ELSE '#c8c8c8' END AS 'bgcolor', @ substr(tkt_uuid,1,10) AS '#', @ datetime(tkt_ctime) AS 'created', @ datetime(tkt_mtime) AS 'modified', @ type, @ status, @ subsystem, @ title, @ comment AS '_comments' @ FROM ticket ; |
︙ | ︙ | |||
941 942 943 944 945 946 947 948 949 950 | @ <hr> @ <p> @ <input type="submit" name="submit" value="Apply Changes"> @ <input type="submit" name="setup" value="Cancel"> @ </p> @ </div></form> db_end_transaction(0); style_finish_page(); } | > | 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 | @ <hr> @ <p> @ <input type="submit" name="submit" value="Apply Changes"> @ <input type="submit" name="setup" value="Cancel"> @ </p> @ </div></form> db_end_transaction(0); style_submenu_element("Back", "%R/tktsetup"); style_finish_page(); } |