Changeset - 67e53a272e1a
[Not reviewed]
default
0 28 0
domruf - 9 years ago 2016-11-07 19:06:29
dominikruf@gmail.com
templates: use Bootstrap compatible 'form-control' name instead of 'medium' & co

In Bootstrap, form controls tend to be 100%.
28 files changed with 74 insertions and 88 deletions:
0 comments (0 inline, 0 general)
kallithea/public/css/style.css
Show inline comments
 
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 {
 
    border: 0;
 
    outline: 0;
 
    font-size: 100%;
 
    vertical-align: baseline;
 
    background: transparent;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
body {
 
    line-height: 1;
 
    height: 100%;
 
    background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
 
    font-family: Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
 
    color: #000;
 
    margin: 0;
 
    padding: 0;
 
    font-size: 12px;
 
}
 

	
 
ol, ul {
 
    list-style: none;
 
}
 

	
 
blockquote, q {
 
    quotes: none;
 
}
 

	
 
blockquote:before, blockquote:after, q:before, q:after {
 
    content: none;
 
}
 

	
 
:focus {
 
    outline: 0;
 
}
 

	
 
del {
 
    text-decoration: line-through;
 
}
 

	
 
table {
 
    border-collapse: collapse;
 
    border-spacing: 0;
 
}
 

	
 
html {
 
    height: 100%;
 
}
 

	
 
a {
 
    color: #577632;
 
    text-decoration: none;
 
    cursor: pointer;
 
}
 

	
 
a:hover {
 
    color: #576622;
 
    text-decoration: underline;
 
}
 

	
 
h1, h2, h3, h4, h5, h6,
 
div.h1, div.h2, div.h3, div.h4, div.h5, div.h6 {
 
    color: #292929;
 
    font-weight: 700;
 
}
 

	
 
h1, div.h1 {
 
    font-size: 22px;
 
}
 

	
 
h2, div.h2 {
 
    font-size: 20px;
 
}
 

	
 
h3, div.h3 {
 
    font-size: 18px;
 
}
 

	
 
h4, div.h4 {
 
    font-size: 16px;
 
}
 

	
 
h5, div.h5 {
 
    font-size: 14px;
 
}
 

	
 
h6, div.h6 {
 
    font-size: 11px;
 
}
 

	
 
ul.circle {
 
    list-style-type: circle;
 
}
 

	
 
ul.disc {
 
    list-style-type: disc;
 
}
 

	
 
ul.square {
 
    list-style-type: square;
 
}
 

	
 
ol.lower-roman {
 
    list-style-type: lower-roman;
 
}
 

	
 
ol.upper-roman {
 
    list-style-type: upper-roman;
 
}
 

	
 
ol.lower-alpha {
 
    list-style-type: lower-alpha;
 
}
 

	
 
ol.upper-alpha {
 
    list-style-type: upper-alpha;
 
}
 

	
 
ol.decimal {
 
    list-style-type: decimal;
 
}
 

	
 
div.color {
 
    clear: both;
 
    overflow: hidden;
 
    position: absolute;
 
    background: #FFF;
 
    margin: 7px 0 0 60px;
 
    padding: 1px 1px 1px 0;
 
}
 

	
 
div.color a {
 
    width: 15px;
 
    height: 15px;
 
    display: block;
 
    float: left;
 
    margin: 0 0 0 1px;
 
    padding: 0;
 
}
 

	
 
div.options {
 
    clear: both;
 
    overflow: hidden;
 
    position: absolute;
 
    background: #FFF;
 
    margin: 7px 0 0 162px;
 
    padding: 0;
 
}
 

	
 
div.options a {
 
    height: 1%;
 
    display: block;
 
    text-decoration: none;
 
    margin: 0;
 
    padding: 3px 8px;
 
}
 

	
 
code,
 
.code pre,
 
div.readme .readme_box pre,
 
div.rst-block pre,
 
div.formatted-fixed,
 
#changeset_content div.message,
 
.CodeMirror .CodeMirror-code pre {
 
    font-size: 12px;
 
    font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
div.formatted-fixed {
 
    white-space: pre-wrap;
 
}
 

	
 
.changeset_hash {
 
    font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
.top-left-rounded-corner {
 
    border-top-left-radius: 8px;
 
}
 

	
 
.top-right-rounded-corner {
 
    border-top-right-radius: 8px;
 
}
 

	
 
.bottom-left-rounded-corner {
 
    border-bottom-left-radius: 8px;
 
}
 

	
 
.bottom-right-rounded-corner {
 
    border-bottom-right-radius: 8px;
 
}
 

	
 
.top-left-rounded-corner-mid {
 
    border-top-left-radius: 4px;
 
}
 

	
 
.top-right-rounded-corner-mid {
 
    border-top-right-radius: 4px;
 
}
 

	
 
.bottom-left-rounded-corner-mid {
 
    border-bottom-left-radius: 4px;
 
}
 

	
 
.bottom-right-rounded-corner-mid {
 
    border-bottom-right-radius: 4px;
 
}
 

	
 
.help-block {
 
    color: #999999;
 
    display: block;
 
    margin-bottom: 0;
 
    margin-top: 5px;
 
}
 

	
 
.empty_data {
 
    color: #B9B9B9;
 
}
 

	
 
.inline-comments-general.show-general-status .hidden.general-only {
 
    display: block !important;
 
}
 

	
 
/* Bootstrap compatible */
 
.show {
 
    display: block !important;
 
}
 
.hidden {
 
    display: none !important;
 
}
 
.invisible {
 
    visibility: hidden;
 
}
 

	
 
.truncate {
 
       white-space: nowrap;
 
       overflow: hidden;
 
       text-overflow: ellipsis;
 
    -o-text-overflow: ellipsis;
 
    -ms-text-overflow: ellipsis;
 
}
 

	
 
.truncate.autoexpand:hover {
 
    overflow: visible;
 
}
 

	
 
a.permalink {
 
    visibility: hidden;
 
    position: absolute;
 
    margin: 3px 4px;
 
}
 

	
 
a.permalink:hover {
 
    text-decoration: none;
 
}
 

	
 
h1:hover > a.permalink,
 
h2:hover > a.permalink,
 
h3:hover > a.permalink,
 
h4:hover > a.permalink,
 
h5:hover > a.permalink,
 
h6:hover > a.permalink,
 
div:hover > a.permalink,
 
div:hover > span > a.permalink {
 
    visibility: visible;
 
}
 

	
 
#header #logo {
 
    padding-left: 10px;
 
}
 

	
 
div.header img {
 
    padding-top: 5px;
 
}
 

	
 
#header #logo div.header,
 
#header #logo div.branding {
 
    font-size: 20px;
 
    color: white;
 
    float: left;
 
    height: 44px;
 
    line-height: 44px;
 
    margin-right: 5px;
 
}
 

	
 
#header ul#logged-user {
 
    margin-bottom: 5px !important;
 
    border-radius: 0px 0px 8px 8px;
 
    height: 37px;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
}
 

	
 
#header ul#logged-user li {
 
    list-style: none;
 
    float: left;
 
    margin: 8px 0 0;
 
    padding: 4px 12px;
 
    border-left: 1px solid #576622;
 
}
 

	
 
#header ul#logged-user li.first {
 
    border-left: none;
 
    margin: 4px;
 
}
 

	
 
#header ul#logged-user li.first div.gravatar {
 
    margin-top: -2px;
 
}
 

	
 
#header ul#logged-user li.first div.account {
 
    padding-top: 4px;
 
    float: left;
 
}
 

	
 
#header ul#logged-user li.last {
 
    border-right: none;
 
}
 

	
 
#header ul#logged-user li a {
 
    color: #fff;
 
    font-weight: 700;
 
    text-decoration: none;
 
}
 

	
 
#header ul#logged-user li a:hover {
 
    text-decoration: underline;
 
}
 

	
 
#header ul#logged-user li.highlight a {
 
    color: #fff;
 
}
 

	
 
#header ul#logged-user li.highlight a:hover {
 
    color: #FFF;
 
}
 
#header-dd {
 
    clear: both;
 
    position: fixed !important;
 
    background-color: #577632;
 
    opacity: 0.01;
 
    cursor: pointer;
 
    min-height: 10px;
 
    width: 100% !important;
 
    border-radius: 0px 0px 4px 4px;
 
}
 

	
 
#header-dd:hover {
 
    opacity: 0.2;
 
    transition: opacity 0.5s ease-in-out;
 
}
 

	
 
#header #header-inner {
 
    min-height: 44px;
 
    clear: both;
 
    position: relative;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    margin: 0;
 
    padding: 0;
 
    display: block;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    border-radius: 0px 0px 4px 4px;
 
}
 
#header #header-inner.hover {
 
    width: 100% !important;
 
    border-radius: 0px 0px 0px 0px;
 
    position: fixed !important;
 
    z-index: 10000;
 
}
 

	
 
.header-pos-fix, .anchor {
 
    margin-top: -46px;
 
    padding-top: 46px;
 
}
 

	
 
#header #header-inner #home a {
 
    height: 40px;
 
    width: 46px;
 
    display: block;
 
    background-position: 0 0;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#header #header-inner #home a:hover {
 
    background-position: 0 -40px;
 
}
 

	
 
#header #header-inner #logo {
 
    float: left;
 
    position: absolute;
 
}
 

	
 
#header #header-inner #logo h1 {
 
    color: #FFF;
 
    font-size: 20px;
 
    margin: 12px 0 0 13px;
 
    padding: 0;
 
}
 

	
 
#header #header-inner #logo a {
 
    color: #fff;
 
    text-decoration: none;
 
}
 

	
 
#header #header-inner #logo a:hover {
 
    color: #bfe3ff;
 
}
 

	
 
#header #header-inner #quick {
 
    position: relative;
 
    float: right;
 
    list-style-type: none;
 
    list-style-position: outside;
 
    margin: 4px 8px 0 0;
 
    padding: 0;
 
    border-radius: 4px;
 
}
 

	
 
#header #header-inner #quick li span.short {
 
    padding: 9px 6px 8px 6px;
 
}
 

	
 
#header #header-inner #quick li span {
 
    display: inline;
 
    margin: 0;
 
}
 

	
 
#header #header-inner #quick li span.normal {
 
    border: none;
 
    padding: 10px 12px 8px;
 
}
 

	
 
#header #header-inner #quick li .icon {
 
    border-left: none;
 
    padding-left: 10px;
 
}
 

	
 
#header #header-inner #quick li .icon_short {
 
    top: 0;
 
    left: 0;
 
    border-left: none;
 
    border-right: 1px solid #2e5c89;
 
    padding: 8px 6px 4px;
 
}
 

	
 
#header #header-inner #quick li .icon img,
 
#header #header-inner #quick li .icon_short img {
 
    vertical-align: middle;
 
    margin-bottom: 2px;
 
}
 

	
 
#header #header-inner #quick ul.repo_switcher {
 
    max-height: 275px;
 
    overflow-x: hidden;
 
    overflow-y: auto;
 
}
 

	
 
#header #header-inner #quick ul.repo_switcher li.qfilter_rs {
 
    padding: 2px 3px;
 
    padding-right: 17px;
 
}
 

	
 
#header #header-inner #quick ul.repo_switcher li.qfilter_rs input {
 
    width: 100%;
 
    border-radius: 10px;
 
    padding: 2px 7px;
 
}
 

	
 
#header #header-inner #quick .repo_switcher_type {
 
    position: absolute;
 
    left: 0;
 
    top: 9px;
 
    margin: 0px 2px 0px 2px;
 
}
 

	
 
.groups_breadcrumbs a {
 
    color: #fff;
 
}
 

	
 
.groups_breadcrumbs a:hover {
 
    color: #bfe3ff;
 
    text-decoration: none;
 
}
 

	
 
.dt_repo {
 
    white-space: nowrap;
 
    color: #577632;
 
}
 

	
 
.dt_repo_pending {
 
    opacity: 0.5;
 
}
 

	
 
.dt_repo i.icon-keyhole-circled,
 
.dt_repo i.icon-globe
 
{
 
    font-size: 16px;
 
    vertical-align: -2px;
 
    margin: 0px 1px 0px 3px;
 
}
 

	
 
.dt_repo a {
 
    text-decoration: none;
 
}
 

	
 
.dt_repo .dt_repo_name:hover {
 
    text-decoration: underline;
 
}
 

	
 
#content #left {
 
    left: 0;
 
    width: 280px;
 
    position: absolute;
 
}
 

	
 
#content #right {
 
    margin: 0 60px 10px 290px;
 
}
 

	
 
#content div.panel {
 
    clear: both;
 
    background: #fff;
 
    margin: 0 0 10px;
 
    padding: 0 0 10px;
 
    border-radius: 4px 4px 4px 4px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
}
 

	
 
#content div.panel div.panel-heading {
 
    clear: both;
 
    overflow: hidden;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    margin: 0 0 20px;
 
    padding: 0;
 
    border-radius: 4px 4px 0 0;
 
}
 

	
 
#content div.panel div.panel-heading h5 {
 
    float: left;
 
    border: none;
 
    color: #fff;
 
    margin: 0;
 
    padding: 11px 0 11px 10px;
 
}
 

	
 
#content div.panel div.panel-heading .link-white {
 
    color: #FFFFFF;
 
}
 

	
 
#content div.panel div.panel-heading .link-white.current {
 
    color: #BFE3FF;
 
}
 

	
 
#content div.panel div.panel-heading ul.links li {
 
    list-style: none;
 
    float: left;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.panel-heading ul.links li a {
 
    font-size: 13px;
 
    font-weight: 700;
 
    height: 1%;
 
    margin: 4px;
 
    text-decoration: none;
 
}
 

	
 
#content div.panel div.panel-heading ul.links.nav-tabs li a {
 
    float: left;
 
    color: #fff;
 
    margin: 0;
 
    padding: 11px 10px 11px 10px;
 
}
 

	
 
#content div.panel div.panel-heading ul.links.icon-only-links li a {
 
    float: left;
 
    color: #fff;
 
    margin: 0;
 
    padding: 11px 10px 11px 10px;
 
}
 

	
 
#content div.panel h1,
 
#content div.panel h2,
 
#content div.panel h3,
 
#content div.panel h4,
 
#content div.panel h5,
 
#content div.panel h6,
 
#content div.panel div.h1,
 
#content div.panel div.h2,
 
#content div.panel div.h3,
 
#content div.panel div.h4,
 
#content div.panel div.h5,
 
#content div.panel div.h6 {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 8px 20px 3px;
 
    padding-bottom: 2px;
 
}
 

	
 
#content div.panel div.normal-indent {
 
    margin: 0 20px 10px 20px;
 
}
 

	
 
#content div.panel p {
 
    color: #5f5f5f;
 
    font-size: 12px;
 
    line-height: 150%;
 
    margin: 0 24px 10px;
 
    padding: 0;
 
}
 

	
 
#content div.panel blockquote {
 
    border-left: 4px solid #DDD;
 
    color: #5f5f5f;
 
    font-size: 11px;
 
    line-height: 150%;
 
    margin: 0 34px;
 
    padding: 0 0 0 14px;
 
}
 

	
 
#content div.panel blockquote p {
 
    margin: 10px 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel dl {
 
    margin: 10px 0px;
 
}
 

	
 
#content div.panel dt {
 
    font-size: 12px;
 
    margin: 0;
 
}
 

	
 
#content div.panel dd {
 
    font-size: 12px;
 
    margin: 0;
 
    padding: 8px 0 8px 15px;
 
}
 

	
 
#content div.panel li {
 
    font-size: 12px;
 
    padding: 4px 0;
 
}
 

	
 
#content div.panel ul.disc,
 
#content div.panel ul.circle {
 
    margin: 10px 24px 10px 38px;
 
}
 

	
 
#content div.panel ul.square {
 
    margin: 10px 24px 10px 40px;
 
}
 

	
 
#content div.panel img.left {
 
    border: none;
 
    float: left;
 
    margin: 10px 10px 10px 0;
 
}
 

	
 
#content div.panel img.right {
 
    border: none;
 
    float: right;
 
    margin: 10px 0 10px 10px;
 
}
 

	
 
#content div.panel div.messages {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0 20px;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.message {
 
    float: left;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 5px 0;
 
    white-space: pre-wrap;
 
}
 
#content div.panel #changeset_content div.message {
 
    padding: 15px 0;
 
}
 
#content div.panel div.expand {
 
    width: 110%;
 
    height: 14px;
 
    font-size: 10px;
 
    text-align: center;
 
    cursor: pointer;
 
    color: #666;
 
    background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1));
 
    display: none;
 
    overflow: hidden;
 
}
 
#content div.panel div.expand .expandtext {
 
    background-color: #ffffff;
 
    padding: 2px;
 
    border-radius: 2px;
 
}
 

	
 
#content div.panel div.message a {
 
    font-weight: 400 !important;
 
}
 

	
 
#content div.panel div.message div.image {
 
    float: left;
 
    margin: 9px 0 0 5px;
 
    padding: 6px;
 
}
 

	
 
#content div.panel div.message div.image img {
 
    vertical-align: middle;
 
    margin: 0;
 
}
 

	
 
#content div.panel div.message div.text {
 
    float: left;
 
    margin: 0;
 
    padding: 9px 6px;
 
}
 

	
 
#content div.panel div.message div.text h1,
 
#content div.panel div.message div.text h2,
 
#content div.panel div.message div.text h3,
 
#content div.panel div.message div.text h4,
 
#content div.panel div.message div.text h5,
 
#content div.panel div.message div.text h6 {
 
    border: none;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.message div.text span {
 
    height: 1%;
 
    display: block;
 
    margin: 0;
 
    padding: 5px 0 0;
 
}
 

	
 
#content div.panel div.message-error {
 
    height: 1%;
 
    clear: both;
 
    overflow: hidden;
 
    background: #FBE3E4;
 
    border: 1px solid #FBC2C4;
 
    color: #860006;
 
}
 

	
 
#content div.panel div.message-error h6 {
 
    color: #860006;
 
}
 

	
 
#content div.panel div.message-warning {
 
    height: 1%;
 
    clear: both;
 
    overflow: hidden;
 
    background: #FFF6BF;
 
    border: 1px solid #FFD324;
 
    color: #5f5200;
 
}
 

	
 
#content div.panel div.message-warning h6 {
 
    color: #5f5200;
 
}
 

	
 
#content div.panel div.message-notice {
 
    height: 1%;
 
    clear: both;
 
    overflow: hidden;
 
    background: #8FBDE0;
 
    border: 1px solid #6BACDE;
 
    color: #003863;
 
}
 

	
 
#content div.panel div.message-notice h6 {
 
    color: #003863;
 
}
 

	
 
#content div.panel div.message-success {
 
    height: 1%;
 
    clear: both;
 
    overflow: hidden;
 
    background: #E6EFC2;
 
    border: 1px solid #C6D880;
 
    color: #4e6100;
 
}
 

	
 
#content div.panel div.message-success h6 {
 
    color: #4e6100;
 
}
 

	
 
#content div.panel div.form div.fields div.field,
 
#content div.panel div.form div.form-horizontal div.form-group {
 
    height: 1%;
 
    min-height: 12px;
 
    border-bottom: 1px solid #DDD;
 
    clear: both;
 
    margin: 0;
 
    padding: 10px 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field-first,
 
#content div.panel div.form div.form-horizontal div.form-group-first {
 
    padding: 0 0 10px;
 
}
 

	
 
#content div.panel div.form div.fields div.field-noborder,
 
#content div.panel div.form div.form-horizontal div.form-group-noborder {
 
    border-bottom: 0 !important;
 
}
 

	
 
#content div.panel div.form div.fields div.field span.error-message,
 
#content div.panel div.form div.form-horizontal div.form-group span.error-message {
 
    height: 1%;
 
    display: inline-block;
 
    color: red;
 
    margin: 8px 0 0 4px;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field span.success,
 
#content div.panel div.form div.form-horizontal div.form-group span.success {
 
    height: 1%;
 
    display: block;
 
    color: #316309;
 
    margin: 8px 0 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field > p,
 
#content div.panel div.form div.form-horizontal div.form-group > label {
 
    margin: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field > label,
 
#content div.panel div.form div.form-horizontal div.form-group > label {
 
    width: 155px;
 
    position: absolute;
 
    margin: 0;
 
    padding: 0px 0 0 0px;
 
}
 

	
 
#content div.panel div.form div.fields div.field > label,
 
#content div.panel div.form div.form-horizontal div.form-group > label {
 
    color: #393939;
 
    font-weight: 700;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input,
 
#content div.panel div.form div.form-horizontal div.form-group div.input {
 
    margin: 0 0 0 200px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input.summary,
 
#content div.panel div.form div.form-horizontal div.form-group div.input.summary {
 
    margin: 0 0 0 110px;
 
}
 
#content div.panel div.form div.fields div.field div.input.summary-short,
 
#content div.panel div.form div.form-horizontal div.form-group div.input.summary-short {
 
    margin: 0 0 0 110px;
 
}
 
#content div.panel div.form div.fields div.field div.file,
 
#content div.panel div.form div.form-horizontal div.form-group div.file {
 
    margin: 0 0 0 200px;
 
}
 
#content div.panel div.form div.fields div.field div.editor,
 
#content div.panel div.form div.form-horizontal div.form-group div.editor {
 
    margin: 0 0 0 200px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input,
 
.reviewer_ac input {
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 12px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input#clone_url,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input#clone_url,
 
#content div.panel div.form div.fields div.field div.input input#clone_url_id
 
#content div.panel div.form div.form-horizontal div.form-group div.input input#clone_url_id
 
{
 
    font-size: 14px;
 
    padding: 0 2px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.file input,
 
#content div.panel div.form div.form-horizontal div.form-group div.file input {
 
    background: none repeat scroll 0 0 #FFFFFF;
 
    border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
 
    border-style: solid;
 
    border-width: 1px;
 
    color: #000000;
 
    font-size: 12px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
input[readonly],
 
input.disabled {
 
    background-color: #F5F5F5 !important;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.small,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.small {
 
    width: 30%;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.medium,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.medium {
 
    width: 55%;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.large,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.large {
 
    width: 85%;
 
#content div.panel div.form div.fields div.field div.input input.form-control,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.form-control {
 
    width: 100%;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.date,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.date {
 
    width: 177px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.button,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.button {
 
    background: #D4D0C8;
 
    border-top: 1px solid #FFF;
 
    border-left: 1px solid #FFF;
 
    border-right: 1px solid #404040;
 
    border-bottom: 1px solid #404040;
 
    color: #000;
 
    margin: 0;
 
    padding: 4px 8px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea {
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    margin: 0 0 0 200px;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea-editor,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea-editor {
 
    border: 1px solid #ddd;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea textarea,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea textarea {
 
    width: 100%;
 
    height: 220px;
 
    overflow-y: auto;
 
    background: #FFF;
 
    color: #000;
 
    font-size: 12px;
 
    outline: none;
 
    border-width: 0;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea table,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea table {
 
    width: 100%;
 
    border: none;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea table td,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea table td {
 
    background: #DDD;
 
    border: none;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea table td table,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea table td table {
 
    width: auto;
 
    border: none;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.textarea table td table td,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea table td table td {
 
    font-size: 11px;
 
    padding: 5px 5px 5px 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field input[type=text]:focus,
 
#content div.panel div.form div.form-horizontal div.form-group input[type=text]:focus,
 
#content div.panel div.form div.fields div.field input[type=password]:focus,
 
#content div.panel div.form div.form-horizontal div.form-group input[type=password]:focus,
 
#content div.panel div.form div.fields div.field input[type=file]:focus,
 
#content div.panel div.form div.form-horizontal div.form-group input[type=file]:focus,
 
#content div.panel div.form div.fields div.field textarea:focus,
 
#content div.panel div.form div.form-horizontal div.form-group textarea:focus,
 
#content div.panel div.form div.fields div.field select:focus,
 
#content div.panel div.form div.form-horizontal div.form-group select:focus,
 
.reviewer_ac input:focus {
 
    background: #f6f6f6;
 
    border-color: #666;
 
}
 

	
 
.reviewer_ac {
 
    padding: 10px
 
}
 

	
 
div.form div.fields div.field div.button,
 
div.form div.form-horizontal div.form-group div.button {
 
    margin: 0;
 
    padding: 0 0 0 8px;
 
}
 
#content div.panel table.noborder {
 
    border: 1px solid transparent;
 
}
 

	
 
#content div.panel table {
 
    width: 100%;
 
    border-collapse: separate;
 
    margin: 0;
 
    padding: 0;
 
    border: 1px solid #eee;
 
    border-radius: 4px;
 
}
 

	
 
#content div.panel table th {
 
    background: #eee;
 
    border-bottom: 1px solid #ddd;
 
    padding: 5px 0px 5px 5px;
 
    text-align: left;
 
}
 

	
 
#content div.panel table th.left {
 
    text-align: left;
 
}
 

	
 
#content div.panel table th.right {
 
    text-align: right;
 
}
 

	
 
#content div.panel table th.center {
 
    text-align: center;
 
}
 

	
 
#content div.panel table th.selected {
 
    vertical-align: middle;
 
    padding: 0;
 
}
 

	
 
#content div.panel table td {
 
    background: #fff;
 
    border-bottom: 1px solid #cdcdcd;
 
    vertical-align: middle;
 
    padding: 5px;
 
}
 

	
 
#content div.panel table td.compact {
 
    padding: 0;
 
}
 

	
 
#content div.panel table tr.selected td {
 
    background: #FFC;
 
}
 

	
 
#content div.panel table td.selected {
 
    width: 3%;
 
    text-align: center;
 
    vertical-align: middle;
 
    padding: 0;
 
}
 

	
 
#content div.panel table td.action {
 
    width: 45%;
 
    text-align: left;
 
}
 

	
 
#content div.panel table td.date {
 
    width: 33%;
 
    text-align: center;
 
}
 

	
 
