##// END OF EJS Templates
UI !
marcink -
r1756:60a00fd7 beta
parent child Browse files
Show More
@@ -1,423 +1,424 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 Changelog
3 Changelog
4 =========
4 =========
5
5
6
6
7 1.3.0 (**XXXX-XX-XX**)
7 1.3.0 (**XXXX-XX-XX**)
8 ======================
8 ======================
9
9
10 :status: in-progress
10 :status: in-progress
11 :branch: beta
11 :branch: beta
12
12
13 news
13 news
14 ----
14 ----
15
15
16 - code review, inspired by github code-comments
16 - code review, inspired by github code-comments
17 - #215 rst and markdown README files support
17 - #215 rst and markdown README files support
18 - #252 Container-based and proxy pass-through authentication support
18 - #252 Container-based and proxy pass-through authentication support
19 - #44 branch browser. Filtering of changelog by branches
19 - #44 branch browser. Filtering of changelog by branches
20 - hover top menu
20 - hover top menu
21 - configurable clone url possibility to specify ssh:// manually as
21 - configurable clone url possibility to specify ssh:// manually as
22 alternative clone url.
22 alternative clone url.
23 - enabled largefiles extension by default
23 - enabled largefiles extension by default
24 - optimized summary file pages and saved a lot of unused space in them
24 - optimized summary file pages and saved a lot of unused space in them
25 - #239 option to manually mark repository as fork
25
26
26 fixes
27 fixes
27 -----
28 -----
28
29
29 - rewrote dbsession management for atomic operations, and better error handling
30 - rewrote dbsession management for atomic operations, and better error handling
30
31
31 1.2.3 (**2011-11-02**)
32 1.2.3 (**2011-11-02**)
32 ======================
33 ======================
33
34
34 news
35 news
35 ----
36 ----
36
37
37 - added option to manage repos group for non admin users
38 - added option to manage repos group for non admin users
38 - added following API methods for get_users, create_user, get_users_groups,
39 - added following API methods for get_users, create_user, get_users_groups,
39 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
40 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
40 get_repo, create_repo, add_user_to_repo
41 get_repo, create_repo, add_user_to_repo
41 - implements #237 added password confirmation for my account
42 - implements #237 added password confirmation for my account
42 and admin edit user.
43 and admin edit user.
43 - implements #291 email notification for global events are now sent to all
44 - implements #291 email notification for global events are now sent to all
44 administrator users, and global config email.
45 administrator users, and global config email.
45
46
46 fixes
47 fixes
47 -----
48 -----
48
49
49 - added option for passing auth method for smtp mailer
50 - added option for passing auth method for smtp mailer
50 - #276 issue with adding a single user with id>10 to usergroups
51 - #276 issue with adding a single user with id>10 to usergroups
51 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
52 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
52 - #288 fixes managing of repos in a group for non admin user
53 - #288 fixes managing of repos in a group for non admin user
53
54
54 1.2.2 (**2011-10-17**)
55 1.2.2 (**2011-10-17**)
55 ======================
56 ======================
56
57
57 news
58 news
58 ----
59 ----
59
60
60 - #226 repo groups are available by path instead of numerical id
61 - #226 repo groups are available by path instead of numerical id
61
62
62 fixes
63 fixes
63 -----
64 -----
64
65
65 - #259 Groups with the same name but with different parent group
66 - #259 Groups with the same name but with different parent group
66 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
67 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
67 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
68 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
68 - #265 ldap save fails sometimes on converting attributes to booleans,
69 - #265 ldap save fails sometimes on converting attributes to booleans,
69 added getter and setter into model that will prevent from this on db model level
70 added getter and setter into model that will prevent from this on db model level
70 - fixed problems with timestamps issues #251 and #213
71 - fixed problems with timestamps issues #251 and #213
71 - fixes #266 RhodeCode allows to create repo with the same name and in
72 - fixes #266 RhodeCode allows to create repo with the same name and in
72 the same parent as group
73 the same parent as group
73 - fixes #245 Rescan of the repositories on Windows
74 - fixes #245 Rescan of the repositories on Windows
74 - fixes #248 cannot edit repos inside a group on windows
75 - fixes #248 cannot edit repos inside a group on windows
75 - fixes #219 forking problems on windows
76 - fixes #219 forking problems on windows
76
77
77 1.2.1 (**2011-10-08**)
78 1.2.1 (**2011-10-08**)
78 ======================
79 ======================
79
80
80 news
81 news
81 ----
82 ----
82
83
83
84
84 fixes
85 fixes
85 -----
86 -----
86
87
87 - fixed problems with basic auth and push problems
88 - fixed problems with basic auth and push problems
88 - gui fixes
89 - gui fixes
89 - fixed logger
90 - fixed logger
90
91
91 1.2.0 (**2011-10-07**)
92 1.2.0 (**2011-10-07**)
92 ======================
93 ======================
93
94
94 news
95 news
95 ----
96 ----
96
97
97 - implemented #47 repository groups
98 - implemented #47 repository groups
98 - implemented #89 Can setup google analytics code from settings menu
99 - implemented #89 Can setup google analytics code from settings menu
99 - implemented #91 added nicer looking archive urls with more download options
100 - implemented #91 added nicer looking archive urls with more download options
100 like tags, branches
101 like tags, branches
101 - implemented #44 into file browsing, and added follow branch option
102 - implemented #44 into file browsing, and added follow branch option
102 - implemented #84 downloads can be enabled/disabled for each repository
103 - implemented #84 downloads can be enabled/disabled for each repository
103 - anonymous repository can be cloned without having to pass default:default
104 - anonymous repository can be cloned without having to pass default:default
104 into clone url
105 into clone url
105 - fixed #90 whoosh indexer can index chooses repositories passed in command
106 - fixed #90 whoosh indexer can index chooses repositories passed in command
106 line
107 line
107 - extended journal with day aggregates and paging
108 - extended journal with day aggregates and paging
108 - implemented #107 source code lines highlight ranges
109 - implemented #107 source code lines highlight ranges
109 - implemented #93 customizable changelog on combined revision ranges -
110 - implemented #93 customizable changelog on combined revision ranges -
110 equivalent of githubs compare view
111 equivalent of githubs compare view
111 - implemented #108 extended and more powerful LDAP configuration
112 - implemented #108 extended and more powerful LDAP configuration
112 - implemented #56 users groups
113 - implemented #56 users groups
113 - major code rewrites optimized codes for speed and memory usage
114 - major code rewrites optimized codes for speed and memory usage
114 - raw and diff downloads are now in git format
115 - raw and diff downloads are now in git format
115 - setup command checks for write access to given path
116 - setup command checks for write access to given path
116 - fixed many issues with international characters and unicode. It uses utf8
117 - fixed many issues with international characters and unicode. It uses utf8
117 decode with replace to provide less errors even with non utf8 encoded strings
118 decode with replace to provide less errors even with non utf8 encoded strings
118 - #125 added API KEY access to feeds
119 - #125 added API KEY access to feeds
119 - #109 Repository can be created from external Mercurial link (aka. remote
120 - #109 Repository can be created from external Mercurial link (aka. remote
120 repository, and manually updated (via pull) from admin panel
121 repository, and manually updated (via pull) from admin panel
121 - beta git support - push/pull server + basic view for git repos
122 - beta git support - push/pull server + basic view for git repos
122 - added followers page and forks page
123 - added followers page and forks page
123 - server side file creation (with binary file upload interface)
124 - server side file creation (with binary file upload interface)
124 and edition with commits powered by codemirror
125 and edition with commits powered by codemirror
125 - #111 file browser file finder, quick lookup files on whole file tree
126 - #111 file browser file finder, quick lookup files on whole file tree
126 - added quick login sliding menu into main page
127 - added quick login sliding menu into main page
127 - changelog uses lazy loading of affected files details, in some scenarios
128 - changelog uses lazy loading of affected files details, in some scenarios
128 this can improve speed of changelog page dramatically especially for
129 this can improve speed of changelog page dramatically especially for
129 larger repositories.
130 larger repositories.
130 - implements #214 added support for downloading subrepos in download menu.
131 - implements #214 added support for downloading subrepos in download menu.
131 - Added basic API for direct operations on rhodecode via JSON
132 - Added basic API for direct operations on rhodecode via JSON
132 - Implemented advanced hook management
133 - Implemented advanced hook management
133
134
134 fixes
135 fixes
135 -----
136 -----
136
137
137 - fixed file browser bug, when switching into given form revision the url was
138 - fixed file browser bug, when switching into given form revision the url was
138 not changing
139 not changing
139 - fixed propagation to error controller on simplehg and simplegit middlewares
140 - fixed propagation to error controller on simplehg and simplegit middlewares
140 - fixed error when trying to make a download on empty repository
141 - fixed error when trying to make a download on empty repository
141 - fixed problem with '[' chars in commit messages in journal
142 - fixed problem with '[' chars in commit messages in journal
142 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
143 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
143 - journal fork fixes
144 - journal fork fixes
144 - removed issue with space inside renamed repository after deletion
145 - removed issue with space inside renamed repository after deletion
145 - fixed strange issue on formencode imports
146 - fixed strange issue on formencode imports
146 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
147 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
147 - #150 fixes for errors on repositories mapped in db but corrupted in
148 - #150 fixes for errors on repositories mapped in db but corrupted in
148 filesystem
149 filesystem
149 - fixed problem with ascendant characters in realm #181
150 - fixed problem with ascendant characters in realm #181
150 - fixed problem with sqlite file based database connection pool
151 - fixed problem with sqlite file based database connection pool
151 - whoosh indexer and code stats share the same dynamic extensions map
152 - whoosh indexer and code stats share the same dynamic extensions map
152 - fixes #188 - relationship delete of repo_to_perm entry on user removal
153 - fixes #188 - relationship delete of repo_to_perm entry on user removal
153 - fixes issue #189 Trending source files shows "show more" when no more exist
154 - fixes issue #189 Trending source files shows "show more" when no more exist
154 - fixes issue #197 Relative paths for pidlocks
155 - fixes issue #197 Relative paths for pidlocks
155 - fixes issue #198 password will require only 3 chars now for login form
156 - fixes issue #198 password will require only 3 chars now for login form
156 - fixes issue #199 wrong redirection for non admin users after creating a repository
157 - fixes issue #199 wrong redirection for non admin users after creating a repository
157 - fixes issues #202, bad db constraint made impossible to attach same group
158 - fixes issues #202, bad db constraint made impossible to attach same group
158 more than one time. Affects only mysql/postgres
159 more than one time. Affects only mysql/postgres
159 - fixes #218 os.kill patch for windows was missing sig param
160 - fixes #218 os.kill patch for windows was missing sig param
160 - improved rendering of dag (they are not trimmed anymore when number of
161 - improved rendering of dag (they are not trimmed anymore when number of
161 heads exceeds 5)
162 heads exceeds 5)
162
163
163 1.1.8 (**2011-04-12**)
164 1.1.8 (**2011-04-12**)
164 ======================
165 ======================
165
166
166 news
167 news
167 ----
168 ----
168
169
169 - improved windows support
170 - improved windows support
170
171
171 fixes
172 fixes
172 -----
173 -----
173
174
174 - fixed #140 freeze of python dateutil library, since new version is python2.x
175 - fixed #140 freeze of python dateutil library, since new version is python2.x
175 incompatible
176 incompatible
176 - setup-app will check for write permission in given path
177 - setup-app will check for write permission in given path
177 - cleaned up license info issue #149
178 - cleaned up license info issue #149
178 - fixes for issues #137,#116 and problems with unicode and accented characters.
179 - fixes for issues #137,#116 and problems with unicode and accented characters.
179 - fixes crashes on gravatar, when passed in email as unicode
180 - fixes crashes on gravatar, when passed in email as unicode
180 - fixed tooltip flickering problems
181 - fixed tooltip flickering problems
181 - fixed came_from redirection on windows
182 - fixed came_from redirection on windows
182 - fixed logging modules, and sql formatters
183 - fixed logging modules, and sql formatters
183 - windows fixes for os.kill issue #133
184 - windows fixes for os.kill issue #133
184 - fixes path splitting for windows issues #148
185 - fixes path splitting for windows issues #148
185 - fixed issue #143 wrong import on migration to 1.1.X
186 - fixed issue #143 wrong import on migration to 1.1.X
186 - fixed problems with displaying binary files, thanks to Thomas Waldmann
187 - fixed problems with displaying binary files, thanks to Thomas Waldmann
187 - removed name from archive files since it's breaking ui for long repo names
188 - removed name from archive files since it's breaking ui for long repo names
188 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
189 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
189 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
190 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
190 Thomas Waldmann
191 Thomas Waldmann
191 - fixed issue #166 summary pager was skipping 10 revisions on second page
192 - fixed issue #166 summary pager was skipping 10 revisions on second page
192
193
193
194
194 1.1.7 (**2011-03-23**)
195 1.1.7 (**2011-03-23**)
195 ======================
196 ======================
196
197
197 news
198 news
198 ----
199 ----
199
200
200 fixes
201 fixes
201 -----
202 -----
202
203
203 - fixed (again) #136 installation support for FreeBSD
204 - fixed (again) #136 installation support for FreeBSD
204
205
205
206
206 1.1.6 (**2011-03-21**)
207 1.1.6 (**2011-03-21**)
207 ======================
208 ======================
208
209
209 news
210 news
210 ----
211 ----
211
212
212 fixes
213 fixes
213 -----
214 -----
214
215
215 - fixed #136 installation support for FreeBSD
216 - fixed #136 installation support for FreeBSD
216 - RhodeCode will check for python version during installation
217 - RhodeCode will check for python version during installation
217
218
218 1.1.5 (**2011-03-17**)
219 1.1.5 (**2011-03-17**)
219 ======================
220 ======================
220
221
221 news
222 news
222 ----
223 ----
223
224
224 - basic windows support, by exchanging pybcrypt into sha256 for windows only
225 - basic windows support, by exchanging pybcrypt into sha256 for windows only
225 highly inspired by idea of mantis406
226 highly inspired by idea of mantis406
226
227
227 fixes
228 fixes
228 -----
229 -----
229
230
230 - fixed sorting by author in main page
231 - fixed sorting by author in main page
231 - fixed crashes with diffs on binary files
232 - fixed crashes with diffs on binary files
232 - fixed #131 problem with boolean values for LDAP
233 - fixed #131 problem with boolean values for LDAP
233 - fixed #122 mysql problems thanks to striker69
234 - fixed #122 mysql problems thanks to striker69
234 - fixed problem with errors on calling raw/raw_files/annotate functions
235 - fixed problem with errors on calling raw/raw_files/annotate functions
235 with unknown revisions
236 with unknown revisions
236 - fixed returned rawfiles attachment names with international character
237 - fixed returned rawfiles attachment names with international character
237 - cleaned out docs, big thanks to Jason Harris
238 - cleaned out docs, big thanks to Jason Harris
238
239
239 1.1.4 (**2011-02-19**)
240 1.1.4 (**2011-02-19**)
240 ======================
241 ======================
241
242
242 news
243 news
243 ----
244 ----
244
245
245 fixes
246 fixes
246 -----
247 -----
247
248
248 - fixed formencode import problem on settings page, that caused server crash
249 - fixed formencode import problem on settings page, that caused server crash
249 when that page was accessed as first after server start
250 when that page was accessed as first after server start
250 - journal fixes
251 - journal fixes
251 - fixed option to access repository just by entering http://server/<repo_name>
252 - fixed option to access repository just by entering http://server/<repo_name>
252
253
253 1.1.3 (**2011-02-16**)
254 1.1.3 (**2011-02-16**)
254 ======================
255 ======================
255
256
256 news
257 news
257 ----
258 ----
258
259
259 - implemented #102 allowing the '.' character in username
260 - implemented #102 allowing the '.' character in username
260 - added option to access repository just by entering http://server/<repo_name>
261 - added option to access repository just by entering http://server/<repo_name>
261 - celery task ignores result for better performance
262 - celery task ignores result for better performance
262
263
263 fixes
264 fixes
264 -----
265 -----
265
266
266 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
267 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
267 apollo13 and Johan Walles
268 apollo13 and Johan Walles
268 - small fixes in journal
269 - small fixes in journal
269 - fixed problems with getting setting for celery from .ini files
270 - fixed problems with getting setting for celery from .ini files
270 - registration, password reset and login boxes share the same title as main
271 - registration, password reset and login boxes share the same title as main
271 application now
272 application now
272 - fixed #113: to high permissions to fork repository
273 - fixed #113: to high permissions to fork repository
273 - fixed problem with '[' chars in commit messages in journal
274 - fixed problem with '[' chars in commit messages in journal
274 - removed issue with space inside renamed repository after deletion
275 - removed issue with space inside renamed repository after deletion
275 - db transaction fixes when filesystem repository creation failed
276 - db transaction fixes when filesystem repository creation failed
276 - fixed #106 relation issues on databases different than sqlite
277 - fixed #106 relation issues on databases different than sqlite
277 - fixed static files paths links to use of url() method
278 - fixed static files paths links to use of url() method
278
279
279 1.1.2 (**2011-01-12**)
280 1.1.2 (**2011-01-12**)
280 ======================
281 ======================
281
282
282 news
283 news
283 ----
284 ----
284
285
285
286
286 fixes
287 fixes
287 -----
288 -----
288
289
289 - fixes #98 protection against float division of percentage stats
290 - fixes #98 protection against float division of percentage stats
290 - fixed graph bug
291 - fixed graph bug
291 - forced webhelpers version since it was making troubles during installation
292 - forced webhelpers version since it was making troubles during installation
292
293
293 1.1.1 (**2011-01-06**)
294 1.1.1 (**2011-01-06**)
294 ======================
295 ======================
295
296
296 news
297 news
297 ----
298 ----
298
299
299 - added force https option into ini files for easier https usage (no need to
300 - added force https option into ini files for easier https usage (no need to
300 set server headers with this options)
301 set server headers with this options)
301 - small css updates
302 - small css updates
302
303
303 fixes
304 fixes
304 -----
305 -----
305
306
306 - fixed #96 redirect loop on files view on repositories without changesets
307 - fixed #96 redirect loop on files view on repositories without changesets
307 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
308 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
308 and server crashed with errors
309 and server crashed with errors
309 - fixed large tooltips problems on main page
310 - fixed large tooltips problems on main page
310 - fixed #92 whoosh indexer is more error proof
311 - fixed #92 whoosh indexer is more error proof
311
312
312 1.1.0 (**2010-12-18**)
313 1.1.0 (**2010-12-18**)
313 ======================
314 ======================
314
315
315 news
316 news
316 ----
317 ----
317
318
318 - rewrite of internals for vcs >=0.1.10
319 - rewrite of internals for vcs >=0.1.10
319 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
320 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
320 with older clients
321 with older clients
321 - anonymous access, authentication via ldap
322 - anonymous access, authentication via ldap
322 - performance upgrade for cached repos list - each repository has its own
323 - performance upgrade for cached repos list - each repository has its own
323 cache that's invalidated when needed.
324 cache that's invalidated when needed.
324 - performance upgrades on repositories with large amount of commits (20K+)
325 - performance upgrades on repositories with large amount of commits (20K+)
325 - main page quick filter for filtering repositories
326 - main page quick filter for filtering repositories
326 - user dashboards with ability to follow chosen repositories actions
327 - user dashboards with ability to follow chosen repositories actions
327 - sends email to admin on new user registration
328 - sends email to admin on new user registration
328 - added cache/statistics reset options into repository settings
329 - added cache/statistics reset options into repository settings
329 - more detailed action logger (based on hooks) with pushed changesets lists
330 - more detailed action logger (based on hooks) with pushed changesets lists
330 and options to disable those hooks from admin panel
331 and options to disable those hooks from admin panel
331 - introduced new enhanced changelog for merges that shows more accurate results
332 - introduced new enhanced changelog for merges that shows more accurate results
332 - new improved and faster code stats (based on pygments lexers mapping tables,
333 - new improved and faster code stats (based on pygments lexers mapping tables,
333 showing up to 10 trending sources for each repository. Additionally stats
334 showing up to 10 trending sources for each repository. Additionally stats
334 can be disabled in repository settings.
335 can be disabled in repository settings.
335 - gui optimizations, fixed application width to 1024px
336 - gui optimizations, fixed application width to 1024px
336 - added cut off (for large files/changesets) limit into config files
337 - added cut off (for large files/changesets) limit into config files
337 - whoosh, celeryd, upgrade moved to paster command
338 - whoosh, celeryd, upgrade moved to paster command
338 - other than sqlite database backends can be used
339 - other than sqlite database backends can be used
339
340
340 fixes
341 fixes
341 -----
342 -----
342
343
343 - fixes #61 forked repo was showing only after cache expired
344 - fixes #61 forked repo was showing only after cache expired
344 - fixes #76 no confirmation on user deletes
345 - fixes #76 no confirmation on user deletes
345 - fixes #66 Name field misspelled
346 - fixes #66 Name field misspelled
346 - fixes #72 block user removal when he owns repositories
347 - fixes #72 block user removal when he owns repositories
347 - fixes #69 added password confirmation fields
348 - fixes #69 added password confirmation fields
348 - fixes #87 RhodeCode crashes occasionally on updating repository owner
349 - fixes #87 RhodeCode crashes occasionally on updating repository owner
349 - fixes #82 broken annotations on files with more than 1 blank line at the end
350 - fixes #82 broken annotations on files with more than 1 blank line at the end
350 - a lot of fixes and tweaks for file browser
351 - a lot of fixes and tweaks for file browser
351 - fixed detached session issues
352 - fixed detached session issues
352 - fixed when user had no repos he would see all repos listed in my account
353 - fixed when user had no repos he would see all repos listed in my account
353 - fixed ui() instance bug when global hgrc settings was loaded for server
354 - fixed ui() instance bug when global hgrc settings was loaded for server
354 instance and all hgrc options were merged with our db ui() object
355 instance and all hgrc options were merged with our db ui() object
355 - numerous small bugfixes
356 - numerous small bugfixes
356
357
357 (special thanks for TkSoh for detailed feedback)
358 (special thanks for TkSoh for detailed feedback)
358
359
359
360
360 1.0.2 (**2010-11-12**)
361 1.0.2 (**2010-11-12**)
361 ======================
362 ======================
362
363
363 news
364 news
364 ----
365 ----
365
366
366 - tested under python2.7
367 - tested under python2.7
367 - bumped sqlalchemy and celery versions
368 - bumped sqlalchemy and celery versions
368
369
369 fixes
370 fixes
370 -----
371 -----
371
372
372 - fixed #59 missing graph.js
373 - fixed #59 missing graph.js
373 - fixed repo_size crash when repository had broken symlinks
374 - fixed repo_size crash when repository had broken symlinks
374 - fixed python2.5 crashes.
375 - fixed python2.5 crashes.
375
376
376
377
377 1.0.1 (**2010-11-10**)
378 1.0.1 (**2010-11-10**)
378 ======================
379 ======================
379
380
380 news
381 news
381 ----
382 ----
382
383
383 - small css updated
384 - small css updated
384
385
385 fixes
386 fixes
386 -----
387 -----
387
388
388 - fixed #53 python2.5 incompatible enumerate calls
389 - fixed #53 python2.5 incompatible enumerate calls
389 - fixed #52 disable mercurial extension for web
390 - fixed #52 disable mercurial extension for web
390 - fixed #51 deleting repositories don't delete it's dependent objects
391 - fixed #51 deleting repositories don't delete it's dependent objects
391
392
392
393
393 1.0.0 (**2010-11-02**)
394 1.0.0 (**2010-11-02**)
394 ======================
395 ======================
395
396
396 - security bugfix simplehg wasn't checking for permissions on commands
397 - security bugfix simplehg wasn't checking for permissions on commands
397 other than pull or push.
398 other than pull or push.
398 - fixed doubled messages after push or pull in admin journal
399 - fixed doubled messages after push or pull in admin journal
399 - templating and css corrections, fixed repo switcher on chrome, updated titles
400 - templating and css corrections, fixed repo switcher on chrome, updated titles
400 - admin menu accessible from options menu on repository view
401 - admin menu accessible from options menu on repository view
401 - permissions cached queries
402 - permissions cached queries
402
403
403 1.0.0rc4 (**2010-10-12**)
404 1.0.0rc4 (**2010-10-12**)
404 ==========================
405 ==========================
405
406
406 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
407 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
407 - removed cache_manager settings from sqlalchemy meta
408 - removed cache_manager settings from sqlalchemy meta
408 - added sqlalchemy cache settings to ini files
409 - added sqlalchemy cache settings to ini files
409 - validated password length and added second try of failure on paster setup-app
410 - validated password length and added second try of failure on paster setup-app
410 - fixed setup database destroy prompt even when there was no db
411 - fixed setup database destroy prompt even when there was no db
411
412
412
413
413 1.0.0rc3 (**2010-10-11**)
414 1.0.0rc3 (**2010-10-11**)
414 =========================
415 =========================
415
416
416 - fixed i18n during installation.
417 - fixed i18n during installation.
417
418
418 1.0.0rc2 (**2010-10-11**)
419 1.0.0rc2 (**2010-10-11**)
419 =========================
420 =========================
420
421
421 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
422 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
422 occure. After vcs is fixed it'll be put back again.
423 occure. After vcs is fixed it'll be put back again.
423 - templating/css rewrites, optimized css. No newline at end of file
424 - templating/css rewrites, optimized css.
@@ -1,63 +1,63 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 rhodecode.__init__
3 rhodecode.__init__
4 ~~~~~~~~~~~~~~~~~~
4 ~~~~~~~~~~~~~~~~~~
5
5
6 RhodeCode, a web based repository management based on pylons
6 RhodeCode, a web based repository management based on pylons
7 versioning implementation: http://semver.org/
7 versioning implementation: http://semver.org/
8
8
9 :created_on: Apr 9, 2010
9 :created_on: Apr 9, 2010
10 :author: marcink
10 :author: marcink
11 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
11 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
12 :license: GPLv3, see COPYING for more details.
12 :license: GPLv3, see COPYING for more details.
13 """
13 """
14 # This program is free software: you can redistribute it and/or modify
14 # This program is free software: you can redistribute it and/or modify
15 # it under the terms of the GNU General Public License as published by
15 # it under the terms of the GNU General Public License as published by
16 # the Free Software Foundation, either version 3 of the License, or
16 # the Free Software Foundation, either version 3 of the License, or
17 # (at your option) any later version.
17 # (at your option) any later version.
18 #
18 #
19 # This program is distributed in the hope that it will be useful,
19 # This program is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # GNU General Public License for more details.
22 # GNU General Public License for more details.
23 #
23 #
24 # You should have received a copy of the GNU General Public License
24 # You should have received a copy of the GNU General Public License
25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
26 import platform
26 import platform
27
27
28 VERSION = (1, 3, 0, 'beta')
28 VERSION = (1, 3, 0, 'beta')
29 __version__ = '.'.join((str(each) for each in VERSION[:4]))
29 __version__ = '.'.join((str(each) for each in VERSION[:4]))
30 __dbversion__ = 4 #defines current db version for migrations
30 __dbversion__ = 4 #defines current db version for migrations
31 __platform__ = platform.system()
31 __platform__ = platform.system()
32 __license__ = 'GPLv3'
32 __license__ = 'GPLv3'
33
33
34 PLATFORM_WIN = ('Windows')
34 PLATFORM_WIN = ('Windows')
35 PLATFORM_OTHERS = ('Linux', 'Darwin', 'FreeBSD', 'OpenBSD', 'SunOS')
35 PLATFORM_OTHERS = ('Linux', 'Darwin', 'FreeBSD', 'OpenBSD', 'SunOS')
36
36
37 try:
37 try:
38 from rhodecode.lib import get_current_revision
38 from rhodecode.lib import get_current_revision
39 _rev = get_current_revision()
39 _rev = get_current_revision()
40 except ImportError:
40 except ImportError:
41 #this is needed when doing some setup.py operations
41 #this is needed when doing some setup.py operations
42 _rev = False
42 _rev = False
43
43
44 if len(VERSION) > 3 and _rev:
44 if len(VERSION) > 3 and _rev:
45 __version__ += ' [rev:%s]' % _rev[0]
45 __version__ += ' [rev:%s]' % _rev[0]
46
46
47
47
48 def get_version():
48 def get_version():
49 """Returns shorter version (digit parts only) as string."""
49 """Returns shorter version (digit parts only) as string."""
50
50
51 return '.'.join((str(each) for each in VERSION[:3]))
51 return '.'.join((str(each) for each in VERSION[:3]))
52
52
53 BACKENDS = {
53 BACKENDS = {
54 'hg': 'Mercurial repository',
54 'hg': 'Mercurial repository',
55 #'git': 'Git repository',
55 'git': 'Git repository',
56 }
56 }
57
57
58 CELERY_ON = False
58 CELERY_ON = False
59
59
60 # link to config for pylons
60 # link to config for pylons
61 CONFIG = None
61 CONFIG = None
62
62
63
63
@@ -1,3614 +1,3639 b''
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
2 {
2 {
3 border: 0;
3 border: 0;
4 outline: 0;
4 outline: 0;
5 font-size: 100%;
5 font-size: 100%;
6 vertical-align: baseline;
6 vertical-align: baseline;
7 background: transparent;
7 background: transparent;
8 margin: 0;
8 margin: 0;
9 padding: 0;
9 padding: 0;
10 }
10 }
11
11
12 body {
12 body {
13 line-height: 1;
13 line-height: 1;
14 height: 100%;
14 height: 100%;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
18 color: #000;
18 color: #000;
19 margin: 0;
19 margin: 0;
20 padding: 0;
20 padding: 0;
21 font-size: 12px;
21 font-size: 12px;
22 }
22 }
23
23
24 ol,ul {
24 ol,ul {
25 list-style: none;
25 list-style: none;
26 }
26 }
27
27
28 blockquote,q {
28 blockquote,q {
29 quotes: none;
29 quotes: none;
30 }
30 }
31
31
32 blockquote:before,blockquote:after,q:before,q:after {
32 blockquote:before,blockquote:after,q:before,q:after {
33 content: none;
33 content: none;
34 }
34 }
35
35
36 :focus {
36 :focus {
37 outline: 0;
37 outline: 0;
38 }
38 }
39
39
40 del {
40 del {
41 text-decoration: line-through;
41 text-decoration: line-through;
42 }
42 }
43
43
44 table {
44 table {
45 border-collapse: collapse;
45 border-collapse: collapse;
46 border-spacing: 0;
46 border-spacing: 0;
47 }
47 }
48
48
49 html {
49 html {
50 height: 100%;
50 height: 100%;
51 }
51 }
52
52
53 a {
53 a {
54 color: #003367;
54 color: #003367;
55 text-decoration: none;
55 text-decoration: none;
56 cursor: pointer;
56 cursor: pointer;
57 }
57 }
58
58
59 a:hover {
59 a:hover {
60 color: #316293;
60 color: #316293;
61 text-decoration: underline;
61 text-decoration: underline;
62 }
62 }
63
63
64 h1,h2,h3,h4,h5,h6 {
64 h1,h2,h3,h4,h5,h6 {
65 color: #292929;
65 color: #292929;
66 font-weight: 700;
66 font-weight: 700;
67 }
67 }
68
68
69 h1 {
69 h1 {
70 font-size: 22px;
70 font-size: 22px;
71 }
71 }
72
72
73 h2 {
73 h2 {
74 font-size: 20px;
74 font-size: 20px;
75 }
75 }
76
76
77 h3 {
77 h3 {
78 font-size: 18px;
78 font-size: 18px;
79 }
79 }
80
80
81 h4 {
81 h4 {
82 font-size: 16px;
82 font-size: 16px;
83 }
83 }
84
84
85 h5 {
85 h5 {
86 font-size: 14px;
86 font-size: 14px;
87 }
87 }
88
88
89 h6 {
89 h6 {
90 font-size: 11px;
90 font-size: 11px;
91 }
91 }
92
92
93 ul.circle {
93 ul.circle {
94 list-style-type: circle;
94 list-style-type: circle;
95 }
95 }
96
96
97 ul.disc {
97 ul.disc {
98 list-style-type: disc;
98 list-style-type: disc;
99 }
99 }
100
100
101 ul.square {
101 ul.square {
102 list-style-type: square;
102 list-style-type: square;
103 }
103 }
104
104
105 ol.lower-roman {
105 ol.lower-roman {
106 list-style-type: lower-roman;
106 list-style-type: lower-roman;
107 }
107 }
108
108
109 ol.upper-roman {
109 ol.upper-roman {
110 list-style-type: upper-roman;
110 list-style-type: upper-roman;
111 }
111 }
112
112
113 ol.lower-alpha {
113 ol.lower-alpha {
114 list-style-type: lower-alpha;
114 list-style-type: lower-alpha;
115 }
115 }
116
116
117 ol.upper-alpha {
117 ol.upper-alpha {
118 list-style-type: upper-alpha;
118 list-style-type: upper-alpha;
119 }
119 }
120
120
121 ol.decimal {
121 ol.decimal {
122 list-style-type: decimal;
122 list-style-type: decimal;
123 }
123 }
124
124
125 div.color {
125 div.color {
126 clear: both;
126 clear: both;
127 overflow: hidden;
127 overflow: hidden;
128 position: absolute;
128 position: absolute;
129 background: #FFF;
129 background: #FFF;
130 margin: 7px 0 0 60px;
130 margin: 7px 0 0 60px;
131 padding: 1px 1px 1px 0;
131 padding: 1px 1px 1px 0;
132 }
132 }
133
133
134 div.color a {
134 div.color a {
135 width: 15px;
135 width: 15px;
136 height: 15px;
136 height: 15px;
137 display: block;
137 display: block;
138 float: left;
138 float: left;
139 margin: 0 0 0 1px;
139 margin: 0 0 0 1px;
140 padding: 0;
140 padding: 0;
141 }
141 }
142
142
143 div.options {
143 div.options {
144 clear: both;
144 clear: both;
145 overflow: hidden;
145 overflow: hidden;
146 position: absolute;
146 position: absolute;
147 background: #FFF;
147 background: #FFF;
148 margin: 7px 0 0 162px;
148 margin: 7px 0 0 162px;
149 padding: 0;
149 padding: 0;
150 }
150 }
151
151
152 div.options a {
152 div.options a {
153 height: 1%;
153 height: 1%;
154 display: block;
154 display: block;
155 text-decoration: none;
155 text-decoration: none;
156 margin: 0;
156 margin: 0;
157 padding: 3px 8px;
157 padding: 3px 8px;
158 }
158 }
159
159
160 .top-left-rounded-corner {
160 .top-left-rounded-corner {
161 -webkit-border-top-left-radius: 8px;
161 -webkit-border-top-left-radius: 8px;
162 -khtml-border-radius-topleft: 8px;
162 -khtml-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
164 border-top-left-radius: 8px;
164 border-top-left-radius: 8px;
165 }
165 }
166
166
167 .top-right-rounded-corner {
167 .top-right-rounded-corner {
168 -webkit-border-top-right-radius: 8px;
168 -webkit-border-top-right-radius: 8px;
169 -khtml-border-radius-topright: 8px;
169 -khtml-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
171 border-top-right-radius: 8px;
171 border-top-right-radius: 8px;
172 }
172 }
173
173
174 .bottom-left-rounded-corner {
174 .bottom-left-rounded-corner {
175 -webkit-border-bottom-left-radius: 8px;
175 -webkit-border-bottom-left-radius: 8px;
176 -khtml-border-radius-bottomleft: 8px;
176 -khtml-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
178 border-bottom-left-radius: 8px;
178 border-bottom-left-radius: 8px;
179 }
179 }
180
180
181 .bottom-right-rounded-corner {
181 .bottom-right-rounded-corner {
182 -webkit-border-bottom-right-radius: 8px;
182 -webkit-border-bottom-right-radius: 8px;
183 -khtml-border-radius-bottomright: 8px;
183 -khtml-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
185 border-bottom-right-radius: 8px;
185 border-bottom-right-radius: 8px;
186 }
186 }
187
187
188 #header {
188 #header {
189 margin: 0;
189 margin: 0;
190 padding: 0 10px;
190 padding: 0 10px;
191 }
191 }
192
192
193 #header ul#logged-user {
193 #header ul#logged-user {
194 margin-bottom: 5px !important;
194 margin-bottom: 5px !important;
195 -webkit-border-radius: 0px 0px 8px 8px;
195 -webkit-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
199 height: 37px;
199 height: 37px;
200 background-color: #eedc94;
200 background-color: #eedc94;
201 background-repeat: repeat-x;
201 background-repeat: repeat-x;
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
203 to(#eedc94) );
203 to(#eedc94) );
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
207 color-stop(100%, #00376e) );
207 color-stop(100%, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
210 background-image: linear-gradient(top, #003b76, #00376e);
210 background-image: linear-gradient(top, #003b76, #00376e);
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
212 endColorstr='#00376e', GradientType=0 );
212 endColorstr='#00376e', GradientType=0 );
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
214 }
214 }
215
215
216 #header ul#logged-user li {
216 #header ul#logged-user li {
217 list-style: none;
217 list-style: none;
218 float: left;
218 float: left;
219 margin: 8px 0 0;
219 margin: 8px 0 0;
220 padding: 4px 12px;
220 padding: 4px 12px;
221 border-left: 1px solid #316293;
221 border-left: 1px solid #316293;
222 }
222 }
223
223
224 #header ul#logged-user li.first {
224 #header ul#logged-user li.first {
225 border-left: none;
225 border-left: none;
226 margin: 4px;
226 margin: 4px;
227 }
227 }
228
228
229 #header ul#logged-user li.first div.gravatar {
229 #header ul#logged-user li.first div.gravatar {
230 margin-top: -2px;
230 margin-top: -2px;
231 }
231 }
232
232
233 #header ul#logged-user li.first div.account {
233 #header ul#logged-user li.first div.account {
234 padding-top: 4px;
234 padding-top: 4px;
235 float: left;
235 float: left;
236 }
236 }
237
237
238 #header ul#logged-user li.last {
238 #header ul#logged-user li.last {
239 border-right: none;
239 border-right: none;
240 }
240 }
241
241
242 #header ul#logged-user li a {
242 #header ul#logged-user li a {
243 color: #fff;
243 color: #fff;
244 font-weight: 700;
244 font-weight: 700;
245 text-decoration: none;
245 text-decoration: none;
246 }
246 }
247
247
248 #header ul#logged-user li a:hover {
248 #header ul#logged-user li a:hover {
249 text-decoration: underline;
249 text-decoration: underline;
250 }
250 }
251
251
252 #header ul#logged-user li.highlight a {
252 #header ul#logged-user li.highlight a {
253 color: #fff;
253 color: #fff;
254 }
254 }
255
255
256 #header ul#logged-user li.highlight a:hover {
256 #header ul#logged-user li.highlight a:hover {
257 color: #FFF;
257 color: #FFF;
258 }
258 }
259
259
260 #header #header-inner {
260 #header #header-inner {
261 min-height: 40px;
261 min-height: 40px;
262 clear: both;
262 clear: both;
263 position: relative;
263 position: relative;
264 background-color: #eedc94;
264 background-color: #eedc94;
265 background-repeat: repeat-x;
265 background-repeat: repeat-x;
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
267 to(#eedc94) );
267 to(#eedc94) );
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
271 color-stop(100%, #00376e) );
271 color-stop(100%, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
274 background-image: linear-gradient(top, #003b76, #00376e);
274 background-image: linear-gradient(top, #003b76, #00376e);
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
276 endColorstr='#00376e', GradientType=0 );
276 endColorstr='#00376e', GradientType=0 );
277 margin: 0;
277 margin: 0;
278 padding: 0;
278 padding: 0;
279 display: block;
279 display: block;
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
281 -webkit-border-radius: 4px 4px 4px 4px;
281 -webkit-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
285 }
285 }
286 #header #header-inner.hover{
286 #header #header-inner.hover{
287 position: fixed !important;
287 position: fixed !important;
288 width: 100% !important;
288 width: 100% !important;
289 margin-left: -10px !important;
289 margin-left: -10px !important;
290 z-index: 10000;
290 z-index: 10000;
291 border-radius: 0px 0px 4px 4px;
291 border-radius: 0px 0px 4px 4px;
292 }
292 }
293 #header #header-inner #home a {
293 #header #header-inner #home a {
294 height: 40px;
294 height: 40px;
295 width: 46px;
295 width: 46px;
296 display: block;
296 display: block;
297 background: url("../images/button_home.png");
297 background: url("../images/button_home.png");
298 background-position: 0 0;
298 background-position: 0 0;
299 margin: 0;
299 margin: 0;
300 padding: 0;
300 padding: 0;
301 }
301 }
302
302
303 #header #header-inner #home a:hover {
303 #header #header-inner #home a:hover {
304 background-position: 0 -40px;
304 background-position: 0 -40px;
305 }
305 }
306
306
307 #header #header-inner #logo {
307 #header #header-inner #logo {
308 float: left;
308 float: left;
309 position: absolute;
309 position: absolute;
310 }
310 }
311
311
312 #header #header-inner #logo h1 {
312 #header #header-inner #logo h1 {
313 color: #FFF;
313 color: #FFF;
314 font-size: 18px;
314 font-size: 18px;
315 margin: 10px 0 0 13px;
315 margin: 10px 0 0 13px;
316 padding: 0;
316 padding: 0;
317 }
317 }
318
318
319 #header #header-inner #logo a {
319 #header #header-inner #logo a {
320 color: #fff;
320 color: #fff;
321 text-decoration: none;
321 text-decoration: none;
322 }
322 }
323
323
324 #header #header-inner #logo a:hover {
324 #header #header-inner #logo a:hover {
325 color: #bfe3ff;
325 color: #bfe3ff;
326 }
326 }
327
327
328 #header #header-inner #quick,#header #header-inner #quick ul {
328 #header #header-inner #quick,#header #header-inner #quick ul {
329 position: relative;
329 position: relative;
330 float: right;
330 float: right;
331 list-style-type: none;
331 list-style-type: none;
332 list-style-position: outside;
332 list-style-position: outside;
333 margin: 6px 5px 0 0;
333 margin: 6px 5px 0 0;
334 padding: 0;
334 padding: 0;
335 }
335 }
336
336
337 #header #header-inner #quick li {
337 #header #header-inner #quick li {
338 position: relative;
338 position: relative;
339 float: left;
339 float: left;
340 margin: 0 5px 0 0;
340 margin: 0 5px 0 0;
341 padding: 0;
341 padding: 0;
342 }
342 }
343
343
344 #header #header-inner #quick li a {
344 #header #header-inner #quick li a {
345 top: 0;
345 top: 0;
346 left: 0;
346 left: 0;
347 height: 1%;
347 height: 1%;
348 display: block;
348 display: block;
349 clear: both;
349 clear: both;
350 overflow: hidden;
350 overflow: hidden;
351 color: #FFF;
351 color: #FFF;
352 font-weight: 700;
352 font-weight: 700;
353 text-decoration: none;
353 text-decoration: none;
354 background: #369;
354 background: #369;
355 padding: 0;
355 padding: 0;
356 -webkit-border-radius: 4px 4px 4px 4px;
356 -webkit-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
360 }
360 }
361
361
362 #header #header-inner #quick li span.short {
362 #header #header-inner #quick li span.short {
363 padding: 9px 6px 8px 6px;
363 padding: 9px 6px 8px 6px;
364 }
364 }
365
365
366 #header #header-inner #quick li span {
366 #header #header-inner #quick li span {
367 top: 0;
367 top: 0;
368 right: 0;
368 right: 0;
369 height: 1%;
369 height: 1%;
370 display: block;
370 display: block;
371 float: left;
371 float: left;
372 border-left: 1px solid #3f6f9f;
372 border-left: 1px solid #3f6f9f;
373 margin: 0;
373 margin: 0;
374 padding: 10px 12px 8px 10px;
374 padding: 10px 12px 8px 10px;
375 }
375 }
376
376
377 #header #header-inner #quick li span.normal {
377 #header #header-inner #quick li span.normal {
378 border: none;
378 border: none;
379 padding: 10px 12px 8px;
379 padding: 10px 12px 8px;
380 }
380 }
381
381
382 #header #header-inner #quick li span.icon {
382 #header #header-inner #quick li span.icon {
383 top: 0;
383 top: 0;
384 left: 0;
384 left: 0;
385 border-left: none;
385 border-left: none;
386 border-right: 1px solid #2e5c89;
386 border-right: 1px solid #2e5c89;
387 padding: 8px 6px 4px;
387 padding: 8px 6px 4px;
388 }
388 }
389
389
390 #header #header-inner #quick li span.icon_short {
390 #header #header-inner #quick li span.icon_short {
391 top: 0;
391 top: 0;
392 left: 0;
392 left: 0;
393 border-left: none;
393 border-left: none;
394 border-right: 1px solid #2e5c89;
394 border-right: 1px solid #2e5c89;
395 padding: 8px 6px 4px;
395 padding: 8px 6px 4px;
396 }
396 }
397
397
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
399 {
399 {
400 margin: 0px -2px 0px 0px;
400 margin: 0px -2px 0px 0px;
401 }
401 }
402
402
403 #header #header-inner #quick li a:hover {
403 #header #header-inner #quick li a:hover {
404 background: #4e4e4e no-repeat top left;
404 background: #4e4e4e no-repeat top left;
405 }
405 }
406
406
407 #header #header-inner #quick li a:hover span {
407 #header #header-inner #quick li a:hover span {
408 border-left: 1px solid #545454;
408 border-left: 1px solid #545454;
409 }
409 }
410
410
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
412 {
412 {
413 border-left: none;
413 border-left: none;
414 border-right: 1px solid #464646;
414 border-right: 1px solid #464646;
415 }
415 }
416
416
417 #header #header-inner #quick ul {
417 #header #header-inner #quick ul {
418 top: 29px;
418 top: 29px;
419 right: 0;
419 right: 0;
420 min-width: 200px;
420 min-width: 200px;
421 display: none;
421 display: none;
422 position: absolute;
422 position: absolute;
423 background: #FFF;
423 background: #FFF;
424 border: 1px solid #666;
424 border: 1px solid #666;
425 border-top: 1px solid #003367;
425 border-top: 1px solid #003367;
426 z-index: 100;
426 z-index: 100;
427 margin: 0;
427 margin: 0;
428 padding: 0;
428 padding: 0;
429 }
429 }
430
430
431 #header #header-inner #quick ul.repo_switcher {
431 #header #header-inner #quick ul.repo_switcher {
432 max-height: 275px;
432 max-height: 275px;
433 overflow-x: hidden;
433 overflow-x: hidden;
434 overflow-y: auto;
434 overflow-y: auto;
435 }
435 }
436
436
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
438 float: none;
438 float: none;
439 margin: 0;
439 margin: 0;
440 border-bottom: 2px solid #003367;
440 border-bottom: 2px solid #003367;
441 }
441 }
442
442
443 #header #header-inner #quick .repo_switcher_type {
443 #header #header-inner #quick .repo_switcher_type {
444 position: absolute;
444 position: absolute;
445 left: 0;
445 left: 0;
446 top: 9px;
446 top: 9px;
447 }
447 }
448
448
449 #header #header-inner #quick li ul li {
449 #header #header-inner #quick li ul li {
450 border-bottom: 1px solid #ddd;
450 border-bottom: 1px solid #ddd;
451 }
451 }
452
452
453 #header #header-inner #quick li ul li a {
453 #header #header-inner #quick li ul li a {
454 width: 182px;
454 width: 182px;
455 height: auto;
455 height: auto;
456 display: block;
456 display: block;
457 float: left;
457 float: left;
458 background: #FFF;
458 background: #FFF;
459 color: #003367;
459 color: #003367;
460 font-weight: 400;
460 font-weight: 400;
461 margin: 0;
461 margin: 0;
462 padding: 7px 9px;
462 padding: 7px 9px;
463 }
463 }
464
464
465 #header #header-inner #quick li ul li a:hover {
465 #header #header-inner #quick li ul li a:hover {
466 color: #000;
466 color: #000;
467 background: #FFF;
467 background: #FFF;
468 }
468 }
469
469
470 #header #header-inner #quick ul ul {
470 #header #header-inner #quick ul ul {
471 top: auto;
471 top: auto;
472 }
472 }
473
473
474 #header #header-inner #quick li ul ul {
474 #header #header-inner #quick li ul ul {
475 right: 200px;
475 right: 200px;
476 max-height: 275px;
476 max-height: 275px;
477 overflow: auto;
477 overflow: auto;
478 overflow-x: hidden;
478 overflow-x: hidden;
479 white-space: normal;
479 white-space: normal;
480 }
480 }
481
481
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
483 {
483 {
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
485 #FFF;
485 #FFF;
486 width: 167px;
486 width: 167px;
487 margin: 0;
487 margin: 0;
488 padding: 12px 9px 7px 24px;
488 padding: 12px 9px 7px 24px;
489 }
489 }
490
490
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
492 {
492 {
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
494 #FFF;
494 #FFF;
495 min-width: 167px;
495 min-width: 167px;
496 margin: 0;
496 margin: 0;
497 padding: 12px 9px 7px 24px;
497 padding: 12px 9px 7px 24px;
498 }
498 }
499
499
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
501 {
501 {
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
503 9px #FFF;
503 9px #FFF;
504 min-width: 167px;
504 min-width: 167px;
505 margin: 0;
505 margin: 0;
506 padding: 12px 9px 7px 24px;
506 padding: 12px 9px 7px 24px;
507 }
507 }
508
508
509 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
509 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
510 {
510 {
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
512 #FFF;
512 #FFF;
513 min-width: 167px;
513 min-width: 167px;
514 margin: 0 0 0 14px;
514 margin: 0 0 0 14px;
515 padding: 12px 9px 7px 24px;
515 padding: 12px 9px 7px 24px;
516 }
516 }
517
517
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
519 {
519 {
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
521 #FFF;
521 #FFF;
522 min-width: 167px;
522 min-width: 167px;
523 margin: 0 0 0 14px;
523 margin: 0 0 0 14px;
524 padding: 12px 9px 7px 24px;
524 padding: 12px 9px 7px 24px;
525 }
525 }
526
526
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
528 {
528 {
529 background: url("../images/icons/database_edit.png") no-repeat scroll
529 background: url("../images/icons/database_edit.png") no-repeat scroll
530 4px 9px #FFF;
530 4px 9px #FFF;
531 width: 167px;
531 width: 167px;
532 margin: 0;
532 margin: 0;
533 padding: 12px 9px 7px 24px;
533 padding: 12px 9px 7px 24px;
534 }
534 }
535
535
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
537 {
537 {
538 background: url("../images/icons/database_link.png") no-repeat scroll
538 background: url("../images/icons/database_link.png") no-repeat scroll
539 4px 9px #FFF;
539 4px 9px #FFF;
540 width: 167px;
540 width: 167px;
541 margin: 0;
541 margin: 0;
542 padding: 12px 9px 7px 24px;
542 padding: 12px 9px 7px 24px;
543 }
543 }
544
544
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
546 {
546 {
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
548 width: 167px;
548 width: 167px;
549 margin: 0;
549 margin: 0;
550 padding: 12px 9px 7px 24px;
550 padding: 12px 9px 7px 24px;
551 }
551 }
552
552
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
554 {
554 {
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
556 width: 167px;
556 width: 167px;
557 margin: 0;
557 margin: 0;
558 padding: 12px 9px 7px 24px;
558 padding: 12px 9px 7px 24px;
559 }
559 }
560
560
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
562 {
562 {
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
564 width: 167px;
564 width: 167px;
565 margin: 0;
565 margin: 0;
566 padding: 12px 9px 7px 24px;
566 padding: 12px 9px 7px 24px;
567 }
567 }
568
568
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
570 {
570 {
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
572 width: 167px;
572 width: 167px;
573 margin: 0;
573 margin: 0;
574 padding: 12px 9px 7px 24px;
574 padding: 12px 9px 7px 24px;
575 }
575 }
576
576
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
578 {
578 {
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
580 width: 167px;
580 width: 167px;
581 margin: 0;
581 margin: 0;
582 padding: 12px 9px 7px 24px;
582 padding: 12px 9px 7px 24px;
583 }
583 }
584
584
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
586 {
586 {
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
588 9px;
588 9px;
589 width: 167px;
589 width: 167px;
590 margin: 0;
590 margin: 0;
591 padding: 12px 9px 7px 24px;
591 padding: 12px 9px 7px 24px;
592 }
592 }
593
593
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
595 {
595 {
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
597 width: 167px;
597 width: 167px;
598 margin: 0;
598 margin: 0;
599 padding: 12px 9px 7px 24px;
599 padding: 12px 9px 7px 24px;
600 }
600 }
601
601
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
603 {
603 {
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
605 width: 167px;
605 width: 167px;
606 margin: 0;
606 margin: 0;
607 padding: 12px 9px 7px 24px;
607 padding: 12px 9px 7px 24px;
608 }
608 }
609
609
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
611 {
611 {
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
613 9px;
613 9px;
614 width: 167px;
614 width: 167px;
615 margin: 0;
615 margin: 0;
616 padding: 12px 9px 7px 24px;
616 padding: 12px 9px 7px 24px;
617 }
617 }
618
618
619 #header #header-inner #quick li ul li a.tags,
619 #header #header-inner #quick li ul li a.tags,
620 #header #header-inner #quick li ul li a.tags:hover{
620 #header #header-inner #quick li ul li a.tags:hover{
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
622 width: 167px;
622 width: 167px;
623 margin: 0;
623 margin: 0;
624 padding: 12px 9px 7px 24px;
624 padding: 12px 9px 7px 24px;
625 }
625 }
626
626
627 #header #header-inner #quick li ul li a.bookmarks,
627 #header #header-inner #quick li ul li a.bookmarks,
628 #header #header-inner #quick li ul li a.bookmarks:hover{
628 #header #header-inner #quick li ul li a.bookmarks:hover{
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
630 width: 167px;
630 width: 167px;
631 margin: 0;
631 margin: 0;
632 padding: 12px 9px 7px 24px;
632 padding: 12px 9px 7px 24px;
633 }
633 }
634
634
635 #header #header-inner #quick li ul li a.admin,
635 #header #header-inner #quick li ul li a.admin,
636 #header #header-inner #quick li ul li a.admin:hover{
636 #header #header-inner #quick li ul li a.admin:hover{
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
638 width: 167px;
638 width: 167px;
639 margin: 0;
639 margin: 0;
640 padding: 12px 9px 7px 24px;
640 padding: 12px 9px 7px 24px;
641 }
641 }
642
642
643 .groups_breadcrumbs a {
643 .groups_breadcrumbs a {
644 color: #fff;
644 color: #fff;
645 }
645 }
646
646
647 .groups_breadcrumbs a:hover {
647 .groups_breadcrumbs a:hover {
648 color: #bfe3ff;
648 color: #bfe3ff;
649 text-decoration: none;
649 text-decoration: none;
650 }
650 }
651
651
652 .quick_repo_menu {
652 .quick_repo_menu {
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
654 cursor: pointer;
654 cursor: pointer;
655 width: 8px;
655 width: 8px;
656 border: 1px solid transparent;
656 border: 1px solid transparent;
657 }
657 }
658
658
659 .quick_repo_menu.active {
659 .quick_repo_menu.active {
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
661 border: 1px solid #003367;
661 border: 1px solid #003367;
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
663 cursor: pointer;
663 cursor: pointer;
664 }
664 }
665
665
666 .quick_repo_menu .menu_items {
666 .quick_repo_menu .menu_items {
667 margin-top: 10px;
667 margin-top: 10px;
668 margin-left:-6px;
668 margin-left:-6px;
669 width: 150px;
669 width: 150px;
670 position: absolute;
670 position: absolute;
671 background-color: #FFF;
671 background-color: #FFF;
672 background: none repeat scroll 0 0 #FFFFFF;
672 background: none repeat scroll 0 0 #FFFFFF;
673 border-color: #003367 #666666 #666666;
673 border-color: #003367 #666666 #666666;
674 border-right: 1px solid #666666;
674 border-right: 1px solid #666666;
675 border-style: solid;
675 border-style: solid;
676 border-width: 1px;
676 border-width: 1px;
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
678 border-top-style: none;
678 border-top-style: none;
679 }
679 }
680
680
681 .quick_repo_menu .menu_items li {
681 .quick_repo_menu .menu_items li {
682 padding: 0 !important;
682 padding: 0 !important;
683 }
683 }
684
684
685 .quick_repo_menu .menu_items a {
685 .quick_repo_menu .menu_items a {
686 display: block;
686 display: block;
687 padding: 4px 12px 4px 8px;
687 padding: 4px 12px 4px 8px;
688 }
688 }
689
689
690 .quick_repo_menu .menu_items a:hover {
690 .quick_repo_menu .menu_items a:hover {
691 background-color: #EEE;
691 background-color: #EEE;
692 text-decoration: none;
692 text-decoration: none;
693 }
693 }
694
694
695 .quick_repo_menu .menu_items .icon img {
695 .quick_repo_menu .menu_items .icon img {
696 margin-bottom: -2px;
696 margin-bottom: -2px;
697 }
697 }
698
698
699 .quick_repo_menu .menu_items.hidden {
699 .quick_repo_menu .menu_items.hidden {
700 display: none;
700 display: none;
701 }
701 }
702
702
703 #content #left {
703 #content #left {
704 left: 0;
704 left: 0;
705 width: 280px;
705 width: 280px;
706 position: absolute;
706 position: absolute;
707 }
707 }
708
708
709 #content #right {
709 #content #right {
710 margin: 0 60px 10px 290px;
710 margin: 0 60px 10px 290px;
711 }
711 }
712
712
713 #content div.box {
713 #content div.box {
714 clear: both;
714 clear: both;
715 overflow: hidden;
715 overflow: hidden;
716 background: #fff;
716 background: #fff;
717 margin: 0 0 10px;
717 margin: 0 0 10px;
718 padding: 0 0 10px;
718 padding: 0 0 10px;
719 -webkit-border-radius: 4px 4px 4px 4px;
719 -webkit-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
724 }
724 }
725
725
726 #content div.box-left {
726 #content div.box-left {
727 width: 49%;
727 width: 49%;
728 clear: none;
728 clear: none;
729 float: left;
729 float: left;
730 margin: 0 0 10px;
730 margin: 0 0 10px;
731 }
731 }
732
732
733 #content div.box-right {
733 #content div.box-right {
734 width: 49%;
734 width: 49%;
735 clear: none;
735 clear: none;
736 float: right;
736 float: right;
737 margin: 0 0 10px;
737 margin: 0 0 10px;
738 }
738 }
739
739
740 #content div.box div.title {
740 #content div.box div.title {
741 clear: both;
741 clear: both;
742 overflow: hidden;
742 overflow: hidden;
743 background-color: #eedc94;
743 background-color: #eedc94;
744 background-repeat: repeat-x;
744 background-repeat: repeat-x;
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
746 to(#eedc94) );
746 to(#eedc94) );
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
750 color-stop(100%, #00376e) );
750 color-stop(100%, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
753 background-image: linear-gradient(top, #003b76, #00376e);
753 background-image: linear-gradient(top, #003b76, #00376e);
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
755 endColorstr='#00376e', GradientType=0 );
755 endColorstr='#00376e', GradientType=0 );
756 margin: 0 0 20px;
756 margin: 0 0 20px;
757 padding: 0;
757 padding: 0;
758 }
758 }
759
759
760 #content div.box div.title h5 {
760 #content div.box div.title h5 {
761 float: left;
761 float: left;
762 border: none;
762 border: none;
763 color: #fff;
763 color: #fff;
764 text-transform: uppercase;
764 text-transform: uppercase;
765 margin: 0;
765 margin: 0;
766 padding: 11px 0 11px 10px;
766 padding: 11px 0 11px 10px;
767 }
767 }
768
768
769 #content div.box div.title .link-white{
769 #content div.box div.title .link-white{
770 color: #FFFFFF;
770 color: #FFFFFF;
771 }
771 }
772
772
773 #content div.box div.title ul.links li {
773 #content div.box div.title ul.links li {
774 list-style: none;
774 list-style: none;
775 float: left;
775 float: left;
776 margin: 0;
776 margin: 0;
777 padding: 0;
777 padding: 0;
778 }
778 }
779
779
780 #content div.box div.title ul.links li a {
780 #content div.box div.title ul.links li a {
781 border-left: 1px solid #316293;
781 border-left: 1px solid #316293;
782 color: #FFFFFF;
782 color: #FFFFFF;
783 display: block;
783 display: block;
784 float: left;
784 float: left;
785 font-size: 13px;
785 font-size: 13px;
786 font-weight: 700;
786 font-weight: 700;
787 height: 1%;
787 height: 1%;
788 margin: 0;
788 margin: 0;
789 padding: 11px 22px 12px;
789 padding: 11px 22px 12px;
790 text-decoration: none;
790 text-decoration: none;
791 }
791 }
792
792
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
794 {
794 {
795 clear: both;
795 clear: both;
796 overflow: hidden;
796 overflow: hidden;
797 border-bottom: 1px solid #DDD;
797 border-bottom: 1px solid #DDD;
798 margin: 10px 20px;
798 margin: 10px 20px;
799 padding: 0 0 15px;
799 padding: 0 0 15px;
800 }
800 }
801
801
802 #content div.box p {
802 #content div.box p {
803 color: #5f5f5f;
803 color: #5f5f5f;
804 font-size: 12px;
804 font-size: 12px;
805 line-height: 150%;
805 line-height: 150%;
806 margin: 0 24px 10px;
806 margin: 0 24px 10px;
807 padding: 0;
807 padding: 0;
808 }
808 }
809
809
810 #content div.box blockquote {
810 #content div.box blockquote {
811 border-left: 4px solid #DDD;
811 border-left: 4px solid #DDD;
812 color: #5f5f5f;
812 color: #5f5f5f;
813 font-size: 11px;
813 font-size: 11px;
814 line-height: 150%;
814 line-height: 150%;
815 margin: 0 34px;
815 margin: 0 34px;
816 padding: 0 0 0 14px;
816 padding: 0 0 0 14px;
817 }
817 }
818
818
819 #content div.box blockquote p {
819 #content div.box blockquote p {
820 margin: 10px 0;
820 margin: 10px 0;
821 padding: 0;
821 padding: 0;
822 }
822 }
823
823
824 #content div.box dl {
824 #content div.box dl {
825 margin: 10px 0px;
825 margin: 10px 0px;
826 }
826 }
827
827
828 #content div.box dt {
828 #content div.box dt {
829 font-size: 12px;
829 font-size: 12px;
830 margin: 0;
830 margin: 0;
831 }
831 }
832
832
833 #content div.box dd {
833 #content div.box dd {
834 font-size: 12px;
834 font-size: 12px;
835 margin: 0;
835 margin: 0;
836 padding: 8px 0 8px 15px;
836 padding: 8px 0 8px 15px;
837 }
837 }
838
838
839 #content div.box li {
839 #content div.box li {
840 font-size: 12px;
840 font-size: 12px;
841 padding: 4px 0;
841 padding: 4px 0;
842 }
842 }
843
843
844 #content div.box ul.disc,#content div.box ul.circle {
844 #content div.box ul.disc,#content div.box ul.circle {
845 margin: 10px 24px 10px 38px;
845 margin: 10px 24px 10px 38px;
846 }
846 }
847
847
848 #content div.box ul.square {
848 #content div.box ul.square {
849 margin: 10px 24px 10px 40px;
849 margin: 10px 24px 10px 40px;
850 }
850 }
851
851
852 #content div.box img.left {
852 #content div.box img.left {
853 border: none;
853 border: none;
854 float: left;
854 float: left;
855 margin: 10px 10px 10px 0;
855 margin: 10px 10px 10px 0;
856 }
856 }
857
857
858 #content div.box img.right {
858 #content div.box img.right {
859 border: none;
859 border: none;
860 float: right;
860 float: right;
861 margin: 10px 0 10px 10px;
861 margin: 10px 0 10px 10px;
862 }
862 }
863
863
864 #content div.box div.messages {
864 #content div.box div.messages {
865 clear: both;
865 clear: both;
866 overflow: hidden;
866 overflow: hidden;
867 margin: 0 20px;
867 margin: 0 20px;
868 padding: 0;
868 padding: 0;
869 }
869 }
870
870
871 #content div.box div.message {
871 #content div.box div.message {
872 clear: both;
872 clear: both;
873 overflow: hidden;
873 overflow: hidden;
874 margin: 0;
874 margin: 0;
875 padding: 10px 0;
875 padding: 10px 0;
876 }
876 }
877
877
878 #content div.box div.message a {
878 #content div.box div.message a {
879 font-weight: 400 !important;
879 font-weight: 400 !important;
880 }
880 }
881
881
882 #content div.box div.message div.image {
882 #content div.box div.message div.image {
883 float: left;
883 float: left;
884 margin: 9px 0 0 5px;
884 margin: 9px 0 0 5px;
885 padding: 6px;
885 padding: 6px;
886 }
886 }
887
887
888 #content div.box div.message div.image img {
888 #content div.box div.message div.image img {
889 vertical-align: middle;
889 vertical-align: middle;
890 margin: 0;
890 margin: 0;
891 }
891 }
892
892
893 #content div.box div.message div.text {
893 #content div.box div.message div.text {
894 float: left;
894 float: left;
895 margin: 0;
895 margin: 0;
896 padding: 9px 6px;
896 padding: 9px 6px;
897 }
897 }
898
898
899 #content div.box div.message div.dismiss a {
899 #content div.box div.message div.dismiss a {
900 height: 16px;
900 height: 16px;
901 width: 16px;
901 width: 16px;
902 display: block;
902 display: block;
903 background: url("../images/icons/cross.png") no-repeat;
903 background: url("../images/icons/cross.png") no-repeat;
904 margin: 15px 14px 0 0;
904 margin: 15px 14px 0 0;
905 padding: 0;
905 padding: 0;
906 }
906 }
907
907
908 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6
908 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6
909 {
909 {
910 border: none;
910 border: none;
911 margin: 0;
911 margin: 0;
912 padding: 0;
912 padding: 0;
913 }
913 }
914
914
915 #content div.box div.message div.text span {
915 #content div.box div.message div.text span {
916 height: 1%;
916 height: 1%;
917 display: block;
917 display: block;
918 margin: 0;
918 margin: 0;
919 padding: 5px 0 0;
919 padding: 5px 0 0;
920 }
920 }
921
921
922 #content div.box div.message-error {
922 #content div.box div.message-error {
923 height: 1%;
923 height: 1%;
924 clear: both;
924 clear: both;
925 overflow: hidden;
925 overflow: hidden;
926 background: #FBE3E4;
926 background: #FBE3E4;
927 border: 1px solid #FBC2C4;
927 border: 1px solid #FBC2C4;
928 color: #860006;
928 color: #860006;
929 }
929 }
930
930
931 #content div.box div.message-error h6 {
931 #content div.box div.message-error h6 {
932 color: #860006;
932 color: #860006;
933 }
933 }
934
934
935 #content div.box div.message-warning {
935 #content div.box div.message-warning {
936 height: 1%;
936 height: 1%;
937 clear: both;
937 clear: both;
938 overflow: hidden;
938 overflow: hidden;
939 background: #FFF6BF;
939 background: #FFF6BF;
940 border: 1px solid #FFD324;
940 border: 1px solid #FFD324;
941 color: #5f5200;
941 color: #5f5200;
942 }
942 }
943
943
944 #content div.box div.message-warning h6 {
944 #content div.box div.message-warning h6 {
945 color: #5f5200;
945 color: #5f5200;
946 }
946 }
947
947
948 #content div.box div.message-notice {
948 #content div.box div.message-notice {
949 height: 1%;
949 height: 1%;
950 clear: both;
950 clear: both;
951 overflow: hidden;
951 overflow: hidden;
952 background: #8FBDE0;
952 background: #8FBDE0;
953 border: 1px solid #6BACDE;
953 border: 1px solid #6BACDE;
954 color: #003863;
954 color: #003863;
955 }
955 }
956
956
957 #content div.box div.message-notice h6 {
957 #content div.box div.message-notice h6 {
958 color: #003863;
958 color: #003863;
959 }
959 }
960
960
961 #content div.box div.message-success {
961 #content div.box div.message-success {
962 height: 1%;
962 height: 1%;
963 clear: both;
963 clear: both;
964 overflow: hidden;
964 overflow: hidden;
965 background: #E6EFC2;
965 background: #E6EFC2;
966 border: 1px solid #C6D880;
966 border: 1px solid #C6D880;
967 color: #4e6100;
967 color: #4e6100;
968 }
968 }
969
969
970 #content div.box div.message-success h6 {
970 #content div.box div.message-success h6 {
971 color: #4e6100;
971 color: #4e6100;
972 }
972 }
973
973
974 #content div.box div.form div.fields div.field {
974 #content div.box div.form div.fields div.field {
975 height: 1%;
975 height: 1%;
976 border-bottom: 1px solid #DDD;
976 border-bottom: 1px solid #DDD;
977 clear: both;
977 clear: both;
978 margin: 0;
978 margin: 0;
979 padding: 10px 0;
979 padding: 10px 0;
980 }
980 }
981
981
982 #content div.box div.form div.fields div.field-first {
982 #content div.box div.form div.fields div.field-first {
983 padding: 0 0 10px;
983 padding: 0 0 10px;
984 }
984 }
985
985
986 #content div.box div.form div.fields div.field-noborder {
986 #content div.box div.form div.fields div.field-noborder {
987 border-bottom: 0 !important;
987 border-bottom: 0 !important;
988 }
988 }
989
989
990 #content div.box div.form div.fields div.field span.error-message {
990 #content div.box div.form div.fields div.field span.error-message {
991 height: 1%;
991 height: 1%;
992 display: inline-block;
992 display: inline-block;
993 color: red;
993 color: red;
994 margin: 8px 0 0 4px;
994 margin: 8px 0 0 4px;
995 padding: 0;
995 padding: 0;
996 }
996 }
997
997
998 #content div.box div.form div.fields div.field span.success {
998 #content div.box div.form div.fields div.field span.success {
999 height: 1%;
999 height: 1%;
1000 display: block;
1000 display: block;
1001 color: #316309;
1001 color: #316309;
1002 margin: 8px 0 0;
1002 margin: 8px 0 0;
1003 padding: 0;
1003 padding: 0;
1004 }
1004 }
1005
1005
1006 #content div.box div.form div.fields div.field div.label {
1006 #content div.box div.form div.fields div.field div.label {
1007 left: 70px;
1007 left: 70px;
1008 width: 155px;
1008 width: 155px;
1009 position: absolute;
1009 position: absolute;
1010 margin: 0;
1010 margin: 0;
1011 padding: 5px 0 0 0px;
1011 padding: 5px 0 0 0px;
1012 }
1012 }
1013
1013
1014 #content div.box div.form div.fields div.field div.label-summary {
1014 #content div.box div.form div.fields div.field div.label-summary {
1015 left: 30px;
1015 left: 30px;
1016 width: 155px;
1016 width: 155px;
1017 position: absolute;
1017 position: absolute;
1018 margin: 0;
1018 margin: 0;
1019 padding: 0px 0 0 0px;
1019 padding: 0px 0 0 0px;
1020 }
1020 }
1021
1021
1022 #content div.box-left div.form div.fields div.field div.label,
1022 #content div.box-left div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1027 #content div.box-left div.form div.fields div.field div.label-summary
1027 #content div.box-left div.form div.fields div.field div.label-summary
1028 {
1028 {
1029 clear: both;
1029 clear: both;
1030 overflow: hidden;
1030 overflow: hidden;
1031 left: 0;
1031 left: 0;
1032 width: auto;
1032 width: auto;
1033 position: relative;
1033 position: relative;
1034 margin: 0;
1034 margin: 0;
1035 padding: 0 0 8px;
1035 padding: 0 0 8px;
1036 }
1036 }
1037
1037
1038 #content div.box div.form div.fields div.field div.label-select {
1038 #content div.box div.form div.fields div.field div.label-select {
1039 padding: 5px 0 0 5px;
1039 padding: 5px 0 0 5px;
1040 }
1040 }
1041
1041
1042 #content div.box-left div.form div.fields div.field div.label-select,
1042 #content div.box-left div.form div.fields div.field div.label-select,
1043 #content div.box-right div.form div.fields div.field div.label-select
1043 #content div.box-right div.form div.fields div.field div.label-select
1044 {
1044 {
1045 padding: 0 0 8px;
1045 padding: 0 0 8px;
1046 }
1046 }
1047
1047
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1050 {
1050 {
1051 padding: 0 0 8px !important;
1051 padding: 0 0 8px !important;
1052 }
1052 }
1053
1053
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1055 {
1055 {
1056 color: #393939;
1056 color: #393939;
1057 font-weight: 700;
1057 font-weight: 700;
1058 }
1058 }
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1060 {
1060 {
1061 color: #393939;
1061 color: #393939;
1062 font-weight: 700;
1062 font-weight: 700;
1063 }
1063 }
1064 #content div.box div.form div.fields div.field div.input {
1064 #content div.box div.form div.fields div.field div.input {
1065 margin: 0 0 0 200px;
1065 margin: 0 0 0 200px;
1066 }
1066 }
1067
1067
1068 #content div.box div.form div.fields div.field div.input.summary {
1068 #content div.box div.form div.fields div.field div.input.summary {
1069 margin: 0 0 0 110px;
1069 margin: 0 0 0 110px;
1070 }
1070 }
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1072 margin: 0 0 0 110px;
1072 margin: 0 0 0 110px;
1073 }
1073 }
1074 #content div.box div.form div.fields div.field div.file {
1074 #content div.box div.form div.fields div.field div.file {
1075 margin: 0 0 0 200px;
1075 margin: 0 0 0 200px;
1076 }
1076 }
1077
1077
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1079 {
1079 {
1080 margin: 0 0 0 0px;
1080 margin: 0 0 0 0px;
1081 }
1081 }
1082
1082
1083 #content div.box div.form div.fields div.field div.input input {
1083 #content div.box div.form div.fields div.field div.input input {
1084 background: #FFF;
1084 background: #FFF;
1085 border-top: 1px solid #b3b3b3;
1085 border-top: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1087 border-right: 1px solid #eaeaea;
1087 border-right: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1089 color: #000;
1089 color: #000;
1090 font-size: 11px;
1090 font-size: 11px;
1091 margin: 0;
1091 margin: 0;
1092 padding: 7px 7px 6px;
1092 padding: 7px 7px 6px;
1093 }
1093 }
1094
1094
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1096 font-size: 16px;
1096 font-size: 16px;
1097 padding: 2px 7px 2px;
1097 padding: 2px 7px 2px;
1098 }
1098 }
1099
1099
1100 #content div.box div.form div.fields div.field div.file input {
1100 #content div.box div.form div.fields div.field div.file input {
1101 background: none repeat scroll 0 0 #FFFFFF;
1101 background: none repeat scroll 0 0 #FFFFFF;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1103 border-style: solid;
1103 border-style: solid;
1104 border-width: 1px;
1104 border-width: 1px;
1105 color: #000000;
1105 color: #000000;
1106 font-size: 11px;
1106 font-size: 11px;
1107 margin: 0;
1107 margin: 0;
1108 padding: 7px 7px 6px;
1108 padding: 7px 7px 6px;
1109 }
1109 }
1110
1110
1111 #content div.box div.form div.fields div.field div.input input.small {
1111 #content div.box div.form div.fields div.field div.input input.small {
1112 width: 30%;
1112 width: 30%;
1113 }
1113 }
1114
1114
1115 #content div.box div.form div.fields div.field div.input input.medium {
1115 #content div.box div.form div.fields div.field div.input input.medium {
1116 width: 55%;
1116 width: 55%;
1117 }
1117 }
1118
1118
1119 #content div.box div.form div.fields div.field div.input input.large {
1119 #content div.box div.form div.fields div.field div.input input.large {
1120 width: 85%;
1120 width: 85%;
1121 }
1121 }
1122
1122
1123 #content div.box div.form div.fields div.field div.input input.date {
1123 #content div.box div.form div.fields div.field div.input input.date {
1124 width: 177px;
1124 width: 177px;
1125 }
1125 }
1126
1126
1127 #content div.box div.form div.fields div.field div.input input.button {
1127 #content div.box div.form div.fields div.field div.input input.button {
1128 background: #D4D0C8;
1128 background: #D4D0C8;
1129 border-top: 1px solid #FFF;
1129 border-top: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1131 border-right: 1px solid #404040;
1131 border-right: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1133 color: #000;
1133 color: #000;
1134 margin: 0;
1134 margin: 0;
1135 padding: 4px 8px;
1135 padding: 4px 8px;
1136 }
1136 }
1137
1137
1138 #content div.box div.form div.fields div.field div.textarea {
1138 #content div.box div.form div.fields div.field div.textarea {
1139 border-top: 1px solid #b3b3b3;
1139 border-top: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1141 border-right: 1px solid #eaeaea;
1141 border-right: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1143 margin: 0 0 0 200px;
1143 margin: 0 0 0 200px;
1144 padding: 10px;
1144 padding: 10px;
1145 }
1145 }
1146
1146
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1148 border: 1px solid #ddd;
1148 border: 1px solid #ddd;
1149 padding: 0;
1149 padding: 0;
1150 }
1150 }
1151
1151
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1153 width: 100%;
1153 width: 100%;
1154 height: 220px;
1154 height: 220px;
1155 overflow: hidden;
1155 overflow: hidden;
1156 background: #FFF;
1156 background: #FFF;
1157 color: #000;
1157 color: #000;
1158 font-size: 11px;
1158 font-size: 11px;
1159 outline: none;
1159 outline: none;
1160 border-width: 0;
1160 border-width: 0;
1161 margin: 0;
1161 margin: 0;
1162 padding: 0;
1162 padding: 0;
1163 }
1163 }
1164
1164
1165 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea
1165 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea
1166 {
1166 {
1167 width: 100%;
1167 width: 100%;
1168 height: 100px;
1168 height: 100px;
1169 }
1169 }
1170
1170
1171 #content div.box div.form div.fields div.field div.textarea table {
1171 #content div.box div.form div.fields div.field div.textarea table {
1172 width: 100%;
1172 width: 100%;
1173 border: none;
1173 border: none;
1174 margin: 0;
1174 margin: 0;
1175 padding: 0;
1175 padding: 0;
1176 }
1176 }
1177
1177
1178 #content div.box div.form div.fields div.field div.textarea table td {
1178 #content div.box div.form div.fields div.field div.textarea table td {
1179 background: #DDD;
1179 background: #DDD;
1180 border: none;
1180 border: none;
1181 padding: 0;
1181 padding: 0;
1182 }
1182 }
1183
1183
1184 #content div.box div.form div.fields div.field div.textarea table td table
1184 #content div.box div.form div.fields div.field div.textarea table td table
1185 {
1185 {
1186 width: auto;
1186 width: auto;
1187 border: none;
1187 border: none;
1188 margin: 0;
1188 margin: 0;
1189 padding: 0;
1189 padding: 0;
1190 }
1190 }
1191
1191
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1193 {
1193 {
1194 font-size: 11px;
1194 font-size: 11px;
1195 padding: 5px 5px 5px 0;
1195 padding: 5px 5px 5px 0;
1196 }
1196 }
1197
1197
1198 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus
1198 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus
1199 {
1199 {
1200 background: #f6f6f6;
1200 background: #f6f6f6;
1201 border-color: #666;
1201 border-color: #666;
1202 }
1202 }
1203
1203
1204 div.form div.fields div.field div.button {
1204 div.form div.fields div.field div.button {
1205 margin: 0;
1205 margin: 0;
1206 padding: 0 0 0 8px;
1206 padding: 0 0 0 8px;
1207 }
1207 }
1208 #content div.box table.noborder {
1208 #content div.box table.noborder {
1209 border: 1px solid transparent;
1209 border: 1px solid transparent;
1210 }
1210 }
1211
1211
1212 #content div.box table {
1212 #content div.box table {
1213 width: 100%;
1213 width: 100%;
1214 border-collapse: separate;
1214 border-collapse: separate;
1215 margin: 0;
1215 margin: 0;
1216 padding: 0;
1216 padding: 0;
1217 border: 1px solid #eee;
1217 border: 1px solid #eee;
1218 -webkit-border-radius: 4px;
1218 -webkit-border-radius: 4px;
1219 -moz-border-radius: 4px;
1219 -moz-border-radius: 4px;
1220 border-radius: 4px;
1220 border-radius: 4px;
1221 }
1221 }
1222
1222
1223 #content div.box table th {
1223 #content div.box table th {
1224 background: #eee;
1224 background: #eee;
1225 border-bottom: 1px solid #ddd;
1225 border-bottom: 1px solid #ddd;
1226 padding: 5px 0px 5px 5px;
1226 padding: 5px 0px 5px 5px;
1227 }
1227 }
1228
1228
1229 #content div.box table th.left {
1229 #content div.box table th.left {
1230 text-align: left;
1230 text-align: left;
1231 }
1231 }
1232
1232
1233 #content div.box table th.right {
1233 #content div.box table th.right {
1234 text-align: right;
1234 text-align: right;
1235 }
1235 }
1236
1236
1237 #content div.box table th.center {
1237 #content div.box table th.center {
1238 text-align: center;
1238 text-align: center;
1239 }
1239 }
1240
1240
1241 #content div.box table th.selected {
1241 #content div.box table th.selected {
1242 vertical-align: middle;
1242 vertical-align: middle;
1243 padding: 0;
1243 padding: 0;
1244 }
1244 }
1245
1245
1246 #content div.box table td {
1246 #content div.box table td {
1247 background: #fff;
1247 background: #fff;
1248 border-bottom: 1px solid #cdcdcd;
1248 border-bottom: 1px solid #cdcdcd;
1249 vertical-align: middle;
1249 vertical-align: middle;
1250 padding: 5px;
1250 padding: 5px;
1251 }
1251 }
1252
1252
1253 #content div.box table tr.selected td {
1253 #content div.box table tr.selected td {
1254 background: #FFC;
1254 background: #FFC;
1255 }
1255 }
1256
1256
1257 #content div.box table td.selected {
1257 #content div.box table td.selected {
1258 width: 3%;
1258 width: 3%;
1259 text-align: center;
1259 text-align: center;
1260 vertical-align: middle;
1260 vertical-align: middle;
1261 padding: 0;
1261 padding: 0;
1262 }
1262 }
1263
1263
1264 #content div.box table td.action {
1264 #content div.box table td.action {
1265 width: 45%;
1265 width: 45%;
1266 text-align: left;
1266 text-align: left;
1267 }
1267 }
1268
1268
1269 #content div.box table td.date {
1269 #content div.box table td.date {
1270 width: 33%;
1270 width: 33%;
1271 text-align: center;
1271 text-align: center;
1272 }
1272 }
1273
1273
1274 #content div.box div.action {
1274 #content div.box div.action {
1275 float: right;
1275 float: right;
1276 background: #FFF;
1276 background: #FFF;
1277 text-align: right;
1277 text-align: right;
1278 margin: 10px 0 0;
1278 margin: 10px 0 0;
1279 padding: 0;
1279 padding: 0;
1280 }
1280 }
1281
1281
1282 #content div.box div.action select {
1282 #content div.box div.action select {
1283 font-size: 11px;
1283 font-size: 11px;
1284 margin: 0;
1284 margin: 0;
1285 }
1285 }
1286
1286
1287 #content div.box div.action .ui-selectmenu {
1287 #content div.box div.action .ui-selectmenu {
1288 margin: 0;
1288 margin: 0;
1289 padding: 0;
1289 padding: 0;
1290 }
1290 }
1291
1291
1292 #content div.box div.pagination {
1292 #content div.box div.pagination {
1293 height: 1%;
1293 height: 1%;
1294 clear: both;
1294 clear: both;
1295 overflow: hidden;
1295 overflow: hidden;
1296 margin: 10px 0 0;
1296 margin: 10px 0 0;
1297 padding: 0;
1297 padding: 0;
1298 }
1298 }
1299
1299
1300 #content div.box div.pagination ul.pager {
1300 #content div.box div.pagination ul.pager {
1301 float: right;
1301 float: right;
1302 text-align: right;
1302 text-align: right;
1303 margin: 0;
1303 margin: 0;
1304 padding: 0;
1304 padding: 0;
1305 }
1305 }
1306
1306
1307 #content div.box div.pagination ul.pager li {
1307 #content div.box div.pagination ul.pager li {
1308 height: 1%;
1308 height: 1%;
1309 float: left;
1309 float: left;
1310 list-style: none;
1310 list-style: none;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1312 border-top: 1px solid #dedede;
1312 border-top: 1px solid #dedede;
1313 border-left: 1px solid #cfcfcf;
1313 border-left: 1px solid #cfcfcf;
1314 border-right: 1px solid #c4c4c4;
1314 border-right: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1316 color: #4A4A4A;
1316 color: #4A4A4A;
1317 font-weight: 700;
1317 font-weight: 700;
1318 margin: 0 0 0 4px;
1318 margin: 0 0 0 4px;
1319 padding: 0;
1319 padding: 0;
1320 }
1320 }
1321
1321
1322 #content div.box div.pagination ul.pager li.separator {
1322 #content div.box div.pagination ul.pager li.separator {
1323 padding: 6px;
1323 padding: 6px;
1324 }
1324 }
1325
1325
1326 #content div.box div.pagination ul.pager li.current {
1326 #content div.box div.pagination ul.pager li.current {
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1328 border-top: 1px solid #ccc;
1328 border-top: 1px solid #ccc;
1329 border-left: 1px solid #bebebe;
1329 border-left: 1px solid #bebebe;
1330 border-right: 1px solid #b1b1b1;
1330 border-right: 1px solid #b1b1b1;
1331 border-bottom: 1px solid #afafaf;
1331 border-bottom: 1px solid #afafaf;
1332 color: #515151;
1332 color: #515151;
1333 padding: 6px;
1333 padding: 6px;
1334 }
1334 }
1335
1335
1336 #content div.box div.pagination ul.pager li a {
1336 #content div.box div.pagination ul.pager li a {
1337 height: 1%;
1337 height: 1%;
1338 display: block;
1338 display: block;
1339 float: left;
1339 float: left;
1340 color: #515151;
1340 color: #515151;
1341 text-decoration: none;
1341 text-decoration: none;
1342 margin: 0;
1342 margin: 0;
1343 padding: 6px;
1343 padding: 6px;
1344 }
1344 }
1345
1345
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1347 {
1347 {
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1349 border-top: 1px solid #ccc;
1349 border-top: 1px solid #ccc;
1350 border-left: 1px solid #bebebe;
1350 border-left: 1px solid #bebebe;
1351 border-right: 1px solid #b1b1b1;
1351 border-right: 1px solid #b1b1b1;
1352 border-bottom: 1px solid #afafaf;
1352 border-bottom: 1px solid #afafaf;
1353 margin: -1px;
1353 margin: -1px;
1354 }
1354 }
1355
1355
1356 #content div.box div.pagination-wh {
1356 #content div.box div.pagination-wh {
1357 height: 1%;
1357 height: 1%;
1358 clear: both;
1358 clear: both;
1359 overflow: hidden;
1359 overflow: hidden;
1360 text-align: right;
1360 text-align: right;
1361 margin: 10px 0 0;
1361 margin: 10px 0 0;
1362 padding: 0;
1362 padding: 0;
1363 }
1363 }
1364
1364
1365 #content div.box div.pagination-right {
1365 #content div.box div.pagination-right {
1366 float: right;
1366 float: right;
1367 }
1367 }
1368
1368
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1370 {
1370 {
1371 height: 1%;
1371 height: 1%;
1372 float: left;
1372 float: left;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1374 border-top: 1px solid #dedede;
1374 border-top: 1px solid #dedede;
1375 border-left: 1px solid #cfcfcf;
1375 border-left: 1px solid #cfcfcf;
1376 border-right: 1px solid #c4c4c4;
1376 border-right: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1378 color: #4A4A4A;
1378 color: #4A4A4A;
1379 font-weight: 700;
1379 font-weight: 700;
1380 margin: 0 0 0 4px;
1380 margin: 0 0 0 4px;
1381 padding: 6px;
1381 padding: 6px;
1382 }
1382 }
1383
1383
1384 #content div.box div.pagination-wh span.pager_curpage {
1384 #content div.box div.pagination-wh span.pager_curpage {
1385 height: 1%;
1385 height: 1%;
1386 float: left;
1386 float: left;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1388 border-top: 1px solid #ccc;
1388 border-top: 1px solid #ccc;
1389 border-left: 1px solid #bebebe;
1389 border-left: 1px solid #bebebe;
1390 border-right: 1px solid #b1b1b1;
1390 border-right: 1px solid #b1b1b1;
1391 border-bottom: 1px solid #afafaf;
1391 border-bottom: 1px solid #afafaf;
1392 color: #515151;
1392 color: #515151;
1393 font-weight: 700;
1393 font-weight: 700;
1394 margin: 0 0 0 4px;
1394 margin: 0 0 0 4px;
1395 padding: 6px;
1395 padding: 6px;
1396 }
1396 }
1397
1397
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1399 {
1399 {
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1401 border-top: 1px solid #ccc;
1401 border-top: 1px solid #ccc;
1402 border-left: 1px solid #bebebe;
1402 border-left: 1px solid #bebebe;
1403 border-right: 1px solid #b1b1b1;
1403 border-right: 1px solid #b1b1b1;
1404 border-bottom: 1px solid #afafaf;
1404 border-bottom: 1px solid #afafaf;
1405 text-decoration: none;
1405 text-decoration: none;
1406 }
1406 }
1407
1407
1408 #content div.box div.traffic div.legend {
1408 #content div.box div.traffic div.legend {
1409 clear: both;
1409 clear: both;
1410 overflow: hidden;
1410 overflow: hidden;
1411 border-bottom: 1px solid #ddd;
1411 border-bottom: 1px solid #ddd;
1412 margin: 0 0 10px;
1412 margin: 0 0 10px;
1413 padding: 0 0 10px;
1413 padding: 0 0 10px;
1414 }
1414 }
1415
1415
1416 #content div.box div.traffic div.legend h6 {
1416 #content div.box div.traffic div.legend h6 {
1417 float: left;
1417 float: left;
1418 border: none;
1418 border: none;
1419 margin: 0;
1419 margin: 0;
1420 padding: 0;
1420 padding: 0;
1421 }
1421 }
1422
1422
1423 #content div.box div.traffic div.legend li {
1423 #content div.box div.traffic div.legend li {
1424 list-style: none;
1424 list-style: none;
1425 float: left;
1425 float: left;
1426 font-size: 11px;
1426 font-size: 11px;
1427 margin: 0;
1427 margin: 0;
1428 padding: 0 8px 0 4px;
1428 padding: 0 8px 0 4px;
1429 }
1429 }
1430
1430
1431 #content div.box div.traffic div.legend li.visits {
1431 #content div.box div.traffic div.legend li.visits {
1432 border-left: 12px solid #edc240;
1432 border-left: 12px solid #edc240;
1433 }
1433 }
1434
1434
1435 #content div.box div.traffic div.legend li.pageviews {
1435 #content div.box div.traffic div.legend li.pageviews {
1436 border-left: 12px solid #afd8f8;
1436 border-left: 12px solid #afd8f8;
1437 }
1437 }
1438
1438
1439 #content div.box div.traffic table {
1439 #content div.box div.traffic table {
1440 width: auto;
1440 width: auto;
1441 }
1441 }
1442
1442
1443 #content div.box div.traffic table td {
1443 #content div.box div.traffic table td {
1444 background: transparent;
1444 background: transparent;
1445 border: none;
1445 border: none;
1446 padding: 2px 3px 3px;
1446 padding: 2px 3px 3px;
1447 }
1447 }
1448
1448
1449 #content div.box div.traffic table td.legendLabel {
1449 #content div.box div.traffic table td.legendLabel {
1450 padding: 0 3px 2px;
1450 padding: 0 3px 2px;
1451 }
1451 }
1452
1452
1453 #summary {
1453 #summary {
1454
1454
1455 }
1455 }
1456
1456
1457 #summary .desc {
1457 #summary .desc {
1458 white-space: pre;
1458 white-space: pre;
1459 width: 100%;
1459 width: 100%;
1460 }
1460 }
1461
1461
1462 #summary .repo_name {
1462 #summary .repo_name {
1463 font-size: 1.6em;
1463 font-size: 1.6em;
1464 font-weight: bold;
1464 font-weight: bold;
1465 vertical-align: baseline;
1465 vertical-align: baseline;
1466 clear: right
1466 clear: right
1467 }
1467 }
1468
1468
1469 #footer {
1469 #footer {
1470 clear: both;
1470 clear: both;
1471 overflow: hidden;
1471 overflow: hidden;
1472 text-align: right;
1472 text-align: right;
1473 margin: 0;
1473 margin: 0;
1474 padding: 0 10px 4px;
1474 padding: 0 10px 4px;
1475 margin: -10px 0 0;
1475 margin: -10px 0 0;
1476 }
1476 }
1477
1477
1478 #footer div#footer-inner {
1478 #footer div#footer-inner {
1479 background-color: #eedc94; background-repeat : repeat-x;
1479 background-color: #eedc94; background-repeat : repeat-x;
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1491 -webkit-border-radius: 4px 4px 4px 4px;
1491 -webkit-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1495 background-repeat: repeat-x;
1495 background-repeat: repeat-x;
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1497 to(#eedc94) );
1497 to(#eedc94) );
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1501 color-stop(100%, #00376e) );
1501 color-stop(100%, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1504 background-image: linear-gradient(top, #003b76, #00376e);
1504 background-image: linear-gradient(top, #003b76, #00376e);
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1506 endColorstr='#00376e', GradientType=0 );
1506 endColorstr='#00376e', GradientType=0 );
1507 }
1507 }
1508
1508
1509 #footer div#footer-inner p {
1509 #footer div#footer-inner p {
1510 padding: 15px 25px 15px 0;
1510 padding: 15px 25px 15px 0;
1511 color: #FFF;
1511 color: #FFF;
1512 font-weight: 700;
1512 font-weight: 700;
1513 }
1513 }
1514
1514
1515 #footer div#footer-inner .footer-link {
1515 #footer div#footer-inner .footer-link {
1516 float: left;
1516 float: left;
1517 padding-left: 10px;
1517 padding-left: 10px;
1518 }
1518 }
1519
1519
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1521 {
1521 {
1522 color: #FFF;
1522 color: #FFF;
1523 }
1523 }
1524
1524
1525 #login div.title {
1525 #login div.title {
1526 width: 420px;
1526 width: 420px;
1527 clear: both;
1527 clear: both;
1528 overflow: hidden;
1528 overflow: hidden;
1529 position: relative;
1529 position: relative;
1530 background-color: #eedc94; background-repeat : repeat-x;
1530 background-color: #eedc94; background-repeat : repeat-x;
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1541 margin: 0 auto;
1541 margin: 0 auto;
1542 padding: 0;
1542 padding: 0;
1543 background-repeat: repeat-x;
1543 background-repeat: repeat-x;
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1545 to(#eedc94) );
1545 to(#eedc94) );
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1549 color-stop(100%, #00376e) );
1549 color-stop(100%, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1552 background-image: linear-gradient(top, #003b76, #00376e);
1552 background-image: linear-gradient(top, #003b76, #00376e);
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1554 endColorstr='#00376e', GradientType=0 );
1554 endColorstr='#00376e', GradientType=0 );
1555 }
1555 }
1556
1556
1557 #login div.inner {
1557 #login div.inner {
1558 width: 380px;
1558 width: 380px;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1560 border-top: none;
1560 border-top: none;
1561 border-bottom: none;
1561 border-bottom: none;
1562 margin: 0 auto;
1562 margin: 0 auto;
1563 padding: 20px;
1563 padding: 20px;
1564 }
1564 }
1565
1565
1566 #login div.form div.fields div.field div.label {
1566 #login div.form div.fields div.field div.label {
1567 width: 173px;
1567 width: 173px;
1568 float: left;
1568 float: left;
1569 text-align: right;
1569 text-align: right;
1570 margin: 2px 10px 0 0;
1570 margin: 2px 10px 0 0;
1571 padding: 5px 0 0 5px;
1571 padding: 5px 0 0 5px;
1572 }
1572 }
1573
1573
1574 #login div.form div.fields div.field div.input input {
1574 #login div.form div.fields div.field div.input input {
1575 width: 176px;
1575 width: 176px;
1576 background: #FFF;
1576 background: #FFF;
1577 border-top: 1px solid #b3b3b3;
1577 border-top: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1579 border-right: 1px solid #eaeaea;
1579 border-right: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1581 color: #000;
1581 color: #000;
1582 font-size: 11px;
1582 font-size: 11px;
1583 margin: 0;
1583 margin: 0;
1584 padding: 7px 7px 6px;
1584 padding: 7px 7px 6px;
1585 }
1585 }
1586
1586
1587 #login div.form div.fields div.buttons {
1587 #login div.form div.fields div.buttons {
1588 clear: both;
1588 clear: both;
1589 overflow: hidden;
1589 overflow: hidden;
1590 border-top: 1px solid #DDD;
1590 border-top: 1px solid #DDD;
1591 text-align: right;
1591 text-align: right;
1592 margin: 0;
1592 margin: 0;
1593 padding: 10px 0 0;
1593 padding: 10px 0 0;
1594 }
1594 }
1595
1595
1596 #login div.form div.links {
1596 #login div.form div.links {
1597 clear: both;
1597 clear: both;
1598 overflow: hidden;
1598 overflow: hidden;
1599 margin: 10px 0 0;
1599 margin: 10px 0 0;
1600 padding: 0 0 2px;
1600 padding: 0 0 2px;
1601 }
1601 }
1602
1602
1603 #quick_login {
1603 #quick_login {
1604 top: 31px;
1604 top: 31px;
1605 background-color: rgb(0, 51, 103);
1605 background-color: rgb(0, 51, 103);
1606 z-index: 999;
1606 z-index: 999;
1607 height: 150px;
1607 height: 150px;
1608 position: absolute;
1608 position: absolute;
1609 margin-left: -16px;
1609 margin-left: -16px;
1610 width: 281px;
1610 width: 281px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1616 }
1616 }
1617
1617
1618 #quick_login .password_forgoten {
1618 #quick_login .password_forgoten {
1619 padding-right: 10px;
1619 padding-right: 10px;
1620 padding-top: 0px;
1620 padding-top: 0px;
1621 float: left;
1621 float: left;
1622 }
1622 }
1623
1623
1624 #quick_login .password_forgoten a {
1624 #quick_login .password_forgoten a {
1625 font-size: 10px
1625 font-size: 10px
1626 }
1626 }
1627
1627
1628 #quick_login .register {
1628 #quick_login .register {
1629 padding-right: 10px;
1629 padding-right: 10px;
1630 padding-top: 5px;
1630 padding-top: 5px;
1631 float: left;
1631 float: left;
1632 }
1632 }
1633
1633
1634 #quick_login .register a {
1634 #quick_login .register a {
1635 font-size: 10px
1635 font-size: 10px
1636 }
1636 }
1637
1637
1638 #quick_login div.form div.fields {
1638 #quick_login div.form div.fields {
1639 padding-top: 2px;
1639 padding-top: 2px;
1640 padding-left: 10px;
1640 padding-left: 10px;
1641 }
1641 }
1642
1642
1643 #quick_login div.form div.fields div.field {
1643 #quick_login div.form div.fields div.field {
1644 padding: 5px;
1644 padding: 5px;
1645 }
1645 }
1646
1646
1647 #quick_login div.form div.fields div.field div.label label {
1647 #quick_login div.form div.fields div.field div.label label {
1648 color: #fff;
1648 color: #fff;
1649 padding-bottom: 3px;
1649 padding-bottom: 3px;
1650 }
1650 }
1651
1651
1652 #quick_login div.form div.fields div.field div.input input {
1652 #quick_login div.form div.fields div.field div.input input {
1653 width: 236px;
1653 width: 236px;
1654 background: #FFF;
1654 background: #FFF;
1655 border-top: 1px solid #b3b3b3;
1655 border-top: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1657 border-right: 1px solid #eaeaea;
1657 border-right: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1659 color: #000;
1659 color: #000;
1660 font-size: 11px;
1660 font-size: 11px;
1661 margin: 0;
1661 margin: 0;
1662 padding: 5px 7px 4px;
1662 padding: 5px 7px 4px;
1663 }
1663 }
1664
1664
1665 #quick_login div.form div.fields div.buttons {
1665 #quick_login div.form div.fields div.buttons {
1666 clear: both;
1666 clear: both;
1667 overflow: hidden;
1667 overflow: hidden;
1668 text-align: right;
1668 text-align: right;
1669 margin: 0;
1669 margin: 0;
1670 padding: 10px 14px 0px 5px;
1670 padding: 10px 14px 0px 5px;
1671 }
1671 }
1672
1672
1673 #quick_login div.form div.links {
1673 #quick_login div.form div.links {
1674 clear: both;
1674 clear: both;
1675 overflow: hidden;
1675 overflow: hidden;
1676 margin: 10px 0 0;
1676 margin: 10px 0 0;
1677 padding: 0 0 2px;
1677 padding: 0 0 2px;
1678 }
1678 }
1679
1679
1680 #register div.title {
1680 #register div.title {
1681 clear: both;
1681 clear: both;
1682 overflow: hidden;
1682 overflow: hidden;
1683 position: relative;
1683 position: relative;
1684 background-color: #eedc94;
1684 background-color: #eedc94;
1685 background-repeat: repeat-x;
1685 background-repeat: repeat-x;
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1687 to(#eedc94) );
1687 to(#eedc94) );
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1691 color-stop(100%, #00376e) );
1691 color-stop(100%, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1694 background-image: linear-gradient(top, #003b76, #00376e);
1694 background-image: linear-gradient(top, #003b76, #00376e);
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1696 endColorstr='#00376e', GradientType=0 );
1696 endColorstr='#00376e', GradientType=0 );
1697 margin: 0 auto;
1697 margin: 0 auto;
1698 padding: 0;
1698 padding: 0;
1699 }
1699 }
1700
1700
1701 #register div.inner {
1701 #register div.inner {
1702 background: #FFF;
1702 background: #FFF;
1703 border-top: none;
1703 border-top: none;
1704 border-bottom: none;
1704 border-bottom: none;
1705 margin: 0 auto;
1705 margin: 0 auto;
1706 padding: 20px;
1706 padding: 20px;
1707 }
1707 }
1708
1708
1709 #register div.form div.fields div.field div.label {
1709 #register div.form div.fields div.field div.label {
1710 width: 135px;
1710 width: 135px;
1711 float: left;
1711 float: left;
1712 text-align: right;
1712 text-align: right;
1713 margin: 2px 10px 0 0;
1713 margin: 2px 10px 0 0;
1714 padding: 5px 0 0 5px;
1714 padding: 5px 0 0 5px;
1715 }
1715 }
1716
1716
1717 #register div.form div.fields div.field div.input input {
1717 #register div.form div.fields div.field div.input input {
1718 width: 300px;
1718 width: 300px;
1719 background: #FFF;
1719 background: #FFF;
1720 border-top: 1px solid #b3b3b3;
1720 border-top: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1722 border-right: 1px solid #eaeaea;
1722 border-right: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1724 color: #000;
1724 color: #000;
1725 font-size: 11px;
1725 font-size: 11px;
1726 margin: 0;
1726 margin: 0;
1727 padding: 7px 7px 6px;
1727 padding: 7px 7px 6px;
1728 }
1728 }
1729
1729
1730 #register div.form div.fields div.buttons {
1730 #register div.form div.fields div.buttons {
1731 clear: both;
1731 clear: both;
1732 overflow: hidden;
1732 overflow: hidden;
1733 border-top: 1px solid #DDD;
1733 border-top: 1px solid #DDD;
1734 text-align: left;
1734 text-align: left;
1735 margin: 0;
1735 margin: 0;
1736 padding: 10px 0 0 150px;
1736 padding: 10px 0 0 150px;
1737 }
1737 }
1738
1738
1739 #register div.form div.activation_msg {
1739 #register div.form div.activation_msg {
1740 padding-top: 4px;
1740 padding-top: 4px;
1741 padding-bottom: 4px;
1741 padding-bottom: 4px;
1742 }
1742 }
1743
1743
1744 #journal .journal_day {
1744 #journal .journal_day {
1745 font-size: 20px;
1745 font-size: 20px;
1746 padding: 10px 0px;
1746 padding: 10px 0px;
1747 border-bottom: 2px solid #DDD;
1747 border-bottom: 2px solid #DDD;
1748 margin-left: 10px;
1748 margin-left: 10px;
1749 margin-right: 10px;
1749 margin-right: 10px;
1750 }
1750 }
1751
1751
1752 #journal .journal_container {
1752 #journal .journal_container {
1753 padding: 5px;
1753 padding: 5px;
1754 clear: both;
1754 clear: both;
1755 margin: 0px 5px 0px 10px;
1755 margin: 0px 5px 0px 10px;
1756 }
1756 }
1757
1757
1758 #journal .journal_action_container {
1758 #journal .journal_action_container {
1759 padding-left: 38px;
1759 padding-left: 38px;
1760 }
1760 }
1761
1761
1762 #journal .journal_user {
1762 #journal .journal_user {
1763 color: #747474;
1763 color: #747474;
1764 font-size: 14px;
1764 font-size: 14px;
1765 font-weight: bold;
1765 font-weight: bold;
1766 height: 30px;
1766 height: 30px;
1767 }
1767 }
1768
1768
1769 #journal .journal_icon {
1769 #journal .journal_icon {
1770 clear: both;
1770 clear: both;
1771 float: left;
1771 float: left;
1772 padding-right: 4px;
1772 padding-right: 4px;
1773 padding-top: 3px;
1773 padding-top: 3px;
1774 }
1774 }
1775
1775
1776 #journal .journal_action {
1776 #journal .journal_action {
1777 padding-top: 4px;
1777 padding-top: 4px;
1778 min-height: 2px;
1778 min-height: 2px;
1779 float: left
1779 float: left
1780 }
1780 }
1781
1781
1782 #journal .journal_action_params {
1782 #journal .journal_action_params {
1783 clear: left;
1783 clear: left;
1784 padding-left: 22px;
1784 padding-left: 22px;
1785 }
1785 }
1786
1786
1787 #journal .journal_repo {
1787 #journal .journal_repo {
1788 float: left;
1788 float: left;
1789 margin-left: 6px;
1789 margin-left: 6px;
1790 padding-top: 3px;
1790 padding-top: 3px;
1791 }
1791 }
1792
1792
1793 #journal .date {
1793 #journal .date {
1794 clear: both;
1794 clear: both;
1795 color: #777777;
1795 color: #777777;
1796 font-size: 11px;
1796 font-size: 11px;
1797 padding-left: 22px;
1797 padding-left: 22px;
1798 }
1798 }
1799
1799
1800 #journal .journal_repo .journal_repo_name {
1800 #journal .journal_repo .journal_repo_name {
1801 font-weight: bold;
1801 font-weight: bold;
1802 font-size: 1.1em;
1802 font-size: 1.1em;
1803 }
1803 }
1804
1804
1805 #journal .compare_view {
1805 #journal .compare_view {
1806 padding: 5px 0px 5px 0px;
1806 padding: 5px 0px 5px 0px;
1807 width: 95px;
1807 width: 95px;
1808 }
1808 }
1809
1809
1810 .journal_highlight {
1810 .journal_highlight {
1811 font-weight: bold;
1811 font-weight: bold;
1812 padding: 0 2px;
1812 padding: 0 2px;
1813 vertical-align: bottom;
1813 vertical-align: bottom;
1814 }
1814 }
1815
1815
1816 .trending_language_tbl,.trending_language_tbl td {
1816 .trending_language_tbl,.trending_language_tbl td {
1817 border: 0 !important;
1817 border: 0 !important;
1818 margin: 0 !important;
1818 margin: 0 !important;
1819 padding: 0 !important;
1819 padding: 0 !important;
1820 }
1820 }
1821
1821
1822 .trending_language_tbl,.trending_language_tbl tr {
1822 .trending_language_tbl,.trending_language_tbl tr {
1823 border-spacing: 1px;
1823 border-spacing: 1px;
1824 }
1824 }
1825
1825
1826 .trending_language {
1826 .trending_language {
1827 background-color: #003367;
1827 background-color: #003367;
1828 color: #FFF;
1828 color: #FFF;
1829 display: block;
1829 display: block;
1830 min-width: 20px;
1830 min-width: 20px;
1831 text-decoration: none;
1831 text-decoration: none;
1832 height: 12px;
1832 height: 12px;
1833 margin-bottom: 0px;
1833 margin-bottom: 0px;
1834 margin-left: 5px;
1834 margin-left: 5px;
1835 white-space: pre;
1835 white-space: pre;
1836 padding: 3px;
1836 padding: 3px;
1837 }
1837 }
1838
1838
1839 h3.files_location {
1839 h3.files_location {
1840 font-size: 1.8em;
1840 font-size: 1.8em;
1841 font-weight: 700;
1841 font-weight: 700;
1842 border-bottom: none !important;
1842 border-bottom: none !important;
1843 margin: 10px 0 !important;
1843 margin: 10px 0 !important;
1844 }
1844 }
1845
1845
1846 #files_data dl dt {
1846 #files_data dl dt {
1847 float: left;
1847 float: left;
1848 width: 60px;
1848 width: 60px;
1849 margin: 0 !important;
1849 margin: 0 !important;
1850 padding: 5px;
1850 padding: 5px;
1851 }
1851 }
1852
1852
1853 #files_data dl dd {
1853 #files_data dl dd {
1854 margin: 0 !important;
1854 margin: 0 !important;
1855 padding: 5px !important;
1855 padding: 5px !important;
1856 }
1856 }
1857
1857
1858 #changeset_content {
1858 #changeset_content {
1859 border: 1px solid #CCC;
1859 border: 1px solid #CCC;
1860 padding: 5px;
1860 padding: 5px;
1861 }
1861 }
1862
1862
1863 #changeset_compare_view_content {
1863 #changeset_compare_view_content {
1864 border: 1px solid #CCC;
1864 border: 1px solid #CCC;
1865 padding: 5px;
1865 padding: 5px;
1866 }
1866 }
1867
1867
1868 #changeset_content .container {
1868 #changeset_content .container {
1869 min-height: 120px;
1869 min-height: 120px;
1870 font-size: 1.2em;
1870 font-size: 1.2em;
1871 overflow: hidden;
1871 overflow: hidden;
1872 }
1872 }
1873
1873
1874 #changeset_compare_view_content .compare_view_commits {
1874 #changeset_compare_view_content .compare_view_commits {
1875 width: auto !important;
1875 width: auto !important;
1876 }
1876 }
1877
1877
1878 #changeset_compare_view_content .compare_view_commits td {
1878 #changeset_compare_view_content .compare_view_commits td {
1879 padding: 0px 0px 0px 12px !important;
1879 padding: 0px 0px 0px 12px !important;
1880 }
1880 }
1881
1881
1882 #changeset_content .container .right {
1882 #changeset_content .container .right {
1883 float: right;
1883 float: right;
1884 width: 25%;
1884 width: 25%;
1885 text-align: right;
1885 text-align: right;
1886 }
1886 }
1887
1887
1888 #changeset_content .container .left .message {
1888 #changeset_content .container .left .message {
1889 font-style: italic;
1889 font-style: italic;
1890 color: #556CB5;
1890 color: #556CB5;
1891 white-space: pre-wrap;
1891 white-space: pre-wrap;
1892 }
1892 }
1893
1893
1894 .cs_files .cur_cs {
1894 .cs_files .cur_cs {
1895 margin: 10px 2px;
1895 margin: 10px 2px;
1896 font-weight: bold;
1896 font-weight: bold;
1897 }
1897 }
1898
1898
1899 .cs_files .node {
1899 .cs_files .node {
1900 float: left;
1900 float: left;
1901 }
1901 }
1902
1902
1903 .cs_files .changes {
1903 .cs_files .changes {
1904 float: right;
1904 float: right;
1905 color:#003367;
1905 color:#003367;
1906
1906
1907 }
1907 }
1908
1908
1909 .cs_files .changes .added {
1909 .cs_files .changes .added {
1910 background-color: #BBFFBB;
1910 background-color: #BBFFBB;
1911 float: left;
1911 float: left;
1912 text-align: center;
1912 text-align: center;
1913 font-size: 9px;
1913 font-size: 9px;
1914 padding: 2px 0px 2px 0px;
1914 padding: 2px 0px 2px 0px;
1915 }
1915 }
1916
1916
1917 .cs_files .changes .deleted {
1917 .cs_files .changes .deleted {
1918 background-color: #FF8888;
1918 background-color: #FF8888;
1919 float: left;
1919 float: left;
1920 text-align: center;
1920 text-align: center;
1921 font-size: 9px;
1921 font-size: 9px;
1922 padding: 2px 0px 2px 0px;
1922 padding: 2px 0px 2px 0px;
1923 }
1923 }
1924
1924
1925 .cs_files .cs_added {
1925 .cs_files .cs_added {
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1927 3px;
1927 3px;
1928 height: 16px;
1928 height: 16px;
1929 padding-left: 20px;
1929 padding-left: 20px;
1930 margin-top: 7px;
1930 margin-top: 7px;
1931 text-align: left;
1931 text-align: left;
1932 }
1932 }
1933
1933
1934 .cs_files .cs_changed {
1934 .cs_files .cs_changed {
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1936 3px;
1936 3px;
1937 height: 16px;
1937 height: 16px;
1938 padding-left: 20px;
1938 padding-left: 20px;
1939 margin-top: 7px;
1939 margin-top: 7px;
1940 text-align: left;
1940 text-align: left;
1941 }
1941 }
1942
1942
1943 .cs_files .cs_removed {
1943 .cs_files .cs_removed {
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1945 scroll 3px;
1945 scroll 3px;
1946 height: 16px;
1946 height: 16px;
1947 padding-left: 20px;
1947 padding-left: 20px;
1948 margin-top: 7px;
1948 margin-top: 7px;
1949 text-align: left;
1949 text-align: left;
1950 }
1950 }
1951
1951
1952 #graph {
1952 #graph {
1953 overflow: hidden;
1953 overflow: hidden;
1954 }
1954 }
1955
1955
1956 #graph_nodes {
1956 #graph_nodes {
1957 float: left;
1957 float: left;
1958 margin-right: -6px;
1958 margin-right: -6px;
1959 margin-top: 0px;
1959 margin-top: 0px;
1960 }
1960 }
1961
1961
1962 #graph_content {
1962 #graph_content {
1963 width: 800px;
1963 width: 800px;
1964 float: left;
1964 float: left;
1965 }
1965 }
1966
1966
1967 #graph_content .container_header {
1967 #graph_content .container_header {
1968 border: 1px solid #CCC;
1968 border: 1px solid #CCC;
1969 padding: 10px;
1969 padding: 10px;
1970 height: 45px;
1970 height: 45px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1974 }
1974 }
1975
1975
1976 #graph_content #rev_range_container {
1976 #graph_content #rev_range_container {
1977 padding: 10px 0px;
1977 padding: 10px 0px;
1978 clear: both;
1978 clear: both;
1979 }
1979 }
1980
1980
1981 #graph_content .container {
1981 #graph_content .container {
1982 border-bottom: 1px solid #CCC;
1982 border-bottom: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1985 min-height: 70px;
1985 min-height: 70px;
1986 overflow: hidden;
1986 overflow: hidden;
1987 font-size: 1.2em;
1987 font-size: 1.2em;
1988 }
1988 }
1989
1989
1990 #graph_content .container .right {
1990 #graph_content .container .right {
1991 float: right;
1991 float: right;
1992 width: 28%;
1992 width: 28%;
1993 text-align: right;
1993 text-align: right;
1994 padding-bottom: 5px;
1994 padding-bottom: 5px;
1995 }
1995 }
1996
1996
1997 #graph_content .container .left .date {
1997 #graph_content .container .left .date {
1998 font-weight: 700;
1998 font-weight: 700;
1999 padding-bottom: 5px;
1999 padding-bottom: 5px;
2000 }
2000 }
2001
2001
2002 #graph_content .container .left .date span {
2002 #graph_content .container .left .date span {
2003 vertical-align: text-top;
2003 vertical-align: text-top;
2004 }
2004 }
2005
2005
2006 #graph_content .container .left .author {
2006 #graph_content .container .left .author {
2007 height: 22px;
2007 height: 22px;
2008 }
2008 }
2009
2009
2010 #graph_content .container .left .author .user {
2010 #graph_content .container .left .author .user {
2011 color: #444444;
2011 color: #444444;
2012 float: left;
2012 float: left;
2013 font-size: 12px;
2013 font-size: 12px;
2014 margin-left: -4px;
2014 margin-left: -4px;
2015 margin-top: 4px;
2015 margin-top: 4px;
2016 }
2016 }
2017
2017
2018 #graph_content .container .left .message {
2018 #graph_content .container .left .message {
2019 font-size: 100%;
2019 font-size: 100%;
2020 padding-top: 3px;
2020 padding-top: 3px;
2021 white-space: pre-wrap;
2021 white-space: pre-wrap;
2022 }
2022 }
2023
2023
2024 #graph_content .container .left .message a:hover{
2024 #graph_content .container .left .message a:hover{
2025 text-decoration: none;
2025 text-decoration: none;
2026 }
2026 }
2027
2027
2028 .right div {
2028 .right div {
2029 clear: both;
2029 clear: both;
2030 }
2030 }
2031
2031
2032 .right .changes .changed_total {
2032 .right .changes .changed_total {
2033 border: 0px solid #DDD;
2033 border: 0px solid #DDD;
2034 display: block;
2034 display: block;
2035 float: right;
2035 float: right;
2036 text-align: center;
2036 text-align: center;
2037 min-width: 45px;
2037 min-width: 45px;
2038 cursor: pointer;
2038 cursor: pointer;
2039 background: #FD8;
2039 background: #FD8;
2040 font-weight: bold;
2040 font-weight: bold;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2044 padding: 2px;
2044 padding: 2px;
2045 }
2045 }
2046
2046
2047 .right .changes .added,.changed,.removed {
2047 .right .changes .added,.changed,.removed {
2048 border: 1px solid #DDD;
2048 border: 1px solid #DDD;
2049 display: block;
2049 display: block;
2050 float: right;
2050 float: right;
2051 text-align: center;
2051 text-align: center;
2052 min-width: 15px;
2052 min-width: 15px;
2053 cursor: help;
2053 cursor: help;
2054 }
2054 }
2055
2055
2056 .right .changes .large {
2056 .right .changes .large {
2057 border: 1px solid #DDD;
2057 border: 1px solid #DDD;
2058 display: block;
2058 display: block;
2059 float: right;
2059 float: right;
2060 text-align: center;
2060 text-align: center;
2061 min-width: 45px;
2061 min-width: 45px;
2062 cursor: help;
2062 cursor: help;
2063 background: #54A9F7;
2063 background: #54A9F7;
2064 }
2064 }
2065
2065
2066 .right .changes .added {
2066 .right .changes .added {
2067 background: #BFB;
2067 background: #BFB;
2068 }
2068 }
2069
2069
2070 .right .changes .changed {
2070 .right .changes .changed {
2071 background: #FD8;
2071 background: #FD8;
2072 }
2072 }
2073
2073
2074 .right .changes .removed {
2074 .right .changes .removed {
2075 background: #F88;
2075 background: #F88;
2076 }
2076 }
2077
2077
2078 .right .merge {
2078 .right .merge {
2079 vertical-align: top;
2079 vertical-align: top;
2080 font-size: 0.75em;
2080 font-size: 0.75em;
2081 font-weight: 700;
2081 font-weight: 700;
2082 }
2082 }
2083
2083
2084 .right .parent {
2084 .right .parent {
2085 font-size: 90%;
2085 font-size: 90%;
2086 font-family: monospace;
2086 font-family: monospace;
2087 padding: 2px 2px 2px 2px;
2087 padding: 2px 2px 2px 2px;
2088 }
2088 }
2089 .right .logtags{
2089 .right .logtags{
2090 padding: 2px 2px 2px 2px;
2090 padding: 2px 2px 2px 2px;
2091 }
2091 }
2092 .right .logtags .branchtag,.logtags .branchtag {
2092 .right .logtags .branchtag,.logtags .branchtag {
2093 padding: 1px 3px 2px;
2093 padding: 1px 3px 2px;
2094 background-color: #bfbfbf;
2094 background-color: #bfbfbf;
2095 font-size: 9.75px;
2095 font-size: 9.75px;
2096 font-weight: bold;
2096 font-weight: bold;
2097 color: #ffffff;
2097 color: #ffffff;
2098 text-transform: uppercase;
2098 text-transform: uppercase;
2099 white-space: nowrap;
2099 white-space: nowrap;
2100 -webkit-border-radius: 3px;
2100 -webkit-border-radius: 3px;
2101 -moz-border-radius: 3px;
2101 -moz-border-radius: 3px;
2102 border-radius: 3px;
2102 border-radius: 3px;
2103 padding-left:4px;
2103 padding-left:4px;
2104 }
2104 }
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2106 color: #ffffff;
2106 color: #ffffff;
2107 }
2107 }
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2109 text-decoration: none;
2109 text-decoration: none;
2110 color: #ffffff;
2110 color: #ffffff;
2111 }
2111 }
2112 .right .logtags .tagtag,.logtags .tagtag {
2112 .right .logtags .tagtag,.logtags .tagtag {
2113 padding: 1px 3px 2px;
2113 padding: 1px 3px 2px;
2114 background-color: #62cffc;
2114 background-color: #62cffc;
2115 font-size: 9.75px;
2115 font-size: 9.75px;
2116 font-weight: bold;
2116 font-weight: bold;
2117 color: #ffffff;
2117 color: #ffffff;
2118 text-transform: uppercase;
2118 text-transform: uppercase;
2119 white-space: nowrap;
2119 white-space: nowrap;
2120 -webkit-border-radius: 3px;
2120 -webkit-border-radius: 3px;
2121 -moz-border-radius: 3px;
2121 -moz-border-radius: 3px;
2122 border-radius: 3px;
2122 border-radius: 3px;
2123 }
2123 }
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2125 color: #ffffff;
2125 color: #ffffff;
2126 }
2126 }
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2128 text-decoration: none;
2128 text-decoration: none;
2129 color: #ffffff;
2129 color: #ffffff;
2130 }
2130 }
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2132 padding: 1px 3px 2px;
2132 padding: 1px 3px 2px;
2133 background-color: #46A546;
2133 background-color: #46A546;
2134 font-size: 9.75px;
2134 font-size: 9.75px;
2135 font-weight: bold;
2135 font-weight: bold;
2136 color: #ffffff;
2136 color: #ffffff;
2137 text-transform: uppercase;
2137 text-transform: uppercase;
2138 white-space: nowrap;
2138 white-space: nowrap;
2139 -webkit-border-radius: 3px;
2139 -webkit-border-radius: 3px;
2140 -moz-border-radius: 3px;
2140 -moz-border-radius: 3px;
2141 border-radius: 3px;
2141 border-radius: 3px;
2142 }
2142 }
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2144 color: #ffffff;
2144 color: #ffffff;
2145 }
2145 }
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2147 text-decoration: none;
2147 text-decoration: none;
2148 color: #ffffff;
2148 color: #ffffff;
2149 }
2149 }
2150 div.browserblock {
2150 div.browserblock {
2151 overflow: hidden;
2151 overflow: hidden;
2152 border: 1px solid #ccc;
2152 border: 1px solid #ccc;
2153 background: #f8f8f8;
2153 background: #f8f8f8;
2154 font-size: 100%;
2154 font-size: 100%;
2155 line-height: 125%;
2155 line-height: 125%;
2156 padding: 0;
2156 padding: 0;
2157 -webkit-border-radius: 6px 6px 0px 0px;
2157 -webkit-border-radius: 6px 6px 0px 0px;
2158 -moz-border-radius: 6px 6px 0px 0px;
2158 -moz-border-radius: 6px 6px 0px 0px;
2159 border-radius: 6px 6px 0px 0px;
2159 border-radius: 6px 6px 0px 0px;
2160 }
2160 }
2161
2161
2162 div.browserblock .browser-header {
2162 div.browserblock .browser-header {
2163 background: #FFF;
2163 background: #FFF;
2164 padding: 10px 0px 15px 0px;
2164 padding: 10px 0px 15px 0px;
2165 width: 100%;
2165 width: 100%;
2166 }
2166 }
2167
2167
2168 div.browserblock .browser-nav {
2168 div.browserblock .browser-nav {
2169 float: left
2169 float: left
2170 }
2170 }
2171
2171
2172 div.browserblock .browser-branch {
2172 div.browserblock .browser-branch {
2173 float: left;
2173 float: left;
2174 }
2174 }
2175
2175
2176 div.browserblock .browser-branch label {
2176 div.browserblock .browser-branch label {
2177 color: #4A4A4A;
2177 color: #4A4A4A;
2178 vertical-align: text-top;
2178 vertical-align: text-top;
2179 }
2179 }
2180
2180
2181 div.browserblock .browser-header span {
2181 div.browserblock .browser-header span {
2182 margin-left: 5px;
2182 margin-left: 5px;
2183 font-weight: 700;
2183 font-weight: 700;
2184 }
2184 }
2185
2185
2186 div.browserblock .browser-search {
2186 div.browserblock .browser-search {
2187 clear: both;
2187 clear: both;
2188 padding: 8px 8px 0px 5px;
2188 padding: 8px 8px 0px 5px;
2189 height: 20px;
2189 height: 20px;
2190 }
2190 }
2191
2191
2192 div.browserblock #node_filter_box {
2192 div.browserblock #node_filter_box {
2193
2193
2194 }
2194 }
2195
2195
2196 div.browserblock .search_activate {
2196 div.browserblock .search_activate {
2197 float: left
2197 float: left
2198 }
2198 }
2199
2199
2200 div.browserblock .add_node {
2200 div.browserblock .add_node {
2201 float: left;
2201 float: left;
2202 padding-left: 5px;
2202 padding-left: 5px;
2203 }
2203 }
2204
2204
2205 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2205 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2206 {
2206 {
2207 text-decoration: none !important;
2207 text-decoration: none !important;
2208 }
2208 }
2209
2209
2210 div.browserblock .browser-body {
2210 div.browserblock .browser-body {
2211 background: #EEE;
2211 background: #EEE;
2212 border-top: 1px solid #CCC;
2212 border-top: 1px solid #CCC;
2213 }
2213 }
2214
2214
2215 table.code-browser {
2215 table.code-browser {
2216 border-collapse: collapse;
2216 border-collapse: collapse;
2217 width: 100%;
2217 width: 100%;
2218 }
2218 }
2219
2219
2220 table.code-browser tr {
2220 table.code-browser tr {
2221 margin: 3px;
2221 margin: 3px;
2222 }
2222 }
2223
2223
2224 table.code-browser thead th {
2224 table.code-browser thead th {
2225 background-color: #EEE;
2225 background-color: #EEE;
2226 height: 20px;
2226 height: 20px;
2227 font-size: 1.1em;
2227 font-size: 1.1em;
2228 font-weight: 700;
2228 font-weight: 700;
2229 text-align: left;
2229 text-align: left;
2230 padding-left: 10px;
2230 padding-left: 10px;
2231 }
2231 }
2232
2232
2233 table.code-browser tbody td {
2233 table.code-browser tbody td {
2234 padding-left: 10px;
2234 padding-left: 10px;
2235 height: 20px;
2235 height: 20px;
2236 }
2236 }
2237
2237
2238 table.code-browser .browser-file {
2238 table.code-browser .browser-file {
2239 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2239 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2240 height: 16px;
2240 height: 16px;
2241 padding-left: 20px;
2241 padding-left: 20px;
2242 text-align: left;
2242 text-align: left;
2243 }
2243 }
2244
2244
2245 .diffblock .changeset_file {
2245 .diffblock .changeset_file {
2246 background: url("../images/icons/file.png") no-repeat scroll 3px;
2246 background: url("../images/icons/file.png") no-repeat scroll 3px;
2247 height: 16px;
2247 height: 16px;
2248 padding-left: 22px;
2248 padding-left: 22px;
2249 text-align: left;
2249 text-align: left;
2250 font-size: 14px;
2250 font-size: 14px;
2251 }
2251 }
2252
2252
2253 .diffblock .changeset_header {
2253 .diffblock .changeset_header {
2254 margin-left: 6px !important;
2254 margin-left: 6px !important;
2255 }
2255 }
2256
2256
2257 table.code-browser .browser-dir {
2257 table.code-browser .browser-dir {
2258 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2258 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2259 height: 16px;
2259 height: 16px;
2260 padding-left: 20px;
2260 padding-left: 20px;
2261 text-align: left;
2261 text-align: left;
2262 }
2262 }
2263
2263
2264 .box .search {
2264 .box .search {
2265 clear: both;
2265 clear: both;
2266 overflow: hidden;
2266 overflow: hidden;
2267 margin: 0;
2267 margin: 0;
2268 padding: 0 20px 10px;
2268 padding: 0 20px 10px;
2269 }
2269 }
2270
2270
2271 .box .search div.search_path {
2271 .box .search div.search_path {
2272 background: none repeat scroll 0 0 #EEE;
2272 background: none repeat scroll 0 0 #EEE;
2273 border: 1px solid #CCC;
2273 border: 1px solid #CCC;
2274 color: blue;
2274 color: blue;
2275 margin-bottom: 10px;
2275 margin-bottom: 10px;
2276 padding: 10px 0;
2276 padding: 10px 0;
2277 }
2277 }
2278
2278
2279 .box .search div.search_path div.link {
2279 .box .search div.search_path div.link {
2280 font-weight: 700;
2280 font-weight: 700;
2281 margin-left: 25px;
2281 margin-left: 25px;
2282 }
2282 }
2283
2283
2284 .box .search div.search_path div.link a {
2284 .box .search div.search_path div.link a {
2285 color: #003367;
2285 color: #003367;
2286 cursor: pointer;
2286 cursor: pointer;
2287 text-decoration: none;
2287 text-decoration: none;
2288 }
2288 }
2289
2289
2290 #path_unlock {
2290 #path_unlock {
2291 color: red;
2291 color: red;
2292 font-size: 1.2em;
2292 font-size: 1.2em;
2293 padding-left: 4px;
2293 padding-left: 4px;
2294 }
2294 }
2295
2295
2296 .info_box span {
2296 .info_box span {
2297 margin-left: 3px;
2297 margin-left: 3px;
2298 margin-right: 3px;
2298 margin-right: 3px;
2299 }
2299 }
2300
2300
2301 .info_box .rev {
2301 .info_box .rev {
2302 color: #003367;
2302 color: #003367;
2303 font-size: 1.6em;
2303 font-size: 1.6em;
2304 font-weight: bold;
2304 font-weight: bold;
2305 vertical-align: sub;
2305 vertical-align: sub;
2306 }
2306 }
2307
2307
2308 .info_box input#at_rev,.info_box input#size {
2308 .info_box input#at_rev,.info_box input#size {
2309 background: #FFF;
2309 background: #FFF;
2310 border-top: 1px solid #b3b3b3;
2310 border-top: 1px solid #b3b3b3;
2311 border-left: 1px solid #b3b3b3;
2311 border-left: 1px solid #b3b3b3;
2312 border-right: 1px solid #eaeaea;
2312 border-right: 1px solid #eaeaea;
2313 border-bottom: 1px solid #eaeaea;
2313 border-bottom: 1px solid #eaeaea;
2314 color: #000;
2314 color: #000;
2315 font-size: 12px;
2315 font-size: 12px;
2316 margin: 0;
2316 margin: 0;
2317 padding: 1px 5px 1px;
2317 padding: 1px 5px 1px;
2318 }
2318 }
2319
2319
2320 .info_box input#view {
2320 .info_box input#view {
2321 text-align: center;
2321 text-align: center;
2322 padding: 4px 3px 2px 2px;
2322 padding: 4px 3px 2px 2px;
2323 }
2323 }
2324
2324
2325 .yui-overlay,.yui-panel-container {
2325 .yui-overlay,.yui-panel-container {
2326 visibility: hidden;
2326 visibility: hidden;
2327 position: absolute;
2327 position: absolute;
2328 z-index: 2;
2328 z-index: 2;
2329 }
2329 }
2330
2330
2331 .yui-tt {
2331 .yui-tt {
2332 visibility: hidden;
2332 visibility: hidden;
2333 position: absolute;
2333 position: absolute;
2334 color: #666;
2334 color: #666;
2335 background-color: #FFF;
2335 background-color: #FFF;
2336 border: 2px solid #003367;
2336 border: 2px solid #003367;
2337 font: 100% sans-serif;
2337 font: 100% sans-serif;
2338 width: auto;
2338 width: auto;
2339 opacity: 1px;
2339 opacity: 1px;
2340 padding: 8px;
2340 padding: 8px;
2341 white-space: pre-wrap;
2341 white-space: pre-wrap;
2342 -webkit-border-radius: 8px 8px 8px 8px;
2342 -webkit-border-radius: 8px 8px 8px 8px;
2343 -khtml-border-radius: 8px 8px 8px 8px;
2343 -khtml-border-radius: 8px 8px 8px 8px;
2344 -moz-border-radius: 8px 8px 8px 8px;
2344 -moz-border-radius: 8px 8px 8px 8px;
2345 border-radius: 8px 8px 8px 8px;
2345 border-radius: 8px 8px 8px 8px;
2346 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2346 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2347 }
2347 }
2348
2348
2349 .ac {
2349 .ac {
2350 vertical-align: top;
2350 vertical-align: top;
2351 }
2351 }
2352
2352
2353 .ac .yui-ac {
2353 .ac .yui-ac {
2354 position: relative;
2354 position: relative;
2355 font-size: 100%;
2355 font-size: 100%;
2356 }
2356 }
2357
2357
2358 .ac .perm_ac {
2358 .ac .perm_ac {
2359 width: 15em;
2359 width: 15em;
2360 }
2360 }
2361
2361
2362 .ac .yui-ac-input {
2362 .ac .yui-ac-input {
2363 width: 100%;
2363 width: 100%;
2364 }
2364 }
2365
2365
2366 .ac .yui-ac-container {
2366 .ac .yui-ac-container {
2367 position: absolute;
2367 position: absolute;
2368 top: 1.6em;
2368 top: 1.6em;
2369 width: 100%;
2369 width: 100%;
2370 }
2370 }
2371
2371
2372 .ac .yui-ac-content {
2372 .ac .yui-ac-content {
2373 position: absolute;
2373 position: absolute;
2374 width: 100%;
2374 width: 100%;
2375 border: 1px solid gray;
2375 border: 1px solid gray;
2376 background: #fff;
2376 background: #fff;
2377 overflow: hidden;
2377 overflow: hidden;
2378 z-index: 9050;
2378 z-index: 9050;
2379 }
2379 }
2380
2380
2381 .ac .yui-ac-shadow {
2381 .ac .yui-ac-shadow {
2382 position: absolute;
2382 position: absolute;
2383 width: 100%;
2383 width: 100%;
2384 background: #000;
2384 background: #000;
2385 -moz-opacity: 0.1px;
2385 -moz-opacity: 0.1px;
2386 opacity: .10;
2386 opacity: .10;
2387 filter: alpha(opacity = 10);
2387 filter: alpha(opacity = 10);
2388 z-index: 9049;
2388 z-index: 9049;
2389 margin: .3em;
2389 margin: .3em;
2390 }
2390 }
2391
2391
2392 .ac .yui-ac-content ul {
2392 .ac .yui-ac-content ul {
2393 width: 100%;
2393 width: 100%;
2394 margin: 0;
2394 margin: 0;
2395 padding: 0;
2395 padding: 0;
2396 }
2396 }
2397
2397
2398 .ac .yui-ac-content li {
2398 .ac .yui-ac-content li {
2399 cursor: default;
2399 cursor: default;
2400 white-space: nowrap;
2400 white-space: nowrap;
2401 margin: 0;
2401 margin: 0;
2402 padding: 2px 5px;
2402 padding: 2px 5px;
2403 }
2403 }
2404
2404
2405 .ac .yui-ac-content li.yui-ac-prehighlight {
2405 .ac .yui-ac-content li.yui-ac-prehighlight {
2406 background: #B3D4FF;
2406 background: #B3D4FF;
2407 }
2407 }
2408
2408
2409 .ac .yui-ac-content li.yui-ac-highlight {
2409 .ac .yui-ac-content li.yui-ac-highlight {
2410 background: #556CB5;
2410 background: #556CB5;
2411 color: #FFF;
2411 color: #FFF;
2412 }
2412 }
2413
2413
2414 .follow {
2414 .follow {
2415 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2415 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2416 height: 16px;
2416 height: 16px;
2417 width: 20px;
2417 width: 20px;
2418 cursor: pointer;
2418 cursor: pointer;
2419 display: block;
2419 display: block;
2420 float: right;
2420 float: right;
2421 margin-top: 2px;
2421 margin-top: 2px;
2422 }
2422 }
2423
2423
2424 .following {
2424 .following {
2425 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2425 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2426 height: 16px;
2426 height: 16px;
2427 width: 20px;
2427 width: 20px;
2428 cursor: pointer;
2428 cursor: pointer;
2429 display: block;
2429 display: block;
2430 float: right;
2430 float: right;
2431 margin-top: 2px;
2431 margin-top: 2px;
2432 }
2432 }
2433
2433
2434 .currently_following {
2434 .currently_following {
2435 padding-left: 10px;
2435 padding-left: 10px;
2436 padding-bottom: 5px;
2436 padding-bottom: 5px;
2437 }
2437 }
2438
2438
2439 .add_icon {
2439 .add_icon {
2440 background: url("../images/icons/add.png") no-repeat scroll 3px;
2440 background: url("../images/icons/add.png") no-repeat scroll 3px;
2441 padding-left: 20px;
2441 padding-left: 20px;
2442 padding-top: 0px;
2442 padding-top: 0px;
2443 text-align: left;
2443 text-align: left;
2444 }
2444 }
2445
2445
2446 .edit_icon {
2446 .edit_icon {
2447 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2447 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2448 padding-left: 20px;
2448 padding-left: 20px;
2449 padding-top: 0px;
2449 padding-top: 0px;
2450 text-align: left;
2450 text-align: left;
2451 }
2451 }
2452
2452
2453 .delete_icon {
2453 .delete_icon {
2454 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2454 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2455 padding-left: 20px;
2455 padding-left: 20px;
2456 padding-top: 0px;
2456 padding-top: 0px;
2457 text-align: left;
2457 text-align: left;
2458 }
2458 }
2459
2459
2460 .refresh_icon {
2460 .refresh_icon {
2461 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2461 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2462 3px;
2462 3px;
2463 padding-left: 20px;
2463 padding-left: 20px;
2464 padding-top: 0px;
2464 padding-top: 0px;
2465 text-align: left;
2465 text-align: left;
2466 }
2466 }
2467
2467
2468 .pull_icon {
2468 .pull_icon {
2469 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2469 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2470 padding-left: 20px;
2470 padding-left: 20px;
2471 padding-top: 0px;
2471 padding-top: 0px;
2472 text-align: left;
2472 text-align: left;
2473 }
2473 }
2474
2474
2475 .rss_icon {
2475 .rss_icon {
2476 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2476 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2477 padding-left: 20px;
2477 padding-left: 20px;
2478 padding-top: 4px;
2478 padding-top: 4px;
2479 text-align: left;
2479 text-align: left;
2480 font-size: 8px
2480 font-size: 8px
2481 }
2481 }
2482
2482
2483 .atom_icon {
2483 .atom_icon {
2484 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2484 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2485 padding-left: 20px;
2485 padding-left: 20px;
2486 padding-top: 4px;
2486 padding-top: 4px;
2487 text-align: left;
2487 text-align: left;
2488 font-size: 8px
2488 font-size: 8px
2489 }
2489 }
2490
2490
2491 .archive_icon {
2491 .archive_icon {
2492 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2492 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2493 padding-left: 20px;
2493 padding-left: 20px;
2494 text-align: left;
2494 text-align: left;
2495 padding-top: 1px;
2495 padding-top: 1px;
2496 }
2496 }
2497
2497
2498 .start_following_icon {
2498 .start_following_icon {
2499 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2499 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2500 padding-left: 20px;
2500 padding-left: 20px;
2501 text-align: left;
2501 text-align: left;
2502 padding-top: 0px;
2502 padding-top: 0px;
2503 }
2503 }
2504
2504
2505 .stop_following_icon {
2505 .stop_following_icon {
2506 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2506 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2507 padding-left: 20px;
2507 padding-left: 20px;
2508 text-align: left;
2508 text-align: left;
2509 padding-top: 0px;
2509 padding-top: 0px;
2510 }
2510 }
2511
2511
2512 .action_button {
2512 .action_button {
2513 border: 0;
2513 border: 0;
2514 display: inline;
2514 display: inline;
2515 }
2515 }
2516
2516
2517 .action_button:hover {
2517 .action_button:hover {
2518 border: 0;
2518 border: 0;
2519 text-decoration: underline;
2519 text-decoration: underline;
2520 cursor: pointer;
2520 cursor: pointer;
2521 }
2521 }
2522
2522
2523 #switch_repos {
2523 #switch_repos {
2524 position: absolute;
2524 position: absolute;
2525 height: 25px;
2525 height: 25px;
2526 z-index: 1;
2526 z-index: 1;
2527 }
2527 }
2528
2528
2529 #switch_repos select {
2529 #switch_repos select {
2530 min-width: 150px;
2530 min-width: 150px;
2531 max-height: 250px;
2531 max-height: 250px;
2532 z-index: 1;
2532 z-index: 1;
2533 }
2533 }
2534
2534
2535 .breadcrumbs {
2535 .breadcrumbs {
2536 border: medium none;
2536 border: medium none;
2537 color: #FFF;
2537 color: #FFF;
2538 float: left;
2538 float: left;
2539 text-transform: uppercase;
2539 text-transform: uppercase;
2540 font-weight: 700;
2540 font-weight: 700;
2541 font-size: 14px;
2541 font-size: 14px;
2542 margin: 0;
2542 margin: 0;
2543 padding: 11px 0 11px 10px;
2543 padding: 11px 0 11px 10px;
2544 }
2544 }
2545
2545
2546 .breadcrumbs a {
2546 .breadcrumbs a {
2547 color: #FFF;
2547 color: #FFF;
2548 }
2548 }
2549
2549
2550 .flash_msg {
2550 .flash_msg {
2551
2551
2552 }
2552 }
2553
2553
2554 .flash_msg ul {
2554 .flash_msg ul {
2555
2555
2556 }
2556 }
2557
2557
2558 .error_msg {
2558 .error_msg {
2559 background-color: #c43c35;
2559 background-color: #c43c35;
2560 background-repeat: repeat-x;
2560 background-repeat: repeat-x;
2561 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2561 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2562 to(#c43c35) );
2562 to(#c43c35) );
2563 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2563 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2564 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2564 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2565 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2565 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2566 color-stop(100%, #c43c35) );
2566 color-stop(100%, #c43c35) );
2567 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2567 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2568 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2568 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2569 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2569 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2570 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2570 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2571 endColorstr='#c43c35', GradientType=0 );
2571 endColorstr='#c43c35', GradientType=0 );
2572 border-color: #c43c35 #c43c35 #882a25;
2572 border-color: #c43c35 #c43c35 #882a25;
2573 }
2573 }
2574
2574
2575 .warning_msg {
2575 .warning_msg {
2576 color: #404040 !important;
2576 color: #404040 !important;
2577 background-color: #eedc94;
2577 background-color: #eedc94;
2578 background-repeat: repeat-x;
2578 background-repeat: repeat-x;
2579 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2579 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2580 to(#eedc94) );
2580 to(#eedc94) );
2581 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2581 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2582 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2582 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2583 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2583 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2584 color-stop(100%, #eedc94) );
2584 color-stop(100%, #eedc94) );
2585 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2585 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2586 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2586 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2587 background-image: linear-gradient(top, #fceec1, #eedc94);
2587 background-image: linear-gradient(top, #fceec1, #eedc94);
2588 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2588 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2589 endColorstr='#eedc94', GradientType=0 );
2589 endColorstr='#eedc94', GradientType=0 );
2590 border-color: #eedc94 #eedc94 #e4c652;
2590 border-color: #eedc94 #eedc94 #e4c652;
2591 }
2591 }
2592
2592
2593 .success_msg {
2593 .success_msg {
2594 background-color: #57a957;
2594 background-color: #57a957;
2595 background-repeat: repeat-x !important;
2595 background-repeat: repeat-x !important;
2596 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2596 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2597 to(#57a957) );
2597 to(#57a957) );
2598 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2598 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2599 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2599 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2600 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2600 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2601 color-stop(100%, #57a957) );
2601 color-stop(100%, #57a957) );
2602 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2602 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2603 background-image: -o-linear-gradient(top, #62c462, #57a957);
2603 background-image: -o-linear-gradient(top, #62c462, #57a957);
2604 background-image: linear-gradient(top, #62c462, #57a957);
2604 background-image: linear-gradient(top, #62c462, #57a957);
2605 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2605 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2606 endColorstr='#57a957', GradientType=0 );
2606 endColorstr='#57a957', GradientType=0 );
2607 border-color: #57a957 #57a957 #3d773d;
2607 border-color: #57a957 #57a957 #3d773d;
2608 }
2608 }
2609
2609
2610 .notice_msg {
2610 .notice_msg {
2611 background-color: #339bb9;
2611 background-color: #339bb9;
2612 background-repeat: repeat-x;
2612 background-repeat: repeat-x;
2613 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2613 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2614 to(#339bb9) );
2614 to(#339bb9) );
2615 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2615 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2616 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2616 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2617 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2617 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2618 color-stop(100%, #339bb9) );
2618 color-stop(100%, #339bb9) );
2619 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2619 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2620 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2620 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2621 background-image: linear-gradient(top, #5bc0de, #339bb9);
2621 background-image: linear-gradient(top, #5bc0de, #339bb9);
2622 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2622 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2623 endColorstr='#339bb9', GradientType=0 );
2623 endColorstr='#339bb9', GradientType=0 );
2624 border-color: #339bb9 #339bb9 #22697d;
2624 border-color: #339bb9 #339bb9 #22697d;
2625 }
2625 }
2626
2626
2627 .success_msg,.error_msg,.notice_msg,.warning_msg {
2627 .success_msg,.error_msg,.notice_msg,.warning_msg {
2628 font-size: 12px;
2628 font-size: 12px;
2629 font-weight: 700;
2629 font-weight: 700;
2630 min-height: 14px;
2630 min-height: 14px;
2631 line-height: 14px;
2631 line-height: 14px;
2632 margin-bottom: 10px;
2632 margin-bottom: 10px;
2633 margin-top: 0;
2633 margin-top: 0;
2634 display: block;
2634 display: block;
2635 overflow: auto;
2635 overflow: auto;
2636 padding: 6px 10px 6px 10px;
2636 padding: 6px 10px 6px 10px;
2637 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2637 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2638 position: relative;
2638 position: relative;
2639 color: #FFF;
2639 color: #FFF;
2640 border-width: 1px;
2640 border-width: 1px;
2641 border-style: solid;
2641 border-style: solid;
2642 -webkit-border-radius: 4px;
2642 -webkit-border-radius: 4px;
2643 -moz-border-radius: 4px;
2643 -moz-border-radius: 4px;
2644 border-radius: 4px;
2644 border-radius: 4px;
2645 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2645 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2646 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2646 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2647 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2647 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2648 }
2648 }
2649
2649
2650 #msg_close {
2650 #msg_close {
2651 background: transparent url("../icons/cross_grey_small.png") no-repeat
2651 background: transparent url("../icons/cross_grey_small.png") no-repeat
2652 scroll 0 0;
2652 scroll 0 0;
2653 cursor: pointer;
2653 cursor: pointer;
2654 height: 16px;
2654 height: 16px;
2655 position: absolute;
2655 position: absolute;
2656 right: 5px;
2656 right: 5px;
2657 top: 5px;
2657 top: 5px;
2658 width: 16px;
2658 width: 16px;
2659 }
2659 }
2660
2660
2661 div#legend_container table,div#legend_choices table {
2661 div#legend_container table,div#legend_choices table {
2662 width: auto !important;
2662 width: auto !important;
2663 }
2663 }
2664
2664
2665 table#permissions_manage {
2665 table#permissions_manage {
2666 width: 0 !important;
2666 width: 0 !important;
2667 }
2667 }
2668
2668
2669 table#permissions_manage span.private_repo_msg {
2669 table#permissions_manage span.private_repo_msg {
2670 font-size: 0.8em;
2670 font-size: 0.8em;
2671 opacity: 0.6px;
2671 opacity: 0.6px;
2672 }
2672 }
2673
2673
2674 table#permissions_manage td.private_repo_msg {
2674 table#permissions_manage td.private_repo_msg {
2675 font-size: 0.8em;
2675 font-size: 0.8em;
2676 }
2676 }
2677
2677
2678 table#permissions_manage tr#add_perm_input td {
2678 table#permissions_manage tr#add_perm_input td {
2679 vertical-align: middle;
2679 vertical-align: middle;
2680 }
2680 }
2681
2681
2682 div.gravatar {
2682 div.gravatar {
2683 background-color: #FFF;
2683 background-color: #FFF;
2684 border: 0px solid #D0D0D0;
2684 border: 0px solid #D0D0D0;
2685 float: left;
2685 float: left;
2686 margin-right: 0.7em;
2686 margin-right: 0.7em;
2687 padding: 2px 2px 2px 2px;
2687 padding: 2px 2px 2px 2px;
2688 line-height:0;
2688 line-height:0;
2689 -webkit-border-radius: 6px;
2689 -webkit-border-radius: 6px;
2690 -khtml-border-radius: 6px;
2690 -khtml-border-radius: 6px;
2691 -moz-border-radius: 6px;
2691 -moz-border-radius: 6px;
2692 border-radius: 6px;
2692 border-radius: 6px;
2693 }
2693 }
2694
2694
2695 div.gravatar img {
2695 div.gravatar img {
2696 -webkit-border-radius: 4px;
2696 -webkit-border-radius: 4px;
2697 -khtml-border-radius: 4px;
2697 -khtml-border-radius: 4px;
2698 -moz-border-radius: 4px;
2698 -moz-border-radius: 4px;
2699 border-radius: 4px;
2699 border-radius: 4px;
2700 }
2700 }
2701
2701
2702 #header,#content,#footer {
2702 #header,#content,#footer {
2703 min-width: 978px;
2703 min-width: 978px;
2704 }
2704 }
2705
2705
2706 #content {
2706 #content {
2707 clear: both;
2707 clear: both;
2708 overflow: hidden;
2708 overflow: hidden;
2709 padding: 14px 10px;
2709 padding: 14px 10px;
2710 }
2710 }
2711
2711
2712 #content div.box div.title div.search {
2712 #content div.box div.title div.search {
2713
2713
2714 border-left: 1px solid #316293;
2714 border-left: 1px solid #316293;
2715 }
2715 }
2716
2716
2717 #content div.box div.title div.search div.input input {
2717 #content div.box div.title div.search div.input input {
2718 border: 1px solid #316293;
2718 border: 1px solid #316293;
2719 }
2719 }
2720
2720
2721 input.ui-button-small,
2721 .ui-btn{
2722 .ui-button-small {
2722 color: #515151;
2723 background-color: #eedc94;
2723 background-color: #DADADA;
2724 background-repeat: repeat-x;
2724 background-repeat: repeat-x;
2725 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#ECECEC) );
2725 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
2726 background-image: -moz-linear-gradient(top, #F4F4F4, #ECECEC);
2726 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
2727 background-image: -ms-linear-gradient(top, #F4F4F4, #ECECEC);
2727 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
2728 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #F4F4F4) );
2728 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
2729 background-image: -webkit-linear-gradient(top, #F4F4F4, #ECECEC) );
2729 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
2730 background-image: -o-linear-gradient(top, #F4F4F4, #ECECEC) );
2730 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
2731 background-image: linear-gradient(top, #F4F4F4, #ECECEC);
2731 background-image: linear-gradient(top, #F4F4F4, #DADADA);
2732
2732 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
2733 border-top: 1px solid #DDD !important;
2733
2734 border-left: 1px solid #c6c6c6 !important;
2734 border-top: 1px solid #DDD;
2735 border-right: 1px solid #DDD !important;
2735 border-left: 1px solid #c6c6c6;
2736 border-bottom: 1px solid #c6c6c6 !important;
2736 border-right: 1px solid #DDD;
2737 color: #515151 !important;
2737 border-bottom: 1px solid #c6c6c6;
2738 outline: none !important;
2738 color: #515151;
2739 margin: 0 !important;
2739 outline: none;
2740 -webkit-border-radius: 4px 4px 4px 4px !important;
2740 margin: 0px 3px 3px 0px;
2741 -khtml-border-radius: 4px 4px 4px 4px !important;
2741 -webkit-border-radius: 4px 4px 4px 4px !important;
2742 -moz-border-radius: 4px 4px 4px 4px !important;
2742 -khtml-border-radius: 4px 4px 4px 4px !important;
2743 border-radius: 4px 4px 4px 4px !important;
2743 -moz-border-radius: 4px 4px 4px 4px !important;
2744 box-shadow: 0 1px 0 #ececec !important;
2744 border-radius: 4px 4px 4px 4px !important;
2745 cursor: pointer !important;
2745 box-shadow: 0 1px 0 #DADADA !important;
2746 padding: 3px 3px 3px 3px;
2746 cursor: pointer !important;
2747 }
2747 padding: 3px 3px 3px 3px;
2748
2748
2749 input.ui-button-small.xsmall,
2749 }
2750 .ui-button-small.xsmall{
2750 .ui-btn.xsmall{
2751 padding: 1px 2px 1px 1px;
2751 padding: 1px 2px 1px 1px;
2752 }
2752 }
2753
2753
2754 input.ui-button-small:hover,
2754 .ui-btn:focus {
2755 .ui-button-small:hover,
2755 outline: none;
2756 .ui-button-small.xsmall:hover
2756 }
2757 {
2757 .ui-btn:hover{
2758 background: #b4b4b4 url("../images/button_selected.png") repeat-x !important;
2758 background-position: 0 -15px;
2759 border-top: 1px solid #ccc !important;
2759 text-decoration: none;
2760 border-left: 1px solid #bebebe !important;
2760 color: #515151;
2761 border-right: 1px solid #b1b1b1 !important;
2761 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
2762 border-bottom: 1px solid #afafaf !important;
2762 }
2763 text-decoration: none;
2763
2764 }
2764 .ui-btn.red{
2765
2765 color:#fff;
2766 input.ui-button-small-blue,.ui-button-small-blue {
2766 background-color: #c43c35;
2767 background: #4e85bb url("../images/button_highlight.png") repeat-x;
2767 background-repeat: repeat-x;
2768 border-top: 1px solid #5c91a4;
2768 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
2769 border-left: 1px solid #2a6f89;
2769 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2770 border-right: 1px solid #2b7089;
2770 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2771 border-bottom: 1px solid #1a6480;
2771 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
2772 color: #fff;
2772 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2773 -webkit-border-radius: 4px 4px 4px 4px;
2773 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2774 -khtml-border-radius: 4px 4px 4px 4px;
2774 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2775 -moz-border-radius: 4px 4px 4px 4px;
2775 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
2776 border-radius: 4px 4px 4px 4px;
2776 border-color: #c43c35 #c43c35 #882a25;
2777 box-shadow: 0 1px 0 #ececec;
2777 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2778 cursor: pointer;
2778 }
2779 padding: 0px 2px 1px 2px;
2779
2780 }
2780
2781
2781 .ui-btn.blue{
2782 input.ui-button-small-blue:hover {
2782 background-color: #339bb9;
2783
2783 background-repeat: repeat-x;
2784 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
2785 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2786 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2787 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
2788 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2789 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2790 background-image: linear-gradient(top, #5bc0de, #339bb9);
2791 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
2792 border-color: #339bb9 #339bb9 #22697d;
2793 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2794 }
2795
2796 .ui-btn.green{
2797 background-color: #57a957;
2798 background-repeat: repeat-x;
2799 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
2800 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2801 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2802 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
2803 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2804 background-image: -o-linear-gradient(top, #62c462, #57a957);
2805 background-image: linear-gradient(top, #62c462, #57a957);
2806 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
2807 border-color: #57a957 #57a957 #3d773d;
2808 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2784 }
2809 }
2785
2810
2786 ins,div.options a:hover {
2811 ins,div.options a:hover {
2787 text-decoration: none;
2812 text-decoration: none;
2788 }
2813 }
2789
2814
2790 img,
2815 img,
2791 #header #header-inner #quick li a:hover span.normal,
2816 #header #header-inner #quick li a:hover span.normal,
2792 #header #header-inner #quick li ul li.last,
2817 #header #header-inner #quick li ul li.last,
2793 #content div.box div.form div.fields div.field div.textarea table td table td a,
2818 #content div.box div.form div.fields div.field div.textarea table td table td a,
2794 #clone_url
2819 #clone_url
2795 {
2820 {
2796 border: none;
2821 border: none;
2797 }
2822 }
2798
2823
2799 img.icon,.right .merge img {
2824 img.icon,.right .merge img {
2800 vertical-align: bottom;
2825 vertical-align: bottom;
2801 }
2826 }
2802
2827
2803 #header ul#logged-user,#content div.box div.title ul.links,
2828 #header ul#logged-user,#content div.box div.title ul.links,
2804 #content div.box div.message div.dismiss,
2829 #content div.box div.message div.dismiss,
2805 #content div.box div.traffic div.legend ul
2830 #content div.box div.traffic div.legend ul
2806 {
2831 {
2807 float: right;
2832 float: right;
2808 margin: 0;
2833 margin: 0;
2809 padding: 0;
2834 padding: 0;
2810 }
2835 }
2811
2836
2812 #header #header-inner #home,#header #header-inner #logo,
2837 #header #header-inner #home,#header #header-inner #logo,
2813 #content div.box ul.left,#content div.box ol.left,
2838 #content div.box ul.left,#content div.box ol.left,
2814 #content div.box div.pagination-left,div#commit_history,
2839 #content div.box div.pagination-left,div#commit_history,
2815 div#legend_data,div#legend_container,div#legend_choices
2840 div#legend_data,div#legend_container,div#legend_choices
2816 {
2841 {
2817 float: left;
2842 float: left;
2818 }
2843 }
2819
2844
2820 #header #header-inner #quick li:hover ul ul,
2845 #header #header-inner #quick li:hover ul ul,
2821 #header #header-inner #quick li:hover ul ul ul,
2846 #header #header-inner #quick li:hover ul ul ul,
2822 #header #header-inner #quick li:hover ul ul ul ul,
2847 #header #header-inner #quick li:hover ul ul ul ul,
2823 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
2848 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
2824 {
2849 {
2825 display: none;
2850 display: none;
2826 }
2851 }
2827
2852
2828 #header #header-inner #quick li:hover ul,#header #header-inner #quick li li:hover ul,#header #header-inner #quick li li li:hover ul,#header #header-inner #quick li li li li:hover ul,#content #left #menu ul.opened,#content #left #menu li ul.expanded
2853 #header #header-inner #quick li:hover ul,#header #header-inner #quick li li:hover ul,#header #header-inner #quick li li li:hover ul,#header #header-inner #quick li li li li:hover ul,#content #left #menu ul.opened,#content #left #menu li ul.expanded
2829 {
2854 {
2830 display: block;
2855 display: block;
2831 }
2856 }
2832
2857
2833 #content div.graph {
2858 #content div.graph {
2834 padding: 0 10px 10px;
2859 padding: 0 10px 10px;
2835 }
2860 }
2836
2861
2837 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2862 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2838 {
2863 {
2839 color: #bfe3ff;
2864 color: #bfe3ff;
2840 }
2865 }
2841
2866
2842 #content div.box ol.lower-roman,#content div.box ol.upper-roman,#content div.box ol.lower-alpha,#content div.box ol.upper-alpha,#content div.box ol.decimal
2867 #content div.box ol.lower-roman,#content div.box ol.upper-roman,#content div.box ol.lower-alpha,#content div.box ol.upper-alpha,#content div.box ol.decimal
2843 {
2868 {
2844 margin: 10px 24px 10px 44px;
2869 margin: 10px 24px 10px 44px;
2845 }
2870 }
2846
2871
2847 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2872 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2848 {
2873 {
2849 clear: both;
2874 clear: both;
2850 overflow: hidden;
2875 overflow: hidden;
2851 margin: 0;
2876 margin: 0;
2852 padding: 0 20px 10px;
2877 padding: 0 20px 10px;
2853 }
2878 }
2854
2879
2855 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2880 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2856 {
2881 {
2857 clear: both;
2882 clear: both;
2858 overflow: hidden;
2883 overflow: hidden;
2859 margin: 0;
2884 margin: 0;
2860 padding: 0;
2885 padding: 0;
2861 }
2886 }
2862
2887
2863 #content div.box div.form div.fields div.field div.label span,#login div.form div.fields div.field div.label span,#register div.form div.fields div.field div.label span
2888 #content div.box div.form div.fields div.field div.label span,#login div.form div.fields div.field div.label span,#register div.form div.fields div.field div.label span
2864 {
2889 {
2865 height: 1%;
2890 height: 1%;
2866 display: block;
2891 display: block;
2867 color: #363636;
2892 color: #363636;
2868 margin: 0;
2893 margin: 0;
2869 padding: 2px 0 0;
2894 padding: 2px 0 0;
2870 }
2895 }
2871
2896
2872 #content div.box div.form div.fields div.field div.input input.error,#login div.form div.fields div.field div.input input.error,#register div.form div.fields div.field div.input input.error
2897 #content div.box div.form div.fields div.field div.input input.error,#login div.form div.fields div.field div.input input.error,#register div.form div.fields div.field div.input input.error
2873 {
2898 {
2874 background: #FBE3E4;
2899 background: #FBE3E4;
2875 border-top: 1px solid #e1b2b3;
2900 border-top: 1px solid #e1b2b3;
2876 border-left: 1px solid #e1b2b3;
2901 border-left: 1px solid #e1b2b3;
2877 border-right: 1px solid #FBC2C4;
2902 border-right: 1px solid #FBC2C4;
2878 border-bottom: 1px solid #FBC2C4;
2903 border-bottom: 1px solid #FBC2C4;
2879 }
2904 }
2880
2905
2881 #content div.box div.form div.fields div.field div.input input.success,#login div.form div.fields div.field div.input input.success,#register div.form div.fields div.field div.input input.success
2906 #content div.box div.form div.fields div.field div.input input.success,#login div.form div.fields div.field div.input input.success,#register div.form div.fields div.field div.input input.success
2882 {
2907 {
2883 background: #E6EFC2;
2908 background: #E6EFC2;
2884 border-top: 1px solid #cebb98;
2909 border-top: 1px solid #cebb98;
2885 border-left: 1px solid #cebb98;
2910 border-left: 1px solid #cebb98;
2886 border-right: 1px solid #c6d880;
2911 border-right: 1px solid #c6d880;
2887 border-bottom: 1px solid #c6d880;
2912 border-bottom: 1px solid #c6d880;
2888 }
2913 }
2889
2914
2890 #content div.box-left div.form div.fields div.field div.textarea,#content div.box-right div.form div.fields div.field div.textarea,#content div.box div.form div.fields div.field div.select select,#content div.box table th.selected input,#content div.box table td.selected input
2915 #content div.box-left div.form div.fields div.field div.textarea,#content div.box-right div.form div.fields div.field div.textarea,#content div.box div.form div.fields div.field div.select select,#content div.box table th.selected input,#content div.box table td.selected input
2891 {
2916 {
2892 margin: 0;
2917 margin: 0;
2893 }
2918 }
2894
2919
2895 #content div.box-left div.form div.fields div.field div.select,#content div.box-left div.form div.fields div.field div.checkboxes,#content div.box-left div.form div.fields div.field div.radios,#content div.box-right div.form div.fields div.field div.select,#content div.box-right div.form div.fields div.field div.checkboxes,#content div.box-right div.form div.fields div.field div.radios
2920 #content div.box-left div.form div.fields div.field div.select,#content div.box-left div.form div.fields div.field div.checkboxes,#content div.box-left div.form div.fields div.field div.radios,#content div.box-right div.form div.fields div.field div.select,#content div.box-right div.form div.fields div.field div.checkboxes,#content div.box-right div.form div.fields div.field div.radios
2896 {
2921 {
2897 margin: 0 0 0 0px !important;
2922 margin: 0 0 0 0px !important;
2898 padding: 0;
2923 padding: 0;
2899 }
2924 }
2900
2925
2901 #content div.box div.form div.fields div.field div.select,#content div.box div.form div.fields div.field div.checkboxes,#content div.box div.form div.fields div.field div.radios
2926 #content div.box div.form div.fields div.field div.select,#content div.box div.form div.fields div.field div.checkboxes,#content div.box div.form div.fields div.field div.radios
2902 {
2927 {
2903 margin: 0 0 0 200px;
2928 margin: 0 0 0 200px;
2904 padding: 0;
2929 padding: 0;
2905 }
2930 }
2906
2931
2907 #content div.box div.form div.fields div.field div.select a:hover,#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,#content div.box div.action a:hover
2932 #content div.box div.form div.fields div.field div.select a:hover,#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,#content div.box div.action a:hover
2908 {
2933 {
2909 color: #000;
2934 color: #000;
2910 text-decoration: none;
2935 text-decoration: none;
2911 }
2936 }
2912
2937
2913 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2938 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2914 {
2939 {
2915 border: 1px solid #666;
2940 border: 1px solid #666;
2916 }
2941 }
2917
2942
2918 #content div.box div.form div.fields div.field div.checkboxes div.checkbox,#content div.box div.form div.fields div.field div.radios div.radio
2943 #content div.box div.form div.fields div.field div.checkboxes div.checkbox,#content div.box div.form div.fields div.field div.radios div.radio
2919 {
2944 {
2920 clear: both;
2945 clear: both;
2921 overflow: hidden;
2946 overflow: hidden;
2922 margin: 0;
2947 margin: 0;
2923 padding: 8px 0 2px;
2948 padding: 8px 0 2px;
2924 }
2949 }
2925
2950
2926 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input,#content div.box div.form div.fields div.field div.radios div.radio input
2951 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input,#content div.box div.form div.fields div.field div.radios div.radio input
2927 {
2952 {
2928 float: left;
2953 float: left;
2929 margin: 0;
2954 margin: 0;
2930 }
2955 }
2931
2956
2932 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label,#content div.box div.form div.fields div.field div.radios div.radio label
2957 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label,#content div.box div.form div.fields div.field div.radios div.radio label
2933 {
2958 {
2934 height: 1%;
2959 height: 1%;
2935 display: block;
2960 display: block;
2936 float: left;
2961 float: left;
2937 margin: 2px 0 0 4px;
2962 margin: 2px 0 0 4px;
2938 }
2963 }
2939
2964
2940 div.form div.fields div.field div.button input,#content div.box div.form div.fields div.buttons input,div.form div.fields div.buttons input,#content div.box div.action div.button input
2965 div.form div.fields div.field div.button input,#content div.box div.form div.fields div.buttons input,div.form div.fields div.buttons input,#content div.box div.action div.button input
2941 {
2966 {
2942 color: #000;
2967 color: #000;
2943 font-size: 11px;
2968 font-size: 11px;
2944 font-weight: 700;
2969 font-weight: 700;
2945 margin: 0;
2970 margin: 0;
2946 }
2971 }
2947
2972
2948 input.ui-button {
2973 input.ui-button {
2949 background: #e5e3e3 url("../images/button.png") repeat-x;
2974 background: #e5e3e3 url("../images/button.png") repeat-x;
2950 border-top: 1px solid #DDD;
2975 border-top: 1px solid #DDD;
2951 border-left: 1px solid #c6c6c6;
2976 border-left: 1px solid #c6c6c6;
2952 border-right: 1px solid #DDD;
2977 border-right: 1px solid #DDD;
2953 border-bottom: 1px solid #c6c6c6;
2978 border-bottom: 1px solid #c6c6c6;
2954 color: #515151 !important;
2979 color: #515151 !important;
2955 outline: none;
2980 outline: none;
2956 margin: 0;
2981 margin: 0;
2957 padding: 6px 12px;
2982 padding: 6px 12px;
2958 -webkit-border-radius: 4px 4px 4px 4px;
2983 -webkit-border-radius: 4px 4px 4px 4px;
2959 -khtml-border-radius: 4px 4px 4px 4px;
2984 -khtml-border-radius: 4px 4px 4px 4px;
2960 -moz-border-radius: 4px 4px 4px 4px;
2985 -moz-border-radius: 4px 4px 4px 4px;
2961 border-radius: 4px 4px 4px 4px;
2986 border-radius: 4px 4px 4px 4px;
2962 box-shadow: 0 1px 0 #ececec;
2987 box-shadow: 0 1px 0 #ececec;
2963 cursor: pointer;
2988 cursor: pointer;
2964 }
2989 }
2965
2990
2966 input.ui-button:hover {
2991 input.ui-button:hover {
2967 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2992 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2968 border-top: 1px solid #ccc;
2993 border-top: 1px solid #ccc;
2969 border-left: 1px solid #bebebe;
2994 border-left: 1px solid #bebebe;
2970 border-right: 1px solid #b1b1b1;
2995 border-right: 1px solid #b1b1b1;
2971 border-bottom: 1px solid #afafaf;
2996 border-bottom: 1px solid #afafaf;
2972 }
2997 }
2973
2998
2974 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
2999 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
2975 {
3000 {
2976 display: inline;
3001 display: inline;
2977 }
3002 }
2978
3003
2979 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3004 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
2980 {
3005 {
2981 margin: 10px 0 0 200px;
3006 margin: 10px 0 0 200px;
2982 padding: 0;
3007 padding: 0;
2983 }
3008 }
2984
3009
2985 #content div.box-left div.form div.fields div.buttons,#content div.box-right div.form div.fields div.buttons,div.box-left div.form div.fields div.buttons,div.box-right div.form div.fields div.buttons
3010 #content div.box-left div.form div.fields div.buttons,#content div.box-right div.form div.fields div.buttons,div.box-left div.form div.fields div.buttons,div.box-right div.form div.fields div.buttons
2986 {
3011 {
2987 margin: 10px 0 0;
3012 margin: 10px 0 0;
2988 }
3013 }
2989
3014
2990 #content div.box table td.user,#content div.box table td.address {
3015 #content div.box table td.user,#content div.box table td.address {
2991 width: 10%;
3016 width: 10%;
2992 text-align: center;
3017 text-align: center;
2993 }
3018 }
2994
3019
2995 #content div.box div.action div.button,#login div.form div.fields div.field div.input div.link,#register div.form div.fields div.field div.input div.link
3020 #content div.box div.action div.button,#login div.form div.fields div.field div.input div.link,#register div.form div.fields div.field div.input div.link
2996 {
3021 {
2997 text-align: right;
3022 text-align: right;
2998 margin: 6px 0 0;
3023 margin: 6px 0 0;
2999 padding: 0;
3024 padding: 0;
3000 }
3025 }
3001
3026
3002 #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover
3027 #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover
3003 {
3028 {
3004 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3029 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3005 border-top: 1px solid #ccc;
3030 border-top: 1px solid #ccc;
3006 border-left: 1px solid #bebebe;
3031 border-left: 1px solid #bebebe;
3007 border-right: 1px solid #b1b1b1;
3032 border-right: 1px solid #b1b1b1;
3008 border-bottom: 1px solid #afafaf;
3033 border-bottom: 1px solid #afafaf;
3009 color: #515151;
3034 color: #515151;
3010 margin: 0;
3035 margin: 0;
3011 padding: 6px 12px;
3036 padding: 6px 12px;
3012 }
3037 }
3013
3038
3014 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3039 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3015 {
3040 {
3016 text-align: left;
3041 text-align: left;
3017 float: left;
3042 float: left;
3018 margin: 0;
3043 margin: 0;
3019 padding: 0;
3044 padding: 0;
3020 }
3045 }
3021
3046
3022 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3047 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3023 {
3048 {
3024 height: 1%;
3049 height: 1%;
3025 display: block;
3050 display: block;
3026 float: left;
3051 float: left;
3027 background: #ebebeb url("../images/pager.png") repeat-x;
3052 background: #ebebeb url("../images/pager.png") repeat-x;
3028 border-top: 1px solid #dedede;
3053 border-top: 1px solid #dedede;
3029 border-left: 1px solid #cfcfcf;
3054 border-left: 1px solid #cfcfcf;
3030 border-right: 1px solid #c4c4c4;
3055 border-right: 1px solid #c4c4c4;
3031 border-bottom: 1px solid #c4c4c4;
3056 border-bottom: 1px solid #c4c4c4;
3032 color: #4A4A4A;
3057 color: #4A4A4A;
3033 font-weight: 700;
3058 font-weight: 700;
3034 margin: 0;
3059 margin: 0;
3035 padding: 6px 8px;
3060 padding: 6px 8px;
3036 }
3061 }
3037
3062
3038 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3063 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3039 {
3064 {
3040 color: #B4B4B4;
3065 color: #B4B4B4;
3041 padding: 6px;
3066 padding: 6px;
3042 }
3067 }
3043
3068
3044 #login,#register {
3069 #login,#register {
3045 width: 520px;
3070 width: 520px;
3046 margin: 10% auto 0;
3071 margin: 10% auto 0;
3047 padding: 0;
3072 padding: 0;
3048 }
3073 }
3049
3074
3050 #login div.color,#register div.color {
3075 #login div.color,#register div.color {
3051 clear: both;
3076 clear: both;
3052 overflow: hidden;
3077 overflow: hidden;
3053 background: #FFF;
3078 background: #FFF;
3054 margin: 10px auto 0;
3079 margin: 10px auto 0;
3055 padding: 3px 3px 3px 0;
3080 padding: 3px 3px 3px 0;
3056 }
3081 }
3057
3082
3058 #login div.color a,#register div.color a {
3083 #login div.color a,#register div.color a {
3059 width: 20px;
3084 width: 20px;
3060 height: 20px;
3085 height: 20px;
3061 display: block;
3086 display: block;
3062 float: left;
3087 float: left;
3063 margin: 0 0 0 3px;
3088 margin: 0 0 0 3px;
3064 padding: 0;
3089 padding: 0;
3065 }
3090 }
3066
3091
3067 #login div.title h5,#register div.title h5 {
3092 #login div.title h5,#register div.title h5 {
3068 color: #fff;
3093 color: #fff;
3069 margin: 10px;
3094 margin: 10px;
3070 padding: 0;
3095 padding: 0;
3071 }
3096 }
3072
3097
3073 #login div.form div.fields div.field,#register div.form div.fields div.field
3098 #login div.form div.fields div.field,#register div.form div.fields div.field
3074 {
3099 {
3075 clear: both;
3100 clear: both;
3076 overflow: hidden;
3101 overflow: hidden;
3077 margin: 0;
3102 margin: 0;
3078 padding: 0 0 10px;
3103 padding: 0 0 10px;
3079 }
3104 }
3080
3105
3081 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3106 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3082 {
3107 {
3083 height: 1%;
3108 height: 1%;
3084 display: block;
3109 display: block;
3085 color: red;
3110 color: red;
3086 margin: 8px 0 0;
3111 margin: 8px 0 0;
3087 padding: 0;
3112 padding: 0;
3088 max-width: 320px;
3113 max-width: 320px;
3089 }
3114 }
3090
3115
3091 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3116 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3092 {
3117 {
3093 color: #000;
3118 color: #000;
3094 font-weight: 700;
3119 font-weight: 700;
3095 }
3120 }
3096
3121
3097 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3122 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3098 {
3123 {
3099 float: left;
3124 float: left;
3100 margin: 0;
3125 margin: 0;
3101 padding: 0;
3126 padding: 0;
3102 }
3127 }
3103
3128
3104 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3129 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3105 {
3130 {
3106 margin: 0 0 0 184px;
3131 margin: 0 0 0 184px;
3107 padding: 0;
3132 padding: 0;
3108 }
3133 }
3109
3134
3110 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3135 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3111 {
3136 {
3112 color: #565656;
3137 color: #565656;
3113 font-weight: 700;
3138 font-weight: 700;
3114 }
3139 }
3115
3140
3116 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3141 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3117 {
3142 {
3118 color: #000;
3143 color: #000;
3119 font-size: 1em;
3144 font-size: 1em;
3120 font-weight: 700;
3145 font-weight: 700;
3121 margin: 0;
3146 margin: 0;
3122 }
3147 }
3123
3148
3124 #changeset_content .container .wrapper,#graph_content .container .wrapper
3149 #changeset_content .container .wrapper,#graph_content .container .wrapper
3125 {
3150 {
3126 width: 600px;
3151 width: 600px;
3127 }
3152 }
3128
3153
3129 #changeset_content .container .left,#graph_content .container .left {
3154 #changeset_content .container .left,#graph_content .container .left {
3130 float: left;
3155 float: left;
3131 width: 70%;
3156 width: 70%;
3132 padding-left: 5px;
3157 padding-left: 5px;
3133 }
3158 }
3134
3159
3135 #changeset_content .container .left .date,.ac .match {
3160 #changeset_content .container .left .date,.ac .match {
3136 font-weight: 700;
3161 font-weight: 700;
3137 padding-top: 5px;
3162 padding-top: 5px;
3138 padding-bottom: 5px;
3163 padding-bottom: 5px;
3139 }
3164 }
3140
3165
3141 div#legend_container table td,div#legend_choices table td {
3166 div#legend_container table td,div#legend_choices table td {
3142 border: none !important;
3167 border: none !important;
3143 height: 20px !important;
3168 height: 20px !important;
3144 padding: 0 !important;
3169 padding: 0 !important;
3145 }
3170 }
3146
3171
3147 .q_filter_box {
3172 .q_filter_box {
3148 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3173 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3149 -webkit-border-radius: 4px;
3174 -webkit-border-radius: 4px;
3150 -moz-border-radius: 4px;
3175 -moz-border-radius: 4px;
3151 border-radius: 4px;
3176 border-radius: 4px;
3152 border: 0 none;
3177 border: 0 none;
3153 color: #AAAAAA;
3178 color: #AAAAAA;
3154 margin-bottom: -4px;
3179 margin-bottom: -4px;
3155 margin-top: -4px;
3180 margin-top: -4px;
3156 padding-left: 3px;
3181 padding-left: 3px;
3157 }
3182 }
3158
3183
3159 #node_filter {
3184 #node_filter {
3160 border: 0px solid #545454;
3185 border: 0px solid #545454;
3161 color: #AAAAAA;
3186 color: #AAAAAA;
3162 padding-left: 3px;
3187 padding-left: 3px;
3163 }
3188 }
3164
3189
3165 /*README STYLE*/
3190 /*README STYLE*/
3166
3191
3167 div.readme {
3192 div.readme {
3168 padding:0px;
3193 padding:0px;
3169 }
3194 }
3170
3195
3171 div.readme h2 {
3196 div.readme h2 {
3172 font-weight: normal;
3197 font-weight: normal;
3173 }
3198 }
3174
3199
3175 div.readme .readme_box {
3200 div.readme .readme_box {
3176 background-color: #fafafa;
3201 background-color: #fafafa;
3177 }
3202 }
3178
3203
3179 div.readme .readme_box {
3204 div.readme .readme_box {
3180 clear:both;
3205 clear:both;
3181 overflow:hidden;
3206 overflow:hidden;
3182 margin:0;
3207 margin:0;
3183 padding:0 20px 10px;
3208 padding:0 20px 10px;
3184 }
3209 }
3185
3210
3186 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3211 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3187 border-bottom: 0 !important;
3212 border-bottom: 0 !important;
3188 margin: 0 !important;
3213 margin: 0 !important;
3189 padding: 0 !important;
3214 padding: 0 !important;
3190 line-height: 1.5em !important;
3215 line-height: 1.5em !important;
3191 }
3216 }
3192
3217
3193
3218
3194 div.readme .readme_box h1:first-child {
3219 div.readme .readme_box h1:first-child {
3195 padding-top: .25em !important;
3220 padding-top: .25em !important;
3196 }
3221 }
3197
3222
3198 div.readme .readme_box h2, div.readme .readme_box h3 {
3223 div.readme .readme_box h2, div.readme .readme_box h3 {
3199 margin: 1em 0 !important;
3224 margin: 1em 0 !important;
3200 }
3225 }
3201
3226
3202 div.readme .readme_box h2 {
3227 div.readme .readme_box h2 {
3203 margin-top: 1.5em !important;
3228 margin-top: 1.5em !important;
3204 border-top: 4px solid #e0e0e0 !important;
3229 border-top: 4px solid #e0e0e0 !important;
3205 padding-top: .5em !important;
3230 padding-top: .5em !important;
3206 }
3231 }
3207
3232
3208 div.readme .readme_box p {
3233 div.readme .readme_box p {
3209 color: black !important;
3234 color: black !important;
3210 margin: 1em 0 !important;
3235 margin: 1em 0 !important;
3211 line-height: 1.5em !important;
3236 line-height: 1.5em !important;
3212 }
3237 }
3213
3238
3214 div.readme .readme_box ul {
3239 div.readme .readme_box ul {
3215 list-style: disc !important;
3240 list-style: disc !important;
3216 margin: 1em 0 1em 2em !important;
3241 margin: 1em 0 1em 2em !important;
3217 }
3242 }
3218
3243
3219 div.readme .readme_box ol {
3244 div.readme .readme_box ol {
3220 list-style: decimal;
3245 list-style: decimal;
3221 margin: 1em 0 1em 2em !important;
3246 margin: 1em 0 1em 2em !important;
3222 }
3247 }
3223
3248
3224 div.readme .readme_box pre, code {
3249 div.readme .readme_box pre, code {
3225 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3250 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3226 }
3251 }
3227
3252
3228 div.readme .readme_box code {
3253 div.readme .readme_box code {
3229 font-size: 12px !important;
3254 font-size: 12px !important;
3230 background-color: ghostWhite !important;
3255 background-color: ghostWhite !important;
3231 color: #444 !important;
3256 color: #444 !important;
3232 padding: 0 .2em !important;
3257 padding: 0 .2em !important;
3233 border: 1px solid #dedede !important;
3258 border: 1px solid #dedede !important;
3234 }
3259 }
3235
3260
3236 div.readme .readme_box pre code {
3261 div.readme .readme_box pre code {
3237 padding: 0 !important;
3262 padding: 0 !important;
3238 font-size: 12px !important;
3263 font-size: 12px !important;
3239 background-color: #eee !important;
3264 background-color: #eee !important;
3240 border: none !important;
3265 border: none !important;
3241 }
3266 }
3242
3267
3243 div.readme .readme_box pre {
3268 div.readme .readme_box pre {
3244 margin: 1em 0;
3269 margin: 1em 0;
3245 font-size: 12px;
3270 font-size: 12px;
3246 background-color: #eee;
3271 background-color: #eee;
3247 border: 1px solid #ddd;
3272 border: 1px solid #ddd;
3248 padding: 5px;
3273 padding: 5px;
3249 color: #444;
3274 color: #444;
3250 overflow: auto;
3275 overflow: auto;
3251 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3276 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3252 -webkit-border-radius: 3px;
3277 -webkit-border-radius: 3px;
3253 -moz-border-radius: 3px;
3278 -moz-border-radius: 3px;
3254 border-radius: 3px;
3279 border-radius: 3px;
3255 }
3280 }
3256
3281
3257
3282
3258 /** RST STYLE **/
3283 /** RST STYLE **/
3259
3284
3260
3285
3261 div.rst-block {
3286 div.rst-block {
3262 padding:0px;
3287 padding:0px;
3263 }
3288 }
3264
3289
3265 div.rst-block h2 {
3290 div.rst-block h2 {
3266 font-weight: normal;
3291 font-weight: normal;
3267 }
3292 }
3268
3293
3269 div.rst-block {
3294 div.rst-block {
3270 background-color: #fafafa;
3295 background-color: #fafafa;
3271 }
3296 }
3272
3297
3273 div.rst-block {
3298 div.rst-block {
3274 clear:both;
3299 clear:both;
3275 overflow:hidden;
3300 overflow:hidden;
3276 margin:0;
3301 margin:0;
3277 padding:0 20px 10px;
3302 padding:0 20px 10px;
3278 }
3303 }
3279
3304
3280 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3305 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3281 border-bottom: 0 !important;
3306 border-bottom: 0 !important;
3282 margin: 0 !important;
3307 margin: 0 !important;
3283 padding: 0 !important;
3308 padding: 0 !important;
3284 line-height: 1.5em !important;
3309 line-height: 1.5em !important;
3285 }
3310 }
3286
3311
3287
3312
3288 div.rst-block h1:first-child {
3313 div.rst-block h1:first-child {
3289 padding-top: .25em !important;
3314 padding-top: .25em !important;
3290 }
3315 }
3291
3316
3292 div.rst-block h2, div.rst-block h3 {
3317 div.rst-block h2, div.rst-block h3 {
3293 margin: 1em 0 !important;
3318 margin: 1em 0 !important;
3294 }
3319 }
3295
3320
3296 div.rst-block h2 {
3321 div.rst-block h2 {
3297 margin-top: 1.5em !important;
3322 margin-top: 1.5em !important;
3298 border-top: 4px solid #e0e0e0 !important;
3323 border-top: 4px solid #e0e0e0 !important;
3299 padding-top: .5em !important;
3324 padding-top: .5em !important;
3300 }
3325 }
3301
3326
3302 div.rst-block p {
3327 div.rst-block p {
3303 color: black !important;
3328 color: black !important;
3304 margin: 1em 0 !important;
3329 margin: 1em 0 !important;
3305 line-height: 1.5em !important;
3330 line-height: 1.5em !important;
3306 }
3331 }
3307
3332
3308 div.rst-block ul {
3333 div.rst-block ul {
3309 list-style: disc !important;
3334 list-style: disc !important;
3310 margin: 1em 0 1em 2em !important;
3335 margin: 1em 0 1em 2em !important;
3311 }
3336 }
3312
3337
3313 div.rst-block ol {
3338 div.rst-block ol {
3314 list-style: decimal;
3339 list-style: decimal;
3315 margin: 1em 0 1em 2em !important;
3340 margin: 1em 0 1em 2em !important;
3316 }
3341 }
3317
3342
3318 div.rst-block pre, code {
3343 div.rst-block pre, code {
3319 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3344 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3320 }
3345 }
3321
3346
3322 div.rst-block code {
3347 div.rst-block code {
3323 font-size: 12px !important;
3348 font-size: 12px !important;
3324 background-color: ghostWhite !important;
3349 background-color: ghostWhite !important;
3325 color: #444 !important;
3350 color: #444 !important;
3326 padding: 0 .2em !important;
3351 padding: 0 .2em !important;
3327 border: 1px solid #dedede !important;
3352 border: 1px solid #dedede !important;
3328 }
3353 }
3329
3354
3330 div.rst-block pre code {
3355 div.rst-block pre code {
3331 padding: 0 !important;
3356 padding: 0 !important;
3332 font-size: 12px !important;
3357 font-size: 12px !important;
3333 background-color: #eee !important;
3358 background-color: #eee !important;
3334 border: none !important;
3359 border: none !important;
3335 }
3360 }
3336
3361
3337 div.rst-block pre {
3362 div.rst-block pre {
3338 margin: 1em 0;
3363 margin: 1em 0;
3339 font-size: 12px;
3364 font-size: 12px;
3340 background-color: #eee;
3365 background-color: #eee;
3341 border: 1px solid #ddd;
3366 border: 1px solid #ddd;
3342 padding: 5px;
3367 padding: 5px;
3343 color: #444;
3368 color: #444;
3344 overflow: auto;
3369 overflow: auto;
3345 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3370 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3346 -webkit-border-radius: 3px;
3371 -webkit-border-radius: 3px;
3347 -moz-border-radius: 3px;
3372 -moz-border-radius: 3px;
3348 border-radius: 3px;
3373 border-radius: 3px;
3349 }
3374 }
3350
3375
3351
3376
3352 /** comment main **/
3377 /** comment main **/
3353 .comments {
3378 .comments {
3354 padding:10px 20px;
3379 padding:10px 20px;
3355 }
3380 }
3356
3381
3357 .comments .comment {
3382 .comments .comment {
3358 border: 1px solid #ddd;
3383 border: 1px solid #ddd;
3359 margin-top: 10px;
3384 margin-top: 10px;
3360 -webkit-border-radius: 4px;
3385 -webkit-border-radius: 4px;
3361 -moz-border-radius: 4px;
3386 -moz-border-radius: 4px;
3362 border-radius: 4px;
3387 border-radius: 4px;
3363 }
3388 }
3364
3389
3365 .comments .comment .meta {
3390 .comments .comment .meta {
3366 background: #f8f8f8;
3391 background: #f8f8f8;
3367 padding: 6px;
3392 padding: 6px;
3368 border-bottom: 1px solid #ddd;
3393 border-bottom: 1px solid #ddd;
3369 }
3394 }
3370
3395
3371 .comments .comment .meta img {
3396 .comments .comment .meta img {
3372 vertical-align: middle;
3397 vertical-align: middle;
3373 }
3398 }
3374
3399
3375 .comments .comment .meta .user {
3400 .comments .comment .meta .user {
3376 font-weight: bold;
3401 font-weight: bold;
3377 }
3402 }
3378
3403
3379 .comments .comment .meta .date {
3404 .comments .comment .meta .date {
3380 float: right;
3405 float: right;
3381 }
3406 }
3382
3407
3383 .comments .comment .text {
3408 .comments .comment .text {
3384 padding: 8px 6px 6px 14px;
3409 padding: 8px 6px 6px 14px;
3385 background-color: #FAFAFA;
3410 background-color: #FAFAFA;
3386 }
3411 }
3387
3412
3388 .comments .comments-number{
3413 .comments .comments-number{
3389 padding:0px 0px 10px 0px;
3414 padding:0px 0px 10px 0px;
3390 font-weight: bold;
3415 font-weight: bold;
3391 color: #666;
3416 color: #666;
3392 font-size: 16px;
3417 font-size: 16px;
3393 }
3418 }
3394
3419
3395 /** comment form **/
3420 /** comment form **/
3396
3421
3397 .comment-form .clearfix{
3422 .comment-form .clearfix{
3398 background: #EEE;
3423 background: #EEE;
3399 -webkit-border-radius: 4px;
3424 -webkit-border-radius: 4px;
3400 -moz-border-radius: 4px;
3425 -moz-border-radius: 4px;
3401 border-radius: 4px;
3426 border-radius: 4px;
3402 padding: 10px;
3427 padding: 10px;
3403 }
3428 }
3404
3429
3405 div.comment-form {
3430 div.comment-form {
3406 margin-top: 20px;
3431 margin-top: 20px;
3407 }
3432 }
3408
3433
3409 .comment-form strong {
3434 .comment-form strong {
3410 display: block;
3435 display: block;
3411 margin-bottom: 15px;
3436 margin-bottom: 15px;
3412 }
3437 }
3413
3438
3414 .comment-form textarea {
3439 .comment-form textarea {
3415 width: 100%;
3440 width: 100%;
3416 height: 100px;
3441 height: 100px;
3417 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3442 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3418 }
3443 }
3419
3444
3420 form.comment-form {
3445 form.comment-form {
3421 margin-top: 10px;
3446 margin-top: 10px;
3422 margin-left: 10px;
3447 margin-left: 10px;
3423 }
3448 }
3424
3449
3425 .comment-form-submit {
3450 .comment-form-submit {
3426 margin-top: 5px;
3451 margin-top: 5px;
3427 margin-left: 525px;
3452 margin-left: 525px;
3428 }
3453 }
3429
3454
3430 .file-comments {
3455 .file-comments {
3431 display: none;
3456 display: none;
3432 }
3457 }
3433
3458
3434 .comment-form .comment {
3459 .comment-form .comment {
3435 margin-left: 10px;
3460 margin-left: 10px;
3436 }
3461 }
3437
3462
3438 .comment-form .comment-help{
3463 .comment-form .comment-help{
3439 padding: 0px 0px 5px 0px;
3464 padding: 0px 0px 5px 0px;
3440 color: #666;
3465 color: #666;
3441 }
3466 }
3442
3467
3443 .comment-form .comment-button{
3468 .comment-form .comment-button{
3444 padding-top:5px;
3469 padding-top:5px;
3445 }
3470 }
3446
3471
3447 .add-another-button {
3472 .add-another-button {
3448 margin-left: 10px;
3473 margin-left: 10px;
3449 margin-top: 10px;
3474 margin-top: 10px;
3450 margin-bottom: 10px;
3475 margin-bottom: 10px;
3451 }
3476 }
3452
3477
3453 .comment .buttons {
3478 .comment .buttons {
3454 position: absolute;
3479 position: absolute;
3455 right:40px;
3480 right:40px;
3456 }
3481 }
3457
3482
3458
3483
3459 .show-inline-comments{
3484 .show-inline-comments{
3460 position: relative;
3485 position: relative;
3461 top:1px
3486 top:1px
3462 }
3487 }
3463
3488
3464 /** comment inline form **/
3489 /** comment inline form **/
3465
3490
3466 .comment-inline-form .clearfix{
3491 .comment-inline-form .clearfix{
3467 background: #EEE;
3492 background: #EEE;
3468 -webkit-border-radius: 4px;
3493 -webkit-border-radius: 4px;
3469 -moz-border-radius: 4px;
3494 -moz-border-radius: 4px;
3470 border-radius: 4px;
3495 border-radius: 4px;
3471 padding: 5px;
3496 padding: 5px;
3472 }
3497 }
3473
3498
3474 div.comment-inline-form {
3499 div.comment-inline-form {
3475 margin-top: 5px;
3500 margin-top: 5px;
3476 padding:2px 6px 8px 6px;
3501 padding:2px 6px 8px 6px;
3477 }
3502 }
3478
3503
3479 .comment-inline-form strong {
3504 .comment-inline-form strong {
3480 display: block;
3505 display: block;
3481 margin-bottom: 15px;
3506 margin-bottom: 15px;
3482 }
3507 }
3483
3508
3484 .comment-inline-form textarea {
3509 .comment-inline-form textarea {
3485 width: 100%;
3510 width: 100%;
3486 height: 100px;
3511 height: 100px;
3487 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3512 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3488 }
3513 }
3489
3514
3490 form.comment-inline-form {
3515 form.comment-inline-form {
3491 margin-top: 10px;
3516 margin-top: 10px;
3492 margin-left: 10px;
3517 margin-left: 10px;
3493 }
3518 }
3494
3519
3495 .comment-inline-form-submit {
3520 .comment-inline-form-submit {
3496 margin-top: 5px;
3521 margin-top: 5px;
3497 margin-left: 525px;
3522 margin-left: 525px;
3498 }
3523 }
3499
3524
3500 .file-comments {
3525 .file-comments {
3501 display: none;
3526 display: none;
3502 }
3527 }
3503
3528
3504 .comment-inline-form .comment {
3529 .comment-inline-form .comment {
3505 margin-left: 10px;
3530 margin-left: 10px;
3506 }
3531 }
3507
3532
3508 .comment-inline-form .comment-help{
3533 .comment-inline-form .comment-help{
3509 padding: 0px 0px 2px 0px;
3534 padding: 0px 0px 2px 0px;
3510 color: #666666;
3535 color: #666666;
3511 font-size: 10px;
3536 font-size: 10px;
3512 }
3537 }
3513
3538
3514 .comment-inline-form .comment-button{
3539 .comment-inline-form .comment-button{
3515 padding-top:5px;
3540 padding-top:5px;
3516 }
3541 }
3517
3542
3518 /** comment inline **/
3543 /** comment inline **/
3519 .inline-comments {
3544 .inline-comments {
3520 padding:10px 20px;
3545 padding:10px 20px;
3521 }
3546 }
3522
3547
3523 .inline-comments div.rst-block {
3548 .inline-comments div.rst-block {
3524 clear:both;
3549 clear:both;
3525 overflow:hidden;
3550 overflow:hidden;
3526 margin:0;
3551 margin:0;
3527 padding:0 20px 0px;
3552 padding:0 20px 0px;
3528 }
3553 }
3529 .inline-comments .comment {
3554 .inline-comments .comment {
3530 border: 1px solid #ddd;
3555 border: 1px solid #ddd;
3531 -webkit-border-radius: 4px;
3556 -webkit-border-radius: 4px;
3532 -moz-border-radius: 4px;
3557 -moz-border-radius: 4px;
3533 border-radius: 4px;
3558 border-radius: 4px;
3534 margin: 3px 3px 5px 5px;
3559 margin: 3px 3px 5px 5px;
3535 }
3560 }
3536
3561
3537 .inline-comments .comment .meta {
3562 .inline-comments .comment .meta {
3538 background: #f8f8f8;
3563 background: #f8f8f8;
3539 padding: 6px;
3564 padding: 6px;
3540 border-bottom: 1px solid #ddd;
3565 border-bottom: 1px solid #ddd;
3541 }
3566 }
3542
3567
3543 .inline-comments .comment .meta img {
3568 .inline-comments .comment .meta img {
3544 vertical-align: middle;
3569 vertical-align: middle;
3545 }
3570 }
3546
3571
3547 .inline-comments .comment .meta .user {
3572 .inline-comments .comment .meta .user {
3548 font-weight: bold;
3573 font-weight: bold;
3549 }
3574 }
3550
3575
3551 .inline-comments .comment .meta .date {
3576 .inline-comments .comment .meta .date {
3552 float: right;
3577 float: right;
3553 }
3578 }
3554
3579
3555 .inline-comments .comment .text {
3580 .inline-comments .comment .text {
3556 padding: 8px 6px 6px 14px;
3581 padding: 8px 6px 6px 14px;
3557 background-color: #FAFAFA;
3582 background-color: #FAFAFA;
3558 }
3583 }
3559
3584
3560 .inline-comments .comments-number{
3585 .inline-comments .comments-number{
3561 padding:0px 0px 10px 0px;
3586 padding:0px 0px 10px 0px;
3562 font-weight: bold;
3587 font-weight: bold;
3563 color: #666;
3588 color: #666;
3564 font-size: 16px;
3589 font-size: 16px;
3565 }
3590 }
3566 .inline-comments-button .add-comment{
3591 .inline-comments-button .add-comment{
3567 margin:10px 5px !important;
3592 margin:10px 5px !important;
3568 }
3593 }
3569 .notifications{
3594 .notifications{
3570 width:22px;
3595 width:22px;
3571 padding:2px;
3596 padding:2px;
3572 float:right;
3597 float:right;
3573 -webkit-border-radius: 4px;
3598 -webkit-border-radius: 4px;
3574 -moz-border-radius: 4px;
3599 -moz-border-radius: 4px;
3575 border-radius: 4px;
3600 border-radius: 4px;
3576 text-align: center;
3601 text-align: center;
3577 margin: 0px -10px 0px 5px;
3602 margin: 0px -10px 0px 5px;
3578 background-color: #DEDEDE;
3603 background-color: #DEDEDE;
3579 }
3604 }
3580 .notifications a{
3605 .notifications a{
3581 color:#888 !important;
3606 color:#888 !important;
3582 display: block;
3607 display: block;
3583 font-size: 10px
3608 font-size: 10px
3584 }
3609 }
3585 .notifications a:hover{
3610 .notifications a:hover{
3586 text-decoration: none !important;
3611 text-decoration: none !important;
3587 }
3612 }
3588 .notification-header{
3613 .notification-header{
3589
3614
3590 }
3615 }
3591 .notification-header .desc{
3616 .notification-header .desc{
3592 font-size: 16px;
3617 font-size: 16px;
3593 height: 24px;
3618 height: 24px;
3594 padding-top: 6px;
3619 padding-top: 6px;
3595 float: left
3620 float: left
3596 }
3621 }
3597 .notification-list .container.unread{
3622 .notification-list .container.unread{
3598
3623
3599 }
3624 }
3600 .notification-header .desc.unread{
3625 .notification-header .desc.unread{
3601 font-weight: bold;
3626 font-weight: bold;
3602 font-size: 17px;
3627 font-size: 17px;
3603 }
3628 }
3604
3629
3605 .notification-header .delete-notifications{
3630 .notification-header .delete-notifications{
3606 float: right;
3631 float: right;
3607 padding-top: 8px;
3632 padding-top: 8px;
3608 cursor: pointer;
3633 cursor: pointer;
3609 }
3634 }
3610 .notification-subject{
3635 .notification-subject{
3611 clear:both;
3636 clear:both;
3612 border-bottom: 1px solid #eee;
3637 border-bottom: 1px solid #eee;
3613 padding:5px 0px 5px 38px;
3638 padding:5px 0px 5px 38px;
3614 } No newline at end of file
3639 }
@@ -1,214 +1,214 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Settings administration')} - ${c.rhodecode_name}
5 ${_('Settings administration')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15
15
16 <%def name="main()">
16 <%def name="main()">
17 <div class="box">
17 <div class="box">
18 <!-- box / title -->
18 <!-- box / title -->
19 <div class="title">
19 <div class="title">
20 ${self.breadcrumbs()}
20 ${self.breadcrumbs()}
21 </div>
21 </div>
22 <!-- end box / title -->
22 <!-- end box / title -->
23
23
24 <h3>${_('Remap and rescan repositories')}</h3>
24 <h3>${_('Remap and rescan repositories')}</h3>
25 ${h.form(url('admin_setting', setting_id='mapping'),method='put')}
25 ${h.form(url('admin_setting', setting_id='mapping'),method='put')}
26 <div class="form">
26 <div class="form">
27 <!-- fields -->
27 <!-- fields -->
28
28
29 <div class="fields">
29 <div class="fields">
30 <div class="field">
30 <div class="field">
31 <div class="label label-checkbox">
31 <div class="label label-checkbox">
32 <label for="destroy">${_('rescan option')}:</label>
32 <label for="destroy">${_('rescan option')}:</label>
33 </div>
33 </div>
34 <div class="checkboxes">
34 <div class="checkboxes">
35 <div class="checkbox">
35 <div class="checkbox">
36 ${h.checkbox('destroy',True)}
36 ${h.checkbox('destroy',True)}
37 <label for="destroy">
37 <label for="destroy">
38 <span class="tooltip" title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
38 <span class="tooltip" title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
39 ${_('destroy old data')}</span> </label>
39 ${_('destroy old data')}</span> </label>
40 </div>
40 </div>
41 </div>
41 </div>
42 </div>
42 </div>
43
43
44 <div class="buttons">
44 <div class="buttons">
45 ${h.submit('rescan',_('Rescan repositories'),class_="ui-button")}
45 ${h.submit('rescan',_('Rescan repositories'),class_="ui-button")}
46 </div>
46 </div>
47 </div>
47 </div>
48 </div>
48 </div>
49 ${h.end_form()}
49 ${h.end_form()}
50
50
51 <h3>${_('Whoosh indexing')}</h3>
51 <h3>${_('Whoosh indexing')}</h3>
52 ${h.form(url('admin_setting', setting_id='whoosh'),method='put')}
52 ${h.form(url('admin_setting', setting_id='whoosh'),method='put')}
53 <div class="form">
53 <div class="form">
54 <!-- fields -->
54 <!-- fields -->
55
55
56 <div class="fields">
56 <div class="fields">
57 <div class="field">
57 <div class="field">
58 <div class="label label-checkbox">
58 <div class="label label-checkbox">
59 <label>${_('index build option')}:</label>
59 <label>${_('index build option')}:</label>
60 </div>
60 </div>
61 <div class="checkboxes">
61 <div class="checkboxes">
62 <div class="checkbox">
62 <div class="checkbox">
63 ${h.checkbox('full_index',True)}
63 ${h.checkbox('full_index',True)}
64 <label for="full_index">${_('build from scratch')}</label>
64 <label for="full_index">${_('build from scratch')}</label>
65 </div>
65 </div>
66 </div>
66 </div>
67 </div>
67 </div>
68
68
69 <div class="buttons">
69 <div class="buttons">
70 ${h.submit('reindex',_('Reindex'),class_="ui-button")}
70 ${h.submit('reindex',_('Reindex'),class_="ui-button")}
71 </div>
71 </div>
72 </div>
72 </div>
73 </div>
73 </div>
74 ${h.end_form()}
74 ${h.end_form()}
75
75
76 <h3>${_('Global application settings')}</h3>
76 <h3>${_('Global application settings')}</h3>
77 ${h.form(url('admin_setting', setting_id='global'),method='put')}
77 ${h.form(url('admin_setting', setting_id='global'),method='put')}
78 <div class="form">
78 <div class="form">
79 <!-- fields -->
79 <!-- fields -->
80
80
81 <div class="fields">
81 <div class="fields">
82
82
83 <div class="field">
83 <div class="field">
84 <div class="label">
84 <div class="label">
85 <label for="rhodecode_title">${_('Application name')}:</label>
85 <label for="rhodecode_title">${_('Application name')}:</label>
86 </div>
86 </div>
87 <div class="input">
87 <div class="input">
88 ${h.text('rhodecode_title',size=30)}
88 ${h.text('rhodecode_title',size=30)}
89 </div>
89 </div>
90 </div>
90 </div>
91
91
92 <div class="field">
92 <div class="field">
93 <div class="label">
93 <div class="label">
94 <label for="rhodecode_realm">${_('Realm text')}:</label>
94 <label for="rhodecode_realm">${_('Realm text')}:</label>
95 </div>
95 </div>
96 <div class="input">
96 <div class="input">
97 ${h.text('rhodecode_realm',size=30)}
97 ${h.text('rhodecode_realm',size=30)}
98 </div>
98 </div>
99 </div>
99 </div>
100
100
101 <div class="field">
101 <div class="field">
102 <div class="label">
102 <div class="label">
103 <label for="rhodecode_ga_code">${_('GA code')}:</label>
103 <label for="rhodecode_ga_code">${_('GA code')}:</label>
104 </div>
104 </div>
105 <div class="input">
105 <div class="input">
106 ${h.text('rhodecode_ga_code',size=30)}
106 ${h.text('rhodecode_ga_code',size=30)}
107 </div>
107 </div>
108 </div>
108 </div>
109
109
110 <div class="buttons">
110 <div class="buttons">
111 ${h.submit('save',_('Save settings'),class_="ui-button")}
111 ${h.submit('save',_('Save settings'),class_="ui-button")}
112 ${h.reset('reset',_('Reset'),class_="ui-button")}
112 ${h.reset('reset',_('Reset'),class_="ui-button")}
113 </div>
113 </div>
114 </div>
114 </div>
115 </div>
115 </div>
116 ${h.end_form()}
116 ${h.end_form()}
117
117
118 <h3>${_('Mercurial settings')}</h3>
118 <h3>${_('Mercurial settings')}</h3>
119 ${h.form(url('admin_setting', setting_id='mercurial'),method='put')}
119 ${h.form(url('admin_setting', setting_id='mercurial'),method='put')}
120 <div class="form">
120 <div class="form">
121 <!-- fields -->
121 <!-- fields -->
122
122
123 <div class="fields">
123 <div class="fields">
124
124
125 <div class="field">
125 <div class="field">
126 <div class="label label-checkbox">
126 <div class="label label-checkbox">
127 <label>${_('Web')}:</label>
127 <label>${_('Web')}:</label>
128 </div>
128 </div>
129 <div class="checkboxes">
129 <div class="checkboxes">
130 <div class="checkbox">
130 <div class="checkbox">
131 ${h.checkbox('web_push_ssl','true')}
131 ${h.checkbox('web_push_ssl','true')}
132 <label for="web_push_ssl">${_('require ssl for pushing')}</label>
132 <label for="web_push_ssl">${_('require ssl for pushing')}</label>
133 </div>
133 </div>
134 </div>
134 </div>
135 </div>
135 </div>
136
136
137 <div class="field">
137 <div class="field">
138 <div class="label label-checkbox">
138 <div class="label label-checkbox">
139 <label>${_('Hooks')}:</label>
139 <label>${_('Hooks')}:</label>
140 </div>
140 </div>
141 <div class="checkboxes">
141 <div class="checkboxes">
142 <div class="checkbox">
142 <div class="checkbox">
143 ${h.checkbox('hooks_changegroup_update','True')}
143 ${h.checkbox('hooks_changegroup_update','True')}
144 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
144 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
145 </div>
145 </div>
146 <div class="checkbox">
146 <div class="checkbox">
147 ${h.checkbox('hooks_changegroup_repo_size','True')}
147 ${h.checkbox('hooks_changegroup_repo_size','True')}
148 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
148 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
149 </div>
149 </div>
150 <div class="checkbox">
150 <div class="checkbox">
151 ${h.checkbox('hooks_pretxnchangegroup_push_logger','True')}
151 ${h.checkbox('hooks_pretxnchangegroup_push_logger','True')}
152 <label for="hooks_pretxnchangegroup_push_logger">${_('Log user push commands')}</label>
152 <label for="hooks_pretxnchangegroup_push_logger">${_('Log user push commands')}</label>
153 </div>
153 </div>
154 <div class="checkbox">
154 <div class="checkbox">
155 ${h.checkbox('hooks_preoutgoing_pull_logger','True')}
155 ${h.checkbox('hooks_preoutgoing_pull_logger','True')}
156 <label for="hooks_preoutgoing_pull_logger">${_('Log user pull commands')}</label>
156 <label for="hooks_preoutgoing_pull_logger">${_('Log user pull commands')}</label>
157 </div>
157 </div>
158 </div>
158 </div>
159 <div class="input" style="margin-top:10px">
159 <div class="input" style="margin-top:10px">
160 ${h.link_to(_('advanced setup'),url('admin_edit_setting',setting_id='hooks'),class_="ui-button-small")}
160 ${h.link_to(_('advanced setup'),url('admin_edit_setting',setting_id='hooks'),class_="ui-btn")}
161 </div>
161 </div>
162 </div>
162 </div>
163 <div class="field">
163 <div class="field">
164 <div class="label">
164 <div class="label">
165 <label for="paths_root_path">${_('Repositories location')}:</label>
165 <label for="paths_root_path">${_('Repositories location')}:</label>
166 </div>
166 </div>
167 <div class="input">
167 <div class="input">
168 ${h.text('paths_root_path',size=30,readonly="readonly")}
168 ${h.text('paths_root_path',size=30,readonly="readonly")}
169 <span id="path_unlock" class="tooltip"
169 <span id="path_unlock" class="tooltip"
170 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
170 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
171 ${_('unlock')}</span>
171 ${_('unlock')}</span>
172 </div>
172 </div>
173 </div>
173 </div>
174
174
175 <div class="buttons">
175 <div class="buttons">
176 ${h.submit('save',_('Save settings'),class_="ui-button")}
176 ${h.submit('save',_('Save settings'),class_="ui-button")}
177 ${h.reset('reset',_('Reset'),class_="ui-button")}
177 ${h.reset('reset',_('Reset'),class_="ui-button")}
178 </div>
178 </div>
179 </div>
179 </div>
180 </div>
180 </div>
181 ${h.end_form()}
181 ${h.end_form()}
182
182
183 <script type="text/javascript">
183 <script type="text/javascript">
184 YAHOO.util.Event.onDOMReady(function(){
184 YAHOO.util.Event.onDOMReady(function(){
185 YAHOO.util.Event.addListener('path_unlock','click',function(){
185 YAHOO.util.Event.addListener('path_unlock','click',function(){
186 YAHOO.util.Dom.get('paths_root_path').removeAttribute('readonly');
186 YAHOO.util.Dom.get('paths_root_path').removeAttribute('readonly');
187 });
187 });
188 });
188 });
189 </script>
189 </script>
190
190
191 <h3>${_('Test Email')}</h3>
191 <h3>${_('Test Email')}</h3>
192 ${h.form(url('admin_setting', setting_id='email'),method='put')}
192 ${h.form(url('admin_setting', setting_id='email'),method='put')}
193 <div class="form">
193 <div class="form">
194 <!-- fields -->
194 <!-- fields -->
195
195
196 <div class="fields">
196 <div class="fields">
197 <div class="field">
197 <div class="field">
198 <div class="label">
198 <div class="label">
199 <label for="test_email">${_('Email to')}:</label>
199 <label for="test_email">${_('Email to')}:</label>
200 </div>
200 </div>
201 <div class="input">
201 <div class="input">
202 ${h.text('test_email',size=30)}
202 ${h.text('test_email',size=30)}
203 </div>
203 </div>
204 </div>
204 </div>
205
205
206 <div class="buttons">
206 <div class="buttons">
207 ${h.submit('send',_('Send'),class_="ui-button")}
207 ${h.submit('send',_('Send'),class_="ui-button")}
208 </div>
208 </div>
209 </div>
209 </div>
210 </div>
210 </div>
211 ${h.end_form()}
211 ${h.end_form()}
212
212
213 </div>
213 </div>
214 </%def>
214 </%def>
@@ -1,190 +1,190 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${_('My Account')}
9 ${_('My Account')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15
15
16 <%def name="main()">
16 <%def name="main()">
17
17
18 <div class="box box-left">
18 <div class="box box-left">
19 <!-- box / title -->
19 <!-- box / title -->
20 <div class="title">
20 <div class="title">
21 ${self.breadcrumbs()}
21 ${self.breadcrumbs()}
22 </div>
22 </div>
23 <!-- end box / title -->
23 <!-- end box / title -->
24 <div>
24 <div>
25 ${h.form(url('admin_settings_my_account_update'),method='put')}
25 ${h.form(url('admin_settings_my_account_update'),method='put')}
26 <div class="form">
26 <div class="form">
27
27
28 <div class="field">
28 <div class="field">
29 <div class="gravatar_box">
29 <div class="gravatar_box">
30 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
30 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
31 <p>
31 <p>
32 %if c.use_gravatar:
32 %if c.use_gravatar:
33 <strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
33 <strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
34 <br/>${_('Using')} ${c.user.email}
34 <br/>${_('Using')} ${c.user.email}
35 %else:
35 %else:
36 <br/>${c.user.email}
36 <br/>${c.user.email}
37 %endif
37 %endif
38 </p>
38 </p>
39 </div>
39 </div>
40 </div>
40 </div>
41 <div class="field">
41 <div class="field">
42 <div class="label">
42 <div class="label">
43 <label>${_('API key')}</label> ${c.user.api_key}
43 <label>${_('API key')}</label> ${c.user.api_key}
44 </div>
44 </div>
45 </div>
45 </div>
46 <div class="fields">
46 <div class="fields">
47 <div class="field">
47 <div class="field">
48 <div class="label">
48 <div class="label">
49 <label for="username">${_('Username')}:</label>
49 <label for="username">${_('Username')}:</label>
50 </div>
50 </div>
51 <div class="input">
51 <div class="input">
52 ${h.text('username',class_="medium")}
52 ${h.text('username',class_="medium")}
53 </div>
53 </div>
54 </div>
54 </div>
55
55
56 <div class="field">
56 <div class="field">
57 <div class="label">
57 <div class="label">
58 <label for="new_password">${_('New password')}:</label>
58 <label for="new_password">${_('New password')}:</label>
59 </div>
59 </div>
60 <div class="input">
60 <div class="input">
61 ${h.password('new_password',class_="medium",autocomplete="off")}
61 ${h.password('new_password',class_="medium",autocomplete="off")}
62 </div>
62 </div>
63 </div>
63 </div>
64
64
65 <div class="field">
65 <div class="field">
66 <div class="label">
66 <div class="label">
67 <label for="password_confirmation">${_('New password confirmation')}:</label>
67 <label for="password_confirmation">${_('New password confirmation')}:</label>
68 </div>
68 </div>
69 <div class="input">
69 <div class="input">
70 ${h.password('password_confirmation',class_="medium",autocomplete="off")}
70 ${h.password('password_confirmation',class_="medium",autocomplete="off")}
71 </div>
71 </div>
72 </div>
72 </div>
73
73
74 <div class="field">
74 <div class="field">
75 <div class="label">
75 <div class="label">
76 <label for="name">${_('First Name')}:</label>
76 <label for="name">${_('First Name')}:</label>
77 </div>
77 </div>
78 <div class="input">
78 <div class="input">
79 ${h.text('name',class_="medium")}
79 ${h.text('name',class_="medium")}
80 </div>
80 </div>
81 </div>
81 </div>
82
82
83 <div class="field">
83 <div class="field">
84 <div class="label">
84 <div class="label">
85 <label for="lastname">${_('Last Name')}:</label>
85 <label for="lastname">${_('Last Name')}:</label>
86 </div>
86 </div>
87 <div class="input">
87 <div class="input">
88 ${h.text('lastname',class_="medium")}
88 ${h.text('lastname',class_="medium")}
89 </div>
89 </div>
90 </div>
90 </div>
91
91
92 <div class="field">
92 <div class="field">
93 <div class="label">
93 <div class="label">
94 <label for="email">${_('Email')}:</label>
94 <label for="email">${_('Email')}:</label>
95 </div>
95 </div>
96 <div class="input">
96 <div class="input">
97 ${h.text('email',class_="medium")}
97 ${h.text('email',class_="medium")}
98 </div>
98 </div>
99 </div>
99 </div>
100
100
101 <div class="buttons">
101 <div class="buttons">
102 ${h.submit('save',_('Save'),class_="ui-button")}
102 ${h.submit('save',_('Save'),class_="ui-button")}
103 ${h.reset('reset',_('Reset'),class_="ui-button")}
103 ${h.reset('reset',_('Reset'),class_="ui-button")}
104 </div>
104 </div>
105 </div>
105 </div>
106 </div>
106 </div>
107 ${h.end_form()}
107 ${h.end_form()}
108 </div>
108 </div>
109 </div>
109 </div>
110
110
111 <div class="box box-right">
111 <div class="box box-right">
112 <!-- box / title -->
112 <!-- box / title -->
113 <div class="title">
113 <div class="title">
114 <h5>
114 <h5>
115 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
115 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
116 ${_('My repositories')}
116 ${_('My repositories')}
117 </h5>
117 </h5>
118 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
118 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
119 <ul class="links">
119 <ul class="links">
120 <li>
120 <li>
121 <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
121 <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
122 </li>
122 </li>
123 </ul>
123 </ul>
124 %endif
124 %endif
125 </div>
125 </div>
126 <!-- end box / title -->
126 <!-- end box / title -->
127 <div class="table">
127 <div class="table">
128 <table>
128 <table>
129 <thead>
129 <thead>
130 <tr>
130 <tr>
131 <th class="left">${_('Name')}</th>
131 <th class="left">${_('Name')}</th>
132 <th class="left">${_('revision')}</th>
132 <th class="left">${_('revision')}</th>
133 <th colspan="2" class="left">${_('action')}</th>
133 <th colspan="2" class="left">${_('action')}</th>
134 </thead>
134 </thead>
135 <tbody>
135 <tbody>
136 %if c.user_repos:
136 %if c.user_repos:
137 %for repo in c.user_repos:
137 %for repo in c.user_repos:
138 <tr>
138 <tr>
139 <td>
139 <td>
140 %if repo['dbrepo']['repo_type'] =='hg':
140 %if repo['dbrepo']['repo_type'] =='hg':
141 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
141 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
142 %elif repo['dbrepo']['repo_type'] =='git':
142 %elif repo['dbrepo']['repo_type'] =='git':
143 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
143 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
144 %else:
144 %else:
145
145
146 %endif
146 %endif
147 %if repo['dbrepo']['private']:
147 %if repo['dbrepo']['private']:
148 <img class="icon" alt="${_('private')}" src="${h.url('/images/icons/lock.png')}"/>
148 <img class="icon" alt="${_('private')}" src="${h.url('/images/icons/lock.png')}"/>
149 %else:
149 %else:
150 <img class="icon" alt="${_('public')}" src="${h.url('/images/icons/lock_open.png')}"/>
150 <img class="icon" alt="${_('public')}" src="${h.url('/images/icons/lock_open.png')}"/>
151 %endif
151 %endif
152
152
153 ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
153 ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
154 %if repo['dbrepo_fork']:
154 %if repo['dbrepo_fork']:
155 <a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
155 <a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
156 <img class="icon" alt="${_('public')}"
156 <img class="icon" alt="${_('public')}"
157 title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}"
157 title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}"
158 src="${h.url('/images/icons/arrow_divide.png')}"/></a>
158 src="${h.url('/images/icons/arrow_divide.png')}"/></a>
159 %endif
159 %endif
160 </td>
160 </td>
161 <td><span class="tooltip" title="${repo['last_change']}">${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}</span></td>
161 <td><span class="tooltip" title="${repo['last_change']}">${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}</span></td>
162 <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
162 <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
163 <td>
163 <td>
164 ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
164 ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
165 ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
165 ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
166 ${h.end_form()}
166 ${h.end_form()}
167 </td>
167 </td>
168 </tr>
168 </tr>
169 %endfor
169 %endfor
170 %else:
170 %else:
171 <div style="padding:5px 0px 10px 0px;">
171 <div style="padding:5px 0px 10px 0px;">
172 ${_('No repositories yet')}
172 ${_('No repositories yet')}
173 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
173 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
174 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-button-small")}
174 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-btn")}
175 %endif
175 %endif
176 </div>
176 </div>
177 %endif
177 %endif
178 </tbody>
178 </tbody>
179 </table>
179 </table>
180 </div>
180 </div>
181 </div>
181 </div>
182 <script type="text/javascript">
182 <script type="text/javascript">
183 var nodes = YUQ('div.table tr td a.repo_name');
183 var nodes = YUQ('div.table tr td a.repo_name');
184 var target = 'q_filter';
184 var target = 'q_filter';
185 var func = function(node){
185 var func = function(node){
186 return node.parentNode.parentNode;
186 return node.parentNode.parentNode;
187 }
187 }
188 q_filter(target,nodes,func);
188 q_filter(target,nodes,func);
189 </script>
189 </script>
190 </%def>
190 </%def>
@@ -1,33 +1,33 b''
1 %if c.repo_bookmarks:
1 %if c.repo_bookmarks:
2 <table>
2 <table>
3 <tr>
3 <tr>
4 <th class="left">${_('date')}</th>
4 <th class="left">${_('date')}</th>
5 <th class="left">${_('name')}</th>
5 <th class="left">${_('name')}</th>
6 <th class="left">${_('author')}</th>
6 <th class="left">${_('author')}</th>
7 <th class="left">${_('revision')}</th>
7 <th class="left">${_('revision')}</th>
8 <th class="left">${_('links')}</th>
8 <th class="left">${_('links')}</th>
9 </tr>
9 </tr>
10 %for cnt,book in enumerate(c.repo_bookmarks.items()):
10 %for cnt,book in enumerate(c.repo_bookmarks.items()):
11 <tr class="parity${cnt%2}">
11 <tr class="parity${cnt%2}">
12 <td><span class="tooltip" title="${h.age(book[1].date)}">
12 <td><span class="tooltip" title="${h.age(book[1].date)}">
13 ${book[1].date}</span>
13 ${book[1].date}</span>
14 </td>
14 </td>
15 <td>
15 <td>
16 <span class="logbooks">
16 <span class="logbooks">
17 <span class="bookbook">${h.link_to(book[0],
17 <span class="bookbook">${h.link_to(book[0],
18 h.url('changeset_home',repo_name=c.repo_name,revision=book[1].raw_id))}</span>
18 h.url('changeset_home',repo_name=c.repo_name,revision=book[1].raw_id))}</span>
19 </span>
19 </span>
20 </td>
20 </td>
21 <td title="${book[1].author}">${h.person(book[1].author)}</td>
21 <td title="${book[1].author}">${h.person(book[1].author)}</td>
22 <td>r${book[1].revision}:${h.short_id(book[1].raw_id)}</td>
22 <td>r${book[1].revision}:${h.short_id(book[1].raw_id)}</td>
23 <td class="nowrap">
23 <td class="nowrap">
24 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=book[1].raw_id),class_="ui-button-small xsmall")}
24 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=book[1].raw_id),class_="ui-btn xsmall")}
25 <span style="color:#515151">|</span>
25 <span style="color:#515151">|</span>
26 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=book[1].raw_id),class_="ui-button-small xsmall")}
26 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=book[1].raw_id),class_="ui-btn xsmall")}
27 </td>
27 </td>
28 </tr>
28 </tr>
29 %endfor
29 %endfor
30 </table>
30 </table>
31 %else:
31 %else:
32 ${_('There are no bookmarks yet')}
32 ${_('There are no bookmarks yet')}
33 %endif No newline at end of file
33 %endif
@@ -1,53 +1,53 b''
1 % if c.repo_branches:
1 % if c.repo_branches:
2 <table class="table_disp">
2 <table class="table_disp">
3 <tr>
3 <tr>
4 <th class="left">${_('date')}</th>
4 <th class="left">${_('date')}</th>
5 <th class="left">${_('name')}</th>
5 <th class="left">${_('name')}</th>
6 <th class="left">${_('author')}</th>
6 <th class="left">${_('author')}</th>
7 <th class="left">${_('revision')}</th>
7 <th class="left">${_('revision')}</th>
8 <th class="left">${_('links')}</th>
8 <th class="left">${_('links')}</th>
9 </tr>
9 </tr>
10 %for cnt,branch in enumerate(c.repo_branches.items()):
10 %for cnt,branch in enumerate(c.repo_branches.items()):
11 <tr class="parity${cnt%2}">
11 <tr class="parity${cnt%2}">
12 <td><span class="tooltip" title="${h.age(branch[1].date)}">${branch[1].date}</span>
12 <td><span class="tooltip" title="${h.age(branch[1].date)}">${branch[1].date}</span>
13 </td>
13 </td>
14 <td>
14 <td>
15 <span class="logtags">
15 <span class="logtags">
16 <span class="branchtag">${h.link_to(branch[0],
16 <span class="branchtag">${h.link_to(branch[0],
17 h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
17 h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
18 </span>
18 </span>
19 </td>
19 </td>
20 <td title="${branch[1].author}">${h.person(branch[1].author)}</td>
20 <td title="${branch[1].author}">${h.person(branch[1].author)}</td>
21 <td>r${branch[1].revision}:${h.short_id(branch[1].raw_id)}</td>
21 <td>r${branch[1].revision}:${h.short_id(branch[1].raw_id)}</td>
22 <td class="nowrap">
22 <td class="nowrap">
23 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-button-small xsmall")}
23 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-btn xsmall")}
24 <span style="color:#515151">|</span>
24 <span style="color:#515151">|</span>
25 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-button-small xsmall")}
25 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-btn xsmall")}
26 </td>
26 </td>
27 </tr>
27 </tr>
28 %endfor
28 %endfor
29 % if hasattr(c,'repo_closed_branches') and c.repo_closed_branches:
29 % if hasattr(c,'repo_closed_branches') and c.repo_closed_branches:
30 %for cnt,branch in enumerate(c.repo_closed_branches.items()):
30 %for cnt,branch in enumerate(c.repo_closed_branches.items()):
31 <tr class="parity${cnt%2}">
31 <tr class="parity${cnt%2}">
32 <td><span class="tooltip" title="${h.age(branch[1].date)}">${branch[1].date}</span>
32 <td><span class="tooltip" title="${h.age(branch[1].date)}">${branch[1].date}</span>
33 </td>
33 </td>
34 <td>
34 <td>
35 <span class="logtags">
35 <span class="logtags">
36 <span class="branchtag">${h.link_to(branch[0]+' [closed]',
36 <span class="branchtag">${h.link_to(branch[0]+' [closed]',
37 h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
37 h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
38 </span>
38 </span>
39 </td>
39 </td>
40 <td title="${branch[1].author}">${h.person(branch[1].author)}</td>
40 <td title="${branch[1].author}">${h.person(branch[1].author)}</td>
41 <td>r${branch[1].revision}:${h.short_id(branch[1].raw_id)}</td>
41 <td>r${branch[1].revision}:${h.short_id(branch[1].raw_id)}</td>
42 <td class="nowrap">
42 <td class="nowrap">
43 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-button-small xsmall")}
43 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-btn xsmall")}
44 <span style="color:#515151">|</span>
44 <span style="color:#515151">|</span>
45 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-button-small xsmall")}
45 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id),class_="ui-btn xsmall")}
46 </td>
46 </td>
47 </tr>
47 </tr>
48 %endfor
48 %endfor
49 %endif
49 %endif
50 </table>
50 </table>
51 %else:
51 %else:
52 ${_('There are no branches yet')}
52 ${_('There are no branches yet')}
53 %endif No newline at end of file
53 %endif
@@ -1,189 +1,189 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2
2
3 <%inherit file="/base/base.html"/>
3 <%inherit file="/base/base.html"/>
4
4
5 <%def name="title()">
5 <%def name="title()">
6 ${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
6 ${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
7 </%def>
7 </%def>
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(u'Home',h.url('/'))}
10 ${h.link_to(u'Home',h.url('/'))}
11 &raquo;
11 &raquo;
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 &raquo;
13 &raquo;
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
15 </%def>
15 </%def>
16
16
17 <%def name="page_nav()">
17 <%def name="page_nav()">
18 ${self.menu('changelog')}
18 ${self.menu('changelog')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <!-- box / title -->
23 <!-- box / title -->
24 <div class="title">
24 <div class="title">
25 ${self.breadcrumbs()}
25 ${self.breadcrumbs()}
26 </div>
26 </div>
27 <div class="table">
27 <div class="table">
28 % if c.pagination:
28 % if c.pagination:
29 <div id="graph">
29 <div id="graph">
30 <div id="graph_nodes">
30 <div id="graph_nodes">
31 <canvas id="graph_canvas"></canvas>
31 <canvas id="graph_canvas"></canvas>
32 </div>
32 </div>
33 <div id="graph_content">
33 <div id="graph_content">
34 <div class="container_header">
34 <div class="container_header">
35 ${h.form(h.url.current(),method='get')}
35 ${h.form(h.url.current(),method='get')}
36 <div class="info_box" style="float:left">
36 <div class="info_box" style="float:left">
37 ${h.submit('set',_('Show'),class_="ui-button-small")}
37 ${h.submit('set',_('Show'),class_="ui-btn")}
38 ${h.text('size',size=1,value=c.size)}
38 ${h.text('size',size=1,value=c.size)}
39 <span class="rev">${_('revisions')}</span>
39 <span class="rev">${_('revisions')}</span>
40 </div>
40 </div>
41 ${h.end_form()}
41 ${h.end_form()}
42 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
42 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
43 <div id="rev_range_container" style="display:none"></div>
43 <div id="rev_range_container" style="display:none"></div>
44 </div>
44 </div>
45
45
46 %for cnt,cs in enumerate(c.pagination):
46 %for cnt,cs in enumerate(c.pagination):
47 <div id="chg_${cnt+1}" class="container">
47 <div id="chg_${cnt+1}" class="container">
48 <div class="left">
48 <div class="left">
49 <div class="date">
49 <div class="date">
50 ${h.checkbox(cs.short_id,class_="changeset_range")}
50 ${h.checkbox(cs.short_id,class_="changeset_range")}
51 <span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
51 <span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
52 </div>
52 </div>
53 <div class="author">
53 <div class="author">
54 <div class="gravatar">
54 <div class="gravatar">
55 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
55 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
56 </div>
56 </div>
57 <div title="${h.email_or_none(cs.author)}" class="user">${h.person(cs.author)}</div>
57 <div title="${h.email_or_none(cs.author)}" class="user">${h.person(cs.author)}</div>
58 ##<span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
58 ##<span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
59 </div>
59 </div>
60 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
60 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
61 </div>
61 </div>
62 <div class="right">
62 <div class="right">
63 <div id="${cs.raw_id}_changes_info" class="changes">
63 <div id="${cs.raw_id}_changes_info" class="changes">
64 <span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
64 <span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
65 </div>
65 </div>
66 %if len(cs.parents)>1:
66 %if len(cs.parents)>1:
67 <div class="merge">${_('merge')}</div>
67 <div class="merge">${_('merge')}</div>
68 %endif
68 %endif
69 %if cs.parents:
69 %if cs.parents:
70 %for p_cs in reversed(cs.parents):
70 %for p_cs in reversed(cs.parents):
71 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
71 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
72 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
72 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
73 </div>
73 </div>
74 %endfor
74 %endfor
75 %else:
75 %else:
76 <div class="parent">${_('No parents')}</div>
76 <div class="parent">${_('No parents')}</div>
77 %endif
77 %endif
78
78
79 <span class="logtags">
79 <span class="logtags">
80 %if cs.branch:
80 %if cs.branch:
81 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
81 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
82 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
82 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
83 %endif
83 %endif
84 %for tag in cs.tags:
84 %for tag in cs.tags:
85 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
85 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
86 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
86 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
87 %endfor
87 %endfor
88 </span>
88 </span>
89 </div>
89 </div>
90 </div>
90 </div>
91
91
92 %endfor
92 %endfor
93 <div class="pagination-wh pagination-left">
93 <div class="pagination-wh pagination-left">
94 ${c.pagination.pager('$link_previous ~2~ $link_next')}
94 ${c.pagination.pager('$link_previous ~2~ $link_next')}
95 </div>
95 </div>
96 </div>
96 </div>
97 </div>
97 </div>
98
98
99 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
99 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
100 <script type="text/javascript">
100 <script type="text/javascript">
101 YAHOO.util.Event.onDOMReady(function(){
101 YAHOO.util.Event.onDOMReady(function(){
102
102
103 //Monitor range checkboxes and build a link to changesets
103 //Monitor range checkboxes and build a link to changesets
104 //ranges
104 //ranges
105 var checkboxes = YUD.getElementsByClassName('changeset_range');
105 var checkboxes = YUD.getElementsByClassName('changeset_range');
106 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
106 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
107 YUE.on(checkboxes,'click',function(e){
107 YUE.on(checkboxes,'click',function(e){
108 var checked_checkboxes = [];
108 var checked_checkboxes = [];
109 for (pos in checkboxes){
109 for (pos in checkboxes){
110 if(checkboxes[pos].checked){
110 if(checkboxes[pos].checked){
111 checked_checkboxes.push(checkboxes[pos]);
111 checked_checkboxes.push(checkboxes[pos]);
112 }
112 }
113 }
113 }
114 if(checked_checkboxes.length>1){
114 if(checked_checkboxes.length>1){
115 var rev_end = checked_checkboxes[0].name;
115 var rev_end = checked_checkboxes[0].name;
116 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
116 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
117
117
118 var url = url_tmpl.replace('__REVRANGE__',
118 var url = url_tmpl.replace('__REVRANGE__',
119 rev_start+'...'+rev_end);
119 rev_start+'...'+rev_end);
120
120
121 var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
121 var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
122 link = link.replace('__S',rev_start);
122 link = link.replace('__S',rev_start);
123 link = link.replace('__E',rev_end);
123 link = link.replace('__E',rev_end);
124 YUD.get('rev_range_container').innerHTML = link;
124 YUD.get('rev_range_container').innerHTML = link;
125 YUD.setStyle('rev_range_container','display','');
125 YUD.setStyle('rev_range_container','display','');
126 }
126 }
127 else{
127 else{
128 YUD.setStyle('rev_range_container','display','none');
128 YUD.setStyle('rev_range_container','display','none');
129
129
130 }
130 }
131 });
131 });
132
132
133 // Fetch changeset details
133 // Fetch changeset details
134 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
134 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
135 var id = e.currentTarget.id
135 var id = e.currentTarget.id
136 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}"
136 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}"
137 var url = url.replace('__CS__',id);
137 var url = url.replace('__CS__',id);
138 ypjax(url,id+'_changes_info',function(){tooltip_activate()});
138 ypjax(url,id+'_changes_info',function(){tooltip_activate()});
139 });
139 });
140
140
141 // change branch filter
141 // change branch filter
142 YUE.on(YUD.get('branch_filter'),'change',function(e){
142 YUE.on(YUD.get('branch_filter'),'change',function(e){
143 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
143 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
144 console.log(selected_branch);
144 console.log(selected_branch);
145 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
145 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
146 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
146 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
147 var url = url.replace('__BRANCH__',selected_branch);
147 var url = url.replace('__BRANCH__',selected_branch);
148 if(selected_branch != ''){
148 if(selected_branch != ''){
149 window.location = url;
149 window.location = url;
150 }else{
150 }else{
151 window.location = url_main;
151 window.location = url_main;
152 }
152 }
153
153
154 });
154 });
155
155
156 function set_canvas(heads) {
156 function set_canvas(heads) {
157 var c = document.getElementById('graph_nodes');
157 var c = document.getElementById('graph_nodes');
158 var t = document.getElementById('graph_content');
158 var t = document.getElementById('graph_content');
159 canvas = document.getElementById('graph_canvas');
159 canvas = document.getElementById('graph_canvas');
160 var div_h = t.clientHeight;
160 var div_h = t.clientHeight;
161 c.style.height=div_h+'px';
161 c.style.height=div_h+'px';
162 canvas.setAttribute('height',div_h);
162 canvas.setAttribute('height',div_h);
163 c.style.height=max_w+'px';
163 c.style.height=max_w+'px';
164 canvas.setAttribute('width',max_w);
164 canvas.setAttribute('width',max_w);
165 };
165 };
166 var heads = 1;
166 var heads = 1;
167 var max_heads = 0;
167 var max_heads = 0;
168 var jsdata = ${c.jsdata|n};
168 var jsdata = ${c.jsdata|n};
169
169
170 for( var i=0;i<jsdata.length;i++){
170 for( var i=0;i<jsdata.length;i++){
171 var m = Math.max.apply(Math, jsdata[i][1]);
171 var m = Math.max.apply(Math, jsdata[i][1]);
172 if (m>max_heads){
172 if (m>max_heads){
173 max_heads = m;
173 max_heads = m;
174 }
174 }
175 }
175 }
176 var max_w = Math.max(100,max_heads*25);
176 var max_w = Math.max(100,max_heads*25);
177 set_canvas(max_w);
177 set_canvas(max_w);
178
178
179 var r = new BranchRenderer();
179 var r = new BranchRenderer();
180 r.render(jsdata,max_w);
180 r.render(jsdata,max_w);
181
181
182 });
182 });
183 </script>
183 </script>
184 %else:
184 %else:
185 ${_('There are no changes yet')}
185 ${_('There are no changes yet')}
186 %endif
186 %endif
187 </div>
187 </div>
188 </div>
188 </div>
189 </%def> No newline at end of file
189 </%def>
@@ -1,66 +1,66 b''
1 ##usage:
1 ##usage:
2 ## <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
2 ## <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
3 ## ${comment.comment_block(co)}
3 ## ${comment.comment_block(co)}
4 ##
4 ##
5 <%def name="comment_block(co)">
5 <%def name="comment_block(co)">
6 <div class="comment" id="comment-${co.comment_id}">
6 <div class="comment" id="comment-${co.comment_id}">
7 <div class="meta">
7 <div class="meta">
8 <span class="user">
8 <span class="user">
9 <img src="${h.gravatar_url(co.author.email, 20)}" />
9 <img src="${h.gravatar_url(co.author.email, 20)}" />
10 ${co.author.username}
10 ${co.author.username}
11 </span>
11 </span>
12 <a href="${h.url.current(anchor='comment-%s' % co.comment_id)}"> ${_('commented on')} </a>
12 <a href="${h.url.current(anchor='comment-%s' % co.comment_id)}"> ${_('commented on')} </a>
13 ${h.short_id(co.revision)}
13 ${h.short_id(co.revision)}
14 %if co.f_path:
14 %if co.f_path:
15 ${_(' in file ')}
15 ${_(' in file ')}
16 ${co.f_path}:L ${co.line_no}
16 ${co.f_path}:L ${co.line_no}
17 %endif
17 %endif
18 <span class="date">
18 <span class="date">
19 ${h.age(co.modified_at)}
19 ${h.age(co.modified_at)}
20 </span>
20 </span>
21 </div>
21 </div>
22 <div class="text">
22 <div class="text">
23 %if h.HasPermissionAny('hg.admin', 'repository.admin')() or co.author.user_id == c.rhodecode_user.user_id:
23 %if h.HasPermissionAny('hg.admin', 'repository.admin')() or co.author.user_id == c.rhodecode_user.user_id:
24 <div class="buttons">
24 <div class="buttons">
25 <span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-button-small">${_('Delete')}</span>
25 <span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-btn">${_('Delete')}</span>
26 </div>
26 </div>
27 %endif
27 %endif
28 ${h.rst(co.text)|n}
28 ${h.rst(co.text)|n}
29 </div>
29 </div>
30 </div>
30 </div>
31 </%def>
31 </%def>
32
32
33
33
34
34
35 <%def name="comment_inline_form()">
35 <%def name="comment_inline_form()">
36 <div id='comment-inline-form-template' style="display:none">
36 <div id='comment-inline-form-template' style="display:none">
37 <div class="comment-inline-form">
37 <div class="comment-inline-form">
38 %if c.rhodecode_user.username != 'default':
38 %if c.rhodecode_user.username != 'default':
39 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
39 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
40 <div class="clearfix">
40 <div class="clearfix">
41 <div class="comment-help">${_('Commenting on line')} {1} ${_('comments parsed using')}
41 <div class="comment-help">${_('Commenting on line')} {1} ${_('comments parsed using')}
42 <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}</div>
42 <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}</div>
43 <textarea id="text_{1}" name="text"></textarea>
43 <textarea id="text_{1}" name="text"></textarea>
44 </div>
44 </div>
45 <div class="comment-button">
45 <div class="comment-button">
46 <input type="hidden" name="f_path" value="{0}">
46 <input type="hidden" name="f_path" value="{0}">
47 <input type="hidden" name="line" value="{1}">
47 <input type="hidden" name="line" value="{1}">
48 ${h.submit('save', _('Comment'), class_='ui-button-small')}
48 ${h.submit('save', _('Comment'), class_='ui-btn')}
49 ${h.reset('hide-inline-form', _('Hide'), class_='ui-button-small hide-inline-form')}
49 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
50 </div>
50 </div>
51 ${h.end_form()}
51 ${h.end_form()}
52 %else:
52 %else:
53 ${h.form('')}
53 ${h.form('')}
54 <div class="clearfix">
54 <div class="clearfix">
55 <div class="comment-help">
55 <div class="comment-help">
56 ${'You need to be logged in to comment.'} <a href="${h.url('login_home',came_from=h.url.current())}">${_('Login now')}</a>
56 ${'You need to be logged in to comment.'} <a href="${h.url('login_home',came_from=h.url.current())}">${_('Login now')}</a>
57 </div>
57 </div>
58 </div>
58 </div>
59 <div class="comment-button">
59 <div class="comment-button">
60 ${h.reset('hide-inline-form', _('Hide'), class_='ui-button-small hide-inline-form')}
60 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
61 </div>
61 </div>
62 ${h.end_form()}
62 ${h.end_form()}
63 %endif
63 %endif
64 </div>
64 </div>
65 </div>
65 </div>
66 </%def> No newline at end of file
66 </%def>
@@ -1,92 +1,92 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${c.repo_name} ${_('Edit file')} - ${c.rhodecode_name}
4 ${c.repo_name} ${_('Edit file')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="js_extra()">
7 <%def name="js_extra()">
8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
9 </%def>
9 </%def>
10 <%def name="css_extra()">
10 <%def name="css_extra()">
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
12 </%def>
12 </%def>
13
13
14 <%def name="breadcrumbs_links()">
14 <%def name="breadcrumbs_links()">
15 ${h.link_to(u'Home',h.url('/'))}
15 ${h.link_to(u'Home',h.url('/'))}
16 &raquo;
16 &raquo;
17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
18 &raquo;
18 &raquo;
19 ${_('add file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
19 ${_('add file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
20 </%def>
20 </%def>
21
21
22 <%def name="page_nav()">
22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 </%def>
24 </%def>
25 <%def name="main()">
25 <%def name="main()">
26 <div class="box">
26 <div class="box">
27 <!-- box / title -->
27 <!-- box / title -->
28 <div class="title">
28 <div class="title">
29 ${self.breadcrumbs()}
29 ${self.breadcrumbs()}
30 <ul class="links">
30 <ul class="links">
31 <li>
31 <li>
32 <span style="text-transform: uppercase;">
32 <span style="text-transform: uppercase;">
33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
34 </li>
34 </li>
35 </ul>
35 </ul>
36 </div>
36 </div>
37 <div class="table">
37 <div class="table">
38 <div id="files_data">
38 <div id="files_data">
39 ${h.form(h.url.current(),method='post',id='eform',enctype="multipart/form-data")}
39 ${h.form(h.url.current(),method='post',id='eform',enctype="multipart/form-data")}
40 <h3>${_('Add new file')}</h3>
40 <h3>${_('Add new file')}</h3>
41 <div class="form">
41 <div class="form">
42 <div class="fields">
42 <div class="fields">
43 <div id="filename_container" class="field file">
43 <div id="filename_container" class="field file">
44 <div class="label">
44 <div class="label">
45 <label for="filename">${_('File Name')}:</label>
45 <label for="filename">${_('File Name')}:</label>
46 </div>
46 </div>
47 <div class="input">
47 <div class="input">
48 <input type="text" value="" size="30" name="filename" id="filename">
48 <input type="text" value="" size="30" name="filename" id="filename">
49 <input type="button" class="ui-button-small" value="upload file" id="upload_file_enable">
49 ${_('or')} <span class="ui-btn" id="upload_file_enable">${_('Upload file')}</span>
50 </div>
50 </div>
51 </div>
51 </div>
52 <div id="upload_file_container" class="field" style="display:none">
52 <div id="upload_file_container" class="field" style="display:none">
53 <div class="label">
53 <div class="label">
54 <label for="location">${_('Upload file')}</label>
54 <label for="location">${_('Upload file')}</label>
55 </div>
55 </div>
56 <div class="file">
56 <div class="file">
57 <input type="file" size="30" name="upload_file" id="upload_file">
57 <input type="file" size="30" name="upload_file" id="upload_file">
58 <input type="button" class="ui-button-small" value="create file" id="file_enable">
58 ${_('or')} <span class="ui-btn" id="file_enable">${_('Create new file')}</span>
59 </div>
59 </div>
60 </div>
60 </div>
61 <div class="field">
61 <div class="field">
62 <div class="label">
62 <div class="label">
63 <label for="location">${_('Location')}</label>
63 <label for="location">${_('Location')}</label>
64 </div>
64 </div>
65 <div class="input">
65 <div class="input">
66 <input type="text" value="${c.f_path}" size="30" name="location" id="location">
66 <input type="text" value="${c.f_path}" size="30" name="location" id="location">
67 ${_('use / to separate directories')}
67 ${_('use / to separate directories')}
68 </div>
68 </div>
69 </div>
69 </div>
70 </div>
70 </div>
71 </div>
71 </div>
72 <div id="body" class="codeblock">
72 <div id="body" class="codeblock">
73 <div id="editor_container">
73 <div id="editor_container">
74 <pre id="editor_pre"></pre>
74 <pre id="editor_pre"></pre>
75 <textarea id="editor" name="content" style="display:none"></textarea>
75 <textarea id="editor" name="content" style="display:none"></textarea>
76 </div>
76 </div>
77 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
77 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
78 <textarea id="commit" name="message" style="height: 100px;width: 99%;margin-left:4px"></textarea>
78 <textarea id="commit" name="message" style="height: 100px;width: 99%;margin-left:4px"></textarea>
79 </div>
79 </div>
80 <div style="text-align: l;padding-top: 5px">
80 <div style="text-align: l;padding-top: 5px">
81 ${h.submit('commit',_('Commit changes'),class_="ui-button-small")}
81 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
82 ${h.reset('reset',_('Reset'),class_="ui-button-small")}
82 ${h.reset('reset',_('Reset'),class_="ui-btn")}
83 </div>
83 </div>
84 ${h.end_form()}
84 ${h.end_form()}
85 <script type="text/javascript">
85 <script type="text/javascript">
86 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
86 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
87 initCodeMirror('editor',reset_url);
87 initCodeMirror('editor',reset_url);
88 </script>
88 </script>
89 </div>
89 </div>
90 </div>
90 </div>
91 </div>
91 </div>
92 </%def> No newline at end of file
92 </%def>
@@ -1,136 +1,136 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${c.repo_name} ${_('File annotate')} - ${c.rhodecode_name}
4 ${c.repo_name} ${_('File annotate')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('annotate')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
12 ${_('annotate')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('files')}
16 ${self.menu('files')}
17 </%def>
17 </%def>
18 <%def name="main()">
18 <%def name="main()">
19 <div class="box">
19 <div class="box">
20 <!-- box / title -->
20 <!-- box / title -->
21 <div class="title">
21 <div class="title">
22 ${self.breadcrumbs()}
22 ${self.breadcrumbs()}
23 <ul class="links">
23 <ul class="links">
24 <li>
24 <li>
25 <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.cs.branch}</a></span>
25 <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.cs.branch}</a></span>
26 </li>
26 </li>
27 </ul>
27 </ul>
28 </div>
28 </div>
29 <div class="table">
29 <div class="table">
30 <div id="files_data">
30 <div id="files_data">
31 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
31 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
32 <dl>
32 <dl>
33 <dt style="padding-top:10px;font-size:16px">${_('History')}</dt>
33 <dt style="padding-top:10px;font-size:16px">${_('History')}</dt>
34 <dd>
34 <dd>
35 <div>
35 <div>
36 ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
36 ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
37 ${h.hidden('diff2',c.file.last_changeset.raw_id)}
37 ${h.hidden('diff2',c.file.last_changeset.raw_id)}
38 ${h.select('diff1',c.file.last_changeset.raw_id,c.file_history)}
38 ${h.select('diff1',c.file.last_changeset.raw_id,c.file_history)}
39 ${h.submit('diff','diff to revision',class_="ui-button-small")}
39 ${h.submit('diff','diff to revision',class_="ui-btn")}
40 ${h.submit('show_rev','show at revision',class_="ui-button-small")}
40 ${h.submit('show_rev','show at revision',class_="ui-btn")}
41 ${h.end_form()}
41 ${h.end_form()}
42 </div>
42 </div>
43 </dd>
43 </dd>
44 </dl>
44 </dl>
45 <div id="body" class="codeblock">
45 <div id="body" class="codeblock">
46 <div class="code-header">
46 <div class="code-header">
47 <div class="stats">
47 <div class="stats">
48 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
48 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
49 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
49 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
50 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
50 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
51 <div class="left item last">${c.file.mimetype}</div>
51 <div class="left item last">${c.file.mimetype}</div>
52 <div class="buttons">
52 <div class="buttons">
53 ${h.link_to(_('show source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
53 ${h.link_to(_('show source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
54 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
54 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
55 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
55 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
56 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
56 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
57 % if not c.file.is_binary:
57 % if not c.file.is_binary:
58 ${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
58 ${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
59 % endif
59 % endif
60 % endif
60 % endif
61 </div>
61 </div>
62 </div>
62 </div>
63 <div class="author">
63 <div class="author">
64 <div class="gravatar">
64 <div class="gravatar">
65 <img alt="gravatar" src="${h.gravatar_url(h.email(c.cs.author),16)}"/>
65 <img alt="gravatar" src="${h.gravatar_url(h.email(c.cs.author),16)}"/>
66 </div>
66 </div>
67 <div title="${h.email_or_none(c.cs.author)}" class="user">${h.person(c.cs.author)}</div>
67 <div title="${h.email_or_none(c.cs.author)}" class="user">${h.person(c.cs.author)}</div>
68 </div>
68 </div>
69 <div class="commit">${c.file.last_changeset.message}</div>
69 <div class="commit">${c.file.last_changeset.message}</div>
70 </div>
70 </div>
71 <div class="code-body">
71 <div class="code-body">
72 %if c.file.is_binary:
72 %if c.file.is_binary:
73 ${_('Binary file (%s)') % c.file.mimetype}
73 ${_('Binary file (%s)') % c.file.mimetype}
74 %else:
74 %else:
75 % if c.file.size < c.cut_off_limit:
75 % if c.file.size < c.cut_off_limit:
76 ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
76 ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
77 %else:
77 %else:
78 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
78 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
79 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.revision,f_path=c.f_path))}
79 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.revision,f_path=c.f_path))}
80 %endif
80 %endif
81 <script type="text/javascript">
81 <script type="text/javascript">
82 function highlight_lines(lines){
82 function highlight_lines(lines){
83 for(pos in lines){
83 for(pos in lines){
84 YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
84 YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
85 }
85 }
86 }
86 }
87 page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
87 page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
88 if (page_highlights.length == 2){
88 if (page_highlights.length == 2){
89 highlight_ranges = page_highlights[1].split(",");
89 highlight_ranges = page_highlights[1].split(",");
90
90
91 var h_lines = [];
91 var h_lines = [];
92 for (pos in highlight_ranges){
92 for (pos in highlight_ranges){
93 var _range = highlight_ranges[pos].split('-');
93 var _range = highlight_ranges[pos].split('-');
94 if(_range.length == 2){
94 if(_range.length == 2){
95 var start = parseInt(_range[0]);
95 var start = parseInt(_range[0]);
96 var end = parseInt(_range[1]);
96 var end = parseInt(_range[1]);
97 if (start < end){
97 if (start < end){
98 for(var i=start;i<=end;i++){
98 for(var i=start;i<=end;i++){
99 h_lines.push(i);
99 h_lines.push(i);
100 }
100 }
101 }
101 }
102 }
102 }
103 else{
103 else{
104 h_lines.push(parseInt(highlight_ranges[pos]));
104 h_lines.push(parseInt(highlight_ranges[pos]));
105 }
105 }
106 }
106 }
107 highlight_lines(h_lines);
107 highlight_lines(h_lines);
108
108
109 //remember original location
109 //remember original location
110 var old_hash = location.href.substring(location.href.indexOf('#'));
110 var old_hash = location.href.substring(location.href.indexOf('#'));
111
111
112 // this makes a jump to anchor moved by 3 posstions for padding
112 // this makes a jump to anchor moved by 3 posstions for padding
113 window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
113 window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
114
114
115 //sets old anchor
115 //sets old anchor
116 window.location.hash = old_hash;
116 window.location.hash = old_hash;
117
117
118 }
118 }
119 </script>
119 </script>
120 %endif
120 %endif
121 </div>
121 </div>
122 </div>
122 </div>
123 <script type="text/javascript">
123 <script type="text/javascript">
124 YAHOO.util.Event.onDOMReady(function(){
124 YAHOO.util.Event.onDOMReady(function(){
125 YUE.on('show_rev','click',function(e){
125 YUE.on('show_rev','click',function(e){
126 YAHOO.util.Event.preventDefault(e);
126 YAHOO.util.Event.preventDefault(e);
127 var cs = YAHOO.util.Dom.get('diff1').value;
127 var cs = YAHOO.util.Dom.get('diff1').value;
128 var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
128 var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
129 window.location = url;
129 window.location = url;
130 });
130 });
131 });
131 });
132 </script>
132 </script>
133 </div>
133 </div>
134 </div>
134 </div>
135 </div>
135 </div>
136 </%def>
136 </%def>
@@ -1,109 +1,109 b''
1 <%def name="file_class(node)">
1 <%def name="file_class(node)">
2 %if node.is_file():
2 %if node.is_file():
3 <%return "browser-file" %>
3 <%return "browser-file" %>
4 %else:
4 %else:
5 <%return "browser-dir"%>
5 <%return "browser-dir"%>
6 %endif
6 %endif
7 </%def>
7 </%def>
8 <div id="body" class="browserblock">
8 <div id="body" class="browserblock">
9 <div class="browser-header">
9 <div class="browser-header">
10 <div class="browser-nav">
10 <div class="browser-nav">
11 ${h.form(h.url.current())}
11 ${h.form(h.url.current())}
12 <div class="info_box">
12 <div class="info_box">
13 <span class="rev">${_('view')}@rev</span>
13 <span class="rev">${_('view')}@rev</span>
14 <a class="ui-button-small" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
14 <a class="ui-btn" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
15 ${h.text('at_rev',value=c.changeset.revision,size=5)}
15 ${h.text('at_rev',value=c.changeset.revision,size=5)}
16 <a class="ui-button-small" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
16 <a class="ui-btn" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
17 ## ${h.submit('view',_('view'),class_="ui-button-small")}
17 ## ${h.submit('view',_('view'),class_="ui-btn")}
18 </div>
18 </div>
19 ${h.end_form()}
19 ${h.end_form()}
20 </div>
20 </div>
21 <div class="browser-branch">
21 <div class="browser-branch">
22 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
22 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
23 <label>${_('follow current branch')}</label>
23 <label>${_('follow current branch')}</label>
24 </div>
24 </div>
25 <div class="browser-search">
25 <div class="browser-search">
26 <div id="search_activate_id" class="search_activate">
26 <div id="search_activate_id" class="search_activate">
27 <a class="ui-button-small" id="filter_activate" href="#">${_('search file list')}</a>
27 <a class="ui-btn" id="filter_activate" href="#">${_('search file list')}</a>
28 </div>
28 </div>
29 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
29 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
30 <div id="add_node_id" class="add_node">
30 <div id="add_node_id" class="add_node">
31 <a class="ui-button-small" href="${h.url('files_add_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}">${_('add new file')}</a>
31 <a class="ui-btn" href="${h.url('files_add_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}">${_('add new file')}</a>
32 </div>
32 </div>
33 % endif
33 % endif
34 <div>
34 <div>
35 <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
35 <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
36 <div id="node_filter_box" style="display:none">
36 <div id="node_filter_box" style="display:none">
37 ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.file.path)}/<input type="text" value="type to search..." name="filter" size="25" id="node_filter" autocomplete="off">
37 ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.file.path)}/<input type="text" value="type to search..." name="filter" size="25" id="node_filter" autocomplete="off">
38 </div>
38 </div>
39 </div>
39 </div>
40 </div>
40 </div>
41 </div>
41 </div>
42
42
43 <div class="browser-body">
43 <div class="browser-body">
44 <table class="code-browser">
44 <table class="code-browser">
45 <thead>
45 <thead>
46 <tr>
46 <tr>
47 <th>${_('Name')}</th>
47 <th>${_('Name')}</th>
48 <th>${_('Size')}</th>
48 <th>${_('Size')}</th>
49 <th>${_('Mimetype')}</th>
49 <th>${_('Mimetype')}</th>
50 <th>${_('Revision')}</th>
50 <th>${_('Revision')}</th>
51 <th>${_('Last modified')}</th>
51 <th>${_('Last modified')}</th>
52 <th>${_('Last commiter')}</th>
52 <th>${_('Last commiter')}</th>
53 </tr>
53 </tr>
54 </thead>
54 </thead>
55
55
56 <tbody id="tbody">
56 <tbody id="tbody">
57 %if c.file.parent:
57 %if c.file.parent:
58 <tr class="parity0">
58 <tr class="parity0">
59 <td>
59 <td>
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
61 </td>
61 </td>
62 <td></td>
62 <td></td>
63 <td></td>
63 <td></td>
64 <td></td>
64 <td></td>
65 <td></td>
65 <td></td>
66 <td></td>
66 <td></td>
67 </tr>
67 </tr>
68 %endif
68 %endif
69
69
70 %for cnt,node in enumerate(c.file):
70 %for cnt,node in enumerate(c.file):
71 <tr class="parity${cnt%2}">
71 <tr class="parity${cnt%2}">
72 <td>
72 <td>
73 ${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node)+" ypjax-link")}
73 ${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node)+" ypjax-link")}
74 </td>
74 </td>
75 <td>
75 <td>
76 %if node.is_file():
76 %if node.is_file():
77 ${h.format_byte_size(node.size,binary=True)}
77 ${h.format_byte_size(node.size,binary=True)}
78 %endif
78 %endif
79 </td>
79 </td>
80 <td>
80 <td>
81 %if node.is_file():
81 %if node.is_file():
82 ${node.mimetype}
82 ${node.mimetype}
83 %endif
83 %endif
84 </td>
84 </td>
85 <td>
85 <td>
86 %if node.is_file():
86 %if node.is_file():
87 <span class="tooltip" title="${node.last_changeset.message}">
87 <span class="tooltip" title="${node.last_changeset.message}">
88 ${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</span>
88 ${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</span>
89 %endif
89 %endif
90 </td>
90 </td>
91 <td>
91 <td>
92 %if node.is_file():
92 %if node.is_file():
93 <span class="tooltip" title="${node.last_changeset.date}">
93 <span class="tooltip" title="${node.last_changeset.date}">
94 ${h.age(node.last_changeset.date)}</span>
94 ${h.age(node.last_changeset.date)}</span>
95 %endif
95 %endif
96 </td>
96 </td>
97 <td>
97 <td>
98 %if node.is_file():
98 %if node.is_file():
99 ${node.last_changeset.author}
99 ${node.last_changeset.author}
100 %endif
100 %endif
101 </td>
101 </td>
102 </tr>
102 </tr>
103 %endfor
103 %endfor
104 </tbody>
104 </tbody>
105 <tbody id="tbody_filtered" style="display:none">
105 <tbody id="tbody_filtered" style="display:none">
106 </tbody>
106 </tbody>
107 </table>
107 </table>
108 </div>
108 </div>
109 </div> No newline at end of file
109 </div>
@@ -1,78 +1,78 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${c.repo_name} ${_('Edit file')} - ${c.rhodecode_name}
4 ${c.repo_name} ${_('Edit file')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="js_extra()">
7 <%def name="js_extra()">
8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
9 </%def>
9 </%def>
10 <%def name="css_extra()">
10 <%def name="css_extra()">
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
12 </%def>
12 </%def>
13
13
14 <%def name="breadcrumbs_links()">
14 <%def name="breadcrumbs_links()">
15 ${h.link_to(u'Home',h.url('/'))}
15 ${h.link_to(u'Home',h.url('/'))}
16 &raquo;
16 &raquo;
17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
18 &raquo;
18 &raquo;
19 ${_('edit file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
19 ${_('edit file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
20 </%def>
20 </%def>
21
21
22 <%def name="page_nav()">
22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 </%def>
24 </%def>
25 <%def name="main()">
25 <%def name="main()">
26 <div class="box">
26 <div class="box">
27 <!-- box / title -->
27 <!-- box / title -->
28 <div class="title">
28 <div class="title">
29 ${self.breadcrumbs()}
29 ${self.breadcrumbs()}
30 <ul class="links">
30 <ul class="links">
31 <li>
31 <li>
32 <span style="text-transform: uppercase;">
32 <span style="text-transform: uppercase;">
33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
34 </li>
34 </li>
35 </ul>
35 </ul>
36 </div>
36 </div>
37 <div class="table">
37 <div class="table">
38 <div id="files_data">
38 <div id="files_data">
39 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
39 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
40 ${h.form(h.url.current(),method='post',id='eform')}
40 ${h.form(h.url.current(),method='post',id='eform')}
41 <div id="body" class="codeblock">
41 <div id="body" class="codeblock">
42 <div class="code-header">
42 <div class="code-header">
43 <div class="stats">
43 <div class="stats">
44 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
44 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
45 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
45 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
46 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
46 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
47 <div class="left item last">${c.file.mimetype}</div>
47 <div class="left item last">${c.file.mimetype}</div>
48 <div class="buttons">
48 <div class="buttons">
49 ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
49 ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
50 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
50 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
51 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
51 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
52 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
52 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
53 % if not c.file.is_binary:
53 % if not c.file.is_binary:
54 ${h.link_to(_('source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-button-small")}
54 ${h.link_to(_('source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
55 % endif
55 % endif
56 % endif
56 % endif
57 </div>
57 </div>
58 </div>
58 </div>
59 <div class="commit">${_('Editing file')}: ${c.file.path}</div>
59 <div class="commit">${_('Editing file')}: ${c.file.path}</div>
60 </div>
60 </div>
61 <pre id="editor_pre"></pre>
61 <pre id="editor_pre"></pre>
62 <textarea id="editor" name="content" style="display:none">${c.file.content|n}</textarea>
62 <textarea id="editor" name="content" style="display:none">${c.file.content|n}</textarea>
63 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
63 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
64 <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px"></textarea>
64 <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px"></textarea>
65 </div>
65 </div>
66 <div style="text-align: left;padding-top: 5px">
66 <div style="text-align: left;padding-top: 5px">
67 ${h.submit('commit',_('Commit changes'),class_="ui-button-small")}
67 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
68 ${h.reset('reset',_('Reset'),class_="ui-button-small")}
68 ${h.reset('reset',_('Reset'),class_="ui-btn")}
69 </div>
69 </div>
70 ${h.end_form()}
70 ${h.end_form()}
71 <script type="text/javascript">
71 <script type="text/javascript">
72 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
72 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
73 initCodeMirror('editor',reset_url);
73 initCodeMirror('editor',reset_url);
74 </script>
74 </script>
75 </div>
75 </div>
76 </div>
76 </div>
77 </div>
77 </div>
78 </%def> No newline at end of file
78 </%def>
@@ -1,105 +1,105 b''
1 <dl>
1 <dl>
2 <dt style="padding-top:10px;font-size:16px">${_('History')}</dt>
2 <dt style="padding-top:10px;font-size:16px">${_('History')}</dt>
3 <dd>
3 <dd>
4 <div>
4 <div>
5 ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
5 ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
6 ${h.hidden('diff2',c.file.last_changeset.raw_id)}
6 ${h.hidden('diff2',c.file.last_changeset.raw_id)}
7 ${h.select('diff1',c.file.last_changeset.raw_id,c.file_history)}
7 ${h.select('diff1',c.file.last_changeset.raw_id,c.file_history)}
8 ${h.submit('diff','diff to revision',class_="ui-button-small")}
8 ${h.submit('diff','diff to revision',class_="ui-btn")}
9 ${h.submit('show_rev','show at revision',class_="ui-button-small")}
9 ${h.submit('show_rev','show at revision',class_="ui-btn")}
10 ${h.end_form()}
10 ${h.end_form()}
11 </div>
11 </div>
12 </dd>
12 </dd>
13 </dl>
13 </dl>
14
14
15
15
16 <div id="body" class="codeblock">
16 <div id="body" class="codeblock">
17 <div class="code-header">
17 <div class="code-header">
18 <div class="stats">
18 <div class="stats">
19 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
19 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
20 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
20 <div class="left item">${h.link_to("r%s:%s" % (c.file.last_changeset.revision,h.short_id(c.file.last_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.last_changeset.raw_id))}</div>
21 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
21 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
22 <div class="left item last">${c.file.mimetype}</div>
22 <div class="left item last">${c.file.mimetype}</div>
23 <div class="buttons">
23 <div class="buttons">
24 ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-button-small")}
24 ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
25 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-button-small")}
25 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
26 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-button-small")}
26 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
27 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
27 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
28 % if not c.file.is_binary:
28 % if not c.file.is_binary:
29 ${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-button-small")}
29 ${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
30 % endif
30 % endif
31 % endif
31 % endif
32 </div>
32 </div>
33 </div>
33 </div>
34 <div class="author">
34 <div class="author">
35 <div class="gravatar">
35 <div class="gravatar">
36 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),16)}"/>
36 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),16)}"/>
37 </div>
37 </div>
38 <div title="${h.email_or_none(c.changeset.author)}" class="user">${h.person(c.changeset.author)}</div>
38 <div title="${h.email_or_none(c.changeset.author)}" class="user">${h.person(c.changeset.author)}</div>
39 </div>
39 </div>
40 <div class="commit">${c.file.last_changeset.message}</div>
40 <div class="commit">${c.file.last_changeset.message}</div>
41 </div>
41 </div>
42 <div class="code-body">
42 <div class="code-body">
43 %if c.file.is_binary:
43 %if c.file.is_binary:
44 ${_('Binary file (%s)') % c.file.mimetype}
44 ${_('Binary file (%s)') % c.file.mimetype}
45 %else:
45 %else:
46 % if c.file.size < c.cut_off_limit:
46 % if c.file.size < c.cut_off_limit:
47 ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
47 ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
48 %else:
48 %else:
49 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
49 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
50 h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path))}
50 h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path))}
51 %endif
51 %endif
52 <script type="text/javascript">
52 <script type="text/javascript">
53 function highlight_lines(lines){
53 function highlight_lines(lines){
54 for(pos in lines){
54 for(pos in lines){
55 YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
55 YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
56 }
56 }
57 }
57 }
58 page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
58 page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
59 if (page_highlights.length == 2){
59 if (page_highlights.length == 2){
60 highlight_ranges = page_highlights[1].split(",");
60 highlight_ranges = page_highlights[1].split(",");
61
61
62 var h_lines = [];
62 var h_lines = [];
63 for (pos in highlight_ranges){
63 for (pos in highlight_ranges){
64 var _range = highlight_ranges[pos].split('-');
64 var _range = highlight_ranges[pos].split('-');
65 if(_range.length == 2){
65 if(_range.length == 2){
66 var start = parseInt(_range[0]);
66 var start = parseInt(_range[0]);
67 var end = parseInt(_range[1]);
67 var end = parseInt(_range[1]);
68 if (start < end){
68 if (start < end){
69 for(var i=start;i<=end;i++){
69 for(var i=start;i<=end;i++){
70 h_lines.push(i);
70 h_lines.push(i);
71 }
71 }
72 }
72 }
73 }
73 }
74 else{
74 else{
75 h_lines.push(parseInt(highlight_ranges[pos]));
75 h_lines.push(parseInt(highlight_ranges[pos]));
76 }
76 }
77 }
77 }
78 highlight_lines(h_lines);
78 highlight_lines(h_lines);
79
79
80 //remember original location
80 //remember original location
81 var old_hash = location.href.substring(location.href.indexOf('#'));
81 var old_hash = location.href.substring(location.href.indexOf('#'));
82
82
83 // this makes a jump to anchor moved by 3 posstions for padding
83 // this makes a jump to anchor moved by 3 posstions for padding
84 window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
84 window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);
85
85
86 //sets old anchor
86 //sets old anchor
87 window.location.hash = old_hash;
87 window.location.hash = old_hash;
88
88
89 }
89 }
90 </script>
90 </script>
91 %endif
91 %endif
92 </div>
92 </div>
93 </div>
93 </div>
94
94
95 <script type="text/javascript">
95 <script type="text/javascript">
96 YUE.onDOMReady(function(){
96 YUE.onDOMReady(function(){
97 YUE.on('show_rev','click',function(e){
97 YUE.on('show_rev','click',function(e){
98 YUE.preventDefault(e);
98 YUE.preventDefault(e);
99 var cs = YUD.get('diff1').value;
99 var cs = YUD.get('diff1').value;
100 var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
100 var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
101 window.location = url;
101 window.location = url;
102 });
102 });
103 YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}"))
103 YUE.on('hlcode','mouseup',getSelectionLink("${_('Selection link')}"))
104 });
104 });
105 </script>
105 </script>
@@ -1,177 +1,177 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3 <%def name="title()">
3 <%def name="title()">
4 ${_('Journal')} - ${c.rhodecode_name}
4 ${_('Journal')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6 <%def name="breadcrumbs()">
6 <%def name="breadcrumbs()">
7 ${c.rhodecode_name}
7 ${c.rhodecode_name}
8 </%def>
8 </%def>
9 <%def name="page_nav()">
9 <%def name="page_nav()">
10 ${self.menu('home')}
10 ${self.menu('home')}
11 </%def>
11 </%def>
12 <%def name="main()">
12 <%def name="main()">
13
13
14 <div class="box box-left">
14 <div class="box box-left">
15 <!-- box / title -->
15 <!-- box / title -->
16 <div class="title">
16 <div class="title">
17 <h5>${_('Journal')}</h5>
17 <h5>${_('Journal')}</h5>
18 <ul class="links">
18 <ul class="links">
19 <li>
19 <li>
20 <span><a id="refresh" href="${h.url('journal')}"><img class="icon" title="${_('Refresh')}" alt="${_('Refresh')}" src="${h.url('/images/icons/arrow_refresh.png')}"/>
20 <span><a id="refresh" href="${h.url('journal')}"><img class="icon" title="${_('Refresh')}" alt="${_('Refresh')}" src="${h.url('/images/icons/arrow_refresh.png')}"/>
21 </a></span>
21 </a></span>
22 </li>
22 </li>
23 </ul>
23 </ul>
24 </div>
24 </div>
25 <div id="journal">${c.journal_data}</div>
25 <div id="journal">${c.journal_data}</div>
26 </div>
26 </div>
27 <div class="box box-right">
27 <div class="box box-right">
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 <h5>
30 <h5>
31 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
31 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
32 <a id="show_my" class="link-white" href="#my">${_('My repositories')}</a> / <a id="show_watched" class="link-white" href="#watched">${_('Watched')}</a>
32 <a id="show_my" class="link-white" href="#my">${_('My repositories')}</a> / <a id="show_watched" class="link-white" href="#watched">${_('Watched')}</a>
33 </h5>
33 </h5>
34 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
34 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
35 <ul class="links">
35 <ul class="links">
36 <li>
36 <li>
37 <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
37 <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
38 </li>
38 </li>
39 </ul>
39 </ul>
40 %endif
40 %endif
41 </div>
41 </div>
42 <!-- end box / title -->
42 <!-- end box / title -->
43 <div id="my" class="table">
43 <div id="my" class="table">
44 %if c.user_repos:
44 %if c.user_repos:
45 <table>
45 <table>
46 <thead>
46 <thead>
47 <tr>
47 <tr>
48 <th class="left">${_('Name')}</th>
48 <th class="left">${_('Name')}</th>
49 <th class="left">${_('revision')}</th>
49 <th class="left">${_('revision')}</th>
50 <th colspan="2" class="left">${_('action')}</th>
50 <th colspan="2" class="left">${_('action')}</th>
51 </thead>
51 </thead>
52 <tbody>
52 <tbody>
53 %for repo in c.user_repos:
53 %for repo in c.user_repos:
54 <tr>
54 <tr>
55 <td>
55 <td>
56 %if repo['dbrepo']['repo_type'] =='hg':
56 %if repo['dbrepo']['repo_type'] =='hg':
57 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
57 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
58 %elif repo['dbrepo']['repo_type'] =='git':
58 %elif repo['dbrepo']['repo_type'] =='git':
59 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
59 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
60 %else:
60 %else:
61
61
62 %endif
62 %endif
63 %if repo['dbrepo']['private']:
63 %if repo['dbrepo']['private']:
64 <img class="icon" alt="${_('private')}" src="${h.url('/images/icons/lock.png')}"/>
64 <img class="icon" alt="${_('private')}" src="${h.url('/images/icons/lock.png')}"/>
65 %else:
65 %else:
66 <img class="icon" alt="${_('public')}" src="${h.url('/images/icons/lock_open.png')}"/>
66 <img class="icon" alt="${_('public')}" src="${h.url('/images/icons/lock_open.png')}"/>
67 %endif
67 %endif
68
68
69 ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
69 ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
70 %if repo['dbrepo_fork']:
70 %if repo['dbrepo_fork']:
71 <a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
71 <a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
72 <img class="icon" alt="${_('public')}"
72 <img class="icon" alt="${_('public')}"
73 title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}"
73 title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}"
74 src="${h.url('/images/icons/arrow_divide.png')}"/></a>
74 src="${h.url('/images/icons/arrow_divide.png')}"/></a>
75 %endif
75 %endif
76 </td>
76 </td>
77 <td><span class="tooltip" title="${repo['last_change']}">${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}</span></td>
77 <td><span class="tooltip" title="${repo['last_change']}">${("r%s:%s") % (repo['rev'],h.short_id(repo['tip']))}</span></td>
78 <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
78 <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
79 <td>
79 <td>
80 ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
80 ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
81 ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
81 ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
82 ${h.end_form()}
82 ${h.end_form()}
83 </td>
83 </td>
84 </tr>
84 </tr>
85 %endfor
85 %endfor
86 </tbody>
86 </tbody>
87 </table>
87 </table>
88 %else:
88 %else:
89 <div style="padding:5px 0px 10px 0px;">
89 <div style="padding:5px 0px 10px 0px;">
90 ${_('No repositories yet')}
90 ${_('No repositories yet')}
91 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
91 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
92 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-button-small")}
92 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-btn")}
93 %endif
93 %endif
94 </div>
94 </div>
95 %endif
95 %endif
96 </div>
96 </div>
97
97
98 <div id="watched" class="table" style="display:none">
98 <div id="watched" class="table" style="display:none">
99 %if c.following:
99 %if c.following:
100 <table>
100 <table>
101 <thead>
101 <thead>
102 <tr>
102 <tr>
103 <th class="left">${_('Name')}</th>
103 <th class="left">${_('Name')}</th>
104 </thead>
104 </thead>
105 <tbody>
105 <tbody>
106 %for entry in c.following:
106 %for entry in c.following:
107 <tr>
107 <tr>
108 <td>
108 <td>
109 %if entry.follows_user_id:
109 %if entry.follows_user_id:
110 <img title="${_('following user')}" alt="${_('user')}" src="${h.url('/images/icons/user.png')}"/>
110 <img title="${_('following user')}" alt="${_('user')}" src="${h.url('/images/icons/user.png')}"/>
111 ${entry.follows_user.full_contact}
111 ${entry.follows_user.full_contact}
112 %endif
112 %endif
113
113
114 %if entry.follows_repo_id:
114 %if entry.follows_repo_id:
115 <div style="float:right;padding-right:5px">
115 <div style="float:right;padding-right:5px">
116 <span id="follow_toggle_${entry.follows_repository.repo_id}" class="following" title="${_('Stop following this repository')}"
116 <span id="follow_toggle_${entry.follows_repository.repo_id}" class="following" title="${_('Stop following this repository')}"
117 onclick="javascript:toggleFollowingRepo(this,${entry.follows_repository.repo_id},'${str(h.get_token())}')">
117 onclick="javascript:toggleFollowingRepo(this,${entry.follows_repository.repo_id},'${str(h.get_token())}')">
118 </span>
118 </span>
119 </div>
119 </div>
120
120
121 %if entry.follows_repository.repo_type == 'hg':
121 %if entry.follows_repository.repo_type == 'hg':
122 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
122 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
123 %elif entry.follows_repository.repo_type == 'git':
123 %elif entry.follows_repository.repo_type == 'git':
124 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
124 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
125 %endif
125 %endif
126
126
127 %if entry.follows_repository.private:
127 %if entry.follows_repository.private:
128 <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
128 <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
129 %else:
129 %else:
130 <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
130 <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
131 %endif
131 %endif
132 <span class="watched_repo">
132 <span class="watched_repo">
133 ${h.link_to(entry.follows_repository.repo_name,h.url('summary_home',repo_name=entry.follows_repository.repo_name))}
133 ${h.link_to(entry.follows_repository.repo_name,h.url('summary_home',repo_name=entry.follows_repository.repo_name))}
134 </span>
134 </span>
135 %endif
135 %endif
136 </td>
136 </td>
137 </tr>
137 </tr>
138 %endfor
138 %endfor
139 </tbody>
139 </tbody>
140 </table>
140 </table>
141 %else:
141 %else:
142 <div style="padding:5px 0px 10px 0px;">
142 <div style="padding:5px 0px 10px 0px;">
143 ${_('You are not following any users or repositories')}
143 ${_('You are not following any users or repositories')}
144 </div>
144 </div>
145 %endif
145 %endif
146 </div>
146 </div>
147 </div>
147 </div>
148
148
149 <script type="text/javascript">
149 <script type="text/javascript">
150 YUE.on('show_my','click',function(e){
150 YUE.on('show_my','click',function(e){
151 YUD.setStyle('watched','display','none');
151 YUD.setStyle('watched','display','none');
152 YUD.setStyle('my','display','');
152 YUD.setStyle('my','display','');
153 var nodes = YUQ('#my tr td a.repo_name');
153 var nodes = YUQ('#my tr td a.repo_name');
154 var target = 'q_filter';
154 var target = 'q_filter';
155 var func = function(node){
155 var func = function(node){
156 return node.parentNode.parentNode;
156 return node.parentNode.parentNode;
157 }
157 }
158 q_filter(target,nodes,func);
158 q_filter(target,nodes,func);
159 YUE.preventDefault(e);
159 YUE.preventDefault(e);
160 })
160 })
161 YUE.on('show_watched','click',function(e){
161 YUE.on('show_watched','click',function(e){
162 YUD.setStyle('my','display','none');
162 YUD.setStyle('my','display','none');
163 YUD.setStyle('watched','display','');
163 YUD.setStyle('watched','display','');
164 var nodes = YUQ('#watched .watched_repo a');
164 var nodes = YUQ('#watched .watched_repo a');
165 var target = 'q_filter';
165 var target = 'q_filter';
166 var func = function(node){
166 var func = function(node){
167 return node.parentNode.parentNode;
167 return node.parentNode.parentNode;
168 }
168 }
169 q_filter(target,nodes,func);
169 q_filter(target,nodes,func);
170 YUE.preventDefault(e);
170 YUE.preventDefault(e);
171 })
171 })
172 YUE.on('refresh','click',function(e){
172 YUE.on('refresh','click',function(e){
173 ypjax(e.currentTarget.href,"journal",function(){show_more_event();tooltip_activate();});
173 ypjax(e.currentTarget.href,"journal",function(){show_more_event();tooltip_activate();});
174 YUE.preventDefault(e);
174 YUE.preventDefault(e);
175 })
175 })
176 </script>
176 </script>
177 </%def>
177 </%def>
@@ -1,84 +1,77 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 %if c.repo_changesets:
2 %if c.repo_changesets:
3 <table>
3 <table>
4 <tr>
4 <tr>
5 <th class="left">${_('commit message')}</th>
5 <th class="left">${_('commit message')}</th>
6 <th class="left">${_('age')}</th>
6 <th class="left">${_('age')}</th>
7 <th class="left">${_('author')}</th>
7 <th class="left">${_('author')}</th>
8 <th class="left">${_('revision')}</th>
8 <th class="left">${_('revision')}</th>
9 <th class="left">${_('branch')}</th>
9 <th class="left">${_('branch')}</th>
10 <th class="left">${_('tags')}</th>
10 <th class="left">${_('tags')}</th>
11 <th class="left">${_('links')}</th>
12
13 </tr>
11 </tr>
14 %for cnt,cs in enumerate(c.repo_changesets):
12 %for cnt,cs in enumerate(c.repo_changesets):
15 <tr class="parity${cnt%2}">
13 <tr class="parity${cnt%2}">
16 <td>
14 <td>
17 ${h.link_to(h.truncate(cs.message,50),
15 ${h.link_to(h.truncate(cs.message,50),
18 h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id),
16 h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id),
19 title=cs.message)}
17 title=cs.message)}
20 </td>
18 </td>
21 <td><span class="tooltip" title="${cs.date}">
19 <td><span class="tooltip" title="${cs.date}">
22 ${h.age(cs.date)}</span>
20 ${h.age(cs.date)}</span>
23 </td>
21 </td>
24 <td title="${cs.author}">${h.person(cs.author)}</td>
22 <td title="${cs.author}">${h.person(cs.author)}</td>
25 <td>r${cs.revision}:${h.short_id(cs.raw_id)}</td>
23 <td><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></td>
26 <td>
24 <td>
27 <span class="logtags">
25 <span class="logtags">
28 <span class="branchtag">${cs.branch}</span>
26 <span class="branchtag">${cs.branch}</span>
29 </span>
27 </span>
30 </td>
28 </td>
31 <td>
29 <td>
32 <span class="logtags">
30 <span class="logtags">
33 %for tag in cs.tags:
31 %for tag in cs.tags:
34 <span class="tagtag">${tag}</span>
32 <span class="tagtag">${tag}</span>
35 %endfor
33 %endfor
36 </span>
34 </span>
37 </td>
35 </td>
38 <td class="nowrap">
39 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id),class_="ui-button-small xsmall")}
40 <span style="color:#515151">|</span>
41 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id),class_="ui-button-small xsmall")}
42 </td>
43 </tr>
36 </tr>
44 %endfor
37 %endfor
45
38
46 </table>
39 </table>
47
40
48 <script type="text/javascript">
41 <script type="text/javascript">
49 YUE.onDOMReady(function(){
42 YUE.onDOMReady(function(){
50 YUE.delegate("shortlog_data","click",function(e, matchedEl, container){
43 YUE.delegate("shortlog_data","click",function(e, matchedEl, container){
51 ypjax(e.target.href,"shortlog_data",function(){tooltip_activate();});
44 ypjax(e.target.href,"shortlog_data",function(){tooltip_activate();});
52 YUE.preventDefault(e);
45 YUE.preventDefault(e);
53 },'.pager_link');
46 },'.pager_link');
54 });
47 });
55 </script>
48 </script>
56
49
57 <div class="pagination-wh pagination-left">
50 <div class="pagination-wh pagination-left">
58 ${c.repo_changesets.pager('$link_previous ~2~ $link_next')}
51 ${c.repo_changesets.pager('$link_previous ~2~ $link_next')}
59 </div>
52 </div>
60 %else:
53 %else:
61
54
62 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
55 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
63 <h4>${_('Add or upload files directly via RhodeCode')}</h4>
56 <h4>${_('Add or upload files directly via RhodeCode')}</h4>
64 <div style="margin: 20px 30px;">
57 <div style="margin: 20px 30px;">
65 <div id="add_node_id" class="add_node">
58 <div id="add_node_id" class="add_node">
66 <a class="ui-button-small" href="${h.url('files_add_home',repo_name=c.repo_name,revision=0,f_path='')}">${_('add new file')}</a>
59 <a class="ui-btn" href="${h.url('files_add_home',repo_name=c.repo_name,revision=0,f_path='')}">${_('add new file')}</a>
67 </div>
60 </div>
68 </div>
61 </div>
69 %endif
62 %endif
70
63
71
64
72 <h4>${_('Push new repo')}</h4>
65 <h4>${_('Push new repo')}</h4>
73 <pre>
66 <pre>
74 hg clone ${c.clone_repo_url}
67 hg clone ${c.clone_repo_url}
75 hg add README # add first file
68 hg add README # add first file
76 hg commit -m "Initial" # commit with message
69 hg commit -m "Initial" # commit with message
77 hg push # push changes back
70 hg push # push changes back
78 </pre>
71 </pre>
79
72
80 <h4>${_('Existing repository?')}</h4>
73 <h4>${_('Existing repository?')}</h4>
81 <pre>
74 <pre>
82 hg push ${c.clone_repo_url}
75 hg push ${c.clone_repo_url}
83 </pre>
76 </pre>
84 %endif
77 %endif
@@ -1,670 +1,670 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${c.repo_name} ${_('Summary')} - ${c.rhodecode_name}
4 ${c.repo_name} ${_('Summary')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.dbrepo.just_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.dbrepo.just_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('summary')}
12 ${_('summary')}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('summary')}
16 ${self.menu('summary')}
17 </%def>
17 </%def>
18
18
19 <%def name="main()">
19 <%def name="main()">
20 <%
20 <%
21 summary = lambda n:{False:'summary-short'}.get(n)
21 summary = lambda n:{False:'summary-short'}.get(n)
22 %>
22 %>
23 %if c.show_stats:
23 %if c.show_stats:
24 <div class="box box-left">
24 <div class="box box-left">
25 %else:
25 %else:
26 <div class="box">
26 <div class="box">
27 %endif
27 %endif
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 ${self.breadcrumbs()}
30 ${self.breadcrumbs()}
31 </div>
31 </div>
32 <!-- end box / title -->
32 <!-- end box / title -->
33 <div class="form">
33 <div class="form">
34 <div id="summary" class="fields">
34 <div id="summary" class="fields">
35
35
36 <div class="field">
36 <div class="field">
37 <div class="label-summary">
37 <div class="label-summary">
38 <label>${_('Name')}:</label>
38 <label>${_('Name')}:</label>
39 </div>
39 </div>
40 <div class="input ${summary(c.show_stats)}">
40 <div class="input ${summary(c.show_stats)}">
41 <div style="float:right;padding:5px 0px 0px 5px">
41 <div style="float:right;padding:5px 0px 0px 5px">
42 %if c.rhodecode_user.username != 'default':
42 %if c.rhodecode_user.username != 'default':
43 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='rss_icon')}
43 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='rss_icon')}
44 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
44 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
45 %else:
45 %else:
46 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name),class_='rss_icon')}
46 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name),class_='rss_icon')}
47 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
47 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
48 %endif
48 %endif
49 </div>
49 </div>
50 %if c.rhodecode_user.username != 'default':
50 %if c.rhodecode_user.username != 'default':
51 %if c.following:
51 %if c.following:
52 <span id="follow_toggle" class="following" title="${_('Stop following this repository')}"
52 <span id="follow_toggle" class="following" title="${_('Stop following this repository')}"
53 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
53 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
54 </span>
54 </span>
55 %else:
55 %else:
56 <span id="follow_toggle" class="follow" title="${_('Start following this repository')}"
56 <span id="follow_toggle" class="follow" title="${_('Start following this repository')}"
57 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
57 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
58 </span>
58 </span>
59 %endif
59 %endif
60 %endif:
60 %endif:
61 ##REPO TYPE
61 ##REPO TYPE
62 %if c.dbrepo.repo_type =='hg':
62 %if c.dbrepo.repo_type =='hg':
63 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
63 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
64 %endif
64 %endif
65 %if c.dbrepo.repo_type =='git':
65 %if c.dbrepo.repo_type =='git':
66 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
66 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
67 %endif
67 %endif
68
68
69 ##PUBLIC/PRIVATE
69 ##PUBLIC/PRIVATE
70 %if c.dbrepo.private:
70 %if c.dbrepo.private:
71 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
71 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
72 %else:
72 %else:
73 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
73 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
74 %endif
74 %endif
75
75
76 ##REPO NAME
76 ##REPO NAME
77 <span class="repo_name">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
77 <span class="repo_name">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
78
78
79 ##FORK
79 ##FORK
80 %if c.dbrepo.fork:
80 %if c.dbrepo.fork:
81 <div style="margin-top:5px;clear:both"">
81 <div style="margin-top:5px;clear:both"">
82 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
82 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
83 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
83 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
84 </a>
84 </a>
85 </div>
85 </div>
86 %endif
86 %endif
87 ##REMOTE
87 ##REMOTE
88 %if c.dbrepo.clone_uri:
88 %if c.dbrepo.clone_uri:
89 <div style="margin-top:5px;clear:both">
89 <div style="margin-top:5px;clear:both">
90 <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
90 <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
91 ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
91 ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
92 </a>
92 </a>
93 </div>
93 </div>
94 %endif
94 %endif
95 </div>
95 </div>
96 </div>
96 </div>
97
97
98 <div class="field">
98 <div class="field">
99 <div class="label-summary">
99 <div class="label-summary">
100 <label>${_('Description')}:</label>
100 <label>${_('Description')}:</label>
101 </div>
101 </div>
102 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(c.dbrepo.description)}</div>
102 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(c.dbrepo.description)}</div>
103 </div>
103 </div>
104
104
105 <div class="field">
105 <div class="field">
106 <div class="label-summary">
106 <div class="label-summary">
107 <label>${_('Contact')}:</label>
107 <label>${_('Contact')}:</label>
108 </div>
108 </div>
109 <div class="input ${summary(c.show_stats)}">
109 <div class="input ${summary(c.show_stats)}">
110 <div class="gravatar">
110 <div class="gravatar">
111 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
111 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
112 </div>
112 </div>
113 ${_('Username')}: ${c.dbrepo.user.username}<br/>
113 ${_('Username')}: ${c.dbrepo.user.username}<br/>
114 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
114 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
115 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
115 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
116 </div>
116 </div>
117 </div>
117 </div>
118
118
119 <div class="field">
119 <div class="field">
120 <div class="label-summary">
120 <div class="label-summary">
121 <label>${_('Clone url')}:</label>
121 <label>${_('Clone url')}:</label>
122 </div>
122 </div>
123 <div class="input ${summary(c.show_stats)}">
123 <div class="input ${summary(c.show_stats)}">
124 <input type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}" size="70"/>
124 <input type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}" size="70"/>
125 </div>
125 </div>
126 </div>
126 </div>
127
127
128 <div class="field">
128 <div class="field">
129 <div class="label-summary">
129 <div class="label-summary">
130 <label>${_('Trending files')}:</label>
130 <label>${_('Trending files')}:</label>
131 </div>
131 </div>
132 <div class="input ${summary(c.show_stats)}">
132 <div class="input ${summary(c.show_stats)}">
133 %if c.show_stats:
133 %if c.show_stats:
134 <div id="lang_stats"></div>
134 <div id="lang_stats"></div>
135 %else:
135 %else:
136 ${_('Statistics are disabled for this repository')}
136 ${_('Statistics are disabled for this repository')}
137 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
137 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
138 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
138 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-btn")}
139 %endif
139 %endif
140 %endif
140 %endif
141 </div>
141 </div>
142 </div>
142 </div>
143
143
144 <div class="field">
144 <div class="field">
145 <div class="label-summary">
145 <div class="label-summary">
146 <label>${_('Download')}:</label>
146 <label>${_('Download')}:</label>
147 </div>
147 </div>
148 <div class="input ${summary(c.show_stats)}">
148 <div class="input ${summary(c.show_stats)}">
149 %if len(c.rhodecode_repo.revisions) == 0:
149 %if len(c.rhodecode_repo.revisions) == 0:
150 ${_('There are no downloads yet')}
150 ${_('There are no downloads yet')}
151 %elif c.enable_downloads is False:
151 %elif c.enable_downloads is False:
152 ${_('Downloads are disabled for this repository')}
152 ${_('Downloads are disabled for this repository')}
153 %if h.HasPermissionAll('hg.admin')('enable downloads on from summary'):
153 %if h.HasPermissionAll('hg.admin')('enable downloads on from summary'):
154 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
154 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-btn")}
155 %endif
155 %endif
156 %else:
156 %else:
157 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
157 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
158 <span id="${'zip_link'}">${h.link_to('Download as zip',h.url('files_archive_home',repo_name=c.dbrepo.repo_name,fname='tip.zip'),class_="archive_icon ui-button-small")}</span>
158 <span id="${'zip_link'}">${h.link_to('Download as zip',h.url('files_archive_home',repo_name=c.dbrepo.repo_name,fname='tip.zip'),class_="archive_icon ui-btn")}</span>
159 <span style="vertical-align: bottom">
159 <span style="vertical-align: bottom">
160 <input id="archive_subrepos" type="checkbox" name="subrepos"/> <span class="tooltip" title="${_('Check this to download archive with subrepos')}" >${_('with subrepos')}</span>
160 <input id="archive_subrepos" type="checkbox" name="subrepos"/> <span class="tooltip" title="${_('Check this to download archive with subrepos')}" >${_('with subrepos')}</span>
161 </span>
161 </span>
162 %endif
162 %endif
163 </div>
163 </div>
164 </div>
164 </div>
165 </div>
165 </div>
166 </div>
166 </div>
167 </div>
167 </div>
168
168
169 %if c.show_stats:
169 %if c.show_stats:
170 <div class="box box-right" style="min-height:455px">
170 <div class="box box-right" style="min-height:455px">
171 <!-- box / title -->
171 <!-- box / title -->
172 <div class="title">
172 <div class="title">
173 <h5>${_('Commit activity by day / author')}</h5>
173 <h5>${_('Commit activity by day / author')}</h5>
174 </div>
174 </div>
175
175
176 <div class="graph">
176 <div class="graph">
177 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">
177 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">
178 %if c.no_data:
178 %if c.no_data:
179 ${c.no_data_msg}
179 ${c.no_data_msg}
180 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
180 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
181 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
181 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-btn")}
182 %endif
182 %endif
183 %else:
183 %else:
184 ${_('Loaded in')} ${c.stats_percentage} %
184 ${_('Loaded in')} ${c.stats_percentage} %
185 %endif
185 %endif
186 </div>
186 </div>
187 <div id="commit_history" style="width:450px;height:300px;float:left"></div>
187 <div id="commit_history" style="width:450px;height:300px;float:left"></div>
188 <div style="clear: both;height: 10px"></div>
188 <div style="clear: both;height: 10px"></div>
189 <div id="overview" style="width:450px;height:100px;float:left"></div>
189 <div id="overview" style="width:450px;height:100px;float:left"></div>
190
190
191 <div id="legend_data" style="clear:both;margin-top:10px;">
191 <div id="legend_data" style="clear:both;margin-top:10px;">
192 <div id="legend_container"></div>
192 <div id="legend_container"></div>
193 <div id="legend_choices">
193 <div id="legend_choices">
194 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
194 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
195 </div>
195 </div>
196 </div>
196 </div>
197 </div>
197 </div>
198 </div>
198 </div>
199 %endif
199 %endif
200
200
201 <div class="box">
201 <div class="box">
202 <div class="title">
202 <div class="title">
203 <div class="breadcrumbs">
203 <div class="breadcrumbs">
204 %if c.repo_changesets:
204 %if c.repo_changesets:
205 ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
205 ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
206 %else:
206 %else:
207 ${_('Quick start')}
207 ${_('Quick start')}
208 %endif
208 %endif
209 </div>
209 </div>
210 </div>
210 </div>
211 <div class="table">
211 <div class="table">
212 <div id="shortlog_data">
212 <div id="shortlog_data">
213 <%include file='../shortlog/shortlog_data.html'/>
213 <%include file='../shortlog/shortlog_data.html'/>
214 </div>
214 </div>
215 </div>
215 </div>
216 </div>
216 </div>
217
217
218 %if c.readme_data:
218 %if c.readme_data:
219 <div class="box" style="background-color: #FAFAFA">
219 <div class="box" style="background-color: #FAFAFA">
220 <div class="title">
220 <div class="title">
221 <div class="breadcrumbs"><a href="${h.url('files_home',repo_name=c.repo_name,revision='tip',f_path=c.readme_file)}">${c.readme_file}</a></div>
221 <div class="breadcrumbs"><a href="${h.url('files_home',repo_name=c.repo_name,revision='tip',f_path=c.readme_file)}">${c.readme_file}</a></div>
222 </div>
222 </div>
223 <div class="readme">
223 <div class="readme">
224 <div class="readme_box">
224 <div class="readme_box">
225 ${c.readme_data|n}
225 ${c.readme_data|n}
226 </div>
226 </div>
227 </div>
227 </div>
228 </div>
228 </div>
229 %endif
229 %endif
230
230
231 <script type="text/javascript">
231 <script type="text/javascript">
232 var clone_url = 'clone_url';
232 var clone_url = 'clone_url';
233 YUE.on(clone_url,'click',function(e){
233 YUE.on(clone_url,'click',function(e){
234 if(YUD.hasClass(clone_url,'selected')){
234 if(YUD.hasClass(clone_url,'selected')){
235 return
235 return
236 }
236 }
237 else{
237 else{
238 YUD.addClass(clone_url,'selected');
238 YUD.addClass(clone_url,'selected');
239 YUD.get(clone_url).select();
239 YUD.get(clone_url).select();
240 }
240 }
241 })
241 })
242
242
243 var tmpl_links = {};
243 var tmpl_links = {};
244 %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()):
244 %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()):
245 tmpl_links["${archive['type']}"] = '${h.link_to('__NAME__', h.url('files_archive_home',repo_name=c.dbrepo.repo_name, fname='__CS__'+archive['extension'],subrepos='__SUB__'),class_='archive_icon ui-button-small')}';
245 tmpl_links["${archive['type']}"] = '${h.link_to('__NAME__', h.url('files_archive_home',repo_name=c.dbrepo.repo_name, fname='__CS__'+archive['extension'],subrepos='__SUB__'),class_='archive_icon ui-btn')}';
246 %endfor
246 %endfor
247
247
248 YUE.on(['download_options','archive_subrepos'],'change',function(e){
248 YUE.on(['download_options','archive_subrepos'],'change',function(e){
249 var sm = YUD.get('download_options');
249 var sm = YUD.get('download_options');
250 var new_cs = sm.options[sm.selectedIndex];
250 var new_cs = sm.options[sm.selectedIndex];
251
251
252 for(k in tmpl_links){
252 for(k in tmpl_links){
253 var s = YUD.get(k+'_link');
253 var s = YUD.get(k+'_link');
254 if(s){
254 if(s){
255 var title_tmpl = "${_('Download %s as %s') % ('__CS_NAME__','__CS_EXT__')}";
255 var title_tmpl = "${_('Download %s as %s') % ('__CS_NAME__','__CS_EXT__')}";
256 title_tmpl= title_tmpl.replace('__CS_NAME__',new_cs.text);
256 title_tmpl= title_tmpl.replace('__CS_NAME__',new_cs.text);
257 title_tmpl = title_tmpl.replace('__CS_EXT__',k);
257 title_tmpl = title_tmpl.replace('__CS_EXT__',k);
258
258
259 var url = tmpl_links[k].replace('__CS__',new_cs.value);
259 var url = tmpl_links[k].replace('__CS__',new_cs.value);
260 var subrepos = YUD.get('archive_subrepos').checked;
260 var subrepos = YUD.get('archive_subrepos').checked;
261 url = url.replace('__SUB__',subrepos);
261 url = url.replace('__SUB__',subrepos);
262 url = url.replace('__NAME__',title_tmpl);
262 url = url.replace('__NAME__',title_tmpl);
263 s.innerHTML = url
263 s.innerHTML = url
264 }
264 }
265 }
265 }
266 });
266 });
267 </script>
267 </script>
268 %if c.show_stats:
268 %if c.show_stats:
269 <script type="text/javascript">
269 <script type="text/javascript">
270 var data = ${c.trending_languages|n};
270 var data = ${c.trending_languages|n};
271 var total = 0;
271 var total = 0;
272 var no_data = true;
272 var no_data = true;
273 for (k in data){
273 for (k in data){
274 total += data[k].count;
274 total += data[k].count;
275 no_data = false;
275 no_data = false;
276 }
276 }
277 var tbl = document.createElement('table');
277 var tbl = document.createElement('table');
278 tbl.setAttribute('class','trending_language_tbl');
278 tbl.setAttribute('class','trending_language_tbl');
279 var cnt = 0;
279 var cnt = 0;
280 for (k in data){
280 for (k in data){
281 cnt += 1;
281 cnt += 1;
282 var hide = cnt>2;
282 var hide = cnt>2;
283 var tr = document.createElement('tr');
283 var tr = document.createElement('tr');
284 if (hide){
284 if (hide){
285 tr.setAttribute('style','display:none');
285 tr.setAttribute('style','display:none');
286 tr.setAttribute('class','stats_hidden');
286 tr.setAttribute('class','stats_hidden');
287 }
287 }
288 var percentage = Math.round((data[k].count/total*100),2);
288 var percentage = Math.round((data[k].count/total*100),2);
289 var value = data[k].count;
289 var value = data[k].count;
290 var td1 = document.createElement('td');
290 var td1 = document.createElement('td');
291 td1.width = 150;
291 td1.width = 150;
292 var trending_language_label = document.createElement('div');
292 var trending_language_label = document.createElement('div');
293 trending_language_label.innerHTML = data[k].desc+" ("+k+")";
293 trending_language_label.innerHTML = data[k].desc+" ("+k+")";
294 td1.appendChild(trending_language_label);
294 td1.appendChild(trending_language_label);
295
295
296 var td2 = document.createElement('td');
296 var td2 = document.createElement('td');
297 td2.setAttribute('style','padding-right:14px !important');
297 td2.setAttribute('style','padding-right:14px !important');
298 var trending_language = document.createElement('div');
298 var trending_language = document.createElement('div');
299 var nr_files = value+" ${_('files')}";
299 var nr_files = value+" ${_('files')}";
300
300
301 trending_language.title = k+" "+nr_files;
301 trending_language.title = k+" "+nr_files;
302
302
303 if (percentage>22){
303 if (percentage>22){
304 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"% "+nr_files+ "</b>";
304 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"% "+nr_files+ "</b>";
305 }
305 }
306 else{
306 else{
307 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"%</b>";
307 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"%</b>";
308 }
308 }
309
309
310 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
310 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
311 trending_language.style.width=percentage+"%";
311 trending_language.style.width=percentage+"%";
312 td2.appendChild(trending_language);
312 td2.appendChild(trending_language);
313
313
314 tr.appendChild(td1);
314 tr.appendChild(td1);
315 tr.appendChild(td2);
315 tr.appendChild(td2);
316 tbl.appendChild(tr);
316 tbl.appendChild(tr);
317 if(cnt == 3){
317 if(cnt == 3){
318 var show_more = document.createElement('tr');
318 var show_more = document.createElement('tr');
319 var td = document.createElement('td');
319 var td = document.createElement('td');
320 lnk = document.createElement('a');
320 lnk = document.createElement('a');
321
321
322 lnk.href='#';
322 lnk.href='#';
323 lnk.innerHTML = "${_('show more')}";
323 lnk.innerHTML = "${_('show more')}";
324 lnk.id='code_stats_show_more';
324 lnk.id='code_stats_show_more';
325 td.appendChild(lnk);
325 td.appendChild(lnk);
326
326
327 show_more.appendChild(td);
327 show_more.appendChild(td);
328 show_more.appendChild(document.createElement('td'));
328 show_more.appendChild(document.createElement('td'));
329 tbl.appendChild(show_more);
329 tbl.appendChild(show_more);
330 }
330 }
331
331
332 }
332 }
333
333
334 YUD.get('lang_stats').appendChild(tbl);
334 YUD.get('lang_stats').appendChild(tbl);
335 YUE.on('code_stats_show_more','click',function(){
335 YUE.on('code_stats_show_more','click',function(){
336 l = YUD.getElementsByClassName('stats_hidden')
336 l = YUD.getElementsByClassName('stats_hidden')
337 for (e in l){
337 for (e in l){
338 YUD.setStyle(l[e],'display','');
338 YUD.setStyle(l[e],'display','');
339 };
339 };
340 YUD.setStyle(YUD.get('code_stats_show_more'),
340 YUD.setStyle(YUD.get('code_stats_show_more'),
341 'display','none');
341 'display','none');
342 });
342 });
343 </script>
343 </script>
344 <script type="text/javascript">
344 <script type="text/javascript">
345 /**
345 /**
346 * Plots summary graph
346 * Plots summary graph
347 *
347 *
348 * @class SummaryPlot
348 * @class SummaryPlot
349 * @param {from} initial from for detailed graph
349 * @param {from} initial from for detailed graph
350 * @param {to} initial to for detailed graph
350 * @param {to} initial to for detailed graph
351 * @param {dataset}
351 * @param {dataset}
352 * @param {overview_dataset}
352 * @param {overview_dataset}
353 */
353 */
354 function SummaryPlot(from,to,dataset,overview_dataset) {
354 function SummaryPlot(from,to,dataset,overview_dataset) {
355 var initial_ranges = {
355 var initial_ranges = {
356 "xaxis":{
356 "xaxis":{
357 "from":from,
357 "from":from,
358 "to":to,
358 "to":to,
359 },
359 },
360 };
360 };
361 var dataset = dataset;
361 var dataset = dataset;
362 var overview_dataset = [overview_dataset];
362 var overview_dataset = [overview_dataset];
363 var choiceContainer = YUD.get("legend_choices");
363 var choiceContainer = YUD.get("legend_choices");
364 var choiceContainerTable = YUD.get("legend_choices_tables");
364 var choiceContainerTable = YUD.get("legend_choices_tables");
365 var plotContainer = YUD.get('commit_history');
365 var plotContainer = YUD.get('commit_history');
366 var overviewContainer = YUD.get('overview');
366 var overviewContainer = YUD.get('overview');
367
367
368 var plot_options = {
368 var plot_options = {
369 bars: {show:true,align:'center',lineWidth:4},
369 bars: {show:true,align:'center',lineWidth:4},
370 legend: {show:true, container:"legend_container"},
370 legend: {show:true, container:"legend_container"},
371 points: {show:true,radius:0,fill:false},
371 points: {show:true,radius:0,fill:false},
372 yaxis: {tickDecimals:0,},
372 yaxis: {tickDecimals:0,},
373 xaxis: {
373 xaxis: {
374 mode: "time",
374 mode: "time",
375 timeformat: "%d/%m",
375 timeformat: "%d/%m",
376 min:from,
376 min:from,
377 max:to,
377 max:to,
378 },
378 },
379 grid: {
379 grid: {
380 hoverable: true,
380 hoverable: true,
381 clickable: true,
381 clickable: true,
382 autoHighlight:true,
382 autoHighlight:true,
383 color: "#999"
383 color: "#999"
384 },
384 },
385 //selection: {mode: "x"}
385 //selection: {mode: "x"}
386 };
386 };
387 var overview_options = {
387 var overview_options = {
388 legend:{show:false},
388 legend:{show:false},
389 bars: {show:true,barWidth: 2,},
389 bars: {show:true,barWidth: 2,},
390 shadowSize: 0,
390 shadowSize: 0,
391 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
391 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
392 yaxis: {ticks: 3, min: 0,tickDecimals:0,},
392 yaxis: {ticks: 3, min: 0,tickDecimals:0,},
393 grid: {color: "#999",},
393 grid: {color: "#999",},
394 selection: {mode: "x"}
394 selection: {mode: "x"}
395 };
395 };
396
396
397 /**
397 /**
398 *get dummy data needed in few places
398 *get dummy data needed in few places
399 */
399 */
400 function getDummyData(label){
400 function getDummyData(label){
401 return {"label":label,
401 return {"label":label,
402 "data":[{"time":0,
402 "data":[{"time":0,
403 "commits":0,
403 "commits":0,
404 "added":0,
404 "added":0,
405 "changed":0,
405 "changed":0,
406 "removed":0,
406 "removed":0,
407 }],
407 }],
408 "schema":["commits"],
408 "schema":["commits"],
409 "color":'#ffffff',
409 "color":'#ffffff',
410 }
410 }
411 }
411 }
412
412
413 /**
413 /**
414 * generate checkboxes accordindly to data
414 * generate checkboxes accordindly to data
415 * @param keys
415 * @param keys
416 * @returns
416 * @returns
417 */
417 */
418 function generateCheckboxes(data) {
418 function generateCheckboxes(data) {
419 //append checkboxes
419 //append checkboxes
420 var i = 0;
420 var i = 0;
421 choiceContainerTable.innerHTML = '';
421 choiceContainerTable.innerHTML = '';
422 for(var pos in data) {
422 for(var pos in data) {
423
423
424 data[pos].color = i;
424 data[pos].color = i;
425 i++;
425 i++;
426 if(data[pos].label != ''){
426 if(data[pos].label != ''){
427 choiceContainerTable.innerHTML += '<tr><td>'+
427 choiceContainerTable.innerHTML += '<tr><td>'+
428 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
428 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
429 +data[pos].label+
429 +data[pos].label+
430 '</td></tr>';
430 '</td></tr>';
431 }
431 }
432 }
432 }
433 }
433 }
434
434
435 /**
435 /**
436 * ToolTip show
436 * ToolTip show
437 */
437 */
438 function showTooltip(x, y, contents) {
438 function showTooltip(x, y, contents) {
439 var div=document.getElementById('tooltip');
439 var div=document.getElementById('tooltip');
440 if(!div) {
440 if(!div) {
441 div = document.createElement('div');
441 div = document.createElement('div');
442 div.id="tooltip";
442 div.id="tooltip";
443 div.style.position="absolute";
443 div.style.position="absolute";
444 div.style.border='1px solid #fdd';
444 div.style.border='1px solid #fdd';
445 div.style.padding='2px';
445 div.style.padding='2px';
446 div.style.backgroundColor='#fee';
446 div.style.backgroundColor='#fee';
447 document.body.appendChild(div);
447 document.body.appendChild(div);
448 }
448 }
449 YUD.setStyle(div, 'opacity', 0);
449 YUD.setStyle(div, 'opacity', 0);
450 div.innerHTML = contents;
450 div.innerHTML = contents;
451 div.style.top=(y + 5) + "px";
451 div.style.top=(y + 5) + "px";
452 div.style.left=(x + 5) + "px";
452 div.style.left=(x + 5) + "px";
453
453
454 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
454 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
455 anim.animate();
455 anim.animate();
456 }
456 }
457
457
458 /**
458 /**
459 * This function will detect if selected period has some changesets
459 * This function will detect if selected period has some changesets
460 for this user if it does this data is then pushed for displaying
460 for this user if it does this data is then pushed for displaying
461 Additionally it will only display users that are selected by the checkbox
461 Additionally it will only display users that are selected by the checkbox
462 */
462 */
463 function getDataAccordingToRanges(ranges) {
463 function getDataAccordingToRanges(ranges) {
464
464
465 var data = [];
465 var data = [];
466 var new_dataset = {};
466 var new_dataset = {};
467 var keys = [];
467 var keys = [];
468 var max_commits = 0;
468 var max_commits = 0;
469 for(var key in dataset){
469 for(var key in dataset){
470
470
471 for(var ds in dataset[key].data){
471 for(var ds in dataset[key].data){
472 commit_data = dataset[key].data[ds];
472 commit_data = dataset[key].data[ds];
473 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
473 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
474
474
475 if(new_dataset[key] === undefined){
475 if(new_dataset[key] === undefined){
476 new_dataset[key] = {data:[],schema:["commits"],label:key};
476 new_dataset[key] = {data:[],schema:["commits"],label:key};
477 }
477 }
478 new_dataset[key].data.push(commit_data);
478 new_dataset[key].data.push(commit_data);
479 }
479 }
480 }
480 }
481 if (new_dataset[key] !== undefined){
481 if (new_dataset[key] !== undefined){
482 data.push(new_dataset[key]);
482 data.push(new_dataset[key]);
483 }
483 }
484 }
484 }
485
485
486 if (data.length > 0){
486 if (data.length > 0){
487 return data;
487 return data;
488 }
488 }
489 else{
489 else{
490 //just return dummy data for graph to plot itself
490 //just return dummy data for graph to plot itself
491 return [getDummyData('')];
491 return [getDummyData('')];
492 }
492 }
493 }
493 }
494
494
495 /**
495 /**
496 * redraw using new checkbox data
496 * redraw using new checkbox data
497 */
497 */
498 function plotchoiced(e,args){
498 function plotchoiced(e,args){
499 var cur_data = args[0];
499 var cur_data = args[0];
500 var cur_ranges = args[1];
500 var cur_ranges = args[1];
501
501
502 var new_data = [];
502 var new_data = [];
503 var inputs = choiceContainer.getElementsByTagName("input");
503 var inputs = choiceContainer.getElementsByTagName("input");
504
504
505 //show only checked labels
505 //show only checked labels
506 for(var i=0; i<inputs.length; i++) {
506 for(var i=0; i<inputs.length; i++) {
507 var checkbox_key = inputs[i].name;
507 var checkbox_key = inputs[i].name;
508
508
509 if(inputs[i].checked){
509 if(inputs[i].checked){
510 for(var d in cur_data){
510 for(var d in cur_data){
511 if(cur_data[d].label == checkbox_key){
511 if(cur_data[d].label == checkbox_key){
512 new_data.push(cur_data[d]);
512 new_data.push(cur_data[d]);
513 }
513 }
514 }
514 }
515 }
515 }
516 else{
516 else{
517 //push dummy data to not hide the label
517 //push dummy data to not hide the label
518 new_data.push(getDummyData(checkbox_key));
518 new_data.push(getDummyData(checkbox_key));
519 }
519 }
520 }
520 }
521
521
522 var new_options = YAHOO.lang.merge(plot_options, {
522 var new_options = YAHOO.lang.merge(plot_options, {
523 xaxis: {
523 xaxis: {
524 min: cur_ranges.xaxis.from,
524 min: cur_ranges.xaxis.from,
525 max: cur_ranges.xaxis.to,
525 max: cur_ranges.xaxis.to,
526 mode:"time",
526 mode:"time",
527 timeformat: "%d/%m",
527 timeformat: "%d/%m",
528 },
528 },
529 });
529 });
530 if (!new_data){
530 if (!new_data){
531 new_data = [[0,1]];
531 new_data = [[0,1]];
532 }
532 }
533 // do the zooming
533 // do the zooming
534 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
534 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
535
535
536 plot.subscribe("plotselected", plotselected);
536 plot.subscribe("plotselected", plotselected);
537
537
538 //resubscribe plothover
538 //resubscribe plothover
539 plot.subscribe("plothover", plothover);
539 plot.subscribe("plothover", plothover);
540
540
541 // don't fire event on the overview to prevent eternal loop
541 // don't fire event on the overview to prevent eternal loop
542 overview.setSelection(cur_ranges, true);
542 overview.setSelection(cur_ranges, true);
543
543
544 }
544 }
545
545
546 /**
546 /**
547 * plot only selected items from overview
547 * plot only selected items from overview
548 * @param ranges
548 * @param ranges
549 * @returns
549 * @returns
550 */
550 */
551 function plotselected(ranges,cur_data) {
551 function plotselected(ranges,cur_data) {
552 //updates the data for new plot
552 //updates the data for new plot
553 var data = getDataAccordingToRanges(ranges);
553 var data = getDataAccordingToRanges(ranges);
554 generateCheckboxes(data);
554 generateCheckboxes(data);
555
555
556 var new_options = YAHOO.lang.merge(plot_options, {
556 var new_options = YAHOO.lang.merge(plot_options, {
557 xaxis: {
557 xaxis: {
558 min: ranges.xaxis.from,
558 min: ranges.xaxis.from,
559 max: ranges.xaxis.to,
559 max: ranges.xaxis.to,
560 mode:"time",
560 mode:"time",
561 timeformat: "%d/%m",
561 timeformat: "%d/%m",
562 },
562 },
563 });
563 });
564 // do the zooming
564 // do the zooming
565 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
565 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
566
566
567 plot.subscribe("plotselected", plotselected);
567 plot.subscribe("plotselected", plotselected);
568
568
569 //resubscribe plothover
569 //resubscribe plothover
570 plot.subscribe("plothover", plothover);
570 plot.subscribe("plothover", plothover);
571
571
572 // don't fire event on the overview to prevent eternal loop
572 // don't fire event on the overview to prevent eternal loop
573 overview.setSelection(ranges, true);
573 overview.setSelection(ranges, true);
574
574
575 //resubscribe choiced
575 //resubscribe choiced
576 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
576 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
577 }
577 }
578
578
579 var previousPoint = null;
579 var previousPoint = null;
580
580
581 function plothover(o) {
581 function plothover(o) {
582 var pos = o.pos;
582 var pos = o.pos;
583 var item = o.item;
583 var item = o.item;
584
584
585 //YUD.get("x").innerHTML = pos.x.toFixed(2);
585 //YUD.get("x").innerHTML = pos.x.toFixed(2);
586 //YUD.get("y").innerHTML = pos.y.toFixed(2);
586 //YUD.get("y").innerHTML = pos.y.toFixed(2);
587 if (item) {
587 if (item) {
588 if (previousPoint != item.datapoint) {
588 if (previousPoint != item.datapoint) {
589 previousPoint = item.datapoint;
589 previousPoint = item.datapoint;
590
590
591 var tooltip = YUD.get("tooltip");
591 var tooltip = YUD.get("tooltip");
592 if(tooltip) {
592 if(tooltip) {
593 tooltip.parentNode.removeChild(tooltip);
593 tooltip.parentNode.removeChild(tooltip);
594 }
594 }
595 var x = item.datapoint.x.toFixed(2);
595 var x = item.datapoint.x.toFixed(2);
596 var y = item.datapoint.y.toFixed(2);
596 var y = item.datapoint.y.toFixed(2);
597
597
598 if (!item.series.label){
598 if (!item.series.label){
599 item.series.label = 'commits';
599 item.series.label = 'commits';
600 }
600 }
601 var d = new Date(x*1000);
601 var d = new Date(x*1000);
602 var fd = d.toDateString()
602 var fd = d.toDateString()
603 var nr_commits = parseInt(y);
603 var nr_commits = parseInt(y);
604
604
605 var cur_data = dataset[item.series.label].data[item.dataIndex];
605 var cur_data = dataset[item.series.label].data[item.dataIndex];
606 var added = cur_data.added;
606 var added = cur_data.added;
607 var changed = cur_data.changed;
607 var changed = cur_data.changed;
608 var removed = cur_data.removed;
608 var removed = cur_data.removed;
609
609
610 var nr_commits_suffix = " ${_('commits')} ";
610 var nr_commits_suffix = " ${_('commits')} ";
611 var added_suffix = " ${_('files added')} ";
611 var added_suffix = " ${_('files added')} ";
612 var changed_suffix = " ${_('files changed')} ";
612 var changed_suffix = " ${_('files changed')} ";
613 var removed_suffix = " ${_('files removed')} ";
613 var removed_suffix = " ${_('files removed')} ";
614
614
615
615
616 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
616 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
617 if(added==1){added_suffix=" ${_('file added')} ";}
617 if(added==1){added_suffix=" ${_('file added')} ";}
618 if(changed==1){changed_suffix=" ${_('file changed')} ";}
618 if(changed==1){changed_suffix=" ${_('file changed')} ";}
619 if(removed==1){removed_suffix=" ${_('file removed')} ";}
619 if(removed==1){removed_suffix=" ${_('file removed')} ";}
620
620
621 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
621 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
622 +'<br/>'+
622 +'<br/>'+
623 nr_commits + nr_commits_suffix+'<br/>'+
623 nr_commits + nr_commits_suffix+'<br/>'+
624 added + added_suffix +'<br/>'+
624 added + added_suffix +'<br/>'+
625 changed + changed_suffix + '<br/>'+
625 changed + changed_suffix + '<br/>'+
626 removed + removed_suffix + '<br/>');
626 removed + removed_suffix + '<br/>');
627 }
627 }
628 }
628 }
629 else {
629 else {
630 var tooltip = YUD.get("tooltip");
630 var tooltip = YUD.get("tooltip");
631
631
632 if(tooltip) {
632 if(tooltip) {
633 tooltip.parentNode.removeChild(tooltip);
633 tooltip.parentNode.removeChild(tooltip);
634 }
634 }
635 previousPoint = null;
635 previousPoint = null;
636 }
636 }
637 }
637 }
638
638
639 /**
639 /**
640 * MAIN EXECUTION
640 * MAIN EXECUTION
641 */
641 */
642
642
643 var data = getDataAccordingToRanges(initial_ranges);
643 var data = getDataAccordingToRanges(initial_ranges);
644 generateCheckboxes(data);
644 generateCheckboxes(data);
645
645
646 //main plot
646 //main plot
647 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
647 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
648
648
649 //overview
649 //overview
650 var overview = YAHOO.widget.Flot(overviewContainer,
650 var overview = YAHOO.widget.Flot(overviewContainer,
651 overview_dataset, overview_options);
651 overview_dataset, overview_options);
652
652
653 //show initial selection on overview
653 //show initial selection on overview
654 overview.setSelection(initial_ranges);
654 overview.setSelection(initial_ranges);
655
655
656 plot.subscribe("plotselected", plotselected);
656 plot.subscribe("plotselected", plotselected);
657 plot.subscribe("plothover", plothover)
657 plot.subscribe("plothover", plothover)
658
658
659 overview.subscribe("plotselected", function (ranges) {
659 overview.subscribe("plotselected", function (ranges) {
660 plot.setSelection(ranges);
660 plot.setSelection(ranges);
661 });
661 });
662
662
663 // user choices on overview
663 // user choices on overview
664 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
664 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
665 }
665 }
666 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
666 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
667 </script>
667 </script>
668 %endif
668 %endif
669
669
670 </%def>
670 </%def>
@@ -1,33 +1,33 b''
1 %if c.repo_tags:
1 %if c.repo_tags:
2 <table>
2 <table>
3 <tr>
3 <tr>
4 <th class="left">${_('date')}</th>
4 <th class="left">${_('date')}</th>
5 <th class="left">${_('name')}</th>
5 <th class="left">${_('name')}</th>
6 <th class="left">${_('author')}</th>
6 <th class="left">${_('author')}</th>
7 <th class="left">${_('revision')}</th>
7 <th class="left">${_('revision')}</th>
8 <th class="left">${_('links')}</th>
8 <th class="left">${_('links')}</th>
9 </tr>
9 </tr>
10 %for cnt,tag in enumerate(c.repo_tags.items()):
10 %for cnt,tag in enumerate(c.repo_tags.items()):
11 <tr class="parity${cnt%2}">
11 <tr class="parity${cnt%2}">
12 <td><span class="tooltip" title="${h.age(tag[1].date)}">
12 <td><span class="tooltip" title="${h.age(tag[1].date)}">
13 ${tag[1].date}</span>
13 ${tag[1].date}</span>
14 </td>
14 </td>
15 <td>
15 <td>
16 <span class="logtags">
16 <span class="logtags">
17 <span class="tagtag">${h.link_to(tag[0],
17 <span class="tagtag">${h.link_to(tag[0],
18 h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}</span>
18 h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}</span>
19 </span>
19 </span>
20 </td>
20 </td>
21 <td title="${tag[1].author}">${h.person(tag[1].author)}</td>
21 <td title="${tag[1].author}">${h.person(tag[1].author)}</td>
22 <td>r${tag[1].revision}:${h.short_id(tag[1].raw_id)}</td>
22 <td>r${tag[1].revision}:${h.short_id(tag[1].raw_id)}</td>
23 <td class="nowrap">
23 <td class="nowrap">
24 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id),class_="ui-button-small xsmall")}
24 ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id),class_="ui-btn xsmall")}
25 <span style="color:#515151">|</span>
25 <span style="color:#515151">|</span>
26 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id),class_="ui-button-small xsmall")}
26 ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id),class_="ui-btn xsmall")}
27 </td>
27 </td>
28 </tr>
28 </tr>
29 %endfor
29 %endfor
30 </table>
30 </table>
31 %else:
31 %else:
32 ${_('There are no tags yet')}
32 ${_('There are no tags yet')}
33 %endif No newline at end of file
33 %endif
General Comments 0
You need to be logged in to leave comments. Login now