padding-left: 0;
padding-right: 0;
}
-.input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-sm {
- height: 30px;
- line-height: 30px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
-}
-.form-group-sm .form-control {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.form-group-sm .form-control {
- height: 30px;
- line-height: 30px;
-}
-textarea.form-group-sm .form-control,
-select[multiple].form-group-sm .form-control {
- height: auto;
-}
-.form-group-sm .form-control-static {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- min-height: 32px;
-}
-.input-lg {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.input-lg {
- height: 54px;
- line-height: 54px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
- height: auto;
-}
-.form-group-lg .form-control {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.form-group-lg .form-control {
- height: 54px;
- line-height: 54px;
-}
-textarea.form-group-lg .form-control,
-select[multiple].form-group-lg .form-control {
- height: auto;
-}
-.form-group-lg .form-control-static {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- min-height: 38px;
-}
-.has-feedback {
- position: relative;
-}
-.has-feedback .form-control {
- padding-right: 47.5px;
-}
-.form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2;
- display: block;
- width: 38px;
- height: 38px;
- line-height: 38px;
- text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback {
- width: 54px;
- height: 54px;
- line-height: 54px;
-}
-.input-sm + .form-control-feedback {
- width: 30px;
- height: 30px;
- line-height: 30px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
- color: #ffffff;
-}
-.has-success .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-success .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-success .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #77b300;
-}
-.has-success .form-control-feedback {
- color: #ffffff;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
- color: #ffffff;
-}
-.has-warning .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-warning .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-warning .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #ff8800;
-}
-.has-warning .form-control-feedback {
- color: #ffffff;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
- color: #ffffff;
-}
-.has-error .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-error .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #cc0000;
-}
-.has-error .form-control-feedback {
- color: #ffffff;
-}
-.has-feedback label ~ .form-control-feedback {
- top: 25px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
- top: 0;
-}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #c8c8c8;
-}
-@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .form-control-static {
- display: inline-block;
- }
- .form-inline .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .form-inline .input-group .input-group-addon,
- .form-inline .input-group .input-group-btn,
- .form-inline .input-group .form-control {
- width: auto;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio label,
- .form-inline .checkbox label {
- padding-left: 0;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: 9px;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 29px;
-}
-.form-horizontal .form-group {
- margin-left: -15px;
- margin-right: -15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- margin-bottom: 0;
- padding-top: 9px;
- }
-}
-.form-horizontal .has-feedback .form-control-feedback {
- right: 15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-lg .control-label {
- padding-top: 19.6666662px;
- }
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-sm .control-label {
- padding-top: 6px;
- }
-}
.btn {
display: inline-block;
margin-bottom: 0;
.container-fluid:after,
.row:before,
.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
.nav:before,
.nav:after,
.pager:before,
.container:after,
.container-fluid:after,
.row:after,
-.form-horizontal .form-group:after,
.nav:after,
.pager:after,
.modal-footer:after {
padding-left: 0;
padding-right: 0;
}
-.input-sm {
- height: 33px;
- padding: 5px 10px;
- font-size: 14px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-sm {
- height: 33px;
- line-height: 33px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
-}
-.form-group-sm .form-control {
- height: 33px;
- padding: 5px 10px;
- font-size: 14px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.form-group-sm .form-control {
- height: 33px;
- line-height: 33px;
-}
-textarea.form-group-sm .form-control,
-select[multiple].form-group-sm .form-control {
- height: auto;
-}
-.form-group-sm .form-control-static {
- height: 33px;
- padding: 5px 10px;
- font-size: 14px;
- line-height: 1.5;
- min-height: 36px;
-}
-.input-lg {
- height: 57px;
- padding: 14px 16px;
- font-size: 20px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.input-lg {
- height: 57px;
- line-height: 57px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
- height: auto;
-}
-.form-group-lg .form-control {
- height: 57px;
- padding: 14px 16px;
- font-size: 20px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.form-group-lg .form-control {
- height: 57px;
- line-height: 57px;
-}
-textarea.form-group-lg .form-control,
-select[multiple].form-group-lg .form-control {
- height: auto;
-}
-.form-group-lg .form-control-static {
- height: 57px;
- padding: 14px 16px;
- font-size: 20px;
- line-height: 1.3333333;
- min-height: 42px;
-}
-.has-feedback {
- position: relative;
-}
-.has-feedback .form-control {
- padding-right: 50px;
-}
-.form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2;
- display: block;
- width: 40px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback {
- width: 57px;
- height: 57px;
- line-height: 57px;
-}
-.input-sm + .form-control-feedback {
- width: 33px;
- height: 33px;
- line-height: 33px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
- color: #3fad46;
-}
-.has-success .form-control {
- border-color: #3fad46;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-success .form-control:focus {
- border-color: #318837;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #81d186;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #81d186;
-}
-.has-success .input-group-addon {
- color: #3fad46;
- border-color: #3fad46;
- background-color: #dff0d8;
-}
-.has-success .form-control-feedback {
- color: #3fad46;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
- color: #f0ad4e;
-}
-.has-warning .form-control {
- border-color: #f0ad4e;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-warning .form-control:focus {
- border-color: #ec971f;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8d9ac;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8d9ac;
-}
-.has-warning .input-group-addon {
- color: #f0ad4e;
- border-color: #f0ad4e;
- background-color: #fcf8e3;
-}
-.has-warning .form-control-feedback {
- color: #f0ad4e;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
- color: #d9534f;
-}
-.has-error .form-control {
- border-color: #d9534f;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .form-control:focus {
- border-color: #c9302c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #eba5a3;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #eba5a3;
-}
-.has-error .input-group-addon {
- color: #d9534f;
- border-color: #d9534f;
- background-color: #f2dede;
-}
-.has-error .form-control-feedback {
- color: #d9534f;
-}
-.has-feedback label ~ .form-control-feedback {
- top: 27px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
- top: 0;
-}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #737373;
-}
-@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .form-control-static {
- display: inline-block;
- }
- .form-inline .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .form-inline .input-group .input-group-addon,
- .form-inline .input-group .input-group-btn,
- .form-inline .input-group .form-control {
- width: auto;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio label,
- .form-inline .checkbox label {
- padding-left: 0;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: 9px;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 31px;
-}
-.form-horizontal .form-group {
- margin-left: -15px;
- margin-right: -15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- margin-bottom: 0;
- padding-top: 9px;
- }
-}
-.form-horizontal .has-feedback .form-control-feedback {
- right: 15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-lg .control-label {
- padding-top: 19.6666662px;
- }
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-sm .control-label {
- padding-top: 6px;
- }
-}
.btn {
display: inline-block;
margin-bottom: 0;
.container-fluid:after,
.row:before,
.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
.nav:before,
.nav:after,
.pager:before,
.container:after,
.container-fluid:after,
.row:after,
-.form-horizontal .form-group:after,
.nav:after,
.pager:after,
.modal-footer:after {
padding-left: 0;
padding-right: 0;
}
-.input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-sm {
- height: 30px;
- line-height: 30px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
-}
-.form-group-sm .form-control {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.form-group-sm .form-control {
- height: 30px;
- line-height: 30px;
-}
-textarea.form-group-sm .form-control,
-select[multiple].form-group-sm .form-control {
- height: auto;
-}
-.form-group-sm .form-control-static {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- min-height: 32px;
-}
-.input-lg {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.input-lg {
- height: 54px;
- line-height: 54px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
- height: auto;
-}
-.form-group-lg .form-control {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
-}
-select.form-group-lg .form-control {
- height: 54px;
- line-height: 54px;
-}
-textarea.form-group-lg .form-control,
-select[multiple].form-group-lg .form-control {
- height: auto;
-}
-.form-group-lg .form-control-static {
- height: 54px;
- padding: 14px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- min-height: 38px;
-}
-.has-feedback {
- position: relative;
-}
-.has-feedback .form-control {
- padding-right: 47.5px;
-}
-.form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2;
- display: block;
- width: 38px;
- height: 38px;
- line-height: 38px;
- text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback {
- width: 54px;
- height: 54px;
- line-height: 54px;
-}
-.input-sm + .form-control-feedback {
- width: 30px;
- height: 30px;
- line-height: 30px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
- color: #ffffff;
-}
-.has-success .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-success .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-success .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #62c462;
-}
-.has-success .form-control-feedback {
- color: #ffffff;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
- color: #ffffff;
-}
-.has-warning .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-warning .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-warning .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #f89406;
-}
-.has-warning .form-control-feedback {
- color: #ffffff;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
- color: #ffffff;
-}
-.has-error .form-control {
- border-color: #ffffff;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .form-control:focus {
- border-color: #e6e6e6;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
-}
-.has-error .input-group-addon {
- color: #ffffff;
- border-color: #ffffff;
- background-color: #ee5f5b;
-}
-.has-error .form-control-feedback {
- color: #ffffff;
-}
-.has-feedback label ~ .form-control-feedback {
- top: 25px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
- top: 0;
-}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #ffffff;
-}
-@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .form-control-static {
- display: inline-block;
- }
- .form-inline .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .form-inline .input-group .input-group-addon,
- .form-inline .input-group .input-group-btn,
- .form-inline .input-group .form-control {
- width: auto;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio label,
- .form-inline .checkbox label {
- padding-left: 0;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: 9px;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 29px;
-}
-.form-horizontal .form-group {
- margin-left: -15px;
- margin-right: -15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- margin-bottom: 0;
- padding-top: 9px;
- }
-}
-.form-horizontal .has-feedback .form-control-feedback {
- right: 15px;
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-lg .control-label {
- padding-top: 19.6666662px;
- }
-}
-@media (min-width: 768px) {
- .form-horizontal .form-group-sm .control-label {
- padding-top: 6px;
- }
-}
.btn {
display: inline-block;
margin-bottom: 0;
.container-fluid:after,
.row:before,
.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
.nav:before,
.nav:after,
.pager:before,
.container:after,
.container-fluid:after,
.row:after,
-.form-horizontal .form-group:after,
.nav:after,
.pager:after,
.modal-footer:after {
response_filter {
my ($r) = @_;
return $r if ref $r ne 'Plack::App::Gruntmaster::Response';
- my @hdrs = ('X-Forever' => 1, 'Cache-Control' => "$privacy, max-age=$r->{maxage}");
- push @hdrs, Vary => 'Authorization' if $privacy eq 'private';
+ my $vary = 'X-Static';
+ $vary .= ', Authorization' if $privacy eq 'private';
+ my @hdrs = ('X-Forever' => 1, 'Cache-Control' => "$privacy, max-age=$r->{maxage}", Vary => $vary);
return [200, ['Content-Type' => 'application/json; charset=utf-8', @hdrs], [encode_json $r->{params}]] if $format eq 'json';
- my $ret = render $r->{template}, 'en', title => $r->{title}, %{$r->{params}};
+ my $ret = render $r->{template}, 'en', title => $r->{title}, %{$r->{params}}, maybe static => $env->{HTTP_X_STATIC} + 1;
[200, ['Content-Type' => 'text/html; charset=utf-8', @hdrs], [encode 'UTF-8', $ret]]
},
},
sub (/) { redispatch_to '/index' },
sub (/favicon.ico) { redirect '/static/favicon.ico' },
- sub (/:article) { [200, ['Content-Type' => 'text/html; charset=utf-8', 'Cache-Control' => 'public, max-age=3600', 'X-Forever' => 1], [render_article $_{article}, 'en']] }
+ sub (/:article) { [200, ['Content-Type' => 'text/html; charset=utf-8', 'Cache-Control' => 'public, max-age=3600', 'X-Forever' => 1, Vary => 'X-Static'], [render_article $_{article}, 'en', maybe static => $env->{HTTP_X_STATIC}]] }
},
sub (POST) {
}
sub render_article {
- my ($art, $lang) = @_;
+ my ($art, $lang, %args) = @_;
$lang //= 'en';
my $title = read_file "a/$art.$lang.title";
my $meat = read_file "a/$art.$lang";
- _render('skel', $lang, title => $title , meat => $meat)
+ _render('skel', $lang, title => $title , meat => $meat, %args)
}
sub _render {
$tree->defmap(smap => \%args);
my $process = __PACKAGE__->can("process_$tmpl");
$process->($tree, %args) if $process;
+ $_->detach for $tree->look_down(static => $args{static} ? 'no' : 'yes');
+ $_->attr('static', undef) for $tree->look_down(sub {$_[0]->attr('static')});
+ $_->attr('smap', undef) for $tree->look_down(sub {$_[0]->attr('defmap')});
$tree->as_HTML;
}
<a href="/log/?problem=problem_id" id="job_log">Job log</a><br>
<a href="/sol/problem_id" id="solution" data-toggle="modal" data-target="#solution_modal">Solution</a>
-<h1>Submit solution</h1>
+<h1 static="no">Submit solution</h1>
<div id="nosubmit">
The contest has finished.<br>
To submit solutions to this problem, please visit the problem <a href="/pb/id">outside the contest</a>.
</div>
-<div id="submit">
+<div id="submit" static="no">
<form id="submitform" action="/action/submit" method="POST" enctype="multipart/form-data" role="form">
<input type="hidden" name="problem" value="problem_id">
<input type="hidden" name="contest" value="contest_id">
<li id="nav-ct"><a href="/ct/">Contests</a>
<li id="nav-log"><a href="/log/">Job log</a>
<li id="nav-us"><a href="/us/">Users</a>
-<li id="nav-account"><a href="/account">Account</a>
+<li id="nav-account" static="no"><a href="/account">Account</a>
<li id="nav-about"><a href="/about">About / Help</a>
<li id="nav-contribute"><a href="/contribute">Contribute!</a>
<div id="logo"></div>
<h1 id="title">TITLE</h1>
+<div id="static" class="alert alert-info" static="yes">This is a static version of MindCoding, useful when the <a href="https://mindcoding.ro/">regular version</a> is overloaded.</div>
+
<div id="result"></div>
<div id="content">Content goes here</div>
-<div id="login" class="reqjs"><a href="#">Log in</a></div>
+<div id="login" class="reqjs" static="no"><a href="#">Log in</a></div>
<div id="webchat"><a href="http://webchat.oftc.net/?channels=%23mindcoding" target="_blank">Webchat</a></div>
<div id="theme-selector" class="reqjs">