Fossil

Check-in [f17a5198]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Change the /info page Overview section to have "Wiki:" links for wiki display, instead of "Edit Wiki:" links. Users who want to edit, can do the additional "Edit" click from the wiki page. Also have /info honor the nowiki query parameter.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | describe-objects-using-wiki
Files: files | file ages | folders
SHA3-256: f17a5198f55845b67ce0a965db1e6109021fa50d4c6de0d656b4d1473e66e5d1
User & Date: drh 2018-12-31 02:13:59
Wiki:describe-objects-using-wiki
Context
2018-12-31
14:33
Do not allow edits to wiki pages associated with branches, checkins, or tags for users who do not also have checkin privileges. Closed-Leaf check-in: 60e8a08f user: drh tags: describe-objects-using-wiki
02:13
Change the /info page Overview section to have "Wiki:" links for wiki display, instead of "Edit Wiki:" links. Users who want to edit, can do the additional "Edit" click from the wiki page. Also have /info honor the nowiki query parameter. check-in: f17a5198 user: drh tags: describe-objects-using-wiki
00:00
Better titles for the /wiki page for associated wiki. check-in: 57443202 user: drh tags: describe-objects-using-wiki
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/info.c.

689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
...
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
...
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
...
834
835
836
837
838
839
840
841
842
843
844
845
846

847

848
849
850
851
852
853
854
    char *zEUser, *zEComment;
    const char *zUser;
    const char *zOrigUser;
    const char *zComment;
    const char *zDate;
    const char *zOrigDate;
    const char *zBrName;
    Blob wiki_edit_links = BLOB_INITIALIZER;

    style_header("Check-in [%S]", zUuid);
    login_anonymous_available();
    zEUser = db_text(0,
                   "SELECT value FROM tagxref"
                   " WHERE tagid=%d AND rid=%d AND tagtype>0",
                    TAG_USER, rid);
................................................................................
                   " WHERE rid=%d AND tagtype>0 "
                   "   AND tag.tagid=tagxref.tagid "
                   "   AND +tag.tagname GLOB 'sym-*'", rid);
    while( db_step(&q2)==SQLITE_ROW ){
      const char *zTagName = db_column_text(&q2, 0);
      if( fossil_strcmp(zTagName,zBrName)==0 ){
        @  | %z(href("%R/timeline?r=%T&unhide",zTagName))%h(zTagName)</a>
        blob_appendf(&wiki_edit_links, " | %z%h</a>",
            href("%R/wikiedit?name=branch/%h",zTagName), zTagName);
      }else{
        @  | %z(href("%R/timeline?t=%T&unhide",zTagName))%h(zTagName)</a>
        blob_appendf(&wiki_edit_links, " | %z%h</a>",
            href("%R/wikiedit?name=tag/%h",zTagName), zTagName);
      }
    }
    db_finalize(&q2);
    @ </td></tr>

    @ <tr><th>Files:</th>
    @   <td>
................................................................................
        const char *zDate = db_column_text(&q2, 2);
        if( zUser==0 || zUser[0]==0 ) zUser = "unknown";
        @ <tr><th>Received&nbsp;From:</th>
        @ <td>%h(zUser) @ %h(zIpAddr) on %s(zDate)</td></tr>
      }
      db_finalize(&q2);
    }
    if( g.perm.WrWiki && db_get_boolean("wiki-about",1) ){
      @ <tr><th>Edit&nbsp;Wiki:</th>
      @ <td>%z(href("%R/wikiedit?name=checkin/%s",zUuid))this checkin</a>
      @ %b(&wiki_edit_links)</td>
    }
    if( g.perm.Hyperlink ){
      @ <tr><th>Other&nbsp;Links:</th>
      @   <td>
      @   %z(href("%R/artifact/%!S",zUuid))manifest</a>
      @ | %z(href("%R/ci_tags/%!S",zUuid))tags</a>
      if( g.perm.Admin ){
................................................................................
      if( g.anon.Write ){
        @   | %z(href("%R/ci_edit?r=%!S",zUuid))edit</a>
      }
      @   </td>
      @ </tr>
    }
    @ </table>
    blob_reset(&wiki_edit_links);
  }else{
    style_header("Check-in Information");
    login_anonymous_available();
  }
  db_finalize(&q1);

  wiki_render_associated("checkin", zUuid, 0);

  render_backlink_graph(zUuid, "<div class=\"section\">References</div>\n");
  @ <div class="section">Context</div>
  render_checkin_context(rid, 0);
  @ <div class="section">Changes</div>
  @ <div class="sectionmenu">
  diffFlags = construct_diff_flags(diffType);
  zW = (diffFlags&DIFF_IGNORE_ALLWS)?"&w":"";