#content div.panel div.action {
 
    float: right;
 
    background: #FFF;
 
    text-align: right;
 
    margin: 10px 0 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.action select {
 
    font-size: 11px;
 
    margin: 0;
 
}
 

	
 
#content div.panel div.action .ui-selectmenu {
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel ul.pagination {
 
    height: 1%;
 
    overflow: hidden;
 
    text-align: right;
 
    margin: 10px 0 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel ul.pagination > li {
 
    display: inline;
 
}
 

	
 
#content div.panel ul.pagination > :first-child {
 
    border-radius: 4px 0px 0px 4px;
 
}
 

	
 
#content div.panel ul.pagination > :last-child {
 
    border-radius: 0px 4px 4px 0px;
 
    border-right: 1px solid #cfcfcf;
 
}
 

	
 
#content div.panel ul.pagination > li {
 
    height: 1%;
 
    float: left;
 
    background: #ebebeb url("../images/pager.png") repeat-x;
 
    border-top: 1px solid #dedede;
 
    border-left: 1px solid #cfcfcf;
 
    border-bottom: 1px solid #c4c4c4;
 
    color: #4A4A4A;
 
    font-weight: 700;
 
    padding: 6px;
 
}
 

	
 
#content div.panel ul.pagination > li.active {
 
    background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
 
    border-top: 1px solid #ccc;
 
    border-left: 1px solid #bebebe;
 
    border-bottom: 1px solid #afafaf;
 
    color: #515151;
 
}
 

	
 
#content div.panel ul.pagination > a:hover,
 
#content div.panel ul.pagination > a:active {
 
    background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
 
    border-top: 1px solid #ccc;
 
    border-left: 1px solid #bebebe;
 
    border-bottom: 1px solid #afafaf;
 
    text-decoration: none;
 
}
 

	
 
#content div.panel ul.pagination > li a {
 
    color: inherit;
 
    text-decoration: inherit;
 
}
 

	
 
#content div.panel div.traffic div.legend {
 
    clear: both;
 
    overflow: hidden;
 
    border-bottom: 1px solid #ddd;
 
    margin: 0 0 10px;
 
    padding: 0 0 10px;
 
}
 

	
 
#content div.panel div.traffic div.legend h6 {
 
    float: left;
 
    border: none;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.traffic div.legend li {
 
    list-style: none;
 
    float: left;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 0 8px 0 4px;
 
}
 

	
 
#content div.panel div.traffic div.legend li.visits {
 
    border-left: 12px solid #edc240;
 
}
 

	
 
#content div.panel div.traffic div.legend li.pageviews {
 
    border-left: 12px solid #afd8f8;
 
}
 

	
 
#content div.panel div.traffic table {
 
    width: auto;
 
}
 

	
 
#content div.panel div.traffic table td {
 
    background: transparent;
 
    border: none;
 
    padding: 2px 3px 3px;
 
}
 

	
 
#content div.panel div.traffic table td.legendLabel {
 
    padding: 0 3px 2px;
 
}
 

	
 
#content div.panel #summary {
 
    margin-right: 200px;
 
    min-height: 240px;
 
}
 

	
 
#summary-menu-stats {
 
    float: left;
 
    width: 180px;
 
    position: absolute;
 
    top: 0;
 
    right: 0;
 
}
 

	
 
#summary-menu-stats ul {
 
    margin: 0 10px;
 
    display: block;
 
    background-color: #f9f9f9;
 
    border: 1px solid #d1d1d1;
 
    border-radius: 4px;
 
}
 

	
 
#content #summary-menu-stats li {
 
    border-top: 1px solid #d1d1d1;
 
    padding: 0;
 
}
 

	
 
#content #summary-menu-stats li:hover {
 
    background: #f0f0f0;
 
}
 

	
 
#content #summary-menu-stats li:first-child {
 
    border-top: none;
 
}
 

	
 
#summary-menu-stats a {
 
    display: block;
 
    padding: 12px 10px;
 
    background-repeat: no-repeat;
 
    background-position: 10px 50%;
 
    padding-right: 10px;
 
}
 

	
 
#repo_size_2.loaded {
 
    margin-left: 30px;
 
    display: block;
 
    padding-right: 10px;
 
    padding-bottom: 7px;
 
}
 

	
 
#summary-menu-stats a:hover {
 
    text-decoration: none;
 
}
 

	
 
#summary-menu-stats .badge {
 
    padding: 2px 4px !important;
 
    font-size: 10px;
 
}
 

	
 
#summary .metatag {
 
    display: inline-block;
 
    padding: 3px 5px;
 
    margin-bottom: 3px;
 
    margin-right: 1px;
 
    border-radius: 5px;
 
}
 

	
 
#content div.panel #summary p {
 
    margin-bottom: -5px;
 
    width: 600px;
 
    white-space: pre-wrap;
 
}
 

	
 
#content div.panel #summary p:last-child {
 
    margin-bottom: 9px;
 
}
 

	
 
#content div.panel #summary p:first-of-type {
 
    margin-top: 9px;
 
}
 

	
 
.metatag {
 
    display: inline-block;
 
    margin-right: 1px;
 
    border-radius: 4px 4px 4px 4px;
 

	
 
    border: solid 1px #9CF;
 
    padding: 2px 3px 2px 3px !important;
 
    background-color: #DEF;
 
}
 

	
 
.metatag[tag="dead"] {
 
    background-color: #E44;
 
}
 

	
 
.metatag[tag="stale"] {
 
    background-color: #EA4;
 
}
 

	
 
.metatag[tag="featured"] {
 
    background-color: #AEA;
 
}
 

	
 
.metatag[tag="requires"] {
 
    background-color: #9CF;
 
}
 

	
 
.metatag[tag="recommends"] {
 
    background-color: #BDF;
 
}
 

	
 
.metatag[tag="lang"] {
 
    background-color: #FAF474;
 
}
 

	
 
.metatag[tag="license"] {
 
    border: solid 1px #9CF;
 
    background-color: #DEF;
 
}
 
.metatag[tag="see"] {
 
    border: solid 1px #CBD;
 
    background-color: #EDF;
 
}
 

	
 
a.metatag[tag="license"]:hover {
 
    background-color: #577632;
 
    color: #FFF;
 
    text-decoration: none;
 
}
 

	
 
#summary .desc {
 
    white-space: pre;
 
    width: 100%;
 
}
 

	
 
#summary .repo_name {
 
    font-size: 1.6em;
 
    font-weight: bold;
 
    vertical-align: baseline;
 
    clear: right
 
}
 

	
 
#footer {
 
    clear: both;
 
    overflow: hidden;
 
    text-align: right;
 
    margin: 0;
 
    padding: 0 10px 4px;
 
    margin: -10px 0 0;
 
}
 

	
 
#footer div#footer-inner {
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    border-radius: 4px 4px 4px 4px;
 
}
 

	
 
#footer div#footer-inner p {
 
    padding: 15px 25px 15px 0;
 
    color: #FFF;
 
    font-weight: 700;
 
}
 

	
 
#footer div#footer-inner .footer-link {
 
    float: left;
 
    padding-left: 10px;
 
}
 

	
 
#footer div#footer-inner .footer-link a,
 
#footer div#footer-inner .footer-link-right a {
 
    color: #FFF;
 
}
 

	
 
#login div.panel-heading {
 
    clear: both;
 
    overflow: hidden;
 
    position: relative;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    margin: 0 auto;
 
    padding: 0;
 
}
 

	
 
#login div.inner .icon-lock {
 
    font-size: 80pt;
 
    color: #DDD;
 
}
 

	
 
#login div.inner {
 
    background: #FFF;
 
    border-top: none;
 
    border-bottom: none;
 
    margin: 0 auto;
 
    padding: 20px;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group > label {
 
    width: 173px;
 
    float: left;
 
    text-align: right;
 
    margin: 2px 10px 0 0;
 
    padding: 5px 0 0 5px;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group div input {
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#login div.form .buttons {
 
    float: right;
 
}
 

	
 
#login div.form div.links {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 10px 0 0;
 
    border-top: 1px solid #DDD;
 
    padding: 10px 0 0;
 
}
 

	
 
.user-menu {
 
    margin: 0px !important;
 
    float: left;
 
}
 

	
 
.user-menu .container {
 
    padding: 0px 4px 0px 4px;
 
    margin: 0px 0px 0px 0px;
 
}
 

	
 
.user-menu .gravatar {
 
    margin: 0px 0px 0px 0px;
 
    cursor: pointer;
 
}
 
.user-menu .gravatar.enabled {
 
    background-color: #FDF784 !important;
 
}
 
.user-menu .gravatar:hover {
 
    background-color: #FDF784 !important;
 
}
 
#quick_login {
 
    min-height: 110px;
 
    padding: 4px;
 
    position: absolute;
 
    right: 0;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 

	
 
    z-index: 999;
 
    border-radius: 0px 0px 4px 4px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 

	
 
    overflow: hidden;
 
}
 
#quick_login h4 {
 
    color: #fff;
 
    padding: 5px 0px 5px 14px;
 
}
 

	
 
#quick_login .password_forgoten {
 
    padding-right: 0px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
#quick_login .password_forgoten a {
 
    font-size: 10px;
 
    color: #fff;
 
    padding: 0px !important;
 
    line-height: 20px !important;
 
}
 

	
 
#quick_login .register {
 
    padding-right: 10px;
 
    padding-top: 5px;
 
    text-align: left;
 
}
 

	
 
#quick_login .register a {
 
    font-size: 10px;
 
    color: #fff;
 
    padding: 0px !important;
 
    line-height: 20px !important;
 
}
 

	
 
#quick_login .submit {
 
    margin: -20px 0 0 0px;
 
    position: absolute;
 
    right: 15px;
 
}
 

	
 
#quick_login .links_left {
 
    float: left;
 
    margin-right: 130px;
 
    width: 170px;
 
}
 
#quick_login .links_right {
 

	
 
    position: absolute;
 
    right: 0;
 
}
 
#quick_login .full_name {
 
    color: #FFFFFF;
 
    font-weight: bold;
 
    padding: 3px 3px 3px 6px;
 
}
 
#quick_login .big_gravatar {
 
    padding: 4px 0px 0px 6px;
 
}
 
#quick_login .notifications {
 
    padding: 2px 0px 0px 6px;
 
    color: #FFFFFF;
 
    font-weight: bold;
 
    line-height: 10px !important;
 
}
 
#quick_login .notifications a,
 
#quick_login .unread a {
 
    color: #FFFFFF;
 
    display: block;
 
    padding: 0px !important;
 
}
 
#quick_login .notifications a:hover,
 
#quick_login .unread a:hover {
 
    background-color: inherit !important;
 
}
 
#quick_login .email,
 
#quick_login .unread {
 
    color: #FFFFFF;
 
    padding: 3px 3px 3px 6px;
 
}
 
#quick_login .links .logout {
 
}
 

	
 
#quick_login div.form div.fields,
 
#quick_login div.form div.form-horizontal {
 
    padding-top: 2px;
 
    padding-left: 10px;
 
}
 

	
 
#quick_login div.form div.fields div.field,
 
#quick_login div.form div.form-horizontal div.form-group {
 
    padding: 5px;
 
}
 

	
 
#quick_login div.form div.fields div.field > label,
 
#quick_login div.form div.form-horizontal div.form-group > label {
 
    color: #fff;
 
    padding-bottom: 3px;
 
}
 

	
 
#quick_login div.form div.fields div.field div.input input,
 
#quick_login div.form div.form-horizontal div.form-group div.input input {
 
    width: 236px;
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 5px 7px 4px;
 
}
 

	
 
#quick_login div.form div.fields div.buttons,
 
#quick_login div.form div.form-horizontal div.buttons {
 
    clear: both;
 
    overflow: hidden;
 
    text-align: right;
 
    margin: 0;
 
    padding: 5px 14px 0px 5px;
 
}
 

	
 
#quick_login div.form div.links {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 10px 0 0;
 
    padding: 0 0 2px;
 
}
 

	
 
#quick_login ol.links {
 
    display: block;
 
    font-weight: bold;
 
    list-style: none outside none;
 
    text-align: right;
 
}
 
#quick_login ol.links li {
 
    line-height: 27px;
 
    margin: 0;
 
    padding: 0;
 
    color: #fff;
 
    display: block;
 
    float: none !important;
 
}
 

	
 
#quick_login ol.links li a {
 
    color: #fff;
 
    display: block;
 
    padding: 2px;
 
}
 
#quick_login ol.links li a:HOVER {
 
    background-color: inherit !important;
 
}
 

	
 
#register div.panel-heading {
 
    clear: both;
 
    overflow: hidden;
 
    position: relative;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    margin: 0 auto;
 
    padding: 0;
 
}
 

	
 
#register div.inner {
 
    background: #FFF;
 
    border-top: none;
 
    border-bottom: none;
 
    margin: 0 auto;
 
    padding: 20px;
 
}
 

	
 
#register div.form div.fields div.field > label,
 
#register div.form div.form-horizontal div.form-group > label {
 
    width: 135px;
 
    float: left;
 
    text-align: right;
 
    margin: 2px 10px 0 0;
 
    padding: 5px 0 0 5px;
 
}
 

	
 
#register div.form div.fields div.field div.input input,
 
#register div.form div.form-horizontal div.form-group div.input input {
 
    width: 300px;
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#register div.form div.fields div.buttons,
 
#register div.form div.form-horizontal div.buttons {
 
    clear: both;
 
    overflow: hidden;
 
    border-top: 1px solid #DDD;
 
    text-align: left;
 
    margin: 0;
 
    padding: 10px 0 0 150px;
 
}
 

	
 
#register div.form div.activation_msg {
 
    padding-top: 4px;
 
    padding-bottom: 4px;
 
}
 

	
 
#journal .journal_day {
 
    font-size: 20px;
 
    padding: 10px 0px;
 
    border-bottom: 2px solid #DDD;
 
    margin-left: 10px;
 
    margin-right: 10px;
 
}
 

	
 
#journal .journal_container {
 
    padding: 5px;
 
    clear: both;
 
    margin: 0px 5px 0px 10px;
 
}
 

	
 
#journal .journal_action_container {
 
    padding-left: 38px;
 
}
 

	
 
#journal .journal_user {
 
    color: #747474;
 
    font-size: 14px;
 
    font-weight: bold;
 
    height: 30px;
 
}
 

	
 
#journal .journal_user.deleted {
 
    color: #747474;
 
    font-size: 14px;
 
    font-weight: normal;
 
    height: 30px;
 
    font-style: italic;
 
}
 

	
 

	
 
#journal .journal_icon {
 
    clear: both;
 
    float: left;
 
    padding-right: 4px;
 
    padding-top: 3px;
 
}
 

	
 
#journal .journal_action {
 
    padding-top: 4px;
 
    min-height: 2px;
 
    float: left
 
}
 

	
 
#journal .journal_action_params {
 
    clear: left;
 
    padding-left: 22px;
 
}
 

	
 
#journal .journal_repo {
 
    float: left;
 
    margin-left: 6px;
 
    padding-top: 3px;
 
}
 

	
 
#journal .date {
 
    clear: both;
 
    color: #777777;
 
    font-size: 11px;
 
    padding-left: 22px;
 
}
 

	
 
#journal .journal_repo .journal_repo_name {
 
    font-weight: bold;
 
    font-size: 1.1em;
 
}
 

	
 
#journal .compare_view {
 
    padding: 5px 0px 5px 0px;
 
    width: 95px;
 
}
 

	
 
.trending_language_tbl, .trending_language_tbl td {
 
    border: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
}
 

	
 
.trending_language_tbl, .trending_language_tbl tr {
 
    border-spacing: 1px;
 
}
 

	
 
.trending_language {
 
    background-color: #577632;
 
    color: #FFF;
 
    display: block;
 
    min-width: 20px;
 
    text-decoration: none;
 
    height: 12px;
 
    margin-bottom: 0px;
 
    margin-left: 5px;
 
    white-space: pre;
 
    padding: 3px;
 
}
 

	
 
h3.files_location {
 
    font-size: 1.8em;
 
    font-weight: 700;
 
    border-bottom: none !important;
 
    margin: 10px 0 !important;
 
}
 

	
 
#files_data dl dt {
 
    float: left;
 
    width: 60px;
 
    margin: 0 !important;
 
    padding: 5px;
 
}
 

	
 
#files_data dl dd {
 
    margin: 0 !important;
 
    padding: 5px !important;
 
}
 

	
 
#files_data .codeblock #editor_container .error-message {
 
    color: red;
 
    padding: 10px 10px 10px 26px
 
}
 

	
 
.file_history {
 
    padding-top: 10px;
 
    font-size: 16px;
 
}
 
.file_author {
 
    float: left;
 
}
 

	
 
.file_author .item {
 
    float: left;
 
    padding: 5px;
 
    color: #888;
 
}
 

	
 
.changeset_id {
 
    color: #666666;
 
    margin-right: -3px;
 
}
 

	
 
.changeset-logical-index {
 
    color: #666666;
 
    font-style: italic;
 
    font-size: 85%;
 
    padding-right: 0.5em;
 
    text-align: right;
 
}
 

	
 
#changeset_content {
 
    border-left: 1px solid #CCC;
 
    border-right: 1px solid #CCC;
 
    border-bottom: 1px solid #CCC;
 
    padding: 5px;
 
}
 

	
 
#changeset_compare_view_content {
 
    border: 1px solid #CCC;
 
    padding: 5px;
 
}
 

	
 
#changeset_content .container {
 
    min-height: 100px;
 
    font-size: 1.2em;
 
    overflow: hidden;
 
}
 

	
 
#changeset_compare_view_content .compare_view_commits {
 
    width: auto !important;
 
}
 

	
 
#changeset_compare_view_content .compare_view_commits td {
 
    padding: 0px 0px 0px 12px !important;
 
}
 

	
 
#changeset_content .container .right {
 
    float: right;
 
    width: 20%;
 
    text-align: right;
 
}
 

	
 
#changeset_content .container .message {
 
    white-space: pre-wrap;
 
}
 
#changeset_content .container .message a:hover {
 
    text-decoration: none;
 
}
 
.cs_files .cur_cs {
 
    margin: 10px 2px;
 
    font-weight: bold;
 
}
 

	
 
.cs_files .node {
 
    float: left;
 
}
 

	
 
.cs_files .changes {
 
    float: right;
 
    color: #577632;
 
}
 

	
 
.cs_files .changes .added {
 
    background-color: #BBFFBB;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 

	
 
.cs_files .changes .deleted {
 
    background-color: #FF8888;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 
/*new binary
 
NEW_FILENODE = 1
 
DEL_FILENODE = 2
 
MOD_FILENODE = 3
 
RENAMED_FILENODE = 4
 
CHMOD_FILENODE = 5
 
BIN_FILENODE = 6
 
*/
 
.cs_files .changes .bin {
 
    background-color: #BBFFBB;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 
.cs_files .changes .bin.bin1 {
 
    background-color: #BBFFBB;
 
}
 

	
 
/*deleted binary*/
 
.cs_files .changes .bin.bin2 {
 
    background-color: #FF8888;
 
}
 

	
 
/*mod binary*/
 
.cs_files .changes .bin.bin3 {
 
    background-color: #DDDDDD;
 
}
 

	
 
/*rename file*/
 
.cs_files .changes .bin.bin4 {
 
    background-color: #6D99FF;
 
}
 

	
 
/*rename file*/
 
.cs_files .changes .bin.bin4 {
 
    background-color: #6D99FF;
 
}
 

	
 
/*chmod file*/
 
.cs_files .changes .bin.bin5 {
 
    background-color: #6D99FF;
 
}
 

	
 
.cs_files .cs_added,
 
.cs_files .cs_A {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_changed,
 
.cs_files .cs_M {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_removed,
 
.cs_files .cs_D {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_renamed,
 
.cs_files .cs_R {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.table {
 
    position: relative;
 
}
 

	
 
#graph {
 
    position: relative;
 
    overflow: hidden;
 
}
 

	
 
#graph_nodes {
 
    position: absolute;
 
    width: 100px;
 
}
 

	
 
#graph_content,
 
#graph .info_box,
 
#graph .container_header {
 
    margin-left: 100px;
 
}
 

	
 
#graph_content {
 
    position: relative;
 
}
 

	
 
#graph .container_header {
 
    padding: 10px;
 
    height: 25px;
 
}
 

	
 
#graph_content #rev_range_container {
 
    float: left;
 
    margin: 0px 0px 0px 3px;
 
}
 

	
 
#graph_content #rev_range_clear {
 
    float: left;
 
    margin: 0px 0px 0px 3px;
 
}
 

	
 
#graph_content #changesets {
 
    table-layout: fixed;
 
    border-collapse: collapse;
 
    border-left: none;
 
    border-right: none;
 
    border-color: #cdcdcd;
 
}
 

	
 
#updaterevs-table tr.mergerow,
 
#graph_content_pr tr.mergerow,
 
#shortlog_data tr.mergerow,
 
#graph_content #changesets tr.out-of-range,
 
#graph_content #changesets tr.mergerow {
 
    opacity: 0.6;
 
}
 

	
 
#graph_content #changesets td {
 
    overflow: hidden;
 
    text-overflow: ellipsis;
 
    white-space: nowrap;
 
    height: 31px;
 
    border-color: #cdcdcd;
 
    text-align: left;
 
}
 

	
 
#graph_content .container .checkbox {
 
    width: 14px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content .container .status {
 
    width: 14px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content .container .author {
 
   width: 105px;
 
}
 

	
 
#graph_content .container .hash {
 
    width: 100px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content #changesets .container .date {
 
    width: 76px;
 
    color: #666;
 
    font-size: 10px;
 
}
 

	
 
#graph_content_pr .compare_view_commits .expand_commit,
 
#graph_content .container .expand_commit {
 
    width: 24px;
 
    cursor: pointer;
 
}
 

	
 
#graph_content #changesets .container .right {
 
    width: 120px;
 
    padding-right: 0px;
 
    overflow: visible;
 
    position: relative;
 
}
 

	
 
#graph_content .container .mid {
 
    padding: 0;
 
}
 

	
 
#graph_content .log-container {
 
    position: relative;
 
}
 

	
 
#graph_content .container #singlerange,
 
#graph_content .container .changeset_range {
 
    float: left;
 
    margin: 6px 3px;
 
}
 

	
 
#graph_content .container .author img {
 
    vertical-align: middle;
 
}
 

	
 
#graph_content .container .author .user {
 
    color: #444444;
 
}
 

	
 
#graph_content .container .mid .message {
 
    white-space: pre-wrap;
 
    padding: 0;
 
    overflow: hidden;
 
    height: 1.1em;
 
}
 

	
 
#graph_content_pr .compare_view_commits .message {
 
    padding: 0 !important;
 
    height: 1.1em;
 
}
 

	
 
#graph_content .container .mid .message.expanded,
 
#graph_content_pr .compare_view_commits .message.expanded {
 
    height: auto;
 
    margin: 8px 0px 8px 0px;
 
    overflow: initial;
 
}
 

	
 
#graph_content .container .extra-container {
 
    display: block;
 
    position: absolute;
 
    top: -15px;
 
    right: 0;
 
    padding-left: 5px;
 
    background: #FFFFFF;
 
    height: 41px;
 
}
 

	
 
#pull_request_overview .comments-container,
 
#changeset_compare_view_content .comments-container,
 
#graph_content .comments-container,
 
#shortlog_data .comments-container,
 
#graph_content .logtags {
 
    display: block;
 
    float: left;
 
    overflow: hidden;
 
    padding: 0;
 
    margin: 0;
 
    white-space: nowrap;
 
}
 

	
 
#graph_content .comments-container {
 
    margin: 0.8em 0;
 
    margin-right: 0.5em;
 
}
 

	
 
#graph_content .tagcontainer {
 
    width: 80px;
 
    position: relative;
 
    float: right;
 
    height: 100%;
 
    top: 7px;
 
    margin-left: 0.5em;
 
}
 

	
 
#graph_content .logtags {
 
    min-width: 80px;
 
    height: 1.1em;
 
    position: absolute;
 
    left: 0px;
 
    width: auto;
 
    top: 0px;
 
}
 

	
 
#graph_content .logtags.tags {
 
    top: 14px;
 
}
 

	
 
#graph_content .logtags:hover {
 
    overflow: visible;
 
    position: absolute;
 
    width: auto;
 
    right: 0;
 
    left: initial;
 
}
 

	
 
