@@ -295,6 +295,13 @@ web.enableRpcManagement = false | |||
# SINCE 0.7.0 | |||
web.enableRpcAdministration = false | |||
# If true, the web ui layout will respond and adapt to the browser's dimensions. | |||
# if false, the web ui will use a 940px fixed-width layout. | |||
# http://twitter.github.com/bootstrap/scaffolding.html#responsive | |||
# | |||
# SINCE 1.0.0 | |||
web.useResponsiveLayout = true | |||
# Allow Gravatar images to be displayed in Gitblit pages. | |||
# | |||
# SINCE 0.8.0 |
@@ -11,11 +11,14 @@ | |||
#### changes | |||
- Changed default layout for web ui from fixed-width layout to responsive (issue 101) | |||
- IUserService interface has changed to better accomodate custom authentication and/or custom authorization | |||
- Updated Japanese translation (Github/zakki) | |||
#### additions | |||
- Added setting to control responsive or fixed-width layout (issue 101) | |||
**New:** *web.useResponsiveLayout = true* | |||
- Added setting to control charsets for blob string decoding. Default encodings are UTF-8, ISO-8859-1, and server's default charset. (issue 97) | |||
**New:** *web.blobEncodings = UTF-8 ISO-8859-1* | |||
- Exposed JGit's internal configuration settings in gitblit.properties/web.xml (issue 93) | |||
@@ -32,6 +35,11 @@ | |||
- Added script to facilitate proxy environment setup on Linux (Github/mragab) | |||
- Added Spanish translation (Eduardo Guervos Narvaez) | |||
#### dependency changes | |||
- updated to Bootstrap 2.0.4 | |||
- added Ivy 2.2.0 (for Grape support in Groovy hook scripts) | |||
**0.9.3** *released 2012-04-11* | |||
#### fixes |
@@ -1,5 +1,5 @@ | |||
/*! | |||
* Bootstrap Responsive v2.0.2 | |||
* Bootstrap Responsive v2.0.4 | |||
* | |||
* Copyright 2012 Twitter, Inc | |||
* Licensed under the Apache License v2.0 | |||
@@ -7,85 +7,86 @@ | |||
* | |||
* Designed and built with all the love in the world @twitter by @mdo and @fat. | |||
*/ | |||
.clearfix { | |||
*zoom: 1; | |||
} | |||
.clearfix:before, | |||
.clearfix:after { | |||
display: table; | |||
content: ""; | |||
} | |||
.clearfix:after { | |||
clear: both; | |||
} | |||
.hide-text { | |||
overflow: hidden; | |||
text-indent: 100%; | |||
white-space: nowrap; | |||
font: 0/0 a; | |||
color: transparent; | |||
text-shadow: none; | |||
background-color: transparent; | |||
border: 0; | |||
} | |||
.input-block-level { | |||
display: block; | |||
width: 100%; | |||
min-height: 28px; | |||
/* Make inputs at least the height of their button counterpart */ | |||
/* Makes inputs behave like true block-level elements */ | |||
-webkit-box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
} | |||
.hidden { | |||
display: none; | |||
visibility: hidden; | |||
} | |||
.visible-phone { | |||
display: none; | |||
display: none !important; | |||
} | |||
.visible-tablet { | |||
display: none; | |||
} | |||
.visible-desktop { | |||
display: block; | |||
} | |||
.hidden-phone { | |||
display: block; | |||
} | |||
.hidden-tablet { | |||
display: block; | |||
display: none !important; | |||
} | |||
.hidden-desktop { | |||
display: none; | |||
display: none !important; | |||
} | |||
@media (max-width: 767px) { | |||
.visible-phone { | |||
display: block; | |||
display: inherit !important; | |||
} | |||
.hidden-phone { | |||
display: none; | |||
display: none !important; | |||
} | |||
.hidden-desktop { | |||
display: block; | |||
display: inherit !important; | |||
} | |||
.visible-desktop { | |||
display: none; | |||
display: none !important; | |||
} | |||
} | |||
@media (min-width: 768px) and (max-width: 979px) { | |||
.visible-tablet { | |||
display: block; | |||
display: inherit !important; | |||
} | |||
.hidden-tablet { | |||
display: none; | |||
display: none !important; | |||
} | |||
.hidden-desktop { | |||
display: block; | |||
display: inherit !important; | |||
} | |||
.visible-desktop { | |||
display: none; | |||
display: none !important ; | |||
} | |||
} | |||
@media (max-width: 480px) { | |||
.nav-collapse { | |||
-webkit-transform: translate3d(0, 0, 0); | |||
@@ -111,14 +112,14 @@ | |||
padding-top: 0; | |||
} | |||
.form-horizontal .form-actions { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
padding-left: 10px; | |||
} | |||
.modal { | |||
position: absolute; | |||
top: 10px; | |||
left: 10px; | |||
right: 10px; | |||
left: 10px; | |||
width: auto; | |||
margin: 0; | |||
} | |||
@@ -133,14 +134,28 @@ | |||
position: static; | |||
} | |||
} | |||
@media (max-width: 767px) { | |||
body { | |||
padding-left: 20px; | |||
padding-right: 20px; | |||
padding-left: 20px; | |||
} | |||
.navbar-fixed-top { | |||
margin-left: -20px; | |||
.navbar-fixed-top, | |||
.navbar-fixed-bottom { | |||
margin-right: -20px; | |||
margin-left: -20px; | |||
} | |||
.container-fluid { | |||
padding: 0; | |||
} | |||
.dl-horizontal dt { | |||
float: none; | |||
width: auto; | |||
clear: none; | |||
text-align: left; | |||
} | |||
.dl-horizontal dd { | |||
margin-left: 0; | |||
} | |||
.container { | |||
width: auto; | |||
@@ -148,19 +163,20 @@ | |||
.row-fluid { | |||
width: 100%; | |||
} | |||
.row { | |||
.row, | |||
.thumbnails { | |||
margin-left: 0; | |||
} | |||
.row > [class*="span"], | |||
.row-fluid > [class*="span"] { | |||
float: none; | |||
[class*="span"], | |||
.row-fluid [class*="span"] { | |||
display: block; | |||
float: none; | |||
width: auto; | |||
margin: 0; | |||
} | |||
.thumbnails [class*="span"] { | |||
width: auto; | |||
margin-left: 0; | |||
} | |||
.input-large, | |||
.input-xlarge, | |||
.input-xxlarge, | |||
input[class*="span"], | |||
select[class*="span"], | |||
textarea[class*="span"], | |||
@@ -168,20 +184,20 @@ | |||
display: block; | |||
width: 100%; | |||
min-height: 28px; | |||
/* Make inputs at least the height of their button counterpart */ | |||
/* Makes inputs behave like true block-level elements */ | |||
-webkit-box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
} | |||
.input-prepend input, | |||
.input-append input, | |||
.input-prepend input[class*="span"], | |||
.input-append input[class*="span"] { | |||
display: inline-block; | |||
width: auto; | |||
} | |||
} | |||
@media (min-width: 768px) and (max-width: 979px) { | |||
.row { | |||
margin-left: -20px; | |||
@@ -288,205 +304,136 @@ | |||
.row-fluid:after { | |||
clear: both; | |||
} | |||
.row-fluid > [class*="span"] { | |||
.row-fluid [class*="span"] { | |||
display: block; | |||
float: left; | |||
width: 100%; | |||
min-height: 28px; | |||
margin-left: 2.762430939%; | |||
*margin-left: 2.709239449638298%; | |||
-webkit-box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
} | |||
.row-fluid > [class*="span"]:first-child { | |||
.row-fluid [class*="span"]:first-child { | |||
margin-left: 0; | |||
} | |||
.row-fluid > .span12 { | |||
.row-fluid .span12 { | |||
width: 99.999999993%; | |||
*width: 99.9468085036383%; | |||
} | |||
.row-fluid > .span11 { | |||
.row-fluid .span11 { | |||
width: 91.436464082%; | |||
*width: 91.38327259263829%; | |||
} | |||
.row-fluid > .span10 { | |||
.row-fluid .span10 { | |||
width: 82.87292817100001%; | |||
*width: 82.8197366816383%; | |||
} | |||
.row-fluid > .span9 { | |||
.row-fluid .span9 { | |||
width: 74.30939226%; | |||
*width: 74.25620077063829%; | |||
} | |||
.row-fluid > .span8 { | |||
.row-fluid .span8 { | |||
width: 65.74585634900001%; | |||
*width: 65.6926648596383%; | |||
} | |||
.row-fluid > .span7 { | |||
.row-fluid .span7 { | |||
width: 57.182320438000005%; | |||
*width: 57.129128948638304%; | |||
} | |||
.row-fluid > .span6 { | |||
.row-fluid .span6 { | |||
width: 48.618784527%; | |||
*width: 48.5655930376383%; | |||
} | |||
.row-fluid > .span5 { | |||
.row-fluid .span5 { | |||
width: 40.055248616%; | |||
*width: 40.0020571266383%; | |||
} | |||
.row-fluid > .span4 { | |||
.row-fluid .span4 { | |||
width: 31.491712705%; | |||
*width: 31.4385212156383%; | |||
} | |||
.row-fluid > .span3 { | |||
.row-fluid .span3 { | |||
width: 22.928176794%; | |||
*width: 22.874985304638297%; | |||
} | |||
.row-fluid > .span2 { | |||
.row-fluid .span2 { | |||
width: 14.364640883%; | |||
*width: 14.311449393638298%; | |||
} | |||
.row-fluid > .span1 { | |||
.row-fluid .span1 { | |||
width: 5.801104972%; | |||
*width: 5.747913482638298%; | |||
} | |||
input, | |||
textarea, | |||
.uneditable-input { | |||
margin-left: 0; | |||
} | |||
input.span12, textarea.span12, .uneditable-input.span12 { | |||
input.span12, | |||
textarea.span12, | |||
.uneditable-input.span12 { | |||
width: 714px; | |||
} | |||
input.span11, textarea.span11, .uneditable-input.span11 { | |||
input.span11, | |||
textarea.span11, | |||
.uneditable-input.span11 { | |||
width: 652px; | |||
} | |||
input.span10, textarea.span10, .uneditable-input.span10 { | |||
input.span10, | |||
textarea.span10, | |||
.uneditable-input.span10 { | |||
width: 590px; | |||
} | |||
input.span9, textarea.span9, .uneditable-input.span9 { | |||
input.span9, | |||
textarea.span9, | |||
.uneditable-input.span9 { | |||
width: 528px; | |||
} | |||
input.span8, textarea.span8, .uneditable-input.span8 { | |||
input.span8, | |||
textarea.span8, | |||
.uneditable-input.span8 { | |||
width: 466px; | |||
} | |||
input.span7, textarea.span7, .uneditable-input.span7 { | |||
input.span7, | |||
textarea.span7, | |||
.uneditable-input.span7 { | |||
width: 404px; | |||
} | |||
input.span6, textarea.span6, .uneditable-input.span6 { | |||
input.span6, | |||
textarea.span6, | |||
.uneditable-input.span6 { | |||
width: 342px; | |||
} | |||
input.span5, textarea.span5, .uneditable-input.span5 { | |||
input.span5, | |||
textarea.span5, | |||
.uneditable-input.span5 { | |||
width: 280px; | |||
} | |||
input.span4, textarea.span4, .uneditable-input.span4 { | |||
input.span4, | |||
textarea.span4, | |||
.uneditable-input.span4 { | |||
width: 218px; | |||
} | |||
input.span3, textarea.span3, .uneditable-input.span3 { | |||
input.span3, | |||
textarea.span3, | |||
.uneditable-input.span3 { | |||
width: 156px; | |||
} | |||
input.span2, textarea.span2, .uneditable-input.span2 { | |||
input.span2, | |||
textarea.span2, | |||
.uneditable-input.span2 { | |||
width: 94px; | |||
} | |||
input.span1, textarea.span1, .uneditable-input.span1 { | |||
input.span1, | |||
textarea.span1, | |||
.uneditable-input.span1 { | |||
width: 32px; | |||
} | |||
} | |||
@media (max-width: 979px) { | |||
body { | |||
padding-top: 0; | |||
} | |||
.navbar-fixed-top { | |||
position: static; | |||
margin-bottom: 18px; | |||
} | |||
.navbar-fixed-top .navbar-inner { | |||
padding: 5px; | |||
} | |||
.navbar .container { | |||
width: auto; | |||
padding: 0; | |||
} | |||
.navbar .brand { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
margin: 0 0 0 -5px; | |||
} | |||
.navbar .nav-collapse { | |||
clear: left; | |||
} | |||
.navbar .nav { | |||
float: none; | |||
margin: 0 0 9px; | |||
} | |||
.navbar .nav > li { | |||
float: none; | |||
} | |||
.navbar .nav > li > a { | |||
margin-bottom: 2px; | |||
} | |||
.navbar .nav > .divider-vertical { | |||
display: none; | |||
} | |||
.navbar .nav .nav-header { | |||
color: #999999; | |||
text-shadow: none; | |||
} | |||
.navbar .nav > li > a, | |||
.navbar .dropdown-menu a { | |||
padding: 6px 15px; | |||
font-weight: bold; | |||
color: #999999; | |||
-webkit-border-radius: 3px; | |||
-moz-border-radius: 3px; | |||
border-radius: 3px; | |||
} | |||
.navbar .dropdown-menu li + li a { | |||
margin-bottom: 2px; | |||
} | |||
.navbar .nav > li > a:hover, | |||
.navbar .dropdown-menu a:hover { | |||
background-color: #222222; | |||
} | |||
.navbar .dropdown-menu { | |||
position: static; | |||
top: auto; | |||
left: auto; | |||
float: none; | |||
display: block; | |||
max-width: none; | |||
margin: 0 15px; | |||
padding: 0; | |||
background-color: transparent; | |||
border: none; | |||
-webkit-border-radius: 0; | |||
-moz-border-radius: 0; | |||
border-radius: 0; | |||
-webkit-box-shadow: none; | |||
-moz-box-shadow: none; | |||
box-shadow: none; | |||
} | |||
.navbar .dropdown-menu:before, | |||
.navbar .dropdown-menu:after { | |||
display: none; | |||
} | |||
.navbar .dropdown-menu .divider { | |||
display: none; | |||
} | |||
.navbar-form, | |||
.navbar-search { | |||
float: none; | |||
padding: 9px 15px; | |||
margin: 9px 0; | |||
border-top: 1px solid #222222; | |||
border-bottom: 1px solid #222222; | |||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
} | |||
.navbar .nav.pull-right { | |||
float: none; | |||
margin-left: 0; | |||
} | |||
.navbar-static .navbar-inner { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
} | |||
.btn-navbar { | |||
display: block; | |||
} | |||
.nav-collapse { | |||
overflow: hidden; | |||
height: 0; | |||
} | |||
} | |||
@media (min-width: 980px) { | |||
.nav-collapse.collapse { | |||
height: auto !important; | |||
overflow: visible !important; | |||
} | |||
} | |||
@media (min-width: 1200px) { | |||
.row { | |||
margin-left: -30px; | |||
@@ -593,88 +540,132 @@ | |||
.row-fluid:after { | |||
clear: both; | |||
} | |||
.row-fluid > [class*="span"] { | |||
.row-fluid [class*="span"] { | |||
display: block; | |||
float: left; | |||
width: 100%; | |||
min-height: 28px; | |||
margin-left: 2.564102564%; | |||
*margin-left: 2.510911074638298%; | |||
-webkit-box-sizing: border-box; | |||
-moz-box-sizing: border-box; | |||
-ms-box-sizing: border-box; | |||
box-sizing: border-box; | |||
} | |||
.row-fluid > [class*="span"]:first-child { | |||
.row-fluid [class*="span"]:first-child { | |||
margin-left: 0; | |||
} | |||
.row-fluid > .span12 { | |||
.row-fluid .span12 { | |||
width: 100%; | |||
*width: 99.94680851063829%; | |||
} | |||
.row-fluid > .span11 { | |||
.row-fluid .span11 { | |||
width: 91.45299145300001%; | |||
*width: 91.3997999636383%; | |||
} | |||
.row-fluid > .span10 { | |||
.row-fluid .span10 { | |||
width: 82.905982906%; | |||
*width: 82.8527914166383%; | |||
} | |||
.row-fluid > .span9 { | |||
.row-fluid .span9 { | |||
width: 74.358974359%; | |||
*width: 74.30578286963829%; | |||
} | |||
.row-fluid > .span8 { | |||
.row-fluid .span8 { | |||
width: 65.81196581200001%; | |||
*width: 65.7587743226383%; | |||
} | |||
.row-fluid > .span7 { | |||
.row-fluid .span7 { | |||
width: 57.264957265%; | |||
*width: 57.2117657756383%; | |||
} | |||
.row-fluid > .span6 { | |||
.row-fluid .span6 { | |||
width: 48.717948718%; | |||
*width: 48.6647572286383%; | |||
} | |||
.row-fluid > .span5 { | |||
.row-fluid .span5 { | |||
width: 40.170940171000005%; | |||
*width: 40.117748681638304%; | |||
} | |||
.row-fluid > .span4 { | |||
.row-fluid .span4 { | |||
width: 31.623931624%; | |||
*width: 31.5707401346383%; | |||
} | |||
.row-fluid > .span3 { | |||
.row-fluid .span3 { | |||
width: 23.076923077%; | |||
*width: 23.0237315876383%; | |||
} | |||
.row-fluid > .span2 { | |||
.row-fluid .span2 { | |||
width: 14.529914530000001%; | |||
*width: 14.4767230406383%; | |||
} | |||
.row-fluid > .span1 { | |||
.row-fluid .span1 { | |||
width: 5.982905983%; | |||
*width: 5.929714493638298%; | |||
} | |||
input, | |||
textarea, | |||
.uneditable-input { | |||
margin-left: 0; | |||
} | |||
input.span12, textarea.span12, .uneditable-input.span12 { | |||
input.span12, | |||
textarea.span12, | |||
.uneditable-input.span12 { | |||
width: 1160px; | |||
} | |||
input.span11, textarea.span11, .uneditable-input.span11 { | |||
input.span11, | |||
textarea.span11, | |||
.uneditable-input.span11 { | |||
width: 1060px; | |||
} | |||
input.span10, textarea.span10, .uneditable-input.span10 { | |||
input.span10, | |||
textarea.span10, | |||
.uneditable-input.span10 { | |||
width: 960px; | |||
} | |||
input.span9, textarea.span9, .uneditable-input.span9 { | |||
input.span9, | |||
textarea.span9, | |||
.uneditable-input.span9 { | |||
width: 860px; | |||
} | |||
input.span8, textarea.span8, .uneditable-input.span8 { | |||
input.span8, | |||
textarea.span8, | |||
.uneditable-input.span8 { | |||
width: 760px; | |||
} | |||
input.span7, textarea.span7, .uneditable-input.span7 { | |||
input.span7, | |||
textarea.span7, | |||
.uneditable-input.span7 { | |||
width: 660px; | |||
} | |||
input.span6, textarea.span6, .uneditable-input.span6 { | |||
input.span6, | |||
textarea.span6, | |||
.uneditable-input.span6 { | |||
width: 560px; | |||
} | |||
input.span5, textarea.span5, .uneditable-input.span5 { | |||
input.span5, | |||
textarea.span5, | |||
.uneditable-input.span5 { | |||
width: 460px; | |||
} | |||
input.span4, textarea.span4, .uneditable-input.span4 { | |||
input.span4, | |||
textarea.span4, | |||
.uneditable-input.span4 { | |||
width: 360px; | |||
} | |||
input.span3, textarea.span3, .uneditable-input.span3 { | |||
input.span3, | |||
textarea.span3, | |||
.uneditable-input.span3 { | |||
width: 260px; | |||
} | |||
input.span2, textarea.span2, .uneditable-input.span2 { | |||
input.span2, | |||
textarea.span2, | |||
.uneditable-input.span2 { | |||
width: 160px; | |||
} | |||
input.span1, textarea.span1, .uneditable-input.span1 { | |||
input.span1, | |||
textarea.span1, | |||
.uneditable-input.span1 { | |||
width: 60px; | |||
} | |||
.thumbnails { | |||
@@ -683,4 +674,142 @@ | |||
.thumbnails > li { | |||
margin-left: 30px; | |||
} | |||
.row-fluid .thumbnails { | |||
margin-left: 0; | |||
} | |||
} | |||
@media (max-width: 979px) { | |||
body { | |||
padding-top: 0; | |||
} | |||
.navbar-fixed-top, | |||
.navbar-fixed-bottom { | |||
position: static; | |||
} | |||
.navbar-fixed-top { | |||
margin-bottom: 18px; | |||
} | |||
.navbar-fixed-bottom { | |||
margin-top: 18px; | |||
} | |||
.navbar-fixed-top .navbar-inner, | |||
.navbar-fixed-bottom .navbar-inner { | |||
padding: 5px; | |||
} | |||
.navbar .container { | |||
width: auto; | |||
padding: 0; | |||
} | |||
.navbar .brand { | |||
padding-right: 10px; | |||
padding-left: 10px; | |||
margin: 0 0 0 -5px; | |||
} | |||
.nav-collapse { | |||
clear: both; | |||
} | |||
.nav-collapse .nav { | |||
float: none; | |||
margin: 0 0 9px; | |||
} | |||
.nav-collapse .nav > li { | |||
float: none; | |||
} | |||
.nav-collapse .nav > li > a { | |||
margin-bottom: 2px; | |||
} | |||
.nav-collapse .nav > .divider-vertical { | |||
display: none; | |||
} | |||
.nav-collapse .nav .nav-header { | |||
color: #999999; | |||
text-shadow: none; | |||
} | |||
.nav-collapse .nav > li > a, | |||
.nav-collapse .dropdown-menu a { | |||
padding: 6px 15px; | |||
font-weight: bold; | |||
color: #999999; | |||
-webkit-border-radius: 3px; | |||
-moz-border-radius: 3px; | |||
border-radius: 3px; | |||
} | |||
.nav-collapse .btn { | |||
padding: 4px 10px 4px; | |||
font-weight: normal; | |||
-webkit-border-radius: 4px; | |||
-moz-border-radius: 4px; | |||
border-radius: 4px; | |||
} | |||
.nav-collapse .dropdown-menu li + li a { | |||
margin-bottom: 2px; | |||
} | |||
.nav-collapse .nav > li > a:hover, | |||
.nav-collapse .dropdown-menu a:hover { | |||
background-color: #222222; | |||
} | |||
.nav-collapse.in .btn-group { | |||
padding: 0; | |||
margin-top: 5px; | |||
} | |||
.nav-collapse .dropdown-menu { | |||
position: static; | |||
top: auto; | |||
left: auto; | |||
display: block; | |||
float: none; | |||
max-width: none; | |||
padding: 0; | |||
margin: 0 15px; | |||
background-color: transparent; | |||
border: none; | |||
-webkit-border-radius: 0; | |||
-moz-border-radius: 0; | |||
border-radius: 0; | |||
-webkit-box-shadow: none; | |||
-moz-box-shadow: none; | |||
box-shadow: none; | |||
} | |||
.nav-collapse .dropdown-menu:before, | |||
.nav-collapse .dropdown-menu:after { | |||
display: none; | |||
} | |||
.nav-collapse .dropdown-menu .divider { | |||
display: none; | |||
} | |||
.nav-collapse .navbar-form, | |||
.nav-collapse .navbar-search { | |||
float: none; | |||
padding: 9px 15px; | |||
margin: 9px 0; | |||
border-top: 1px solid #222222; | |||
border-bottom: 1px solid #222222; | |||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
} | |||
.navbar .nav-collapse .nav.pull-right { | |||
float: none; | |||
margin-left: 0; | |||
} | |||
.nav-collapse, | |||
.nav-collapse.collapse { | |||
height: 0; | |||
overflow: hidden; | |||
} | |||
.navbar .btn-navbar { | |||
display: block; | |||
} | |||
.navbar-static .navbar-inner { | |||
padding-right: 10px; | |||
padding-left: 10px; | |||
} | |||
} | |||
@media (min-width: 980px) { | |||
.nav-collapse.collapse { | |||
height: auto !important; | |||
overflow: visible !important; | |||
} | |||
} |
@@ -40,8 +40,16 @@ hr { | |||
color: #0069D6; | |||
} | |||
.navbar { | |||
height:40px !important; | |||
.navbar .brand { | |||
padding: 7px 20px; | |||
} | |||
.navbar .pull-right { | |||
margin: 0; | |||
} | |||
.navbar ul.nav { | |||
margin: 0 !important; | |||
} | |||
.navbar ul.nav li a { | |||
@@ -52,10 +60,14 @@ hr { | |||
.navbar ul.nav li a:hover { | |||
color: #abd4ff !important; | |||
text-decoration: underline; | |||
} | |||
.navbar .nav .active > a:hover { | |||
text-decoration: underline; | |||
} | |||
.navbar-inner { | |||
height:40px !important; | |||
background-color:#000050; | |||
background-repeat:repeat-x; | |||
background-image:-khtml-gradient(linear, left top, left bottom, from(#000060), to(#000040)); | |||
@@ -77,6 +89,7 @@ hr { | |||
background-image: url(arrow_page.png); | |||
background-position: center bottom; | |||
outline: 0; | |||
padding-bottom:1px; | |||
} | |||
.navbar .active a { | |||
@@ -811,7 +824,7 @@ td.author { | |||
} | |||
td.date { | |||
/*font-style: italic !important;*/ | |||
/*font-style: italic !important;*/ | |||
} | |||
span.sha1, span.sha1 a, span.sha1 a span, pre.commit_message { |
@@ -151,12 +151,12 @@ public class ActivityUtils { | |||
* @param email | |||
* address to query Gravatar | |||
* @param width | |||
* size of thumbnail. if width <= 0, the defalt of 60 is used. | |||
* size of thumbnail. if width <= 0, the default of 50 is used. | |||
* @return | |||
*/ | |||
public static String getGravatarThumbnailUrl(String email, int width) { | |||
if (width <= 0) { | |||
width = 60; | |||
width = 50; | |||
} | |||
String emailHash = StringUtils.getMD5(email); | |||
String url = MessageFormat.format( |
@@ -8,10 +8,10 @@ | |||
<div class="pageTitle"> | |||
<h2><wicket:message key="gb.recentActivity"></wicket:message><small> / <span wicket:id="subheader">[days back]</span></small></h2> | |||
</div> | |||
<div style="height: 155px;text-align: center;"> | |||
<div class="hidden-phone" style="height: 155px;text-align: center;"> | |||
<table> | |||
<tr> | |||
<td><span id="chartDaily"></span></td> | |||
<td><span class="hidden-tablet" id="chartDaily"></span></td> | |||
<td><span id="chartRepositories"></span></td> | |||
<td><span id="chartAuthors"></span></td> | |||
</tr> |
@@ -8,14 +8,10 @@ | |||
<wicket:head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<title wicket:id="title">[page title]</title> | |||
<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/> | |||
<link rel="stylesheet" type="text/css" href="gitblit.css"/> | |||
<!-- Responsive CSS must be included after the above body css! --> | |||
<!-- <link rel="stylesheet" href="bootstrap/css/bootstrap-responsive.css"/> --> | |||
<link rel="icon" href="gitblt-favicon.png" type="image/png" /> | |||
<script type="text/javascript" src="bootstrap/js/jquery.js"></script> | |||
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> | |||
<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/> | |||
<link rel="stylesheet" type="text/css" href="gitblit.css"/> | |||
</wicket:head> | |||
<body> | |||
@@ -34,7 +30,23 @@ | |||
<div wicket:id="userPanel">[user panel]</div> | |||
</footer> | |||
</div> | |||
<!-- Override Bootstrap's responsive menu background highlighting --> | |||
<style> | |||
@media (max-width: 979px) { | |||
.nav-collapse .nav > li > a:hover, .nav-collapse .dropdown-menu a:hover { | |||
background-color: #000070; | |||
} | |||
.navbar div > ul .dropdown-menu li a { | |||
color: #ccc; | |||
} | |||
} | |||
</style> | |||
<!-- Include scripts at end for faster page loading --> | |||
<script type="text/javascript" src="bootstrap/js/jquery.js"></script> | |||
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> | |||
</body> | |||
<!-- user fragment --> |
@@ -27,6 +27,7 @@ import org.apache.wicket.MarkupContainer; | |||
import org.apache.wicket.PageParameters; | |||
import org.apache.wicket.RestartResponseAtInterceptPageException; | |||
import org.apache.wicket.RestartResponseException; | |||
import org.apache.wicket.markup.html.CSSPackageResource; | |||
import org.apache.wicket.markup.html.WebPage; | |||
import org.apache.wicket.markup.html.basic.Label; | |||
import org.apache.wicket.markup.html.link.BookmarkablePageLink; | |||
@@ -57,15 +58,23 @@ public abstract class BasePage extends WebPage { | |||
public BasePage() { | |||
super(); | |||
logger = LoggerFactory.getLogger(getClass()); | |||
customizeHeader(); | |||
loginByCookie(); | |||
} | |||
public BasePage(PageParameters params) { | |||
super(params); | |||
logger = LoggerFactory.getLogger(getClass()); | |||
customizeHeader(); | |||
loginByCookie(); | |||
} | |||
private void customizeHeader() { | |||
if (GitBlit.getBoolean(Keys.web.useResponsiveLayout, true)) { | |||
add(CSSPackageResource.getHeaderContribution("bootstrap/css/bootstrap-responsive.css")); | |||
} | |||
} | |||
@Override | |||
protected void onBeforeRender() { | |||
if (GitBlit.isDebugMode()) { |
@@ -27,7 +27,7 @@ | |||
<tr wicket:id="changedPath"> | |||
<td class="changeType"><span wicket:id="changeType">[change type]</span></td> | |||
<td class="path"><span wicket:id="pathName">[commit path]</span></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone rightAlign"> | |||
<span class="link"> | |||
<a wicket:id="patch"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="blame"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a> | |||
</span> |
@@ -15,9 +15,10 @@ | |||
<!-- commit header --> | |||
<div wicket:id="commitHeader">[commit header]</div> | |||
<!-- Author Gravatar --> | |||
<span style="float:right;vertical-align: top;" wicket:id="authorAvatar" /> | |||
<div class="row"> | |||
<div class="span10"> | |||
<!-- commit info --> | |||
<table class="plain"> | |||
<tr><th><wicket:message key="gb.refs">refs</wicket:message></th><td><div wicket:id="refsPanel">[references]</div></td></tr> | |||
@@ -43,6 +44,9 @@ | |||
</td> | |||
</tr> | |||
</table> | |||
</div> | |||
</div> | |||
<!-- full message --> | |||
<pre class="commit_message" wicket:id="fullMessage">[commit message]</pre> | |||
@@ -74,7 +78,7 @@ | |||
<tr wicket:id="changedPath"> | |||
<td class="changeType"><span wicket:id="changeType">[change type]</span></td> | |||
<td class="path"><span wicket:id="pathName">[commit path]</span></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone rightAlign"> | |||
<span class="link"> | |||
<a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="blame"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a> | |||
</span> |
@@ -82,7 +82,6 @@ public class CommitPage extends RepositoryPage { | |||
add(createPersonPanel("commitAuthor", c.getAuthorIdent(), Constants.SearchType.AUTHOR)); | |||
add(WicketUtils.createTimestampLabel("commitAuthorDate", c.getAuthorIdent().getWhen(), | |||
getTimeZone())); | |||
add(new GravatarImage("authorAvatar", c.getAuthorIdent())); | |||
// committer | |||
add(createPersonPanel("commitCommitter", c.getCommitterIdent(), Constants.SearchType.COMMITTER)); |
@@ -17,8 +17,8 @@ | |||
<div class="pageTitle"> | |||
<h2><wicket:message key="gb.search"></wicket:message></h2> | |||
</div> | |||
<form class="form-inline" style="margin:0px;" wicket:id="searchForm"> | |||
<div class="row-fluid"> | |||
<form class="form-inline" wicket:id="searchForm"> | |||
<div class="row"> | |||
<div class="span3"> | |||
<h3><wicket:message key="gb.repositories"></wicket:message></h3> | |||
<select wicket:id="repositories" ></select> |
@@ -21,30 +21,32 @@ | |||
<div class="nav-collapse" wicket:id="navPanel"></div> | |||
<a class="brand" style="text-decoration: none;" wicket:id="syndication"> | |||
<a class="hidden-phone hidden-tablet brand" style="text-decoration: none;" wicket:id="syndication"> | |||
<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img> | |||
</a> | |||
<form class="pull-right" style="margin-top:7px;" wicket:id="searchForm"> | |||
<span class="search"> | |||
<select class="small" wicket:id="searchType"/> | |||
<input type="text" id="searchBox" wicket:id="searchBox" value=""/> | |||
</span> | |||
</form> | |||
<form class="hidden-phone hidden-tablet pull-right" style="margin-top:7px;" wicket:id="searchForm"> | |||
<span class="search"> | |||
<select class="small" wicket:id="searchType"/> | |||
<input type="text" id="searchBox" wicket:id="searchBox" value=""/> | |||
</span> | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
<!-- page content --> | |||
<div class="container"> | |||
<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div> | |||
<div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div> | |||
<!-- page header --> | |||
<div class="pageTitle"> | |||
<span wicket:id="workingCopy"></span> | |||
<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2> | |||
<div class="row"> | |||
<div wicket:id="workingCopy"></div> | |||
<div class="span9"> | |||
<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2> | |||
</div> | |||
</div> | |||
</div> | |||
<wicket:child /> |
@@ -153,7 +153,7 @@ public abstract class RepositoryPage extends BasePage { | |||
protected void setupPage(String repositoryName, String pageName) { | |||
add(new LinkPanel("repositoryName", null, StringUtils.stripDotGit(repositoryName), | |||
SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName))); | |||
add(new Label("pageName", pageName)); | |||
add(new Label("pageName", pageName).setRenderBodyOnly(true)); | |||
if (getRepositoryModel().isBare) { | |||
add(new Label("workingCopy").setVisible(false)); | |||
} else { |
@@ -19,21 +19,21 @@ | |||
<div class="nav-collapse" wicket:id="navPanel"></div> | |||
<form class="pull-right" style="margin-top:5px;" wicket:id="loginForm"> | |||
<form class="pull-right" wicket:id="loginForm"> | |||
<span class="form-search"> | |||
<input wicket:id="username" class="input-small" type="text" /> | |||
<input wicket:id="password" class="input-small" type="password" /> | |||
<button class="btn btn-primary" style="margin-top:0px; "type="submit"><wicket:message key="gb.login"></wicket:message></button> | |||
<button class="btn btn-primary" type="submit"><wicket:message key="gb.login"></wicket:message></button> | |||
</span> | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div> | |||
<!-- subclass content --> | |||
<div class="container"> | |||
<div style="text-align:center" wicket:id="feedback">[Feedback Panel]</div> | |||
<wicket:child/> | |||
</div> | |||
</wicket:extend> |
@@ -8,7 +8,7 @@ | |||
<div style="clear:both;"> | |||
<!-- Repository Activity Chart --> | |||
<div style="float:right;"> | |||
<div class="hidden-phone" style="float:right;"> | |||
<img class="activityGraph" wicket:id="commitsChart" /> | |||
</div> | |||
@@ -17,8 +17,8 @@ | |||
<table class="plain"> | |||
<tr><th><wicket:message key="gb.description">[description]</wicket:message></th><td><span wicket:id="repositoryDescription">[repository description]</span></td></tr> | |||
<tr><th><wicket:message key="gb.owner">[owner]</wicket:message></th><td><span wicket:id="repositoryOwner">[repository owner]</span></td></tr> | |||
<tr><th><wicket:message key="gb.lastChange">[last change]</wicket:message></th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr> | |||
<tr><th><wicket:message key="gb.stats">[stats]</wicket:message></th><td><span wicket:id="branchStats">[branch stats]</span> <span class="link"><a wicket:id="metrics"><wicket:message key="gb.metrics">[metrics]</wicket:message></a></span></td></tr> | |||
<tr class="hidden-phone"><th><wicket:message key="gb.lastChange">[last change]</wicket:message></th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr> | |||
<tr class="hidden-phone"><th><wicket:message key="gb.stats">[stats]</wicket:message></th><td><span wicket:id="branchStats">[branch stats]</span> <span class="link"><a wicket:id="metrics"><wicket:message key="gb.metrics">[metrics]</wicket:message></a></span></td></tr> | |||
<tr><th valign="middle"><wicket:message key="gb.repositoryUrl">[URL]</wicket:message></th><td><img style="vertical-align: middle;" wicket:id="accessRestrictionIcon" /><span wicket:id="repositoryCloneUrl">[repository clone url]</span><div wicket:id="otherUrls" style="margin-left:20px;"></div></td></tr> | |||
</table> | |||
</div> |
@@ -189,7 +189,7 @@ public class SummaryPage extends RepositoryPage { | |||
&& GitBlit.getBoolean(Keys.web.generateActivityGraph, true)) { | |||
IChartData data = WicketUtils.getChartData(metrics); | |||
ChartProvider provider = new ChartProvider(new Dimension(340, 100), ChartType.LINE, | |||
ChartProvider provider = new ChartProvider(new Dimension(290, 100), ChartType.LINE, | |||
data); | |||
ChartAxis dateAxis = new ChartAxis(ChartAxisType.BOTTOM); | |||
dateAxis.setLabels(new String[] { metrics.get(0).name, |
@@ -24,7 +24,7 @@ | |||
<td class="icon"><img wicket:id="pathIcon" /></td> | |||
<td><span wicket:id="pathName"></span></td> | |||
<td class="size"><span wicket:id="pathSize">[path size]</span></td> | |||
<td class="mode"><span wicket:id="pathPermissions">[path permissions]</span></td> | |||
<td class="hidden-phone mode"><span wicket:id="pathPermissions">[path permissions]</span></td> | |||
<td class="treeLinks"><span wicket:id="pathLinks">[path links]</span></td> | |||
</tr> | |||
</table> |
@@ -11,11 +11,11 @@ | |||
<div class="header"><i class="icon-refresh" style="vertical-align: middle;"></i> <span style="font-weight:bold;" wicket:id="title">[title]</span></div> | |||
<table class="activity"> | |||
<tr wicket:id="commit"> | |||
<td class="date" style="width:60px; vertical-align: middle;text-align: right;padding-right:10px;" ><span wicket:id="time">[time of day]</span></td> | |||
<td class="hidden-phone date" style="width:60px; vertical-align: middle;text-align: right;padding-right:10px;" ><span wicket:id="time">[time of day]</span></td> | |||
<td style="width:10em;text-align:left;vertical-align: middle;"> | |||
<span wicket:id="repository" class="repositorySwatch">[repository link]</span> | |||
</td> | |||
<td style="width:30px;vertical-align: middle;"><span wicket:id="avatar" style="vertical-align: middle;"></span></td> | |||
<td class="hidden-phone" style="width:30px;vertical-align: middle;"><span wicket:id="avatar" style="vertical-align: middle;"></span></td> | |||
<td style="vertical-align: middle;"> | |||
<img wicket:id="commitIcon" style="vertical-align: middle;"></img> | |||
<span wicket:id="message">[shortlog commit link]</span><br/> | |||
@@ -24,7 +24,7 @@ | |||
<td style="text-align:right;vertical-align: middle;"> | |||
<div wicket:id="commitRefs">[commit refs]</div> | |||
</td> | |||
<td class="rightAlign" style="width:7em;vertical-align: middle;"> | |||
<td class="hidden-phone rightAlign" style="width:7em;vertical-align: middle;"> | |||
<span class="link"> | |||
<a wicket:id="view" target="_blank"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff" target="_blank"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree" target="_blank"><wicket:message key="gb.tree"></wicket:message></a> | |||
</span> |
@@ -15,9 +15,9 @@ | |||
<tr wicket:id="branch"> | |||
<td class="date"><span wicket:id="branchDate">[branch date]</span></td> | |||
<td><span wicket:id="branchName">[branch name]</span></td> | |||
<td class="author"><span wicket:id="branchAuthor">[branch author]</span></td> | |||
<td><span wicket:id="branchLog">[branch log]</span></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone hidden-tablet author"><span wicket:id="branchAuthor">[branch author]</span></td> | |||
<td class="hidden-phone"><span wicket:id="branchLog">[branch log]</span></td> | |||
<td class="hidden-phone rightAlign"> | |||
<span wicket:id="branchLinks"></span> | |||
</td> | |||
</tr> |
@@ -6,10 +6,19 @@ | |||
<wicket:panel> | |||
<div class="commitHeader"> | |||
<div style="float:right;"> | |||
<span wicket:id="author">[author]</span> <span wicket:id="date">[date]</span> | |||
<div class="row"> | |||
<div> | |||
<span class="pull-right" wicket:id="authorAvatar"></span> | |||
</div> | |||
<div class="span9"> | |||
<div wicket:id="shortmessage">[short message]</div> | |||
<div wicket:id="author">[author]</div> | |||
<div> | |||
<span wicket:id="date">[date]</span> | |||
<span class="hidden-phone" style="padding-left:20px;color:#888;" wicket:id="commitid">[commit id]</span> | |||
</div> | |||
</div> | |||
</div> | |||
<span wicket:id="shortmessage">[short message]</span> <span wicket:id="commitid">[commit id]</span> | |||
</div> | |||
</wicket:panel> | |||
</html> |
@@ -40,8 +40,9 @@ public class CommitHeaderPanel extends BasePanel { | |||
add(new LinkPanel("shortmessage", "title", StringUtils.trimString(c.getShortMessage(), | |||
Constants.LEN_SHORTLOG), CommitPage.class, | |||
WicketUtils.newObjectParameter(repositoryName, c.getName()))); | |||
add(new Label("commitid", "(" + c.getName().substring(0, 8) + ")")); | |||
add(new Label("commitid", c.getName())); | |||
add(new Label("author", c.getAuthorIdent().getName())); | |||
add(WicketUtils.createDateLabel("date", c.getAuthorIdent().getWhen(), getTimeZone())); | |||
add(new GravatarImage("authorAvatar", c.getAuthorIdent())); | |||
} | |||
} |
@@ -18,9 +18,9 @@ | |||
<tr wicket:id="commit"> | |||
<td class="date"><span wicket:id="commitDate">[commit date]</span></td> | |||
<td class="icon"><img wicket:id="commitIcon" /></td> | |||
<td class="author"><span wicket:id="commitAuthor">[commit author]</span></td> | |||
<td class="hidden-phone author"><span wicket:id="commitAuthor">[commit author]</span></td> | |||
<td class="message"><table class="nestedTable"><tr><td><span style="vertical-align:middle;" wicket:id="commitShortMessage">[commit short message]</span></td><td><div style="text-align:right;" wicket:id="commitRefs">[commit refs]</div></td></tr></table></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone rightAlign"> | |||
<span wicket:id="historyLinks">[history links]</span> | |||
</td> | |||
</tr> |
@@ -83,7 +83,7 @@ public class LinkPanel extends Panel { | |||
WicketUtils.setCssClass(icon, bootstrapIcon); | |||
link.add(icon); | |||
} | |||
link.add(new Label("label", labelModel)); | |||
link.add(new Label("label", labelModel).setRenderBodyOnly(true)); | |||
add(link); | |||
} | |||
@@ -12,11 +12,11 @@ | |||
<table class="pretty"> | |||
<tbody> | |||
<tr wicket:id="commit"> | |||
<td class="date"><span wicket:id="commitDate">[commit date]</span></td> | |||
<td class="author"><span wicket:id="commitAuthor">[commit author]</span></td> | |||
<td class="icon"><img wicket:id="commitIcon" /></td> | |||
<td class="date" style="width:6em;"><span wicket:id="commitDate">[commit date]</span></td> | |||
<td class="hidden-phone author"><span wicket:id="commitAuthor">[commit author]</span></td> | |||
<td class="hidden-phone icon"><img wicket:id="commitIcon" /></td> | |||
<td class="message"><table class="nestedTable"><tr><td><span style="vertical-align:middle;" wicket:id="commitShortMessage">[commit short message]</span></td><td><div style="text-align:right;" wicket:id="commitRefs">[commit refs]</div></td></tr></table></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone hidden-tablet rightAlign"> | |||
<span class="link"> | |||
<a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> | |||
</span> |
@@ -42,12 +42,12 @@ | |||
<img style="vertical-align: middle;" src="git-black-16x16.png"/> | |||
<wicket:message key="gb.repository">Repository</wicket:message> | |||
</th> | |||
<th wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th> | |||
<th wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th> | |||
<th></th> | |||
<th class="hidden-phone" wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th> | |||
<th class="hidden-tablet hidden-phone" wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th> | |||
<th class="hidden-phone"></th> | |||
<th wicket:id="orderByDate"><wicket:message key="gb.lastChange">Last Change</wicket:message></th> | |||
<th></th> | |||
<th class="right"></th> | |||
<th class="hidden-phone"></th> | |||
<th class="hidden-phone right"></th> | |||
</tr> | |||
</wicket:fragment> | |||
@@ -57,12 +57,12 @@ | |||
<img style="vertical-align: middle;" src="git-black-16x16.png"/> | |||
<wicket:message key="gb.repository">Repository</wicket:message> | |||
</th> | |||
<th><wicket:message key="gb.description">Description</wicket:message></th> | |||
<th><wicket:message key="gb.owner">Owner</wicket:message></th> | |||
<th></th> | |||
<th class="hidden-phone" ><span><wicket:message key="gb.description">Description</wicket:message></span></th> | |||
<th class="hidden-tablet hidden-phone"><span><wicket:message key="gb.owner">Owner</wicket:message></span></th> | |||
<th class="hidden-phone"></th> | |||
<th><wicket:message key="gb.lastChange">Last Change</wicket:message></th> | |||
<th></th> | |||
<th class="right"></th> | |||
<th class="hidden-phone"></th> | |||
<th class="hidden-phone right"></th> | |||
</tr> | |||
</wicket:fragment> | |||
@@ -72,12 +72,12 @@ | |||
<wicket:fragment wicket:id="repositoryRow"> | |||
<td class="left" style="padding-left:3px;" ><b><span class="repositorySwatch" wicket:id="repositorySwatch"></span></b> <span style="padding-left:3px;" wicket:id="repositoryName">[repository name]</span></td> | |||
<td><div class="list" wicket:id="repositoryDescription">[repository description]</div></td> | |||
<td class="author"><span wicket:id="repositoryOwner">[repository owner]</span></td> | |||
<td style="text-align: right;padding-right:10px;"><img class="inlineIcon" wicket:id="ticketsIcon" /><img class="inlineIcon" wicket:id="docsIcon" /><img class="inlineIcon" wicket:id="frozenIcon" /><img class="inlineIcon" wicket:id="federatedIcon" /><img class="inlineIcon" wicket:id="accessRestrictionIcon" /></td> | |||
<td class="hidden-phone"><span class="list" wicket:id="repositoryDescription">[repository description]</span></td> | |||
<td class="hidden-tablet hidden-phone author"><span wicket:id="repositoryOwner">[repository owner]</span></td> | |||
<td class="hidden-phone" style="text-align: right;padding-right:10px;"><img class="inlineIcon" wicket:id="ticketsIcon" /><img class="inlineIcon" wicket:id="docsIcon" /><img class="inlineIcon" wicket:id="frozenIcon" /><img class="inlineIcon" wicket:id="federatedIcon" /><img class="inlineIcon" wicket:id="accessRestrictionIcon" /></td> | |||
<td><span wicket:id="repositoryLastChange">[last change]</span></td> | |||
<td style="text-align: right;padding-right:15px;"><span style="font-size:0.8em;" wicket:id="repositorySize">[repository size]</span></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone" style="text-align: right;padding-right:15px;"><span style="font-size:0.8em;" wicket:id="repositorySize">[repository size]</span></td> | |||
<td class="hidden-phone rightAlign"> | |||
<span wicket:id="repositoryLinks"></span> | |||
<a style="text-decoration: none;" wicket:id="syndication"> | |||
<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img> |
@@ -5,7 +5,7 @@ | |||
lang="en"> | |||
<wicket:panel> | |||
<span wicket:id="repositoryUrl" style="color: blue;">[repository url]</span><span wicket:id="copyFunction"></span> | |||
<span wicket:id="repositoryUrl" style="color: blue;">[repository url]</span><span class="hidden-phone hidden-tablet" wicket:id="copyFunction"></span> | |||
<!-- Plain JavaScript manual copy & paste --> | |||
<wicket:fragment wicket:id="jsPanel"> |
@@ -14,9 +14,9 @@ | |||
<tr wicket:id="tag"> | |||
<td class="date"><span wicket:id="tagDate">[tag date]</span></td> | |||
<td><b><span wicket:id="tagName">[tag name]</span></b></td> | |||
<td class="icon"><img wicket:id="tagIcon" /></td> | |||
<td><span wicket:id="tagDescription">[tag description]</span></td> | |||
<td class="rightAlign"> | |||
<td class="hidden-phone icon"><img wicket:id="tagIcon" /></td> | |||
<td class="hidden-phone"><span wicket:id="tagDescription">[tag description]</span></td> | |||
<td class="hidden-phone rightAlign"> | |||
<span wicket:id="tagLinks"></span> | |||
</td> | |||
</tr> |
@@ -15,19 +15,19 @@ | |||
<img style="vertical-align: middle; border: 1px solid #888; background-color: white;" src="user_16x16.png"/> | |||
<wicket:message key="gb.users">[users]</wicket:message> | |||
</th> | |||
<th class="left"><wicket:message key="gb.displayName">[display name]</wicket:message></th> | |||
<th class="hidden-phone hidden-tablet left"><wicket:message key="gb.displayName">[display name]</wicket:message></th> | |||
<th style="width:120px;"><wicket:message key="gb.accessLevel">[access level]</wicket:message></th> | |||
<th style="width:140px;"><wicket:message key="gb.teamMemberships">[team memberships]</wicket:message></th> | |||
<th style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th> | |||
<th class="hidden-phone" style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th> | |||
<th style="width:80px;" class="right"></th> | |||
</tr> | |||
<tbody> | |||
<tr wicket:id="userRow"> | |||
<td class="left" ><span class="list" wicket:id="username">[username]</span></td> | |||
<td class="left" ><span class="list" wicket:id="displayName">[display name]</span></td> | |||
<td class="hidden-phone hidden-tablet left" ><span class="list" wicket:id="displayName">[display name]</span></td> | |||
<td class="left" ><span class="list" wicket:id="accesslevel">[access level]</span></td> | |||
<td class="left" ><span class="list" wicket:id="teams">[team memberships]</span></td> | |||
<td class="left" ><span class="list" wicket:id="repositories">[repositories]</span></td> | |||
<td class="hidden-phone left" ><span class="list" wicket:id="repositories">[repositories]</span></td> | |||
<td class="rightAlign"><span wicket:id="userLinks"></span></td> | |||
</tr> | |||
</tbody> |