##// END OF EJS Templates
Adds group folding on issue list (#2679)....
Jean-Philippe Lang -
r2615:1930cf3d4603
parent child
Show More
@@ -1,32 +1,33
1 1 <% form_tag({}) do -%>
2 2 <table class="list issues">
3 3 <thead><tr>
4 4 <th><%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;',
5 5 :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
6 6 </th>
7 7 <%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %>
8 8 <% query.columns.each do |column| %>
9 9 <%= column_header(column) %>
10 10 <% end %>
11 11 </tr></thead>
12 12 <% group = false %>
13 13 <tbody>
14 14 <% issues.each do |issue| -%>
15 15 <% if @query.grouped? && issue.send(@query.group_by) != group %>
16 16 <% group = issue.send(@query.group_by) %>
17 17 <% reset_cycle %>
18 <tr class="group">
18 <tr class="group open">
19 19 <td colspan="<%= query.columns.size + 2 %>">
20 <span class="expander" onclick="toggleRowGroup(this); return false;">&nbsp;</span>
20 21 <%= group.blank? ? 'None' : group %> <span class="count">(<%= @issue_count_by_group[group] %>)</span>
21 22 </td>
22 23 </tr>
23 24 <% end %>
24 25 <tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %>">
25 26 <td class="checkbox"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
26 27 <td><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>
27 28 <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %>
28 29 </tr>
29 30 <% end -%>
30 31 </tbody>
31 32 </table>
32 33 <% end -%>
@@ -1,144 +1,154
1 1 /* redMine - project management software
2 2 Copyright (C) 2006-2008 Jean-Philippe Lang */
3 3
4 4 function checkAll (id, checked) {
5 5 var els = Element.descendants(id);
6 6 for (var i = 0; i < els.length; i++) {
7 7 if (els[i].disabled==false) {
8 8 els[i].checked = checked;
9 9 }
10 10 }
11 11 }
12 12
13 13 function toggleCheckboxesBySelector(selector) {
14 14 boxes = $$(selector);
15 15 var all_checked = true;
16 16 for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } }
17 17 for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; }
18 18 }
19 19
20 20 function showAndScrollTo(id, focus) {
21 21 Element.show(id);
22 22 if (focus!=null) { Form.Element.focus(focus); }
23 23 Element.scrollTo(id);
24 24 }
25 25
26 function toggleRowGroup(el) {
27 var tr = Element.up(el, 'tr');
28 var n = Element.next(tr);
29 tr.toggleClassName('open');
30 while (n != undefined && !n.hasClassName('group')) {
31 Element.toggle(n);
32 n = Element.next(n);
33 }
34 }
35
26 36 var fileFieldCount = 1;
27 37
28 38 function addFileField() {
29 39 if (fileFieldCount >= 10) return false
30 40 fileFieldCount++;
31 41 var f = document.createElement("input");
32 42 f.type = "file";
33 43 f.name = "attachments[" + fileFieldCount + "][file]";
34 44 f.size = 30;
35 45 var d = document.createElement("input");
36 46 d.type = "text";
37 47 d.name = "attachments[" + fileFieldCount + "][description]";
38 48 d.size = 60;
39 49
40 50 p = document.getElementById("attachments_fields");
41 51 p.appendChild(document.createElement("br"));
42 52 p.appendChild(f);
43 53 p.appendChild(d);
44 54 }
45 55
46 56 function showTab(name) {
47 57 var f = $$('div#content .tab-content');
48 58 for(var i=0; i<f.length; i++){
49 59 Element.hide(f[i]);
50 60 }
51 61 var f = $$('div.tabs a');
52 62 for(var i=0; i<f.length; i++){
53 63 Element.removeClassName(f[i], "selected");
54 64 }
55 65 Element.show('tab-content-' + name);
56 66 Element.addClassName('tab-' + name, "selected");
57 67 return false;
58 68 }
59 69
60 70 function setPredecessorFieldsVisibility() {
61 71 relationType = $('relation_relation_type');
62 72 if (relationType && relationType.value == "precedes") {
63 73 Element.show('predecessor_fields');
64 74 } else {
65 75 Element.hide('predecessor_fields');
66 76 }
67 77 }
68 78
69 79 function promptToRemote(text, param, url) {
70 80 value = prompt(text + ':');
71 81 if (value) {
72 82 new Ajax.Request(url + '?' + param + '=' + encodeURIComponent(value), {asynchronous:true, evalScripts:true});
73 83 return false;
74 84 }
75 85 }
76 86
77 87 function collapseScmEntry(id) {
78 88 var els = document.getElementsByClassName(id, 'browser');
79 89 for (var i = 0; i < els.length; i++) {
80 90 if (els[i].hasClassName('open')) {
81 91 collapseScmEntry(els[i].id);
82 92 }
83 93 Element.hide(els[i]);
84 94 }
85 95 $(id).removeClassName('open');
86 96 }
87 97
88 98 function expandScmEntry(id) {
89 99 var els = document.getElementsByClassName(id, 'browser');
90 100 for (var i = 0; i < els.length; i++) {
91 101 Element.show(els[i]);
92 102 if (els[i].hasClassName('loaded') && !els[i].hasClassName('collapsed')) {
93 103 expandScmEntry(els[i].id);
94 104 }
95 105 }
96 106 $(id).addClassName('open');
97 107 }
98 108
99 109 function scmEntryClick(id) {
100 110 el = $(id);
101 111 if (el.hasClassName('open')) {
102 112 collapseScmEntry(id);
103 113 el.addClassName('collapsed');
104 114 return false;
105 115 } else if (el.hasClassName('loaded')) {
106 116 expandScmEntry(id);
107 117 el.removeClassName('collapsed');
108 118 return false;
109 119 }
110 120 if (el.hasClassName('loading')) {
111 121 return false;
112 122 }
113 123 el.addClassName('loading');
114 124 return true;
115 125 }
116 126
117 127 function scmEntryLoaded(id) {
118 128 Element.addClassName(id, 'open');
119 129 Element.addClassName(id, 'loaded');
120 130 Element.removeClassName(id, 'loading');
121 131 }
122 132
123 133 function randomKey(size) {
124 134 var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
125 135 var key = '';
126 136 for (i = 0; i < size; i++) {
127 137 key += chars[Math.floor(Math.random() * chars.length)];
128 138 }
129 139 return key;
130 140 }
131 141
132 142 /* shows and hides ajax indicator */
133 143 Ajax.Responders.register({
134 144 onCreate: function(){
135 145 if ($('ajax-indicator') && Ajax.activeRequestCount > 0) {
136 146 Element.show('ajax-indicator');
137 147 }
138 148 },
139 149 onComplete: function(){
140 150 if ($('ajax-indicator') && Ajax.activeRequestCount == 0) {
141 151 Element.hide('ajax-indicator');
142 152 }
143 153 }
144 154 });
@@ -1,781 +1,781
1 1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
2 2
3 3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
4 4 h1 {margin:0; padding:0; font-size: 24px;}
5 5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
7 7 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
8 8
9 9 /***** Layout *****/
10 10 #wrapper {background: white;}
11 11
12 12 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
13 13 #top-menu ul {margin: 0; padding: 0;}
14 14 #top-menu li {
15 15 float:left;
16 16 list-style-type:none;
17 17 margin: 0px 0px 0px 0px;
18 18 padding: 0px 0px 0px 0px;
19 19 white-space:nowrap;
20 20 }
21 21 #top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
22 22 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
23 23
24 24 #account {float:right;}
25 25
26 26 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
27 27 #header a {color:#f8f8f8;}
28 28 #header h1 a.ancestor { font-size: 80%; }
29 29 #quick-search {float:right;}
30 30
31 31 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
32 32 #main-menu ul {margin: 0; padding: 0;}
33 33 #main-menu li {
34 34 float:left;
35 35 list-style-type:none;
36 36 margin: 0px 2px 0px 0px;
37 37 padding: 0px 0px 0px 0px;
38 38 white-space:nowrap;
39 39 }
40 40 #main-menu li a {
41 41 display: block;
42 42 color: #fff;
43 43 text-decoration: none;
44 44 font-weight: bold;
45 45 margin: 0;
46 46 padding: 4px 10px 4px 10px;
47 47 }
48 48 #main-menu li a:hover {background:#759FCF; color:#fff;}
49 49 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
50 50
51 51 #main {background-color:#EEEEEE;}
52 52
53 53 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
54 54 * html #sidebar{ width: 17%; }
55 55 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
56 56 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
57 57 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
58 58
59 59 #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
60 60 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
61 61 html>body #content { min-height: 600px; }
62 62 * html body #content { height: 600px; } /* IE */
63 63
64 64 #main.nosidebar #sidebar{ display: none; }
65 65 #main.nosidebar #content{ width: auto; border-right: 0; }
66 66
67 67 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
68 68
69 69 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
70 70 #login-form table td {padding: 6px;}
71 71 #login-form label {font-weight: bold;}
72 72
73 73 input#openid_url { background: url(../images/openid-bg.gif) no-repeat; background-color: #fff; background-position: 0 50%; padding-left: 18px; }
74 74
75 75 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
76 76
77 77 /***** Links *****/
78 78 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
79 79 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
80 80 a img{ border: 0; }
81 81
82 82 a.issue.closed, a.issue.closed:link, a.issue.closed:visited { text-decoration: line-through; }
83 83
84 84 /***** Tables *****/
85 85 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
86 86 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
87 87 table.list td { vertical-align: top; }
88 88 table.list td.id { width: 2%; text-align: center;}
89 89 table.list td.checkbox { width: 15px; padding: 0px;}
90 90
91 91 tr.project td.name a { padding-left: 16px; white-space:nowrap; }
92 92 tr.project.parent td.name a { background: url('../images/bullet_toggle_minus.png') no-repeat; }
93 93
94 94 tr.issue { text-align: center; white-space: nowrap; }
95 95 tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
96 96 tr.issue td.subject { text-align: left; }
97 97 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
98 98
99 99 tr.entry { border: 1px solid #f8f8f8; }
100 100 tr.entry td { white-space: nowrap; }
101 101 tr.entry td.filename { width: 30%; }
102 102 tr.entry td.size { text-align: right; font-size: 90%; }
103 103 tr.entry td.revision, tr.entry td.author { text-align: center; }
104 104 tr.entry td.age { text-align: right; }
105
106 tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
107 tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
108 105 tr.entry.file td.filename a { margin-left: 16px; }
109 106
107 tr span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
108 tr.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
109
110 110 tr.changeset td.author { text-align: center; width: 15%; }
111 111 tr.changeset td.committed_on { text-align: center; width: 15%; }
112 112
113 113 table.files tr.file td { text-align: center; }
114 114 table.files tr.file td.filename { text-align: left; padding-left: 24px; }
115 115 table.files tr.file td.digest { font-size: 80%; }
116 116
117 117 tr.message { height: 2.6em; }
118 118 tr.message td.last_message { font-size: 80%; }
119 119 tr.message.locked td.subject a { background-image: url(../images/locked.png); }
120 120 tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
121 121
122 122 tr.user td { width:13%; }
123 123 tr.user td.email { width:18%; }
124 124 tr.user td { white-space: nowrap; }
125 125 tr.user.locked, tr.user.registered { color: #aaa; }
126 126 tr.user.locked a, tr.user.registered a { color: #aaa; }
127 127
128 128 tr.time-entry { text-align: center; white-space: nowrap; }
129 129 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
130 130 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
131 131 td.hours .hours-dec { font-size: 0.9em; }
132 132
133 133 table.plugins td { vertical-align: middle; }
134 134 table.plugins td.configure { text-align: right; padding-right: 1em; }
135 135 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
136 136 table.plugins span.description { display: block; font-size: 0.9em; }
137 137 table.plugins span.url { display: block; font-size: 0.9em; }
138 138
139 139 table.list tbody tr.group td { padding: 0.8em 0 0.5em 0.3em; font-weight: bold; border-bottom: 1px solid #ccc; }
140 140 table.list tbody tr.group span.count { color: #aaa; font-size: 80%; }
141 141
142 142 table.list tbody tr:hover { background-color:#ffffdd; }
143 143 table.list tbody tr.group:hover { background-color:inherit; }
144 144 table td {padding:2px;}
145 145 table p {margin:0;}
146 146 .odd {background-color:#f6f7f8;}
147 147 .even {background-color: #fff;}
148 148
149 149 a.sort { padding-right: 16px; background-position: 100% 50%; background-repeat: no-repeat; }
150 150 a.sort.asc { background-image: url(../images/sort_asc.png); }
151 151 a.sort.desc { background-image: url(../images/sort_desc.png); }
152 152
153 153 .highlight { background-color: #FCFD8D;}
154 154 .highlight.token-1 { background-color: #faa;}
155 155 .highlight.token-2 { background-color: #afa;}
156 156 .highlight.token-3 { background-color: #aaf;}
157 157
158 158 .box{
159 159 padding:6px;
160 160 margin-bottom: 10px;
161 161 background-color:#f6f6f6;
162 162 color:#505050;
163 163 line-height:1.5em;
164 164 border: 1px solid #e4e4e4;
165 165 }
166 166
167 167 div.square {
168 168 border: 1px solid #999;
169 169 float: left;
170 170 margin: .3em .4em 0 .4em;
171 171 overflow: hidden;
172 172 width: .6em; height: .6em;
173 173 }
174 174 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
175 175 .contextual input {font-size:0.9em;}
176 176 .message .contextual { margin-top: 0; }
177 177
178 178 .splitcontentleft{float:left; width:49%;}
179 179 .splitcontentright{float:right; width:49%;}
180 180 form {display: inline;}
181 181 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
182 182 fieldset {border: 1px solid #e4e4e4; margin:0;}
183 183 legend {color: #484848;}
184 184 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
185 185 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
186 186 blockquote blockquote { margin-left: 0;}
187 187 textarea.wiki-edit { width: 99%; }
188 188 li p {margin-top: 0;}
189 189 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
190 190 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
191 191 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
192 192 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
193 193
194 194 #query_form_content { font-size: 0.9em; padding: 4px; background: #f6f6f6; border: 1px solid #e4e4e4; }
195 195 #query_form_content fieldset#filters { border-left: 0; border-right: 0; }
196 196 #query_form_content p { margin-top: 0.5em; margin-bottom: 0.5em; }
197 197
198 198 fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
199 199 fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
200 200 fieldset#filters table { border-collapse: collapse; }
201 201 fieldset#filters table td { padding: 0; vertical-align: middle; }
202 202 fieldset#filters tr.filter { height: 2em; }
203 203 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
204 204 .buttons { font-size: 0.9em; margin-bottom: 1.4em; }
205 205
206 206 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
207 207 div#issue-changesets .changeset { padding: 4px;}
208 208 div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
209 209 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
210 210
211 211 div#activity dl, #search-results { margin-left: 2em; }
212 212 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
213 213 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
214 214 div#activity dt.me .time { border-bottom: 1px solid #999; }
215 215 div#activity dt .time { color: #777; font-size: 80%; }
216 216 div#activity dd .description, #search-results dd .description { font-style: italic; }
217 217 div#activity span.project:after, #search-results span.project:after { content: " -"; }
218 218 div#activity dd span.description, #search-results dd span.description { display:block; color: #808080; }
219 219
220 220 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
221 221
222 222 div#search-results-counts {float:right;}
223 223 div#search-results-counts ul { margin-top: 0.5em; }
224 224 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
225 225
226 226 dt.issue { background-image: url(../images/ticket.png); }
227 227 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
228 228 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
229 229 dt.issue-note { background-image: url(../images/ticket_note.png); }
230 230 dt.changeset { background-image: url(../images/changeset.png); }
231 231 dt.news { background-image: url(../images/news.png); }
232 232 dt.message { background-image: url(../images/message.png); }
233 233 dt.reply { background-image: url(../images/comments.png); }
234 234 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
235 235 dt.attachment { background-image: url(../images/attachment.png); }
236 236 dt.document { background-image: url(../images/document.png); }
237 237 dt.project { background-image: url(../images/projects.png); }
238 238
239 239 #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); }
240 240
241 241 div#roadmap fieldset.related-issues { margin-bottom: 1em; }
242 242 div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
243 243 div#roadmap .wiki h1:first-child { display: none; }
244 244 div#roadmap .wiki h1 { font-size: 120%; }
245 245 div#roadmap .wiki h2 { font-size: 110%; }
246 246
247 247 div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
248 248 div#version-summary fieldset { margin-bottom: 1em; }
249 249 div#version-summary .total-hours { text-align: right; }
250 250
251 251 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
252 252 table#time-report tbody tr { font-style: italic; color: #777; }
253 253 table#time-report tbody tr.last-level { font-style: normal; color: #555; }
254 254 table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
255 255 table#time-report .hours-dec { font-size: 0.9em; }
256 256
257 257 form#issue-form .attributes { margin-bottom: 8px; }
258 258 form#issue-form .attributes p { padding-top: 1px; padding-bottom: 2px; }
259 259 form#issue-form .attributes select { min-width: 30%; }
260 260
261 261 ul.projects { margin: 0; padding-left: 1em; }
262 262 ul.projects.root { margin: 0; padding: 0; }
263 263 ul.projects ul { border-left: 3px solid #e0e0e0; }
264 264 ul.projects li { list-style-type:none; }
265 265 ul.projects li.root { margin-bottom: 1em; }
266 266 ul.projects li.child { margin-top: 1em;}
267 267 ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
268 268 .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }
269 269
270 270 #tracker_project_ids ul { margin: 0; padding-left: 1em; }
271 271 #tracker_project_ids li { list-style-type:none; }
272 272
273 273 ul.properties {padding:0; font-size: 0.9em; color: #777;}
274 274 ul.properties li {list-style-type:none;}
275 275 ul.properties li span {font-style:italic;}
276 276
277 277 .total-hours { font-size: 110%; font-weight: bold; }
278 278 .total-hours span.hours-int { font-size: 120%; }
279 279
280 280 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
281 281 #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
282 282
283 283 .pagination {font-size: 90%}
284 284 p.pagination {margin-top:8px;}
285 285
286 286 /***** Tabular forms ******/
287 287 .tabular p{
288 288 margin: 0;
289 289 padding: 5px 0 8px 0;
290 290 padding-left: 180px; /*width of left column containing the label elements*/
291 291 height: 1%;
292 292 clear:left;
293 293 }
294 294
295 295 html>body .tabular p {overflow:hidden;}
296 296
297 297 .tabular label{
298 298 font-weight: bold;
299 299 float: left;
300 300 text-align: right;
301 301 margin-left: -180px; /*width of left column*/
302 302 width: 175px; /*width of labels. Should be smaller than left column to create some right
303 303 margin*/
304 304 }
305 305
306 306 .tabular label.floating{
307 307 font-weight: normal;
308 308 margin-left: 0px;
309 309 text-align: left;
310 310 width: 270px;
311 311 }
312 312
313 313 input#time_entry_comments { width: 90%;}
314 314
315 315 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
316 316
317 317 .tabular.settings p{ padding-left: 300px; }
318 318 .tabular.settings label{ margin-left: -300px; width: 295px; }
319 319
320 320 .required {color: #bb0000;}
321 321 .summary {font-style: italic;}
322 322
323 323 #attachments_fields input[type=text] {margin-left: 8px; }
324 324
325 325 div.attachments { margin-top: 12px; }
326 326 div.attachments p { margin:4px 0 2px 0; }
327 327 div.attachments img { vertical-align: middle; }
328 328 div.attachments span.author { font-size: 0.9em; color: #888; }
329 329
330 330 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
331 331 .other-formats span + span:before { content: "| "; }
332 332
333 333 a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
334 334
335 335 /* Project members tab */
336 336 div#tab-content-members .splitcontentleft { width: 64% }
337 337 div#tab-content-members .splitcontentright { width: 34% }
338 338 div#tab-content-members fieldset { padding:1em; margin-bottom: 1em; }
339 339 div#tab-content-members fieldset legend { font-weight: bold; }
340 340 div#tab-content-members fieldset label { display: block; }
341 341 div#tab-content-members fieldset div { max-height: 400px; overflow:auto; }
342 342
343 343 * html div#tab-content-members fieldset div { height: 450px; }
344 344
345 345 /***** Flash & error messages ****/
346 346 #errorExplanation, div.flash, .nodata, .warning {
347 347 padding: 4px 4px 4px 30px;
348 348 margin-bottom: 12px;
349 349 font-size: 1.1em;
350 350 border: 2px solid;
351 351 }
352 352
353 353 div.flash {margin-top: 8px;}
354 354
355 355 div.flash.error, #errorExplanation {
356 356 background: url(../images/false.png) 8px 5px no-repeat;
357 357 background-color: #ffe3e3;
358 358 border-color: #dd0000;
359 359 color: #550000;
360 360 }
361 361
362 362 div.flash.notice {
363 363 background: url(../images/true.png) 8px 5px no-repeat;
364 364 background-color: #dfffdf;
365 365 border-color: #9fcf9f;
366 366 color: #005f00;
367 367 }
368 368
369 369 div.flash.warning {
370 370 background: url(../images/warning.png) 8px 5px no-repeat;
371 371 background-color: #FFEBC1;
372 372 border-color: #FDBF3B;
373 373 color: #A6750C;
374 374 text-align: left;
375 375 }
376 376
377 377 .nodata, .warning {
378 378 text-align: center;
379 379 background-color: #FFEBC1;
380 380 border-color: #FDBF3B;
381 381 color: #A6750C;
382 382 }
383 383
384 384 #errorExplanation ul { font-size: 0.9em;}
385 385 #errorExplanation h2, #errorExplanation p { display: none; }
386 386
387 387 /***** Ajax indicator ******/
388 388 #ajax-indicator {
389 389 position: absolute; /* fixed not supported by IE */
390 390 background-color:#eee;
391 391 border: 1px solid #bbb;
392 392 top:35%;
393 393 left:40%;
394 394 width:20%;
395 395 font-weight:bold;
396 396 text-align:center;
397 397 padding:0.6em;
398 398 z-index:100;
399 399 filter:alpha(opacity=50);
400 400 opacity: 0.5;
401 401 }
402 402
403 403 html>body #ajax-indicator { position: fixed; }
404 404
405 405 #ajax-indicator span {
406 406 background-position: 0% 40%;
407 407 background-repeat: no-repeat;
408 408 background-image: url(../images/loading.gif);
409 409 padding-left: 26px;
410 410 vertical-align: bottom;
411 411 }
412 412
413 413 /***** Calendar *****/
414 414 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
415 415 table.cal thead th {width: 14%;}
416 416 table.cal tbody tr {height: 100px;}
417 417 table.cal th { background-color:#EEEEEE; padding: 4px; }
418 418 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
419 419 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
420 420 table.cal td.odd p.day-num {color: #bbb;}
421 421 table.cal td.today {background:#ffffdd;}
422 422 table.cal td.today p.day-num {font-weight: bold;}
423 423
424 424 /***** Tooltips ******/
425 425 .tooltip{position:relative;z-index:24;}
426 426 .tooltip:hover{z-index:25;color:#000;}
427 427 .tooltip span.tip{display: none; text-align:left;}
428 428
429 429 div.tooltip:hover span.tip{
430 430 display:block;
431 431 position:absolute;
432 432 top:12px; left:24px; width:270px;
433 433 border:1px solid #555;
434 434 background-color:#fff;
435 435 padding: 4px;
436 436 font-size: 0.8em;
437 437 color:#505050;
438 438 }
439 439
440 440 /***** Progress bar *****/
441 441 table.progress {
442 442 border: 1px solid #D7D7D7;
443 443 border-collapse: collapse;
444 444 border-spacing: 0pt;
445 445 empty-cells: show;
446 446 text-align: center;
447 447 float:left;
448 448 margin: 1px 6px 1px 0px;
449 449 }
450 450
451 451 table.progress td { height: 0.9em; }
452 452 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
453 453 table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
454 454 table.progress td.open { background: #FFF none repeat scroll 0%; }
455 455 p.pourcent {font-size: 80%;}
456 456 p.progress-info {clear: left; font-style: italic; font-size: 80%;}
457 457
458 458 /***** Tabs *****/
459 459 #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
460 460 #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
461 461 #content .tabs>ul { bottom:-1px; } /* others */
462 462 #content .tabs ul li {
463 463 float:left;
464 464 list-style-type:none;
465 465 white-space:nowrap;
466 466 margin-right:8px;
467 467 background:#fff;
468 468 }
469 469 #content .tabs ul li a{
470 470 display:block;
471 471 font-size: 0.9em;
472 472 text-decoration:none;
473 473 line-height:1.3em;
474 474 padding:4px 6px 4px 6px;
475 475 border: 1px solid #ccc;
476 476 border-bottom: 1px solid #bbbbbb;
477 477 background-color: #eeeeee;
478 478 color:#777;
479 479 font-weight:bold;
480 480 }
481 481
482 482 #content .tabs ul li a:hover {
483 483 background-color: #ffffdd;
484 484 text-decoration:none;
485 485 }
486 486
487 487 #content .tabs ul li a.selected {
488 488 background-color: #fff;
489 489 border: 1px solid #bbbbbb;
490 490 border-bottom: 1px solid #fff;
491 491 }
492 492
493 493 #content .tabs ul li a.selected:hover {
494 494 background-color: #fff;
495 495 }
496 496
497 497 /***** Auto-complete *****/
498 498 div.autocomplete {
499 499 position:absolute;
500 500 width:250px;
501 501 background-color:white;
502 502 margin:0;
503 503 padding:0;
504 504 }
505 505 div.autocomplete ul {
506 506 list-style-type:none;
507 507 margin:0;
508 508 padding:0;
509 509 }
510 510 div.autocomplete ul li.selected { background-color: #ffb;}
511 511 div.autocomplete ul li {
512 512 list-style-type:none;
513 513 display:block;
514 514 margin:0;
515 515 padding:2px;
516 516 cursor:pointer;
517 517 font-size: 90%;
518 518 border-bottom: 1px solid #ccc;
519 519 border-left: 1px solid #ccc;
520 520 border-right: 1px solid #ccc;
521 521 }
522 522 div.autocomplete ul li span.informal {
523 523 font-size: 80%;
524 524 color: #aaa;
525 525 }
526 526
527 527 /***** Diff *****/
528 528 .diff_out { background: #fcc; }
529 529 .diff_in { background: #cfc; }
530 530
531 531 /***** Wiki *****/
532 532 div.wiki table {
533 533 border: 1px solid #505050;
534 534 border-collapse: collapse;
535 535 margin-bottom: 1em;
536 536 }
537 537
538 538 div.wiki table, div.wiki td, div.wiki th {
539 539 border: 1px solid #bbb;
540 540 padding: 4px;
541 541 }
542 542
543 543 div.wiki .external {
544 544 background-position: 0% 60%;
545 545 background-repeat: no-repeat;
546 546 padding-left: 12px;
547 547 background-image: url(../images/external.png);
548 548 }
549 549
550 550 div.wiki a.new {
551 551 color: #b73535;
552 552 }
553 553
554 554 div.wiki pre {
555 555 margin: 1em 1em 1em 1.6em;
556 556 padding: 2px;
557 557 background-color: #fafafa;
558 558 border: 1px solid #dadada;
559 559 width:95%;
560 560 overflow-x: auto;
561 561 }
562 562
563 563 div.wiki ul.toc {
564 564 background-color: #ffffdd;
565 565 border: 1px solid #e4e4e4;
566 566 padding: 4px;
567 567 line-height: 1.2em;
568 568 margin-bottom: 12px;
569 569 margin-right: 12px;
570 570 margin-left: 0;
571 571 display: table
572 572 }
573 573 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
574 574
575 575 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
576 576 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
577 577 div.wiki ul.toc li { list-style-type:none;}
578 578 div.wiki ul.toc li.heading2 { margin-left: 6px; }
579 579 div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
580 580
581 581 div.wiki ul.toc a {
582 582 font-size: 0.9em;
583 583 font-weight: normal;
584 584 text-decoration: none;
585 585 color: #606060;
586 586 }
587 587 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
588 588
589 589 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
590 590 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
591 591 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
592 592
593 593 /***** My page layout *****/
594 594 .block-receiver {
595 595 border:1px dashed #c0c0c0;
596 596 margin-bottom: 20px;
597 597 padding: 15px 0 15px 0;
598 598 }
599 599
600 600 .mypage-box {
601 601 margin:0 0 20px 0;
602 602 color:#505050;
603 603 line-height:1.5em;
604 604 }
605 605
606 606 .handle {
607 607 cursor: move;
608 608 }
609 609
610 610 a.close-icon {
611 611 display:block;
612 612 margin-top:3px;
613 613 overflow:hidden;
614 614 width:12px;
615 615 height:12px;
616 616 background-repeat: no-repeat;
617 617 cursor:pointer;
618 618 background-image:url('../images/close.png');
619 619 }
620 620
621 621 a.close-icon:hover {
622 622 background-image:url('../images/close_hl.png');
623 623 }
624 624
625 625 /***** Gantt chart *****/
626 626 .gantt_hdr {
627 627 position:absolute;
628 628 top:0;
629 629 height:16px;
630 630 border-top: 1px solid #c0c0c0;
631 631 border-bottom: 1px solid #c0c0c0;
632 632 border-right: 1px solid #c0c0c0;
633 633 text-align: center;
634 634 overflow: hidden;
635 635 }
636 636
637 637 .task {
638 638 position: absolute;
639 639 height:8px;
640 640 font-size:0.8em;
641 641 color:#888;
642 642 padding:0;
643 643 margin:0;
644 644 line-height:0.8em;
645 645 }
646 646
647 647 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
648 648 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
649 649 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
650 650 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
651 651
652 652 /***** Icons *****/
653 653 .icon {
654 654 background-position: 0% 40%;
655 655 background-repeat: no-repeat;
656 656 padding-left: 20px;
657 657 padding-top: 2px;
658 658 padding-bottom: 3px;
659 659 }
660 660
661 661 .icon22 {
662 662 background-position: 0% 40%;
663 663 background-repeat: no-repeat;
664 664 padding-left: 26px;
665 665 line-height: 22px;
666 666 vertical-align: middle;
667 667 }
668 668
669 669 .icon-add { background-image: url(../images/add.png); }
670 670 .icon-edit { background-image: url(../images/edit.png); }
671 671 .icon-copy { background-image: url(../images/copy.png); }
672 672 .icon-del { background-image: url(../images/delete.png); }
673 673 .icon-move { background-image: url(../images/move.png); }
674 674 .icon-save { background-image: url(../images/save.png); }
675 675 .icon-cancel { background-image: url(../images/cancel.png); }
676 676 .icon-folder { background-image: url(../images/folder.png); }
677 677 .open .icon-folder { background-image: url(../images/folder_open.png); }
678 678 .icon-package { background-image: url(../images/package.png); }
679 679 .icon-home { background-image: url(../images/home.png); }
680 680 .icon-user { background-image: url(../images/user.png); }
681 681 .icon-mypage { background-image: url(../images/user_page.png); }
682 682 .icon-admin { background-image: url(../images/admin.png); }
683 683 .icon-projects { background-image: url(../images/projects.png); }
684 684 .icon-help { background-image: url(../images/help.png); }
685 685 .icon-attachment { background-image: url(../images/attachment.png); }
686 686 .icon-index { background-image: url(../images/index.png); }
687 687 .icon-history { background-image: url(../images/history.png); }
688 688 .icon-time { background-image: url(../images/time.png); }
689 689 .icon-time-add { background-image: url(../images/time_add.png); }
690 690 .icon-stats { background-image: url(../images/stats.png); }
691 691 .icon-warning { background-image: url(../images/warning.png); }
692 692 .icon-fav { background-image: url(../images/fav.png); }
693 693 .icon-fav-off { background-image: url(../images/fav_off.png); }
694 694 .icon-reload { background-image: url(../images/reload.png); }
695 695 .icon-lock { background-image: url(../images/locked.png); }
696 696 .icon-unlock { background-image: url(../images/unlock.png); }
697 697 .icon-checked { background-image: url(../images/true.png); }
698 698 .icon-details { background-image: url(../images/zoom_in.png); }
699 699 .icon-report { background-image: url(../images/report.png); }
700 700 .icon-comment { background-image: url(../images/comment.png); }
701 701
702 702 .icon-file { background-image: url(../images/files/default.png); }
703 703 .icon-file.text-plain { background-image: url(../images/files/text.png); }
704 704 .icon-file.text-x-c { background-image: url(../images/files/c.png); }
705 705 .icon-file.text-x-csharp { background-image: url(../images/files/csharp.png); }
706 706 .icon-file.text-x-php { background-image: url(../images/files/php.png); }
707 707 .icon-file.text-x-ruby { background-image: url(../images/files/ruby.png); }
708 708 .icon-file.text-xml { background-image: url(../images/files/xml.png); }
709 709 .icon-file.image-gif { background-image: url(../images/files/image.png); }
710 710 .icon-file.image-jpeg { background-image: url(../images/files/image.png); }
711 711 .icon-file.image-png { background-image: url(../images/files/image.png); }
712 712 .icon-file.image-tiff { background-image: url(../images/files/image.png); }
713 713 .icon-file.application-pdf { background-image: url(../images/files/pdf.png); }
714 714 .icon-file.application-zip { background-image: url(../images/files/zip.png); }
715 715 .icon-file.application-x-gzip { background-image: url(../images/files/zip.png); }
716 716
717 717 .icon22-projects { background-image: url(../images/22x22/projects.png); }
718 718 .icon22-users { background-image: url(../images/22x22/users.png); }
719 719 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
720 720 .icon22-role { background-image: url(../images/22x22/role.png); }
721 721 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
722 722 .icon22-options { background-image: url(../images/22x22/options.png); }
723 723 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
724 724 .icon22-authent { background-image: url(../images/22x22/authent.png); }
725 725 .icon22-info { background-image: url(../images/22x22/info.png); }
726 726 .icon22-comment { background-image: url(../images/22x22/comment.png); }
727 727 .icon22-package { background-image: url(../images/22x22/package.png); }
728 728 .icon22-settings { background-image: url(../images/22x22/settings.png); }
729 729 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
730 730
731 731 img.gravatar {
732 732 padding: 2px;
733 733 border: solid 1px #d5d5d5;
734 734 background: #fff;
735 735 }
736 736
737 737 div.issue img.gravatar {
738 738 float: right;
739 739 margin: 0 0 0 1em;
740 740 padding: 5px;
741 741 }
742 742
743 743 div.issue table img.gravatar {
744 744 height: 14px;
745 745 width: 14px;
746 746 padding: 2px;
747 747 float: left;
748 748 margin: 0 0.5em 0 0;
749 749 }
750 750
751 751 #history img.gravatar {
752 752 padding: 3px;
753 753 margin: 0 1.5em 1em 0;
754 754 float: left;
755 755 }
756 756
757 757 td.username img.gravatar {
758 758 float: left;
759 759 margin: 0 1em 0 0;
760 760 }
761 761
762 762 #activity dt img.gravatar {
763 763 float: left;
764 764 margin: 0 1em 1em 0;
765 765 }
766 766
767 767 #activity dt,
768 768 .journal {
769 769 clear: left;
770 770 }
771 771
772 772 h2 img { vertical-align:middle; }
773 773
774 774
775 775 /***** Media print specific styles *****/
776 776 @media print {
777 777 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
778 778 #main { background: #fff; }
779 779 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
780 780 #wiki_add_attachment { display:none; }
781 781 }
General Comments 0
You need to be logged in to leave comments. Login now