Fossil SCM

Bug fixes in check-in editing.

drh 2026-05-06 14:58 UTC enhanced-checkin-edit
Commit dbf6ce780d8e41ba8a0219c11d185b309b2e11a6dec25edec4244116919f86de
2 files changed +10 -8 +9 -9
+10 -8
--- src/info.c
+++ src/info.c
@@ -3700,11 +3700,11 @@
37003700
int fPropagateColor; /* True if color propagates before edit */
37013701
int fNewPropagateColor; /* True if color propagates after edit */
37023702
int fHasHidden = 0; /* True if hidden tag already set */
37033703
int fHasClosed = 0; /* True if closed tag already set */
37043704
const char *zChngTime = 0; /* Value of chngtime= query param, if any */
3705
- int bApply = P("apply")!=0 && cgi_csrf_safe(2);
3705
+ int bApply = P("apply")!=0;
37063706
int bPreview = P("preview")!=0;
37073707
char *zUuid;
37083708
Blob comment;
37093709
char *zBranchName = 0;
37103710
Stmt q;
@@ -3744,11 +3744,11 @@
37443744
zNewBranch = PDT("brname","");
37453745
zBranchName = branch_of_rid(rid);
37463746
zCloseFlag = P("close") ? " checked" : "";
37473747
zHideFlag = P("hide") ? " checked" : "";
37483748
blob_zero(&ctrl);
3749
- if( bApply || bPreview ){
3749
+ if( (bApply && cgi_csrf_safe(2)) || bPreview ){
37503750
char *zNow = date_in_standard_format(zChngTime ? zChngTime : "now");
37513751
blob_appendf(&ctrl, "D %s\n", zNow);
37523752
init_newtags();
37533753
if( zNewColorFlag[0]
37543754
&& zNewColor[0]
@@ -3776,15 +3776,17 @@
37763776
if( zHideFlag[0] ) hide_branch();
37773777
if( zCloseFlag[0] ) close_leaf(rid);
37783778
if( zNewTagFlag[0] && zNewTag[0] ) add_tag(zNewTag);
37793779
if( zNewBrFlag[0] && zNewBranch[0] ) change_branch(rid,zNewBranch);
37803780
construct_newtags_artifact(&ctrl, rid, zUuid, 0);
3781
- if( bApply && artifact_is_complete(&ctrl) ){
3782
- db_begin_transaction();
3783
- publish_newtags_artifact(&ctrl, rid);
3784
- db_end_transaction(0);
3785
- blob_reset(&ctrl);
3781
+ if( bApply ){
3782
+ if( artifact_is_complete(&ctrl) ){
3783
+ db_begin_transaction();
3784
+ publish_newtags_artifact(&ctrl, rid);
3785
+ db_end_transaction(0);
3786
+ blob_reset(&ctrl);
3787
+ }
37863788
cgi_redirectf("%R/ci/%S", zUuid);
37873789
}
37883790
}
37893791
blob_zero(&comment);
37903792
blob_append(&comment, zNewComment, -1);
@@ -3945,10 +3947,11 @@
39453947
if( P("preview") ){
39463948
@ <input type="submit" name="apply" value="Apply Changes">
39473949
}
39483950
@ </td></tr>
39493951
@ </table>
3952
+ login_insert_csrf_secret();
39503953
@ </div></form>
39513954
builtin_request_js("ci_edit.js");
39523955
style_finish_page();
39533956
}
39543957
@@ -4220,11 +4223,10 @@
42204223
fossil_free((void *)pzCancelTags);
42214224
}
42224225
if( fHide && !fHasHidden ) hide_branch();
42234226
if( fClose && !fHasClosed ) close_leaf(rid);
42244227
if( zNewBranch && zNewBranch[0] ) change_branch(rid,zNewBranch);
4225
- if( !fDryRun ) db_begin_transaction();
42264228
construct_newtags_artifact(&ctrl, rid, zUuid, zUserOvrd);
42274229
if( fDryRun ){
42284230
fossil_print("%s", blob_str(&ctrl));
42294231
blob_reset(&ctrl);
42304232
}else{
42314233
--- src/info.c
+++ src/info.c
@@ -3700,11 +3700,11 @@
3700 int fPropagateColor; /* True if color propagates before edit */
3701 int fNewPropagateColor; /* True if color propagates after edit */
3702 int fHasHidden = 0; /* True if hidden tag already set */
3703 int fHasClosed = 0; /* True if closed tag already set */
3704 const char *zChngTime = 0; /* Value of chngtime= query param, if any */
3705 int bApply = P("apply")!=0 && cgi_csrf_safe(2);
3706 int bPreview = P("preview")!=0;
3707 char *zUuid;
3708 Blob comment;
3709 char *zBranchName = 0;
3710 Stmt q;
@@ -3744,11 +3744,11 @@
3744 zNewBranch = PDT("brname","");
3745 zBranchName = branch_of_rid(rid);
3746 zCloseFlag = P("close") ? " checked" : "";
3747 zHideFlag = P("hide") ? " checked" : "";
3748 blob_zero(&ctrl);
3749 if( bApply || bPreview ){
3750 char *zNow = date_in_standard_format(zChngTime ? zChngTime : "now");
3751 blob_appendf(&ctrl, "D %s\n", zNow);
3752 init_newtags();
3753 if( zNewColorFlag[0]
3754 && zNewColor[0]
@@ -3776,15 +3776,17 @@
3776 if( zHideFlag[0] ) hide_branch();
3777 if( zCloseFlag[0] ) close_leaf(rid);
3778 if( zNewTagFlag[0] && zNewTag[0] ) add_tag(zNewTag);
3779 if( zNewBrFlag[0] && zNewBranch[0] ) change_branch(rid,zNewBranch);
3780 construct_newtags_artifact(&ctrl, rid, zUuid, 0);
3781 if( bApply && artifact_is_complete(&ctrl) ){
3782 db_begin_transaction();
3783 publish_newtags_artifact(&ctrl, rid);
3784 db_end_transaction(0);
3785 blob_reset(&ctrl);
 
 
3786 cgi_redirectf("%R/ci/%S", zUuid);
3787 }
3788 }
3789 blob_zero(&comment);
3790 blob_append(&comment, zNewComment, -1);
@@ -3945,10 +3947,11 @@
3945 if( P("preview") ){
3946 @ <input type="submit" name="apply" value="Apply Changes">
3947 }
3948 @ </td></tr>
3949 @ </table>
 
3950 @ </div></form>
3951 builtin_request_js("ci_edit.js");
3952 style_finish_page();
3953 }
3954
@@ -4220,11 +4223,10 @@
4220 fossil_free((void *)pzCancelTags);
4221 }
4222 if( fHide && !fHasHidden ) hide_branch();
4223 if( fClose && !fHasClosed ) close_leaf(rid);
4224 if( zNewBranch && zNewBranch[0] ) change_branch(rid,zNewBranch);
4225 if( !fDryRun ) db_begin_transaction();
4226 construct_newtags_artifact(&ctrl, rid, zUuid, zUserOvrd);
4227 if( fDryRun ){
4228 fossil_print("%s", blob_str(&ctrl));
4229 blob_reset(&ctrl);
4230 }else{
4231
--- src/info.c
+++ src/info.c
@@ -3700,11 +3700,11 @@
3700 int fPropagateColor; /* True if color propagates before edit */
3701 int fNewPropagateColor; /* True if color propagates after edit */
3702 int fHasHidden = 0; /* True if hidden tag already set */
3703 int fHasClosed = 0; /* True if closed tag already set */
3704 const char *zChngTime = 0; /* Value of chngtime= query param, if any */
3705 int bApply = P("apply")!=0;
3706 int bPreview = P("preview")!=0;
3707 char *zUuid;
3708 Blob comment;
3709 char *zBranchName = 0;
3710 Stmt q;
@@ -3744,11 +3744,11 @@
3744 zNewBranch = PDT("brname","");
3745 zBranchName = branch_of_rid(rid);
3746 zCloseFlag = P("close") ? " checked" : "";
3747 zHideFlag = P("hide") ? " checked" : "";
3748 blob_zero(&ctrl);
3749 if( (bApply && cgi_csrf_safe(2)) || bPreview ){
3750 char *zNow = date_in_standard_format(zChngTime ? zChngTime : "now");
3751 blob_appendf(&ctrl, "D %s\n", zNow);
3752 init_newtags();
3753 if( zNewColorFlag[0]
3754 && zNewColor[0]
@@ -3776,15 +3776,17 @@
3776 if( zHideFlag[0] ) hide_branch();
3777 if( zCloseFlag[0] ) close_leaf(rid);
3778 if( zNewTagFlag[0] && zNewTag[0] ) add_tag(zNewTag);
3779 if( zNewBrFlag[0] && zNewBranch[0] ) change_branch(rid,zNewBranch);
3780 construct_newtags_artifact(&ctrl, rid, zUuid, 0);
3781 if( bApply ){
3782 if( artifact_is_complete(&ctrl) ){
3783 db_begin_transaction();
3784 publish_newtags_artifact(&ctrl, rid);
3785 db_end_transaction(0);
3786 blob_reset(&ctrl);
3787 }
3788 cgi_redirectf("%R/ci/%S", zUuid);
3789 }
3790 }
3791 blob_zero(&comment);
3792 blob_append(&comment, zNewComment, -1);
@@ -3945,10 +3947,11 @@
3947 if( P("preview") ){
3948 @ <input type="submit" name="apply" value="Apply Changes">
3949 }
3950 @ </td></tr>
3951 @ </table>
3952 login_insert_csrf_secret();
3953 @ </div></form>
3954 builtin_request_js("ci_edit.js");
3955 style_finish_page();
3956 }
3957
@@ -4220,11 +4223,10 @@
4223 fossil_free((void *)pzCancelTags);
4224 }
4225 if( fHide && !fHasHidden ) hide_branch();
4226 if( fClose && !fHasClosed ) close_leaf(rid);
4227 if( zNewBranch && zNewBranch[0] ) change_branch(rid,zNewBranch);
 
4228 construct_newtags_artifact(&ctrl, rid, zUuid, zUserOvrd);
4229 if( fDryRun ){
4230 fossil_print("%s", blob_str(&ctrl));
4231 blob_reset(&ctrl);
4232 }else{
4233
+9 -9
--- src/timeline.c
+++ src/timeline.c
@@ -459,11 +459,11 @@
459459
int commentColumn = 3; /* Column containing comment text */
460460
int modPending; /* Pending moderation */
461461
char *zDateLink; /* URL for the link on the timestamp */
462462
int drawDetailEllipsis; /* True to show ellipsis in place of detail */
463463
int gidx = 0; /* Graph row identifier */
464
- int isSelectedOrCurrent = 0; /* True if current row is selected */
464
+ int omitCommentColor = 0; /* True to skip added color to comments */
465465
const char *zExtraClass = "";
466466
char zTime[20];
467467
468468
if( zDate==0 ){
469469
zDate = "YYYY-MM-DD HH:MM:SS"; /* Something wrong with the repo */
@@ -532,14 +532,14 @@
532532
zTime[0] = 0;
533533
}
534534
pendingEndTr = 1;
535535
if( rid==pXtra->selectedRid ){
536536
@ <tr class="timelineSelected">
537
- isSelectedOrCurrent = 1;
537
+ omitCommentColor = 1;
538538
}else if( rid==pXtra->secondRid ){
539539
@ <tr class="timelineSelected timelineSecondary">
540
- isSelectedOrCurrent = 1;
540
+ omitCommentColor = 1;
541541
}else if( rid==vid ){
542542
@ <tr class="timelineCurrent">
543543
}else {
544544
@ <tr>
545545
}
@@ -658,14 +658,14 @@
658658
gidx = graph_add_row(pGraph, rid, -1, 0, 0, zBr, zBgClr, zUuid, 0);
659659
@ <div id="m%d(gidx)" class="tl-nodemark"></div>
660660
}
661661
fossil_free(zBr);
662662
@</td>
663
- if( !isSelectedOrCurrent ){
664
- @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)" id='mc%d(gidx)'>
665
- }else{
663
+ if( omitCommentColor ){
666664
@ <td class="timeline%s(zStyle)Cell%s(zExtraClass)">
665
+ }else{
666
+ @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)" id='mc%d(gidx)'>
667667
}
668668
if( pGraph ){
669669
if( zType[0]=='e' ){
670670
@ <b>Note:</b>
671671
}else if( zType[0]!='c' ){
@@ -787,14 +787,14 @@
787787
if( drawDetailEllipsis ){
788788
@ <span class='timelineEllipsis' id='ellipsis-%d(rid)' \
789789
@ data-id='%d(rid)'>...</span>
790790
}
791791
if( tmFlags & TIMELINE_COLUMNAR ){
792
- if( !isSelectedOrCurrent ){
793
- @ <td class="timelineDetailCell%s(zExtraClass)" id='md%d(gidx)'>
794
- }else{
792
+ if( omitCommentColor ){
795793
@ <td class="timelineDetailCell%s(zExtraClass)">
794
+ }else{
795
+ @ <td class="timelineDetailCell%s(zExtraClass)" id='md%d(gidx)'>
796796
}
797797
}
798798
if( tmFlags & TIMELINE_COMPACT ){
799799
cgi_printf("<span class='clutter' id='detail-%d'>",rid);
800800
}
801801
--- src/timeline.c
+++ src/timeline.c
@@ -459,11 +459,11 @@
459 int commentColumn = 3; /* Column containing comment text */
460 int modPending; /* Pending moderation */
461 char *zDateLink; /* URL for the link on the timestamp */
462 int drawDetailEllipsis; /* True to show ellipsis in place of detail */
463 int gidx = 0; /* Graph row identifier */
464 int isSelectedOrCurrent = 0; /* True if current row is selected */
465 const char *zExtraClass = "";
466 char zTime[20];
467
468 if( zDate==0 ){
469 zDate = "YYYY-MM-DD HH:MM:SS"; /* Something wrong with the repo */
@@ -532,14 +532,14 @@
532 zTime[0] = 0;
533 }
534 pendingEndTr = 1;
535 if( rid==pXtra->selectedRid ){
536 @ <tr class="timelineSelected">
537 isSelectedOrCurrent = 1;
538 }else if( rid==pXtra->secondRid ){
539 @ <tr class="timelineSelected timelineSecondary">
540 isSelectedOrCurrent = 1;
541 }else if( rid==vid ){
542 @ <tr class="timelineCurrent">
543 }else {
544 @ <tr>
545 }
@@ -658,14 +658,14 @@
658 gidx = graph_add_row(pGraph, rid, -1, 0, 0, zBr, zBgClr, zUuid, 0);
659 @ <div id="m%d(gidx)" class="tl-nodemark"></div>
660 }
661 fossil_free(zBr);
662 @</td>
663 if( !isSelectedOrCurrent ){
664 @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)" id='mc%d(gidx)'>
665 }else{
666 @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)">
 
 
667 }
668 if( pGraph ){
669 if( zType[0]=='e' ){
670 @ <b>Note:</b>
671 }else if( zType[0]!='c' ){
@@ -787,14 +787,14 @@
787 if( drawDetailEllipsis ){
788 @ <span class='timelineEllipsis' id='ellipsis-%d(rid)' \
789 @ data-id='%d(rid)'>...</span>
790 }
791 if( tmFlags & TIMELINE_COLUMNAR ){
792 if( !isSelectedOrCurrent ){
793 @ <td class="timelineDetailCell%s(zExtraClass)" id='md%d(gidx)'>
794 }else{
795 @ <td class="timelineDetailCell%s(zExtraClass)">
 
 
796 }
797 }
798 if( tmFlags & TIMELINE_COMPACT ){
799 cgi_printf("<span class='clutter' id='detail-%d'>",rid);
800 }
801
--- src/timeline.c
+++ src/timeline.c
@@ -459,11 +459,11 @@
459 int commentColumn = 3; /* Column containing comment text */
460 int modPending; /* Pending moderation */
461 char *zDateLink; /* URL for the link on the timestamp */
462 int drawDetailEllipsis; /* True to show ellipsis in place of detail */
463 int gidx = 0; /* Graph row identifier */
464 int omitCommentColor = 0; /* True to skip added color to comments */
465 const char *zExtraClass = "";
466 char zTime[20];
467
468 if( zDate==0 ){
469 zDate = "YYYY-MM-DD HH:MM:SS"; /* Something wrong with the repo */
@@ -532,14 +532,14 @@
532 zTime[0] = 0;
533 }
534 pendingEndTr = 1;
535 if( rid==pXtra->selectedRid ){
536 @ <tr class="timelineSelected">
537 omitCommentColor = 1;
538 }else if( rid==pXtra->secondRid ){
539 @ <tr class="timelineSelected timelineSecondary">
540 omitCommentColor = 1;
541 }else if( rid==vid ){
542 @ <tr class="timelineCurrent">
543 }else {
544 @ <tr>
545 }
@@ -658,14 +658,14 @@
658 gidx = graph_add_row(pGraph, rid, -1, 0, 0, zBr, zBgClr, zUuid, 0);
659 @ <div id="m%d(gidx)" class="tl-nodemark"></div>
660 }
661 fossil_free(zBr);
662 @</td>
663 if( omitCommentColor ){
 
 
664 @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)">
665 }else{
666 @ <td class="timeline%s(zStyle)Cell%s(zExtraClass)" id='mc%d(gidx)'>
667 }
668 if( pGraph ){
669 if( zType[0]=='e' ){
670 @ <b>Note:</b>
671 }else if( zType[0]!='c' ){
@@ -787,14 +787,14 @@
787 if( drawDetailEllipsis ){
788 @ <span class='timelineEllipsis' id='ellipsis-%d(rid)' \
789 @ data-id='%d(rid)'>...</span>
790 }
791 if( tmFlags & TIMELINE_COLUMNAR ){
792 if( omitCommentColor ){
 
 
793 @ <td class="timelineDetailCell%s(zExtraClass)">
794 }else{
795 @ <td class="timelineDetailCell%s(zExtraClass)" id='md%d(gidx)'>
796 }
797 }
798 if( tmFlags & TIMELINE_COMPACT ){
799 cgi_printf("<span class='clutter' id='detail-%d'>",rid);
800 }
801

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button