Index: src/branch.c ================================================================== --- src/branch.c +++ src/branch.c @@ -229,11 +229,12 @@ }else{ style_submenu_element("Closed","Closed","brlist?closed"); } login_anonymous_available(); compute_leaves(0, 1); - style_sidebox_begin("Nomenclature:", "33%"); + @
+ @ Nomenclature: @
    @
  1. An open branch is a branch that has one or @ more open leaves. @ The presence of open leaves presumably means @ that the branch is still being extended with new check-ins.
  2. @@ -240,11 +241,11 @@ @
  3. A closed branch is a branch with only @ closed leaves. @ Closed branches are fixed and do not change (unless they are first @ reopened)
  4. @
- style_sidebox_end(); + @
cnt = 0; if( !showClosed ){ db_prepare(&q, "SELECT DISTINCT value FROM tagxref" Index: src/descendants.c ================================================================== --- src/descendants.c +++ src/descendants.c @@ -316,19 +316,20 @@ style_submenu_element("Open", "Open", "leaves"); } style_header("Leaves"); login_anonymous_available(); compute_leaves(0, showAll ? 0 : showClosed ? 2 : 1); - style_sidebox_begin("Nomenclature:", "33%"); + @
+ @ Nomenclature: @
    @
  1. A leaf is a check-in with no descendants.
  2. @
  3. An open leaf is a leaf that does not have a "closed" tag @ and is thus assumed to still be in use.
  4. @
  5. A closed leaf has a "closed" tag and is thus assumed to @ be historical and no longer in active use.
  6. @
- style_sidebox_end(); + @
if( showAll ){ @

All leaves, both open and closed:

}else if( showClosed ){ @

Closed leaves:

Index: src/login.c ================================================================== --- src/login.c +++ src/login.c @@ -596,11 +596,11 @@ if( !g.okHistory && db_exists("SELECT 1 FROM user" " WHERE login='anonymous'" " AND cap LIKE '%%h%%'") ){ const char *zUrl = PD("REQUEST_URI", "index"); - @

Many hyperlinks are disabled.
+ @

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

} } Index: src/setup.c ================================================================== --- src/setup.c +++ src/setup.c @@ -909,10 +909,18 @@ @ of CSS files can be seen on the skins page. @ See also the header and @ footer editing screens. @
   @ %h(zDefaultCSS)
+  @ /* internal page layout */
+  @ %h(zTdTimelineTable)
+  @ %h(zTdTimelineTimeStampCell)
+  @ %h(zTdTimelineOmitted)
+  @ %h(zTdTimelineComment)
+  @ %h(zDivTimelineLeafDsp)
+  @ %h(zDivNomenclatureSidebox)
+  @ %h(zSpanDisabledLinks)
   @ 
style_footer(); db_end_transaction(0); } Index: src/style.c ================================================================== --- src/style.c +++ src/style.c @@ -337,10 +337,11 @@ @ padding: 1px 1px 1px 1px; @ font-size: 1.2em; @ font-weight: bold; @ background-color: #558195; @ color: white; +@ white-space: nowrap; @ } @ @ /* The "Date" that occurs on the left hand side of timelines */ @ div.divider { @ background: #a1c4d4; @@ -379,10 +380,62 @@ @ vertical-align: top; @ text-align: right; @ padding: 0.2ex 2ex; @ } ; +const char zTdTimelineTable[] = +@ /* The time column in timeline tables */ +@ table.timelineTable { +@ cellspacing: 0; +@ border: 0; +@ cellpadding: 0; +@} +; +const char zTdTimelineTimeStampCell[] = +@ /* The time column in timeline tables */ +@ td.timelineTimeStampCell { +@ valign: top; +@ text-align: right; +@} +; +const char zTdTimelineOmitted[] = +@ /* The omitted line in timeline tables */ +@ td.timelineOmitted { +@ font-size: small; +@ font-style: italic; +@ } +; +const char zTdTimelineComment[] = +@ /* The comment cell in timeline tables */ +@ td.timelineComment { +@ valign: top; +@ text-align: left; +@ } +; +const char zDivTimelineLeafDsp[] = +@ /* The leaf description in timeline tables */ +@ div.timelineLeafDsp { +@ font-weight: bold; +@ display: inline; +@ } +; +const char zDivNomenclatureSidebox[] = +@ /* The nomenclature sidebox for branches,.. */ +@ div.nomenclatureSidebox { +@ float: right; +@ width: 33%; +@ border-width: medium; +@ border-style: double; +@ margin: 10; +@ } +; +const char zSpanDisabledLinks[] = +@ /* hyperlinks disabled text */ +@ span.disabledLinks { +@ color: red; +@ } +; /* ** WEBPAGE: style.css */ void page_style_css(void){ @@ -389,10 +442,26 @@ char *zCSS = 0; cgi_set_content_type("text/css"); zCSS = db_get("css",(char*)zDefaultCSS); cgi_append_content(zCSS, -1); + cgi_append_content("\n", -1); + /* append internal classes, if not already in style sheet */ + if (!strstr(zCSS,"timelineTable")) + cgi_append_content(zTdTimelineTable,-1); + if (!strstr(zCSS,"timelineTimeStampCell")) + cgi_append_content(zTdTimelineTimeStampCell,-1); + if (!strstr(zCSS,"timelineOmitted")) + cgi_append_content(zTdTimelineOmitted,-1); + if (!strstr(zCSS,"timelineComment")) + cgi_append_content(zTdTimelineComment,-1); + if (!strstr(zCSS,"timelineLeafDsp")) + cgi_append_content(zDivTimelineLeafDsp,-1); + if (!strstr(zCSS,"nomenclatureSidebox")) + cgi_append_content(zDivNomenclatureSidebox,-1); + if (!strstr(zCSS,"disabledLinks")) + cgi_append_content(zSpanDisabledLinks,-1); g.isConst = 1; } /* ** WEBPAGE: test_env Index: src/timeline.c ================================================================== --- src/timeline.c +++ src/timeline.c @@ -192,11 +192,11 @@ if( tmFlags & TIMELINE_GRAPH ){ pGraph = graph_init(); @
} - @ + @
blob_zero(&comment); while( db_step(pQuery)==SQLITE_ROW ){ int rid = db_column_int(pQuery, 0); const char *zUuid = db_column_text(pQuery, 1); int isLeaf = db_column_int(pQuery, 5); @@ -218,29 +218,29 @@ } } } prevTagid = tagid; if( suppressCnt ){ - @ + @ suppressCnt = 0; } if( strcmp(zType,"div")==0 ){ @ continue; } if( memcmp(zDate, zPrevDate, 10) ){ sprintf(zPrevDate, "%.10s", zDate); @ } memcpy(zTime, &zDate[11], 5); zTime[5] = 0; @ - @ + @ @ } if( suppressCnt ){ @ + @ suppressCnt = 0; } if( pGraph ){ graph_finish(pGraph, (tmFlags & TIMELINE_DISJOINT)!=0); if( pGraph->nErr ){
- @ ... %d(suppressCnt) similar - @ event%s(suppressCnt>1?"s":"") omitted.
+ @ ... %d(suppressCnt) similar event%s(suppressCnt>1?"s":"") omitted. + @

- @
%s(zPrevDate)
+ @
%s(zPrevDate)
@
%s(zTime)%s(zTime) if( pGraph && zType[0]=='c' ){ int nParent = 0; int aParent[32]; const char *zBr; @@ -268,23 +268,23 @@ gidx = graph_add_row(pGraph, rid, nParent, aParent, zBr, zBgClr); db_reset(&qbranch); @
} if( zBgClr && zBgClr[0] ){ - @
+ @ }else{ - @ + @ } if( zType[0]=='c' ){ hyperlink_to_uuid(zUuid); if( isLeaf ){ if( db_exists("SELECT 1 FROM tagxref" " WHERE rid=%d AND tagid=%d AND tagtype>0", rid, TAG_CLOSED) ){ - @ Closed-Leaf: + @
Closed-Leaf:
}else{ - @ Leaf: + @
Leaf:
} } }else if( (tmFlags & TIMELINE_ARTID)!=0 ){ hyperlink_to_uuid(zUuid); } @@ -310,12 +310,13 @@ } @
- @ ... %d(suppressCnt) similar - @ event%s(suppressCnt>1?"s":"") omitted.
+ @ ... %d(suppressCnt) similar event%s(suppressCnt>1?"s":"") omitted. + @