#graph_content .logtags .booktag,
 
#graph_content .logtags .tagtag {
 
    float: left;
 
    line-height: 1em;
 
    margin-bottom: 1px;
 
    margin-right: 1px;
 
    padding: 1px 3px;
 
    font-size: 10px;
 
}
 

	
 
#graph_content .container .mid .message a:hover {
 
    text-decoration: none;
 
}
 

	
 
#compare_branches + .table .revision-link,
 
#compare_tags + .table .revision-link,
 
#compare_bookmarks + .table .revision-link,
 
.table #files_data .revision-link,
 
#repos_list_wrap .revision-link,
 
#shortlog_data .revision-link {
 
    font-weight: normal !important;
 
    font-family: monospace;
 
    font-size: 12px;
 
    color: #577632;
 
}
 

	
 
.revision-link {
 
    color: #3F6F9F;
 
    font-weight: bold !important;
 
}
 

	
 
.issue-tracker-link {
 
    color: #3F6F9F;
 
    font-weight: bold !important;
 
}
 

	
 
.changeset-status-container {
 
    padding-right: 5px;
 
    margin-top: 1px;
 
    float: right;
 
    height: 14px;
 
}
 
.code-header .changeset-status-container {
 
    float: left;
 
    padding: 2px 0px 0px 2px;
 
}
 
.code-header .changeset-status-container .changeset-status-lbl {
 
    float: left;
 
    padding: 0px 4px 0px 0px;
 
}
 
.changeset-status-container div.changeset-status-ico {
 
    float: left;
 
}
 
.code-header .changeset-status-container .changeset-status-ico,
 
.container .changeset-status-ico {
 
    float: left;
 
}
 

	
 
/* changeset statuses (must be the same name as the status) */
 
.changeset-status-not_reviewed {
 
    color: #bababa;
 
}
 
.changeset-status-approved {
 
    color: #81ba51;
 
}
 
.changeset-status-rejected {
 
    color: #d06060;
 
}
 
.changeset-status-under_review {
 
    color: #ffc71e;
 
}
 

	
 
#graph_content .comments-cnt {
 
    color: rgb(136, 136, 136);
 
    padding: 5px 0;
 
}
 

	
 
#shortlog_data .comments-cnt {
 
    color: rgb(136, 136, 136);
 
    padding: 3px 0;
 
}
 

	
 
.right .changes {
 
    clear: both;
 
}
 

	
 
.right .changes .changed_total {
 
    display: block;
 
    float: right;
 
    text-align: center;
 
    min-width: 45px;
 
    cursor: pointer;
 
    color: #444444;
 
    background: #FEA;
 
    border-radius: 0px 0px 0px 6px;
 
    padding: 1px;
 
}
 

	
 
.right .changes .added,
 
.changed, .removed {
 
    display: block;
 
    padding: 1px;
 
    color: #444444;
 
    float: right;
 
    text-align: center;
 
    min-width: 15px;
 
}
 

	
 
.right .changes .added {
 
    background: #CFC;
 
}
 

	
 
.right .changes .changed {
 
    background: #FEA;
 
}
 

	
 
.right .changes .removed {
 
    background: #FAA;
 
}
 

	
 
.right .merge {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #fca062;
 
    font-size: 10px;
 
    color: #ffffff;
 
    text-transform: uppercase;
 
    white-space: nowrap;
 
    border-radius: 3px;
 
    margin-right: 2px;
 
}
 

	
 
.right .parent {
 
    color: #666666;
 
    clear: both;
 
}
 
.right .logtags {
 
    line-height: 2.2em;
 
}
 
.phasetag, .bumpedtag, .divergenttag, .extincttag, .unstabletag, .repotag, .branchtag, .logtags .tagtag, .logtags .booktag {
 
    margin: 0px 2px;
 
}
 

	
 
.phasetag,
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag,
 
.repotag,
 
.branchtag,
 
.tagtag,
 
.booktag,
 
.spantag {
 
    padding: 1px 3px 1px 3px;
 
    font-size: 10px;
 
    color: #577632;
 
    white-space: nowrap;
 
    border-radius: 4px;
 
    border: 1px solid #d9e8f8;
 
    line-height: 1.5em;
 
}
 

	
 
#graph_content .phasetag,
 
#graph_content .bumpedtag,
 
#graph_content .divergenttag,
 
#graph_content .extincttag,
 
#graph_content .unstabletag,
 
#graph_content .branchtag,
 
#graph_content .tagtag,
 
#graph_content .booktag {
 
    margin: 1.1em 0;
 
    margin-right: 0.5em;
 
}
 

	
 
.phasetag,
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag,
 
.repotag,
 
.branchtag,
 
.tagtag,
 
.booktag {
 
    float: left;
 
    display: inline-block;
 
}
 

	
 
.right .logtags .phasetag,
 
.right .logtags .bumpedtag,
 
.right .logtags .divergenttag,
 
.right .logtags .extincttag,
 
.right .logtags .unstabletag,
 
.right .logtags .branchtag,
 
.right .logtags .tagtag,
 
.right .logtags .booktag,
 
.right .merge {
 
    float: right;
 
    line-height: 1em;
 
    margin: 1px 1px !important;
 
    display: block;
 
}
 

	
 
.repotag {
 
    border-color: #56A546;
 
    color: #46A546;
 
    font-size: 8px;
 
    text-transform: uppercase;
 
}
 

	
 
#context-bar .repotag,
 
.repo-icons .repotag {
 
    border-color: white;
 
    color: white;
 
    margin-top: 3px;
 
}
 

	
 
.repo-icons .repotag {
 
    margin-top: 0px;
 
    padding-top: 0px;
 
    padding-bottom: 0px;
 
}
 

	
 
.booktag {
 
    border-color: #46A546;
 
    color: #46A546;
 
}
 

	
 
.tagtag {
 
    border-color: #62cffc;
 
    color: #62cffc;
 
}
 

	
 
.bumpedtag,
 
.divergenttag,
 
.extincttag,
 
.unstabletag {
 
    background-color: #f00;
 
    border-color: #600;
 
    color: #fff;
 
}
 

	
 
.phasetag {
 
    border-color: #1F14CE;
 
    color: #1F14CE;
 
}
 

	
 
.logtags .branchtag a:hover,
 
.logtags .branchtag a,
 
.branchtag a,
 
.branchtag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
.logtags .tagtag {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #62cffc;
 
    font-size: 10px;
 
    color: #ffffff;
 
    white-space: nowrap;
 
    border-radius: 3px;
 
}
 

	
 
.tagtag a,
 
.tagtag a:hover,
 
.logtags .tagtag a,
 
.logtags .tagtag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag,
 
.logtags .booktag,
 
.logtags .booktag {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #46A546;
 
    font-size: 10px;
 
    color: #ffffff;
 
    white-space: nowrap;
 
    border-radius: 3px;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag a,
 
.right .logtags .booktag,
 
.logtags .booktag a {
 
    color: #ffffff;
 
}
 

	
 
.logbooks .booktag,
 
.logbooks .booktag a:hover,
 
.logtags .booktag,
 
.logtags .booktag a:hover,
 
.booktag a,
 
.booktag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
div.browserblock {
 
    overflow: hidden;
 
    border: 1px solid #ccc;
 
    background: #f8f8f8;
 
    font-size: 100%;
 
    line-height: 125%;
 
    padding: 0;
 
    border-radius: 6px 6px 0px 0px;
 
}
 

	
 
div.browserblock .browser-header {
 
    background: #FFF;
 
    padding: 10px 0px 15px 0px;
 
    width: 100%;
 
}
 

	
 
div.browserblock .browser-nav {
 
    float: left
 
}
 

	
 
div.browserblock .browser-branch {
 
    float: left;
 
}
 

	
 
div.browserblock .browser-branch label {
 
    color: #4A4A4A;
 
    vertical-align: text-top;
 
    padding-right: 2px;
 
}
 

	
 
div.browserblock .browser-header span {
 
    margin-left: 5px;
 
    font-weight: 700;
 
}
 

	
 
div.browserblock .browser-search {
 
    clear: both;
 
    padding: 8px 8px 0px 5px;
 
    height: 20px;
 
}
 

	
 
div.browserblock #node_filter_box {
 
}
 

	
 
div.browserblock .search_activate {
 
    float: left
 
}
 

	
 
div.browserblock .add_node {
 
    float: left;
 
    padding-left: 5px;
 
}
 

	
 
div.browserblock .search_activate a:hover,
 
div.browserblock .add_node a:hover {
 
    text-decoration: none !important;
 
}
 

	
 
div.browserblock .browser-body {
 
    background: #EEE;
 
    border-top: 1px solid #CCC;
 
}
 

	
 
table.code-browser {
 
    border-collapse: collapse;
 
    width: 100%;
 
}
 

	
 
table.code-browser tr {
 
    margin: 3px;
 
}
 

	
 
table.code-browser thead th {
 
    background-color: #EEE;
 
    height: 20px;
 
    font-size: 1.1em;
 
    font-weight: 700;
 
    text-align: left;
 
    padding-left: 10px;
 
}
 

	
 
table.code-browser tbody td {
 
    padding-left: 10px;
 
    height: 20px;
 
}
 

	
 
table.code-browser .browser-file {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 
.diffblock .changeset_header {
 
    height: 16px;
 
}
 
.diffblock .changeset_file {
 
    float: left;
 
}
 
.diffblock .diff-menu-wrapper {
 
    float: left;
 
}
 

	
 
.diffblock .diff-menu {
 
    position: absolute;
 
    background: none repeat scroll 0 0 #FFFFFF;
 
    border-color: #577632 #666666 #666666;
 
    border-right: 1px solid #666666;
 
    border-style: solid solid solid;
 
    border-width: 1px;
 
    box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
 
    margin-top: 5px;
 
    margin-left: 1px;
 

	
 
}
 
.diffblock .diff-actions {
 
    float: left;
 
}
 
.diffblock .diff-actions span.no-file,
 
.diffblock .diff-actions span.arrow {
 
    opacity: 0.5;
 
}
 
.diffblock .diff-actions span.arrow {
 
    margin: 0 -3px;
 
}
 
.diffblock .diff-actions a i {
 
    margin: 0 2px;
 
}
 
.diffblock.twoway {
 
    overflow: visible;
 
}
 
.diffblock.twoway .diff-actions {
 
    padding-top: 0;
 
}
 
.diffblock.twoway .diff-actions label input {
 
    margin: -5px 5px 0 10px;
 
    position: relative;
 
    top: 3px;
 
}
 
.diffblock .diff-menu ul li {
 
    padding: 0px 0px 0px 0px !important;
 
}
 
.diffblock .diff-menu ul li a {
 
    display: block;
 
    padding: 3px 8px 3px 8px !important;
 
}
 
.diffblock .diff-menu ul li a:hover {
 
    text-decoration: none;
 
    background-color: #EEEEEE;
 
}
 
table.code-browser .browser-dir {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 

	
 
table.code-browser .submodule-dir {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 

	
 
/* add some padding to the right of the file, folder, or submodule icon and
 
before the text */
 
table.code-browser i[class^='icon-'] {
 
    padding-right: .3em;
 
}
 

	
 
.panel .search {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
.panel .search div.search_path {
 
    background: none repeat scroll 0 0 #EEE;
 
    border: 1px solid #CCC;
 
    color: blue;
 
    margin-bottom: 10px;
 
    padding: 10px 0;
 
}
 

	
 
.panel .search div.search_path div.link {
 
    font-weight: 700;
 
    margin-left: 25px;
 
}
 

	
 
.panel .search div.search_path div.link a {
 
    color: #577632;
 
    cursor: pointer;
 
    text-decoration: none;
 
}
 

	
 
#path_unlock {
 
    color: red;
 
    font-size: 1.2em;
 
    padding-left: 4px;
 
}
 

	
 
.info_box span {
 
    margin-left: 3px;
 
    margin-right: 3px;
 
}
 

	
 
.info_box .rev {
 
    color: #577632;
 
    font-size: 1.6em;
 
    font-weight: bold;
 
    vertical-align: sub;
 
}
 

	
 
.info_box input#at_rev,
 
.info_box input#size {
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 12px;
 
    margin: 0;
 
    padding: 1px 5px 1px;
 
}
 

	
 
.info_box input#view {
 
    text-align: center;
 
    padding: 4px 3px 2px 2px;
 
}
 

	
 
.info_box_elem {
 
    display: inline-block;
 
    padding: 0 2px;
 
}
 

	
 
.yui-overlay, .yui-panel-container {
 
    visibility: hidden;
 
    position: absolute;
 
    z-index: 2;
 
}
 

	
 
#tip-box {
 
    position: absolute;
 

	
 
    background-color: #FFF;
 
    border: 2px solid #577632;
 
    font: 100% sans-serif;
 
    width: auto;
 
    opacity: 1;
 
    padding: 8px;
 

	
 
    white-space: pre-wrap;
 
    border-radius: 8px 8px 8px 8px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    z-index: 100000;
 
}
 

	
 
.hl-tip-box {
 
    z-index: 1;
 
    position: absolute;
 
    color: #666;
 
    background-color: #FFF;
 
    border: 2px solid #577632;
 
    font: 100% sans-serif;
 
    width: auto;
 
    opacity: 1;
 
    padding: 8px;
 
    white-space: pre-wrap;
 
    border-radius: 8px 8px 8px 8px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
}
 

	
 

	
 
.mentions-container {
 
    width: 90% !important;
 
}
 
.mentions-container .yui-ac-content {
 
    width: 100% !important;
 
}
 

	
 
.ac {
 
    vertical-align: top;
 
}
 

	
 
.ac .yui-ac {
 
    position: inherit;
 
    font-size: 100%;
 
}
 

	
 
.ac .perm_ac {
 
    width: 20em;
 
}
 

	
 
.ac .yui-ac-input {
 
    width: 100%;
 
}
 

	
 
.ac .yui-ac-container {
 
    position: absolute;
 
    top: 1.6em;
 
    width: auto;
 
}
 

	
 
.ac .yui-ac-content {
 
    position: absolute;
 
    border: 1px solid gray;
 
    background: #fff;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-shadow {
 
    position: absolute;
 
    width: 100%;
 
    background: #000;
 
    opacity: .10;
 
    z-index: 9049;
 
    margin: .3em;
 
}
 

	
 
.ac .yui-ac-content ul {
 
    width: 100%;
 
    margin: 0;
 
    padding: 0;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-content li {
 
    cursor: default;
 
    white-space: nowrap;
 
    margin: 0;
 
    padding: 2px 5px;
 
    height: 18px;
 
    z-index: 9050;
 
    display: block;
 
    width: auto !important;
 
}
 

	
 
.ac .yui-ac-content li .ac-container-wrap {
 
    width: auto;
 
}
 

	
 
.ac .yui-ac-content li.yui-ac-prehighlight {
 
    background: #B3D4FF;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-content li.yui-ac-highlight {
 
    background: #556CB5;
 
    color: #FFF;
 
    z-index: 9050;
 
}
 
.ac .yui-ac-bd {
 
    z-index: 9050;
 
}
 

	
 
#repo_size {
 
    display: block;
 
    margin-top: 4px;
 
    color: #666;
 
    float: right;
 
}
 

	
 
.currently_following {
 
    padding-left: 10px;
 
    padding-bottom: 5px;
 
}
 

	
 
#switch_repos {
 
    position: absolute;
 
    height: 25px;
 
    z-index: 1;
 
}
 

	
 
#switch_repos select {
 
    min-width: 150px;
 
    max-height: 250px;
 
    z-index: 1;
 
}
 

	
 
.breadcrumbs {
 
    border: medium none;
 
    color: #FFF;
 
    float: left;
 
    font-weight: 700;
 
    font-size: 14px;
 
    margin: 0;
 
    padding: 11px 0 11px 10px;
 
}
 

	
 
.breadcrumbs .hash {
 
    text-transform: none;
 
    color: #fff;
 
}
 

	
 
.breadcrumbs a {
 
    color: #FFF;
 
}
 

	
 
.flash_msg {
 
}
 

	
 
.flash_msg ul {
 
}
 

	
 
.error_red {
 
    color: red;
 
}
 

	
 
.flash_msg .alert-error {
 
    background-color: #c43c35;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
 
    border-color: #c43c35 #c43c35 #882a25;
 
}
 

	
 
.flash_msg .alert-error a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-warning {
 
    color: #404040 !important;
 
    background-color: #eedc94;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #fceec1, #eedc94);
 
    border-color: #eedc94 #eedc94 #e4c652;
 
}
 

	
 
.flash_msg .alert-warning a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-success {
 
    background-color: #57a957;
 
    background-repeat: repeat-x !important;
 
    background-image: linear-gradient(to bottom, #62c462, #57a957);
 
    border-color: #57a957 #57a957 #3d773d;
 
}
 

	
 
.flash_msg .alert-success a {
 
    text-decoration: underline;
 
    color: #FFF !important;
 
}
 

	
 
.flash_msg .alert-info {
 
    background-color: #339bb9;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
 
    border-color: #339bb9 #339bb9 #22697d;
 
}
 

	
 
.flash_msg .alert-info a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-error,
 
.flash_msg .alert-warning,
 
.flash_msg .alert-success,
 
.flash_msg .alert-info {
 
    font-size: 12px;
 
    font-weight: 700;
 
    min-height: 14px;
 
    line-height: 14px;
 
    margin-bottom: 10px;
 
    margin-top: 0;
 
    display: block;
 
    overflow: auto;
 
    padding: 6px 10px 6px 10px;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
    position: relative;
 
    color: #FFF;
 
    border-width: 1px;
 
    border-style: solid;
 
    border-radius: 4px;
 
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
 
}
 

	
 
div#legend_data {
 
    padding-left: 10px;
 
}
 
div#legend_container table {
 
    border: none !important;
 
}
 
div#legend_container table,
 
div#legend_choices table {
 
    width: auto !important;
 
}
 

	
 
table#permissions_manage {
 
    width: 0 !important;
 
}
 

	
 
table#permissions_manage span.private_repo_msg {
 
    font-size: 0.8em;
 
    opacity: 0.6;
 
}
 

	
 
table#permissions_manage td.private_repo_msg {
 
    font-size: 0.8em;
 
}
 

	
 
table#permissions_manage tr#add_perm_input td {
 
    vertical-align: middle;
 
}
 

	
 
div.gravatar {
 
    background-color: #FFF;
 
    float: left;
 
    margin-right: 0.7em;
 
    padding: 1px 1px 1px 1px;
 
    line-height: 0;
 
    border-radius: 3px;
 
}
 

	
 
div.gravatar img {
 
    border-radius: 2px;
 
}
 

	
 
#header, #content, #footer {
 
    min-width: 978px;
 
}
 

	
 
#content {
 
    clear: both;
 
    padding: 10px 10px 14px 10px;
 
}
 

	
 
#content.hover {
 
    padding: 55px 10px 14px 10px !important;
 
}
 

	
 
#content div.panel div.panel-heading div.search {
 
    border-left: 1px solid #576622;
 
}
 

	
 
#content div.panel div.panel-heading div.search div.input input {
 
    border: 1px solid #576622;
 
}
 

	
 
.label,
 
.btn {
 
    color: #515151;
 
    background-color: #DADADA;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #F4F4F4, #DADADA);
 

	
 
    border-top: 1px solid #DDD;
 
    border-left: 1px solid #c6c6c6;
 
    border-right: 1px solid #DDD;
 
    border-bottom: 1px solid #c6c6c6;
 
    outline: none;
 
    margin: 0px 3px 3px 0px;
 
    border-radius: 4px 4px 4px 4px !important;
 
    padding: 3px 3px 3px 3px;
 
    display: inline-block;
 
    white-space: nowrap;
 
}
 
.btn {
 
    cursor: pointer !important;
 
}
 
.label {
 
    cursor: default !important;
 
}
 

	
 
ul.nav-stacked {
 
    margin: 20px;
 
    color: #393939;
 
    font-weight: 700;
 
}
 

	
 
ul.nav-stacked a {
 
    color: inherit;
 
}
 

	
 
ul.nav-stacked li.active {
 
    list-style-type: disc
 
}
 

	
 
/* make .btn inputs and buttons and divs look the same */
 
button.btn,
 
input.btn {
 
    font-family: inherit;
 
    font-size: inherit;
 
    line-height: inherit;
 
}
 

	
 
.btn::-moz-focus-inner {
 
    border: 0;
 
    padding: 0;
 
}
 

	
 
.btn.badge {
 
    cursor: default !important;
 
}
 

	
 
input[disabled].btn,
 
.btn.disabled {
 
    color: #999;
 
}
 

	
 
.label,
 
.btn.btn-sm {
 
    padding: 3px 8px;
 
}
 

	
 
.btn.btn-xs {
 
    padding: 1px 5px;
 
}
 

	
 
.btn:focus {
 
    outline: none;
 
}
 
.btn:hover {
 
    text-decoration: none;
 
    color: #515151;
 
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
 
}
 
.btn.badge:hover {
 
    box-shadow: none !important;
 
}
 
.btn.disabled:hover {
 
    background-position: 0;
 
    color: #999;
 
    text-decoration: none;
 
    box-shadow: none !important;
 
}
 

	
 
.label.label-danger,
 
.btn.btn-danger {
 
    color: #fff;
 
    background-color: #c43c35;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
 
    border-color: #c43c35 #c43c35 #882a25;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
.label.label-primary,
 
.btn.btn-primary {
 
    color: #fff;
 
    background-color: #339bb9;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
 
    border-color: #339bb9 #339bb9 #22697d;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
.label.label-success,
 
.btn.btn-success {
 
    color: #fff;
 
    background-color: #57a957;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #62c462, #57a957);
 
    border-color: #57a957 #57a957 #3d773d;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
.label.label-warning,
 
.btn.btn-warning {
 
    color: #fff;
 
    background-color: #faa732;
 
    background-repeat: repeat-x;
 
    background-image: linear-gradient(to bottom, #fbb450, #f89406);
 
    border-color: #f89406 #f89406 #ad6704;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
label.disabled {
 
    color: #aaa;
 
}
 

	
 
.btn.active {
 
    font-weight: bold;
 
}
 

	
 
.alert {
 
    padding: 15px;
 
    margin: 20px 0;
 
    border: 1px solid transparent;
 
    border-radius: 4px;
 
}
 

	
 
.alert-success {
 
    color: #3c763d;
 
    background-color: #dff0d8;
 
    border-color: #d6e9c6;
 
}
 

	
 
.alert-info {
 
    color: #31708f;
 
    background-color: #d9edf7;
 
    border-color: #bce8f1;
 
}
 

	
 
.alert-warning {
 
    color: #8a6d3b;
 
    background-color: #fcf8e3;
 
    border-color: #faebcc;
 
}
 

	
 
.alert-danger {
 
    color: #a94442;
 
    background-color: #f2dede;
 
    border-color: #ebccd1;
 
}
 

	
 
ins, div.options a:hover {
 
    text-decoration: none;
 
}
 

	
 
img,
 
#header #header-inner #quick li a:hover span.normal,
 
#content div.panel div.form div.fields div.field div.textarea table td table td a,
 
#content div.panel div.form div.form-horizontal div.form-group div.textarea table td table td a,
 
#clone_url,
 
#clone_url_id
 
{
 
    border: none;
 
}
 

	
 
img.icon, .right .merge img {
 
    vertical-align: bottom;
 
}
 

	
 
#header ul#logged-user,
 
#content div.panel div.panel-heading ul.links,
 
#content div.panel div.message div.dismiss,
 
#content div.panel div.traffic div.legend ul {
 
    float: right;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#header #header-inner #home,
 
#header #header-inner #logo,
 
#content div.panel ul.left,
 
#content div.panel ol.left,
 
div#commit_history,
 
div#legend_data, div#legend_container, div#legend_choices {
 
    float: left;
 
}
 

	
 
#header #header-inner #quick li #quick_login,
 
#content #left #menu ul.closed,
 
#content #left #menu li ul.collapsed,
 
.yui-tt-shadow {
 
    display: none;
 
}
 

	
 
.dropdown.open .dropdown-menu,
 
#content #left #menu ul.opened,
 
#content #left #menu li ul.expanded {
 
    display: block !important;
 
}
 

	
 
.caret:after {
 
    font-family: 'kallithea';
 
    content: ' \23f7';           /* triangle-down */
 
}
 

	
 
.repo-switcher .select2-choice {
 
    padding: 0px 8px 1px !important;
 
    display: block;
 
    height: 100%;
 
}
 

	
 
.repo-switcher .select2-container,
 
.repo-switcher .select2-choice,
 
.repo-switcher .select2-choice span {
 
    background: transparent !important;
 
    border: 0 !important;
 
    box-shadow: none !important;
 
    color: #FFFFFF !important;
 
}
 

	
 
.repo-switcher .select2-arrow {
 
    display: none !important;
 
}
 

	
 
.repo-switcher-dropdown.select2-drop.select2-drop-active {
 
    box-shadow: none;
 
    color: #fff;
 
    background-color: #576622;
 
}
 

	
 
.repo-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted {
 
    background-color: #6388ad;
 
}
 

	
 
#content div.graph {
 
    padding: 0 10px 10px;
 
    height: 450px;
 
}
 

	
 
#content div.panel ol.lower-roman,
 
#content div.panel ol.upper-roman,
 
#content div.panel ol.lower-alpha,
 
#content div.panel ol.upper-alpha,
 
#content div.panel ol.decimal {
 
    margin: 10px 24px 10px 44px;
 
}
 

	
 
#content div.panel div.form,
 
#content div.panel div.table,
 
#content div.panel div.traffic {
 
    position: relative;
 
    clear: both;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
#content div.panel div.form div.fields,
 
#content div.panel div.form div.form-horizontal,
 
#login div.form-horizontal,
 
#login div.form-horizontal div.form-group,
 
#register div.form,
 
#register div.form div.fields,
 
#register div.form div.form-horizontal {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.error,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.error,
 
#login div.form div.form-horizontal div.form-group div.input input.error,
 
#register div.form div.fields div.field div.input input.error,
 
#register div.form div.form-horizontal div.form-group div.input input.error {
 
    background: #FBE3E4;
 
    border-top: 1px solid #e1b2b3;
 
    border-left: 1px solid #e1b2b3;
 
    border-right: 1px solid #FBC2C4;
 
    border-bottom: 1px solid #FBC2C4;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.input input.success,
 
#content div.panel div.form div.form-horizontal div.form-group div.input input.success,
 
#login div.form div.form-horizontal div.form-group div.input input.success,
 
#register div.form div.fields div.field div.input input.success,
 
#register div.form div.form-horizontal div.form-group div.input input.success {
 
    background: #E6EFC2;
 
    border-top: 1px solid #cebb98;
 
    border-left: 1px solid #cebb98;
 
    border-right: 1px solid #c6d880;
 
    border-bottom: 1px solid #c6d880;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.select select,
 
#content div.panel div.form div.form-horizontal div.form-group div.select select,
 
#content div.panel table th.selected input,
 
#content div.panel table td.selected input {
 
    margin: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.select,
 
#content div.panel div.form div.form-horizontal div.form-group div.select,
 
#content div.panel div.form div.fields div.field div.checkboxes,
 
#content div.panel div.form div.form-horizontal div.form-group div.checkboxes,
 
#content div.panel div.form div.fields div.field div.radios,
 
#content div.panel div.form div.form-horizontal div.form-group div.radios {
 
    margin: 0 0 0 200px;
 
    padding: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.select a:hover,
 
#content div.panel div.form div.form-horizontal div.form-group div.select a:hover,
 
#content div.panel div.form div.fields div.field div.select a.ui-selectmenu:hover,
 
#content div.panel div.form div.form-horizontal div.form-group div.select a.ui-selectmenu:hover,
 
#content div.panel div.action a:hover {
 
    color: #000;
 
    text-decoration: none;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.select a.ui-selectmenu-focus,
 
#content div.panel div.form div.form-horizontal div.form-group div.select a.ui-selectmenu-focus,
 
#content div.panel div.action a.ui-selectmenu-focus {
 
    border: 1px solid #666;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.checkboxes div.checkbox,
 
#content div.panel div.form div.form-horizontal div.form-group div.checkboxes div.checkbox,
 
#content div.panel div.form div.fields div.field div.radios div.radio,
 
#content div.panel div.form div.form-horizontal div.form-group div.radios div.radio {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 8px 0 2px;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.checkboxes div.checkbox input,
 
#content div.panel div.form div.form-horizontal div.form-group div.checkboxes div.checkbox input,
 
#content div.panel div.form div.fields div.field div.radios div.radio input,
 
#content div.panel div.form div.form-horizontal div.form-group div.radios div.radio input {
 
    float: left;
 
    margin: 0;
 
}
 

	
 