|







 







|
|


|
|







 







|
|
|
|







 







|





>
|
>







689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
...
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
...
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
...
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
    char *zEUser, *zEComment;
    const char *zUser;
    const char *zOrigUser;
    const char *zComment;
    const char *zDate;
    const char *zOrigDate;
    const char *zBrName;
    Blob wiki_links = BLOB_INITIALIZER;

    style_header("Check-in [%S]", zUuid);
    login_anonymous_available();
    zEUser = db_text(0,
                   "SELECT value FROM tagxref"
                   " WHERE tagid=%d AND rid=%d AND tagtype>0",
                    TAG_USER, rid);
................................................................................
                   " WHERE rid=%d AND tagtype>0 "
                   "   AND tag.tagid=tagxref.tagid "
                   "   AND +tag.tagname GLOB 'sym-*'", rid);
    while( db_step(&q2)==SQLITE_ROW ){
      const char *zTagName = db_column_text(&q2, 0);
      if( fossil_strcmp(zTagName,zBrName)==0 ){
        @  | %z(href("%R/timeline?r=%T&unhide",zTagName))%h(zTagName)</a>
        blob_appendf(&wiki_links, " | %z%h</a>",
            href("%R/wiki?name=branch/%h",zTagName), zTagName);
      }else{
        @  | %z(href("%R/timeline?t=%T&unhide",zTagName))%h(zTagName)</a>
        blob_appendf(&wiki_links, " | %z%h</a>",
            href("%R/wiki?name=tag/%h",zTagName), zTagName);
      }
    }
    db_finalize(&q2);
    @ </td></tr>

    @ <tr><th>Files:</th>
    @   <td>
................................................................................
        const char *zDate = db_column_text(&q2, 2);
        if( zUser==0 || zUser[0]==0 ) zUser = "unknown";
        @ <tr><th>Received&nbsp;From:</th>
        @ <td>%h(zUser) @ %h(zIpAddr) on %s(zDate)</td></tr>
      }
      db_finalize(&q2);
    }
    if( g.perm.RdWiki && db_get_boolean("wiki-about",1) ){
      @ <tr><th>Wiki:</th>
      @ <td>%z(href("%R/wiki?name=checkin/%s",zUuid))this checkin</a>
      @ %b(&wiki_links)</td>
    }
    if( g.perm.Hyperlink ){
      @ <tr><th>Other&nbsp;Links:</th>
      @   <td>
      @   %z(href("%R/artifact/%!S",zUuid))manifest</a>
      @ | %z(href("%R/ci_tags/%!S",zUuid))tags</a>
      if( g.perm.Admin ){
................................................................................
      if( g.anon.Write ){
        @   | %z(href("%R/ci_edit?r=%!S",zUuid))edit</a>
      }
      @   </td>
      @ </tr>
    }
    @ </table>
    blob_reset(&wiki_links);
  }else{
    style_header("Check-in Information");
    login_anonymous_available();
  }
  db_finalize(&q1);
  if( !PB("nowiki") ){
    wiki_render_associated("checkin", zUuid, 0);
  }
  render_backlink_graph(zUuid, "<div class=\"section\">References</div>\n");
  @ <div class="section">Context</div>
  render_checkin_context(rid, 0);
  @ <div class="section">Changes</div>
  @ <div class="sectionmenu">
  diffFlags = construct_diff_flags(diffType);
  zW = (diffFlags&DIFF_IGNORE_ALLWS)?"&w":"";