##// END OF EJS Templates
Fixes admin menu display....
Jean-Philippe Lang -
r8559:80f3834159d8
parent child
Show More
@@ -1,82 +1,86
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 class AdminController < ApplicationController
19 19 layout 'admin'
20 menu_item :projects, :only => :projects
21 menu_item :plugins, :only => :plugins
22 menu_item :info, :only => :info
23
20 24 before_filter :require_admin
21 25 helper :sort
22 26 include SortHelper
23 27
24 28 def index
25 29 @no_configuration_data = Redmine::DefaultData::Loader::no_data?
26 30 end
27 31
28 32 def projects
29 33 @status = params[:status] || 1
30 34
31 35 scope = Project.status(@status)
32 36 scope = scope.like(params[:name]) if params[:name].present?
33 37
34 38 @projects = scope.all(:order => 'lft')
35 39
36 40 render :action => "projects", :layout => false if request.xhr?
37 41 end
38 42
39 43 def plugins
40 44 @plugins = Redmine::Plugin.all
41 45 end
42 46
43 47 # Loads the default configuration
44 48 # (roles, trackers, statuses, workflow, enumerations)
45 49 def default_configuration
46 50 if request.post?
47 51 begin
48 52 Redmine::DefaultData::Loader::load(params[:lang])
49 53 flash[:notice] = l(:notice_default_data_loaded)
50 54 rescue Exception => e
51 55 flash[:error] = l(:error_can_t_load_default_data, e.message)
52 56 end
53 57 end
54 58 redirect_to :action => 'index'
55 59 end
56 60
57 61 def test_email
58 62 raise_delivery_errors = ActionMailer::Base.raise_delivery_errors
59 63 # Force ActionMailer to raise delivery errors so we can catch it
60 64 ActionMailer::Base.raise_delivery_errors = true
61 65 begin
62 66 @test = Mailer.deliver_test(User.current)
63 67 flash[:notice] = l(:notice_email_sent, User.current.mail)
64 68 rescue Exception => e
65 69 flash[:error] = l(:notice_email_error, e.message)
66 70 end
67 71 ActionMailer::Base.raise_delivery_errors = raise_delivery_errors
68 72 redirect_to :controller => 'settings', :action => 'edit', :tab => 'notifications'
69 73 end
70 74
71 75 def info
72 76 @db_adapter_name = ActiveRecord::Base.connection.adapter_name
73 77 @checklist = [
74 78 [:text_default_administrator_account_changed,
75 79 User.find(:first,
76 80 :conditions => ["login=? and hashed_password=?", 'admin', User.hash_password('admin')]).nil?],
77 81 [:text_file_repository_writable, File.writable?(Attachment.storage_path)],
78 82 [:text_plugin_assets_writable, File.writable?(Engines.public_directory)],
79 83 [:text_rmagick_available, Object.const_defined?(:Magick)]
80 84 ]
81 85 end
82 86 end
@@ -1,25 +1,26
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 class LdapAuthSourcesController < AuthSourcesController
19 menu_item :ldap_authentication
19 20
20 21 protected
21 22
22 23 def auth_source_class
23 24 AuthSourceLdap
24 25 end
25 26 end
@@ -1,64 +1,65
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 class SettingsController < ApplicationController
19 19 layout 'admin'
20 menu_item :plugins, :only => :plugin
20 21
21 22 before_filter :require_admin
22 23
23 24 def index
24 25 edit
25 26 render :action => 'edit'
26 27 end
27 28
28 29 def edit
29 30 @notifiables = Redmine::Notifiable.all
30 31 if request.post? && params[:settings] && params[:settings].is_a?(Hash)
31 32 settings = (params[:settings] || {}).dup.symbolize_keys
32 33 settings.each do |name, value|
33 34 # remove blank values in array settings
34 35 value.delete_if {|v| v.blank? } if value.is_a?(Array)
35 36 Setting[name] = value
36 37 end
37 38 flash[:notice] = l(:notice_successful_update)
38 39 redirect_to :action => 'edit', :tab => params[:tab]
39 40 else
40 41 @options = {}
41 42 @options[:user_format] = User::USER_FORMATS.keys.collect {|f| [User.current.name(f), f.to_s] }
42 43 @deliveries = ActionMailer::Base.perform_deliveries
43 44
44 45 @guessed_host_and_path = request.host_with_port.dup
45 46 @guessed_host_and_path << ('/'+ Redmine::Utils.relative_url_root.gsub(%r{^\/}, '')) unless Redmine::Utils.relative_url_root.blank?
46 47
47 48 Redmine::Themes.rescan
48 49 end
49 50 end
50 51
51 52 def plugin
52 53 @plugin = Redmine::Plugin.find(params[:id])
53 54 if request.post?
54 55 Setting.send "plugin_#{@plugin.id}=", params[:settings]
55 56 flash[:notice] = l(:notice_successful_update)
56 57 redirect_to :action => 'plugin', :id => @plugin.id
57 58 else
58 59 @partial = @plugin.settings[:partial]
59 60 @settings = Setting.send "plugin_#{@plugin.id}"
60 61 end
61 62 rescue Redmine::PluginNotFound
62 63 render_404
63 64 end
64 65 end
@@ -1,1043 +1,1045
1 1 html {overflow-y:scroll;}
2 2 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
3 3
4 4 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
5 5 h1 {margin:0; padding:0; font-size: 24px;}
6 6 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
7 7 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
8 8 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
9 9
10 10 /***** Layout *****/
11 11 #wrapper {background: white;}
12 12
13 13 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
14 14 #top-menu ul {margin: 0; padding: 0;}
15 15 #top-menu li {
16 16 float:left;
17 17 list-style-type:none;
18 18 margin: 0px 0px 0px 0px;
19 19 padding: 0px 0px 0px 0px;
20 20 white-space:nowrap;
21 21 }
22 22 #top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
23 23 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
24 24
25 25 #account {float:right;}
26 26
27 27 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
28 28 #header a {color:#f8f8f8;}
29 29 #header h1 a.ancestor { font-size: 80%; }
30 30 #quick-search {float:right;}
31 31
32 32 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
33 33 #main-menu ul {margin: 0; padding: 0;}
34 34 #main-menu li {
35 35 float:left;
36 36 list-style-type:none;
37 37 margin: 0px 2px 0px 0px;
38 38 padding: 0px 0px 0px 0px;
39 39 white-space:nowrap;
40 40 }
41 41 #main-menu li a {
42 42 display: block;
43 43 color: #fff;
44 44 text-decoration: none;
45 45 font-weight: bold;
46 46 margin: 0;
47 47 padding: 4px 10px 4px 10px;
48 48 }
49 49 #main-menu li a:hover {background:#759FCF; color:#fff;}
50 50 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
51 51
52 52 #admin-menu ul {margin: 0; padding: 0;}
53 #admin-menu li {margin: 0; padding: 0 0 12px 0; list-style-type:none;}
53 #admin-menu li {margin: 0; padding: 0 0 6px 0; list-style-type:none;}
54 54
55 55 #admin-menu a { background-position: 0% 40%; background-repeat: no-repeat; padding-left: 20px; padding-top: 2px; padding-bottom: 3px;}
56 56 #admin-menu a.projects { background-image: url(../images/projects.png); }
57 57 #admin-menu a.users { background-image: url(../images/user.png); }
58 58 #admin-menu a.groups { background-image: url(../images/group.png); }
59 59 #admin-menu a.roles { background-image: url(../images/database_key.png); }
60 60 #admin-menu a.trackers { background-image: url(../images/ticket.png); }
61 61 #admin-menu a.issue_statuses { background-image: url(../images/ticket_edit.png); }
62 62 #admin-menu a.workflows { background-image: url(../images/ticket_go.png); }
63 63 #admin-menu a.custom_fields { background-image: url(../images/textfield.png); }
64 64 #admin-menu a.enumerations { background-image: url(../images/text_list_bullets.png); }
65 65 #admin-menu a.settings { background-image: url(../images/changeset.png); }
66 66 #admin-menu a.plugins { background-image: url(../images/plugin.png); }
67 67 #admin-menu a.info { background-image: url(../images/help.png); }
68 68 #admin-menu a.server_authentication { background-image: url(../images/server_key.png); }
69 69
70 70 #main {background-color:#EEEEEE;}
71 71
72 72 #sidebar{ float: right; width: 22%; position: relative; z-index: 9; padding: 0; margin: 0;}
73 73 * html #sidebar{ width: 22%; }
74 74 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
75 75 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
76 76 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
77 77 #sidebar .contextual { margin-right: 1em; }
78 78
79 79 #content { width: 75%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
80 80 * html #content{ width: 75%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
81 81 html>body #content { min-height: 600px; }
82 82 * html body #content { height: 600px; } /* IE */
83 83
84 84 #main.nosidebar #sidebar{ display: none; }
85 85 #main.nosidebar #content{ width: auto; border-right: 0; }
86 86
87 87 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
88 88
89 89 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
90 90 #login-form table td {padding: 6px;}
91 91 #login-form label {font-weight: bold;}
92 92 #login-form input#username, #login-form input#password { width: 300px; }
93 93
94 94 #modalbg {position:absolute; top:0; left:0; width:100%; height:100%; background:#ccc; z-index:49; opacity:0.5;}
95 95 html>body #modalbg {position:fixed;}
96 96 div.modal { border-radius:5px; position:absolute; top:25%; background:#fff; border:2px solid #759FCF; z-index:50; padding:0px; padding:8px;}
97 97 div.modal h3.title {background:#759FCF; color:#fff; border:0; padding-left:8px; margin:-8px; margin-bottom: 1em; border-top-left-radius:2px;border-top-right-radius:2px;}
98 98 div.modal p.buttons {text-align:right; margin-bottom:0;}
99 99 html>body div.modal {position:fixed;}
100 100
101 101 input#openid_url { background: url(../images/openid-bg.gif) no-repeat; background-color: #fff; background-position: 0 50%; padding-left: 18px; }
102 102
103 103 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
104 104
105 105 /***** Links *****/
106 106 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
107 107 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
108 108 a img{ border: 0; }
109 109
110 110 a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; }
111 111
112 112 #sidebar a.selected {line-height:1.7em; padding:1px 3px 2px 2px; margin-left:-2px; background-color:#9DB9D5; color:#fff; border-radius:2px; -moz-border-radius:2px;}
113 113 #sidebar a.selected:hover {text-decoration:none;}
114 #admin-menu a {line-height:1.7em;}
115 #admin-menu a.selected {padding-left: 20px !important; background-position: 2px 40%;}
114 116
115 117 /***** Tables *****/
116 118 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
117 119 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
118 120 table.list td { vertical-align: top; }
119 121 table.list td.id { width: 2%; text-align: center;}
120 122 table.list td.checkbox { width: 15px; padding: 2px 0 0 0; }
121 123 table.list td.checkbox input {padding:0px;}
122 124 table.list td.buttons { width: 15%; white-space:nowrap; text-align: right; }
123 125 table.list td.buttons a { padding-right: 0.6em; }
124 126 table.list caption { text-align: left; padding: 0.5em 0.5em 0.5em 0; }
125 127
126 128 tr.project td.name a { white-space:nowrap; }
127 129
128 130 tr.project.idnt td.name span {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
129 131 tr.project.idnt-1 td.name {padding-left: 0.5em;}
130 132 tr.project.idnt-2 td.name {padding-left: 2em;}
131 133 tr.project.idnt-3 td.name {padding-left: 3.5em;}
132 134 tr.project.idnt-4 td.name {padding-left: 5em;}
133 135 tr.project.idnt-5 td.name {padding-left: 6.5em;}
134 136 tr.project.idnt-6 td.name {padding-left: 8em;}
135 137 tr.project.idnt-7 td.name {padding-left: 9.5em;}
136 138 tr.project.idnt-8 td.name {padding-left: 11em;}
137 139 tr.project.idnt-9 td.name {padding-left: 12.5em;}
138 140
139 141 tr.issue { text-align: center; white-space: nowrap; }
140 142 tr.issue td.subject, tr.issue td.category, td.assigned_to, tr.issue td.string, tr.issue td.text { white-space: normal; }
141 143 tr.issue td.subject { text-align: left; }
142 144 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
143 145
144 146 tr.issue.idnt td.subject a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
145 147 tr.issue.idnt-1 td.subject {padding-left: 0.5em;}
146 148 tr.issue.idnt-2 td.subject {padding-left: 2em;}
147 149 tr.issue.idnt-3 td.subject {padding-left: 3.5em;}
148 150 tr.issue.idnt-4 td.subject {padding-left: 5em;}
149 151 tr.issue.idnt-5 td.subject {padding-left: 6.5em;}
150 152 tr.issue.idnt-6 td.subject {padding-left: 8em;}
151 153 tr.issue.idnt-7 td.subject {padding-left: 9.5em;}
152 154 tr.issue.idnt-8 td.subject {padding-left: 11em;}
153 155 tr.issue.idnt-9 td.subject {padding-left: 12.5em;}
154 156
155 157 tr.entry { border: 1px solid #f8f8f8; }
156 158 tr.entry td { white-space: nowrap; }
157 159 tr.entry td.filename { width: 30%; }
158 160 tr.entry td.filename_no_report { width: 70%; }
159 161 tr.entry td.size { text-align: right; font-size: 90%; }
160 162 tr.entry td.revision, tr.entry td.author { text-align: center; }
161 163 tr.entry td.age { text-align: right; }
162 164 tr.entry.file td.filename a { margin-left: 16px; }
163 165 tr.entry.file td.filename_no_report a { margin-left: 16px; }
164 166
165 167 tr span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
166 168 tr.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
167 169
168 170 tr.changeset { height: 20px }
169 171 tr.changeset ul, ol { margin-top: 0px; margin-bottom: 0px; }
170 172 tr.changeset td.revision_graph { width: 15%; background-color: #fffffb; }
171 173 tr.changeset td.author { text-align: center; width: 15%; white-space:nowrap;}
172 174 tr.changeset td.committed_on { text-align: center; width: 15%; white-space:nowrap;}
173 175 tr.changeset td.comments_nowrap { width: 45%; white-space:nowrap;}
174 176
175 177 table.files tr.file td { text-align: center; }
176 178 table.files tr.file td.filename { text-align: left; padding-left: 24px; }
177 179 table.files tr.file td.digest { font-size: 80%; }
178 180
179 181 table.members td.roles, table.memberships td.roles { width: 45%; }
180 182
181 183 tr.message { height: 2.6em; }
182 184 tr.message td.subject { padding-left: 20px; }
183 185 tr.message td.created_on { white-space: nowrap; }
184 186 tr.message td.last_message { font-size: 80%; white-space: nowrap; }
185 187 tr.message.locked td.subject { background: url(../images/locked.png) no-repeat 0 1px; }
186 188 tr.message.sticky td.subject { background: url(../images/bullet_go.png) no-repeat 0 1px; font-weight: bold; }
187 189
188 190 tr.version.closed, tr.version.closed a { color: #999; }
189 191 tr.version td.name { padding-left: 20px; }
190 192 tr.version.shared td.name { background: url(../images/link.png) no-repeat 0% 70%; }
191 193 tr.version td.date, tr.version td.status, tr.version td.sharing { text-align: center; white-space:nowrap; }
192 194
193 195 tr.user td { width:13%; }
194 196 tr.user td.email { width:18%; }
195 197 tr.user td { white-space: nowrap; }
196 198 tr.user.locked, tr.user.registered { color: #aaa; }
197 199 tr.user.locked a, tr.user.registered a { color: #aaa; }
198 200
199 201 tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
200 202
201 203 tr.time-entry { text-align: center; white-space: nowrap; }
202 204 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
203 205 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
204 206 td.hours .hours-dec { font-size: 0.9em; }
205 207
206 208 table.plugins td { vertical-align: middle; }
207 209 table.plugins td.configure { text-align: right; padding-right: 1em; }
208 210 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
209 211 table.plugins span.description { display: block; font-size: 0.9em; }
210 212 table.plugins span.url { display: block; font-size: 0.9em; }
211 213
212 214 table.list tbody tr.group td { padding: 0.8em 0 0.5em 0.3em; font-weight: bold; border-bottom: 1px solid #ccc; }
213 215 table.list tbody tr.group span.count { color: #aaa; font-size: 80%; }
214 216 tr.group a.toggle-all { color: #aaa; font-size: 80%; font-weight: normal; display:none;}
215 217 tr.group:hover a.toggle-all { display:inline;}
216 218 a.toggle-all:hover {text-decoration:none;}
217 219
218 220 table.list tbody tr:hover { background-color:#ffffdd; }
219 221 table.list tbody tr.group:hover { background-color:inherit; }
220 222 table td {padding:2px;}
221 223 table p {margin:0;}
222 224 .odd {background-color:#f6f7f8;}
223 225 .even {background-color: #fff;}
224 226
225 227 a.sort { padding-right: 16px; background-position: 100% 50%; background-repeat: no-repeat; }
226 228 a.sort.asc { background-image: url(../images/sort_asc.png); }
227 229 a.sort.desc { background-image: url(../images/sort_desc.png); }
228 230
229 231 table.attributes { width: 100% }
230 232 table.attributes th { vertical-align: top; text-align: left; }
231 233 table.attributes td { vertical-align: top; }
232 234
233 235 table.boards a.board, h3.comments { background: url(../images/comment.png) no-repeat 0% 50%; padding-left: 20px; }
234 236
235 237 td.center {text-align:center;}
236 238
237 239 h3.version { background: url(../images/package.png) no-repeat 0% 50%; padding-left: 20px; }
238 240
239 241 div.issues h3 { background: url(../images/ticket.png) no-repeat 0% 50%; padding-left: 20px; }
240 242 div.members h3 { background: url(../images/group.png) no-repeat 0% 50%; padding-left: 20px; }
241 243 div.news h3 { background: url(../images/news.png) no-repeat 0% 50%; padding-left: 20px; }
242 244 div.projects h3 { background: url(../images/projects.png) no-repeat 0% 50%; padding-left: 20px; }
243 245
244 246 #watchers ul {margin: 0; padding: 0;}
245 247 #watchers li {list-style-type:none;margin: 0px 2px 0px 0px; padding: 0px 0px 0px 0px;}
246 248 #watchers select {width: 95%; display: block;}
247 249 #watchers a.delete {opacity: 0.4;}
248 250 #watchers a.delete:hover {opacity: 1;}
249 251 #watchers img.gravatar {margin: 0 4px 2px 0;}
250 252
251 253 .highlight { background-color: #FCFD8D;}
252 254 .highlight.token-1 { background-color: #faa;}
253 255 .highlight.token-2 { background-color: #afa;}
254 256 .highlight.token-3 { background-color: #aaf;}
255 257
256 258 .box{
257 259 padding:6px;
258 260 margin-bottom: 10px;
259 261 background-color:#f6f6f6;
260 262 color:#505050;
261 263 line-height:1.5em;
262 264 border: 1px solid #e4e4e4;
263 265 }
264 266
265 267 div.square {
266 268 border: 1px solid #999;
267 269 float: left;
268 270 margin: .3em .4em 0 .4em;
269 271 overflow: hidden;
270 272 width: .6em; height: .6em;
271 273 }
272 274 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
273 275 .contextual input, .contextual select {font-size:0.9em;}
274 276 .message .contextual { margin-top: 0; }
275 277
276 278 .splitcontentleft{float:left; width:49%;}
277 279 .splitcontentright{float:right; width:49%;}
278 280 form {display: inline;}
279 281 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
280 282 fieldset {border: 1px solid #e4e4e4; margin:0;}
281 283 legend {color: #484848;}
282 284 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
283 285 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
284 286 blockquote blockquote { margin-left: 0;}
285 287 acronym { border-bottom: 1px dotted; cursor: help; }
286 288 textarea.wiki-edit { width: 99%; }
287 289 li p {margin-top: 0;}
288 290 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
289 291 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
290 292 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
291 293 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
292 294
293 295 div.issue div.subject div div { padding-left: 16px; }
294 296 div.issue div.subject p {margin: 0; margin-bottom: 0.1em; font-size: 90%; color: #999;}
295 297 div.issue div.subject>div>p { margin-top: 0.5em; }
296 298 div.issue div.subject h3 {margin: 0; margin-bottom: 0.1em;}
297 299 div.issue span.private { position:relative; bottom: 2px; text-transform: uppercase; background: #d22; color: #fff; font-weight:bold; padding: 0px 2px 0px 2px; font-size: 60%; margin-right: 2px; border-radius: 2px; -moz-border-radius: 2px;}
298 300 div.issue .next-prev-links {color:#999;}
299 301 div.issue table.attributes th {width:22%;}
300 302 div.issue table.attributes td {width:28%;}
301 303
302 304 #issue_tree table.issues, #relations table.issues { border: 0; }
303 305 #issue_tree td.checkbox, #relations td.checkbox {display:none;}
304 306 #relations td.buttons {padding:0;}
305 307
306 308 fieldset.collapsible { border-width: 1px 0 0 0; font-size: 0.9em; }
307 309 fieldset.collapsible legend { padding-left: 16px; background: url(../images/arrow_expanded.png) no-repeat 0% 40%; cursor:pointer; }
308 310 fieldset.collapsible.collapsed legend { background-image: url(../images/arrow_collapsed.png); }
309 311
310 312 fieldset#date-range p { margin: 2px 0 2px 0; }
311 313 fieldset#filters table { border-collapse: collapse; }
312 314 fieldset#filters table td { padding: 0; vertical-align: middle; }
313 315 fieldset#filters tr.filter { height: 2em; }
314 316 fieldset#filters td.field { width:200px; }
315 317 fieldset#filters td.operator { width:170px; }
316 318 fieldset#filters td.values { white-space:nowrap; }
317 319 fieldset#filters td.values img { vertical-align: middle; margin-left:1px; }
318 320 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
319 321 .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; }
320 322
321 323 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
322 324 div#issue-changesets div.changeset { padding: 4px;}
323 325 div#issue-changesets div.changeset { border-bottom: 1px solid #ddd; }
324 326 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
325 327
326 328 div#activity dl, #search-results { margin-left: 2em; }
327 329 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
328 330 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
329 331 div#activity dt.me .time { border-bottom: 1px solid #999; }
330 332 div#activity dt .time { color: #777; font-size: 80%; }
331 333 div#activity dd .description, #search-results dd .description { font-style: italic; }
332 334 div#activity span.project:after, #search-results span.project:after { content: " -"; }
333 335 div#activity dd span.description, #search-results dd span.description { display:block; color: #808080; }
334 336
335 337 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
336 338
337 339 div#search-results-counts {float:right;}
338 340 div#search-results-counts ul { margin-top: 0.5em; }
339 341 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
340 342
341 343 dt.issue { background-image: url(../images/ticket.png); }
342 344 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
343 345 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
344 346 dt.issue-note { background-image: url(../images/ticket_note.png); }
345 347 dt.changeset { background-image: url(../images/changeset.png); }
346 348 dt.news { background-image: url(../images/news.png); }
347 349 dt.message { background-image: url(../images/message.png); }
348 350 dt.reply { background-image: url(../images/comments.png); }
349 351 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
350 352 dt.attachment { background-image: url(../images/attachment.png); }
351 353 dt.document { background-image: url(../images/document.png); }
352 354 dt.project { background-image: url(../images/projects.png); }
353 355 dt.time-entry { background-image: url(../images/time.png); }
354 356
355 357 #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); }
356 358
357 359 div#roadmap .related-issues { margin-bottom: 1em; }
358 360 div#roadmap .related-issues td.checkbox { display: none; }
359 361 div#roadmap .wiki h1:first-child { display: none; }
360 362 div#roadmap .wiki h1 { font-size: 120%; }
361 363 div#roadmap .wiki h2 { font-size: 110%; }
362 364 body.controller-versions.action-show div#roadmap .related-issues {width:70%;}
363 365
364 366 div#version-summary { float:right; width:28%; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
365 367 div#version-summary fieldset { margin-bottom: 1em; }
366 368 div#version-summary fieldset.time-tracking table { width:100%; }
367 369 div#version-summary th, div#version-summary td.total-hours { text-align: right; }
368 370
369 371 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
370 372 table#time-report tbody tr.subtotal { font-style: italic; color:#777;}
371 373 table#time-report tbody tr.subtotal td.hours { color:#b0b0b0; }
372 374 table#time-report tbody tr.total { font-weight: bold; background-color:#EEEEEE; border-top:1px solid #e4e4e4;}
373 375 table#time-report .hours-dec { font-size: 0.9em; }
374 376
375 377 div.wiki-page .contextual a {opacity: 0.4}
376 378 div.wiki-page .contextual a:hover {opacity: 1}
377 379
378 380 form .attributes select { width: 60%; }
379 381 input#issue_subject { width: 99%; }
380 382 select#issue_done_ratio { width: 95px; }
381 383
382 384 ul.projects { margin: 0; padding-left: 1em; }
383 385 ul.projects.root { margin: 0; padding: 0; }
384 386 ul.projects ul.projects { border-left: 3px solid #e0e0e0; }
385 387 ul.projects li.root { list-style-type:none; margin-bottom: 1em; }
386 388 ul.projects li.child { list-style-type:none; margin-top: 1em;}
387 389 ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
388 390 .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }
389 391
390 392 #tracker_project_ids ul { margin: 0; padding-left: 1em; }
391 393 #tracker_project_ids li { list-style-type:none; }
392 394
393 395 ul.properties {padding:0; font-size: 0.9em; color: #777;}
394 396 ul.properties li {list-style-type:none;}
395 397 ul.properties li span {font-style:italic;}
396 398
397 399 .total-hours { font-size: 110%; font-weight: bold; }
398 400 .total-hours span.hours-int { font-size: 120%; }
399 401
400 402 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
401 403 #user_login, #user_firstname, #user_lastname, #user_mail, #my_account_form select, #user_form select, #user_identity_url { width: 90%; }
402 404
403 405 #workflow_copy_form select { width: 200px; }
404 406
405 407 textarea#custom_field_possible_values {width: 99%}
406 408 input#content_comments {width: 99%}
407 409
408 410 .pagination {font-size: 90%}
409 411 p.pagination {margin-top:8px;}
410 412
411 413 /***** Tabular forms ******/
412 414 .tabular p{
413 415 margin: 0;
414 416 padding: 3px 0 3px 0;
415 417 padding-left: 180px; /* width of left column containing the label elements */
416 418 min-height: 1.8em;
417 419 clear:left;
418 420 }
419 421
420 422 html>body .tabular p {overflow:hidden;}
421 423
422 424 .tabular label{
423 425 font-weight: bold;
424 426 float: left;
425 427 text-align: right;
426 428 /* width of left column */
427 429 margin-left: -180px;
428 430 /* width of labels. Should be smaller than left column to create some right margin */
429 431 width: 175px;
430 432 }
431 433
432 434 .tabular label.floating{
433 435 font-weight: normal;
434 436 margin-left: 0px;
435 437 text-align: left;
436 438 width: 270px;
437 439 }
438 440
439 441 .tabular label.block{
440 442 font-weight: normal;
441 443 margin-left: 0px !important;
442 444 text-align: left;
443 445 float: none;
444 446 display: block;
445 447 width: auto;
446 448 }
447 449
448 450 .tabular label.inline{
449 451 float:none;
450 452 margin-left: 5px !important;
451 453 width: auto;
452 454 }
453 455
454 456 form em {font-style:normal;font-size:90%;color:#888;}
455 457
456 458 label.no-css {
457 459 font-weight: inherit;
458 460 float:none;
459 461 text-align:left;
460 462 margin-left:0px;
461 463 width:auto;
462 464 }
463 465 input#time_entry_comments { width: 90%;}
464 466
465 467 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
466 468
467 469 .tabular.settings p{ padding-left: 300px; }
468 470 .tabular.settings label{ margin-left: -300px; width: 295px; }
469 471 .tabular.settings textarea { width: 99%; }
470 472
471 473 .settings.enabled_scm table {width:100%}
472 474 .settings.enabled_scm td.scm_name{ font-weight: bold; }
473 475
474 476 fieldset.settings label { display: block; }
475 477 fieldset#notified_events .parent { padding-left: 20px; }
476 478
477 479 .required {color: #bb0000;}
478 480 .summary {font-style: italic;}
479 481
480 482 #attachments_fields input[type=text] {margin-left: 8px; }
481 483 #attachments_fields span {display:block; white-space:nowrap;}
482 484 #attachments_fields img {vertical-align: middle;}
483 485
484 486 div.attachments { margin-top: 12px; }
485 487 div.attachments p { margin:4px 0 2px 0; }
486 488 div.attachments img { vertical-align: middle; }
487 489 div.attachments span.author { font-size: 0.9em; color: #888; }
488 490
489 491 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
490 492 .other-formats span + span:before { content: "| "; }
491 493
492 494 a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
493 495
494 496 /* Project members tab */
495 497 div#tab-content-members .splitcontentleft, div#tab-content-memberships .splitcontentleft, div#tab-content-users .splitcontentleft { width: 64% }
496 498 div#tab-content-members .splitcontentright, div#tab-content-memberships .splitcontentright, div#tab-content-users .splitcontentright { width: 34% }
497 499 div#tab-content-members fieldset, div#tab-content-memberships fieldset, div#tab-content-users fieldset { padding:1em; margin-bottom: 1em; }
498 500 div#tab-content-members fieldset legend, div#tab-content-memberships fieldset legend, div#tab-content-users fieldset legend { font-weight: bold; }
499 501 div#tab-content-members fieldset label, div#tab-content-memberships fieldset label, div#tab-content-users fieldset label { display: block; }
500 502 div#tab-content-members fieldset div, div#tab-content-users fieldset div { max-height: 400px; overflow:auto; }
501 503
502 504 #users_for_watcher {height: 200px; overflow:auto;}
503 505 #users_for_watcher label {display: block;}
504 506
505 507 table.members td.group { padding-left: 20px; background: url(../images/group.png) no-repeat 0% 50%; }
506 508
507 509 input#principal_search, input#user_search {width:100%}
508 510
509 511 * html div#tab-content-members fieldset div { height: 450px; }
510 512
511 513 /***** Flash & error messages ****/
512 514 #errorExplanation, div.flash, .nodata, .warning {
513 515 padding: 4px 4px 4px 30px;
514 516 margin-bottom: 12px;
515 517 font-size: 1.1em;
516 518 border: 2px solid;
517 519 }
518 520
519 521 div.flash {margin-top: 8px;}
520 522
521 523 div.flash.error, #errorExplanation {
522 524 background: url(../images/exclamation.png) 8px 50% no-repeat;
523 525 background-color: #ffe3e3;
524 526 border-color: #dd0000;
525 527 color: #880000;
526 528 }
527 529
528 530 div.flash.notice {
529 531 background: url(../images/true.png) 8px 5px no-repeat;
530 532 background-color: #dfffdf;
531 533 border-color: #9fcf9f;
532 534 color: #005f00;
533 535 }
534 536
535 537 div.flash.warning {
536 538 background: url(../images/warning.png) 8px 5px no-repeat;
537 539 background-color: #FFEBC1;
538 540 border-color: #FDBF3B;
539 541 color: #A6750C;
540 542 text-align: left;
541 543 }
542 544
543 545 .nodata, .warning {
544 546 text-align: center;
545 547 background-color: #FFEBC1;
546 548 border-color: #FDBF3B;
547 549 color: #A6750C;
548 550 }
549 551
550 552 span.error {padding-left:20px; background:url(../images/exclamation.png) no-repeat 0 50%;}
551 553
552 554 #errorExplanation ul { font-size: 0.9em;}
553 555 #errorExplanation h2, #errorExplanation p { display: none; }
554 556
555 557 /***** Ajax indicator ******/
556 558 #ajax-indicator {
557 559 position: absolute; /* fixed not supported by IE */
558 560 background-color:#eee;
559 561 border: 1px solid #bbb;
560 562 top:35%;
561 563 left:40%;
562 564 width:20%;
563 565 font-weight:bold;
564 566 text-align:center;
565 567 padding:0.6em;
566 568 z-index:100;
567 569 opacity: 0.5;
568 570 }
569 571
570 572 html>body #ajax-indicator { position: fixed; }
571 573
572 574 #ajax-indicator span {
573 575 background-position: 0% 40%;
574 576 background-repeat: no-repeat;
575 577 background-image: url(../images/loading.gif);
576 578 padding-left: 26px;
577 579 vertical-align: bottom;
578 580 }
579 581
580 582 /***** Calendar *****/
581 583 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
582 584 table.cal thead th {width: 14%; background-color:#EEEEEE; padding: 4px; }
583 585 table.cal thead th.week-number {width: auto;}
584 586 table.cal tbody tr {height: 100px;}
585 587 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
586 588 table.cal td.week-number { background-color:#EEEEEE; padding: 4px; border:none; font-size: 1em;}
587 589 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
588 590 table.cal td.odd p.day-num {color: #bbb;}
589 591 table.cal td.today {background:#ffffdd;}
590 592 table.cal td.today p.day-num {font-weight: bold;}
591 593 table.cal .starting a, p.cal.legend .starting {background: url(../images/bullet_go.png) no-repeat -1px -2px; padding-left:16px;}
592 594 table.cal .ending a, p.cal.legend .ending {background: url(../images/bullet_end.png) no-repeat -1px -2px; padding-left:16px;}
593 595 table.cal .starting.ending a, p.cal.legend .starting.ending {background: url(../images/bullet_diamond.png) no-repeat -1px -2px; padding-left:16px;}
594 596 p.cal.legend span {display:block;}
595 597
596 598 /***** Tooltips ******/
597 599 .tooltip{position:relative;z-index:24;}
598 600 .tooltip:hover{z-index:25;color:#000;}
599 601 .tooltip span.tip{display: none; text-align:left;}
600 602
601 603 div.tooltip:hover span.tip{
602 604 display:block;
603 605 position:absolute;
604 606 top:12px; left:24px; width:270px;
605 607 border:1px solid #555;
606 608 background-color:#fff;
607 609 padding: 4px;
608 610 font-size: 0.8em;
609 611 color:#505050;
610 612 }
611 613
612 614 /***** Progress bar *****/
613 615 table.progress {
614 616 border-collapse: collapse;
615 617 border-spacing: 0pt;
616 618 empty-cells: show;
617 619 text-align: center;
618 620 float:left;
619 621 margin: 1px 6px 1px 0px;
620 622 }
621 623
622 624 table.progress td { height: 1em; }
623 625 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
624 626 table.progress td.done { background: #D3EDD3 none repeat scroll 0%; }
625 627 table.progress td.todo { background: #eee none repeat scroll 0%; }
626 628 p.pourcent {font-size: 80%;}
627 629 p.progress-info {clear: left; font-size: 80%; margin-top:-4px; color:#777;}
628 630
629 631 #roadmap table.progress td { height: 1.2em; }
630 632 /***** Tabs *****/
631 633 #content .tabs {height: 2.6em; margin-bottom:1.2em; position:relative; overflow:hidden;}
632 634 #content .tabs ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; width: 2000px; border-bottom: 1px solid #bbbbbb;}
633 635 #content .tabs ul li {
634 636 float:left;
635 637 list-style-type:none;
636 638 white-space:nowrap;
637 639 margin-right:4px;
638 640 background:#fff;
639 641 position:relative;
640 642 margin-bottom:-1px;
641 643 }
642 644 #content .tabs ul li a{
643 645 display:block;
644 646 font-size: 0.9em;
645 647 text-decoration:none;
646 648 line-height:1.3em;
647 649 padding:4px 6px 4px 6px;
648 650 border: 1px solid #ccc;
649 651 border-bottom: 1px solid #bbbbbb;
650 652 background-color: #f6f6f6;
651 653 color:#999;
652 654 font-weight:bold;
653 655 border-top-left-radius:3px;
654 656 border-top-right-radius:3px;
655 657 }
656 658
657 659 #content .tabs ul li a:hover {
658 660 background-color: #ffffdd;
659 661 text-decoration:none;
660 662 }
661 663
662 664 #content .tabs ul li a.selected {
663 665 background-color: #fff;
664 666 border: 1px solid #bbbbbb;
665 667 border-bottom: 1px solid #fff;
666 668 color:#444;
667 669 }
668 670
669 671 #content .tabs ul li a.selected:hover {
670 672 background-color: #fff;
671 673 }
672 674
673 675 div.tabs-buttons { position:absolute; right: 0; width: 48px; height: 24px; background: white; bottom: 0; border-bottom: 1px solid #bbbbbb; }
674 676
675 677 button.tab-left, button.tab-right {
676 678 font-size: 0.9em;
677 679 cursor: pointer;
678 680 height:24px;
679 681 border: 1px solid #ccc;
680 682 border-bottom: 1px solid #bbbbbb;
681 683 position:absolute;
682 684 padding:4px;
683 685 width: 20px;
684 686 bottom: -1px;
685 687 }
686 688
687 689 button.tab-left {
688 690 right: 20px;
689 691 background: #eeeeee url(../images/bullet_arrow_left.png) no-repeat 50% 50%;
690 692 border-top-left-radius:3px;
691 693 }
692 694
693 695 button.tab-right {
694 696 right: 0;
695 697 background: #eeeeee url(../images/bullet_arrow_right.png) no-repeat 50% 50%;
696 698 border-top-right-radius:3px;
697 699 }
698 700
699 701 /***** Auto-complete *****/
700 702 div.autocomplete {
701 703 position:absolute;
702 704 width:400px;
703 705 margin:0;
704 706 padding:0;
705 707 }
706 708 div.autocomplete ul {
707 709 list-style-type:none;
708 710 margin:0;
709 711 padding:0;
710 712 }
711 713 div.autocomplete ul li {
712 714 list-style-type:none;
713 715 display:block;
714 716 margin:-1px 0 0 0;
715 717 padding:2px;
716 718 cursor:pointer;
717 719 font-size: 90%;
718 720 border: 1px solid #ccc;
719 721 border-left: 1px solid #ccc;
720 722 border-right: 1px solid #ccc;
721 723 background-color:white;
722 724 }
723 725 div.autocomplete ul li.selected { background-color: #ffb;}
724 726 div.autocomplete ul li span.informal {
725 727 font-size: 80%;
726 728 color: #aaa;
727 729 }
728 730
729 731 #parent_issue_candidates ul li {width: 500px;}
730 732 #related_issue_candidates ul li {width: 500px;}
731 733
732 734 /***** Diff *****/
733 735 .diff_out { background: #fcc; }
734 736 .diff_out span { background: #faa; }
735 737 .diff_in { background: #cfc; }
736 738 .diff_in span { background: #afa; }
737 739
738 740 .text-diff {
739 741 padding: 1em;
740 742 background-color:#f6f6f6;
741 743 color:#505050;
742 744 border: 1px solid #e4e4e4;
743 745 }
744 746
745 747 /***** Wiki *****/
746 748 div.wiki table {
747 749 border: 1px solid #505050;
748 750 border-collapse: collapse;
749 751 margin-bottom: 1em;
750 752 }
751 753
752 754 div.wiki table, div.wiki td, div.wiki th {
753 755 border: 1px solid #bbb;
754 756 padding: 4px;
755 757 }
756 758
757 759 div.wiki .external {
758 760 background-position: 0% 60%;
759 761 background-repeat: no-repeat;
760 762 padding-left: 12px;
761 763 background-image: url(../images/external.png);
762 764 }
763 765
764 766 div.wiki a.new {
765 767 color: #b73535;
766 768 }
767 769
768 770 div.wiki ul, div.wiki ol {margin-bottom:1em;}
769 771
770 772 div.wiki pre {
771 773 margin: 1em 1em 1em 1.6em;
772 774 padding: 2px 2px 2px 0;
773 775 background-color: #fafafa;
774 776 border: 1px solid #dadada;
775 777 width:auto;
776 778 overflow-x: auto;
777 779 overflow-y: hidden;
778 780 }
779 781
780 782 div.wiki ul.toc {
781 783 background-color: #ffffdd;
782 784 border: 1px solid #e4e4e4;
783 785 padding: 4px;
784 786 line-height: 1.2em;
785 787 margin-bottom: 12px;
786 788 margin-right: 12px;
787 789 margin-left: 0;
788 790 display: table
789 791 }
790 792 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
791 793
792 794 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
793 795 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
794 796 div.wiki ul.toc ul { margin: 0; padding: 0; }
795 797 div.wiki ul.toc li { list-style-type:none; margin: 0;}
796 798 div.wiki ul.toc li li { margin-left: 1.5em; }
797 799 div.wiki ul.toc li li li { font-size: 0.8em; }
798 800
799 801 div.wiki ul.toc a {
800 802 font-size: 0.9em;
801 803 font-weight: normal;
802 804 text-decoration: none;
803 805 color: #606060;
804 806 }
805 807 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
806 808
807 809 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
808 810 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
809 811 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
810 812
811 813 div.wiki img { vertical-align: middle; }
812 814
813 815 /***** My page layout *****/
814 816 .block-receiver {
815 817 border:1px dashed #c0c0c0;
816 818 margin-bottom: 20px;
817 819 padding: 15px 0 15px 0;
818 820 }
819 821
820 822 .mypage-box {
821 823 margin:0 0 20px 0;
822 824 color:#505050;
823 825 line-height:1.5em;
824 826 }
825 827
826 828 .handle {
827 829 cursor: move;
828 830 }
829 831
830 832 a.close-icon {
831 833 display:block;
832 834 margin-top:3px;
833 835 overflow:hidden;
834 836 width:12px;
835 837 height:12px;
836 838 background-repeat: no-repeat;
837 839 cursor:pointer;
838 840 background-image:url('../images/close.png');
839 841 }
840 842
841 843 a.close-icon:hover {
842 844 background-image:url('../images/close_hl.png');
843 845 }
844 846
845 847 /***** Gantt chart *****/
846 848 .gantt_hdr {
847 849 position:absolute;
848 850 top:0;
849 851 height:16px;
850 852 border-top: 1px solid #c0c0c0;
851 853 border-bottom: 1px solid #c0c0c0;
852 854 border-right: 1px solid #c0c0c0;
853 855 text-align: center;
854 856 overflow: hidden;
855 857 }
856 858
857 859 .gantt_subjects { font-size: 0.8em; }
858 860 .gantt_subjects div { line-height:16px;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
859 861
860 862 .task {
861 863 position: absolute;
862 864 height:8px;
863 865 font-size:0.8em;
864 866 color:#888;
865 867 padding:0;
866 868 margin:0;
867 869 line-height:16px;
868 870 white-space:nowrap;
869 871 }
870 872
871 873 .task.label {width:100%;}
872 874 .task.label.project, .task.label.version { font-weight: bold; }
873 875
874 876 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
875 877 .task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; }
876 878 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
877 879
878 880 .task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
879 881 .task_late.parent, .task_done.parent { height: 3px;}
880 882 .task.parent.marker.starting { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
881 883 .task.parent.marker.ending { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
882 884
883 885 .version.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
884 886 .version.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
885 887 .version.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
886 888 .version.marker { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
887 889
888 890 .project.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
889 891 .project.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
890 892 .project.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
891 893 .project.marker { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
892 894
893 895 .version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
894 896 .version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
895 897
896 898 /***** Icons *****/
897 899 .icon {
898 900 background-position: 0% 50%;
899 901 background-repeat: no-repeat;
900 902 padding-left: 20px;
901 903 padding-top: 2px;
902 904 padding-bottom: 3px;
903 905 }
904 906
905 907 .icon-add { background-image: url(../images/add.png); }
906 908 .icon-edit { background-image: url(../images/edit.png); }
907 909 .icon-copy { background-image: url(../images/copy.png); }
908 910 .icon-duplicate { background-image: url(../images/duplicate.png); }
909 911 .icon-del { background-image: url(../images/delete.png); }
910 912 .icon-move { background-image: url(../images/move.png); }
911 913 .icon-save { background-image: url(../images/save.png); }
912 914 .icon-cancel { background-image: url(../images/cancel.png); }
913 915 .icon-multiple { background-image: url(../images/table_multiple.png); }
914 916 .icon-folder { background-image: url(../images/folder.png); }
915 917 .open .icon-folder { background-image: url(../images/folder_open.png); }
916 918 .icon-package { background-image: url(../images/package.png); }
917 919 .icon-user { background-image: url(../images/user.png); }
918 920 .icon-projects { background-image: url(../images/projects.png); }
919 921 .icon-help { background-image: url(../images/help.png); }
920 922 .icon-attachment { background-image: url(../images/attachment.png); }
921 923 .icon-history { background-image: url(../images/history.png); }
922 924 .icon-time { background-image: url(../images/time.png); }
923 925 .icon-time-add { background-image: url(../images/time_add.png); }
924 926 .icon-stats { background-image: url(../images/stats.png); }
925 927 .icon-warning { background-image: url(../images/warning.png); }
926 928 .icon-fav { background-image: url(../images/fav.png); }
927 929 .icon-fav-off { background-image: url(../images/fav_off.png); }
928 930 .icon-reload { background-image: url(../images/reload.png); }
929 931 .icon-lock { background-image: url(../images/locked.png); }
930 932 .icon-unlock { background-image: url(../images/unlock.png); }
931 933 .icon-checked { background-image: url(../images/true.png); }
932 934 .icon-details { background-image: url(../images/zoom_in.png); }
933 935 .icon-report { background-image: url(../images/report.png); }
934 936 .icon-comment { background-image: url(../images/comment.png); }
935 937 .icon-summary { background-image: url(../images/lightning.png); }
936 938 .icon-server-authentication { background-image: url(../images/server_key.png); }
937 939 .icon-issue { background-image: url(../images/ticket.png); }
938 940 .icon-zoom-in { background-image: url(../images/zoom_in.png); }
939 941 .icon-zoom-out { background-image: url(../images/zoom_out.png); }
940 942 .icon-passwd { background-image: url(../images/textfield_key.png); }
941 943
942 944 .icon-file { background-image: url(../images/files/default.png); }
943 945 .icon-file.text-plain { background-image: url(../images/files/text.png); }
944 946 .icon-file.text-x-c { background-image: url(../images/files/c.png); }
945 947 .icon-file.text-x-csharp { background-image: url(../images/files/csharp.png); }
946 948 .icon-file.text-x-java { background-image: url(../images/files/java.png); }
947 949 .icon-file.text-x-javascript { background-image: url(../images/files/js.png); }
948 950 .icon-file.text-x-php { background-image: url(../images/files/php.png); }
949 951 .icon-file.text-x-ruby { background-image: url(../images/files/ruby.png); }
950 952 .icon-file.text-xml { background-image: url(../images/files/xml.png); }
951 953 .icon-file.text-css { background-image: url(../images/files/css.png); }
952 954 .icon-file.text-html { background-image: url(../images/files/html.png); }
953 955 .icon-file.image-gif { background-image: url(../images/files/image.png); }
954 956 .icon-file.image-jpeg { background-image: url(../images/files/image.png); }
955 957 .icon-file.image-png { background-image: url(../images/files/image.png); }
956 958 .icon-file.image-tiff { background-image: url(../images/files/image.png); }
957 959 .icon-file.application-pdf { background-image: url(../images/files/pdf.png); }
958 960 .icon-file.application-zip { background-image: url(../images/files/zip.png); }
959 961 .icon-file.application-x-gzip { background-image: url(../images/files/zip.png); }
960 962
961 963 img.gravatar {
962 964 padding: 2px;
963 965 border: solid 1px #d5d5d5;
964 966 background: #fff;
965 967 vertical-align: middle;
966 968 }
967 969
968 970 div.issue img.gravatar {
969 971 float: left;
970 972 margin: 0 6px 0 0;
971 973 padding: 5px;
972 974 }
973 975
974 976 div.issue table img.gravatar {
975 977 height: 14px;
976 978 width: 14px;
977 979 padding: 2px;
978 980 float: left;
979 981 margin: 0 0.5em 0 0;
980 982 }
981 983
982 984 h2 img.gravatar {
983 985 margin: -2px 4px -4px 0;
984 986 }
985 987
986 988 h3 img.gravatar {
987 989 margin: -4px 4px -4px 0;
988 990 }
989 991
990 992 h4 img.gravatar {
991 993 margin: -6px 4px -4px 0;
992 994 }
993 995
994 996 td.username img.gravatar {
995 997 margin: 0 0.5em 0 0;
996 998 vertical-align: top;
997 999 }
998 1000
999 1001 #activity dt img.gravatar {
1000 1002 float: left;
1001 1003 margin: 0 1em 1em 0;
1002 1004 }
1003 1005
1004 1006 /* Used on 12px Gravatar img tags without the icon background */
1005 1007 .icon-gravatar {
1006 1008 float: left;
1007 1009 margin-right: 4px;
1008 1010 }
1009 1011
1010 1012 #activity dt,
1011 1013 .journal {
1012 1014 clear: left;
1013 1015 }
1014 1016
1015 1017 .journal-link {
1016 1018 float: right;
1017 1019 }
1018 1020
1019 1021 h2 img { vertical-align:middle; }
1020 1022
1021 1023 .hascontextmenu { cursor: context-menu; }
1022 1024
1023 1025 /***** Media print specific styles *****/
1024 1026 @media print {
1025 1027 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
1026 1028 #main { background: #fff; }
1027 1029 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
1028 1030 #wiki_add_attachment { display:none; }
1029 1031 .hide-when-print { display: none; }
1030 1032 .autoscroll {overflow-x: visible;}
1031 1033 table.list {margin-top:0.5em;}
1032 1034 table.list th, table.list td {border: 1px solid #aaa;}
1033 1035 }
1034 1036
1035 1037 /* Accessibility specific styles */
1036 1038 .hidden-for-sighted {
1037 1039 position:absolute;
1038 1040 left:-10000px;
1039 1041 top:auto;
1040 1042 width:1px;
1041 1043 height:1px;
1042 1044 overflow:hidden;
1043 1045 }
General Comments 0
You need to be logged in to leave comments. Login now