#content div.panel div.form div.fields div.field div.checkboxes div.checkbox label,
 
#content div.panel div.form div.form-horizontal div.form-group div.checkboxes div.checkbox label,
 
#content div.panel div.form div.fields div.field div.radios div.radio label,
 
#content div.panel div.form div.form-horizontal div.form-group div.radios div.radio label {
 
    height: 1%;
 
    display: block;
 
    float: left;
 
    margin: 2px 0 0 4px;
 
}
 

	
 
div.form div.fields div.field div.button input,
 
div.form div.form-horizontal div.form-group div.button input,
 
#content div.panel div.form div.fields div.buttons input
 
#content div.panel div.form div.form-horizontal div.buttons input
 
div.form div.fields div.buttons input,
 
div.form div.form-horizontal div.buttons input,
 
#content div.panel div.action div.button input {
 
    font-size: 11px;
 
    font-weight: 700;
 
    margin: 0;
 
}
 

	
 
div.form div.fields div.field div.highlight,
 
div.form div.form-horizontal div.form-group div.highlight,
 
#content div.panel div.form div.fields div.buttons div.highlight,
 
#content div.panel div.form div.form-horizontal div.buttons div.highlight {
 
    display: inline;
 
}
 

	
 
#content div.panel div.form div.fields div.buttons,
 
#content div.panel div.form div.form-horizontal div.buttons,
 
div.form div.fields div.buttons,
 
div.form div.form-horizontal div.buttons {
 
    margin: 10px 0 0 200px;
 
    padding: 0;
 
}
 

	
 
#content div.panel table td.user,
 
#content div.panel table td.address {
 
    width: 10%;
 
    text-align: center;
 
}
 

	
 
#content div.panel div.action div.button,
 
#login div.form div.form-horizontal div.form-group div.input div.link,
 
#register div.form div.fields div.field div.input div.link,
 
#register div.form div.form-horizontal div.form-group div.input div.link {
 
    text-align: right;
 
    margin: 6px 0 0;
 
    padding: 0;
 
}
 

	
 
#login, #register {
 
    width: 520px;
 
    margin: 10% auto 0;
 
    padding: 0;
 
}
 

	
 
#login div.color,
 
#register div.color {
 
    clear: both;
 
    overflow: hidden;
 
    background: #FFF;
 
    margin: 10px auto 0;
 
    padding: 3px 3px 3px 0;
 
}
 

	
 
#login div.color a,
 
#register div.color a {
 
    width: 20px;
 
    height: 20px;
 
    display: block;
 
    float: left;
 
    margin: 0 0 0 3px;
 
    padding: 0;
 
}
 

	
 
#login div.panel-heading h5,
 
#register div.panel-heading h5 {
 
    color: #fff;
 
    margin: 10px;
 
    padding: 0;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group,
 
#register div.form div.fields div.field,
 
#register div.form div.form-horizontal div.form-group {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 0 10px;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group span.error-message,
 
#register div.form div.fields div.field span.error-message,
 
#register div.form div.form-horizontal div.form-group span.error-message {
 
    height: 1%;
 
    display: block;
 
    color: red;
 
    margin: 8px 0 0;
 
    padding: 0;
 
    max-width: 320px;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group label,
 
#register div.form div.fields div.field > label,
 
#register div.form div.form-horizontal div.form-group > label {
 
    color: #000;
 
    font-weight: 700;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group div,
 
#register div.form div.fields div.field div.input,
 
#register div.form div.form-horizontal div.form-group div.input {
 
    float: left;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group div input.large {
 
    width: 250px;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group div.checkbox,
 
#register div.form div.fields div.field div.checkbox,
 
#register div.form div.form-horizontal div.form-group div.checkbox {
 
    margin: 0 0 0 184px;
 
    padding: 0;
 
}
 

	
 
#login div.form div.form-horizontal div.form-group div.checkbox label,
 
#register div.form div.fields div.field div.checkbox label,
 
#register div.form div.form-horizontal div.form-group div.checkbox label {
 
    color: #565656;
 
    font-weight: 700;
 
}
 

	
 
#login div.form div.buttons input,
 
#register div.form div.fields div.buttons input,
 
#register div.form div.form-horizontal div.buttons input {
 
    color: #000;
 
    font-size: 1em;
 
    font-weight: 700;
 
    margin: 0;
 
}
 

	
 
#changeset_content .container .wrapper,
 
#graph_content .container .wrapper {
 
    width: 600px;
 
}
 

	
 
#changeset_content .container .date,
 
.ac .match {
 
    font-weight: 700;
 
    padding-top: 5px;
 
    padding-bottom: 5px;
 
}
 

	
 
div#legend_container table td,
 
div#legend_choices table td {
 
    border: none !important;
 
    height: 20px !important;
 
    padding: 0 !important;
 
}
 

	
 
.q_filter_box {
 
    border-radius: 4px;
 
    border: 0 none;
 
    margin-bottom: -4px;
 
    margin-top: -4px;
 
    padding-left: 3px;
 
}
 

	
 
#node_filter {
 
    border: 0px solid #545454;
 
    color: #AAAAAA;
 
    padding-left: 3px;
 
}
 

	
 
.reviewer_status {
 
    float: left;
 
}
 

	
 
.reviewers_member {
 
    height: 15px;
 
    padding: 0px 0px 0px 10px;
 
}
 

	
 
.emails_wrap {
 
    padding: 0px 20px;
 
}
 

	
 
.emails_wrap .email_entry {
 
    height: 30px;
 
    padding: 0px 0px 0px 10px;
 
}
 
.emails_wrap .email_entry .email {
 
    float: left
 
}
 
.emails_wrap .email_entry .email_action {
 
    float: left
 
}
 

	
 
.ips_wrap {
 
    padding: 0px 20px;
 
}
 

	
 
.ips_wrap .ip_entry {
 
    height: 30px;
 
    padding: 0px 0px 0px 10px;
 
}
 
.ips_wrap .ip_entry .ip {
 
    float: left
 
}
 
.ips_wrap .ip_entry .ip_action {
 
    float: left
 
}
 

	
 

	
 
/*README STYLE*/
 

	
 
div.readme {
 
    padding: 0px;
 
}
 

	
 
div.readme h2 {
 
    font-weight: normal;
 
}
 

	
 
div.readme .readme_box {
 
    background-color: #fafafa;
 
}
 

	
 
