Initial commit. Default template from viewvc package
authorJeremy Olexa <darkside@gentoo.org>
Wed, 24 Mar 2010 15:24:15 +0000 (10:24 -0500)
committerJeremy Olexa <darkside@gentoo.org>
Wed, 24 Mar 2010 15:24:15 +0000 (10:24 -0500)
53 files changed:
diff.ezt [new file with mode: 0644]
dir_new.ezt [new file with mode: 0644]
directory.ezt [new file with mode: 0644]
docroot/help.css [new file with mode: 0644]
docroot/help_dirview.html [new file with mode: 0644]
docroot/help_log.html [new file with mode: 0644]
docroot/help_query.html [new file with mode: 0644]
docroot/help_rootview.html [new file with mode: 0644]
docroot/images/annotate.png [new file with mode: 0644]
docroot/images/back.png [new file with mode: 0644]
docroot/images/back_small.png [new file with mode: 0644]
docroot/images/broken.png [new file with mode: 0644]
docroot/images/chalk.jpg [new file with mode: 0644]
docroot/images/cvsgraph_16x16.png [new file with mode: 0644]
docroot/images/cvsgraph_32x32.png [new file with mode: 0644]
docroot/images/diff.png [new file with mode: 0644]
docroot/images/dir.png [new file with mode: 0644]
docroot/images/down.png [new file with mode: 0644]
docroot/images/download.png [new file with mode: 0644]
docroot/images/favicon.ico [new file with mode: 0644]
docroot/images/feed-icon-16x16.jpg [new file with mode: 0644]
docroot/images/forward.png [new file with mode: 0644]
docroot/images/list.png [new file with mode: 0644]
docroot/images/lock.png [new file with mode: 0644]
docroot/images/log.png [new file with mode: 0644]
docroot/images/text.png [new file with mode: 0644]
docroot/images/up.png [new file with mode: 0644]
docroot/images/view.png [new file with mode: 0644]
docroot/images/viewvc-logo.png [new file with mode: 0644]
docroot/styles.css [new file with mode: 0644]
error.ezt [new file with mode: 0644]
file.ezt [new file with mode: 0644]
graph.ezt [new file with mode: 0644]
include/diff_form.ezt [new file with mode: 0644]
include/dir_footer.ezt [new file with mode: 0644]
include/dir_header.ezt [new file with mode: 0644]
include/file_header.ezt [new file with mode: 0644]
include/footer.ezt [new file with mode: 0644]
include/header.ezt [new file with mode: 0644]
include/log_footer.ezt [new file with mode: 0644]
include/log_header.ezt [new file with mode: 0644]
include/paging.ezt [new file with mode: 0644]
include/pathrev_form.ezt [new file with mode: 0644]
include/props.ezt [new file with mode: 0644]
include/sort.ezt [new file with mode: 0644]
log.ezt [new file with mode: 0644]
log_table.ezt [new file with mode: 0644]
query.ezt [new file with mode: 0644]
query_form.ezt [new file with mode: 0644]
query_results.ezt [new file with mode: 0644]
revision.ezt [new file with mode: 0644]
roots.ezt [new file with mode: 0644]
rss.ezt [new file with mode: 0644]

