keithsalisbury-subtrac 0.1.15 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|