div.readme .readme_box {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
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 {
 
    border-bottom: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 

	
 
div.readme .readme_box h1:first-child {
 
    padding-top: .25em !important;
 
}
 

	
 
div.readme .readme_box h2,
 
div.readme .readme_box h3 {
 
    margin: 1em 0 !important;
 
}
 

	
 
div.readme .readme_box h2 {
 
    margin-top: 1.5em !important;
 
    border-top: 4px solid #e0e0e0 !important;
 
    padding-top: .5em !important;
 
}
 

	
 
div.readme .readme_box p {
 
    color: black !important;
 
    margin: 1em 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 
div.readme .readme_box ul {
 
    list-style: disc !important;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.readme .readme_box ol {
 
    list-style: decimal;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.readme .readme_box code {
 
    font-size: 12px !important;
 
    background-color: ghostWhite !important;
 
    color: #444 !important;
 
    padding: 0 .2em !important;
 
    border: 1px solid #dedede !important;
 
}
 

	
 
div.readme .readme_box pre code {
 
    padding: 0 !important;
 
    font-size: 12px !important;
 
    background-color: #eee !important;
 
    border: none !important;
 
}
 

	
 
div.readme .readme_box pre {
 
    margin: 1em 0;
 
    font-size: 12px;
 
    background-color: #eee;
 
    border: 1px solid #ddd;
 
    padding: 5px;
 
    color: #444;
 
    overflow: auto;
 
    border-radius: 3px;
 
}
 

	
 
div.readme .readme_box table {
 
    display: table;
 
    border-collapse: separate;
 
    border-spacing: 2px;
 
    border-color: gray;
 
    width: auto !important;
 
}
 

	
 

	
 
/** RST STYLE **/
 

	
 

	
 
div.rst-block {
 
    padding: 0px;
 
}
 

	
 
div.rst-block h2 {
 
    font-weight: normal;
 
}
 

	
 
div.rst-block {
 
    background-color: #fafafa;
 
}
 

	
 
div.rst-block {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px;
 
}
 

	
 
div.rst-block h1,
 
div.rst-block h2,
 
div.rst-block h3,
 
div.rst-block h4,
 
div.rst-block h5,
 
div.rst-block h6 {
 
    border-bottom: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 

	
 
div.rst-block h1:first-child {
 
    padding-top: .25em !important;
 
}
 

	
 
div.rst-block h2,
 
div.rst-block h3 {
 
    margin: 1em 0 !important;
 
}
 

	
 
div.rst-block h2 {
 
    margin-top: 1.5em !important;
 
    border-top: 4px solid #e0e0e0 !important;
 
    padding-top: .5em !important;
 
}
 

	
 
div.rst-block p {
 
    color: black !important;
 
    margin: 1em 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 
div.rst-block ul {
 
    list-style: disc !important;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.rst-block ol {
 
    list-style: decimal;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.rst-block code {
 
    font-size: 12px !important;
 
    background-color: ghostWhite !important;
 
    color: #444 !important;
 
    padding: 0 .2em !important;
 
    border: 1px solid #dedede !important;
 
}
 

	
 
div.rst-block pre code {
 
    padding: 0 !important;
 
    font-size: 12px !important;
 
    background-color: #eee !important;
 
    border: none !important;
 
}
 

	
 
div.rst-block pre {
 
    margin: 1em 0;
 
    font-size: 12px;
 
    background-color: #eee;
 
    border: 1px solid #ddd;
 
    padding: 5px;
 
    color: #444;
 
    overflow: auto;
 
    border-radius: 3px;
 
}
 

	
 

	
 
/** comment main **/
 
.comments {
 
    padding: 10px 20px;
 
    max-width: 978px;
 
}
 

	
 
.comments .comment .comment-wrapp {
 
    border: 1px solid #ddd;
 
    margin-top: 10px;
 
    border-radius: 4px;
 
}
 

	
 
.comments .comment .meta {
 
    background: #f8f8f8;
 
    padding: 4px;
 
    border-bottom: 1px solid #ddd;
 
    min-height: 18px;
 
    overflow: auto;
 
}
 

	
 
.comments .comment .meta img {
 
    vertical-align: middle;
 
}
 

	
 
.comments .comment .meta .user {
 
    font-weight: bold;
 
    float: left;
 
    padding: 4px 2px 2px 2px;
 
}
 

	
 
.comments .comment .meta .date {
 
    float: left;
 
    padding: 4px 4px 0px 4px;
 
}
 

	
 
.comments .comment .text {
 
    background-color: #FAFAFA;
 
    margin: 6px;
 
}
 

	
 
.comments-number {
 
    padding: 0px 20px 10px;
 
    font-weight: bold;
 
    color: #666;
 
    font-size: 16px;
 
}
 

	
 
.automatic-comment {
 
    font-style: italic;
 
}
 

	
 
/** comment form **/
 

	
 
.status-block {
 
    margin: 5px;
 
    clear: both
 
}
 

	
 
.comment-form textarea {
 
    width: 100%;
 
    height: 100px;
 
    font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
form.comment-form {
 
    margin-top: 10px;
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form .comment-block-ta,
 
.comment-form .comment-block-ta {
 
    border: 1px solid #ccc;
 
    border-radius: 3px;
 
    box-sizing: border-box;
 
}
 

	
 
.comment-form-submit {
 
    margin-top: 5px;
 
    margin-left: 525px;
 
}
 

	
 
.file-comments {
 
    display: none;
 
}
 

	
 
.comment-form .comment {
 
    margin-left: 10px;
 
}
 

	
 
.comment-form .comment-help {
 
    padding: 5px 5px 5px 5px;
 
    color: #666;
 
}
 

	
 
.comment-form .comment-button {
 
    padding-top: 5px;
 
}
 

	
 
.add-another-button {
 
    margin-left: 10px;
 
    margin-top: 10px;
 
    margin-bottom: 10px;
 
}
 

	
 
.comment .buttons {
 
    float: right;
 
    margin: -1px 0px 0px 0px;
 
}
 

	
 
.show-inline-comments {
 
    position: relative;
 
    top: 1px
 
}
 

	
 
/** comment inline form **/
 
.comment-inline-form {
 
    margin: 4px;
 
    max-width: 978px;
 
}
 
.comment-inline-form .submitting-overlay {
 
    display: none;
 
    height: 0;
 
    text-align: center;
 
    font-size: 16px;
 
    opacity: 0.5;
 
}
 

	
 
.comment-inline-form .clearfix,
 
.comment-form .clearfix {
 
    background: #EEE;
 
    border-radius: 4px;
 
    padding: 5px;
 
    margin: 0px;
 
}
 

	
 
div.comment-inline-form {
 
    padding: 4px 0px 6px 0px;
 
}
 

	
 
.comment-inline-form textarea {
 
    width: 100%;
 
    height: 100px;
 
    font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
form.comment-inline-form {
 
    margin-top: 10px;
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form-submit {
 
    margin-top: 5px;
 
    margin-left: 525px;
 
}
 

	
 
.file-comments {
 
    display: none;
 
}
 

	
 
.comment-inline-form .comment {
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form .comment-help {
 
    padding: 5px 5px 5px 5px;
 
    color: #666;
 
}
 

	
 
.comment-inline-form .comment-button {
 
    padding-top: 5px;
 
}
 

	
 
/** comment inline **/
 
.inline-comments {
 
    padding: 0 20px;
 
}
 

	
 
.inline-comments .comment .comment-wrapp {
 
    max-width: 978px;
 
    border: 1px solid #ddd;
 
    border-radius: 4px;
 
    margin: 3px 3px 5px 5px;
 
    background-color: #FAFAFA;
 
}
 

	
 
.inline-comments .add-button-row {
 
    padding: 2px 4px 8px 5px;
 
}
 

	
 
.inline-comments .comment .meta {
 
    background: #f8f8f8;
 
    padding: 4px;
 
    border-bottom: 1px solid #ddd;
 
    min-height: 20px;
 
    overflow: auto;
 
}
 

	
 
.inline-comments .comment .meta img {
 
    vertical-align: middle;
 
}
 

	
 
.inline-comments .comment .meta .user {
 
    font-weight: bold;
 
    float: left;
 
    padding: 3px;
 
}
 

	
 
.inline-comments .comment .meta .date {
 
    float: left;
 
    padding: 3px;
 
}
 

	
 
.inline-comments .comment .text {
 
    background-color: #FAFAFA;
 
    margin: 6px;
 
}
 

	
 
.inline-comments .comments-number {
 
    padding: 0px 0px 10px 0px;
 
    font-weight: bold;
 
    color: #666;
 
    font-size: 16px;
 
}
 

	
 
input.status_change_radio {
 
    margin: 2px 0 5px 15px;
 
    vertical-align: middle;
 
}
 

	
 
.badge {
 
    padding: 4px 4px !important;
 
    text-align: center;
 
    color: #888 !important;
 
    background-color: #DEDEDE !important;
 
    border-radius: 4px !important;
 
}
 

	
 
.notification-header {
 
    padding-top: 6px;
 
}
 
.notification-header .desc {
 
    font-size: 16px;
 
    height: 24px;
 
    float: left
 
}
 
.notification-list .container.unread {
 
    background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
 
}
 
.notification-header .gravatar {
 
    background: none repeat scroll 0 0 transparent;
 
    padding: 0px 0px 0px 8px;
 
}
 
.notification-list .container .notification-header .desc {
 
    font-weight: bold;
 
    font-size: 17px;
 
}
 
.notification-table {
 
    border: 1px solid #ccc;
 
    border-radius: 6px 6px 6px 6px;
 
    clear: both;
 
    margin: 0px 20px 0px 20px;
 
}
 
.notification-header .delete-notifications {
 
    float: right;
 
    padding-top: 8px;
 
    cursor: pointer;
 
}
 
.notification-header .read-notifications {
 
    float: right;
 
    padding-top: 8px;
 
    cursor: pointer;
 
}
 
.notification-subject {
 
    clear: both;
 
    border-bottom: 1px solid #eee;
 
    padding: 5px 0px 5px 38px;
 
}
 

	
 
.notification-body {
 
    clear: both;
 
    margin: 34px 2px 2px 8px
 
}
 

	
 
/****
 
PULL REQUESTS
 
*****/
 
.pullrequests_section_head {
 
    padding: 10px 10px 10px 0px;
 
    margin: 0 20px;
 
    font-size: 16px;
 
    font-weight: bold;
 
}
 

	
 
div.pr-details-title.closed {
 
    color: #555;
 
    background: #eee;
 
}
 

	
 
div.pr-details-title {
 
    font-size: 1.6em;
 
    padding: 5px 0px 5px 10px;
 
}
 

	
 
div.pr {
 
    margin: 0px 20px;
 
    padding: 4px 4px;
 
}
 
div.pr-desc {
 
    margin: 0px 20px;
 
}
 
tr.pr-closed td {
 
    background-color: #eee !important;
 
    color: #555 !important;
 
}
 

	
 
span.pr-closed-tag {
 
    margin-bottom: 1px;
 
    margin-right: 1px;
 
    padding: 1px 3px;
 
    font-size: 10px;
 
    padding: 1px 3px 1px 3px;
 
    font-size: 10px;
 
    color: #577632;
 
    white-space: nowrap;
 
    border-radius: 4px;
 
    border: 1px solid #d9e8f8;
 
    line-height: 1.5em;
 
}
 

	
 
.pr-box {
 
    max-width: 978px;
 
}
 

	
 
#s2id_org_ref,
 
#s2id_other_ref,
 
#s2id_org_repo,
 
#s2id_other_repo {
 
    min-width: 150px;
 
    margin: 5px;
 
}
 

	
 
#pr-summary .msg-div {
 
    margin: 5px 0;
 
}
 

	
 
/****
 
  PERMS
 
*****/
 
#perms .perms_section_head {
 
    padding: 10px 10px 10px 0px;
 
    font-size: 16px;
 
    font-weight: bold;
 
    text-transform: capitalize;
 
}
 

	
 
#perms .perm_tag {
 
    padding: 3px 3px 1px 3px;
 
    font-size: 10px;
 
    font-weight: bold;
 
    text-transform: uppercase;
 
    white-space: nowrap;
 
    border-radius: 3px;
 
}
 

	
 
#perms .perm_tag.admin {
 
    background-color: #B94A48;
 
    color: #ffffff;
 
}
 

	
 
#perms .perm_tag.write {
 
    background-color: #DB7525;
 
    color: #ffffff;
 
}
 

	
 
#perms .perm_tag.read {
 
    background-color: #468847;
 
    color: #ffffff;
 
}
 

	
 
#perms .perm_tag.none {
 
    background-color: #bfbfbf;
 
    color: #ffffff;
 
}
 

	
 
.perm-gravatar {
 
    vertical-align: middle;
 
    padding: 2px;
 
}
 
.perm-gravatar-ac {
 
    vertical-align: middle;
 
    padding: 2px;
 
    width: 14px;
 
    height: 14px;
 
}
 

	
 
/*****************************************************************************
 
                                  DIFFS CSS
 
******************************************************************************/
 
.diff-collapse {
 
    text-align: center;
 
    margin-bottom: -15px;
 
}
 
.diff-collapse-button {
 
    cursor: pointer;
 
    color: #666;
 
    font-size: 16px;
 
}
 
.diff-container {
 

	
 
}
 

	
 
.compare-revision-selector {
 
    font-weight: bold;
 
    font-size: 14px;
 
}
 
.compare-revision-selector > div {
 
    display: inline-block;
 
    margin-left: 8px;
 
    vertical-align: middle;
 
}
 
.compare-revision-selector .btn {
 
    margin-bottom: 0;
 
}
 

	
 

	
 
div.diffblock {
 
    overflow: auto;
 
    padding: 0px;
 
    border: 1px solid #ccc;
 
    background: #f8f8f8;
 
    font-size: 100%;
 
    line-height: 100%;
 
    /* new */
 
    line-height: 125%;
 
    border-radius: 6px 6px 0px 0px;
 
}
 
div.diffblock.margined {
 
    margin: 0px 20px 0px 20px;
 
}
 
.compare-revision-selector,
 
div.diffblock .code-header {
 
    border-bottom: 1px solid #CCCCCC;
 
    background: #EEEEEE;
 
    padding: 10px 0 10px 0;
 
    min-height: 14px;
 
}
 

	
 
div.diffblock .code-header.banner {
 
    border-bottom: 1px solid #CCCCCC;
 
    background: #EEEEEE;
 
    height: 14px;
 
    margin: 0;
 
    padding: 3px 100px 11px 100px;
 
}
 

	
 
div.diffblock .code-header-title {
 
    padding: 0px 0px 10px 5px !important;
 
    margin: 0 !important;
 
}
 
div.diffblock .code-header .hash {
 
    float: left;
 
    padding: 2px 0 0 2px;
 
}
 
div.diffblock .code-header .date {
 
    float: left;
 
    text-transform: uppercase;
 
    padding: 2px 0px 0px 2px;
 
}
 
div.diffblock .code-header div {
 
    margin-left: 4px;
 
    font-weight: bold;
 
    font-size: 14px;
 
}
 

	
 
div.diffblock .parents {
 
    float: left;
 
    min-height: 26px;
 
    font-size: 10px;
 
    font-weight: 400;
 
    vertical-align: middle;
 
    padding: 0px 2px 2px 2px;
 
    background-color: #eeeeee;
 
    border-bottom: 1px solid #CCCCCC;
 
}
 

	
 
div.diffblock .children {
 
    float: right;
 
    min-height: 26px;
 
    font-size: 10px;
 
    font-weight: 400;
 
    vertical-align: middle;
 
    text-align: right;
 
    padding: 0px 2px 2px 2px;
 
    background-color: #eeeeee;
 
    border-bottom: 1px solid #CCCCCC;
 
}
 

	
 
div.diffblock .code-body {
 
    background: #FFFFFF;
 
    clear: both;
 
}
 
div.diffblock pre.raw {
 
    background: #FFFFFF;
 
    color: #000000;
 
}
 
table.code-difftable {
 
    border-collapse: collapse;
 
    width: 99%;
 
    border-radius: 0px !important;
 
}
 
table.code-difftable td {
 
    padding: 0 !important;
 
    background: none !important;
 
    border: 0 !important;
 
    vertical-align: baseline !important
 
}
 
table.code-difftable .context {
 
    background: none repeat scroll 0 0 #DDE7EF;
 
    color: #999;
 
}
 
table.code-difftable .add {
 
    background: none repeat scroll 0 0 #DDFFDD;
 
}
 
table.code-difftable .add ins {
 
    background: none repeat scroll 0 0 #AAFFAA;
 
    text-decoration: none;
 
}
 
table.code-difftable .del {
 
    background: none repeat scroll 0 0 #FFDDDD;
 
}
 
table.code-difftable .del del {
 
    background: none repeat scroll 0 0 #FFAAAA;
 
    text-decoration: none;
 
}
 

	
 
table.code-highlighttable div.code-highlight pre u:before,
 
table.code-difftable td.code pre u:before {
 
    content: "\21a6";
 
    display: inline-block;
 
    width: 0;
 
}
 
table.code-highlighttable div.code-highlight pre u.cr:before,
 
table.code-difftable td.code pre u.cr:before {
 
    content: "\21a4";
 
    display: inline-block;
 
    color: rgba(0,0,0,0.5);
 
}
 
table.code-highlighttable div.code-highlight pre u,
 
table.code-difftable td.code pre u {
 
    color: rgba(0,0,0,0.15);
 
}
 
table.code-highlighttable div.code-highlight pre i,
 
table.code-difftable td.code pre i {
 
    border-style: solid;
 
    border-left-width: 1px;
 
    color: rgba(0,0,0,0.5);
 
}
 

	
 
/** LINE NUMBERS **/
 
table.code-difftable .lineno {
 
    padding-left: 2px;
 
    padding-right: 2px !important;
 
    width: 30px;
 
    -moz-user-select: none;
 
    -webkit-user-select: none;
 
    border-right: 1px solid #CCC !important;
 
    border-left: 0px solid #CCC !important;
 
    border-top: 0px solid #CCC !important;
 
    border-bottom: none !important;
 
    vertical-align: middle !important;
 
    text-align: center;
 
}
 
table.code-difftable .lineno.new {
 
    text-align: right;
 
}
 
table.code-difftable .lineno.old {
 
    text-align: right;
 
}
 
table.code-difftable .lineno a {
 
    color: #aaa !important;
 
    font: 11px Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace !important;
 
    letter-spacing: -1px;
 
    padding-left: 10px;
 
    padding-right: 8px;
 
    box-sizing: border-box;
 
    cursor: pointer;
 
    display: block;
 
    width: 100%;
 
}
 

	
 
table.code-difftable .line:hover .lineno a {
 
    color: #333 !important;
 
}
 

	
 
table.code-difftable .lineno-inline {
 
    background: none repeat scroll 0 0 #FFF !important;
 
    padding-left: 2px;
 
    padding-right: 2px;
 
    text-align: right;
 
    width: 30px;
 
    -moz-user-select: none;
 
    -webkit-user-select: none;
 
}
 

	
 
/** CODE **/
 
table.code-difftable .code {
 
    display: block;
 
    width: 100%;
 
}
 
table.code-difftable .code td {
 
    margin: 0;
 
    padding: 0;
 
}
 
table.code-difftable .code pre {
 
    margin: 0 0 0 12px;
 
    padding: 0;
 
    min-height: 17px;
 
    line-height: 17px;
 
    white-space: pre-wrap;
 
}
 

	
 
table.code-difftable .del .code pre:before {
 
    content: "-";
 
    color: #800;
 
    float: left;
 
    left: -1em;
 
    position: relative;
 
    width: 0;
 
}
 

	
 
table.code-difftable .add .code pre:before {
 
    content: "+";
 
    color: #080;
 
    float: left;
 
    left: -1em;
 
    position: relative;
 
    width: 0;
 
}
 

	
 
table.code-difftable .unmod .code pre:before {
 
    content: " ";
 
    float: left;
 
    left: -1em;
 
    position: relative;
 
    width: 0;
 
}
 

	
 
.add-bubble {
 
    position: relative;
 
    display: none;
 
    float: left;
 
    width: 0px;
 
    height: 0px;
 
    left: -8px;
 
    box-sizing: border-box;
 
}
 

	
 
/* comment bubble, only visible when in a commentable diff */
 
.commentable-diff tr.line.add:hover td .add-bubble,
 
.commentable-diff tr.line.del:hover td .add-bubble,
 
.commentable-diff tr.line.unmod:hover td .add-bubble {
 
    display: block;
 
    z-index: 1;
 
}
 

	
 
.add-bubble div {
 
    background: #577632;
 
    width: 16px;
 
    height: 16px;
 
    cursor: pointer;
 
    padding: 0 2px 2px 0.5px;
 
    border: 1px solid #577632;
 
    border-radius: 3px;
 
    box-sizing: border-box;
 
}
 

	
 
.add-bubble div:before {
 
    font-size: 14px;
 
    color: #ffffff;
 
    font-family: "kallithea";
 
    content: '\1f5ea';
 
}
 

	
 
.add-bubble div:hover {
 
    transform: scale(1.2, 1.2);
 
}
 

	
 
/* show some context of link targets - but only works when the link target
 
   can be extended with any visual difference */
 
div.comment:target:before {
 
  display: block;
 
  height: 100px;
 
  margin: -100px 0 0;
 
  content: "";
 
}
 

	
 
div.comment:target>.comment-wrapp {
 
    border: solid 2px #ee0 !important;
 
    margin: 2px 2px 4px 4px;
 
}
 

	
 
.lineno:target a {
 
    border: solid 2px #ee0 !important;
 
    margin: -2px;
 
}
 

	
 
.btn-image-diff-show,
 
.btn-image-diff-swap {
 
    margin: 5px;
 
}
 

	
 
.img-diff {
 
    max-width: 45%;
 
    height: auto;
 
    margin: 5px;
 
    /* http://lea.verou.me/demos/css3-patterns.html */
 
    background-image:
 
        linear-gradient(45deg, #888 25%, transparent 25%, transparent),
 
        linear-gradient(-45deg, #888 25%, transparent 25%, transparent),
 
        linear-gradient(45deg, transparent 75%, #888 75%),
 
        linear-gradient(-45deg, transparent 75%, #888 75%);
 
    background-size: 10px 10px;
 
    background-color: #999;
 
}
 

	
 
.img-preview {
 
    max-width: 100%;
 
    height: auto;
 
    margin: 5px;
 
}
 

	
 
div.comment-prev-next-links div.prev-comment,
 
div.comment-prev-next-links div.next-comment {
 
    display: inline-block;
 
    min-width: 150px;
 
    margin: 3px 6px;
 
}
 

	
 
#help_kb {
 
    display: none;
 
}
 

	
 
.icon-only-links i {
 
    color: white;
 
}
 

	
 

	
 
body table.dataTable thead .sorting {
 
  background-image: none;
 
}
 
body table.dataTable thead .sorting_asc {
 
  background-image: none;
 
}
 
body table.dataTable thead .sorting_desc {
 
  background-image: none;
 
}
 
body table.dataTable thead .sorting_asc_disabled {
 
  background-image: none;
 
}
 
body table.dataTable thead .sorting_desc_disabled {
 
  background-image: none;
 
}
 

	
 
body table.dataTable thead .sorting_asc::after {
 
  font-family: "kallithea";
 
  content: "\23f6";
 
}
 
body table.dataTable thead .sorting_desc::after {
 
  font-family: "kallithea";
 
  content: "\23f7";
 
}
 

	
 
.dataTables_wrapper .dataTables_left {
 
  float: left !important;
 
}
 

	
 
.dataTables_wrapper .dataTables_right {
 
  float: right;
 
}
 

	
 
.dataTables_wrapper .dataTables_right > div {
 
  padding-left: 30px;
 
}
 

	
 
.dataTables_wrapper .dataTables_info {
 
  clear: none;
 
  padding-top: 1em;
 
}
 

	
 
.dataTables_wrapper .dataTables_paginate {
 
  padding-top: 0;
 
}
 

	
 
.dataTables_wrapper .dataTables_paginate > a.paginate_button {
 
  padding-top: 1em;
 
  border: 0 !important;
 
}
 

	
 
.text-muted {
 
    color: #777777;
 
}
kallithea/templates/admin/auth/auth_settings.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Authentication Settings')}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_('Admin'),h.url('admin_home'))}
 
    &raquo;
 
    ${_('Authentication')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('admin')}
 
</%block>
 

	
 
<%def name="main()">
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading">
 
        ${self.breadcrumbs()}
 
    </div>
 
    ${h.form(url('auth_settings'))}
 
    <div class="form">
 

	
 
    ## enabled auth plugins
 
    <h1>${_('Authentication Plugins')}</h1>
 
    <div class="form-horizontal">
 
        <div class="form-group">
 
            <label class="control-label" for="auth_plugins">${_("Enabled Plugins")}</label>
 
            <div class="input">${h.text("auth_plugins", class_='large')}
 
            <div class="input">${h.text("auth_plugins", class_='form-control')}
 
            <span class="help-block">${_('Comma-separated list of plugins; Kallithea will try user authentication in plugin order')}</span>
 
                <div style="padding:10px 0px 10px 0px;font-weight: bold">${_('Available built-in plugins')}</div>
 
                <ul>
 
                %for plugin_path in c.available_plugins:
 
                    <li>
 
                      <div style="padding:3px 0px 3px 0px">
 
                        <span style="margin: 0px 10px 0px 0px" plugin_id="${plugin_path}" class="toggle-plugin btn btn-default btn-xs ${'active' if plugin_path in c.enabled_plugins else ''}">
 
                            ${_('Enabled') if plugin_path in c.enabled_plugins else _('Disabled')}
 
                        </span>
 
                        ${plugin_path}
 
                      </div>
 
                    </li>
 
                %endfor
 
                </ul>
 
            </div>
 
        </div>
 
    </div>
 

	
 
    %for cnt, module in enumerate(c.enabled_plugins):
 
        <% pluginName = c.plugin_shortnames[module] %>
 
        <h1>${_('Plugin')}: ${pluginName}</h1>
 
        <div class="form-horizontal">
 
        ## autoform generation, based on plugin definition from it's settings
 
        %for setting in c.plugin_settings[module]:
 
            <% fullsetting = "auth_%s_%s" % (pluginName, setting["name"]) %>
 
            <% displayname = (setting["formname"] if ("formname" in setting) else setting["name"]) %>
 
            %if setting["type"] == "password":
 
            <div class="form-group">
 
                <label class="control-label" for="${fullsetting}">${_(displayname)}</label>
 
                <div class="input">
 
                    ${h.password(fullsetting,class_='small')}
 
                    ${h.password(fullsetting,class_='form-control')}
 
                    <span class="help-block">${setting["description"]}</span>
 
                </div>
 
            </div>
 
            %elif setting["type"] in ["string", "int"]:
 
            <div class="form-group">
 
                <label class="control-label" for="${fullsetting}">${_(displayname)}</label>
 
                <div class="input">
 
                    ${h.text(fullsetting,class_='small')}
 
                    ${h.text(fullsetting,class_='form-control')}
 
                    <span class="help-block">${setting["description"]}</span>
 
                </div>
 
            </div>
 
            %elif setting["type"] == "bool":
 
            <div class="form-group">
 
                <label class="control-label" for="${fullsetting}">${_(displayname)}</label>
 
                <div class="checkboxes">
 
                    <div class="checkbox">${h.checkbox(fullsetting,True,class_='small')}</div>
 
                    <div class="checkbox">${h.checkbox(fullsetting,True)}</div>
 
                    <span class="help-block">${setting["description"]}</span>
 
                </div>
 
            </div>
 
            %elif setting["type"] == "select":
 
            <div class="form-group">
 
                <label class="control-label" for="${fullsetting}">${_(displayname)}</label>
 
                <div class="select">
 
                    ${h.select(fullsetting,setting['values'][0],setting['values'],class_='small')}
 
                    ${h.select(fullsetting,setting['values'][0],setting['values'],class_='form-control')}
 
                    <span class="help-block">${setting["description"]}</span>
 
                </div>
 
            </div>
 
            %else:
 
            <div class="form-group">
 
                <label class="control-label" for="${fullsetting}">${_(displayname)}</label>
 
                <div class="input">This field is of type ${setting['type']}, which cannot be displayed. Must be one of [string|int|bool|select].</div>
 
                <span class="help-block">${setting["description"]}</span>
 
            </div>
 
            %endif
 
        %endfor
 
        </div>
 
    %endfor
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 

	
 
<script>
 
    $('.toggle-plugin').click(function(e){
 
        var $auth_plugins_input = $('#auth_plugins');
 
        var notEmpty = function(element, index, array) {
 
            return (element != "");
 
        }
 
        var elems = $auth_plugins_input.val().split(',').filter(notEmpty);
 
        var $cur_button = $(e.currentTarget);
 
        var plugin_id = $cur_button.attr('plugin_id');
 

	
 
        if($cur_button.hasClass('active')){
 
            elems.splice(elems.indexOf(plugin_id), 1);
 
            $auth_plugins_input.val(elems.join(','));
 
            $cur_button.removeClass('active');
 
            $cur_button.html(_TM['Disabled']);
 
        }
 
        else{
 
            if(elems.indexOf(plugin_id) == -1){
 
                elems.push(plugin_id);
 
            }
 
            $auth_plugins_input.val(elems.join(','));
 
            $cur_button.addClass('active');
 
            $cur_button.html(_TM['Enabled']);
 
        }
 
    });
 
</script>
 
</%def>
kallithea/templates/admin/defaults/defaults.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Repository Defaults')}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_('Admin'),h.url('admin_home'))}
 
    &raquo;
 
    ${_('Repository Defaults')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('admin')}
 
</%block>
 

	
 
<%def name="main()">
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading">
 
        ${self.breadcrumbs()}
 
    </div>
 

	
 
    ${h.form(url('defaults_update', id='defaults'))}
 
    <div class="form">
 
        <!-- fields -->
 

	
 
        <div class="form-horizontal">
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="default_repo_type">${_('Type')}:</label>
 
                <div class="input">
 
                    ${h.select('default_repo_type','hg',c.backends,class_="medium")}
 
                    ${h.select('default_repo_type','hg',c.backends,class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="default_repo_private">${_('Private repository')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('default_repo_private',value="True")}
 
                    <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="default_repo_enable_statistics">${_('Enable statistics')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('default_repo_enable_statistics',value="True")}
 
                    <span class="help-block">${_('Enable statistics window on summary page.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="default_repo_enable_downloads">${_('Enable downloads')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('default_repo_enable_downloads',value="True")}
 
                    <span class="help-block">${_('Enable download menu on summary page.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="default_repo_enable_locking">${_('Enable locking')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('default_repo_enable_locking',value="True")}
 
                    <span class="help-block">${_('Enable lock-by-pulling on repository.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 

	
 
    ##<h3>${_('Groups defaults')}</h3>
 

	
 
</div>
 
</%def>
kallithea/templates/admin/my_account/my_account_api_keys.html
Show inline comments
 
<div class="apikeys_wrap">
 
  <table class="noborder">
 
    <tr>
 
        <td style="width: 450px"><div class="truncate autoexpand" style="width:120px;font-size:16px;font-family: monospace">${c.user.api_key}</div></td>
 
        <td>
 
            <span class="label label-success">${_('Built-in')}</span>
 
        </td>
 
        <td>${_('Expires')}: ${_('Never')}</td>
 
        <td>
 
            ${h.form(url('my_account_api_keys_delete'))}
 
                ${h.hidden('del_api_key',c.user.api_key)}
 
                ${h.hidden('del_api_key_builtin',1)}
 
                <button class="btn btn-danger btn-xs" type="submit"
 
                        onclick="return confirm('${_('Confirm to reset this API key: %s') % c.user.api_key}');">
 
                    ${_('Reset')}
 
                </button>
 
            ${h.end_form()}
 
        </td>
 
    </tr>
 
    %if c.user_api_keys:
 
        %for api_key in c.user_api_keys:
 
          <tr class="${'expired' if api_key.expired else ''}">
 
            <td style="width: 450px"><div class="truncate autoexpand" style="width:120px;font-size:16px;font-family: monospace">${api_key.api_key}</div></td>
 
            <td>${api_key.description}</td>
 
            <td style="min-width: 80px">
 
                 %if api_key.expires == -1:
 
                  ${_('Expires')}: ${_('Never')}
 
                 %else:
 
                    %if api_key.expired:
 
                        ${_('Expired')}: ${h.age(h.time_to_datetime(api_key.expires))}
 
                    %else:
 
                        ${_('Expires')}: ${h.age(h.time_to_datetime(api_key.expires))}
 
                    %endif
 
                 %endif
 
            </td>
 
            <td>
 
                ${h.form(url('my_account_api_keys_delete'))}
 
                    ${h.hidden('del_api_key',api_key.api_key)}
 
                    <button class="btn btn-danger btn-xs" type="submit"
 
                            onclick="return confirm('${_('Confirm to remove this API key: %s') % api_key.api_key}');">
 
                        <i class="icon-minus-circled"></i>
 
                        ${_('Remove')}
 
                    </button>
 
                ${h.end_form()}
 
            </td>
 
          </tr>
 
        %endfor
 
    %else:
 
    <tr><td><div class="ip">${_('No additional API keys specified')}</div></td></tr>
 
    %endif
 
  </table>
 
</div>
 

	
 
<div>
 
    ${h.form(url('my_account_api_keys'), method='post')}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label for="description">${_('New API key')}:</label>
 
                <div class="input">
 
                    ${h.text('description', class_='medium', placeholder=_('Description'))}
 
                    ${h.text('description', class_='form-control', placeholder=_('Description'))}
 
                    ${h.select('lifetime', '', c.lifetime_options)}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 

	
 
<script>
 
    $(document).ready(function(){
 
        $("#lifetime").select2({
 
            'dropdownAutoWidth': true
 
        });
 
    });
 
</script>
kallithea/templates/admin/my_account/my_account_emails.html
Show inline comments
 
<div class="emails_wrap">
 
  <table class="noborder">
 
    <tr>
 
    %if c.visual.use_gravatar:
 
    <td>${h.gravatar_div(c.user.email, size=16)}</td>
 
    %endif
 
    <td><div class="email">${c.user.email}</div></td>
 
    <td>
 
        <span class="label label-success">${_('Primary')}</span>
 
    </td>
 
    </tr>
 
    %if c.user_email_map:
 
        %for em in c.user_email_map:
 
          <tr>
 
            %if c.visual.use_gravatar:
 
            <td>${h.gravatar_div(em.email, size=16)}</td>
 
            %endif
 
            <td><div class="email">${em.email}</div></td>
 
            <td>
 
                ${h.form(url('my_account_emails_delete'))}
 
                    ${h.hidden('del_email_id',em.email_id)}
 
                    <i class="icon-minus-circled" style="color:#FF4444"></i>
 
                    ${h.submit('remove_',_('Delete'),id="remove_email_%s" % em.email_id,
 
                    class_="btn btn-default btn-xs", onclick="return  confirm('"+_('Confirm to delete this email: %s') % em.email+"');")}
 
                ${h.end_form()}
 
            </td>
 
          </tr>
 
        %endfor
 
    %else:
 
    <tr><td><div class="ip">${_('No additional emails specified.')}</div></td></tr>
 
    %endif
 
  </table>
 
</div>
 

	
 
<div>
 
    ${h.form(url('my_account_emails'), method='post')}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="new_email">${_('New email address')}:</label>
 
                <div class="input">
 
                    ${h.text('new_email', class_='medium')}
 
                    ${h.text('new_email', class_='form-control')}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
kallithea/templates/admin/my_account/my_account_password.html
Show inline comments
 
<div style="font-size: 20px; color: #666666; padding: 0px 0px 10px 0px">${_('Change Your Account Password')}</div>
 

	
 
%if c.can_change_password:
 

	
 
${h.form(url('my_account_password'), method='post')}
 
<div class="form">
 
  <div class="form-horizontal">
 
    <div class="form-group">
 
        <label class="control-label" for="current_password">${_('Current password')}:</label>
 
        <div class="input">
 
            ${h.password('current_password',class_='medium')}
 
            ${h.password('current_password',class_='form-control')}
 
        </div>
 
    </div>
 

	
 
    <div class="form-group">
 
        <label class="control-label" for="new_password">${_('New password')}:</label>
 
        <div class="input">
 
            ${h.password('new_password',class_='medium')}
 
            ${h.password('new_password',class_='form-control')}
 
        </div>
 
    </div>
 

	
 
    <div class="form-group">
 
        <label class="control-label" for="new_password_confirmation">${_('Confirm new password')}:</label>
 
        <div class="input">
 
            ${h.password('new_password_confirmation',class_='medium')}
 
            ${h.password('new_password_confirmation',class_='form-control')}
 
        </div>
 
    </div>
 

	
 
    <div class="form-group">
 
        <div class="buttons">
 
            ${h.submit('save',_('Save'),class_="btn btn-default")}
 
            ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
        </div>
 
    </div>
 
  </div>
 
</div>
 
${h.end_form()}
 

	
 
%else:
 

	
 
${_('This account is managed with %s and the password cannot be changed here') % c.user.extern_type}
 

	
 
%endif
kallithea/templates/admin/my_account/my_account_profile.html
Show inline comments
 
${h.form(url('my_account'), method='post')}
 
    <div class="form">
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <div class="gravatar_box">
 
                    ${h.gravatar_div(c.user.email)}
 
                    <p>
 
                    %if c.visual.use_gravatar:
 
                        <strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
 
                        <br/>${_('Using')} ${c.user.email}
 
                    %else:
 
                        <strong>${_('Avatars are disabled')}</strong>
 
                        <br/>${c.user.email or _('Missing email, please update your user email address.')}
 
                        [${_('Current IP')}: ${c.ip_addr}]
 
                    %endif
 
                    </p>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="username">${_('Username')}:</label>
 
                <div class="input">
 
                    ${h.text('username',class_='medium', readonly=c.readonly('username'))}
 
                    ${h.text('username',class_='form-control', readonly=c.readonly('username'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="firstname">${_('First Name')}:</label>
 
                <div class="input">
 
                    ${h.text('firstname',class_="medium", readonly=c.readonly('firstname'))}
 
                    ${h.text('firstname',class_='form-control', readonly=c.readonly('firstname'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="lastname">${_('Last Name')}:</label>
 
                <div class="input">
 
                    ${h.text('lastname',class_="medium", readonly=c.readonly('lastname'))}
 
                    ${h.text('lastname',class_='form-control', readonly=c.readonly('lastname'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="email">${_('Email')}:</label>
 
                <div class="input">
 
                    ${h.text('email',class_="medium", readonly=c.readonly('email'))}
 
                    ${h.text('email',class_='form-control', readonly=c.readonly('email'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
${h.end_form()}
kallithea/templates/admin/permissions/permissions_ips.html
Show inline comments
 
<div class="ips_wrap">
 
      <table class="noborder">
 
      %if c.user_ip_map:
 
        %for ip in c.user_ip_map:
 
          <tr>
 
              <td><div class="ip">${ip.ip_addr}</div></td>
 
              <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
 
              <td>
 
                ${h.form(url('edit_user_ips_delete', id=c.user.user_id))}
 
                    ${h.hidden('del_ip_id',ip.ip_id)}
 
                    ${h.hidden('default_user', 'True')}
 
                    <i class="icon-minus-circled" style="color:#FF4444"></i> ${h.submit('remove_',_('Delete'),id="remove_ip_%s" % ip.ip_id,
 
                    class_="btn btn-default btn-xs", onclick="return confirm('"+_('Confirm to delete this IP address: %s') % ip.ip_addr+"');")}
 
                ${h.end_form()}
 
              </td>
 
          </tr>
 
        %endfor
 
       %else:
 
        <tr><td><div class="ip">${_('All IP addresses are allowed.')}</div></td></tr>
 
       %endif
 
      </table>
 
</div>
 

	
 
${h.form(url('edit_user_ips_update', id=c.user.user_id))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="new_ip">${_('New IP address')}:</label>
 
                <div class="input">
 
                    ${h.hidden('default_user', 'True')}
 
                    ${h.text('new_ip', class_='medium')}
 
                    ${h.text('new_ip', class_='form-control')}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
${h.end_form()}
kallithea/templates/admin/repo_groups/repo_group_add.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Add Repository Group')}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_('Admin'),h.url('admin_home'))}
 
    &raquo;
 
    ${h.link_to(_('Repository Groups'),h.url('repos_groups'))}
 
    &raquo;
 
    ${_('Add Repository Group')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('admin')}
 
</%block>
 

	
 
<%def name="main()">
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    ${h.form(url('repos_groups'))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="group_name">${_('Group name')}:</label>
 
                <div class="input">
 
                    ${h.text('group_name',class_='small')}
 
                    ${h.text('group_name',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="group_description">${_('Description')}:</label>
 
                <div class="textarea-repo editor">
 
                    ${h.textarea('group_description',cols=23,rows=5,class_="medium")}
 
                    ${h.textarea('group_description',cols=23,rows=5)}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="parent_group_id">${_('Group parent')}:</label>
 
                <div class="input">
 
                    ${h.select('parent_group_id',request.GET.get('parent_group'),c.repo_groups,class_="medium")}
 
                    ${h.select('parent_group_id',request.GET.get('parent_group'),c.repo_groups,class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div id="copy_perms" class="form-group">
 
                <label class="control-label" for="group_copy_permissions">${_('Copy parent group permissions')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('group_copy_permissions',value="True")}
 
                    <span class="help-block">${_('Copy permission set from parent repository group.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 
<script>
 
    $(document).ready(function(){
 
        var setCopyPermsOption = function(group_val){
 
            if(group_val != "-1"){
 
                $('#copy_perms').show();
 
            }
 
            else{
 
                $('#copy_perms').hide();
 
            }
 
        }
 
        $("#parent_group_id").select2({
 
            'dropdownAutoWidth': true
 
        });
 
        setCopyPermsOption($('#parent_group_id').val());
 
        $("#parent_group_id").on("change", function(e) {
 
            setCopyPermsOption(e.val);
 
        });
 
        $('#group_name').focus();
 
    });
 
</script>
 
</%def>
kallithea/templates/admin/repo_groups/repo_group_edit_settings.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
${h.form(url('update_repos_group',group_name=c.repo_group.group_name))}
 
<div class="form">
 
    <!-- fields -->
 
    <div class="form-horizontal">
 
        <div class="form-group">
 
            <label class="control-label" for="group_name">${_('Group name')}:</label>
 
            <div class="input">
 
                ${h.text('group_name',class_='medium')}
 
                ${h.text('group_name',class_='form-control')}
 
            </div>
 
        </div>
 

	
 
        <div class="form-group">
 
            <label class="control-label" for="group_description">${_('Description')}:</label>
 
            <div class="textarea text-area editor">
 
                ${h.textarea('group_description',cols=23,rows=5,class_="medium")}
 
                ${h.textarea('group_description',cols=23,rows=5)}
 
            </div>
 
        </div>
 

	
 
        <div class="form-group">
 
            <label class="control-label" for="parent_group_id">${_('Group parent')}:</label>
 
            <div class="input">
 
                ${h.select('parent_group_id','',c.repo_groups,class_="medium")}
 
                ${h.select('parent_group_id','',c.repo_groups,class_='form-control')}
 
            </div>
 
        </div>
 

	
 
        <div class="form-group">
 
            <label class="control-label" for="enable_locking">${_('Enable locking')}:</label>
 
            <div class="checkboxes">
 
                ${h.checkbox('enable_locking',value="True")}
 
                <span class="help-block">${_('Enable lock-by-pulling on group. This option will be applied to all other groups and repositories inside')}</span>
 
            </div>
 
        </div>
 

	
 
        <div class="form-group">
 
            <div class="buttons">
 
                ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
            </div>
 
        </div>
 
    </div>
 
</div>
 
${h.end_form()}
 

	
 
${h.form(url('delete_repo_group', group_name=c.repo_group.group_name))}
 
<div class="form">
 
    <div class="form-horizontal">
 
        <div class="form-group">
 
            <div class="buttons">
 
                ${h.submit('remove_%s' % c.repo_group.group_name,_('Remove this group'),class_="btn btn-danger",onclick="return confirm('"+_('Confirm to delete this group')+"');")}
 
            </div>
 
        </div>
 
    </div>
 
</div>
 
${h.end_form()}
 

	
 
<script>
 
    $(document).ready(function(){
 
        $("#parent_group_id").select2({
 
            'dropdownAutoWidth': true
 
        });
 
    });
 
</script>
kallithea/templates/admin/repos/repo_add_base.html
Show inline comments
 
## -*- coding: utf-8 -*-
 

	
 
${h.form(url('repos'))}
 
<div class="form">
 
    <!-- fields -->
 
    <div class="form-horizontal">
 
        <div class="form-group">
 
            <label class="control-label" for="repo_name">${_('Name')}:</label>
 
            <div class="input">
 
                ${h.text('repo_name',class_="small")}
 
                ${h.text('repo_name',class_='form-control')}
 
            </div>
 
         </div>
 
        <div id="remote_clone" class="form-group">
 
            <label class="control-label" for="clone_uri">${_('Clone remote repository')}:</label>
 
            <div class="input">
 
                ${h.text('clone_uri',class_="small")}
 
                ${h.text('clone_uri',class_='form-control')}
 
                <span class="help-block">
 
                    ${_('Optional: URL of a remote repository. If set, the repository will be created as a clone from this URL.')}
 
                </span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <label class="control-label" for="repo_description">${_('Description')}:</label>
 
            <div class="textarea-repo editor">
 
                ${h.textarea('repo_description')}
 
                <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <label class="control-label" for="repo_group">${_('Repository group')}:</label>
 
            <div class="input">
 
                ${h.select('repo_group',request.GET.get('parent_group'),c.repo_groups,class_="medium")}
 
                ${h.select('repo_group',request.GET.get('parent_group'),c.repo_groups,class_='form-control')}
 
                <span class="help-block">${_('Optionally select a group to put this repository into.')}</span>
 
            </div>
 
        </div>
 
        <div id="copy_perms" class="form-group">
 
            <label class="control-label" for="repo_copy_permissions">${_('Copy parent group permissions')}:</label>
 
            <div class="checkboxes">
 
                ${h.checkbox('repo_copy_permissions',value="True")}
 
                <span class="help-block">${_('Copy permission set from parent repository group.')}</span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <label class="control-label" for="repo_type">${_('Type')}:</label>
 
            <div class="input">
 
                ${h.select('repo_type','hg',c.backends,class_="small")}
 
                ${h.select('repo_type','hg',c.backends,class_='form-control')}
 
                <span class="help-block">${_('Type of repository to create.')}</span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <label class="control-label" for="repo_landing_rev">${_('Landing revision')}:</label>
 
            <div class="input">
 
                ${h.select('repo_landing_rev','',c.landing_revs,class_="medium")}
 
                ${h.select('repo_landing_rev','',c.landing_revs,class_='form-control')}
 
                <span class="help-block">${_('Default revision for files page, downloads, full text search index and readme generation')}</span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <label class="control-label" for="repo_private">${_('Private repository')}:</label>
 
            <div class="checkboxes">
 
                ${h.checkbox('repo_private',value="True")}
 
                <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
 
            </div>
 
        </div>
 
        <div class="form-group">
 
            <div class="buttons">
 
                ${h.submit('add',_('Add'),class_="btn btn-default")}
 
            </div>
 
        </div>
 
    </div>
 
</div>
 
<script>
 
    $(document).ready(function(){
 
        var setCopyPermsOption = function(group_val){
 
            if(group_val != "-1"){
 
                $('#copy_perms').show();
 
            }
 
            else{
 
                $('#copy_perms').hide();
 
            }
 
        }
 

	
 
        $("#repo_group").select2({
 
            'dropdownAutoWidth': true
 
        });
 

	
 
        setCopyPermsOption($('#repo_group').val());
 
        $("#repo_group").on("change", function(e) {
 
            setCopyPermsOption(e.val);
 
        });
 

	
 
        $("#repo_type").select2({
 
            'minimumResultsForSearch': -1
 
        });
 
        $("#repo_landing_rev").select2({
 
            'minimumResultsForSearch': -1
 
        });
 
        $('#repo_name').focus();
 
    });
 
</script>
 
${h.end_form()}
kallithea/templates/admin/repos/repo_edit_advanced.html
Show inline comments
 
<h3>${_('Parent')}</h3>
 
${h.form(url('edit_repo_advanced_fork', repo_name=c.repo_info.repo_name))}
 
<div class="form">
 
       ${h.select('id_fork_of','',c.repos_list,class_="medium")}
 
       ${h.select('id_fork_of','',c.repos_list)}
 
       ${h.submit('set_as_fork_%s' % c.repo_info.repo_name,_('Set'),class_="btn btn-default btn-sm")}
 
       <div class="field text-muted" style="border:none">
 
       <ul>
 
            <li>${_('''Manually set this repository as a fork of another from the list.''')}</li>
 
       </ul>
 
       </div>
 
</div>
 
${h.end_form()}
 

	
 
<script>
 
    $(document).ready(function(){
 
        $("#id_fork_of").select2({
 
            'dropdownAutoWidth': true
 
        });
 
    });
 
</script>
 

	
 
<h3>${_('Public Journal Visibility')}</h3>
 
${h.form(url('edit_repo_advanced_journal', repo_name=c.repo_info.repo_name))}
 
<div class="form">
 
  <div class="field">
 
  %if c.in_public_journal:
 
    <button class="btn btn-default btn-sm" type="submit">
 
        <i class="icon-minus"></i>
 
        ${_('Remove from public journal')}
 
    </button>
 
  %else:
 
    <button class="btn btn-default btn-sm" type="submit">
 
        <i class="icon-plus"></i>
 
        ${_('Add to Public Journal')}
 
    </button>
 
  %endif
 
  </div>
 
 <div class="field text-muted" style="border:none">
 
 <ul>
 
      <li>${_('All actions done in this repository will be visible to everyone in the public journal.')}</li>
 
 </ul>
 
 </div>
 
</div>
 
${h.end_form()}
 

	
 
<h3>${_('Change Locking')}</h3>
 
${h.form(url('edit_repo_advanced_locking', repo_name=c.repo_info.repo_name))}
 
<div class="form">
 
      %if c.repo_info.locked[0]:
 
        ${h.hidden('set_unlock', '1')}
 
        <button class="btn btn-default btn-sm" type="submit"
 
                onclick="return confirm('${_('Confirm to unlock repository.')}');">
 
            <i class="icon-lock-open-alt"></i>
 
            ${_('Unlock Repository')}
 
        </button>
 
       ${_('Locked by %s on %s') % (h.person_by_id(c.repo_info.locked[0]),h.fmt_date(h.time_to_datetime(c.repo_info.locked[1])))}
 
      %else:
 
        ${h.hidden('set_lock', '1')}
 
        <button class="btn btn-default btn-sm" type="submit"
 
                onclick="return confirm('${_('Confirm to lock repository.')}');">
 
            <i class="icon-lock"></i>
 
            ${_('Lock Repository')}
 
        </button>
 
        ${_('Repository is not locked')}
 
      %endif
 
   <div class="field text-muted" style="border:none">
 
   <ul>
 
        <li>${_('Force locking on the repository. Works only when anonymous access is disabled. Triggering a pull locks the repository.  The user who is pulling locks the repository; only the user who pulled and locked it can unlock it by doing a push.')}
 
        </li>
 
   </ul>
 
   </div>
 
</div>
 
${h.end_form()}
 

	
 
<h3>${_('Delete')}</h3>
 
${h.form(url('delete_repo', repo_name=c.repo_name))}
 
<div class="form">
 
    <button class="btn btn-danger btn-sm" type="submit"
 
            onclick="return confirm('${_('Confirm to delete this repository: %s') % c.repo_name}');">
 
        <i class="icon-minus-circled"></i>
 
        ${_('Delete this Repository')}
 
    </button>
 
    %if c.repo_info.forks.count():
 
        ${ungettext('This repository has %s fork', 'This repository has %s forks', c.repo_info.forks.count()) % c.repo_info.forks.count()}
 
        <input type="radio" name="forks" value="detach_forks" checked="checked"/> <label for="forks">${_('Detach forks')}</label>
 
        <input type="radio" name="forks" value="delete_forks" /> <label for="forks">${_('Delete forks')}</label>
 
    %endif
 
    <div class="field text-muted" style="border:none">
 
        <ul>
 
        <li>${_('The deleted repository will be moved away and hidden until the administrator expires it. The administrator can both permanently delete it or restore it.')}</li>
 
        </ul>
 
    </div>
 
</div>
 
${h.end_form()}
kallithea/templates/admin/repos/repo_edit_fields.html
Show inline comments
 
%if c.visual.repository_fields:
 
    %if c.repo_fields:
 
    <div class="emails_wrap">
 
      <table class="noborder">
 
        <th>${_('Label')}</th>
 
        <th>${_('Key')}</th>
 
        <th>${_('Type')}</th>
 
        <th>${_('Action')}</th>
 

	
 
      %for field in c.repo_fields:
 
        <tr>
 
            <td>${field.field_label}</td>
 
            <td>${field.field_key}</td>
 
            <td>${field.field_type}</td>
 
            <td>
 
              ${h.form(url('delete_repo_fields', repo_name=c.repo_info.repo_name, field_id=field.repo_field_id))}
 
                  <i class="icon-minus-circled" style="color:#FF4444"></i>
 
                  ${h.submit('remove_%s' % field.repo_field_id, _('Delete'), id="remove_field_%s" % field.repo_field_id,
 
                  class_="btn btn-default btn-xs", onclick="return confirm('"+_('Confirm to delete this field: %s') % field.field_key+"');")}
 
              ${h.end_form()}
 
            </td>
 
        </tr>
 
      %endfor
 
      </table>
 
    </div>
 
    %endif
 
    ${h.form(url('create_repo_fields', repo_name=c.repo_name))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="new_field_key">${_('New field key')}:</label>
 
                <div class="input">
 
                    ${h.text('new_field_key', class_='small')}
 
                    ${h.text('new_field_key', class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="new_field_label">${_('New field label')}:</label>
 
                <div class="input">
 
                    ${h.text('new_field_label', class_='small', placeholder=_('Enter short label'))}
 
                    ${h.text('new_field_label', class_='form-control', placeholder=_('Enter short label'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="new_field_desc">${_('New field description')}:</label>
 
                <div class="input">
 
                    ${h.text('new_field_desc', class_='small', placeholder=_('Enter description of a field'))}
 
                    ${h.text('new_field_desc', class_='form-control', placeholder=_('Enter description of a field'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
%else:
 
  <div style="font-size: 20px">
 
    ${_('Extra fields are disabled.')}
 
  </div>
 
%endif
kallithea/templates/admin/repos/repo_edit_settings.html
Show inline comments
 
${h.form(url('update_repo', repo_name=c.repo_info.repo_name))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="repo_name">${_('Name')}:</label>
 
                <div class="input">
 
                    ${h.text('repo_name',class_="medium")}
 
                    ${h.text('repo_name',class_='form-control')}
 
                    <span class="help-block">${_('Permanent Repository ID')}: `_${c.repo_info.repo_id}` <span><a id="show_more_clone_id" href="#">${_('What is that?')}</a></span></span>
 
                    <span id="clone_id" class="help-block" style="display: none">
 
                        ${_('URL by id')}: `${c.repo_info.clone_url(with_id=True)}` </br>
 
                        ${_('''In case this repository is renamed or moved into another group the repository URL changes.
 
                               Using the above permanent URL guarantees that this repository always will be accessible on that URL.
 
                               This is useful for CI systems, or any other cases that you need to hardcode the URL into a 3rd party service.''')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="clone_uri">${_('Remote repository')}:</label>
 
                <div class="input">
 
                  <div id="alter_clone_uri">
 
                        ${h.text('clone_uri',class_="medium", placeholder=_('Repository URL'))}
 
                        ${h.text('clone_uri',class_='form-control', placeholder=_('Repository URL'))}
 
                        ${h.hidden('clone_uri_hidden', c.repo_info.clone_uri_hidden)}
 
                  </div>
 
                  <span id="alter_clone_uri_help_block" class="help-block">
 
                    ${_('Optional: URL of a remote repository. If set, the repository can be pulled from this URL.')}
 
                  </span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_group">${_('Repository group')}:</label>
 
                <div class="input">
 
                    ${h.select('repo_group','',c.repo_groups,class_="medium")}
 
                    ${h.select('repo_group','',c.repo_groups,class_='form-control')}
 
                    <span class="help-block">${_('Optionally select a group to put this repository into.')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_landing_rev">${_('Landing revision')}:</label>
 
                <div class="input">
 
                    ${h.select('repo_landing_rev','',c.landing_revs,class_="medium")}
 
                    ${h.select('repo_landing_rev','',c.landing_revs,class_='form-control')}
 
                    <span class="help-block">${_('Default revision for files page, downloads, whoosh and readme')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="owner">${_('Owner')}:</label>
 
                <div class="input input-medium ac">
 
                    <div class="perm_ac">
 
                       ${h.text('owner',class_='yui-ac-input')}
 
                       <span class="help-block">${_('Change owner of this repository.')}</span>
 
                       <div id="owner_container"></div>
 
                    </div>
 
                </div>
 
             </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_description">${_('Description')}:</label>
 
                <div class="textarea text-area editor">
 
                    ${h.textarea('repo_description', style="height:165px")}
 
                    <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="repo_private">${_('Private repository')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('repo_private',value="True")}
 
                    <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_enable_statistics">${_('Enable statistics')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('repo_enable_statistics',value="True")}
 
                    <span class="help-block">${_('Enable statistics window on summary page.')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_enable_downloads">${_('Enable downloads')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('repo_enable_downloads',value="True")}
 
                    <span class="help-block">${_('Enable download menu on summary page.')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="repo_enable_locking">${_('Enable locking')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('repo_enable_locking',value="True")}
 
                    <span class="help-block">${_('Enable lock-by-pulling on repository.')}</span>
 
                </div>
 
            </div>
 

	
 
            %if c.visual.repository_fields:
 
              ## EXTRA FIELDS
 
              %for field in c.repo_fields:
 
                <div class="form-group">
 
                    <label class="control-label" for="${field.field_key_prefixed}">${field.field_label} (${field.field_key}):</label>
 
                    <div class="input input-medium">
 
                        ${h.text(field.field_key_prefixed, field.field_value, class_='medium')}
 
                        ${h.text(field.field_key_prefixed, field.field_value, class_='form-control')}
 
                        %if field.field_desc:
 
                          <span class="help-block">${field.field_desc}</span>
 
                        %endif
 
                    </div>
 
                 </div>
 
              %endfor
 
            %endif
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 

	
 
<script>
 
    $(document).ready(function(){
 
        $('#show_more_clone_id').on('click', function(e){
 
            $('#clone_id').show();
 
            e.preventDefault();
 
        });
 

	
 
        $('#repo_landing_rev').select2({
 
            'dropdownAutoWidth': true
 
        });
 
        $('#repo_group').select2({
 
            'dropdownAutoWidth': true
 
        });
 

	
 
        // autocomplete
 
        var _USERS_AC_DATA = ${c.users_array|n};
 
        SimpleUserAutoComplete($('#owner'), $('#owner_container'), _USERS_AC_DATA);
 
    });
 
</script>
kallithea/templates/admin/user_groups/user_group_add.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Add user group')}
 
</%block>
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_('Admin'),h.url('admin_home'))}
 
    &raquo;
 
    ${h.link_to(_('User Groups'),h.url('users_groups'))}
 
    &raquo;
 
    ${_('Add User Group')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('admin')}
 
</%block>
 

	
 
<%def name="main()">
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading clearfix">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    ${h.form(url('users_groups'))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="users_group_name">${_('Group name')}:</label>
 
                <div class="input">
 
                    ${h.text('users_group_name',class_='small')}
 
                    ${h.text('users_group_name',class_='form-control')}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="user_group_description">${_('Description')}:</label>
 
                <div class="textarea text-area editor">
 
                    ${h.textarea('user_group_description')}
 
                    <span class="help-block">${_('Short, optional description for this user group.')}</span>
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <label class="control-label" for="users_group_active">${_('Active')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('users_group_active',value=True, checked='checked')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 

	
 
<script>
 
    $(document).ready(function(){
 
        $('#users_group_name').focus();
 
    });
 
</script>
 
</%def>
kallithea/templates/admin/user_groups/user_group_edit_settings.html
Show inline comments
 
${h.form(url('update_users_group', id=c.user_group.users_group_id), id='edit_users_group')}
 
    <div class="form">
 
        <!-- fields -->
 
            <div class="form-horizontal">
 
                <div class="form-group">
 
                    <label class="control-label" for="users_group_name">${_('Group name')}:</label>
 
                    <div class="input">
 
                        ${h.text('users_group_name',class_='large')}
 
                        ${h.text('users_group_name',class_='form-control')}
 
                    </div>
 
                </div>
 
                <div class="form-group">
 
                    <label class="control-label" for="user_group_description">${_('Description')}:</label>
 
                    <div class="textarea-small editor">
 
                        ${h.textarea('user_group_description')}
 
                        <span class="help-block">${_('Short, optional description for this user group.')}</span>
 
                    </div>
 
                </div>
 
                <div class="form-group">
 
                    <label class="control-label" for="users_group_active">${_('Active')}:</label>
 
                    <div class="checkboxes">
 
                        ${h.checkbox('users_group_active',value=True)}
 
                    </div>
 
                </div>
 
                <div class="form-group">
 
                    <label class="control-label">${_('Members')}:</label>
 
                    <div class="select">
 
                        <table class="table">
 
                                <tr>
 
                                    <td>
 
                                        <div>
 
                                            <div style="float:left">
 
                                                <div class="text" style="padding: 0px 0px 6px;">${_('Chosen group members')}</div>
 
                                                ${h.select('users_group_members',[],c.group_members,multiple=True,size=8,style="min-width:210px")}
 
                                            </div>
 
                                            <div style="float:left;width:20px;padding-top:50px">
 
                                                <i style="cursor:pointer; font-size: 16px" id="add_element" class="icon-left-open" title="Choose selected available"></i>
 
                                                <div style="height:50px"></div>
 
                                                <i style="cursor:pointer; font-size: 16px" id="remove_element" class="icon-right-open" title="Remove selected chosen"></i>
 
                                            </div>
 
                                            <div style="float:left">
 
                                                 <div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
 
                                                 ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
 
                                            </div>
 
                                        </div>
 
                                    </td>
 
                                </tr>
 
                        </table>
 
                    </div>
 
                </div>
 
                <div class="form-group">
 
                    <div class="buttons">
 
                        ${h.submit('Save',_('Save'),class_="btn btn-default")}
 
                    </div>
 
                </div>
 
            </div>
 
    </div>
 
${h.end_form()}
 
<script type="text/javascript">
 
  MultiSelectWidget('users_group_members','available_members','edit_users_group');
 
</script>
kallithea/templates/admin/users/user_add.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Add user')}
 
</%block>
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_('Admin'),h.url('admin_home'))}
 
    &raquo;
 
    ${h.link_to(_('Users'),h.url('users'))}
 
    &raquo;
 
    ${_('Add User')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('admin')}
 
</%block>
 

	
 
<%def name="main()">
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading clearfix">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    ${h.form(url('new_user'))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="username">${_('Username')}:</label>
 
                <div class="input">
 
                    ${h.text('username',class_='small')}
 
                    ${h.text('username',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="password">${_('Password')}:</label>
 
                <div class="input">
 
                    ${h.password('password',class_='small')}
 
                    ${h.password('password',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="password_confirmation">${_('Password confirmation')}:</label>
 
                <div class="input">
 
                    ${h.password('password_confirmation',class_="small")}
 
                    ${h.password('password_confirmation',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="firstname">${_('First Name')}:</label>
 
                <div class="input">
 
                    ${h.text('firstname',class_='small')}
 
                    ${h.text('firstname',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="lastname">${_('Last Name')}:</label>
 
                <div class="input">
 
                    ${h.text('lastname',class_='small')}
 
                    ${h.text('lastname',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="email">${_('Email')}:</label>
 
                <div class="input">
 
                    ${h.text('email',class_='small')}
 
                    ${h.text('email',class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="active">${_('Active')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('active',value=True,checked='checked')}
 
                </div>
 
            </div>
 

	
 
            ${h.hidden('extern_type', c.default_extern_type)}
 
            ${h.hidden('extern_name', c.default_extern_name)}
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 

	
 
<script>
 
    $(document).ready(function(){
 
        $('#username').focus();
 
    });
 
</script>
 
</%def>
kallithea/templates/admin/users/user_edit_api_keys.html
Show inline comments
 
<div class="apikeys_wrap">
 
  <table class="noborder">
 
    <tr>
 
        <td style="width: 450px"><div class="truncate autoexpand" style="width:120px;font-size:16px;font-family: monospace">${c.user.api_key}</div></td>
 
        <td>
 
            <span class="label label-success">${_('Built-in')}</span>
 
        </td>
 
        <td>${_('Expires')}: ${_('Never')}</td>
 
        <td>
 
            ${h.form(url('edit_user_api_keys_delete', id=c.user.user_id))}
 
                ${h.hidden('del_api_key',c.user.api_key)}
 
                ${h.hidden('del_api_key_builtin',1)}
 
                <button class="btn btn-danger btn-xs" type="submit"
 
                        onclick="return confirm('${_('Confirm to reset this API key: %s') % c.user.api_key}');">
 
                    ${_('Reset')}
 
                </button>
 
            ${h.end_form()}
 
        </td>
 
    </tr>
 
    %if c.user_api_keys:
 
        %for api_key in c.user_api_keys:
 
          <tr class="${'expired' if api_key.expired else ''}">
 
            <td style="width: 450px"><div class="truncate autoexpand" style="width:120px;font-size:16px;font-family: monospace">${api_key.api_key}</div></td>
 
            <td>${api_key.description}</td>
 
            <td style="min-width: 80px">
 
                 %if api_key.expires == -1:
 
                  ${_('Expires')}: ${_('Never')}
 
                 %else:
 
                    %if api_key.expired:
 
                        ${_('Expired')}: ${h.age(h.time_to_datetime(api_key.expires))}
 
                    %else:
 
                        ${_('Expires')}: ${h.age(h.time_to_datetime(api_key.expires))}
 
                    %endif
 
                 %endif
 
            </td>
 
            <td>
 
                ${h.form(url('edit_user_api_keys_delete', id=c.user.user_id))}
 
                    ${h.hidden('del_api_key',api_key.api_key)}
 
                    <button class="btn btn-danger btn-xs" type="submit"
 
                            onclick="return confirm('${_('Confirm to remove this API key: %s') % api_key.api_key}');">
 
                        <i class="icon-minus-circled"></i>
 
                        ${_('Remove')}
 
                    </button>
 
                ${h.end_form()}
 
            </td>
 
          </tr>
 
        %endfor
 
    %else:
 
    <tr><td><div class="ip">${_('No additional API keys specified')}</div></td></tr>
 
    %endif
 
  </table>
 
</div>
 

	
 
<div>
 
    ${h.form(url('edit_user_api_keys_update', id=c.user.user_id))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="description">${_('New API key')}:</label>
 
                <div class="input">
 
                    ${h.text('description', class_='medium', placeholder=_('Description'))}
 
                    ${h.text('description', class_='form-control', placeholder=_('Description'))}
 
                    ${h.select('lifetime', '', c.lifetime_options)}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 

	
 
<script>
 
    $(document).ready(function(){
 
        $("#lifetime").select2({
 
            'dropdownAutoWidth': true
 
        });
 
    });
 
</script>
kallithea/templates/admin/users/user_edit_emails.html
Show inline comments
 
<div class="emails_wrap">
 
  <table class="noborder">
 
    <tr>
 
    %if c.visual.use_gravatar:
 
    <td>${h.gravatar_div(c.user.email, size=16)}</td>
 
    %endif
 
    <td><div class="email">${c.user.email}</div></td>
 
    <td>
 
        <span class="label label-success">${_('Primary')}</span>
 
    </td>
 
    </tr>
 
    %if c.user_email_map:
 
        %for em in c.user_email_map:
 
          <tr>
 
            %if c.visual.use_gravatar:
 
            <td>${h.gravatar_div(c.user.email, size=16)}</td>
 
            %endif
 
            <td><div class="email">${em.email}</div></td>
 
            <td>
 
                ${h.form(url('edit_user_emails_delete', id=c.user.user_id))}
 
                    ${h.hidden('del_email_id',em.email_id)}
 
                    <i class="icon-minus-circled" style="color:#FF4444"></i>
 
                    ${h.submit('remove_',_('Delete'),id="remove_email_%s" % em.email_id,
 
                    class_="btn btn-default btn-xs", onclick="return  confirm('"+_('Confirm to delete this email: %s') % em.email+"');")}
 
                ${h.end_form()}
 
            </td>
 
          </tr>
 
        %endfor
 
    %else:
 
    <tr><td><div class="ip">${_('No additional emails specified.')}</div></td></tr>
 
    %endif
 
  </table>
 
</div>
 

	
 
<div>
 
    ${h.form(url('edit_user_emails_update', id=c.user.user_id))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="new_email">${_('New email address')}:</label>
 
                <div class="input">
 
                    ${h.text('new_email', class_='medium')}
 
                    ${h.text('new_email', class_='form-control')}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
kallithea/templates/admin/users/user_edit_ips.html
Show inline comments
 
<div class="ips_wrap">
 
  <table class="noborder">
 
    %if c.default_user_ip_map and c.inherit_default_ips:
 
        %for ip in c.default_user_ip_map:
 
          <tr>
 
            <td><div class="ip">${ip.ip_addr}</div></td>
 
            <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
 
            <td>${h.literal(_('Inherited from %s') % h.link_to('*default*',h.url('admin_permissions_ips')))}</td>
 
          </tr>
 
        %endfor
 
    %endif
 

	
 
    %if c.user_ip_map:
 
        %for ip in c.user_ip_map:
 
          <tr>
 
            <td><div class="ip">${ip.ip_addr}</div></td>
 
            <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
 
            <td>
 
                ${h.form(url('edit_user_ips_delete', id=c.user.user_id))}
 
                    ${h.hidden('del_ip_id',ip.ip_id)}
 
                    <i class="icon-minus-circled" style="color:#FF4444"></i>
 
                    ${h.submit('remove_',_('Delete'),id="remove_ip_%s" % ip.ip_id,
 
                    class_="btn btn-default btn-xs", onclick="return  confirm('"+_('Confirm to delete this IP address: %s') % ip.ip_addr+"');")}
 
                ${h.end_form()}
 
            </td>
 
          </tr>
 
        %endfor
 
    %endif
 
    %if not c.default_user_ip_map and not c.user_ip_map:
 
        <tr><td><div class="ip">${_('All IP addresses are allowed.')}</div></td></tr>
 
    %endif
 
  </table>
 
</div>
 

	
 
<div>
 
    ${h.form(url('edit_user_ips_update', id=c.user.user_id))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="new_ip">${_('New IP address')}:</label>
 
                <div class="input">
 
                    ${h.text('new_ip', class_='medium')}
 
                    ${h.text('new_ip', class_='form-control')}
 
                </div>
 
            </div>
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Add'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
kallithea/templates/admin/users/user_edit_profile.html
Show inline comments
 
${h.form(url('update_user', id=c.user.user_id))}
 
    <div class="form">
 
        <div class="form-group">
 
            <div class="gravatar_box">
 
                ${h.gravatar_div(c.user.email)}
 
                <p>
 
                %if c.visual.use_gravatar:
 
                <strong>${_('Change avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
 
                <br/>${_('Using')} ${c.user.email}
 
                %else:
 
                <strong>${_('Avatars are disabled')}</strong>
 
                <br/>${c.user.email or _('Missing email, please update this user email address.')}
 
                        ##show current ip just if we show ourself
 
                        %if c.authuser.username == c.user.username:
 
                            [${_('Current IP')}: ${c.ip_addr}]
 
                        %endif
 
                %endif
 
            </div>
 
        </div>
 
        <div class="form-horizontal">
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="username">${_('Username')}:</label>
 
                <div class="input">
 
                    ${h.text('username',class_='medium', readonly=c.readonly('username'))}
 
                    ${h.text('username',class_='form-control', readonly=c.readonly('username'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="email">${_('Email')}:</label>
 
                <div class="input">
 
                    ${h.text('email',class_='medium', readonly=c.readonly('email'))}
 
                    ${h.text('email',class_='form-control', readonly=c.readonly('email'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="extern_type">${_('Source of Record')}:</label>
 
                <div class="input">
 
                    ${h.text('extern_type',class_='medium',readonly="readonly")}
 
                    ${h.text('extern_type',class_='form-control',readonly="readonly")}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="extern_name">${_('Name in Source of Record')}:</label>
 
                <div class="input">
 
                    ${h.text('extern_name',class_='medium',readonly="readonly")}
 
                    ${h.text('extern_name',class_='form-control',readonly="readonly")}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="new_password">${_('New password')}:</label>
 
                <div class="input">
 
                    ${h.password('new_password',class_='medium',readonly=c.readonly('password'))}
 
                    ${h.password('new_password',class_='form-control',readonly=c.readonly('password'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="password_confirmation">${_('New password confirmation')}:</label>
 
                <div class="input">
 
                    ${h.password('password_confirmation',class_="medium",readonly=c.readonly('password'))}
 
                    ${h.password('password_confirmation',class_='form-control',readonly=c.readonly('password'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="firstname">${_('First Name')}:</label>
 
                <div class="input">
 
                    ${h.text('firstname',class_='medium', readonly=c.readonly('firstname'))}
 
                    ${h.text('firstname',class_='form-control', readonly=c.readonly('firstname'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="lastname">${_('Last Name')}:</label>
 
                <div class="input">
 
                    ${h.text('lastname',class_='medium', readonly=c.readonly('lastname'))}
 
                    ${h.text('lastname',class_='form-control', readonly=c.readonly('lastname'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="active">${_('Active')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('active',value=True, readonly=c.readonly('active'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="admin">${_('Admin')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('admin',value=True, readonly=c.readonly('admin'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Save'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
${h.end_form()}
kallithea/templates/forks/fork.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${_('Fork repository %s') % c.repo_name}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${_('Fork')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('repositories')}
 
</%block>
 

	
 
<%def name="main()">
 
${self.repo_context_bar('createfork')}
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    ${h.form(url('repo_fork_create_home',repo_name=c.repo_info.repo_name))}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="form-horizontal">
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="repo_name">${_('Fork name')}:</label>
 
                <div class="input">
 
                    ${h.text('repo_name',class_="small")}
 
                    ${h.text('repo_name',class_='form-control')}
 
                    ${h.hidden('repo_type',c.repo_info.repo_type)}
 
                    ${h.hidden('fork_parent_id',c.repo_info.repo_id)}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="description">${_('Description')}:</label>
 
                <div class="textarea editor">
 
                    ${h.textarea('description')}
 
                    <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="repo_group">${_('Repository group')}:</label>
 
                <div class="input">
 
                    ${h.select('repo_group','',c.repo_groups,class_="medium")}
 
                    ${h.select('repo_group','',c.repo_groups,class_='form-control')}
 
                    <span class="help-block">${_('Optionally select a group to put this repository into.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="landing_rev">${_('Landing revision')}:</label>
 
                <div class="input">
 
                    ${h.select('landing_rev','',c.landing_revs,class_="medium")}
 
                    ${h.select('landing_rev','',c.landing_revs,class_='form-control')}
 
                    <span class="help-block">${_('Default revision for files page, downloads, whoosh, and readme.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="private">${_('Private')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('private',value="True")}
 
                    <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="copy_permissions">${_('Copy permissions')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('copy_permissions',value="True", checked="checked")}
 
                    <span class="help-block">${_('Copy permissions from forked repository')}</span>
 
                </div>
 
            </div>
 

	
 
            %if c.can_update:
 
            <div class="form-group">
 
                <label class="control-label" for="update_after_clone">${_('Update after clone')}:</label>
 
                <div class="checkboxes">
 
                    ${h.checkbox('update_after_clone',value="True")}
 
                    <span class="help-block">${_('Checkout source after making a clone')}</span>
 
                </div>
 
            </div>
 
            %endif
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('',_('Fork this Repository'),class_="btn btn-default")}
 
                </div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
</div>
 
<script>
 
    $(document).ready(function(){
 
        $("#repo_group").select2({
 
            'dropdownAutoWidth': true
 
        });
 
        $("#landing_rev").select2({
 
            'minimumResultsForSearch': -1
 
        });
 
        $('#repo_name').focus();
 
    });
 
</script>
 
</%def>
kallithea/templates/login.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="base/root.html"/>
 

	
 
<%block name="title">
 
    ${_('Log In')}
 
</%block>
 

	
 
<div id="login" class="panel panel-default">
 
    <%include file="/base/flash_msg.html"/>
 
    <!-- login -->
 
    <div class="panel-heading title withlogo">
 
        %if c.site_name:
 
            <h5>${_('Log In to %s') % c.site_name}</h5>
 
        %else:
 
            <h5>${_('Log In')}</h5>
 
        %endif
 
    </div>
 
    <div class="panel-body inner">
 
        ${h.form(url('login_home', came_from=c.came_from))}
 
        <div class="form">
 
            <i class="icon-lock"></i>
 
            <!-- fields -->
 

	
 
            <div class="form-horizontal">
 
                <div class="form-group">
 
                    <label class="control-label col-sm-5" for="username">${_('Username')}:</label>
 
                    <div class="input col-sm-7">
 
                        ${h.text('username',class_='form-control focus large')}
 
                        ${h.text('username',class_='form-control focus')}
 
                    </div>
 

	
 
                </div>
 
                <div class="form-group">
 
                    <label class="control-label col-sm-5" for="password">${_('Password')}:</label>
 
                    <div class="input col-sm-7">
 
                        ${h.password('password',class_='form-control focus large')}
 
                        ${h.password('password',class_='form-control focus')}
 
                    </div>
 

	
 
                </div>
 
                <div class="form-group">
 
                    <div class="col-sm-offset-5 col-sm-7">
 
                        <div class="checkbox">
 
                            <label for="remember">
 
                                <input type="checkbox" id="remember" name="remember"/>
 
                                ${_('Stay logged in after browser restart')}
 
                            </label>
 
                        </div>
 
                    </div>
 
                </div>
 
            </div>
 
            <!-- end fields -->
 
            <!-- links -->
 
            <div class="links">
 
                ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
 
                %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
 
                  /
 
                 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
 
                %endif
 
                <span class="buttons">
 
                    ${h.submit('sign_in',_('Sign In'),class_="btn btn-default")}
 
                </span>
 
            </div>
 

	
 
            <!-- end links -->
 
        </div>
 
        ${h.end_form()}
 
        <script type="text/javascript">
 
        $(document).ready(function(){
 
            $('#username').focus();
 
        });
 
        </script>
 
    </div>
 
    <!-- end login -->
 
</div>
kallithea/templates/pullrequests/pullrequest.html
Show inline comments
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    ${c.repo_name} ${_('New Pull Request')}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${_('New Pull Request')}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('repositories')}
 
</%block>
 

	
 
<%def name="main()">
 
${self.repo_context_bar('showpullrequest')}
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading clearfix">
 
        ${self.breadcrumbs()}
 
    </div>
 

	
 
    ${h.form(url('pullrequest', repo_name=c.repo_name), method='post', id='pull_request_form')}
 
    <div class="form">
 
        <!-- fields -->
 

	
 
        <div class="form-horizontal" style="float:left;width:50%;padding-right:30px;">
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="pullrequest_title">${_('Title')}:</label>
 
                <div class="input">
 
                    ${h.text('pullrequest_title',class_="large",placeholder=_('Summarize the changes - or leave empty'))}
 
                    ${h.text('pullrequest_title',class_='form-control',placeholder=_('Summarize the changes - or leave empty'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label" for="pullrequest_desc">${_('Description')}:</label>
 
                <div class="textarea text-area editor">
 
                    ${h.textarea('pullrequest_desc',size=30,placeholder=_('Write a short description on this pull request'))}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label class="control-label">${_('Changeset flow')}:</label>
 
                <div class="input">
 
                    ##ORG
 
                    <div>
 
                        <div>
 
                            <div style="padding:5px 3px 3px 3px;">
 
                            <b>${_('Origin repository')}:</b> <span id="org_repo_desc">${c.db_repo.description.split('\n')[0]}</span>
 
                            </div>
 
                            <div>
 
                            ${h.select('org_repo','',c.cs_repos,class_='refs')}:${h.select('org_ref',c.default_cs_ref,c.cs_refs,class_='refs')}
 
                            </div>
 
                            <div style="padding:5px 3px 3px 3px;">
 
                            <b>${_('Revision')}:</b> <span id="org_rev_span">-</span>
 
                            </div>
 
                        </div>
 
                    </div>
 

	
 
                    ##OTHER, most Probably the PARENT OF THIS FORK
 
                    <div style="border-top: 1px solid #EEE; margin: 5px 0px 0px 0px">
 
                        <div>
 
                            ## filled with JS
 
                            <div style="padding:5px 3px 3px 3px;">
 
                            <b>${_('Destination repository')}:</b> <span id="other_repo_desc">${c.a_repo.description.split('\n')[0]}</span>
 
                            </div>
 
                            <div>
 
                            ${h.select('other_repo',c.a_repo.repo_name,c.a_repos,class_='refs')}:${h.select('other_ref',c.default_a_ref,c.a_refs,class_='refs')}
 
                            </div>
 
                            <div style="padding:5px 3px 3px 3px;">
 
                            <b>${_('Revision')}:</b> <span id="other_rev_span">-</span>
 
                            </div>
 
                        </div>
 
                    </div>
 
                    <div style="clear:both"></div>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    ${h.submit('save',_('Create Pull Request'),class_="btn btn-default")}
 
                    ${h.reset('reset',_('Reset'),class_="btn btn-default")}
 
                </div>
 
            </div>
 

	
 
        </div>
 

	
 
        <div style="clear:both;padding: 0 0 30px 0;"></div>
 

	
 
        <h4>${_('Changesets')}</h4>
 
        <div style="float:left;padding:0px 30px 30px 30px">
 
           ## overview pulled by ajax
 
           <div style="float:left" id="pull_request_overview"></div>
 
        </div>
 
        <div style="clear:both;"></div>
 

	
 
    </div>
 

	
 
    ${h.end_form()}
 

	
 
</div>
 

	
 
<script type="text/javascript" src="${h.url('/js/graph.js', ver=c.kallithea_version)}"></script>
 
<script type="text/javascript">
 
  pyroutes.register('pullrequest_repo_info', "${url('pullrequest_repo_info',repo_name='%(repo_name)s')}", ['repo_name']);
 

	
 
  var pendingajax = undefined;
 
  var otherrepoChanged = function(){
 
      var $other_ref = $('#other_ref');
 
      $other_ref.prop('disabled', true);
 
      var repo_name = $('#other_repo').val();
 
      if (pendingajax) {
 
          pendingajax.abort();
 
          pendingajax = undefined;
 
      }
 
      pendingajax = ajaxGET(pyroutes.url('pullrequest_repo_info', {"repo_name": repo_name}),
 
          function(data){
 
              pendingajax = undefined;
 
              $('#other_repo_desc').html(data.description);
 

	
 
              // replace options of other_ref with the ones for the current other_repo
 
              $other_ref.empty();
 
              for(var i = 0; i < data.refs.length; i++)
 
              {
 
                var $optgroup = $('<optgroup/>').prop('label', data.refs[i][1]);
 
                var options = data.refs[i][0];
 
                var length = options.length;
 
                for(var j = 0; j < length; j++)
 
                {
 
                  $optgroup.append($('<'+'option/>').text(options[j][1]).val(options[j][0]));
 
                }
 
                $other_ref.append($optgroup);
 
              }
 
              $other_ref.val(data.selected_ref);
 

	
 
              // re-populate the select2 thingy
 
              $("#other_ref").select2({
 
                  dropdownAutoWidth: true
 
              });
 

	
 
              $other_ref.prop('disabled', false);
 
              loadPreview();
 
          });
 
  };
 

	
 
  var loadPreview = function(){
 
      //url template
 
      var url = "${h.url('compare_url',
 
                         repo_name='__other_repo__',
 
                         org_ref_type='rev',
 
                         org_ref_name='__other_ref_name__',
 
                         other_repo='__org_repo__',
 
                         other_ref_type='rev',
 
                         other_ref_name='__org_ref_name__',
 
                         as_form=True,
 
                         merge=True,
 
                         )}";
 
      var org_repo = $('#pull_request_form #org_repo').val();
 
      var org_ref = $('#pull_request_form #org_ref').val().split(':');
 
      ## TODO: make nice link like link_to_ref() do
 
      $('#org_rev_span').html(org_ref[2].substr(0,12));
 

	
 
      var other_repo = $('#pull_request_form #other_repo').val();
 
      var other_ref = $('#pull_request_form #other_ref').val().split(':');
 
      $('#other_rev_span').html(other_ref[2].substr(0,12));
 

	
 
      var rev_data = {
 
          '__org_repo__': org_repo,
 
          '__org_ref_name__': org_ref[2],
 
          '__other_repo__': other_repo,
 
          '__other_ref_name__': other_ref[2]
 
      }; // gather the org/other ref and repo here
 

	
 
      for (k in rev_data){
 
          url = url.replace(k,rev_data[k]);
 
      }
 

	
 
      if (pendingajax) {
 
          pendingajax.abort();
 
          pendingajax = undefined;
 
      }
 
      pendingajax = asynchtml(url, $('#pull_request_overview'), function(o){
 
          pendingajax = undefined;
 
          var jsdata = eval('('+$('#jsdata').html()+')'); // TODO: just get json
 
          var r = new BranchRenderer('graph_canvas', 'graph_content_pr', 'chg_');
 
          r.render(jsdata);
 
      });
 
  }
 

	
 
  $(document).ready(function(){
 
      $("#org_repo").select2({
 
          dropdownAutoWidth: true
 
      });
 
      ## (org_repo can't change)
 

	
 
      $("#org_ref").select2({
 
          dropdownAutoWidth: true,
 
          maxResults: 50,
 
          sortResults: branchSort
 
      });
 
      $("#org_ref").on("change", function(e){
 
          loadPreview();
 
      });
 

	
 
      $("#other_repo").select2({
 
          dropdownAutoWidth: true
 
      });
 
      $("#other_repo").on("change", function(e){
 
          otherrepoChanged();
 
      });
 

	
 
      $("#other_ref").select2({
 
          dropdownAutoWidth: true,
 
          maxResults: 50,
 
          sortResults: branchSort
 
      });
 
      $("#other_ref").on("change", function(e){
 
          loadPreview();
 
      });
 

	
 
      //lazy load overview after 0.5s
 
      setTimeout(loadPreview, 500);
 
  });
 

	
 
</script>
 

	
 
</%def>
kallithea/templates/pullrequests/pullrequest_show.html
Show inline comments
 
<%inherit file="/base/base.html"/>
 

	
 
<%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
 

	
 
<%block name="title">
 
    ${_('%s Pull Request %s') % (c.repo_name, c.pull_request.nice_id())}
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${_('Pull request %s from %s#%s') % (c.pull_request.nice_id(), c.pull_request.org_repo.repo_name, c.cs_branch_name)}
 
</%def>
 

	
 
<%block name="header_menu">
 
    ${self.menu('repositories')}
 
</%block>
 

	
 
<%def name="main()">
 
<% editable = not c.pull_request.is_closed() and (h.HasPermissionAny('hg.admin')() or h.HasRepoPermissionAny('repository.admin')(c.repo_name) or c.pull_request.owner_id == c.authuser.user_id) %>
 
${self.repo_context_bar('showpullrequest')}
 
<div class="panel panel-primary">
 
  <!-- box / title -->
 
  <div class="panel-heading">
 
    ${self.breadcrumbs()}
 
  </div>
 

	
 
  ${h.form(url('pullrequest_post', repo_name=c.repo_name, pull_request_id=c.pull_request.pull_request_id), method='post', id='pull_request_form')}
 
    <div class="form pr-box" style="float: left">
 
      <div class="pr-details-title ${'closed' if c.pull_request.is_closed() else ''}">
 
          ${_('Title')}: ${c.pull_request.title}
 
          %if c.pull_request.is_closed():
 
              (${_('Closed')})
 
          %endif
 
      </div>
 
      <div id="pr-summary" class="fields">
 

	
 
        <div class="field pr-not-edit" style="min-height:37px">
 
            <label>${_('Description')}:</label>
 
            %if editable:
 
            <div style="margin: 25px 5px; position: absolute">
 
              <a class="btn btn-default btn-xs" onclick="$('.pr-do-edit').show();$('.pr-not-edit').hide()">${_("Edit")}</a>
 
            </div>
 
            %endif
 
          <div class="input">
 
            <div class="formatted-fixed">${h.urlify_text(c.pull_request.description, c.pull_request.org_repo.repo_name)}</div>
 
          </div>
 
        </div>
 

	
 
        %if editable:
 
        <div class="pr-do-edit" style="display:none">
 
          <div class="field">
 
              <label for="pullrequest_title">${_('Title')}:</label>
 
              <div class="input">
 
                  ${h.text('pullrequest_title',class_="large",value=c.pull_request.title,placeholder=_('Summarize the changes'))}
 
                  ${h.text('pullrequest_title',class_='form-control',value=c.pull_request.title,placeholder=_('Summarize the changes'))}
 
              </div>
 
          </div>
 

	
 
          <div class="field">
 
              <label for="pullrequest_desc">${_('Description')}:</label>
 
              <div class="textarea text-area editor">
 
                  ${h.textarea('pullrequest_desc',size=30,content=c.pull_request.description,placeholder=_('Write a short description on this pull request'))}
 
              </div>
 
          </div>
 
        </div>
 
        %endif
 

	
 
        <div class="field">
 
          <label>${_('Reviewer voting result')}:</label>
 
          <div class="input">
 
            <div class="changeset-status-container" style="float:none;clear:both">
 
            %if c.current_voting_result:
 
              <span class="changeset-status-ico" style="padding:0px 4px 0px 0px">
 
                  <i class="icon-circle changeset-status-${c.current_voting_result}" title="${_('Pull request status calculated from votes')}"></i></span>
 
              <span class="changeset-status-lbl" data-toggle="tooltip" title="${_('Pull request status calculated from votes')}">
 
                %if c.pull_request.is_closed():
 
                    ${_('Closed')},
 
                %endif
 
                ${h.changeset_status_lbl(c.current_voting_result)}
 
              </span>
 
            %endif
 
            </div>
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Still not reviewed by')}:</label>
 
          <div class="input">
 
            % if len(c.pull_request_pending_reviewers) > 0:
 
                <div data-toggle="tooltip" title="${', '.join([x.username for x in c.pull_request_pending_reviewers])}">${ungettext('%d reviewer', '%d reviewers',len(c.pull_request_pending_reviewers)) % len(c.pull_request_pending_reviewers)}</div>
 
            % elif len(c.pull_request_reviewers) > 0:
 
                <div>${_('Pull request was reviewed by all reviewers')}</div>
 
            %else:
 
                <div>${_('There are no reviewers')}</div>
 
            %endif
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Origin')}:</label>
 
          <div class="input">
 
            <div>
 
              ${h.link_to_ref(c.pull_request.org_repo.repo_name, c.cs_ref_type, c.cs_ref_name, c.cs_rev)}
 
              %if c.cs_ref_type != 'branch':
 
                ${_('on')} ${h.link_to_ref(c.pull_request.org_repo.repo_name, 'branch', c.cs_branch_name)}
 
              %endif
 
            </div>
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Target')}:</label>
 
          <div class="input">
 
            %if c.is_range:
 
              ${_("This is just a range of changesets and doesn't have a target or a real merge ancestor.")}
 
            %else:
 
              ${h.link_to_ref(c.pull_request.other_repo.repo_name, c.a_ref_type, c.a_ref_name)}
 
              ## we don't know other rev - c.a_rev is ancestor and not necessarily on other_name_branch branch
 
            %endif
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Pull changes')}:</label>
 
          <div class="input">
 
            %if c.cs_ranges:
 
              <div>
 
               ## TODO: use cs_ranges[-1] or org_ref_parts[1] in both cases?
 
               %if h.is_hg(c.pull_request.org_repo):
 
                 <span style="font-family: monospace">hg pull ${c.pull_request.org_repo.clone_url()} -r ${h.short_id(c.cs_ranges[-1].raw_id)}</span>
 
               %elif h.is_git(c.pull_request.org_repo):
 
                 <span style="font-family: monospace">git pull ${c.pull_request.org_repo.clone_url()} ${c.pull_request.org_ref_parts[1]}</span>
 
               %endif
 
              </div>
 
            %endif
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Created on')}:</label>
 
          <div class="input">
 
              <div>${h.fmt_date(c.pull_request.created_on)}</div>
 
          </div>
 
        </div>
 
        <div class="field">
 
          <label>${_('Owner')}:</label>
 
          <div class="input pr-not-edit">
 
                  ${h.gravatar_div(c.pull_request.owner.email, size=20)}
 
                  <span>${c.pull_request.owner.full_name_and_username}</span><br/>
 
                  <span><a href="mailto:${c.pull_request.owner.email}">${c.pull_request.owner.email}</a></span><br/>
 
          </div>
 
          <div class="input pr-do-edit ac" style="display:none">
 
               ${h.text('owner', class_="large", value=c.pull_request.owner.username, placeholder=_('Username'))}
 
               ${h.text('owner', class_='form-control', value=c.pull_request.owner.username, placeholder=_('Username'))}
 
               <div id="owner_completion_container"></div>
 
          </div>
 
        </div>
 

	
 
        <div class="field">
 
          <label>${_('Next iteration')}:</label>
 
            <div class="input">
 
              <div class="msg-div">${c.update_msg}</div>
 
              %if c.avail_revs:
 
              <div id="updaterevs" style="max-height:200px; overflow-y:auto; overflow-x:hidden; margin-bottom: 10px; padding: 1px 0">
 
                <div style="height:0;width:40px">
 
                  <canvas id="avail_graph_canvas" style="width:0"></canvas>
 
                </div>
 
                <table id="updaterevs-table" class="noborder" style="padding-left:50px">
 
                  %for cnt, cs in enumerate(c.avail_cs):
 
                    <tr id="chg_available_${cnt+1}" class="${'mergerow' if len(cs.parents) > 1 and not (editable and cs.revision in c.avail_revs) else ''}">
 
                      %if c.cs_ranges and cs.revision == c.cs_ranges[-1].revision:
 
                        <td>
 
                          %if editable:
 
                            ${h.radio(name='updaterev', value='', checked=True)}
 
                          %endif
 
                        </td>
 
                        <td colspan="4">${_("Current revision - no change")}</td>
 
                      %else:
 
                        <td>
 
                          %if editable and cs.revision in c.avail_revs:
 
                            ${h.radio(name='updaterev', value=cs.raw_id)}
 
                          %endif
 
                        </td>
 
                        <td style="width: 120px"><span data-toggle="tooltip" title="${h.age(cs.date)}">${cs.date}</span></td>
 
                        <td>${h.link_to(h.show_id(cs),h.url('changeset_home',repo_name=c.cs_repo.repo_name,revision=cs.raw_id), class_='changeset_hash')}</td>
 
                        <td>
 
                          <div style="float: right; margin-top: -4px;">
 
                            %for tag in cs.tags:
 
                              <span class="tagtag" title="${_('Tag %s') % tag}">
 
                                ${h.link_to(tag,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}
 
                              </span>
 
                            %endfor
 
                          </div>
 
                          <div class="message" style="white-space:normal; height:1.1em; max-width: 500px; padding:0">${h.urlify_text(cs.message, c.repo_name)}</div>
 
                        </td>
 
                      %endif
 
                    </tr>
 
                  %endfor
 
                </table>
 
              </div>
 
              <div class="msg-div">(${_("Pull request iterations do not change content once created. Select a revision and save to make a new iteration.")})</div>
 
              %endif
 
              <div class="msg-div">${c.update_msg_other}</div>
 
            </div>
 
        </div>
 
      </div>
 
    </div>
 
    ## REVIEWERS
 
    <div style="float:left; border-left:1px dashed #eee">
 
        <div class="pr-details-title">${_('Pull Request Reviewers')}</div>
 
        <div id="reviewers" style="padding:0px 0px 5px 10px">
 
          ## members goes here !
 
          <div>
 
            %for member,status in c.pull_request_reviewers:
 
              <input type="hidden" value="${member.user_id}" name="org_review_members" />
 
            %endfor
 
            <ul id="review_members">
 
            %for member,status in c.pull_request_reviewers:
 
              ## WARNING: the HTML below is duplicate with
 
              ## kallithea/public/js/base.js
 
              ## If you change something here it should be reflected in the template too.
 
              <li id="reviewer_${member.user_id}">
 
                <span class="reviewers_member">
 
                  <span class="reviewer_status" data-toggle="tooltip" title="${h.changeset_status_lbl(status)}">
 
                      <i class="icon-circle changeset-status-${status}"></i>
 
                  </span>
 
                  ${h.gravatar(member.email, size=14)}
 
                  <span>
 
                    ${member.full_name_and_username}
 
                    %if c.pull_request.owner_id == member.user_id:
 
                      (${_('Owner')})
 
                    %endif
 
                  </span>
 
                  <input type="hidden" value="${member.user_id}" name="review_members" />
 
                  %if editable:
 
                  <a href="#" class="reviewer_member_remove" onclick="removeReviewMember(${member.user_id})" title="${_('Remove reviewer')}">
 
                      <i class="icon-minus-circled"></i>
 
                  </a>
 
                  %endif
 
                </span>
 
              </li>
 
            %endfor
 
            </ul>
 
          </div>
 
          %if editable:
 
          <div class='ac'>
 
            <div class="reviewer_ac">
 
               ${h.text('user', class_='yui-ac-input',placeholder=_('Type name of reviewer to add'))}
 
               <div id="reviewers_container"></div>
 
            </div>
 
          </div>
 
          %endif
 
        </div>
 

	
 
        %if not c.pull_request_reviewers:
 
        <div class="pr-details-title">${_('Potential Reviewers')}</div>
 
        <div style="margin: 10px 0 10px 10px; max-width: 250px">
 
          <div>
 
            ${_('Click to add the repository owner as reviewer:')}
 
          </div>
 
          <ul style="margin-top: 10px">
 
            %for u in [c.pull_request.other_repo.owner]:
 
              <li>
 
                <a class="missing_reviewer missing_reviewer_${u.user_id}"
 
                  user_id="${u.user_id}"
 
                  fname="${u.name}"
 
                  lname="${u.lastname}"
 
                  nname="${u.username}"
 
                  gravatar_lnk="${h.gravatar_url(u.email, size=28, default='default')}"
 
                  gravatar_size="14"
 
                  title="Click to add reviewer to the list, then Save Changes.">${u.full_name}</a>
 
              </li>
 
            %endfor
 
          </ul>
 
        </div>
 
        %endif
 
    </div>
 
    <div class="form" style="clear:both">
 
      <div class="fields">
 
        %if editable:
 
          <div class="buttons">
 
            ${h.submit('pr-form-save',_('Save Changes'),class_="btn btn-default btn-sm")}
 
            ${h.submit('pr-form-clone',_('Create New Iteration with Changes'),class_="btn btn-default btn-sm",disabled='disabled')}
 
            ${h.reset('pr-form-reset',_('Cancel Changes'),class_="btn btn-default btn-sm")}
 
          </div>
 
        %endif
 
      </div>
 
    </div>
 
  ${h.end_form()}
 
</div>
 

	
 
<div class="panel panel-primary">
 
    <div class="panel-heading">
 
      <div class="breadcrumbs">${_('Pull Request Content')}</div>
 
    </div>
 
    <div class="table">
 
          <div id="changeset_compare_view_content">
 
              <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
 
                  ${comment.comment_count(c.inline_cnt, len(c.comments))}
 
              </div>
 
              ##CS
 
              <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
 
                ${ungettext('Showing %s commit','Showing %s commits', len(c.cs_ranges)) % len(c.cs_ranges)}
 
              </div>
 
              <%include file="/compare/compare_cs.html" />
 

	
 
              <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
 
              ${_('Common ancestor')}:
 
              ${h.link_to(h.short_id(c.a_rev),h.url('changeset_home',repo_name=c.a_repo.repo_name,revision=c.a_rev), class_="changeset_hash")}
 
              </div>
 

	
 
              ## FILES
 
              <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
 

	
 
              % if c.limited_diff:
 
                  ${ungettext('%s file changed', '%s files changed', len(c.file_diff_data)) % len(c.file_diff_data)}:
 
              % else:
 
                  ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.file_diff_data)) % (len(c.file_diff_data),c.lines_added,c.lines_deleted)}:
 
              %endif
 

	
 
              </div>
 
              <div class="cs_files">
 
                %if not c.file_diff_data:
 
                   <span class="empty_data">${_('No files')}</span>
 
                %endif
 
                %for fid, url_fid, op, a_path, path, diff, stats in c.file_diff_data:
 
                    <div class="cs_${op}">
 
                      <div class="node">
 
                          <i class="icon-diff-${op}"></i>
 
                          ${h.link_to(h.safe_unicode(path), '#%s' % fid)}
 
                      </div>
 
                      <div class="changes">${h.fancy_file_stats(stats)}</div>
 
                    </div>
 
                %endfor
 
                %if c.limited_diff:
 
                  <h5>${_('Changeset was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}">${_('Show full diff anyway')}</a></h5>
 
                %endif
 
              </div>
 
          </div>
 
    </div>
 
    <script>
 
    var _USERS_AC_DATA = ${c.users_array|n};
 
    var _GROUPS_AC_DATA = ${c.user_groups_array|n};
 
    // TODO: switch this to pyroutes
 
    AJAX_COMMENT_URL = "${url('pullrequest_comment',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}";
 
    AJAX_COMMENT_DELETE_URL = "${url('pullrequest_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
 

	
 
    pyroutes.register('pullrequest_comment', "${url('pullrequest_comment',repo_name='%(repo_name)s',pull_request_id='%(pull_request_id)s')}", ['repo_name', 'pull_request_id']);
 
    pyroutes.register('pullrequest_comment_delete', "${url('pullrequest_comment_delete',repo_name='%(repo_name)s',comment_id='%(comment_id)s')}", ['repo_name', 'comment_id']);
 

	
 
    </script>
 

	
 
    ## diff block
 
    <div class="commentable-diff">
 
    <%namespace name="diff_block" file="/changeset/diff_block.html"/>
 
    ${diff_block.diff_block_js()}
 
    ${diff_block.diff_block(c.a_repo.repo_name, c.a_ref_type, c.a_ref_name, c.a_rev,
 
                            c.cs_repo.repo_name, c.cs_ref_type, c.cs_ref_name, c.cs_rev, c.file_diff_data)}
 
    % if c.limited_diff:
 
      <h4>${_('Changeset was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}">${_('Show full diff anyway')}</a></h4>
 
    % endif
 
    </div>
 

	
 
    ## template for inline comment form
 
    ${comment.comment_inline_form()}
 

	
 
    ## render comments and inlines
 
    ${comment.generate_comments()}
 

	
 
    ## main comment form and it status
 
    ${comment.comments(change_status=c.allowed_to_change_status)}
 

	
 
    <script type="text/javascript">
 
      $(document).ready(function(){
 
          PullRequestAutoComplete($('#user'), $('#reviewers_container'), _USERS_AC_DATA);
 
          SimpleUserAutoComplete($('#owner'), $('#owner_completion_container'), _USERS_AC_DATA);
 

	
 
          $('.code-difftable').on('click', '.add-bubble', function(e){
 
              show_comment_form($(this));
 
          });
 

	
 
          var avail_jsdata = ${c.avail_jsdata|n};
 
          var avail_r = new BranchRenderer('avail_graph_canvas', 'updaterevs-table', 'chg_available_');
 
          avail_r.render(avail_jsdata);
 

	
 
          move_comments($(".comments .comments-list-chunk"));
 

	
 
          $('#updaterevs input').change(function(e){
 
              var update = !!e.target.value;
 
              $('#pr-form-save').prop('disabled',update);
 
              $('#pr-form-clone').prop('disabled',!update);
 
          });
 
          var $org_review_members = $('#review_members').clone();
 
          $('#pr-form-reset').click(function(e){
 
              $('.pr-do-edit').hide();
 
              $('.pr-not-edit').show();
 
              $('#pr-form-save').prop('disabled',false);
 
              $('#pr-form-clone').prop('disabled',true);
 
              $('#review_members').html($org_review_members);
 
          });
 

	
 
          // hack: re-navigate to target after JS is done ... if a target is set and setting href thus won't reload
 
          if (window.location.hash != "") {
 
              window.location.href = window.location.href;
 
          }
 

	
 
          $('.missing_reviewer').click(function(){
 
            var $this = $(this);
 
            addReviewMember($this.attr('user_id'), $this.attr('fname'), $this.attr('lname'), $this.attr('nname'), $this.attr('gravatar_lnk'), $this.attr('gravatar_size'));
 
          });
 
      });
 
    </script>
 

	
 
</div>
 

	
 
</%def>
kallithea/templates/register.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="base/root.html"/>
 

	
 
<%block name="title">
 
    ${_('Sign Up')}
 
</%block>
 

	
 
<div id="register">
 
    <%include file="/base/flash_msg.html"/>
 
    <div class="panel-heading withlogo">
 
        %if c.site_name:
 
            <h5>${_('Sign Up to %s') % c.site_name}</h5>
 
        %else:
 
            <h5>${_('Sign Up')}</h5>
 
        %endif
 
    </div>
 
    <div class="inner">
 
        ${h.form(url('register'))}
 
        <div class="form">
 
            <!-- fields -->
 
            <div class="form-horizontal">
 
                <div class="form-group">
 
                    <label class="control-label" for="username">${_('Username')}:</label>
 
                    <div class="input">
 
                        ${h.text('username',class_="medium")}
 
                        ${h.text('username',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                <div class="form-group">
 
                    <label class="control-label" for="password">${_('Password')}:</label>
 
                    <div class="input">
 
                        ${h.password('password',class_="medium")}
 
                        ${h.password('password',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                <div class="form-group">
 
                    <label class="control-label" for="password_confirmation">${_('Re-enter password')}:</label>
 
                    <div class="input">
 
                        ${h.password('password_confirmation',class_="medium")}
 
                        ${h.password('password_confirmation',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                <div class="form-group">
 
                    <label class="control-label" for="firstname">${_('First Name')}:</label>
 
                    <div class="input">
 
                        ${h.text('firstname',class_="medium")}
 
                        ${h.text('firstname',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                <div class="form-group">
 
                    <label class="control-label" for="lastname">${_('Last Name')}:</label>
 
                    <div class="input">
 
                        ${h.text('lastname',class_="medium")}
 
                        ${h.text('lastname',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                <div class="form-group">
 
                    <label class="control-label" for="email">${_('Email')}:</label>
 
                    <div class="input">
 
                        ${h.text('email',class_="medium")}
 
                        ${h.text('email',class_='form-control')}
 
                    </div>
 
                </div>
 

	
 
                %if c.captcha_active:
 
                <div class="form-group">
 
                    <label class="control-label" for="recaptcha_field">${_('Captcha')}:</label>
 
                    <div class="input">
 
                        ${h.hidden('recaptcha_field')}
 
                        <div id="recaptcha"></div>
 
                    </div>
 
                </div>
 
                %endif
 

	
 
                <div class="buttons">
 
                    <div class="nohighlight">
 
                        ${h.submit('sign_up',_('Sign Up'),class_="btn btn-default")}
 
                        %if c.auto_active:
 
                            <div class="activation_msg">${_('Registered accounts are ready to use and need no further action.')}</div>
 
                        %else:
 
                            <div class="activation_msg">${_('Please wait for an administrator to activate your account.')}</div>
 
                        %endif
 
                    </div>
 
                </div>
 
            </div>
 
        </div>
 
        ${h.end_form()}
 
        %if c.captcha_active:
 
        <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
 
        %endif
 
        <script type="text/javascript">
 
        $(document).ready(function(){
 
            $('#username').focus();
 

	
 
            %if c.captcha_active:
 
            Recaptcha.create("${c.captcha_public_key}", "recaptcha",
 
                {
 
                  theme: "white"
 
                }
 
            );
 
            %endif
 
        });
 
        </script>
 
    </div>
 
 </div>
kallithea/templates/search/search.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%block name="title">
 
    %if c.repo_name:
 
        ${_('%s Search') % c.repo_name}
 
    %else:
 
        ${_('Search in All Repositories')}
 
    %endif
 
</%block>
 

	
 
<%def name="breadcrumbs_links()">
 
  %if c.repo_name:
 
    ${_('Search')}
 
  %else:
 
    ${_('Search in All Repositories')}
 
  %endif
 
  %if c.cur_query:
 
    &raquo;
 
    ${c.cur_query}
 
  %endif
 
</%def>
 

	
 
<%block name="header_menu">
 
    %if c.repo_name:
 
    ${self.menu('repositories')}
 
    %else:
 
    ${self.menu('search')}
 
    %endif
 
</%block>
 
<%def name="main()">
 
%if c.repo_name:
 
${self.repo_context_bar('options')}
 
%endif
 
<div class="panel panel-primary">
 
    <!-- box / title -->
 
    <div class="panel-heading">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    %if c.repo_name:
 
        ${h.form(h.url('search_repo',repo_name=c.repo_name),method='get')}
 
    %else:
 
        ${h.form(h.url('search'),method='get')}
 
    %endif
 
    <div class="form">
 
        <div class="form-horizontal">
 
            <div class="form-group">
 
                <label class="control-label" for="q">${_('Search term')}:</label>
 
                <div class="input">
 
                    ${h.text('q',c.cur_query,class_="small")}
 
                    ${h.text('q',c.cur_query,class_='form-control')}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <label for="type">${_('Search in')}:</label>
 
                <div class="select">
 
                    ${h.select('type',c.cur_type,[('content',_('File contents')),
 
                        ('commit',_('Commit messages')),
 
                        ('path',_('File names')),
 
                        ##('repository',_('Repository names')),
 
                        ])}
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                <div class="buttons">
 
                    <input type="submit" value="${_('Search')}" class="btn btn-default"/>
 
                </div>
 
            </div>
 

	
 
            <div class="form-group">
 
                ## <label>${_('Status')}:</label>
 
                <div style="font-weight: bold;clear:both">${c.runtime}</div>
 
            </div>
 
        </div>
 
    </div>
 
    ${h.end_form()}
 
    <div class="search">
 
    %if c.cur_type == 'content':
 
        <%include file='search_content.html'/>
 
    %elif c.cur_type == 'path':
 
        <%include file='search_path.html'/>
 
    %elif c.cur_type == 'commit':
 
        <%include file='search_commit.html'/>
 
    %elif c.cur_type == 'repository':
 
        <%include file='search_repository.html'/>
 
    %endif
 
    </div>
 
</div>
 

	
 
</%def>
kallithea/tests/functional/test_search.py
Show inline comments
 
import mock
 
import os
 
from kallithea.tests.base import *
 

	
 

	
 
class TestSearchController(TestController):
 

	
 
    def test_index(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'))
 

	
 
        response.mustcontain('class="small" id="q" name="q" type="text"')
 
        response.mustcontain('class="form-control" id="q" name="q" type="text"')
 
        # Test response...
 

	
 
    def test_empty_search(self, tmpdir):
 
        self.log_user()
 

	
 
        config_mock = {
 
            'app_conf': {
 
                # can be any existing dir that does not contain an actual index
 
                'index_dir': str(tmpdir),
 
            }
 
        }
 
        with mock.patch('kallithea.controllers.search.config', config_mock):
 
            response = self.app.get(url(controller='search', action='index'),
 
                                    {'q': HG_REPO})
 
            response.mustcontain('There is no index to search in. '
 
                                 'Please run whoosh indexer')
 

	
 
    def test_normal_search(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'def repo'})
 
        response.mustcontain('58 results')
 

	
 
    def test_repo_search(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'repository:%s def test' % HG_REPO})
 

	
 
        response.mustcontain('18 results')
 

	
 
    def test_search_last(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'last:t', 'type': 'commit'})
 

	
 
        response.mustcontain('2 results')
 

	
 
    def test_search_commit_message(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                    {'q': 'bother to ask where to fetch repo during tests',
 
                     'type': 'commit'})
 

	
 
        response.mustcontain('2 results')
 
        response.mustcontain('a00c1b6f5d7a6ae678fd553a8b81d92367f7ecf1')
 
        response.mustcontain('c6eb379775c578a95dad8ddab53f963b80894850')
 

	
 
    def test_search_commit_message_hg_repo(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index',
 
                                    repo_name=HG_REPO),
 
                    {'q': 'bother to ask where to fetch repo during tests',
 
                     'type': 'commit'})
 

	
 
        response.mustcontain('1 results')
 
        response.mustcontain('a00c1b6f5d7a6ae678fd553a8b81d92367f7ecf1')
 

	
 
    def test_search_commit_changed_file(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'changed:tests/utils.py',
 
                                 'type': 'commit'})
 

	
 
        response.mustcontain('29 results')
 

	
 
    def test_search_commit_changed_files_get_commit(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'changed:vcs/utils/archivers.py',
 
                                 'type': 'commit'})
 

	
 
        response.mustcontain('8 results')
 
        response.mustcontain('25213a5fbb048dff8ba65d21e466a835536e5b70')
 
        response.mustcontain('47aedd538bf616eedcb0e7d630ea476df0e159c7')
 
        response.mustcontain('f5d23247fad4856a1dabd5838afade1e0eed24fb')
 
        response.mustcontain('04ad456aefd6461aea24f90b63954b6b1ce07b3e')
 
        response.mustcontain('c994f0de03b2a0aa848a04fc2c0d7e737dba31fc')
 
        response.mustcontain('d1f898326327e20524fe22417c22d71064fe54a1')
 
        response.mustcontain('fe568b4081755c12abf6ba673ba777fc02a415f3')
 
        response.mustcontain('bafe786f0d8c2ff7da5c1dcfcfa577de0b5e92f1')
 

	
 
    def test_search_commit_added_file(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                                {'q': 'added:README.rst',
 
                                 'type': 'commit'})
 

	
 
        response.mustcontain('2 results')
 
        # Hg
 
        response.mustcontain('3803844fdbd3b711175fc3da9bdacfcd6d29a6fb')
 
        # Git
 
        response.mustcontain('ff7ca51e58c505fec0dd2491de52c622bb7a806b')
 

	
 
    def test_search_author(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                    {'q': 'author:marcin@python-blog.com raw_id:b986218ba1c9b0d6a259fac9b050b1724ed8e545',
 
                     'type': 'commit'})
 

	
 
        response.mustcontain('1 results')
 

	
 
    def test_search_file_name(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='search', action='index'),
 
                    {'q': 'README.rst', 'type': 'path'})
 

	
 
        response.mustcontain('2 results')
0 comments (0 inline, 0 general)