keithsalisbury-subtrac 0.1.15 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +3 -0
- data/{lib/subtrac/templates/projects/blank/svn/branches/README → README.rdoc} +0 -0
- data/bin/subtrac +1 -3
- data/lib/subtrac.rb +97 -292
- data/spec/subtrac_spec.rb +54 -0
- data/subtrac.gemspec +37 -0
- data/tasks/docs.rake +13 -0
- data/tasks/gemspec.rake +3 -0
- data/tasks/spec.rake +25 -0
- metadata +27 -45
- data/LICENSE +0 -20
- data/README.markdown +0 -200
- data/Rakefile +0 -56
- data/VERSION.yml +0 -4
- data/lib/subtrac/commands.rb +0 -6
- data/lib/subtrac/commands/create.rb +0 -13
- data/lib/subtrac/commands/install.rb +0 -10
- data/lib/subtrac/common/clients/index.wsgi +0 -89
- data/lib/subtrac/common/favicon.ico +0 -0
- data/lib/subtrac/common/images/trac/banner_bg.jpg +0 -0
- data/lib/subtrac/common/images/trac/bar_bg.gif +0 -0
- data/lib/subtrac/common/images/trac/footer_back.png +0 -0
- data/lib/subtrac/common/images/trac/main_bg.gif +0 -0
- data/lib/subtrac/common/images/trac/saint_logo_small.png +0 -0
- data/lib/subtrac/common/static/404.html +0 -14
- data/lib/subtrac/common/styles/trac.css +0 -222
- data/lib/subtrac/config/config.yml +0 -58
- data/lib/subtrac/passwords +0 -3
- data/lib/subtrac/shared/trac.ini +0 -178
- data/lib/subtrac/templates/location.erb +0 -16
- data/lib/subtrac/templates/projects/blank/svn/tags/README +0 -0
- data/lib/subtrac/templates/projects/blank/svn/trunk/README +0 -0
- data/lib/subtrac/templates/projects/blank/trac/wiki/WikiStart +0 -57
- data/lib/subtrac/templates/projects/new/svn/trunk/trac/wiki/WikiStart +0 -46
- data/lib/subtrac/templates/projects/new/trac/wiki/WikiStart +0 -23
- data/lib/subtrac/templates/projects/trac_theme/svn/trunk/index/index.html +0 -21
- data/lib/subtrac/templates/projects/trac_theme/svn/trunk/templates/layout.html +0 -56
- data/lib/subtrac/templates/projects/trac_theme/svn/trunk/templates/site.html +0 -27
- data/lib/subtrac/templates/projects/trac_theme/svn/trunk/templates/theme.html +0 -86
- data/lib/subtrac/templates/projects/trac_theme/trac/wiki/WikiStart +0 -4
- data/lib/subtrac/templates/trac.erb +0 -25
- data/lib/subtrac/templates/vhost.erb +0 -38
- data/lib/subtrac/version.rb +0 -4
data/lib/subtrac/passwords
DELETED
data/lib/subtrac/shared/trac.ini
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
[attachment]
|
4
|
-
max_size = 262144
|
5
|
-
render_unsafe_content = false
|
6
|
-
|
7
|
-
[browser]
|
8
|
-
color_scale = True
|
9
|
-
downloadable_paths = /trunk, /branches/*, /tags/*
|
10
|
-
hide_properties = svk:merge
|
11
|
-
intermediate_color =
|
12
|
-
intermediate_point =
|
13
|
-
newest_color = (255, 136, 136)
|
14
|
-
oldest_color = (136, 136, 255)
|
15
|
-
oneliner_properties = trac:summary
|
16
|
-
render_unsafe_content = false
|
17
|
-
wiki_properties = trac:description
|
18
|
-
|
19
|
-
[changeset]
|
20
|
-
max_diff_bytes = 10000000
|
21
|
-
max_diff_files = 0
|
22
|
-
wiki_format_messages = true
|
23
|
-
|
24
|
-
[header_logo]
|
25
|
-
alt = Saint Development Server
|
26
|
-
height = -1
|
27
|
-
link = /
|
28
|
-
src = /images/trac/saint_logo_small.png
|
29
|
-
width = -1
|
30
|
-
|
31
|
-
[inherit]
|
32
|
-
plugins_dir =
|
33
|
-
templates_dir =
|
34
|
-
|
35
|
-
[logging]
|
36
|
-
log_file = trac.log
|
37
|
-
# log_format = <inherited>
|
38
|
-
log_level = DEBUG
|
39
|
-
log_type = none
|
40
|
-
|
41
|
-
[milestone]
|
42
|
-
stats_provider = DefaultTicketGroupStatsProvider
|
43
|
-
|
44
|
-
[mimeviewer]
|
45
|
-
enscript_modes = text/x-dylan:dylan:4
|
46
|
-
enscript_path = enscript
|
47
|
-
max_preview_size = 262144
|
48
|
-
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
|
49
|
-
php_path = php
|
50
|
-
tab_width = 8
|
51
|
-
|
52
|
-
[notification]
|
53
|
-
admit_domains =
|
54
|
-
always_notify_owner = false
|
55
|
-
always_notify_reporter = false
|
56
|
-
always_notify_updater = true
|
57
|
-
ignore_domains =
|
58
|
-
mime_encoding = base64
|
59
|
-
smtp_always_bcc =
|
60
|
-
smtp_always_cc =
|
61
|
-
smtp_default_domain =
|
62
|
-
smtp_enabled = false
|
63
|
-
smtp_from = trac@localhost
|
64
|
-
smtp_from_name =
|
65
|
-
smtp_password =
|
66
|
-
smtp_port = 25
|
67
|
-
smtp_replyto = trac@localhost
|
68
|
-
smtp_server = localhost
|
69
|
-
smtp_subject_prefix = __default__
|
70
|
-
smtp_user =
|
71
|
-
ticket_subject_template = $prefix #$ticket.id: $summary
|
72
|
-
use_public_cc = false
|
73
|
-
use_short_addr = false
|
74
|
-
use_tls = false
|
75
|
-
|
76
|
-
[project]
|
77
|
-
admin =
|
78
|
-
admin_trac_url = .
|
79
|
-
descr = My example project
|
80
|
-
footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>
|
81
|
-
icon = /favicon.ico
|
82
|
-
url =
|
83
|
-
|
84
|
-
[query]
|
85
|
-
default_anonymous_query = status!=closed&cc~=$USER
|
86
|
-
default_query = status!=closed&owner=$USER
|
87
|
-
items_per_page = 100
|
88
|
-
|
89
|
-
[report]
|
90
|
-
items_per_page = 100
|
91
|
-
items_per_page_rss = 0
|
92
|
-
|
93
|
-
[revisionlog]
|
94
|
-
default_log_limit = 100
|
95
|
-
|
96
|
-
[roadmap]
|
97
|
-
stats_provider = DefaultTicketGroupStatsProvider
|
98
|
-
|
99
|
-
[search]
|
100
|
-
min_query_length = 3
|
101
|
-
|
102
|
-
[svn]
|
103
|
-
branches = trunk,branches/*
|
104
|
-
tags = tags/*
|
105
|
-
|
106
|
-
[ticket]
|
107
|
-
default_cc =
|
108
|
-
default_component =
|
109
|
-
default_description =
|
110
|
-
default_keywords =
|
111
|
-
default_milestone =
|
112
|
-
default_owner =
|
113
|
-
default_priority = major
|
114
|
-
default_resolution = fixed
|
115
|
-
default_severity =
|
116
|
-
default_summary =
|
117
|
-
default_type = defect
|
118
|
-
default_version =
|
119
|
-
max_comment_size = 262144
|
120
|
-
max_description_size = 262144
|
121
|
-
preserve_newlines = default
|
122
|
-
restrict_owner = false
|
123
|
-
workflow = ConfigurableTicketWorkflow
|
124
|
-
|
125
|
-
[ticket-workflow]
|
126
|
-
accept = new,assigned,accepted,reopened -> accepted
|
127
|
-
accept.operations = set_owner_to_self
|
128
|
-
accept.permissions = TICKET_MODIFY
|
129
|
-
leave = * -> *
|
130
|
-
leave.default = 1
|
131
|
-
leave.operations = leave_status
|
132
|
-
reassign = new,assigned,accepted,reopened -> assigned
|
133
|
-
reassign.operations = set_owner
|
134
|
-
reassign.permissions = TICKET_MODIFY
|
135
|
-
reopen = closed -> reopened
|
136
|
-
reopen.operations = del_resolution
|
137
|
-
reopen.permissions = TICKET_CREATE
|
138
|
-
resolve = new,assigned,accepted,reopened -> closed
|
139
|
-
resolve.operations = set_resolution
|
140
|
-
resolve.permissions = TICKET_MODIFY
|
141
|
-
|
142
|
-
[timeline]
|
143
|
-
abbreviated_messages = True
|
144
|
-
changeset_collapse_events = false
|
145
|
-
changeset_long_messages = false
|
146
|
-
changeset_show_files = 0
|
147
|
-
default_daysback = 30
|
148
|
-
max_daysback = 90
|
149
|
-
newticket_formatter = oneliner
|
150
|
-
ticket_show_details = false
|
151
|
-
|
152
|
-
[trac]
|
153
|
-
authz_file =
|
154
|
-
authz_module_name =
|
155
|
-
auto_reload = False
|
156
|
-
base_url =
|
157
|
-
check_auth_ip = false
|
158
|
-
database = sqlite:db/trac.db
|
159
|
-
default_charset = iso-8859-15
|
160
|
-
htdocs_location =
|
161
|
-
ignore_auth_case = false
|
162
|
-
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search
|
163
|
-
metanav = login,logout,prefs,help,about
|
164
|
-
permission_policies = DefaultPermissionPolicy, LegacyAttachmentPolicy
|
165
|
-
permission_store = DefaultPermissionStore
|
166
|
-
repository_type = svn
|
167
|
-
secure_cookies = False
|
168
|
-
show_email_addresses = false
|
169
|
-
show_ip_addresses = false
|
170
|
-
timeout = 20
|
171
|
-
use_base_url_for_redirect = False
|
172
|
-
|
173
|
-
[wiki]
|
174
|
-
ignore_missing_pages = false
|
175
|
-
max_size = 262144
|
176
|
-
render_unsafe_content = false
|
177
|
-
split_page_names = false
|
178
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<location /<%= client_name %>>
|
2
|
-
SetHandler mod_python
|
3
|
-
PythonInterpreter main_interpreter
|
4
|
-
PythonHandler trac.web.modpython_frontend
|
5
|
-
PythonOption TracEnvParentDir <%= trac_dir %>/<%= client_name %>
|
6
|
-
PythonOption TracUriRoot /<%= client_name %>
|
7
|
-
PythonOption TracEnvIndexTemplate <%= trac_dir %>/<%= client_name %>/.theme/index/index.html
|
8
|
-
PythonOption PYTHON_EGG_CACHE /tmp
|
9
|
-
</location>
|
10
|
-
<location <%= @APP_CONFIG[:urls][:svn] %>/<%= client_name %>>
|
11
|
-
DAV svn
|
12
|
-
SVNParentPath <%= svn_dir %>/<%= client_name %>
|
13
|
-
SVNListParentPath On
|
14
|
-
SVNAutoversioning On
|
15
|
-
SVNReposName "Saint Digital Source Repository for <%= client_name %>"
|
16
|
-
</location>
|
File without changes
|
File without changes
|
@@ -1,57 +0,0 @@
|
|
1
|
-
[[PageOutline]]
|
2
|
-
= Welcome to the Saint Development Server =
|
3
|
-
|
4
|
-
This is the home of development for <%= client %>. This page is editable by design. That means YOU. If something is missing, fix it. This is what you make of it so get involved.
|
5
|
-
|
6
|
-
== Starting Points ==
|
7
|
-
|
8
|
-
* [<%= @APP_CONFIG[:urls][:svn] %>/ Browse all <%= client_name %> SVN Repositories]
|
9
|
-
* [<%= @APP_CONFIG[:urls][:svn] %>/<%= client_name %>/<%= project_name %> Browse the <%= project_name %> repository]
|
10
|
-
|
11
|
-
=== How to check this project out ===
|
12
|
-
|
13
|
-
Make sure you have subversion client installed, then you can check the project out using:
|
14
|
-
|
15
|
-
{{{
|
16
|
-
svn checkout http://<%= @server_hostname %><%= @APP_CONFIG[:urls][:svn] %>/<%= client_name %>/<%= project_name %>/trunk <%= project_name %>
|
17
|
-
}}}
|
18
|
-
|
19
|
-
=== Using SVN ===
|
20
|
-
|
21
|
-
* [http://tortoisesvn.tigris.org/ For Windows use Tortoise SVN]
|
22
|
-
* [http://scplugin.tigris.org/ For OS X use SCPlugin]
|
23
|
-
* [http://theappleblog.com/2009/02/23/12-subversion-apps-for-os-x/ There's loads more if you don't like these]
|
24
|
-
|
25
|
-
== Template Projects ==
|
26
|
-
|
27
|
-
This system allows you to set up a default template for different project types. All templates are available to browse in the [<%= @APP_CONFIG[:urls][:svn] %>/templates/svn/ Browse all Templates Repositories] area.
|
28
|
-
|
29
|
-
|
30
|
-
= About Trac =
|
31
|
-
|
32
|
-
Trac is a '''minimalistic''' approach to '''web-based''' management of
|
33
|
-
'''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress.
|
34
|
-
|
35
|
-
All aspects of Trac have been designed with the single goal to
|
36
|
-
'''help developers write great software''' while '''staying out of the way'''
|
37
|
-
and imposing as little as possible on a team's established process and
|
38
|
-
culture.
|
39
|
-
|
40
|
-
As all Wiki pages, this page is editable, this means that you can
|
41
|
-
modify the contents of this page simply by using your
|
42
|
-
web-browser. Simply click on the "Edit this page" link at the bottom
|
43
|
-
of the page. WikiFormatting will give you a detailed description of
|
44
|
-
available Wiki formatting commands.
|
45
|
-
|
46
|
-
TracGuide is a good place to start.
|
47
|
-
|
48
|
-
Enjoy! [[BR]]
|
49
|
-
''The Saint Team''
|
50
|
-
|
51
|
-
== Starting Points ==
|
52
|
-
|
53
|
-
* TracGuide -- Built-in Documentation
|
54
|
-
* [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions
|
55
|
-
* TracSupport -- Trac Support
|
56
|
-
|
57
|
-
For a complete list of local wiki pages, see TitleIndex.
|
@@ -1,46 +0,0 @@
|
|
1
|
-
[[PageOutline]]
|
2
|
-
= Welcome to the Saint Development Server =
|
3
|
-
|
4
|
-
This is the home of development for {CLIENT_NAME}. This page is editable by design. That means YOU. If something is missing, fix it. This is what you make of it so get involved.
|
5
|
-
|
6
|
-
== Starting Points ==
|
7
|
-
|
8
|
-
* [http://{SERVER_HOSTNAME}/{CLIENT_NAME}/svn/ Browse all {CLIENT_NAME} SVN Repositories]
|
9
|
-
* [http://{SERVER_HOSTNAME}/{CLIENT_NAME}/svn/{PROJECT_NAME} Browse the {PROJECT_NAME} repository]
|
10
|
-
|
11
|
-
=== How to check this project out ===
|
12
|
-
|
13
|
-
Make sure you have subversion client installed, then you can check the project out using:
|
14
|
-
|
15
|
-
{{{
|
16
|
-
svn checkout http://{SERVER_HOSTNAME}/svn/{CLIENT_NAME}/{PROJECT_NAME}/trunk {PROJECT_NAME}
|
17
|
-
}}}
|
18
|
-
|
19
|
-
= About Trac =
|
20
|
-
|
21
|
-
Trac is a '''minimalistic''' approach to '''web-based''' management of
|
22
|
-
'''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress.
|
23
|
-
|
24
|
-
All aspects of Trac have been designed with the single goal to
|
25
|
-
'''help developers write great software''' while '''staying out of the way'''
|
26
|
-
and imposing as little as possible on a team's established process and
|
27
|
-
culture.
|
28
|
-
|
29
|
-
As all Wiki pages, this page is editable, this means that you can
|
30
|
-
modify the contents of this page simply by using your
|
31
|
-
web-browser. Simply click on the "Edit this page" link at the bottom
|
32
|
-
of the page. WikiFormatting will give you a detailed description of
|
33
|
-
available Wiki formatting commands.
|
34
|
-
|
35
|
-
TracGuide is a good place to start.
|
36
|
-
|
37
|
-
Enjoy! [[BR]]
|
38
|
-
''The Saint Team''
|
39
|
-
|
40
|
-
== Starting Points ==
|
41
|
-
|
42
|
-
* TracGuide -- Built-in Documentation
|
43
|
-
* [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions
|
44
|
-
* TracSupport -- Trac Support
|
45
|
-
|
46
|
-
For a complete list of local wiki pages, see TitleIndex.
|
@@ -1,23 +0,0 @@
|
|
1
|
-
= Welcome to the {PROJECT_NAME} for {CLIENT_NAME} =
|
2
|
-
|
3
|
-
This is the home of development for {CLIENT_NAME}. This page is editable by design. That means YOU. If something is missing, fix it. This is what you make of it so get involved.
|
4
|
-
|
5
|
-
== Starting Points ==
|
6
|
-
|
7
|
-
* [http://{SERVER_HOSTNAME}/{CLIENT_NAME}/svn/ Browse all {CLIENT_NAME} SVN Repositories]
|
8
|
-
* [http://{SERVER_HOSTNAME}/{CLIENT_NAME}/svn/{PROJECT_NAME} Browse the {PROJECT_NAME} repository]
|
9
|
-
|
10
|
-
=== How to check this project out ===
|
11
|
-
|
12
|
-
Make sure you have subversion client installed, then you can check the project out using:
|
13
|
-
|
14
|
-
{{{
|
15
|
-
svn checkout http://{SERVER_HOSTNAME}/svn/{CLIENT_NAME}/{PROJECT_NAME}/trunk {PROJECT_NAME}
|
16
|
-
}}}
|
17
|
-
|
18
|
-
|
19
|
-
=== Using SVN ===
|
20
|
-
|
21
|
-
* [http://tortoisesvn.tigris.org/ For Windows use Tortoise SVN]
|
22
|
-
* [http://scplugin.tigris.org/ For OS X use SCPlugin]
|
23
|
-
* [http://theappleblog.com/2009/02/23/12-subversion-apps-for-os-x/ There's loads more if you don't like these]
|
@@ -1,21 +0,0 @@
|
|
1
|
-
<!DOCTYPE html
|
2
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
-
<html xmlns="http://www.w3.org/1999/xhtml"
|
5
|
-
xmlns:py="http://genshi.edgewall.org/"
|
6
|
-
xmlns:xi="http://www.w3.org/2001/XInclude">
|
7
|
-
<head>
|
8
|
-
<title>Available Projects</title>
|
9
|
-
</head>
|
10
|
-
<body>
|
11
|
-
<h1>Available Projects for Subtrac</h1>
|
12
|
-
<ul>
|
13
|
-
<py:for each="project in projects" py:choose="">
|
14
|
-
<li py:when="project.href">
|
15
|
-
<a href="$project.href"
|
16
|
-
title="$project.description">$project.name</a>
|
17
|
-
</li>
|
18
|
-
</py:for>
|
19
|
-
</ul>
|
20
|
-
</body>
|
21
|
-
</html>
|
@@ -1,56 +0,0 @@
|
|
1
|
-
<!DOCTYPE html
|
2
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
-
<html xmlns="http://www.w3.org/1999/xhtml"
|
5
|
-
xmlns:xi="http://www.w3.org/2001/XInclude"
|
6
|
-
xmlns:py="http://genshi.edgewall.org/"
|
7
|
-
py:strip="">
|
8
|
-
|
9
|
-
<py:match path="head" once="true"><head>
|
10
|
-
<title py:with="title = list(select('title/text()'))">
|
11
|
-
<py:if test="title">${title} – </py:if>${project.name or 'Trac'}
|
12
|
-
</title>
|
13
|
-
<py:if test="chrome.links">
|
14
|
-
<py:for each="rel, links in chrome.links.items()">
|
15
|
-
<link rel="${rel}" py:for="link in links" py:attrs="link" />
|
16
|
-
</py:for>
|
17
|
-
</py:if>
|
18
|
-
<py:if test="'SEARCH_VIEW' in perm" id="search">
|
19
|
-
<link type="application/opensearchdescription+xml" rel="search"
|
20
|
-
href="${href.search('opensearch')}" title="Search $project.name"/>
|
21
|
-
</py:if>
|
22
|
-
<script py:for="script in chrome.scripts"
|
23
|
-
type="${script.type}" src="${script.href}"></script>
|
24
|
-
${Markup('<!--[if lt IE 7]>')}
|
25
|
-
<script type="text/javascript" src="${chrome.htdocs_location}js/ie_pre7_hacks.js"
|
26
|
-
></script>
|
27
|
-
${Markup('<![endif]-->')}
|
28
|
-
${select("*[local-name() != 'title']")}
|
29
|
-
</head></py:match>
|
30
|
-
|
31
|
-
<py:match path="body" once="true" buffer="false"><body>
|
32
|
-
${select('*|text()')}
|
33
|
-
|
34
|
-
<script type="text/javascript" py:if="chrome.late_links">
|
35
|
-
<py:for each="link in chrome.late_links.get('stylesheet')">
|
36
|
-
jQuery.loadStyleSheet("${link.href}", "${link.type}");
|
37
|
-
</py:for>
|
38
|
-
</script>
|
39
|
-
<script py:for="script in chrome.late_scripts"
|
40
|
-
type="${script.type}" src="${script.href}"></script>
|
41
|
-
|
42
|
-
<div id="altlinks" py:if="'alternate' in chrome.links">
|
43
|
-
<h3>Download in other formats:</h3>
|
44
|
-
<ul>
|
45
|
-
<li py:for="idx, link in enumerate(chrome.links.alternate)"
|
46
|
-
class="${first_last(idx, chrome.links.alternate)}">
|
47
|
-
<a rel="nofollow" href="${link.href}" class="${link['class']}"
|
48
|
-
py:content="link.title" />
|
49
|
-
</li>
|
50
|
-
</ul>
|
51
|
-
</div>
|
52
|
-
</body></py:match>
|
53
|
-
|
54
|
-
<xi:include href="$chrome.theme"><xi:fallback /></xi:include>
|
55
|
-
<xi:include href="site.html"><xi:fallback /></xi:include>
|
56
|
-
</html>
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<html xmlns="http://www.w3.org/1999/xhtml"
|
2
|
-
xmlns:py="http://genshi.edgewall.org/"
|
3
|
-
py:strip="">
|
4
|
-
|
5
|
-
<!--! Add site-specific style sheet -->
|
6
|
-
<head py:match="head" py:attrs="select('@*')">
|
7
|
-
${select('*|comment()|text()')}
|
8
|
-
<link rel="stylesheet" type="text/css"
|
9
|
-
href="${href.chrome('site/style.css')}" />
|
10
|
-
<link rel="stylesheet" type="text/css"
|
11
|
-
href="/styles/trac.css"/>
|
12
|
-
</head>
|
13
|
-
|
14
|
-
<body py:match="body" py:attrs="select('@*')">
|
15
|
-
<!--! Add site-specific header -->
|
16
|
-
<div id="siteheader">
|
17
|
-
<!--! Place your header content here... -->
|
18
|
-
</div>
|
19
|
-
|
20
|
-
${select('*|text()')}
|
21
|
-
|
22
|
-
<!--! Add site-specific footer -->
|
23
|
-
<div id="sitefooter">
|
24
|
-
<!--! Place your footer content here... -->
|
25
|
-
</div>
|
26
|
-
</body>
|
27
|
-
</html>
|
@@ -1,86 +0,0 @@
|
|
1
|
-
<!DOCTYPE html
|
2
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
-
<html xmlns="http://www.w3.org/1999/xhtml"
|
5
|
-
xmlns:xi="http://www.w3.org/2001/XInclude"
|
6
|
-
xmlns:py="http://genshi.edgewall.org/"
|
7
|
-
py:strip="">
|
8
|
-
|
9
|
-
<div py:def="navigation(category)" id="${category}" class="nav">
|
10
|
-
<ul py:if="chrome.nav[category]">
|
11
|
-
<li py:for="idx, item in enumerate(chrome.nav[category])"
|
12
|
-
class="${classes(first_last(idx, chrome.nav[category]), active=item.active)
|
13
|
-
}">${item.label}</li>
|
14
|
-
</ul>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<py:match path="body" once="true" buffer="false"><body>
|
18
|
-
<div id="banner">
|
19
|
-
<div id="header" py:choose="">
|
20
|
-
<a py:when="chrome.logo.src" id="logo" href="${chrome.logo.link or href.wiki(
|
21
|
-
'TracIni')+'#header_logo-section'}"><img
|
22
|
-
src="${chrome.logo.src}" alt="${chrome.logo.alt}"
|
23
|
-
height="${chrome.logo.height or None}" width="${chrome.logo.width or None}"
|
24
|
-
/></a>
|
25
|
-
<h1 py:otherwise=""><a href="${chrome.logo.link}">${project.name}</a></h1>
|
26
|
-
</div>
|
27
|
-
<form id="search" action="${href.search()}" method="get">
|
28
|
-
<div py:if="'SEARCH_VIEW' in perm">
|
29
|
-
<label for="proj-search">Search:</label>
|
30
|
-
<input type="text" id="proj-search" name="q" size="18" accesskey="f" value=
|
31
|
-
"" />
|
32
|
-
<input type="submit" value="Search" />
|
33
|
-
</div>
|
34
|
-
</form>
|
35
|
-
${navigation('metanav')}
|
36
|
-
</div>
|
37
|
-
${navigation('mainnav')}
|
38
|
-
|
39
|
-
<div id="main">
|
40
|
-
<div id="ctxtnav" class="nav">
|
41
|
-
<h2>Context Navigation</h2>
|
42
|
-
<ul py:if="chrome.ctxtnav">
|
43
|
-
<li py:for="i, elm in enumerate(chrome.ctxtnav)"
|
44
|
-
class="${classes(first_last(i, chrome.ctxtnav))}">$elm</li>
|
45
|
-
</ul>
|
46
|
-
<hr />
|
47
|
-
</div>
|
48
|
-
<div id="warning" py:if="chrome.warnings" class="system-message">
|
49
|
-
<py:choose test="len(chrome.warnings)">
|
50
|
-
<py:when test="1">
|
51
|
-
<strong>Warning:</strong> ${chrome.warnings[0]}
|
52
|
-
</py:when>
|
53
|
-
<py:otherwise>
|
54
|
-
<strong>Warnings:</strong>
|
55
|
-
<ul><li py:for="w in chrome.warnings">$w</li></ul>
|
56
|
-
</py:otherwise>
|
57
|
-
</py:choose>
|
58
|
-
</div>
|
59
|
-
<div id="notice" py:if="chrome.notices" class="system-message">
|
60
|
-
<py:choose test="len(chrome.notices)">
|
61
|
-
<py:when test="1">
|
62
|
-
<strong>Notice:</strong> ${chrome.notices[0]}
|
63
|
-
</py:when>
|
64
|
-
<py:otherwise>
|
65
|
-
<strong>Notices:</strong>
|
66
|
-
<ul><li py:for="w in chrome.notices">$w</li></ul>
|
67
|
-
</py:otherwise>
|
68
|
-
</py:choose>
|
69
|
-
</div>
|
70
|
-
|
71
|
-
${select('*|text()')}
|
72
|
-
</div>
|
73
|
-
|
74
|
-
<div id="footer" xml:lang="en"><hr/>
|
75
|
-
<a id="tracpowered" href="http://trac.edgewall.org/"><img
|
76
|
-
src="${chrome.htdocs_location}trac_logo_mini.png" height="30"
|
77
|
-
width="107" alt="Trac Powered"/></a>
|
78
|
-
<p class="left">
|
79
|
-
Powered by <a href="${href.about()}"><strong>Trac ${trac.version}</strong></a
|
80
|
-
><br />
|
81
|
-
By <a href="http://www.edgewall.org/">Edgewall Software</a>.
|
82
|
-
</p>
|
83
|
-
<p class="right">${chrome.footer}</p>
|
84
|
-
</div>
|
85
|
-
</body></py:match>
|
86
|
-
</html>
|