ohac-ditz 0.5.1

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.
Binary file
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>Component <%= component.name %></title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <link rel="stylesheet" href="style.css" type="text/css" />
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <div class="main">
15
+
16
+ <h1><%= project.name %> component: <%= component.name %></h1>
17
+ <div class="backptr"><%= link_to "index", "&laquo; #{project.name} project page" %></div>
18
+
19
+ <h2>All issues</h2>
20
+ <%= render "issue_table", :show_component => false, :show_release => true %>
21
+ </div>
22
+ <div class="footer">Generated by <a href="http://ditz.rubyforge.org/">ditz</a>.</div>
23
+ </body>
24
+ </html>
Binary file
Binary file
@@ -0,0 +1,130 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title><%= project.name %> Issue Tracker</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <link rel="stylesheet" href="style.css" type="text/css" />
10
+ </head>
11
+ <body>
12
+
13
+ <div class="main">
14
+ <h1><%= project.name %> Issue Tracker</h1>
15
+
16
+ <h2>Upcoming Releases</h2>
17
+ <% if upcoming_releases.empty? %>
18
+ <p>No upcoming releases.</p>
19
+ <% else %>
20
+ <table>
21
+ <tbody>
22
+ <% upcoming_releases.each do |r| %>
23
+ <%
24
+ issues = project.issues_for_release r
25
+ num_done = issues.count_of { |i| i.closed? }
26
+ pct_done = issues.size == 0 ? 1.0 : (num_done.to_f / issues.size.to_f)
27
+ open_issues = issues.select { |i| i.open? }
28
+ %>
29
+ <tr><td>
30
+ <%= link_to r, "#{r.name}" %>
31
+ </td>
32
+ <td>
33
+ <% if issues.empty? %>
34
+ no issues
35
+ <% elsif open_issues.empty? %>
36
+ ready for release!
37
+ <% else %>
38
+ <%= progress_meter pct_done %>
39
+ <%= sprintf "%.0f%%", pct_done * 100.0 %> complete
40
+ </td>
41
+ </tr><tr><td></td><td>
42
+ <%= num_done %> / <%= issues.size %> issues.
43
+ <%= link_to r, "See issues &raquo;" %>
44
+ <% end %>
45
+ </td>
46
+ </tr>
47
+ <% end %>
48
+ </tbody>
49
+ </table>
50
+ <% end %>
51
+
52
+ <h2>Past Releases</h2>
53
+ <% if past_releases.empty? %>
54
+ <p>No past releases.</p>
55
+ <% else %>
56
+ <table>
57
+ <tbody>
58
+ <% past_releases.sort_by { |r| r.release_time }.reverse.each do |r| %>
59
+ <tr><td><%= link_to r, r.name %></td><td class="littledate">on <%= r.release_time.pretty_date %></td></tr>
60
+ <% end %>
61
+ </tbody>
62
+ </table>
63
+ <% end %>
64
+
65
+ <h2>Unassigned issues</h2>
66
+ <%
67
+ issues = project.unassigned_issues
68
+ open_issues = issues.select { |i| i.open? }
69
+ %>
70
+ <p>
71
+ <% if issues.empty? %>
72
+ No unassigned issues.
73
+ <% else %>
74
+ <%= link_to "unassigned", "unassigned issue".pluralize(issues.size).capitalize %> (<%= open_issues.size.to_pretty_s %> open).
75
+ <% end %>
76
+ </p>
77
+
78
+ <% if components.size > 1 %>
79
+ <h2>Open Issues by component</h2>
80
+ <table>
81
+ <tbody>
82
+ <% components.each do |c| %>
83
+ <%
84
+ issues = project.issues_for_component c
85
+ num_done = issues.count_of { |i| i.closed? }
86
+ pct_done = issues.size == 0 ? 1.0 : (num_done.to_f / issues.size.to_f)
87
+ open_issues = issues.select { |i| i.open? }
88
+ %>
89
+ <% if open_issues.empty? %>
90
+ <tr class="dimmed">
91
+ <% else %>
92
+ <tr>
93
+ <% end %>
94
+ <td>
95
+ <%= link_to c, c.name %>
96
+ </td><td>
97
+ <%= "open issue".pluralize(open_issues.size) %>
98
+ </td></tr>
99
+ <% end %>
100
+ </tbody>
101
+ </table>
102
+ <% end %>
103
+
104
+ <h2>Recent activity</h2>
105
+
106
+ <table class="log">
107
+ <tbody>
108
+ <% project.issues.map { |i| i.log_events.map { |e| [e, i] } }.
109
+ flatten_one_level.
110
+ sort_by { |e| e.first.first }.
111
+ reverse[0 ... 25].
112
+ each_with_index do |((date, who, what, comment), i), idx| %>
113
+ <tr class="<%= idx % 2 == 0 ? "even-row" : "odd-row" %>">
114
+ <td class="date"><%= date.pretty_date %></td>
115
+ <td class="issuename">
116
+ <%= issue_link_for i, :status_image => true %>
117
+ </td>
118
+ <td> <%= what %> </td>
119
+ </tr>
120
+ <tr><td></td></tr>
121
+ <% end %>
122
+ </tbody>
123
+ </table>
124
+
125
+ </div>
126
+
127
+ <div class="footer">Generated by <a href="http://ditz.rubyforge.org/">ditz</a>.</div>
128
+
129
+ </body>
130
+ </html>
@@ -0,0 +1,119 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title><%= issue.title %></title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <link rel="stylesheet" href="style.css" type="text/css" />
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <div class="main">
15
+
16
+ <h1><%= link_issue_names project, issue.title %></h1>
17
+ <div class="backptr"><%= link_to "index", "&laquo; #{project.name} project page" %></div>
18
+
19
+ <% if issue.desc && !issue.desc.empty? %>
20
+ <div class="description">
21
+ <%= link_issue_names project, p(issue.desc) %>
22
+ </div>
23
+ <% end %>
24
+
25
+ <h2>Details</h2>
26
+ <table>
27
+ <tbody>
28
+ <tr>
29
+ <td class="attrname">Id:</td>
30
+ <td class="attrval"><span class="id"><%= issue.id %></span></td>
31
+ </tr>
32
+
33
+ <tr>
34
+ <td class="attrname">Type:</td>
35
+ <td class="attrval"><%= issue.type %></td>
36
+ </tr>
37
+
38
+ <tr>
39
+ <td class="attrname">Creation time:</td>
40
+ <td class="attrval"><%=t issue.creation_time %></td>
41
+ </tr>
42
+
43
+ <tr>
44
+ <td class="attrname">Creator:</td>
45
+ <td class="attrval"><span class="person"><%=obscured_email issue.reporter %></span></td>
46
+ </tr>
47
+
48
+ <% unless issue.references.empty? %>
49
+ <tr>
50
+ <td class="attrname">References:</td>
51
+ <td class="attrval">
52
+ <% issue.references.each_with_index do |r, i| %>
53
+ [<%= i + 1 %>] <%= link_to r, r %><br/>
54
+ <% end %>
55
+ </td>
56
+ </tr>
57
+
58
+ <% end %>
59
+
60
+ <tr>
61
+ <td class="attrname">Release:</td>
62
+ <td class="attrval">
63
+ <% if release %>
64
+ <%= link_to release, release.name %>
65
+ <% if release.released? %>
66
+ (released <%= release.release_time.pretty_date %>)
67
+ <% else %>
68
+ (unreleased)
69
+ <% end %>
70
+ <% else %>
71
+ <%= link_to "unassigned", "unassigned" %>
72
+ <% end %>
73
+ </td>
74
+ </tr>
75
+
76
+ <tr>
77
+ <td class="attrname">Component:</td>
78
+ <td class="attrval"><%= link_to component, component.name %></td>
79
+ </tr>
80
+
81
+ <tr>
82
+ <td class="attrname">Status:</td>
83
+ <td class="attrval">
84
+ <%= issue.status_string %><% if issue.closed? %>: <%= issue.disposition_string %><% end %>
85
+ <%= issue_status_img_for issue, :class => "inline-status-image" %>
86
+ </td>
87
+ </tr>
88
+
89
+ <%= extra_summary_html %>
90
+ </tbody>
91
+ </table>
92
+
93
+ <%= extra_details_html %>
94
+
95
+ <h2>Issue log</h2>
96
+
97
+ <table class="log">
98
+ <tbody>
99
+ <% issue.log_events.reverse.each_with_index do |(time, who, what, comment), i| %>
100
+ <tr class="<%= i % 2 == 0 ? "even-row" : "odd-row" %>">
101
+ <td class="date"><%=t time %></td>
102
+ <td class="person"><%=obscured_email who %></td>
103
+ <td class="message"><%=h what %></td>
104
+ </tr>
105
+ <% unless comment.empty? %>
106
+ <tr><td colspan="3" class="logcomment">
107
+ <%= link_issue_names project, comment %>
108
+ </td></tr>
109
+ <% end %>
110
+ <tr><td></td></tr>
111
+ <% end %>
112
+ </tbody>
113
+ </table>
114
+
115
+ </div>
116
+ <div class="footer">Generated by <a href="http://ditz.rubyforge.org/">ditz</a>.</div>
117
+
118
+ </body>
119
+ </html>
@@ -0,0 +1,28 @@
1
+ <table>
2
+ <tbody>
3
+ <% issues.sort_by { |i| i.creation_time }.reverse.each do |i| %>
4
+ <tr>
5
+ <td> <%= issue_status_img_for i %> </td>
6
+ <td class="littledate"><%= i.creation_time.pretty_date %></td>
7
+ <td class="issuename">
8
+ <%= issue_link_for i %>
9
+ </td>
10
+ <% if show_release %>
11
+ <td class="issuerelease">
12
+ <% if i.release %>
13
+ <% r = project.release_for i.release %>
14
+ <%= link_to r, i.release %>
15
+ <% else %>
16
+ <% end %>
17
+ </td>
18
+ <% end %>
19
+ <% if show_component %>
20
+ <td class="issuecomponent">
21
+ component <%= link_to project.component_for(i.component), i.component %>
22
+ </td>
23
+ <% end %>
24
+ </tr>
25
+ <% end %>
26
+ </tbody>
27
+ </table>
28
+
Binary file
@@ -0,0 +1,98 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title><%= project.name %> release <%= release.name %></title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <link rel="stylesheet" href="style.css" type="text/css" />
10
+ </head>
11
+ <body>
12
+
13
+ <div class="main">
14
+
15
+ <h1><%= project.name %> release <%= release.name %></h1>
16
+ <div class="backptr"><%= link_to "index", "&laquo; #{project.name} project page" %></div>
17
+
18
+ <table>
19
+ <tbody>
20
+ <tr>
21
+ <td class="attrname">Status:</td>
22
+ <td class="attrval"><%= release.status %></td>
23
+ </tr>
24
+ <% if release.released? %>
25
+ <tr>
26
+ <td class="attrname">Release time:</td>
27
+ <td class="attrval"><%=t release.release_time %></td>
28
+ </tr>
29
+ <% end %>
30
+ <tr>
31
+ <td class="attrname">Completion:</td>
32
+ <td>
33
+ <%
34
+ num_done = issues.count_of { |i| i.closed? }
35
+ pct_done = issues.size == 0 ? 1.0 : (num_done.to_f / issues.size.to_f)
36
+ %>
37
+ <%= progress_meter pct_done %>
38
+ <%= sprintf "%.0f%%", pct_done * 100.0 %>
39
+ </td>
40
+ </tr>
41
+ <tr><td></td><td class="attrval">
42
+ <%= num_done %> / <%= issues.size %> issues
43
+ </td></tr>
44
+ </tbody>
45
+ </table>
46
+
47
+ <h2>Issues</h2>
48
+ <% if issues.empty? %>
49
+ <p>No issues assigned to this release.</p>
50
+ <% else %>
51
+ <%= render "issue_table", :show_component => false, :show_release => false %>
52
+ <% end %>
53
+
54
+ <h2>Recent activity for this release</h2>
55
+ <table class="log">
56
+ <tbody>
57
+ <% issues.map { |i| i.log_events.map { |e| [e, i] } }.
58
+ flatten_one_level.
59
+ sort_by { |e| e.first.first }.
60
+ reverse[0 ... 10].
61
+ each_with_index do |((date, who, what, comment), i), idx| %>
62
+ <tr class="<%= idx % 2 == 0 ? "even-row" : "odd-row" %>">
63
+ <td class="date"><%= date.pretty_date %></td>
64
+ <td class="issuename">
65
+ <%= issue_link_for i, :status_image => true %>
66
+ </td>
67
+ <td> <%= what %> </td>
68
+ </tr>
69
+ <tr><td></td></tr>
70
+ <% end %>
71
+ </tbody>
72
+ </table>
73
+
74
+ <h2>Release log</h2>
75
+ <table class="log">
76
+ <tbody>
77
+ <% release.log_events.reverse.each_with_index do |(time, who, what, comment), i| %>
78
+ <tr class="<%= i % 2 == 0 ? "even-row" : "odd-row" %>">
79
+ <td class="date"><%=h time %></td>
80
+ <td class="person"><%=obscured_email who %></td>
81
+ <td class="message"><%=h what %></td>
82
+ </tr>
83
+ <tr><td colspan="3" class="logcomment">
84
+ <% if comment.empty? %>
85
+ <% else %>
86
+ <%= link_issue_names project, comment %>
87
+ <% end %>
88
+ </td></tr>
89
+ <tr><td></td></tr>
90
+ <% end %>
91
+ </tbody>
92
+ </table>
93
+
94
+ </div>
95
+ <div class="footer">Generated by <a href="http://ditz.rubyforge.org/">ditz</a>.</div>
96
+
97
+ </body>
98
+ </html>
@@ -0,0 +1,226 @@
1
+ body {
2
+ font-family: "lucida grande", "sans serif";
3
+ color: #333;
4
+ width: 60em;
5
+ margin: auto;
6
+ }
7
+
8
+ div.main {
9
+ padding: 20px;
10
+ margin: auto;
11
+ padding-top: 0;
12
+ margin-top: 1em;
13
+ background-color: #fcfcfc;
14
+ }
15
+
16
+ .person {
17
+ font-family: courier;
18
+ }
19
+
20
+ a, a:visited {
21
+ background: inherit;
22
+ text-decoration: none;
23
+ }
24
+
25
+ a {
26
+ color: #003d41;
27
+ }
28
+
29
+ a:visited {
30
+ color: #553d41;
31
+ }
32
+
33
+ ul {
34
+ list-style-type: none;
35
+ padding: 0;
36
+ }
37
+
38
+ p {
39
+ width: 40em;
40
+ }
41
+
42
+ .inline-status-image {
43
+ position: relative;
44
+ top: 0.2em;
45
+ }
46
+
47
+ .dimmed {
48
+ color: #bbb;
49
+ }
50
+
51
+ table {
52
+ border-style: none;
53
+ border-spacing: 0;
54
+ }
55
+
56
+ table.log {
57
+ }
58
+
59
+
60
+ td {
61
+ border-width: 0;
62
+ border-style: none;
63
+ padding-right: 0.5em;
64
+ padding-left: 0.5em;
65
+ }
66
+
67
+ tr {
68
+ vertical-align: top;
69
+ }
70
+
71
+ h1 {
72
+ padding: 0.5em;
73
+ margin-left: -20px;
74
+ margin-right: -20px;
75
+ background-color: #305275;
76
+ margin-top: 0;
77
+ margin-bottom: 0;
78
+ color: #fff;
79
+ }
80
+
81
+ h2 {
82
+ text-transform: uppercase;
83
+ font-size: smaller;
84
+ margin-top: 1em;
85
+ margin-left: -0.5em;
86
+ width: 100%;
87
+ /*background: #fffbce;*/
88
+ /*background: #628a0d;*/
89
+ padding: 5px;
90
+ color: #305275;
91
+ }
92
+
93
+ .attrname {
94
+ text-align: right;
95
+ font-size: smaller;
96
+ }
97
+
98
+ .attrval {
99
+ color: #222;
100
+ }
101
+
102
+ .issue-closed-fixed {
103
+ background-image: "green-check.png";
104
+ }
105
+
106
+ .issue-closed-wontfix {
107
+ background-image: "red-check.png";
108
+ }
109
+
110
+ .issue-closed-reorg {
111
+ background-image: "blue-check.png";
112
+ }
113
+
114
+ .inline-issue-link {
115
+ text-decoration: underline;
116
+ }
117
+
118
+ img {
119
+ border: 0;
120
+ }
121
+
122
+ /*
123
+ .issuestatus_closed {
124
+ background-color: #f2fff2;
125
+ text-align: center;
126
+ }
127
+
128
+ .issuestatus_in_progress {
129
+ background-color: #fffff2;
130
+ text-align: center;
131
+ }
132
+
133
+ .issuestatus_paused {
134
+ background-color: #fffff2;
135
+ text-align: center;
136
+ }
137
+
138
+ .issuestatus_unstarted {
139
+ background-color: #fff2f2;
140
+ text-align: center;
141
+ }
142
+
143
+ .issuestatus_closed a {
144
+ color: #202020;
145
+ }
146
+
147
+ .issuestatus_in_progress a {
148
+ color: #202020;
149
+ }
150
+
151
+ .issuestatus_paused a {
152
+ color: #202020;
153
+ }
154
+
155
+ .issuestatus_unstarted a {
156
+ color: #202020;
157
+ }
158
+ */
159
+
160
+ div.footer {
161
+ font-size: small;
162
+ padding-left: 20px;
163
+ padding-right: 20px;
164
+ padding-top: 5px;
165
+ padding-bottom: 5px;
166
+ margin: auto;
167
+ background: #305275;
168
+ color: #fffee7;
169
+ }
170
+
171
+ .footer a {
172
+ color: #508d91;
173
+ }
174
+
175
+ .even-row {
176
+ font-size: smaller;
177
+ background-color: #f2f2f2;
178
+ }
179
+
180
+ .odd-row {
181
+ font-size: smaller;
182
+ background-color: #f2f2f2;
183
+ }
184
+
185
+ .backptr {
186
+ font-size: smaller;
187
+ width: 100%;
188
+ text-align: left;
189
+ padding-bottom: 1em;
190
+ margin-top: 0;
191
+ }
192
+
193
+ .logcomment {
194
+ padding-left: 4em;
195
+ font-size: smaller;
196
+ }
197
+
198
+ .id {
199
+ font-family: monospace;
200
+ }
201
+
202
+ .description {
203
+ background: #f2f2f2;
204
+ padding-left: 1em;
205
+ padding-right: 1em;
206
+ padding-top: 0.5em;
207
+ padding-bottom: 0.5em;
208
+ }
209
+
210
+ .message {
211
+ }
212
+
213
+ .littledate {
214
+ font-size: smaller;
215
+ }
216
+
217
+ .progress-meter-done {
218
+ background-color: #03af00;
219
+ }
220
+
221
+ .progress-meter-undone {
222
+ background-color: #ddd;
223
+ }
224
+
225
+ .progress-meter {
226
+ }
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>Issues not assigned to any release</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <link rel="stylesheet" href="style.css" type="text/css" />
10
+ </head>
11
+ <body>
12
+
13
+ <div class="main">
14
+ <h1>Issues not assigned to any release</h1>
15
+ <div class="backptr"><%= link_to "index", "&laquo; #{project.name} project page" %></div>
16
+
17
+ <h2>All issues</h2>
18
+ <%= render "issue_table", :show_component => false, :show_release => true %>
19
+ </div>
20
+ <div class="footer">Generated by <a href="http://ditz.rubyforge.org/">ditz</a>.</div>
21
+
22
+ </body>
23
+ </html>
Binary file