diff --git a/diff.ezt b/diff.ezt
new file mode 100644 (file)
index 0000000..f01fbc4
--- /dev/null
+++ b/diff.ezt
@@ -0,0 +1,240 @@
+[# setup page definitions]
+  [define page_title]Diff of /[where][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "diff"]
+[include "include/file_header.ezt"]
+
+<h3 style="text-align:center;"></h3>
+
+[if-any raw_diff]
+  <pre class="vc_raw_diff">[raw_diff]</pre>
+[end]
+
+[define left_view_href][if-any left.prefer_markup][left.view_href][else][if-any left.download_href][left.download_href][end][end][end]
+[define right_view_href][if-any right.prefer_markup][right.view_href][else][if-any right.download_href][right.download_href][end][end][end]
+
+[if-any changes]
+<table cellspacing="0" cellpadding="0">
+  <tr class="vc_diff_header">
+    <th style="width:6%;"></th>
+    <th style="width:47%; vertical-align:top;">
+      [is left.path right.path][else][left.path][end]
+      revision [if-any left_view_href]<a href="[left_view_href]">[end][left.rev][if-any left_view_href]</a>[end][if-any left.author] by <em>[left.author]</em>[end],
+      [left.date]
+      [if-any left.tag]<br />Tag: [left.tag][end]
+    </th>
+    <th style="width:47%; vertical-align:top;">
+      [is left.path right.path][else][right.path][end]
+      revision [if-any right_view_href]<a href="[right_view_href]">[end][right.rev][if-any right_view_href]</a>[end][if-any right.author] by <em>[right.author]</em>[end],
+      [right.date]
+      [if-any right.tag]<br />Tag: [right.tag][end]
+    </th>
+  </tr>
+
+  [for changes]
+    [is changes.type "header"]
+      <tr class="vc_diff_chunk_header" id="h[changes.line_info_right]">
+        <td style="width:6%;"><strong>#</strong></td>
+        <td style="width:47%;">
+          <strong>Line [changes.line_info_left]</strong>&nbsp;
+          <span class="vc_diff_chunk_extra">[changes.line_info_extra]</span>
+        </td>
+        <td style="width:47%;">
+          <strong>Line [changes.line_info_right]</strong>&nbsp;
+          <span class="vc_diff_chunk_extra">[changes.line_info_extra]</span>
+        </td>
+      </tr>
+    [else]
+      [is changes.type "add"]
+        <tr>
+          <td class="vc_diff_line_number" id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
+          <td class="vc_diff_empty">&nbsp;</td>
+          <td class="vc_diff_add">&nbsp;[changes.right]</td>
+        </tr>
+      [else]
+        [is changes.type "remove"]
+          <tr>
+            <td></td>
+            <td class="vc_diff_remove">&nbsp;[changes.left]</td>
+            <td class="vc_diff_empty">&nbsp;</td>
+          </tr>
+        [else]
+          [is changes.type "change"]
+            <tr>
+              [if-any changes.have_right]
+                <td class="vc_diff_line_number" id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
+              [else]
+                <td></td>
+              [end]
+              [if-any changes.have_left]
+                <td class="vc_diff_change">&nbsp;[changes.left]</td>
+              [else]
+                <td class="vc_diff_change_empty">&nbsp;</td>
+              [end]
+              [if-any changes.have_right]
+                <td class="vc_diff_change">&nbsp;[changes.right]</td>
+              [else]
+                <td class="vc_diff_change_empty">&nbsp;</td>
+              [end]
+            </tr>
+          [else]
+            [is changes.type "no-changes"]
+              <tr>
+                <td colspan="3">&nbsp;</td>
+              </tr>
+              <tr class="vc_diff_empty">
+                <td colspan="3" style="text-align:center;"><br />
+                <strong>- No changes -</strong><br />&nbsp; </td>
+              </tr>
+            [else]
+              [is changes.type "binary-diff"]
+                <tr>
+                  <td colspan="3">&nbsp;</td>
+                </tr>
+                <tr class="vc_diff_empty">
+                  <td colspan="3" style="text-align:center;"><br />
+                  <strong>- Binary file revisions differ -</strong><br />&nbsp; </td>
+                </tr>
+              [else]
+                [is changes.type "error"]
+                  <tr>
+                    <td colspan="3">&nbsp;</td>
+                  </tr>
+                  <tr class="vc_diff_empty">
+                    <td colspan="3" style="text-align:center;"> <br />
+                    <strong>- ViewVC depends on rcsdiff and GNU diff to create 
+                    this page.  ViewVC cannot find GNU diff. Even if you 
+                    have GNU diff installed, the rcsdiff program must be 
+                    configured and compiled with the GNU diff location.
+                    -</strong> <br />&nbsp; </td>
+                  </tr>
+                [else]
+                  <tr>
+                    <td class="vc_diff_line_number" id="l[changes.line_number]">[if-any right.annotate_href]<a href="[right.annotate_href]#l[changes.line_number]">[changes.line_number]</a>[else][changes.line_number][end]</td>
+                    <td class="vc_diff_nochange">&nbsp;[changes.left]</td>
+                    <td class="vc_diff_nochange">&nbsp;[changes.right]</td>
+                  </tr>
+                [end]
+              [end]
+            [end]
+          [end]
+        [end]
+      [end]
+    [end]
+  [end]
+</table>
+[end]
+
+[if-any sidebyside]
+  <table class="vc_idiff">
+    <colgroup><col /><col class="content" /></colgroup>
+    <colgroup><col /><col class="content" /></colgroup>
+    <thead>
+      <tr>
+        <th colspan="2">    
+          [is left.path right.path][else][left.path][end]
+          Revision [left.rev]
+        </th>
+        <th colspan="2">
+          [is left.path right.path][else][right.path][end]
+          Revision [right.rev]
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      [for sidebyside]
+        [if-any sidebyside.gap]
+          <tr>
+            <th>&hellip;</th><th></th>
+            <th>&hellip;</th><th></th>
+          </tr>
+        [end]
+        <tr>
+          [for sidebyside.columns]
+            <th>[sidebyside.columns.line_number]</th><td[if-any sidebyside.columns.line_number][else] class="vc_idiff_empty"[end]>[for sidebyside.columns.segments][if-any sidebyside.columns.segments.type]<span class="vc_idiff_[sidebyside.columns.segments.type]">[sidebyside.columns.segments.text]</span>[else][sidebyside.columns.segments.text][end][end]</td>
+          [end]
+        </tr>
+      [end]
+    </tbody>
+  </table>
+[end]
+
+[if-any unified]
+  <table class="vc_idiff">
+    <thead>
+      <tr>
+        <th>r[left.rev]</th>
+        <th>r[right.rev]</th>
+        <th></th>
+      </tr>
+    </thead>
+    <tbody>
+      [for unified]
+        [if-any unified.gap]
+          <tr>
+            <th>&hellip;</th>
+            <th>&hellip;</th>
+            <th></th>
+          </tr>
+        [end]
+        <tr>
+          <th>[unified.left_number]</th>
+          <th>[unified.right_number]</th>
+          <td[if-any unified.type] class="vc_idiff_[unified.type]"[end]>[for unified.segments][if-any unified.segments.type]<span class="vc_idiff_[unified.segments.type]">[unified.segments.text]</span>[else][unified.segments.text][end][end]</td>
+        </tr>
+      [end]
+    </tbody>
+  </table>
+[end]
+
+<hr style="margin-top:1em;" />
+
+<table cellpadding="10" class="auto">
+  <tr>
+    <td>
+      <form method="get" action="[diff_format_action]">
+        <div>
+          [for diff_format_hidden_values]<input type="hidden" name="[diff_format_hidden_values.name]" value="[diff_format_hidden_values.value]"/>[end]
+          <select name="diff_format" onchange="submit()">
+            <option value="h" [is diff_format "h"]selected="selected"[end]>Colored Diff</option>
+            <option value="l" [is diff_format "l"]selected="selected"[end]>Long Colored Diff</option>
+            <option value="f" [is diff_format "f"]selected="selected"[end]>Full Colored Diff</option>
+            <option value="u" [is diff_format "u"]selected="selected"[end]>Unidiff</option>
+            <option value="c" [is diff_format "c"]selected="selected"[end]>Context Diff</option>
+            <option value="s" [is diff_format "s"]selected="selected"[end]>Side by Side</option>
+          </select>
+          <input type="submit" value="Show" />
+          </div>
+      </form>
+    </td>
+    <td>
+[if-any raw_diff]
+      &nbsp;
+[else]
+      <table style="border:solid gray 1px;" class="auto">
+        <tr>
+          <td>Legend:<br />
+            <table cellspacing="0" cellpadding="1">
+              <tr>
+                <td style="text-align:center;" class="vc_diff_remove">Removed from v.[left.rev]</td>
+                <td class="vc_diff_empty">&nbsp;</td>
+              </tr>
+              <tr>
+                <td style="text-align:center;" colspan="2" class="vc_diff_change">changed lines</td>
+              </tr>
+              <tr>
+                <td class="vc_diff_empty">&nbsp;</td>
+                <td style="text-align:center;" class="vc_diff_add">Added in v.[right.rev]</td>
+              </tr>
+            </table>
+          </td>
+        </tr>
+      </table>
+[end]
+    </td>
+  </tr>
+</table>
+
+[include "include/footer.ezt"]
diff --git a/dir_new.ezt b/dir_new.ezt
new file mode 100644 (file)
index 0000000..f99d31a
--- /dev/null
@@ -0,0 +1,140 @@
+[include "include/dir_header.ezt"]
+
+<table cellspacing="1" cellpadding="2" class="fixed">
+<thead>
+<tr>
+  <th style="width: 200px" class="vc_header[is sortby "file"]_sort[end]">
+    [if-any sortby_file_href]<a href="[sortby_file_href]#dirlist">File</a>[else]File[end]
+    [is sortby "file"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+  <th style="width: 96px" class="vc_header"></th>
+  [if-any sortby_rev_href]
+  <th class="vc_header[is sortby "rev"]_sort[end]">
+    <a href="[sortby_rev_href]#dirlist">Last Change</a>
+    [is sortby "rev"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  [else]
+  <th class="vc_header[is sortby "date"]_sort[end]">
+    [if-any sortby_date_href]<a href="[sortby_date_href]#dirlist">Last Change</a>[else]Last Change[end]
+    [is sortby "date"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](date)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  [end]
+  </th>
+</tr>
+</thead>
+
+<tbody>
+[if-any up_href]
+  <tr class="vc_row_odd">
+    <td style="width: 200px">
+      <a href="[up_href]">
+      <img src="[docroot]/images/back_small.png" alt="" class="vc_icon"
+      />&nbsp;Parent&nbsp;Directory</a>
+    </td>
+    <td style="width: 96px; font-size: 0;"></td>
+    <td>&nbsp;</td>
+  </tr>
+ [end]
+[for entries]
+  <tr class="vc_row_[if-index entries even]even[else]odd[end]">
+    <td style="width: 200px">
+    <a name="[entries.anchor]" href="[is entries.pathtype "dir"][entries.view_href][else][if-any entries.prefer_markup][entries.view_href][else][entries.download_href][end][end]" title="[is entries.pathtype "dir"]View Directory Contents[else][if-any entries.prefer_markup]View[else]Download[end] File Contents[end]">
+       <img src="[docroot]/images/[is entries.pathtype "dir"]dir[else][is entries.state "dead"]broken[else]text[end][end].png" alt="" class="vc_icon" />
+       [entries.name][is entries.pathtype "dir"]/[end]</a>
+       [if-any entries.lockinfo]<img src="[docroot]/images/lock.png" alt="locked" class="vc_icon" title="Locked by [entries.lockinfo]" />[end]
+       [is entries.state "dead"](dead)[end]
+    </td>
+
+    [if-any entries.errors]
+      <td colspan="2">[for entries.errors]<em>[entries.errors]</em>[end]</td>
+    [else]
+      [define view_icon_link][end]
+      [define graph_icon_link][end]
+      [define download_icon_link][end]
+      [define annotate_icon_link][end]
+      [define log_icon_link][if-any entries.log_href]<a 
+        href="[entries.log_href]"
+        title="View Log"><img
+          src="[docroot]/images/log.png"
+          alt="View Log" 
+          class="vc_icon" /></a>[end][end]
+
+      [is entries.pathtype "dir"]
+        [is roottype "cvs"]
+          [# no point in showing icon when there's only one to choose from]
+        [else]
+          [define view_icon_link]<a 
+            href="[entries.view_href]"
+            title="View Directory Listing"><img
+              src="[docroot]/images/list.png"
+              alt="View Directory Listing" 
+              class="vc_icon" /></a>[end]
+        [end]
+      [end]
+
+      [is entries.pathtype "file"]
+        [define view_icon_link][if-any entries.view_href]<a 
+          href="[entries.view_href]"
+          title="View File"><img
+            src="[docroot]/images/view.png"
+            alt="View File" 
+            class="vc_icon" /></a>[end][end]
+
+        [define graph_icon_link][if-any entries.graph_href]<a 
+          href="[entries.graph_href]"
+          title="View Revision Graph"><img
+            src="[docroot]/images/cvsgraph_16x16.png"
+            alt="View Revision Graph" 
+            class="vc_icon" /></a>[end][end]
+
+        [define download_icon_link][if-any entries.download_href]<a 
+          href="[entries.download_href]"
+          title="Download File"><img
+            src="[docroot]/images/download.png"
+            alt="Download File"
+            class="vc_icon" /></a>[end][end]
+
+        [define annotate_icon_link][if-any entries.annotate_href]<a 
+          href="[entries.annotate_href]"
+          title="Annotate File"><img
+            src="[docroot]/images/annotate.png"
+            alt="Annotate File" 
+            class="vc_icon" /></a>[end][end]
+      [end]
+
+      <td style="width: 96px"
+        >[# Icon column. We might want to add more icons like a tarball
+          # icon for directories or a diff to previous icon for files.
+          # Make sure this sucker has no whitespace in it, or the fixed
+          # widthness of will suffer for large font sizes
+         ][log_icon_link][view_icon_link][graph_icon_link][download_icon_link][annotate_icon_link]</td>
+
+      <td>
+        [if-any entries.rev]
+          <strong>[if-any entries.revision_href]<a href="[entries.revision_href]" title="Revision [entries.rev]">[entries.rev]</a>[else][entries.rev][end]</strong>
+          ([entries.ago] ago)
+          by <em>[entries.author]</em>:
+          [entries.log]
+          [is entries.pathtype "dir"][is roottype "cvs"]
+            <em>(from [entries.log_file]/[entries.log_rev])</em>
+          [end][end]
+        [end]
+      </td>
+    [end]
+  </tr>
+[end]
+</tbody>
+
+</table>
+
+[include "include/dir_footer.ezt"]
diff --git a/directory.ezt b/directory.ezt
new file mode 100644 (file)
index 0000000..538dcfb
--- /dev/null
@@ -0,0 +1,116 @@
+[include "include/dir_header.ezt"]
+
+<table cellspacing="1" cellpadding="2">
+<thead>
+<tr>
+  <th class="vc_header[is sortby "file"]_sort[end]" colspan="2">
+    [if-any sortby_file_href]<a href="[sortby_file_href]#dirlist">File</a>[else]File[end]
+    [is sortby "file"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "rev"]_sort[end]">
+   [if-any sortby_rev_href]<a href="[sortby_rev_href]#dirlist">Rev.</a>[else]Rev.[end]
+    [is sortby "rev"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "date"]_sort[end]">
+    [if-any sortby_date_href]<a href="[sortby_date_href]#dirlist">Age</a>[else]Age[end]
+    [is sortby "date"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+  <th class="vc_header[is sortby "author"]_sort[end]">
+    [if-any sortby_author_href]<a href="[sortby_author_href]#dirlist">Author</a>[else]Author[end]
+    [is sortby "author"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+[is cfg.options.show_logs "1"]
+  <th class="vc_header[is sortby "log"]_sort[end]">
+    [if-any sortby_log_href]<a href="[sortby_log_href]#dirlist">Last log entry</a>[else]Last log entry[end]
+    [is sortby "log"]
+      <img class="vc_sortarrow" alt="[is sortdir "down"](rev)[end]"
+        width="13" height="13"
+        src="[docroot]/images/[is sortdir "up"]up[else]down[end].png" />
+    [end]
+  </th>
+[end]
+</tr>
+</thead>
+
+<tbody>
+[if-any up_href]
+  <tr class="vc_row_odd">
+    <td colspan="2">
+      <a href="[up_href]">
+      <img src="[docroot]/images/back_small.png" alt="" class="vc_icon"
+      />&nbsp;Parent&nbsp;Directory</a>
+    </td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    <td>&nbsp;</td>
+    [is cfg.options.show_logs "1"]
+      <td>&nbsp;</td>
+    [end]
+  </tr>
+ [end]
+ [for entries]
+   <tr class="vc_row_[if-index entries even]even[else]odd[end]">
+     <td[if-any entries.graph_href][else] colspan="2"[end]>
+       [is entries.pathtype "dir"]
+       <a name="[entries.anchor]" href="[entries.view_href]" title="View directory contents">
+       [else]
+       <a name="[entries.anchor]" href="[entries.log_href]" title="View file revision log">
+       [end]
+       <img src="[docroot]/images/[is entries.pathtype "dir"]dir[else][is entries.state "dead"]broken[else]text[end][end].png" alt="" class="vc_icon" />
+       [entries.name][is entries.pathtype "dir"]/[end]</a>
+       [is entries.state "dead"](dead)[end]
+     </td>
+     [if-any entries.graph_href]
+       <td style="width:1%"><a href="[entries.graph_href]"
+       title="View Revision Graph"><img
+       src="[docroot]/images/cvsgraph_16x16.png"
+       alt="View Revision Graph" class="vc_icon" />
+       </a></td>
+     [end]
+     [if-any entries.errors]
+       <td colspan=[is cfg.options.show_logs "1"]4[else]3[end]>
+         [for entries.errors]<em>[entries.errors]</em>[end]
+       </td>
+     [else]
+       [is entries.pathtype "dir"]
+       <td>&nbsp;[if-any entries.rev]<a href="[entries.log_href]" title="View directory revision log"><strong>[entries.rev]</strong></a>[end]</td>
+       [else]
+       [define rev_href][if-any entries.prefer_markup][entries.view_href][else][if-any entries.download_href][entries.download_href][end][end][end]
+       <td style="white-space: nowrap;">&nbsp;[if-any entries.rev][if-any rev_href]<a href="[rev_href]" title="[if-any entries.prefer_markup]View[else]Download[end] file contents">[end]<strong>[entries.rev]</strong>[if-any rev_href]</a>[end][end]
+       [if-any entries.lockinfo]<img src="[docroot]/images/lock.png" alt="locked" class="vc_icon" title="Locked by [entries.lockinfo]" />[end]
+       </td>
+       [end]
+       <td>&nbsp;[entries.ago]</td>
+       <td>&nbsp;[entries.author]</td>
+       [is cfg.options.show_logs "1"]
+         [if-any entries.short_log]
+           <td>&nbsp;[entries.short_log][is entries.pathtype "dir"][is roottype "cvs"]
+             <em>(from [entries.log_file]/[entries.log_rev])</em>[end][end]</td>
+         [else]
+           <td>&nbsp;</td>
+         [end]
+      [end]
+    [end]
+  </tr>
+[end]
+</tbody>
+
+</table>
+
+[include "include/dir_footer.ezt"]
diff --git a/docroot/help.css b/docroot/help.css
new file mode 100644 (file)
index 0000000..9adde07
--- /dev/null
@@ -0,0 +1,14 @@
+/************************************/
+/***  ViewVC Help CSS Stylesheet ***/
+/************************************/
+
+/*** Standard Tags ***/
+body {
+  margin: 0.5em;
+}
+img { border: none; }
+
+table { width: 100%; }
+td { vertical-align: top; }
+
+col.menu { width:12em; }
diff --git a/docroot/help_dirview.html b/docroot/help_dirview.html
new file mode 100644 (file)
index 0000000..f86cb4a
--- /dev/null
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ViewVC Help: Directory View</title>
+  <link rel="stylesheet" href="help.css" type="text/css" />
+  <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+</head>
+<body>
+  <div><a href="http://viewvc.org/index.html"><img src="images/viewvc-logo.png" alt="ViewVC logotype" /></a></div>
+  <table>
+    <col class="menu" />
+    <col />
+    <tr><td>
+       <h3>Help</h3>
+       <a href="help_rootview.html">General</a><br />
+       <strong>Directory&nbsp;View</strong><br />
+       <a href="help_log.html">Log&nbsp;View</a><br />
+       <a href="help_query.html">Query&nbsp;Database</a><br />
+    </td><td>
+
+    <h1>ViewVC Help: Directory View</h1>
+
+    <p>The directory listing view should be a familiar sight to any
+    computer user. It shows the path of the current directory being viewed
+    at the top of the page. Below that is a table summarizing the
+    directory contents, and then comes actual contents, a sortable list of
+    all files and subdirectories inside the current directory.</p>
+
+    <p><a name="summary"></a>The summary table is made up of some or all
+    of the following rows:</p>
+    <ul>
+      <li><a name="summary-files-shown"><strong>Files Shown</strong></a>
+      - Number of files shown in the directory listing. This might be less
+      than the actual number of files in the directory if a
+      <a href="#option-search">regular expression search</a> is in place,
+      hiding files which don't meet the search criteria. In CVS directory
+      listings, this row will also have a link to toggle display of
+      <a href="help_rootview.html#dead-files">dead files</a>, if any are
+      present.</li>
+
+      <li><a name="summary-revision"><strong>Directory
+      Revision</strong></a> - For Subversion directories only.
+      Shown as "# of #" where the first number is the most recent
+      repository revision where the directory (or a path underneath it)
+      was modified. The second number is just the latest repository
+      revision. Both numbers are links to
+      <a href="help_rootview.html#view-rev">revision views</a></li>
+
+     <li><a name="summary-sticky-revision-tag"><strong>Sticky
+     Revision/Tag</strong></a> - shows the current
+     <a href="help_rootview.html#sticky-revision-tag">sticky revision or
+     tag</a> and contains form fields to set or clear it.</li>
+
+     <li><a name="summary-search"><strong>Current Search</strong></a> -
+     If a <a href="#option-search">regular expression search</a> is in place,
+     shows the search string.</li>
+
+     <li><a name="summary-query"><strong>Query</strong></a> - Provides
+     a link to a <a href="help_rootview.html#view-query">query form</a>
+     for the directory</li>
+   </ul>
+
+  <p><a name="list"></a>The actual directory list is a table with
+  filenames and directory names in one column and information about the
+  most recent revisions where each file or directory was modified in the
+  other columns. Column headers can be clicked to sort the directory
+  entries in order by a column, and clicked again to reverse the sort
+  order.</p>
+
+  <p>
+  <!-- If using directory.ezt template -->
+  File names are links to <a href="help_log.html">log views</a>
+  showing a list of revisions where a file was modified. Revision
+  numbers are links to either
+  <a href="help_rootview.html#view-markup">view</a>
+  or <a href="help_rootview.html#view-checkout">download</a> a file
+  (depending on its file type). The links are reversed for directories.
+  Directory revision numbers are links to <a href="help_log.html">log
+  views</a>, while directory names are links showing the contents of those
+  directories.
+
+  <!-- If using dir_alt.ezt template -->
+  <!--
+  File and directory names are links to retrieve their contents.
+  File links may be either
+  <a href="help_rootview.html#view-markup">view</a>
+  or <a href="help_rootview.html#view-download">download</a> links
+  depending on the file type. Directory links go to directory
+  listings. Revision numbers are links to <a href="help_log.html">log
+  views</a> showing lists of revisions where a file or directory was
+  modified.
+  -->
+
+  Also, in CVS repositories with the
+  <a href="help_rootview.html#view-graph">graph view</a> enabled, there
+  will be small
+  <img src="images/cvsgraph_16x16.png" width="16" height="16" alt="graph">
+  icons next to file names which are links to revision graphs.</p>
+
+  <p>Depending on how ViewVC is configured, there may be more options
+  at the bottom of directory pages:</p>
+
+  <ul>
+    <li><a name="option-search"><strong>Regular expression
+    search</strong></a> - If enabled, will show a form field accepting
+    a search string (a
+    <a href="http://doc.python.org/lib/re-syntax.html">python regular
+    expression</a>). Once submitted, only files that have at least
+    one occurance of the expression will show up in directory listings.
+    </li>
+    <li><a name="option-tarball"><strong>Tarball download</strong></a> -
+    If enabled, will show a link to download a gzipped tar archive of
+    the directory contents.</li>
+  </ul>
+
+  </td></tr></table>
+  <hr />
+  <address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
+  </body>
+</html>
diff --git a/docroot/help_log.html b/docroot/help_log.html
new file mode 100644 (file)
index 0000000..5ddf0d4
--- /dev/null
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ViewVC Help: Log View</title>
+  <link rel="stylesheet" href="help.css" type="text/css" />
+  <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+</head>
+<body>
+  <div><a href="http://viewvc.org/index.html"><img src="images/viewvc-logo.png" alt="ViewVC logotype" /></a></div>
+  <table>
+    <col class="menu" />
+    <col />
+    <tr><td>
+       <h3>Help</h3>
+       <a href="help_rootview.html">General</a><br />
+       <a href="help_dirview.html">Directory&nbsp;View</a><br />
+       <strong>Log&nbsp;View</strong><br />
+       <a href="help_query.html">Query&nbsp;Database</a><br />
+    </td><td>
+
+    <h1>ViewVC Help: Log View</h1>
+
+    <p>
+      The log view displays the revision history of the selected source
+      file or directory. For each revision the following information is
+      displayed:
+
+      <ul>
+        <li>The revision number. In Subversion repositories, this is a
+            link to the <a href="help_rootview.html#view-rev">revision
+            view</a></li>
+        <li>For files, links to
+        <a href="help_rootview.html#view-markup">view</a>,
+        <a href="help_rootview.html#view-checkout">download</a>, and
+        <a href="help_rootview.html#view-annotate">annotate</a> the
+          revision. For directories, a link to
+        <a href="help_dirview.html">list directory contents</a></li>
+        <li>A link to select the revision for diffs (see below)</li>
+        <li>The date and age of the change</li>
+        <li>The author of the modification</li>
+        <li>The CVS branch (usually <em>MAIN</em>, if not on a branch)</li>
+        <li>Possibly a list of CVS tags bound to the revision (if any)</li>
+        <li>The size of the change measured in added and removed lines of
+            code. (CVS only)</li>
+        <li>The size of the file in bytes at the time of the revision
+            (Subversion only)</li>
+        <li>Links to view diffs to the previous revision or possibly to
+            an arbitrary selected revision (if any, see above)</li>
+        <li>If the revision is the result of a copy, the path and revision
+            copied from</li>
+        <li>If the revision precedes a copy or rename, the path at the
+            time of the revision</li>
+        <li>And last but not least, the commit log message which should tell
+            about the reason for the change.</li>
+      </ul>
+    <p>
+      At the bottom of the page you will find a form which allows
+      to request diffs between arbitrary revisions.
+    </p>
+  </td></tr></table>
+  <hr />
+  <address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
+  </body>
+</html>
diff --git a/docroot/help_query.html b/docroot/help_query.html
new file mode 100644 (file)
index 0000000..9bab797
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ViewVC Help: Query The Commit Database</title>
+  <link rel="stylesheet" href="help.css" type="text/css" />
+  <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+</head>
+<body>
+  <div><a href="http://viewvc.org/index.html"><img src="images/viewvc-logo.png" alt="ViewVC logotype" /></a></div>
+  <table>
+    <col class="menu" />
+    <col />
+    <tr><td>
+       <h3>Help:</h3>
+       <a href="help_rootview.html">General</a><br />
+       <a href="help_dirview.html">Directory&nbsp;View</a><br />
+       <a href="help_log.html">Log&nbsp;View</a><br />
+       <strong>Query&nbsp;Database</strong>
+    </td><td>
+  
+    <h1>ViewVC Help: Query The Commit Database</h1>
+  
+    <p> 
+      Select your parameters for querying the CVS commit database in the
+      form at the top of the page.  You
+      can search for multiple matches by typing a comma-seperated list
+      into the text fields.  Regular expressions, and wildcards are also
+      supported.  Blank text input fields are treated as wildcards.
+    </p>
+    <p>
+      Any of the text entry fields can take a comma-seperated list of
+      search arguments.  For example, to search for all commits from
+      authors <em>jpaint</em> and <em>gstein</em>, just type: <code>jpaint,
+      gstein</code> in the <em>Author</em> input box.  If you are searching
+      for items containing spaces or quotes, you will need to quote your
+      request.  For example, the same search above with quotes is:
+      <code>"jpaint", "gstein"</code>.
+    </p>
+    <p>                           
+      Wildcard and regular expression searches are entered in a similar
+      way to the quoted requests.  You must quote any wildcard or
+      regular expression request, and a command character preceeds the
+      first quote.  The command character <code>l</code>(lowercase L) is for wildcard
+      searches, and the wildcard character is a percent (<code>%</code>).  The
+      command character for regular expressions is <code>r</code>, and is
+      passed directly to MySQL, so you'll need to refer to the MySQL
+      manual for the exact regex syntax.  It is very similar to Perl.  A
+      wildard search for all files with a <em>.py</em> extention is:
+      <code>l"%.py"</code> in the <em>File</em> input box.  The same search done
+      with a regular expression is: <code>r".*\.py"</code>.
+    </p>
+    <p>                  
+      All search types can be mixed, as long as they are seperated by
+      commas.
+    </p>                                                    
+    </td></tr></table>
+  <hr />
+  <address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
+  </body>
+</html>
diff --git a/docroot/help_rootview.html b/docroot/help_rootview.html
new file mode 100644 (file)
index 0000000..24457e9
--- /dev/null
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>ViewVC Help: General</title>
+  <link rel="stylesheet" href="help.css" type="text/css" />
+  <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+</head>
+<body>
+  <div><a href="http://viewvc.org/index.html"><img src="images/viewvc-logo.png" alt="ViewVC logotype" /></a></div>
+  <table>
+    <col class="menu" />
+    <col />
+    <tr><td>
+       <h3>Help</h3>
+       <strong>General</strong><br />
+       <a href="help_dirview.html">Directory&nbsp;View</a><br />
+       <a href="help_log.html">Log&nbsp;View</a><br />
+       <a href="help_query.html">Query&nbsp;Database</a><br />
+    </td><td>
+
+    <h1>ViewVC Help: General</h1>
+
+    <p><em>ViewVC</em> is a WWW interface for CVS and Subversion
+    repositories. It allows you to browse the files and directories in a
+    repository while showing you metadata from the repository history: log
+    messages, modification dates, author names, revision numbers, copy
+    history, and so on. It provides several different views of repository
+    data to help you find the information you are looking for:</p>
+  
+    <ul>
+      <li><a name="multiple-repositories"><strong>Root Listing
+      View</strong></a> - Show a list of repositories configured for
+      display in ViewVC.</li>
+  
+      <li><a name="view-dir" href="help_dirview.html"><strong>Directory
+      View</strong></a> - Shows a list of files and subdirectories in a
+      directory of the repository, along with metadata like author names and
+      log entries.</li>
+  
+      <li><a name="view-log" href="help_log.html"><strong>Log
+      View</strong></a> - Shows a revision by revision list of all the
+      changes that have made to a file or directory in the repository, with
+      metadata and links to views of each revision.</li>
+  
+      <li><a name="view-checkout"><strong>File Download (Checkout
+      View)</strong></a> - Retrieves the unaltered contents of a file
+      revision. Browsers may try to display the file, or just save it
+      to disk.  <em>This view is disabled in the default ViewVC
+      configuration.</em></li>
+  
+      <li><a name="view-annotate"><a name="view-markup"><strong>File
+      Contents View</strong></a></a> - Shows the contents of a file at
+      a particular revision, with revision information at the top of
+      the page. File revisions which are GIF, PNG, or JPEG images are
+      displayed inline on the page. Other file types are displayed as
+      marked up text. The markup may be limited to turning URLs and
+      email addresses into links, or configured to show colorized
+      source code.  This view can optionally show line-based
+      annotation data for the file, containing the revision number
+      where each line was last modified, along with links and other
+      information.  <em>This view is disabled in some ViewVC
+      configurations.</em></li>
+  
+      <li><a name="view-diff"><strong>File Diff View</strong></a> - Shows
+      the changes made between two revisions of a file</li>
+  
+      <li><a name="view-tarball"><strong>Directory Tarball View</strong> -
+      Retrieves a gzipped tar archive containing the contents of a
+      directory.<em>This view is disabled in the default ViewVC
+      configuration.</em></li>
+  
+      <li><a name="view-query"><strong>Directory Query View</strong></a> -
+      Shows information about changes made to all subdirectories and files
+      under a parent directory, sorted and filtered by criteria you specify.
+      <em>This view is disabled in the default ViewVC configuration.</em>
+      </li>
+  
+      <li><a name="view-rev"><strong>Revision View</strong> - Shows
+      information about a revision including log message, author, and a list
+      of changed paths. <em>For Subversion repositories only.</em></li>
+  
+      <li><a name="view-graph"><strong>Graph View</strong></a> - Shows a
+      graphical representation of a file's revisions and branches complete
+      with tag and author names and links to markup and diff pages.
+      <em>For CVS repositories only, and disabled in the default
+      configuration.</em></li>
+    </ul>
+  
+    <h3><a name="sticky-revision-tag">Sticky Revision and Tag</a></h3>
+  
+    <p>By default, ViewVC will show the files and directories and revisions
+    that currently exist in the repository. But it's also possible to browse
+    the contents of a repository at a point in its past history by choosing
+    a "sticky tag" (in CVS) or a "sticky revision" (in Subversion) from the
+    forms at the top of directory and log pages. They're called sticky
+    because once they're chosen, they stick around when you navigate to
+    other pages, until you reset them. When they're set, directory and log
+    pages only show revisions preceding the specified point in history. In
+    CVS, when a tag refers to a branch or a revision on a branch, only
+    revisions from the branch history are shown, including branch points and
+    their preceding revisions.</p>
+  
+    <h3><a name="dead-files">Dead Files</a></h3>
+  
+    <p>In CVS directory listings, ViewVC can optionally display dead files.
+    Dead files are files which used to be in a directory but are currently
+    deleted, or files which just don't exist in the currently selected
+    <a href="#sticky-revision-tag">sticky tag</a>. Dead files cannot be
+    shown in Subversion repositories. The only way to see a deleted file in
+    a Subversion directory is to navigate to a sticky revision where the
+    file previously existed.</p>
+  
+    <h3><a name="artificial-tags">Artificial Tags</a></h3>
+  
+    <p>In CVS Repositories, ViewVC adds artificial tags <em>HEAD</em> and
+    <em>MAIN</em> to tag listings and accepts them in place of revision
+    numbers and real tag names in all URLs. <em>MAIN</em> acts like a branch
+    tag pointing at the default branch, while <em>HEAD</em> acts like a
+    revision tag pointing to the latest revision on the default branch. The
+    default branch is usually just the trunk, but may be set to other
+    branches inside individual repository files. CVS will always check out
+    revisions from a file's default branch when no other branch is specified
+    on the command line.</p>
+  
+    <h3><a name="more-information">More Information</a></h3>
+  
+    <p>More information about <em>ViewVC</em> is available from
+    <a href="http://viewvc.org/">viewvc.org</a>.
+    See the links below for guides to CVS and Subversion</p>
+  
+    <h4>Documentation about CVS</h4>
+    <blockquote>
+      <p>
+        <a href="http://cvsbook.red-bean.com/"><em>Open Source
+        Development with CVS</em></a><br />
+        <a href="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">CVS
+        User's Guide</a><br />
+        <a href="http://cellworks.washington.edu/pub/docs/cvs/tutorial/cvs_tutorial_1.html">Another CVS tutorial</a><br />
+        <a href="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">Yet another CVS tutorial (a little old, but nice)</a><br />
+        <a href="http://www.cs.utah.edu/dept/old/texinfo/cvs/FAQ.txt">An old but very useful FAQ about CVS</a>
+      </p>
+    </blockquote>
+  
+    <h4>Documentation about Subversion</h3>
+    <blockquote>
+      <p>
+        <a href="http://svnbook.red-bean.com/"><em>Version Control with
+        Subversion</em></a><br />
+      </p>
+    </blockquote>
+  </td></tr></table>
+  <hr />
+  <address><a href="mailto:users@viewvc.tigris.org">ViewVC Users Mailinglist</a></address>
+  </body>
+</html>
diff --git a/docroot/images/annotate.png b/docroot/images/annotate.png
new file mode 100644 (file)
index 0000000..ed2d33b
Binary files /dev/null and b/docroot/images/annotate.png differ
diff --git a/docroot/images/back.png b/docroot/images/back.png
new file mode 100644 (file)
index 0000000..65f4631
Binary files /dev/null and b/docroot/images/back.png differ
diff --git a/docroot/images/back_small.png b/docroot/images/back_small.png
new file mode 100644 (file)
index 0000000..a057c3f
Binary files /dev/null and b/docroot/images/back_small.png differ
diff --git a/docroot/images/broken.png b/docroot/images/broken.png
new file mode 100644 (file)
index 0000000..cdaf236
Binary files /dev/null and b/docroot/images/broken.png differ
diff --git a/docroot/images/chalk.jpg b/docroot/images/chalk.jpg
new file mode 100644 (file)
index 0000000..73c9533
Binary files /dev/null and b/docroot/images/chalk.jpg differ
diff --git a/docroot/images/cvsgraph_16x16.png b/docroot/images/cvsgraph_16x16.png
new file mode 100644 (file)
index 0000000..6f5bece
Binary files /dev/null and b/docroot/images/cvsgraph_16x16.png differ
diff --git a/docroot/images/cvsgraph_32x32.png b/docroot/images/cvsgraph_32x32.png
new file mode 100644 (file)
index 0000000..f1ccc45
Binary files /dev/null and b/docroot/images/cvsgraph_32x32.png differ
diff --git a/docroot/images/diff.png b/docroot/images/diff.png
new file mode 100644 (file)
index 0000000..9047bfe
Binary files /dev/null and b/docroot/images/diff.png differ
diff --git a/docroot/images/dir.png b/docroot/images/dir.png
new file mode 100644 (file)
index 0000000..a11e7eb
Binary files /dev/null and b/docroot/images/dir.png differ
diff --git a/docroot/images/down.png b/docroot/images/down.png
new file mode 100644 (file)
index 0000000..5644d63
Binary files /dev/null and b/docroot/images/down.png differ
diff --git a/docroot/images/download.png b/docroot/images/download.png
new file mode 100644 (file)
index 0000000..0fbfe43
Binary files /dev/null and b/docroot/images/download.png differ
diff --git a/docroot/images/favicon.ico b/docroot/images/favicon.ico
new file mode 100644 (file)
index 0000000..9ba7f80
Binary files /dev/null and b/docroot/images/favicon.ico differ
diff --git a/docroot/images/feed-icon-16x16.jpg b/docroot/images/feed-icon-16x16.jpg
new file mode 100644 (file)
index 0000000..0c72133
Binary files /dev/null and b/docroot/images/feed-icon-16x16.jpg differ
diff --git a/docroot/images/forward.png b/docroot/images/forward.png
new file mode 100644 (file)
index 0000000..d8185ac
Binary files /dev/null and b/docroot/images/forward.png differ
diff --git a/docroot/images/list.png b/docroot/images/list.png
new file mode 100644 (file)
index 0000000..7995fdd
Binary files /dev/null and b/docroot/images/list.png differ
diff --git a/docroot/images/lock.png b/docroot/images/lock.png
new file mode 100644 (file)
index 0000000..9e3bf42
Binary files /dev/null and b/docroot/images/lock.png differ
diff --git a/docroot/images/log.png b/docroot/images/log.png
new file mode 100644 (file)
index 0000000..d2da45b
Binary files /dev/null and b/docroot/images/log.png differ
diff --git a/docroot/images/text.png b/docroot/images/text.png
new file mode 100644 (file)
index 0000000..6e050cd
Binary files /dev/null and b/docroot/images/text.png differ
diff --git a/docroot/images/up.png b/docroot/images/up.png
new file mode 100644 (file)
index 0000000..625819f
Binary files /dev/null and b/docroot/images/up.png differ
diff --git a/docroot/images/view.png b/docroot/images/view.png
new file mode 100644 (file)
index 0000000..a168c38
Binary files /dev/null and b/docroot/images/view.png differ
diff --git a/docroot/images/viewvc-logo.png b/docroot/images/viewvc-logo.png
new file mode 100644 (file)
index 0000000..6e16f3b
Binary files /dev/null and b/docroot/images/viewvc-logo.png differ
diff --git a/docroot/styles.css b/docroot/styles.css
new file mode 100644 (file)
index 0000000..1ca1e9c
--- /dev/null
@@ -0,0 +1,274 @@
+/*******************************/
+/***  ViewVC CSS Stylesheet ***/
+/*******************************/
+
+/*** Standard Tags ***/
+html, body {
+  color: #000000;
+  background-color: #ffffff;
+  font-family: sans-serif;
+}
+
+a:link    { color: #0000ff; }
+a:visited { color: #880088; }
+a:active  { color: #0000ff; }
+
+img { border: none; }
+table {
+  width: 100%;
+  margin: 0; 
+  border: none;
+}
+table.auto {
+  width: auto;
+}
+table.fixed {
+  width: 100%;
+  table-layout: fixed;
+}
+table.fixed td {
+  overflow: hidden; 
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+tr, td, th { vertical-align: top; }
+th { white-space: nowrap; }
+form { margin: 0; }
+
+
+/*** Icons ***/
+.vc_icon {
+  width: 16px;
+  height: 16px;
+  border: none;
+  padding: 0 1px;
+}
+
+
+/*** Navigation Headers ***/
+.vc_navheader {
+  background-color: #cccccc;
+  padding: .25em;
+}
+.vc_navheader .pathdiv {
+  padding: 0 3px;
+}
+
+
+/*** Table Headers ***/
+.vc_header {
+  text-align: left;
+  vertical-align: top;
+  background-color: #cccccc;
+}
+.vc_header_sort {
+  text-align: left;
+  background-color: #88ff88;
+}
+
+
+/*** Table Rows ***/
+.vc_row_even {
+  background-color: #ffffff;
+}
+.vc_row_odd {
+  background-color: #f0f0f0;
+}
+.vc_row_special {
+  background-color: #ffff7f;
+}
+
+
+/*** Log messages ***/
+.vc_log {
+  /* unfortunately, white-space: pre-wrap isn't widely supported ... */
+  white-space: -moz-pre-wrap; /* Mozilla based browsers */
+  white-space: -pre-wrap;     /* Opera 4 - 6 */
+  white-space: -o-pre-wrap;   /* Opera >= 7 */
+  white-space: pre-wrap;      /* CSS3 */
+  word-wrap: break-word;      /* IE 5.5+ */
+}
+
+
+/*** Properties Listing ***/
+.vc_properties {
+  margin: 1em 0;
+}
+.vc_properties h2 {
+  font-size: 115%;
+}
+
+
+/*** File Content Markup Styles ***/
+.vc_summary {
+  background-color: #eeeeee;
+}
+#vc_file td {
+  border-right-style: solid;
+  border-right-color: #505050;
+  text-decoration: none;
+  font-weight: normal;
+  font-style: normal;
+  padding: 1px 5px;
+}
+.vc_file_line_number {
+  border-right-width: 1px;
+  background-color: #eeeeee;
+  color: #505050;
+  text-align: right;
+}
+.vc_file_line_author, .vc_file_line_rev {
+  border-right-width: 1px;
+  text-align: right;
+}
+.vc_file_line_text {
+  border-right-width: 0px;
+  background-color: white;
+  font-family: monospace;
+  text-align: left;
+  white-space: pre;
+  width: 100%;
+}
+.pygments-c { color: #408080; font-style: italic } /* Comment */
+.pygments-err { border: 1px solid #FF0000 } /* Error */
+.pygments-k { color: #008000; font-weight: bold } /* Keyword */
+.pygments-o { color: #666666 } /* Operator */
+.pygments-cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.pygments-cp { color: #BC7A00 } /* Comment.Preproc */
+.pygments-c1 { color: #408080; font-style: italic } /* Comment.Single */
+.pygments-cs { color: #408080; font-style: italic } /* Comment.Special */
+.pygments-gd { color: #A00000 } /* Generic.Deleted */
+.pygments-ge { font-style: italic } /* Generic.Emph */
+.pygments-gr { color: #FF0000 } /* Generic.Error */
+.pygments-gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.pygments-gi { color: #00A000 } /* Generic.Inserted */
+.pygments-go { color: #808080 } /* Generic.Output */
+.pygments-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.pygments-gs { font-weight: bold } /* Generic.Strong */
+.pygments-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.pygments-gt { color: #0040D0 } /* Generic.Traceback */
+.pygments-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.pygments-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.pygments-kp { color: #008000 } /* Keyword.Pseudo */
+.pygments-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.pygments-kt { color: #B00040 } /* Keyword.Type */
+.pygments-m { color: #666666 } /* Literal.Number */
+.pygments-s { color: #BA2121 } /* Literal.String */
+.pygments-na { color: #7D9029 } /* Name.Attribute */
+.pygments-nb { color: #008000 } /* Name.Builtin */
+.pygments-nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.pygments-no { color: #880000 } /* Name.Constant */
+.pygments-nd { color: #AA22FF } /* Name.Decorator */
+.pygments-ni { color: #999999; font-weight: bold } /* Name.Entity */
+.pygments-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.pygments-nf { color: #0000FF } /* Name.Function */
+.pygments-nl { color: #A0A000 } /* Name.Label */
+.pygments-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.pygments-nt { color: #008000; font-weight: bold } /* Name.Tag */
+.pygments-nv { color: #19177C } /* Name.Variable */
+.pygments-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.pygments-w { color: #bbbbbb } /* Text.Whitespace */
+.pygments-mf { color: #666666 } /* Literal.Number.Float */
+.pygments-mh { color: #666666 } /* Literal.Number.Hex */
+.pygments-mi { color: #666666 } /* Literal.Number.Integer */
+.pygments-mo { color: #666666 } /* Literal.Number.Oct */
+.pygments-sb { color: #BA2121 } /* Literal.String.Backtick */
+.pygments-sc { color: #BA2121 } /* Literal.String.Char */
+.pygments-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.pygments-s2 { color: #BA2121 } /* Literal.String.Double */
+.pygments-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.pygments-sh { color: #BA2121 } /* Literal.String.Heredoc */
+.pygments-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.pygments-sx { color: #008000 } /* Literal.String.Other */
+.pygments-sr { color: #BB6688 } /* Literal.String.Regex */
+.pygments-s1 { color: #BA2121 } /* Literal.String.Single */
+.pygments-ss { color: #19177C } /* Literal.String.Symbol */
+.pygments-bp { color: #008000 } /* Name.Builtin.Pseudo */
+.pygments-vc { color: #19177C } /* Name.Variable.Class */
+.pygments-vg { color: #19177C } /* Name.Variable.Global */
+.pygments-vi { color: #19177C } /* Name.Variable.Instance */
+.pygments-il { color: #666666 } /* Literal.Number.Integer.Long */
+
+
+/*** Diff Styles ***/
+.vc_diff_header {
+  background-color: #ffffff;
+}
+.vc_diff_chunk_header {
+  background-color: #99cccc;
+}
+.vc_diff_chunk_extra {
+  font-size: smaller;
+}
+.vc_diff_empty {
+  background-color: #cccccc;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_add {
+  background-color: #aaffaa;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_remove {
+  background-color: #ffaaaa;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_change {
+  background-color: #ffff77;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_change_empty {
+  background-color: #eeee77;
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_nochange {
+  font-family: sans-serif;
+  font-size: smaller;
+}
+.vc_diff_line_number {
+}
+.vc_raw_diff {
+  background-color: #cccccc;
+  font-size: smaller;
+}
+
+
+/*** Intraline Diff Styles ***/
+.vc_idiff_add {
+  background-color: #aaffaa;
+}
+.vc_idiff_change {
+  background-color:#ffff77;
+}
+.vc_idiff_remove {
+  background-color:#ffaaaa;
+}
+.vc_idiff_empty {
+  background-color:#e0e0e0;
+}
+table.vc_idiff col.content { 
+  width: 50%;
+}
+table.vc_idiff tbody {
+  font-family: monospace; 
+  /* unfortunately, white-space: pre-wrap isn't widely supported ... */
+  white-space: -moz-pre-wrap; /* Mozilla based browsers */
+  white-space: -pre-wrap;     /* Opera 4 - 6 */
+  white-space: -o-pre-wrap;   /* Opera >= 7 */
+  white-space: pre-wrap;      /* CSS3 */
+  word-wrap: break-word;      /* IE 5.5+ */
+}
+table.vc_idiff tbody th {
+  background-color:#e0e0e0;
+  text-align:right;
+}
+
+
+/*** Query Form ***/
+.vc_query_form {
+  background-color: #e6e6e6;
+}
diff --git a/error.ezt b/error.ezt
new file mode 100644 (file)
index 0000000..e1d61af
--- /dev/null
+++ b/error.ezt
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!-- ViewVC :: http://www.viewvc.org/ -->
+<head>
+<title>ViewVC Exception</title>
+</head>
+<body>
+<h3>An Exception Has Occurred</h3>
+
+[if-any msg]
+  <p>[msg]</p>
+[end]
+
+[if-any status]
+  <h4>HTTP Response Status</h4>
+  <p><pre>[status]</pre></p>
+  <hr />
+[end]
+
+[if-any msg][else]
+<h4>Python Traceback</h4>
+<p><pre>
+[stacktrace]
+</pre></p>
+[end]
+
+[# Here follows a bunch of space characters, present to ensure that
+   our error message is larger than 512 bytes so that IE's "Friendly
+   Error Message" won't show.  For more information, see
+   http://oreillynet.com/onjava/blog/2002/09/internet_explorer_subverts_err.html]
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+                                                            
+</body>
+</html>
diff --git a/file.ezt b/file.ezt
new file mode 100644 (file)
index 0000000..9ced2b5
--- /dev/null
+++ b/file.ezt
@@ -0,0 +1,123 @@
+[# ------------------------------------------------------------------------- ]
+[# CUSTOMIZE ME: To avoid displaying "binary garbage" -- the contents of     ]
+[# files with non-human-readable file formats -- change the value of the     ]
+[# hide_binary_garbage variable below to 1.                                  ]
+[# ------------------------------------------------------------------------- ]
+
+[define hide_binary_garbage]0[end]
+
+[# ------------------------------------------------------------------------- ]
+
+[# setup page definitions]
+  [define page_title]Contents of /[where][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "markup"]
+[include "include/file_header.ezt"]
+<hr />
+<div class="vc_summary">
+Revision [if-any revision_href]<a href="[revision_href]"><strong>[rev]</strong></a>[else]<strong>[rev]</strong>[end] -
+([is annotation "annotated"]<a href="[view_href]"><strong>hide annotations</strong></a>[else]<a href="[annotate_href]"><strong>show annotations</strong></a>[end])
+[if-any download_href](<a href="[download_href]"><strong>download</strong></a>)[end]
+[if-any download_text_href](<a href="[download_text_href]"><strong>as text</strong></a>)[end]
+
+[if-any vendor_branch] <em>(vendor branch)</em>[end]
+<br /><em>[if-any date][date][else](unknown date)[end]</em>
+      [if-any ago]([ago] ago)[end]
+      by <em>[if-any author][author][else](unknown author)[end]</em>
+[if-any orig_path]
+  <br />Original Path: <a href="[orig_href]"><em>[orig_path]</em></a>
+[end]
+
+[if-any branches]
+  <br />Branch: <strong>[branches]</strong>
+[end]
+[if-any tags]
+  <br />CVS Tags: <strong>[tags]</strong>
+[end]
+[if-any branch_points]
+  <br />Branch point for: <strong>[branch_points]</strong>
+[end]
+[is roottype "cvs"]
+  [if-any changed]
+    <br />Changes since <strong>[prev]: [changed] lines</strong>
+  [end]
+[end]
+[if-any mime_type]
+  <br />File MIME type: [mime_type]
+[end]
+[is roottype "svn"][if-any size]
+  <br />File size: [size] byte(s)
+[end][end]
+[if-any lockinfo]
+  <br />Lock status: <img src="[docroot]/images/lock.png" alt="Locked" width="16" height="16" /> [lockinfo]
+[end]
+[is annotation "binary"]
+  <br /><strong>Unable to calculate annotation data on binary file contents.</strong>
+[end]
+[is annotation "error"]
+  <br /><strong>Error occurred while calculating annotation data.</strong>
+[end]
+[is state "dead"]
+  <br /><strong><em>FILE REMOVED</em></strong>
+[end]
+[if-any log]
+  <pre class="vc_log">[log]</pre>
+[end]
+</div>
+
+[if-any prefer_markup][define hide_binary_garbage]0[end][end]
+[if-any image_src_href][define hide_binary_garbage]0[end][end]
+
+[is hide_binary_garbage "1"]
+<p><strong>This file's contents are not viewable.
+   [if-any download_href]Please <a href="[download_href]">download</a>
+   this version of the file in order to view it.[end]</strong></p>
+[else]
+
+[define last_rev]0[end]
+[define rowclass]vc_row_even[end]
+
+[if-any lines]
+
+<div id="vc_file">
+<table cellspacing="0" cellpadding="0">
+[for lines]
+  [is lines.rev last_rev]
+  [else]
+    [is lines.rev rev]
+      [define rowclass]vc_row_special[end]
+    [else]
+      [is rowclass "vc_row_even"]
+        [define rowclass]vc_row_odd[end]
+      [else]
+        [define rowclass]vc_row_even[end]
+      [end]
+    [end]
+  [end]
+
+  <tr class="[rowclass]" id="l[lines.line_number]">
+    <td class="vc_file_line_number">[lines.line_number]</td>
+[is annotation "annotated"]
+    <td class="vc_file_line_author">[is lines.rev last_rev]&nbsp;[else][lines.author][end]</td>
+    <td class="vc_file_line_rev">[is lines.rev last_rev]&nbsp;[else][if-any lines.diff_href]<a href="[lines.diff_href]">[end][lines.rev][if-any lines.diff_href]</a>[end][end]</td>
+[end]
+    <td class="vc_file_line_text">[lines.text]</td>
+  </tr>
+  [define last_rev][lines.rev][end]
+[end]
+</table>
+</div>
+
+[else]
+[if-any image_src_href]
+<div id="vc_file_image">
+<img src="[image_src_href]" alt="" />
+</div>
+[end]
+[end]
+[end]
+
+[include "include/props.ezt"]
+[include "include/footer.ezt"]
diff --git a/graph.ezt b/graph.ezt
new file mode 100644 (file)
index 0000000..5227abc
--- /dev/null
+++ b/graph.ezt
@@ -0,0 +1,18 @@
+[# setup page definitions]
+  [define page_title]Graph of /[where][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "graph"]
+[include "include/file_header.ezt"]
+
+<hr />
+
+<div style="text-align:center;">
+[imagemap]
+<img usemap="#MyMapName"
+  src="[imagesrc]" 
+  alt="Revisions of [where]" />
+</div>
+
+[include "include/footer.ezt"]
diff --git a/include/diff_form.ezt b/include/diff_form.ezt
new file mode 100644 (file)
index 0000000..7bf4cdd
--- /dev/null
@@ -0,0 +1,67 @@
+  <hr />
+  <p><a name="diff"></a>
+  This form allows you to request diffs between any two revisions of this file.
+  For each of the two "sides" of the diff,
+[if-any tags]
+  select a symbolic revision name using the selection box, or choose
+  'Use Text Field' and enter a numeric revision.
+[else]
+  enter a numeric revision.
+[end]
+  </p>
+  <form method="get" action="[diff_select_action]" id="diff_select">
+
+  <table cellpadding="2" cellspacing="0" class="auto">
+  <tr>
+  <td>&nbsp;</td>
+  <td>
+  [for diff_select_hidden_values]<input type="hidden" name="[diff_select_hidden_values.name]" value="[diff_select_hidden_values.value]"/>[end]
+  Diffs between
+[if-any tags]
+  <select name="r1">
+    <option value="text" selected="selected">Use Text Field</option>
+  [for tags]
+    <option value="[tags.rev]:[tags.name]">[tags.name]</option>
+  [end]
+  </select>
+  <input type="text" size="12" name="tr1" 
+         value="[if-any rev_selected][rev_selected][else][first_revision][end]"
+         onchange="document.getElementById('diff_select').r1.selectedIndex=0" />
+[else]
+  <input type="text" size="12" name="r1"
+         value="[if-any rev_selected][rev_selected][else][first_revision][end]" />
+[end]
+
+  and
+[if-any tags]
+  <select name="r2">
+    <option value="text" selected="selected">Use Text Field</option>
+  [for tags]
+    <option value="[tags.rev]:[tags.name]">[tags.name]</option>
+  [end]
+  </select>
+  <input type="text" size="12" name="tr2" 
+         value="[last_revision]"
+         onchange="document.getElementById('diff_select').r2.selectedIndex=0" />
+[else]
+  <input type="text" size="12" name="r2" value="[last_revision]" />
+[end]
+  </td>
+  </tr>
+  <tr>
+  <td>&nbsp;</td>
+  <td>
+  Type of Diff should be a
+  <select name="diff_format" onchange="submit()">
+    <option value="h" [is diff_format "h"]selected="selected"[end]>Colored Diff</option>
+    <option value="l" [is diff_format "l"]selected="selected"[end]>Long Colored Diff</option>
+    <option value="f" [is diff_format "f"]selected="selected"[end]>Full Colored Diff</option>
+    <option value="u" [is diff_format "u"]selected="selected"[end]>Unidiff</option>
+    <option value="c" [is diff_format "c"]selected="selected"[end]>Context Diff</option>
+    <option value="s" [is diff_format "s"]selected="selected"[end]>Side by Side</option>
+  </select>
+  <input type="submit" value="  Get Diffs  " />
+  </td>
+  </tr>
+  </table>
+  </form>
diff --git a/include/dir_footer.ezt b/include/dir_footer.ezt
new file mode 100644 (file)
index 0000000..5f25e69
--- /dev/null
@@ -0,0 +1,9 @@
+[# if you want to disable tarball generation remove the following: ]
+[if-any tarball_href]
+<hr/>
+<p style="margin:0;"><a href="[tarball_href]">Download GNU tarball</a></p>
+[end]
+
+[include "props.ezt"]
+[include "footer.ezt"]
+
diff --git a/include/dir_header.ezt b/include/dir_header.ezt
new file mode 100644 (file)
index 0000000..01870bf
--- /dev/null
@@ -0,0 +1,84 @@
+[# setup page definitions]
+  [define page_title]Index of /[where][end]
+  [define help_href][docroot]/help_[if-any where]dir[else]root[end]view.html[end]
+[# end]
+
+[include "header.ezt" "directory"]
+
+[if-any where][else]
+  <!-- you may insert repository access instructions here -->
+[end]
+
+<table class="auto">
+<tr><td>Files shown:</td><td><strong>[files_shown]</strong>
+[is num_dead "0"]
+[else]
+  [if-any attic_showing]
+    (<a href="[hide_attic_href]">Hide [num_dead] dead files</a>)
+  [else]
+    (<a href="[show_attic_href]">Show [num_dead] dead files</a>)
+  [end]
+[end]
+</td></tr>
+
+[is roottype "svn"]
+<tr>
+  <td>Directory revision:</td>
+  <td><a href="[tree_rev_href]" title="Revision [tree_rev]">[tree_rev]</a>[if-any youngest_rev] (of <a href="[youngest_rev_href]" title="Revision [youngest_rev]">[youngest_rev]</a>)[end]</td>
+</tr>
+[end]
+<tr>
+  <td>Sticky [is roottype "cvs"]Tag[else]Revision[end]:</td>
+  <td>[include "pathrev_form.ezt"]</td>
+</tr>
+
+[if-any search_re_action]
+<tr>
+  <td>Filter files by content:</td>
+  <td><form method="get" action="[search_re_action]" style="display: inline;">
+      <div style="display: inline;">
+      [for search_re_hidden_values]<input type="hidden" name="[search_re_hidden_values.name]" value="[search_re_hidden_values.value]"/>[end]
+      <input type="text" name="search" value="[search_re]" />
+      <input type="submit" value="Search Regexp" />
+      </div>
+     </form>
+     [if-any search_re]
+     <form method="get" action="[search_re_action]" style="display: inline;">
+     <div style="display: inline;">
+     [for search_re_hidden_values]<input type="hidden" name="[search_re_hidden_values.name]" value="[search_re_hidden_values.value]"/>[end]
+     <input type="submit" value="Show All Files" />
+     </div>
+     </form>
+     [end]
+  </td>
+</tr>
+[end]
+
+[if-any queryform_href]
+<tr>
+  <td>Query:</td>
+  <td><a href="[queryform_href]">Query revision history</a></td>
+</tr>
+[end]
+
+</table>
+
+[is picklist_len "0"]
+[else]
+  [is picklist_len "1"]
+  [else]
+    <form method="get" action="[dir_paging_action]">
+      [for dir_paging_hidden_values]<input type="hidden" name="[dir_paging_hidden_values.name]" value="[dir_paging_hidden_values.value]"/>[end]
+      <input type="submit" value="Go to:" />
+      <select name="dir_pagestart"  onchange="submit()">
+        [for picklist]
+          <option [is picklist.count dir_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] to [picklist.end]</option>
+        [end]
+      </select>
+    </form>
+  [end]
+[end]
+
+<p><a name="dirlist"></a></p>
+<hr />
+
diff --git a/include/file_header.ezt b/include/file_header.ezt
new file mode 100644 (file)
index 0000000..091331b
--- /dev/null
@@ -0,0 +1,16 @@
+<p style="margin:0;">
+[is pathtype "file"]
+<a href="[up_href]"><img src="[docroot]/images/back_small.png" class="vc_icon" alt="Parent Directory" /> Parent Directory</a>
+[if-any log_href] 
+  | <a href="[log_href]"><img src="[docroot]/images/log.png" class="vc_icon" alt="Revision Log" /> Revision Log</a>
+[end]
+[if-any graph_href]
+  | <a href="[graph_href]"><img src="[docroot]/images/cvsgraph_16x16.png" class="vc_icon" alt="View Revision Graph" /> Revision Graph</a>
+[end]
+[is view "diff"]
+  | <a href="[patch_href]"><img src="[docroot]/images/diff.png" class="vc_icon" alt="View Patch" /> Patch</a>
+[end]
+[else]
+<a href="[view_href]"><img src="[docroot]/images/dir.png" class="vc_icon" alt="View Directory Listing" /> Directory Listing</a>
+[end]
+</p>
diff --git a/include/footer.ezt b/include/footer.ezt
new file mode 100644 (file)
index 0000000..9ad673b
--- /dev/null
@@ -0,0 +1,17 @@
+[# standard footer used by all ViewVC pages ]
+
+<hr />
+
+<table>
+<tr>
+  <td>[if-any cfg.general.address]<address><a href="mailto:[cfg.general.address]">[cfg.general.address]</a></address>[else]&nbsp;[end]</td>
+  <td style="text-align: right;"><strong><a href="[help_href]">ViewVC Help</a></strong></td>
+</tr>
+<tr>
+  <td>Powered by <a href="http://viewvc.tigris.org/">ViewVC [vsn]</a></td>
+  <td style="text-align: right;">[if-any rss_href]<a href="[rss_href]" title="RSS 2.0 feed"><img src="[docroot]/images/feed-icon-16x16.jpg" class="vc_icon" alt="RSS 2.0 feed" /></a>[else]&nbsp;[end]</td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/include/header.ezt b/include/header.ezt
new file mode 100644 (file)
index 0000000..6784114
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!-- ViewVC :: http://www.viewvc.org/ -->
+<head>
+  <title>[if-any rootname][[][rootname]][else]ViewVC[end] [page_title]</title>
+  <meta name="generator" content="ViewVC [vsn]" />
+  <link rel="shortcut icon" href="[docroot]/images/favicon.ico" type="image/x-icon" />
+  <link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />
+  [if-any rss_href]<link rel="alternate" type="application/rss+xml" title="RSS [[][rootname]][where]" href="[rss_href]" />[end]
+</head>
+<body>
+<div class="vc_navheader">
+<table><tr>
+<td><strong>[if-any roots_href]<a href="[roots_href]"><span class="pathdiv">/</span></a>[else]<span class="pathdiv">/</span>[end][if-any nav_path][for nav_path][if-any nav_path.href]<a href="[nav_path.href]">[end][if-index nav_path first][[][nav_path.name]][else][nav_path.name][end][if-any nav_path.href]</a>[end][if-index nav_path last][else]<span class="pathdiv">/</span>[end][end][end]</strong></td>
+<td style="text-align: right;">[if-any username]Logged in as: <strong>[username]</strong>[end]</td>
+</tr></table>
+</div>
+
+<div style="float: right; padding: 5px;"><a href="http://www.viewvc.org/" title="ViewVC Home"><img src="[docroot]/images/viewvc-logo.png" alt="ViewVC logotype" width="240" height="70" /></a></div>
+<h1>[page_title]</h1>
+
+
diff --git a/include/log_footer.ezt b/include/log_footer.ezt
new file mode 100644 (file)
index 0000000..b39c861
--- /dev/null
@@ -0,0 +1,10 @@
+[include "paging.ezt"]
+
+[is pathtype "file"]
+  [include "diff_form.ezt"]
+[end]
+
+[include "sort.ezt"]
+
+[include "footer.ezt"]
+
diff --git a/include/log_header.ezt b/include/log_header.ezt
new file mode 100644 (file)
index 0000000..34ed362
--- /dev/null
@@ -0,0 +1,54 @@
+[# setup page definitions]
+  [define page_title]Log of /[where][end]
+  [define help_href][docroot]/help_log.html[end]
+[# end]
+
+[include "header.ezt" "log"]
+[include "file_header.ezt"]
+
+<hr />
+
+<table class="auto">
+
+[if-any default_branch]
+<tr>
+  <td>Default branch:</td>
+  <td>[for default_branch]<a href="[default_branch.href]">[default_branch.name]</a>[if-index default_branch last][else], [end]
+[end]</td>
+</tr>
+[end]
+
+[is pathtype "file"]
+[if-any head_view_href]
+<tr>
+  <td>Links to HEAD:</td>
+  <td>
+    (<a href="[head_view_href]">view</a>)
+    [if-any head_download_href](<a href="[head_download_href]">download</a>)[end]
+    [if-any head_download_text_href](<a href="[head_download_text_href]">as text</a>)[end]
+    [if-any head_annotate_href](<a href="[head_annotate_href]">annotate</a>)[end]
+  </td>
+</tr>
+[end]
+
+[if-any tag_view_href]
+<tr>
+  <td>Links to [pathrev]:</td>
+  <td>
+    (<a href="[tag_view_href]">view</a>)
+    [if-any tag_download_href](<a href="[tag_download_href]">download</a>)[end]
+    [if-any tag_download_text_href](<a href="[tag_download_text_href]">as text</a>)[end]
+    [if-any tag_annotate_href](<a href="[tag_annotate_href]">annotate</a>)[end]
+  </td>
+</tr>
+[end]
+[end]
+
+<tr>
+  <td>Sticky [is roottype "cvs"]Tag[else]Revision[end]:</td>
+  <td>[include "pathrev_form.ezt"]</td>
+</tr>
+
+</table>
+
+[include "paging.ezt"]
diff --git a/include/paging.ezt b/include/paging.ezt
new file mode 100644 (file)
index 0000000..cad8c85
--- /dev/null
@@ -0,0 +1,20 @@
+  [is picklist_len "0"]
+  [else]
+    [is picklist_len "1"]
+    [else]
+      <hr />
+      <form method="get" action="[log_paging_action]">
+        [for log_paging_hidden_values]<input type="hidden" name="[log_paging_hidden_values.name]" value="[log_paging_hidden_values.value]"/>[end]
+        <input type="submit" value="Go to:">
+        <select name="log_pagestart"  onchange="submit()">
+          [for picklist]
+           [if-any picklist.more]
+            <option [is picklist.count log_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] ...</option>
+           [else]
+            <option [is picklist.count log_pagestart]selected[end] value="[picklist.count]">Page [picklist.page]: [picklist.start] - [picklist.end]</option>
+           [end]
+          [end]
+        </select>
+      </form>
+    [end]
+  [end]
\ No newline at end of file
diff --git a/include/pathrev_form.ezt b/include/pathrev_form.ezt
new file mode 100644 (file)
index 0000000..33ff961
--- /dev/null
@@ -0,0 +1,53 @@
+<form method="get" action="[pathrev_action]" style="display: inline">
+<div style="display: inline">
+[for pathrev_hidden_values]<input type="hidden" name="[pathrev_hidden_values.name]" value="[pathrev_hidden_values.value]"/>[end]
+[is roottype "cvs"]
+  [define pathrev_selected][pathrev][end]
+  <select name="pathrev" onchange="submit()">
+  <option value=""></option>
+  [if-any branch_tags]
+    <optgroup label="Branches">
+    [for branch_tags]
+      [is branch_tags pathrev]
+        <option selected>[branch_tags]</option>
+        [define pathrev_selected][end]
+      [else]
+        <option>[branch_tags]</option>
+      [end]
+    [end]
+    </optgroup>
+  [end]
+  <optgroup label="Non-branch tags">
+  [for plain_tags]
+    [is plain_tags pathrev]
+      <option selected>[plain_tags]</option>
+      [define pathrev_selected][end]
+    [else]
+      <option>[plain_tags]</option>
+    [end]
+  [end]
+  </optgroup>
+  [if-any pathrev_selected]
+    <option selected>[pathrev_selected]</option>
+  [end]
+  </select>
+[else]
+  <input type="text" name="pathrev" value="[pathrev]" size="6"/>
+[end]
+<input type="submit" value="Set" />
+</div>
+</form>
+
+[if-any pathrev]
+<form method="get" action="[pathrev_clear_action]" style="display: inline">
+<div style="display: inline">
+[for pathrev_clear_hidden_values]<input type="hidden" name="[pathrev_clear_hidden_values.name]" value="[pathrev_clear_hidden_values.value]"/>[end]
+[if-any lastrev]
+  [is pathrev lastrev][else]<input type="submit" value="Set to [lastrev]" />[end]
+  (<i>Current path doesn't exist after revision <strong>[lastrev]</strong></i>)
+[else]
+  <input type="submit" value="Clear" />
+[end]
+</div>
+</form>
+[end]
diff --git a/include/props.ezt b/include/props.ezt
new file mode 100644 (file)
index 0000000..0f92c38
--- /dev/null
@@ -0,0 +1,26 @@
+[if-any properties]
+<hr/>
+<div class="vc_properties">
+<h2>Properties</h2>
+<table cellspacing="1" cellpadding="2" class="auto">
+<thead>
+  <tr>
+    <th class="vc_header_sort">Name</th>
+    <th class="vc_header">Value</th>
+  </tr>
+</thead>
+<tbody>
+[for properties]
+  <tr class="vc_row_[if-index properties even]even[else]odd[end]">
+    <td><strong>[properties.name]</strong></td>
+    [if-any properties.undisplayable]
+    <td><em>Property value is undisplayable.</em></td>
+    [else]
+    <td style="white-space: pre;">[properties.value]</td>
+    [end]
+  </tr>
+[end]
+</tbody>
+</table>
+</div>
+[end]
diff --git a/include/sort.ezt b/include/sort.ezt
new file mode 100644 (file)
index 0000000..6d6d02f
--- /dev/null
@@ -0,0 +1,17 @@
+[is roottype "svn"]
+[else]
+<form method="get" action="[logsort_action]">
+  <div>
+    <hr />
+    <a name="logsort"></a>
+      [for logsort_hidden_values]<input type="hidden" name="[logsort_hidden_values.name]" value="[logsort_hidden_values.value]"/>[end]
+      Sort log by:
+      <select name="logsort" onchange="submit()">
+        <option value="cvs" [is logsort "cvs"]selected="selected"[end]>Not sorted</option>
+        <option value="date" [is logsort "date"]selected="selected"[end]>Commit date</option>
+        <option value="rev" [is logsort "rev"]selected="selected"[end]>Revision</option>
+      </select>
+      <input type="submit" value="  Sort  " />
+  </div>
+</form>
+[end]
\ No newline at end of file
diff --git a/log.ezt b/log.ezt
new file mode 100644 (file)
index 0000000..2332ee7
--- /dev/null
+++ b/log.ezt
@@ -0,0 +1,150 @@
+[include "include/log_header.ezt"]
+
+[define first_revision][end]
+[define last_revision][end]
+
+[for entries]
+[if-index entries first][define first_revision][entries.rev][end][end]
+[if-index entries last][define last_revision][entries.rev][end][end]
+
+<div>
+  <hr />
+
+  [is entries.state "dead"]
+    Revision <strong>[entries.rev]</strong>
+  [else]
+    <a name="rev[entries.rev]"></a>
+    [for entries.tag_names]<a name="[entries.tag_names]"></a>
+    [end]
+    [for entries.branch_names]<a name="[entries.branch_names]"></a>
+    [end]
+
+    Revision [is roottype "svn"]<a href="[entries.revision_href]"><strong>[entries.rev]</strong></a>[else]<strong>[entries.rev]</strong>[end] -
+    [if-any entries.view_href]
+      [is pathtype "file"]
+        (<a href="[entries.view_href]">view</a>)
+      [else]
+        <a href="[entries.view_href]">Directory Listing</a>
+      [end]
+    [end]
+    [if-any entries.download_href](<a href="[entries.download_href]">download</a>)[end]
+    [if-any entries.download_text_href](<a href="[entries.download_text_href]">as text</a>)[end]
+    [if-any entries.annotate_href](<a href="[entries.annotate_href]">annotate</a>)[end]
+
+    [is pathtype "file"]
+      [# if you don't want to allow select for diffs then remove this section]
+      [is entries.rev rev_selected]
+        - <strong>[[]selected]</strong>
+      [else]
+        - <a href="[entries.sel_for_diff_href]">[[]select for diffs]</a>
+      [end]
+    [end]
+  [end]
+
+  [if-any entries.vendor_branch]
+    <em>(vendor branch)</em>
+  [end]
+
+  <br />
+
+  [is roottype "svn"]
+    [if-index entries last]Added[else]Modified[end]
+  [end]
+
+  <em>[if-any entries.date][entries.date][else](unknown date)[end]</em>
+  [if-any entries.ago]([entries.ago] ago)[end] 
+  by <em>[if-any entries.author][entries.author][else](unknown author)[end]</em>
+
+  [if-any entries.orig_path]
+    <br />Original Path: <a href="[entries.orig_href]"><em>[entries.orig_path]</em></a>
+  [end]
+
+  [if-any entries.branches]
+    <br />Branch:
+    [for entries.branches]
+      <a href="[entries.branches.href]"><strong>[entries.branches.name]</strong></a>[if-index entries.branches last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.tags]
+    <br />CVS Tags:
+    [for entries.tags]
+      <a href="[entries.tags.href]"><strong>[entries.tags.name]</strong></a>[if-index entries.tags last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.branch_points]
+    <br />Branch point for:
+    [for entries.branch_points]
+      <a href="[entries.branch_points.href]"><strong>[entries.branch_points.name]</strong></a>[if-index entries.branch_points last][else],[end]
+    [end]
+  [end]
+
+  [if-any entries.prev]
+    [if-any entries.changed]
+      [is roottype "cvs"]
+      <br />Changes since <strong>[entries.prev]: [entries.changed] lines</strong>
+      [end]
+    [end]
+  [end]
+
+  [is roottype "svn"]
+    [if-any entries.size]
+    <br />File length: [entries.size] byte(s)
+    [end]
+
+    [if-any entries.copy_path]
+    <br />Copied from: <a href="[entries.copy_href]"><em>[entries.copy_path]</em></a> revision [entries.copy_rev]
+    [end]
+  [end]
+
+  [if-any entries.lockinfo]
+    <br />Lock status: <img src="[docroot]/images/lock.png" alt="Locked" width="16" height="16" /> [entries.lockinfo]
+  [end]
+
+  [is entries.state "dead"]
+    <br /><strong><em>FILE REMOVED</em></strong>
+  [else]
+   [is pathtype "file"]
+    [if-any entries.prev]
+      <br />Diff to <a href="[entries.diff_to_prev_href]">previous [entries.prev]</a>
+      [if-any human_readable]
+      [else]
+        (<a href="[entries.diff_to_prev_href]&amp;diff_format=h">colored</a>)
+      [end]
+    [end]
+
+    [is roottype "cvs"]
+      [if-any entries.branch_point]
+        , to <a href="[entries.diff_to_branch_href]">branch point [entries.branch_point]</a>
+        [if-any human_readable]
+        [else]
+           (<a href="[entries.diff_to_branch_href]&amp;diff_format=h">colored</a>)
+        [end]
+      [end]
+  
+      [if-any entries.next_main]
+        , to <a href="[entries.diff_to_main_href]">next main [entries.next_main]</a>
+        [if-any human_readable]
+        [else]
+           (<a href="[entries.diff_to_main_href]&amp;diff_format=h">colored</a>)
+        [end]
+      [end]
+    [end]
+
+    [if-any entries.diff_to_sel_href]
+      [if-any entries.prev], [else]<br />Diff[end]
+        to <a href="[entries.diff_to_sel_href]">selected [rev_selected]</a>
+      [if-any human_readable]
+      [else]
+        (<a href="[entries.diff_to_sel_href]&amp;diff_format=h">colored</a>)
+      [end]
+    [end]
+   [end]
+  [end]
+
+<pre class="vc_log">[entries.log]</pre>
+</div>
+[end]
+
+[include "include/log_footer.ezt"]
diff --git a/log_table.ezt b/log_table.ezt
new file mode 100644 (file)
index 0000000..192fdf1
--- /dev/null
@@ -0,0 +1,176 @@
+[include "include/log_header.ezt"]
+
+<hr />
+<table cellspacing="1" cellpadding="2">
+<thead>
+<tr>
+  <th class="vc_header[is logsort "rev"]_sort[end]">Revision</th>
+  <th class="vc_header">Tasks</th>
+  [is pathtype "file"]
+  <th class="vc_header">Diffs</th>
+  [end]
+  [is roottype "cvs"]
+  <th class="vc_header">Branches/<br />Tags</th>
+  [end]
+  <th class="vc_header[is logsort "date"]_sort[end]">Age</th>
+  <th class="vc_header">Author</th>
+</tr>
+</thead>
+
+[define first_revision][end]
+[define last_revision][end]
+
+[for entries]
+[if-index entries first][define first_revision][entries.rev][end][end]
+[if-index entries last][define last_revision][entries.rev][end][end]
+  <tbody>
+  <tr style="vertical-align: top;" class="vc_row_[if-index entries even]even[else]odd[end]">
+
+    [# Revision column]
+    <td rowspan="2">
+      [is roottype "svn"]<a href="[entries.revision_href]"><strong>[entries.rev]</strong></a>[else]<strong>[entries.rev]</strong>[end]
+      <a name="rev[entries.rev]"></a>
+    </td>
+
+    [# Tasks column]
+    <td>
+      [if-any entries.view_href]
+        [is pathtype "file"]
+          <a href="[entries.view_href]"><strong>View</strong></a><br />
+        [else]
+          <a href="[entries.view_href]"><strong>Directory Listing</strong></a><br />
+        [end]
+      [end]
+      [if-any entries.download_href]<a href="[entries.download_href]"><strong>Download</strong></a><br />[end]
+      [if-any entries.download_text_href]<a href="[entries.download_text_href]"><strong>As text</strong></a><br />[end]
+      [if-any entries.annotate_href]<a href="[entries.annotate_href]"><strong>Annotate</strong></a><br />[end]
+    </td>
+
+    [is pathtype "file"]
+      <td>
+      [# Diffs column]
+      [is entries.state "dead"]
+        <strong><em>FILE REMOVED</em></strong>
+      [else]
+      [# if you don't want to allow select for diffs then remove this section]
+      [is entries.rev rev_selected]
+        <strong>[[]selected]</strong><br />
+      [else]
+      <a href="[entries.sel_for_diff_href]"><strong>[[]select&nbsp;for&nbsp;diffs]</strong></a><br />
+      [end]
+        [if-any entries.diff_to_sel_href]
+          <a href="[entries.diff_to_sel_href]"><strong>Diff&nbsp;to&nbsp;selected&nbsp;[rev_selected]</strong></a>
+          [if-any human_readable]
+          [else]
+            (<a href="[entries.diff_to_sel_href]&amp;diff_format=h"><strong>colored</strong></a>)
+          [end]<br />
+        [end]
+        [if-any entries.prev]
+          <a href="[entries.diff_to_prev_href]"><strong>Diff&nbsp;to&nbsp;previous&nbsp;[entries.prev]</strong></a>
+          [if-any human_readable]
+          [else]
+            (<a href="[entries.diff_to_prev_href]&amp;diff_format=h"><strong>colored</strong></a>)
+          [end]<br />
+        [end]
+      [end]  
+      </td>
+    [end]
+    [is roottype "cvs"]
+    <td>
+      [# Branches column]
+      [if-any entries.vendor_branch]
+        <em>vendor branch</em><br />
+      [end]
+      [if-any entries.branches]
+        [for entries.branches]
+          <a href="[entries.branches.href]"><strong>[entries.branches.name]</strong></a><br />
+        [end]
+      [end]
+      [if-any entries.branch_points]
+        Branch point for:
+        [for entries.branch_points]
+          <a href="[entries.branch_points.href]"><strong>[entries.branch_points.name]</strong></a><br />
+        [end]
+      [end]
+      [if-any entries.next_main]
+        <a href="[entries.diff_to_main_href]"><strong>Diff&nbsp;to&nbsp;next&nbsp;MAIN&nbsp;[entries.next_main]</strong></a>
+        [if-any human_readable]
+        [else]
+          (<a href="[entries.diff_to_main_href]&amp;diff_format=h"><strong>colored</strong></a>)
+        [end]<br />
+      [end]
+      [if-any entries.branch_point]
+        <a href="[entries.diff_to_branch_href]"><strong>Diff&nbsp;to&nbsp;branch&nbsp;point&nbsp;[entries.branch_point]</strong></a>
+        [if-any human_readable]
+        [else]
+          (<a href="[entries.diff_to_branch_href]&amp;diff_format=h"><strong>colored</strong></a>)
+        [end]<br />
+      [end]
+
+      [# Tags ]
+      [if-any entries.tags]
+        <form method=get action="[pathrev_action]" >
+          [for pathrev_hidden_values]<input type="hidden" name="[pathrev_hidden_values.name]" value="[pathrev_hidden_values.value]"/>[end]
+          <select name="pathrev" onChange="submit()">
+          <option value="" [is pathrev ""]selected[end]>Show all tags</option>
+          [for entries.tags]
+            <option [is pathrev entries.tags.name]selected[end]>[entries.tags.name]</option>
+          [end]
+          </select>
+        </form>
+      [else]&nbsp;
+      [end]
+    </td>
+    [end]
+
+    [# Time column]
+    <td>
+      [is roottype "svn"]
+        [if-index entries last]Added[else]Modified[end]
+      [end]
+      [if-any entries.ago][entries.ago] ago<br />[end]
+      [if-any entries.date]<em>[entries.date]</em>[end]
+      [is roottype "cvs"]
+        [if-any entries.prev]
+          [if-any entries.changed]
+            <br />Changes since <strong>[entries.prev]: [entries.changed] lines</strong>
+          [end]
+        [end]
+      [end]
+    </td>
+
+    [# Author column]
+    <td>
+      [entries.author]
+    </td>
+
+  </tr>
+  <tr class="vc_row_[if-index entries even]even[else]odd[end]">
+    <td colspan=5>
+
+      [if-any entries.lockinfo]
+        <strong>Lock status</strong>: <img src="[docroot]/images/lock.png" alt="Locked" width="16" height="16" /> [entries.lockinfo]<br />
+      [end]
+
+      [is roottype "svn"]
+        [if-any entries.orig_path]
+          <strong>Original Path</strong>: <a href="[entries.orig_href]"><em>[entries.orig_path]</em></a><br />
+        [end]
+
+        [if-any entries.size]
+          <strong>File length: </strong>[entries.size] byte(s)<br />
+        [end]
+
+        [if-any entries.copy_path]
+           <strong>Copied from: </strong><a href="[entries.copy_href]"><em>[entries.copy_path]</em></a> revision [entries.copy_rev]<br />
+        [end]
+      [end]
+
+      <strong>Log: </strong><pre class="vc_log">[entries.log]</pre>
+    </td>
+  </tr>
+  </tbody>
+[end]
+</table>
+
+[include "include/log_footer.ezt"]
diff --git a/query.ezt b/query.ezt
new file mode 100644 (file)
index 0000000..fa33c00
--- /dev/null
+++ b/query.ezt
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!-- ViewVC :: http://www.viewvc.org/ -->
+<head>
+  <title>Checkin Database Query</title>
+  <link rel="stylesheet" href="[docroot]/styles.css" type="text/css" />
+</head>
+
+<body>
+
+[# setup page definitions]
+  [define help_href][docroot]/help_query.html[end]
+[# end]
+
+  <p> 
+    Select your parameters for querying the CVS commit database.  You
+    can search for multiple matches by typing a comma-seperated list
+    into the text fields.  Regular expressions, and wildcards are also
+    supported.  Blank text input fields are treated as wildcards.
+  </p>
+  <p>
+    Any of the text entry fields can take a comma-seperated list of
+    search arguments.  For example, to search for all commits from
+    authors <em>jpaint</em> and <em>gstein</em>, just type: <strong>jpaint,
+    gstein</strong> in the <em>Author</em> input box.  If you are searching
+    for items containing spaces or quotes, you will need to quote your
+    request.  For example, the same search above with quotes is:
+    <strong>"jpaint", "gstein"</strong>.
+  </p>
+  <p>                           
+
+    Wildcard and regular expression searches are entered in a similar
+    way to the quoted requests.  You must quote any wildcard or
+    regular expression request, and a command charactor preceeds the
+    first quote.  The command charactor <strong>l</strong> is for wildcard
+    searches, and the wildcard charactor is a percent (<strong>%</strong>).  The
+    command charactor for regular expressions is <strong>r</strong>, and is
+    passed directly to MySQL, so you'll need to refer to the MySQL
+    manual for the exact regex syntax.  It is very similar to Perl.  A
+    wildard search for all files with a <em>.py</em> extention is:
+    <strong>l"%.py"</strong> in the <em>File</em> input box.  The same search done
+    with a regular expression is: <strong>r".*\.py"</strong>.
+  </p>
+  <p>                  
+    All search types can be mixed, as long as they are seperated by
+    commas.
+  </p>                                                    
+
+<form method="get" action="">
+
+<div class="vc_query_form">
+<table cellspacing="0" cellpadding="2" class="auto">
+ <tr>
+  <td>
+   <table>
+    <tr>
+     <td style="vertical-align:top;">
+
+      <table>
+       <tr>
+        <td align="right">CVS Repository:</td>
+        <td>
+         <input type="text" name="repository" size="40" value="[repository]" />
+        </td>
+       </tr>
+       <tr>
+        <td align="right">CVS Branch:</td>
+        <td>
+         <input type="text" name="branch" size="40" value="[branch]" />
+        </td>
+       </tr>
+       <tr>
+        <td align="right">Directory:</td>
+        <td>
+         <input type="text" name="directory" size="40" value="[directory]" />
+        </td>
+       </tr>
+       <tr>
+        <td align="right">File:</td>
+        <td>
+         <input type="text" name="file" size="40" value="[file]" />
+        </td>
+       </tr>
+       <tr>
+        <td align="right">Author:</td>
+        <td>
+         <input type="text" name="who" size="40" value="[who]" />
+        </td>
+       </tr>
+      </table>
+
+     </td>
+     <td style="vertical-align:top;">
+
+      <table>
+       <tr>
+        <td align="left">Sort By:</td>
+        <td>
+         <select name="sortby">
+          <option value="date" [is sortby "date"]selected="selected"[end]>Date</option>
+          <option value="author" [is sortby "author"]selected="selected"[end]>Author</option>
+          <option value="file" [is sortby "file"]selected="selected"[end]>File</option>
+         </select>
+        </td>
+       </tr>
+       <tr>
+        <td colspan="2">
+         <table cellspacing="0" cellpadding="0">
+          <tr>
+           <td>Date:</td>
+          </tr>
+          <tr>
+           <td><input type="radio" name="date" value="hours"
+                 [is date "hours"]checked="checked"[end] /></td>
+           <td>In the last
+             <input type="text" name="hours" value="[hours]" size="4" />hours
+           </td>
+          </tr>
+          <tr>
+           <td><input type="radio" name="date" value="day"
+                 [is date "day"]checked="checked"[end] /></td>
+           <td>In the last day</td>
+          </tr>
+          <tr>
+           <td><input type="radio" name="date" value="week"
+                 [is date "week"]checked="checked"[end] /></td>
+           <td>In the last week</td>
+          </tr>
+          <tr>
+           <td><input type="radio" name="date" value="month"
+                 [is date "month"]checked="checked"[end] /></td>
+           <td>In the last month</td>
+          </tr>
+          <tr>
+           <td><input type="radio" name="date" value="all"
+                 [is date "all"]checked="checked"[end] /></td>
+           <td>Since the beginning of time</td>
+          </tr>
+         </table>
+        </td>
+       </tr>
+      </table>
+
+     </td>
+    </tr>
+   </table>
+  </td>
+  <td>
+   <input type="submit" value="Search" />
+  </td>
+ </tr>
+</table>
+</div>
+
+</form>
+
+[is query "skipped"]
+[else]
+<p><strong>[num_commits]</strong> matches found.</p>
+
+[if-any commits]
+<table cellspacing="0" cellpadding="2">
+ <thead>
+ <tr class="vc_header">
+  <th>Revision</th>
+  <th>File</th>
+  <th>Branch</th>
+  <th>+/-</th>
+  <th>Date</th>
+  <th>Author</th>
+[# uncommment, if you want a separate Description column: (also see below)
+<th>Description</th>
+]
+ </tr>
+ </thead>
+[for commits]
+ <tbody>
+  [for commits.files]
+    <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+      <td style="vertical-align:top;">
+       [if-any commits.files.rev][commits.files.rev][else]&nbsp;[end]
+      </td>
+      <td style="vertical-align:top;">[commits.files.link]</td>
+      <td style="vertical-align:top;">
+       [if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
+      </td>
+      <td style="vertical-align:top;">
+        [is commits.files.type "Add"]<ins>[end]
+        [is commits.files.type "Change"]<a href="[commits.files.difflink]">[end]
+        [is commits.files.type "Remove"]<del>[end]
+          [commits.files.plus]/[commits.files.minus]
+        [is commits.files.type "Add"]</ins>[end]
+        [is commits.files.type "Change"]</a>[end]
+        [is commits.files.type "Remove"]</del>[end]
+      </td>
+      <td style="vertical-align:top;">
+       [if-any commits.files.date][commits.files.date][else]&nbsp;[end]
+      </td>
+      <td style="vertical-align:top;">
+       [if-any commits.files.author][commits.files.author][else]&nbsp;[end]
+      </td>
+
+[# uncommment, if you want a separate Description column:
+      {if-index commits.files first{
+        <td style="vertical-align:top;" rowspan="{commits.num_files}">
+          {commits.log}
+        </td>
+      {end}
+
+   (substitute brackets for the braces)
+]
+    </tr>
+[# and also take the following out in the "Description column"-case:]
+      [if-index commits.files last]
+       <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+         <td>&nbsp;</td>
+         <td colspan="5"><strong>Log:</strong><br />
+           <pre class="vc_log">[commits.log]</pre></td>
+       </tr>
+      [end]
+[# ---]
+  [end]
+ </tbody>
+[end]
+
+ <tr class="vc_header">
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+[# uncommment, if you want a separate Description column:
+  <th style="text-align:left;vertical-align:top;">&nbsp;</th>
+]
+ </tr>
+</table>
+[end]
+[end]
+[include "include/footer.ezt"]
diff --git a/query_form.ezt b/query_form.ezt
new file mode 100644 (file)
index 0000000..be10014
--- /dev/null
@@ -0,0 +1,207 @@
+[# setup page definitions]
+  [define page_title]Query on /[where][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "query"]
+
+<p><a href="[dir_href]">
+<img src="[docroot]/images/dir.png" class="vc_icon" alt="Directory" />
+Browse Directory</a></p>
+
+<form action="[query_action]" method="get">
+
+<div class="vc_query_form">
+  [for query_hidden_values]<input type="hidden" name="[query_hidden_values.name]" value="[query_hidden_values.value]"/>[end]
+<table cellspacing="0" cellpadding="5" class="auto">
+  [is roottype "cvs"]
+  [# For subversion, the branch field is not used ]
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Branch:</th>
+    <td>
+      <input type="text" name="branch" value="[branch]" /><br />
+      <label for="branch_match_exact">
+        <input type="radio" name="branch_match" id="branch_match_exact"
+           value="exact" [is branch_match "exact"]checked="checked"[end] />
+        Exact match
+      </label>
+      <label for="branch_match_glob">
+        <input type="radio" name="branch_match" id="branch_match_glob"
+           value="glob" [is branch_match "glob"]checked="checked"[end] />
+        Glob pattern match
+      </label>
+      <label for="branch_match_regex">
+        <input type="radio" name="branch_match" id="branch_match_regex"
+           value="regex" [is branch_match "regex"]checked="checked"[end] />
+        Regex match
+      </label>
+      <label for="branch_match_notregex">
+        <input type="radio" name="branch_match" id="branch_match_notregex"
+           value="notregex" [is branch_match "notregex"]checked="checked"[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  [end]
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Subdirectory:</th>
+    <td>
+      <input type="text" name="dir" value="[dir]" /><br />
+      (you can list multiple directories separated by commas)
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">File:</th>
+    <td>
+      <input type="text" name="file" value="[file]" /><br />
+      <label for="file_match_exact">
+        <input type="radio" name="file_match" id="file_match_exact"
+           value="exact" [is file_match "exact"]checked="checked"[end] />
+        Exact match
+      </label>
+      <label for="file_match_glob">
+        <input type="radio" name="file_match" id="file_match_glob"
+           value="glob" [is file_match "glob"]checked="checked"[end] />
+        Glob pattern match
+      </label>
+      <label for="file_match_regex">
+        <input type="radio" name="file_match" id="file_match_regex"
+           value="regex" [is file_match "regex"]checked="checked"[end] />
+        Regex match
+      </label>
+      <label for="file_match_notregex">
+        <input type="radio" name="file_match" id="file_match_notregex"
+           value="notregex" [is file_match "notregex"]checked="checked"[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Who:</th>
+    <td>
+      <input type="text" name="who" value="[who]" /><br />
+      <label for="who_match_exact">
+        <input type="radio" name="who_match" id="who_match_exact"
+           value="exact" [is who_match "exact"]checked="checked"[end] />
+        Exact match
+      </label>
+      <label for="who_match_glob">
+        <input type="radio" name="who_match" id="who_match_glob"
+           value="glob" [is who_match "glob"]checked="checked"[end] />
+        Glob pattern match
+      </label>
+      <label for="who_match_regex">
+        <input type="radio" name="who_match" id="who_match_regex"
+           value="regex" [is who_match "regex"]checked="checked"[end] />
+        Regex match
+      </label>
+      <label for="who_match_notregex">
+        <input type="radio" name="who_match" id="who_match_notregex"
+           value="notregex" [is who_match "notregex"]checked="checked"[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Comment:</th>
+    <td>
+      <input type="text" name="comment" value="[comment]" /><br />
+      <label for="comment_match_exact">
+        <input type="radio" name="comment_match" id="comment_match_exact"
+           value="exact" [is comment_match "exact"]checked=""[end] />
+        Exact match
+      </label>
+      <label for="comment_match_glob">
+        <input type="radio" name="comment_match" id="comment_match_glob"
+           value="glob" [is comment_match "glob"]checked=""[end] />
+        Glob pattern match
+      </label>
+      <label for="comment_match_regex">
+        <input type="radio" name="comment_match" id="comment_match_regex"
+           value="regex" [is comment_match "regex"]checked=""[end] />
+        Regex match
+      </label>
+      <label for="comment_match_notregex">
+        <input type="radio" name="comment_match" id="comment_match_notregex"
+           value="notregex" [is comment_match "notregex"]checked=""[end] />
+        Regex doesn't match
+      </label>
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Sort By:</th>
+    <td>
+      <select name="querysort">
+        <option value="date" [is querysort "date"]selected="selected"[end]>Date</option>
+        <option value="author" [is querysort "author"]selected="selected"[end]>Author</option>
+        <option value="file" [is querysort "file"]selected="selected"[end]>File</option>
+      </select>
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Date:</th>
+    <td>
+      <table cellspacing="0" cellpadding="0">
+        <tr>
+          <td><input type="radio" name="date" id="date_hours"
+                 value="hours" [is date "hours"]checked="checked"[end] /></td>
+          <td>
+            <label for="date_hours">In the last</label>
+            <input type="text" name="hours" value="[hours]" size="4" />
+            hours
+          </td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_day"
+                 value="day" [is date "day"]checked="checked"[end] /></td>
+          <td><label for="date_day">In the last day</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_week"
+                 value="week" [is date "week"]checked="checked"[end] /></td>
+          <td><label for="date_week">In the last week</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_month"
+                 value="month" [is date "month"]checked="checked"[end] /></td>
+          <td><label for="date_month">In the last month</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_all"
+                 value="all" [is date "all"]checked="checked"[end] /></td>
+          <td><label for="date_all">Since the beginning of time</label></td>
+        </tr>
+        <tr>
+          <td><input type="radio" name="date" id="date_explicit"
+                 value="explicit" [is date "explicit"]checked="checked"[end] /></td>
+          <td>
+            <label for="date_explicit">Between</label>
+            <input type="text" name="mindate" value="[mindate]" size="20" />
+            and
+            <input type="text" name="maxdate" value="[maxdate]" size="20" />
+            <br />
+            (use the form <strong>yyyy-mm-dd hh:mm:ss</strong>)
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+  <tr>
+    <th style="text-align:right;vertical-align:top;">Limit:</th>
+    <td>
+      Show at most
+      <input type="text" name="limit_changes" value="[limit_changes]" size="5" />
+      changed files per commit.<br />
+      (use 0 to show all files)
+    </td>
+  </tr>
+  <tr>
+    <td></td>
+    <td><input type="submit" value="Search" /></td>
+  </tr>
+</table>
+</div>
+
+</form>
+
+[include "include/footer.ezt"]
diff --git a/query_results.ezt b/query_results.ezt
new file mode 100644 (file)
index 0000000..c165a59
--- /dev/null
@@ -0,0 +1,86 @@
+[# setup page definitions]
+  [define page_title]Query results on /[where][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt"]
+
+<p><strong>[english_query]</strong></p>
+[# <!-- {sql} --> ]
+<p><a href="[queryform_href]">Modify query</a></p>
+<p><a href="[backout_href]">Show commands which could be used to back out these changes</a></p>
+
+<p><strong>+[plus_count]/-[minus_count]</strong> lines changed.</p>
+
+[if-any commits]
+<table cellspacing="1" cellpadding="2">
+ <thead>
+  <tr>
+   <th class="vc_header">Revision</th>
+   <th class="vc_header[is querysort "file"]_sort[end]">File</th>
+[if-any show_branch]
+   <th class="vc_header">Branch</th>
+[end]
+   <th class="vc_header">+/-</th>
+   <th class="vc_header[is querysort "date"]_sort[end]">Date</th>
+   <th class="vc_header[is querysort "author"]_sort[end]">Author</th>
+[# uncommment, if you want a separate Description column: (also see below)
+   <th class="vc_header">Description</th>
+]
+  </tr>
+ </thead>
+[for commits]
+  [for commits.files]
+    <tbody>
+    <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+      <td style="vertical-align: top;">
+        [define rev_href][if-any commits.files.prefer_markup][commits.files.view_href][else][if-any commits.files.download_href][commits.files.download_href][end][end][end]
+       [if-any commits.files.rev][if-any rev_href]<a href="[rev_href]">[end][commits.files.rev][if-any rev_href]</a>[end][else]&nbsp;[end]
+      </td>
+      <td style="vertical-align: top;">
+        <a href="[commits.files.dir_href]">[commits.files.dir]/</a>
+        <a href="[commits.files.log_href]">[commits.files.file]</a>
+      </td>
+[if-any show_branch]
+      <td style="vertical-align: top;">
+       [if-any commits.files.branch][commits.files.branch][else]&nbsp;[end]
+      </td>
+[end]
+      <td style="vertical-align: top;">
+        [# only show a diff link for changes ]
+        [is commits.files.type "Add"]<ins>[end]
+        [is commits.files.type "Change"]<a href="[commits.files.diff_href]">[end]
+        [is commits.files.type "Remove"]<del>[end]
+          [commits.files.plus]/[commits.files.minus]
+        [is commits.files.type "Add"]</ins>[end]
+        [is commits.files.type "Change"]</a>[end]
+        [is commits.files.type "Remove"]</del>[end]
+      </td>
+      <td style="vertical-align: top;">
+       [if-any commits.files.date][commits.files.date][else]&nbsp;[end]
+      </td>
+      <td style="vertical-align: top;">
+       [if-any commits.files.author][commits.files.author][else]&nbsp;[end]
+      </td>
+    </tr>
+  [end]
+  [if-any commits.limited_files]
+    <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+      <td>&nbsp;</td>
+      <td colspan="5">
+        <strong><em><small>Only first [commits.num_files] files shown.
+        <a href="[limit_changes_href]">Show all files</a> or
+        <a href="[queryform_href]">adjust limit</a>.</small></em></strong>
+    </tr>
+  [end]
+  <tr class="vc_row_[if-index commits even]even[else]odd[end]">
+    <td>&nbsp;</td>
+    <td colspan="5"><strong>Log:</strong><br />
+      <pre class="vc_log">[commits.log]</pre></td>
+  </tr>
+  </tbody>
+[end]
+</table>
+[end]
+
+[include "include/footer.ezt"]
diff --git a/revision.ezt b/revision.ezt
new file mode 100644 (file)
index 0000000..2732a80
--- /dev/null
@@ -0,0 +1,80 @@
+[# setup page definitions]
+  [define page_title]Revision [rev][end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "revision"]
+
+<hr />
+<form method="get" action="[jump_rev_action]">
+<table cellspacing="1" cellpadding="2" style="width: auto;">
+  <tr align="left">
+    <th>Jump to revision:</th>
+    <td>
+      [for jump_rev_hidden_values]<input type="hidden" name="[jump_rev_hidden_values.name]" value="[jump_rev_hidden_values.value]"/>[end]
+      <input type="text" name="revision" value="[rev]" />
+      <input type="submit" value="Go" />
+      [if-any prev_href]
+        <a href="[prev_href]" title="Previous Revision"><img src="[docroot]/images/back.png" alt="Previous" width="20" height="22" /></a>[end]
+      [if-any next_href] <a href="[next_href]" title="Next Revision"><img src="[docroot]/images/forward.png" width="20" height="22" alt="Next" /></a>[end]
+    </td>
+  </tr>
+  <tr align="left">
+    <th>Author:</th>
+    <td>[if-any author][author][else]<em>(unknown author)</em>[end]</td>
+  </tr>
+  <tr align="left">
+    <th>Date:</th>
+    <td>[if-any date][date][else]<em>(unknown date)</em>[end]
+        [if-any ago]<em>([ago] ago)</em>[end]</td>
+  </tr>
+  <tr align="left">
+    <th>Changed paths:</th>
+    <td><strong>[num_changes]</strong>
+        [if-any more_changes](showing only [limit_changes]; <a href="[more_changes_href]">show all</a>)[end][if-any first_changes](<a href="[first_changes_href]">show only first [first_changes]</a>)[end]</td>
+  </tr>
+  <tr align="left">
+    <th>Log Message:</th>
+    <td><pre class="vc_log">[log]</pre></td>
+  </tr>
+</table>
+</form>
+
+<hr />
+
+<p><strong>Changed paths:</strong></p>
+
+<table cellspacing="1" cellpadding="2">
+  <thead>
+  <tr align="left">
+    <th class="vc_header_sort">Path</th>
+    <th class="vc_header">Details</th>
+  </tr>
+  </thead>
+  <tbody>
+  [if-any changes]
+   [for changes]
+    <tr class="vc_row_[if-index changes even]even[else]odd[end]">
+      <td>[if-any changes.view_href]<a href="[changes.view_href]" title="View [is changes.pathtype "dir"]Directory[else]File[end] Contents">[end]<img src="[docroot]/images/[is changes.pathtype "dir"]dir[else]text[end].png" class="vc_icon" alt="Directory" />[changes.path][is changes.pathtype "dir"]/[end][if-any changes.view_href]</a>[end]
+      [if-any changes.is_copy]<br /><em>(Copied from [changes.copy_path], r[changes.copy_rev])</em>[end]
+      </td>
+      <td>[if-any changes.log_href]<a href="[changes.log_href]" title="View Log">[end][changes.action][if-any changes.log_href]</a>[end]
+          [if-any changes.text_mods], [if-any changes.diff_href]<a href="[changes.diff_href]" title="View Diff">[end]text changed[if-any changes.diff_href]</a>[end][end]
+          [if-any changes.prop_mods], props changed[end]
+      </td>
+    </tr>
+   [end]
+  [else]
+    <tr>
+    <td colspan="5">No changed paths.</td>
+    </tr>
+  [end]
+  [if-any more_changes]
+    <tr>
+    <td colspan="5">[[]<a href="[more_changes_href]">...</a>]</td>
+    </tr>
+  [end]
+  </tbody>
+</table>
+
+[include "include/footer.ezt"]
diff --git a/roots.ezt b/roots.ezt
new file mode 100644 (file)
index 0000000..5d939ca
--- /dev/null
+++ b/roots.ezt
@@ -0,0 +1,29 @@
+[# setup page definitions]
+  [define page_title]Repository Listing[end]
+  [define help_href][docroot]/help_rootview.html[end]
+[# end]
+
+[include "include/header.ezt" "directory"]
+
+<table cellspacing="1" cellpadding="2">
+<thead>
+<tr>
+  <th class="vc_header_sort">Name</th>
+</tr>
+</thead>
+
+<tbody>
+[for roots]
+  <tr class="vc_row_[if-index roots even]even[else]odd[end]">
+    <td>
+      <a href="[roots.href]">
+      <img src="[docroot]/images/dir.png" alt="" class="vc_icon" />
+      [roots.name]</a>
+    </td>
+  </tr>
+[end]
+</tbody>
+
+</table>
+
+[include "include/footer.ezt"]
diff --git a/rss.ezt b/rss.ezt
new file mode 100644 (file)
index 0000000..7accf6e
--- /dev/null
+++ b/rss.ezt
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<rss version="2.0">
+<channel>
+    <link>[rss_link_href]</link>
+    <title>[rootname] checkins[if-any where] (in [where])[end]</title>
+
+    <description>[is roottype "svn"]Subversion[else]CVS[end] commits to the[if-any where] [where] directory of the[end] [rootname] repository</description>
+
+       [for commits]<item>
+        <title>[if-any commits.rev][commits.rev]: [end][[commits.author]] [commits.short_log]</title>
+               [if-any commits.rss_url]<link>[commits.rss_url]</link>[end]
+               <author>[commits.author]</author>
+               <pubDate>[if-any commits.rss_date][commits.rss_date][else](unknown date)[end]</pubDate>
+               <description>&lt;pre&gt;[format "xml"][commits.log][end]&lt;/pre&gt;</description>
+    </item>[end]
+</channel>     
+</rss>