2013-02-05 14:16:51 -05:00
|
|
|
// these are the styles associated with the Discourse admin section
|
2013-08-28 13:58:44 -04:00
|
|
|
@import "common/foundation/variables";
|
|
|
|
@import "common/foundation/mixins";
|
|
|
|
@import "common/foundation/helpers";
|
2013-02-05 14:16:51 -05:00
|
|
|
|
2013-10-28 13:46:59 -04:00
|
|
|
.admin-contents table {
|
2014-02-12 23:36:10 -05:00
|
|
|
width: 100%;
|
|
|
|
tr {text-align: left;}
|
|
|
|
td, th {padding: 8px;}
|
2014-05-19 01:17:59 -04:00
|
|
|
th {border-top: 1px solid scale-color-diff();}
|
|
|
|
td {border-bottom: 1px solid scale-color-diff(); border-top: 1px solid scale-color-diff();}
|
2014-05-06 01:50:51 -04:00
|
|
|
tr:hover { background-color: darken($secondary, 2.5%); }
|
2014-12-02 15:30:57 -05:00
|
|
|
tr.selected { background-color: lighten($primary, 80%); }
|
2014-03-06 01:14:51 -05:00
|
|
|
.filters input { margin-bottom: 0; }
|
2013-10-28 13:46:59 -04:00
|
|
|
}
|
|
|
|
|
2014-06-23 03:09:18 -04:00
|
|
|
td.flaggers td {
|
|
|
|
border-bottom: none;
|
|
|
|
border-top: none;
|
|
|
|
}
|
|
|
|
|
2013-05-08 01:20:38 -04:00
|
|
|
.content-list li a span.count {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.857em;
|
2013-05-08 01:20:38 -04:00
|
|
|
float: right;
|
|
|
|
margin-right: 10px;
|
2014-05-19 01:17:59 -04:00
|
|
|
background-color: scale-color-diff();
|
2013-05-08 01:20:38 -04:00
|
|
|
padding: 2px 5px;
|
|
|
|
border-radius: 5px;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2013-05-08 01:20:38 -04:00
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
.admin-content {
|
|
|
|
margin-bottom: 50px;
|
|
|
|
.admin-contents {
|
|
|
|
padding: 8px;
|
2013-08-09 10:06:02 -04:00
|
|
|
|
2014-01-02 10:22:04 -05:00
|
|
|
.ace-wrapper {
|
|
|
|
height: 400px;
|
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
2013-03-17 15:02:36 -04:00
|
|
|
|
2014-11-05 14:46:27 -05:00
|
|
|
.view-options {
|
|
|
|
float: right;
|
|
|
|
}
|
2013-03-17 15:02:36 -04:00
|
|
|
table.report {
|
2014-03-26 12:03:58 -04:00
|
|
|
margin-top: 20px;
|
2013-03-17 15:02:36 -04:00
|
|
|
tr {
|
|
|
|
th:nth-of-type(1) {
|
|
|
|
width: 20%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.bar-container {
|
|
|
|
float: left;
|
|
|
|
width: 300px;
|
|
|
|
margin-right: 15px;
|
|
|
|
margin-bottom: 5px;
|
|
|
|
display: inline-block;
|
|
|
|
|
|
|
|
.bar {
|
|
|
|
margin-top: 5px;
|
2014-05-06 01:50:51 -04:00
|
|
|
background-color: $tertiary;
|
2013-03-17 15:02:36 -04:00
|
|
|
display: inline-block;
|
|
|
|
text-align: right;
|
|
|
|
padding-right: 8px;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $secondary;
|
2013-03-17 15:02:36 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
|
2014-07-07 16:18:18 -04:00
|
|
|
.ip-lookup {
|
2014-06-15 12:14:19 -04:00
|
|
|
position: relative;
|
|
|
|
display: inline-block;
|
|
|
|
|
|
|
|
.location-box {
|
|
|
|
position: absolute;
|
|
|
|
width: 460px;
|
|
|
|
right: 0px;
|
|
|
|
z-index: 990;
|
2014-08-06 09:31:13 -04:00
|
|
|
box-shadow: 0 2px 6px rgba(0,0,0, .8);
|
2014-06-15 12:14:19 -04:00
|
|
|
margin-top: -2px;
|
|
|
|
background-color: $secondary;
|
|
|
|
padding: 12px 12px 5px;
|
2014-11-17 08:51:28 -05:00
|
|
|
|
|
|
|
.other-accounts {
|
2014-11-20 13:59:20 -05:00
|
|
|
margin: 5px 0 0;
|
2014-11-17 08:51:28 -05:00
|
|
|
max-height: 200px;
|
|
|
|
overflow: auto;
|
2014-11-20 13:59:20 -05:00
|
|
|
width: 455px;
|
2014-11-17 08:51:28 -05:00
|
|
|
ul { margin: 0; }
|
|
|
|
li { list-style: none; }
|
2014-11-20 13:59:20 -05:00
|
|
|
tr td:first-of-type { width: 130px; }
|
2014-11-17 08:51:28 -05:00
|
|
|
}
|
2014-06-15 12:14:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-11-16 14:14:34 -05:00
|
|
|
.admin-container {
|
|
|
|
margin-top: 20px;
|
|
|
|
}
|
|
|
|
|
2014-11-03 06:46:08 -05:00
|
|
|
.admin-title {
|
|
|
|
height: 45px;
|
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
.admin-controls {
|
2014-09-07 22:46:04 -04:00
|
|
|
background-color: dark-light-diff($primary, $secondary, 90%, -75%);
|
2014-03-06 01:14:51 -05:00
|
|
|
padding: 10px 10px 3px 0;
|
2013-02-05 14:16:51 -05:00
|
|
|
height: 35px;
|
|
|
|
.nav.nav-pills {
|
|
|
|
li.active {
|
|
|
|
a {
|
2014-05-19 01:17:59 -04:00
|
|
|
border-color: scale-color-diff();
|
2014-05-06 01:50:51 -04:00
|
|
|
background-color: lighten($primary, 40%);
|
2013-02-05 14:16:51 -05:00
|
|
|
&:hover {
|
2014-05-06 01:50:51 -04:00
|
|
|
background-color: lighten($primary, 40%);
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
h1 {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.429em;
|
2013-02-05 14:16:51 -05:00
|
|
|
line-height: 25px;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
.controls {
|
2013-10-29 17:03:28 -04:00
|
|
|
margin-left: 10px;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
button {
|
|
|
|
margin-right: 5px;
|
2014-03-03 01:16:30 -05:00
|
|
|
|
2013-10-29 17:03:28 -04:00
|
|
|
}
|
|
|
|
input[type=text] {
|
|
|
|
display: inline-block;
|
|
|
|
float: left;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
.result-message {
|
|
|
|
display: inline-block;
|
|
|
|
padding-left: 10px;
|
|
|
|
padding-top: 5px;
|
|
|
|
}
|
|
|
|
.username {
|
|
|
|
input[type=text] {
|
|
|
|
width: 240px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.search {
|
2013-03-06 12:07:09 -05:00
|
|
|
float: right;
|
|
|
|
margin-left: 10px;
|
2013-02-05 14:16:51 -05:00
|
|
|
label {
|
|
|
|
margin-top: 5px;
|
|
|
|
}
|
|
|
|
}
|
2013-06-03 16:12:24 -04:00
|
|
|
.toggle {
|
|
|
|
margin-top: 8px;
|
|
|
|
float: right;
|
|
|
|
|
|
|
|
span {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
label {
|
|
|
|
display: inline-block;
|
|
|
|
margin-right: 5px;
|
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
|
2013-11-14 15:26:48 -05:00
|
|
|
.site-settings-nav {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 18.018%;
|
2014-02-23 20:47:44 -05:00
|
|
|
margin-top: 30px;
|
2013-11-16 14:14:34 -05:00
|
|
|
.nav-stacked {
|
|
|
|
border-right: none;
|
|
|
|
}
|
2013-11-15 15:22:42 -05:00
|
|
|
li a.active {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $secondary;
|
2014-05-13 14:50:42 -04:00
|
|
|
background-color: $quaternary;
|
2013-11-14 15:26:48 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-11-15 15:22:42 -05:00
|
|
|
.site-settings-detail {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 76.5765%;
|
2013-11-18 09:53:06 -05:00
|
|
|
min-height: 800px;
|
2013-11-16 14:14:34 -05:00
|
|
|
margin-left: 0;
|
2014-05-19 01:17:59 -04:00
|
|
|
border-left: solid 1px scale-color-diff();
|
2013-11-16 14:14:34 -05:00
|
|
|
padding: 30px 0 30px 30px;
|
2013-11-15 15:22:42 -05:00
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
.settings {
|
|
|
|
.setting {
|
|
|
|
padding-bottom: 20px;
|
2013-11-15 15:22:42 -05:00
|
|
|
|
|
|
|
.setting-label {
|
|
|
|
float: left;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 17.6576%;
|
2013-11-15 15:22:42 -05:00
|
|
|
margin-right: 12px;
|
|
|
|
}
|
|
|
|
.setting-value {
|
|
|
|
float: left;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 53%;
|
2014-06-20 17:46:25 -04:00
|
|
|
.select2-container {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
.select2-container-multi .select2-choices {
|
|
|
|
border: none;
|
|
|
|
}
|
2013-11-15 15:22:42 -05:00
|
|
|
}
|
|
|
|
.setting-controls {
|
|
|
|
float: left;
|
|
|
|
}
|
2013-11-16 14:14:34 -05:00
|
|
|
.input-setting-string {
|
|
|
|
width: 404px;
|
|
|
|
@include medium-width { width: 314px; }
|
|
|
|
@include small-width { width: 284px; }
|
|
|
|
}
|
2014-03-30 01:32:33 -04:00
|
|
|
.input-setting-list {
|
|
|
|
width: 408px;
|
|
|
|
padding: 1px;
|
2014-05-06 23:53:04 -04:00
|
|
|
background-color: $secondary;
|
2014-05-19 01:17:59 -04:00
|
|
|
border: 1px solid scale-color-diff();
|
2014-03-30 01:32:33 -04:00
|
|
|
border-radius: 3px;
|
|
|
|
box-shadow: inset 0 1px 1px rgba(51, 51, 51, 0.3);
|
|
|
|
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
|
|
|
|
transition: border linear 0.2s, box-shadow linear 0.2s;
|
|
|
|
|
2014-06-01 10:36:26 -04:00
|
|
|
li.select2-search-choice {
|
|
|
|
cursor: pointer;
|
|
|
|
.select2-search-choice-close {
|
|
|
|
content: "x"
|
2014-03-30 01:32:33 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-01 10:36:26 -04:00
|
|
|
li.sortable-placeholder {
|
|
|
|
padding: 3px 5px 3px 18px;
|
|
|
|
margin: 3px 0px 3px 5px;
|
|
|
|
position: relative;
|
|
|
|
line-height: 13px;
|
|
|
|
cursor: default;
|
|
|
|
border: 1px dashed #AAA;
|
|
|
|
border-radius: 3px;
|
|
|
|
background-clip: padding-box;
|
|
|
|
-moz-user-select: none;
|
|
|
|
background-color: none;
|
|
|
|
width: 3em;
|
|
|
|
height: 1em;
|
2014-03-30 01:32:33 -04:00
|
|
|
}
|
|
|
|
|
2014-06-01 10:36:26 -04:00
|
|
|
}
|
2013-11-15 15:22:42 -05:00
|
|
|
|
2014-06-09 15:17:36 -04:00
|
|
|
.desc, .validation-error {
|
2013-02-05 14:16:51 -05:00
|
|
|
padding-top: 3px;
|
2014-03-22 02:06:53 -04:00
|
|
|
font-size: 80%;
|
|
|
|
line-height: 1.4em;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
2013-03-01 12:45:25 -05:00
|
|
|
|
2014-06-09 15:17:36 -04:00
|
|
|
.validation-error {
|
|
|
|
color: $danger;
|
|
|
|
}
|
|
|
|
|
|
|
|
.desc {
|
|
|
|
color: scale-color($primary, $lightness: 50%);
|
|
|
|
}
|
|
|
|
|
2013-03-01 12:45:25 -05:00
|
|
|
h3 {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.929em;
|
2013-03-01 12:45:25 -05:00
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.setting.overridden {
|
|
|
|
input[type=text] {
|
2014-09-07 22:46:04 -04:00
|
|
|
background-color: dark-light-diff($highlight, $secondary, 50%, -60%);
|
2014-08-06 09:31:13 -04:00
|
|
|
|
2013-03-01 12:45:25 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
h3 {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: scale-color($highlight, $lightness: -50%);
|
2013-03-01 12:45:25 -05:00
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
section.details {
|
|
|
|
h1 {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.286em;
|
2014-08-27 13:52:01 -04:00
|
|
|
color: $primary;
|
|
|
|
padding: 5px 10px;
|
|
|
|
margin: 30px 0 5px 0;
|
|
|
|
border-bottom: 5px solid scale-color-diff();
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#selected-controls {
|
2014-05-06 23:53:04 -04:00
|
|
|
background-color: scale-color($tertiary, $lightness: 75%);
|
2013-02-05 14:16:51 -05:00
|
|
|
padding: 8px;
|
|
|
|
min-height: 27px;
|
|
|
|
position: fixed;
|
|
|
|
bottom: 0;
|
|
|
|
width: 1075px;
|
|
|
|
}
|
|
|
|
|
2014-08-27 13:52:01 -04:00
|
|
|
.user-controls {
|
|
|
|
padding: 5px;
|
|
|
|
clear: both;
|
|
|
|
text-align: right;
|
|
|
|
}
|
|
|
|
|
2014-09-25 02:38:44 -04:00
|
|
|
.display-row.associations .value {
|
2014-09-29 16:31:05 -04:00
|
|
|
width: 750px;
|
2014-09-25 02:38:44 -04:00
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
.display-row {
|
2013-06-06 10:51:33 -04:00
|
|
|
line-height: 30px;
|
2013-02-05 14:16:51 -05:00
|
|
|
padding: 5px;
|
|
|
|
&:nth-of-type(1) {
|
|
|
|
border-top: 0;
|
|
|
|
}
|
2013-11-05 14:41:04 -05:00
|
|
|
&.highlight-danger {
|
2014-05-06 13:29:13 -04:00
|
|
|
background-color: scale-color($danger, $lightness: 50%);
|
2013-11-05 14:41:04 -05:00
|
|
|
}
|
2014-05-19 01:17:59 -04:00
|
|
|
border-top: 1px solid scale-color-diff();
|
2013-02-05 14:16:51 -05:00
|
|
|
&:before, &:after {
|
|
|
|
display: table;
|
|
|
|
content: "";
|
|
|
|
}
|
|
|
|
&:after {
|
|
|
|
clear: both;
|
|
|
|
}
|
|
|
|
.field {
|
|
|
|
font-weight: bold;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 17.65765%;
|
2013-02-05 14:16:51 -05:00
|
|
|
float: left;
|
|
|
|
margin-left: 12px;
|
|
|
|
}
|
|
|
|
.value {
|
|
|
|
width: 250px;
|
|
|
|
float: left;
|
|
|
|
margin-left: 12px;
|
|
|
|
}
|
2013-10-22 15:53:08 -04:00
|
|
|
.long-value {
|
|
|
|
width: 800px;
|
|
|
|
float: left;
|
|
|
|
margin-left: 12px;
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.929em;
|
2013-10-22 15:53:08 -04:00
|
|
|
|
|
|
|
button {
|
|
|
|
margin-left: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
.controls {
|
2014-03-15 05:16:29 -04:00
|
|
|
width: 480px;
|
2013-11-11 15:03:17 -05:00
|
|
|
float: left;
|
|
|
|
margin-left: 12px;
|
2013-02-05 14:16:51 -05:00
|
|
|
.btn {
|
|
|
|
margin-right: 5px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-03-05 07:52:20 -05:00
|
|
|
// Badges area
|
|
|
|
.badges {
|
|
|
|
.content-list ul {
|
|
|
|
margin-bottom: 10px;
|
2014-05-19 01:20:57 -04:00
|
|
|
|
|
|
|
.list-badge {
|
|
|
|
float: right;
|
|
|
|
font-size: 11px;
|
|
|
|
font-weight: normal;
|
|
|
|
padding: 0 6px;
|
|
|
|
color: $secondary;
|
|
|
|
background-color: scale-color($tertiary, $lightness: 50%);
|
|
|
|
border-radius: 3px;
|
|
|
|
}
|
2014-03-05 07:52:20 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
.current-badge {
|
|
|
|
margin: 20px;
|
2014-10-16 16:43:10 -04:00
|
|
|
|
|
|
|
p.help {
|
|
|
|
margin: 0;
|
|
|
|
color: scale-color($primary, $lightness: 40%);
|
|
|
|
font-size: 0.9em;
|
|
|
|
}
|
2014-03-05 07:52:20 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
.form-horizontal {
|
|
|
|
label {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
& > div {
|
|
|
|
margin-top: 10px;
|
|
|
|
}
|
|
|
|
.delete-link {
|
|
|
|
margin-left: 15px;
|
|
|
|
margin-top: 5px;
|
|
|
|
}
|
2014-03-19 01:13:38 -04:00
|
|
|
|
|
|
|
input, textarea, select {
|
|
|
|
width: 350px;
|
|
|
|
}
|
|
|
|
|
2014-04-25 14:25:29 -04:00
|
|
|
input[type="checkbox"] {
|
|
|
|
width: 20px;
|
|
|
|
}
|
|
|
|
|
2014-03-19 01:13:38 -04:00
|
|
|
textarea {
|
|
|
|
height: 200px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-27 15:51:41 -04:00
|
|
|
.current-badge-actions {
|
|
|
|
margin: 10px;
|
|
|
|
padding: 10px;
|
|
|
|
border-top: 1px solid scale-color($primary, $lightness: 80%);
|
|
|
|
}
|
|
|
|
|
2014-03-19 01:13:38 -04:00
|
|
|
.buttons {
|
|
|
|
float: left;
|
|
|
|
width: 200px;
|
|
|
|
.saving {
|
|
|
|
padding: 5px 0 0 0;
|
|
|
|
margin-left: 10px;
|
|
|
|
width: 80px;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2014-03-19 01:13:38 -04:00
|
|
|
}
|
2014-03-05 07:52:20 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
FEATURE: Badge query validation, preview results, and EXPLAIN
Upon saving a badge or requesting a badge result preview,
BadgeGranter.contract_checks! will examine the provided badge SQL for
some contractual obligations - namely, the returned columns and use of
trigger parameters.
Saving the badge is wrapped in a transaction to make this easier, by
raising ActiveRecord::Rollback on a detected violation.
On the client, a modal view is added for the badge query sample run
results, named admin-badge-preview.
The preview action is moved up to the route.
The save action, on failure, triggers a 'saveError' action (also in the
route).
The preview action gains a new parameter, 'explain', which will give the
output of an EXPLAIN query for the badge sql, which can be used by forum
admins to estimate the cost of their badge queries.
The preview link is replaced by two links, one which omits (false) and
includes (true) the EXPLAIN query.
The Badge.save() method is amended to propogate errors.
Badge::Trigger gets some utility methods for use in the
BadgeGranter.contract_checks! method.
Additionally, extra checks outside of BadgeGranter.contract_checks! are
added in the preview() method, to cover cases of null granted_at
columns.
An uninitialized variable path is removed in the backfill() method.
TODO - it would be nice to be able to get the actual names of all
columns the provided query returns, so we could give more errors
2014-08-25 18:17:29 -04:00
|
|
|
.badge-query-preview {
|
|
|
|
.grant-count, .sample, .error-header {
|
|
|
|
margin-left: 10px;
|
|
|
|
}
|
|
|
|
|
2014-09-02 16:29:28 -04:00
|
|
|
.badge-errors {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1em;
|
2014-09-02 16:29:28 -04:00
|
|
|
line-height: 16px;
|
FEATURE: Badge query validation, preview results, and EXPLAIN
Upon saving a badge or requesting a badge result preview,
BadgeGranter.contract_checks! will examine the provided badge SQL for
some contractual obligations - namely, the returned columns and use of
trigger parameters.
Saving the badge is wrapped in a transaction to make this easier, by
raising ActiveRecord::Rollback on a detected violation.
On the client, a modal view is added for the badge query sample run
results, named admin-badge-preview.
The preview action is moved up to the route.
The save action, on failure, triggers a 'saveError' action (also in the
route).
The preview action gains a new parameter, 'explain', which will give the
output of an EXPLAIN query for the badge sql, which can be used by forum
admins to estimate the cost of their badge queries.
The preview link is replaced by two links, one which omits (false) and
includes (true) the EXPLAIN query.
The Badge.save() method is amended to propogate errors.
Badge::Trigger gets some utility methods for use in the
BadgeGranter.contract_checks! method.
Additionally, extra checks outside of BadgeGranter.contract_checks! are
added in the preview() method, to cover cases of null granted_at
columns.
An uninitialized variable path is removed in the backfill() method.
TODO - it would be nice to be able to get the actual names of all
columns the provided query returns, so we could give more errors
2014-08-25 18:17:29 -04:00
|
|
|
padding: 4px;
|
|
|
|
background-color: scale-color-diff();
|
|
|
|
}
|
|
|
|
|
|
|
|
.badge-query-plan {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.857em;
|
2014-09-02 16:29:28 -04:00
|
|
|
line-height: 13px;
|
|
|
|
padding: 4px;
|
|
|
|
background-color: scale-color-diff();
|
FEATURE: Badge query validation, preview results, and EXPLAIN
Upon saving a badge or requesting a badge result preview,
BadgeGranter.contract_checks! will examine the provided badge SQL for
some contractual obligations - namely, the returned columns and use of
trigger parameters.
Saving the badge is wrapped in a transaction to make this easier, by
raising ActiveRecord::Rollback on a detected violation.
On the client, a modal view is added for the badge query sample run
results, named admin-badge-preview.
The preview action is moved up to the route.
The save action, on failure, triggers a 'saveError' action (also in the
route).
The preview action gains a new parameter, 'explain', which will give the
output of an EXPLAIN query for the badge sql, which can be used by forum
admins to estimate the cost of their badge queries.
The preview link is replaced by two links, one which omits (false) and
includes (true) the EXPLAIN query.
The Badge.save() method is amended to propogate errors.
Badge::Trigger gets some utility methods for use in the
BadgeGranter.contract_checks! method.
Additionally, extra checks outside of BadgeGranter.contract_checks! are
added in the preview() method, to cover cases of null granted_at
columns.
An uninitialized variable path is removed in the backfill() method.
TODO - it would be nice to be able to get the actual names of all
columns the provided query returns, so we could give more errors
2014-08-25 18:17:29 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.count-warning {
|
|
|
|
background-color: dark-light-diff(rgba($danger,.7), $secondary, 50%, -60%);
|
|
|
|
margin: 0 0 7px 0;
|
|
|
|
padding: 10px 20px;
|
|
|
|
|
|
|
|
p {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
.heading {
|
|
|
|
color: $danger;
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
// Customise area
|
|
|
|
.customize {
|
|
|
|
.nav.nav-pills {
|
|
|
|
margin-left: 10px;
|
|
|
|
}
|
2013-04-10 01:55:20 -04:00
|
|
|
.content-list, .current-style {
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
.content-list ul {
|
2013-06-19 01:18:22 -04:00
|
|
|
margin-bottom: 10px;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
.current-style {
|
|
|
|
.delete-link {
|
|
|
|
margin-left: 15px;
|
|
|
|
margin-top: 5px;
|
|
|
|
}
|
|
|
|
.preview-link {
|
2014-02-23 20:47:44 -05:00
|
|
|
margin-left: 15px;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
2013-04-10 01:55:20 -04:00
|
|
|
padding-left: 10px;
|
|
|
|
width: 65%;
|
2013-02-05 14:16:51 -05:00
|
|
|
.style-name {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 54.0540%;
|
2013-02-05 14:16:51 -05:00
|
|
|
height: 25px;
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.429em;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
.ace-wrapper {
|
|
|
|
position: relative;
|
2013-06-19 01:18:22 -04:00
|
|
|
height: 400px;
|
2013-02-05 14:16:51 -05:00
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
.ace_editor {
|
|
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
}
|
|
|
|
.status-actions {
|
|
|
|
float: right;
|
2013-06-19 01:18:22 -04:00
|
|
|
margin-top: 7px;
|
2013-02-05 14:16:51 -05:00
|
|
|
span {
|
2014-02-23 20:47:44 -05:00
|
|
|
margin-right: 10px;
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
.buttons {
|
|
|
|
float: left;
|
2013-04-10 01:55:20 -04:00
|
|
|
width: 200px;
|
|
|
|
.saving {
|
|
|
|
padding: 5px 0 0 0;
|
|
|
|
margin-left: 10px;
|
|
|
|
width: 80px;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2013-04-10 01:55:20 -04:00
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
}
|
2014-04-16 09:49:06 -04:00
|
|
|
.color-scheme {
|
|
|
|
.controls {
|
|
|
|
span, button, a {
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.colors {
|
|
|
|
thead th { border: none; }
|
|
|
|
td.hex { width: 100px; }
|
2014-05-13 14:50:42 -04:00
|
|
|
td.actions { width: 200px; }
|
|
|
|
.hex-input { width: 80px; margin-bottom: 0; }
|
2014-05-02 17:46:03 -04:00
|
|
|
.hex { text-align: center; }
|
2014-05-13 14:50:42 -04:00
|
|
|
.description { color: scale-color($primary, $lightness: 50%); }
|
2014-04-16 09:49:06 -04:00
|
|
|
|
2014-05-02 17:46:03 -04:00
|
|
|
.invalid .hex input {
|
|
|
|
background-color: white;
|
|
|
|
color: black;
|
|
|
|
border-color: $danger;
|
|
|
|
}
|
2014-04-16 09:49:06 -04:00
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.admin-flags {
|
2014-10-09 16:12:02 -04:00
|
|
|
table-layout: fixed;
|
2013-06-17 03:15:56 -04:00
|
|
|
|
2014-08-13 02:52:43 -04:00
|
|
|
.hidden-post td.excerpt, .hidden-post td.user { opacity: 0.5; }
|
|
|
|
.deleted td.excerpt, .deleted td.user { background-color: scale-color($danger, $lightness: 70%); }
|
2014-09-11 14:07:39 -04:00
|
|
|
.message { background-color: dark-light-diff($highlight, $secondary, 50%, -70%); }
|
|
|
|
.message:hover { background-color: dark-light-diff($highlight, $secondary, 60%, -60%); }
|
2013-06-26 15:10:07 -04:00
|
|
|
td { vertical-align: top; }
|
2013-02-05 14:16:51 -05:00
|
|
|
th { text-align: left; }
|
2014-07-28 13:17:37 -04:00
|
|
|
.user {
|
2014-10-07 04:29:44 -04:00
|
|
|
width: 25px;
|
2014-08-12 06:49:19 -04:00
|
|
|
padding: 8px 0 0 0;
|
2014-08-18 12:56:39 -04:00
|
|
|
text-align: center;
|
2014-07-28 13:17:37 -04:00
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
.excerpt {
|
2014-08-12 06:49:19 -04:00
|
|
|
max-width: 700px;
|
2014-10-07 04:29:44 -04:00
|
|
|
width: 75%;
|
2014-02-05 17:54:16 -05:00
|
|
|
padding: 8px;
|
2013-06-26 03:01:39 -04:00
|
|
|
word-wrap: break-word;
|
2014-07-28 13:17:37 -04:00
|
|
|
.fa { display: inline-block; }
|
|
|
|
h3 {
|
|
|
|
max-height: 1.2em;
|
|
|
|
overflow: hidden;
|
2014-10-07 04:29:44 -04:00
|
|
|
margin-top: 0;
|
|
|
|
margin-bottom: 5px;
|
2014-07-28 13:17:37 -04:00
|
|
|
}
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
2013-06-26 03:01:39 -04:00
|
|
|
.flaggers {
|
|
|
|
font-size: 11px;
|
2014-07-28 13:17:37 -04:00
|
|
|
padding: 8px 0 0 5px;
|
2014-08-13 02:52:43 -04:00
|
|
|
.avatar {
|
|
|
|
width: 25px;
|
|
|
|
}
|
2014-08-11 16:28:11 -04:00
|
|
|
table {
|
|
|
|
max-width: 145px;
|
|
|
|
}
|
|
|
|
tr {
|
|
|
|
height: 44px;
|
|
|
|
}
|
2013-06-26 03:01:39 -04:00
|
|
|
td {
|
2013-06-26 15:10:07 -04:00
|
|
|
vertical-align: middle;
|
|
|
|
padding: 3px;
|
2014-08-13 02:52:43 -04:00
|
|
|
line-height: 1.4;
|
2013-06-26 03:01:39 -04:00
|
|
|
}
|
|
|
|
}
|
2013-06-20 03:42:15 -04:00
|
|
|
.action {
|
2013-06-21 03:29:54 -04:00
|
|
|
button { margin: 4px; }
|
|
|
|
text-align: right;
|
2013-06-20 03:42:15 -04:00
|
|
|
padding-bottom: 20px;
|
|
|
|
}
|
2014-07-28 13:17:37 -04:00
|
|
|
td p {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.929em;
|
2014-07-28 13:17:37 -04:00
|
|
|
margin: 0 0 5px 0;
|
|
|
|
}
|
2014-09-08 11:53:29 -04:00
|
|
|
.flagged-posts { background: $danger; }
|
2013-02-05 14:16:51 -05:00
|
|
|
}
|
2013-03-07 11:07:59 -05:00
|
|
|
|
2013-03-14 12:28:35 -04:00
|
|
|
/* Dashboard */
|
|
|
|
|
|
|
|
.dashboard-left {
|
|
|
|
float: left;
|
2014-09-11 14:45:35 -04:00
|
|
|
margin-top: 10px;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 60%;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
.dashboard-right {
|
|
|
|
float: right;
|
2013-04-17 10:25:28 -04:00
|
|
|
margin-top: 10px;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 40%;
|
2013-03-18 13:44:28 -04:00
|
|
|
|
2013-05-01 18:12:02 -04:00
|
|
|
|
|
|
|
.dashboard-stats {
|
|
|
|
width: 100%;
|
|
|
|
margin-left: 0;
|
|
|
|
}
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.version-check {
|
2014-09-11 14:45:35 -04:00
|
|
|
margin-top: 10px;
|
|
|
|
|
2013-03-14 12:28:35 -04:00
|
|
|
.version-number {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.286em;
|
2013-03-19 13:51:09 -04:00
|
|
|
font-weight: bold;
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.face {
|
|
|
|
width: 20px;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
|
2013-12-09 16:27:49 -05:00
|
|
|
.version-notes .fa {
|
2013-03-14 12:28:35 -04:00
|
|
|
vertical-align: bottom;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.critical .version-notes .normal-note {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&.normal .version-notes .critical-note {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
2013-12-09 16:27:49 -05:00
|
|
|
.fa {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.857em;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
|
2013-11-04 12:51:01 -05:00
|
|
|
.up-to-date {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $success;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
.updates-available {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $danger;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
.critical-updates-available {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $danger;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.update-nag {
|
2013-12-09 16:27:49 -05:00
|
|
|
i.fa {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.429em;
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-10-22 15:53:08 -04:00
|
|
|
table.api-keys {
|
|
|
|
margin-top: 10px;
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
th {
|
|
|
|
text-align: left;
|
|
|
|
padding: 5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
td {
|
|
|
|
padding: 5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
td.key {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.857em;
|
2013-10-22 15:53:08 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-07 11:07:59 -05:00
|
|
|
.dashboard-stats {
|
2013-04-17 10:25:28 -04:00
|
|
|
margin-bottom: 30px;
|
2014-07-09 19:56:35 -04:00
|
|
|
margin-right: 40px;
|
2013-04-16 18:37:35 -04:00
|
|
|
h4 {
|
|
|
|
font-weight: normal;
|
|
|
|
margin-bottom: 8px;
|
|
|
|
}
|
|
|
|
|
2013-03-07 11:07:59 -05:00
|
|
|
table {
|
2013-03-12 11:57:33 -04:00
|
|
|
width: 100%;
|
2013-03-07 11:07:59 -05:00
|
|
|
|
2013-04-17 10:46:27 -04:00
|
|
|
.title {
|
2013-12-09 16:27:49 -05:00
|
|
|
i.fa {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-04-17 10:46:27 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-07 11:07:59 -05:00
|
|
|
th {
|
|
|
|
font-weight: normal;
|
|
|
|
text-align: center;
|
2014-09-07 22:46:04 -04:00
|
|
|
background: dark-light-diff($primary, $secondary, 80%, -65%);
|
2013-03-07 11:07:59 -05:00
|
|
|
}
|
2013-04-16 18:37:35 -04:00
|
|
|
th.title {
|
|
|
|
text-align: left;
|
|
|
|
}
|
2013-03-19 14:17:32 -04:00
|
|
|
thead {
|
2013-04-23 11:48:26 -04:00
|
|
|
tr:hover > td {
|
2014-05-06 01:50:51 -04:00
|
|
|
background-color: $secondary;
|
2013-03-19 14:17:32 -04:00
|
|
|
}
|
|
|
|
}
|
2013-03-07 11:07:59 -05:00
|
|
|
|
|
|
|
td.value {
|
|
|
|
font-weight: bold;
|
|
|
|
text-align: center;
|
2013-03-30 14:07:25 -04:00
|
|
|
|
|
|
|
i {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.trending-up {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $success;
|
2013-03-30 14:07:25 -04:00
|
|
|
i.up {
|
|
|
|
display: inline;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.trending-down {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $danger;
|
2013-03-30 14:07:25 -04:00
|
|
|
i.down {
|
|
|
|
display: inline;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.no-change {
|
|
|
|
i.down {
|
|
|
|
display: inline;
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
}
|
2013-03-07 11:07:59 -05:00
|
|
|
}
|
|
|
|
}
|
2013-03-15 16:17:19 -04:00
|
|
|
|
2013-03-19 23:18:00 -04:00
|
|
|
&.detected-problems {
|
2014-09-07 22:46:04 -04:00
|
|
|
background: dark-light-diff($primary, $secondary, 90%, -75%);
|
2013-03-19 23:18:00 -04:00
|
|
|
margin-bottom: 20px;
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
|
|
.look-here {
|
|
|
|
float: left;
|
2014-03-22 03:37:18 -04:00
|
|
|
margin: 20px 10px 0 10px;
|
2013-03-19 23:18:00 -04:00
|
|
|
|
2013-12-09 16:27:49 -05:00
|
|
|
.fa {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 2.286em
|
|
|
|
;
|
2013-03-19 23:18:00 -04:00
|
|
|
vertical-align: middle;
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary
|
2013-03-19 23:18:00 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.problem-messages {
|
|
|
|
float: left;
|
2014-09-07 22:46:04 -04:00
|
|
|
width: 80%;
|
|
|
|
margin-left: 1%;
|
2013-04-04 16:16:58 -04:00
|
|
|
a {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
2013-04-16 12:09:37 -04:00
|
|
|
.actions {
|
|
|
|
text-align: right;
|
|
|
|
}
|
2013-11-18 13:44:55 -05:00
|
|
|
.btn {
|
2014-09-07 22:46:04 -04:00
|
|
|
background: dark-light-diff($primary, $secondary, 80%, -85%);
|
2014-03-22 03:37:18 -04:00
|
|
|
}
|
|
|
|
ul {
|
|
|
|
margin-left: 0;
|
2014-09-07 22:46:04 -04:00
|
|
|
padding-left: 20px;
|
|
|
|
li {
|
|
|
|
margin-bottom: 10px;
|
|
|
|
}
|
2014-03-22 03:37:18 -04:00
|
|
|
}
|
2013-03-19 23:18:00 -04:00
|
|
|
}
|
2014-02-23 20:47:44 -05:00
|
|
|
}
|
2013-03-19 23:18:00 -04:00
|
|
|
|
2013-03-15 16:17:19 -04:00
|
|
|
&.totals {
|
2013-07-08 12:21:08 -04:00
|
|
|
table {
|
|
|
|
width: auto;
|
|
|
|
}
|
2013-04-23 11:48:26 -04:00
|
|
|
margin-top: 12px;
|
|
|
|
padding-left: 5px;
|
|
|
|
.value {
|
2013-07-08 12:21:08 -04:00
|
|
|
text-align: left;
|
2013-04-23 11:48:26 -04:00
|
|
|
font-weight: bold;
|
2013-07-08 12:21:08 -04:00
|
|
|
padding-left: 8px;
|
|
|
|
padding-right: 30px;
|
2013-03-15 16:17:19 -04:00
|
|
|
}
|
|
|
|
}
|
2013-03-15 18:08:46 -04:00
|
|
|
|
|
|
|
&.trust-levels {
|
2014-03-06 01:14:51 -05:00
|
|
|
margin-bottom: 0;
|
2013-03-22 17:50:22 -04:00
|
|
|
table {
|
2014-03-06 01:14:51 -05:00
|
|
|
margin-bottom: 0;
|
2013-03-18 13:25:40 -04:00
|
|
|
}
|
2013-03-22 17:50:22 -04:00
|
|
|
td.value {
|
|
|
|
width: 45px;
|
|
|
|
}
|
2013-03-19 13:51:09 -04:00
|
|
|
}
|
2013-07-30 14:45:03 -04:00
|
|
|
|
|
|
|
.referred-topic-title {
|
2014-09-11 14:45:35 -04:00
|
|
|
width: 355px;
|
|
|
|
@include medium-width { width: 305px; }
|
|
|
|
@include small-width { width: 265px; }
|
2013-07-30 14:45:03 -04:00
|
|
|
}
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.commits-widget {
|
2014-05-19 01:17:59 -04:00
|
|
|
border: solid 1px scale-color-diff();
|
2013-05-02 11:52:37 -04:00
|
|
|
height: 180px;
|
2013-05-01 18:12:02 -04:00
|
|
|
margin-bottom: 36px;
|
2013-03-11 15:26:14 -04:00
|
|
|
|
|
|
|
ul, li {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
ul {
|
|
|
|
list-style: none;
|
|
|
|
}
|
|
|
|
a {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-03-14 12:28:35 -04:00
|
|
|
text-decoration: none;
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
a:hover {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-03-11 15:26:14 -04:00
|
|
|
font-weight: bold;
|
|
|
|
height: 30px;
|
2014-09-07 22:46:04 -04:00
|
|
|
background: dark-light-diff($primary, $secondary, 80%, -75%);
|
2013-03-11 15:26:14 -04:00
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
h1 {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.286em;
|
2013-03-11 15:26:14 -04:00
|
|
|
margin: 5px 0 0 8px;
|
|
|
|
display: inline-block;
|
|
|
|
line-height: 1.0em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.header:hover h1 {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $tertiary;
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.commits-list {
|
2013-05-02 11:52:37 -04:00
|
|
|
height: 149px;
|
2013-03-11 15:26:14 -04:00
|
|
|
overflow-y:auto;
|
|
|
|
|
|
|
|
li {
|
|
|
|
@extend .clearfix;
|
|
|
|
line-height: 1.0em;
|
|
|
|
padding: 6px 8px;
|
2014-05-19 01:17:59 -04:00
|
|
|
background-color: scale-color-diff();
|
2013-03-11 15:26:14 -04:00
|
|
|
.left {
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
.right {
|
|
|
|
margin-left: 52px;
|
|
|
|
}
|
|
|
|
|
|
|
|
img {
|
|
|
|
margin-top: 2px;
|
2014-05-19 01:17:59 -04:00
|
|
|
border: solid 1px scale-color-diff();
|
2013-03-11 15:26:14 -04:00
|
|
|
padding: 2px;
|
2014-05-06 01:50:51 -04:00
|
|
|
background-color: $secondary;
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.commit-message {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.857em;
|
2013-03-11 15:26:14 -04:00
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
|
|
|
.commit-meta {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.857em;
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.committer-name {
|
|
|
|
font-weight: bold;
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-03-11 15:26:14 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
li:last-child {
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
}
|
2013-03-14 12:28:35 -04:00
|
|
|
|
|
|
|
// Always show the scrollbar:
|
|
|
|
::-webkit-scrollbar {
|
|
|
|
width: 6px;
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
2014-09-07 22:46:04 -04:00
|
|
|
background: dark-light-diff($primary, $secondary, 90%, -75%);
|
2013-03-14 12:28:35 -04:00
|
|
|
-webkit-border-radius: 3px;
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
2014-05-19 01:17:59 -04:00
|
|
|
border-left: solid 1px scale-color-diff();
|
2013-03-14 12:28:35 -04:00
|
|
|
}
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.content-list {
|
|
|
|
|
|
|
|
h3 {
|
2014-09-07 22:46:04 -04:00
|
|
|
color: dark-light-diff($primary, $secondary, 50%, -60%);
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.071em;
|
2013-04-04 12:59:44 -04:00
|
|
|
padding-left: 5px;
|
2014-04-16 09:49:06 -04:00
|
|
|
margin-bottom: 10px;
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
ul {
|
|
|
|
list-style: none;
|
|
|
|
margin: 0;
|
|
|
|
|
2014-04-16 09:49:06 -04:00
|
|
|
li:first-of-type {
|
2014-05-19 01:17:59 -04:00
|
|
|
border-top: 1px solid scale-color-diff();
|
2014-04-16 09:49:06 -04:00
|
|
|
}
|
2013-04-04 12:59:44 -04:00
|
|
|
li {
|
2014-05-19 01:17:59 -04:00
|
|
|
border-bottom: 1px solid scale-color-diff();
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
li a {
|
|
|
|
display: block;
|
|
|
|
padding: 10px;
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-04-04 12:59:44 -04:00
|
|
|
|
|
|
|
&:hover {
|
2014-05-19 01:17:59 -04:00
|
|
|
background-color: scale-color-diff();
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
&.active {
|
|
|
|
font-weight: bold;
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.content-editor {
|
|
|
|
min-height: 500px;
|
|
|
|
|
2013-04-09 11:28:28 -04:00
|
|
|
float: left;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 54.0540%;
|
|
|
|
margin-left: 1.8018%;
|
2013-04-09 11:28:28 -04:00
|
|
|
|
2013-04-04 12:59:44 -04:00
|
|
|
p.description {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $primary;
|
2013-04-04 12:59:44 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.controls {
|
|
|
|
margin-top: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
#pagedown-editor {
|
|
|
|
width: 98%;
|
|
|
|
}
|
|
|
|
|
|
|
|
textarea.plain {
|
|
|
|
width: 98%;
|
|
|
|
height: 200px;
|
|
|
|
}
|
|
|
|
|
|
|
|
#wmd-input {
|
|
|
|
width: 98%;
|
|
|
|
height: 200px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ace-wrapper {
|
|
|
|
position: relative;
|
|
|
|
height: 600px;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
.ace_editor {
|
|
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2013-05-09 03:37:34 -04:00
|
|
|
|
|
|
|
.row.groups {
|
|
|
|
input[type='text'] {
|
|
|
|
width: 500px;
|
|
|
|
}
|
|
|
|
input#group-users {
|
|
|
|
width: 600px;
|
|
|
|
}
|
|
|
|
}
|
2013-08-01 21:30:13 -04:00
|
|
|
|
2013-08-08 17:16:07 -04:00
|
|
|
// Logs
|
2013-08-01 21:30:13 -04:00
|
|
|
|
2013-10-22 16:30:30 -04:00
|
|
|
.admin-logs-table {
|
|
|
|
input.ember-text-field {
|
|
|
|
padding: 1px 4px;
|
|
|
|
}
|
2013-10-23 12:55:06 -04:00
|
|
|
.btn {
|
|
|
|
padding: 2px 8px;
|
2013-12-09 16:27:49 -05:00
|
|
|
.fa {
|
2013-10-23 12:55:06 -04:00
|
|
|
margin-right: 2px;
|
|
|
|
}
|
|
|
|
}
|
2013-10-22 16:30:30 -04:00
|
|
|
}
|
|
|
|
|
2013-10-21 14:49:51 -04:00
|
|
|
.screened-emails, .screened-urls, .screened-ip-addresses {
|
2013-11-04 16:24:32 -05:00
|
|
|
.email, .url, .domain {
|
2013-08-22 19:04:17 -04:00
|
|
|
width: 300px;
|
2013-08-08 17:16:07 -04:00
|
|
|
}
|
2013-10-22 16:30:30 -04:00
|
|
|
.action, .match_count, .last_match_at, .created_at {
|
|
|
|
text-align: center;
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 9.9099%;
|
2013-10-22 16:30:30 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-10-24 17:18:10 -04:00
|
|
|
.screened-ip-address-form {
|
|
|
|
margin-left: 6px;
|
|
|
|
.combobox {
|
|
|
|
width: 130px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-10-22 16:30:30 -04:00
|
|
|
.screened-emails, .screened-urls {
|
|
|
|
.ip_address {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 9.9099%;
|
2013-08-01 21:30:13 -04:00
|
|
|
text-align: center;
|
|
|
|
}
|
2013-08-07 16:04:12 -04:00
|
|
|
}
|
2013-10-22 16:30:30 -04:00
|
|
|
.screened-ip-addresses {
|
|
|
|
.ip_address {
|
|
|
|
width: 150px;
|
|
|
|
text-align: left;
|
|
|
|
input {
|
|
|
|
width: 130px;
|
|
|
|
}
|
|
|
|
}
|
2013-10-23 12:55:06 -04:00
|
|
|
.col.actions {
|
2013-10-22 16:30:30 -04:00
|
|
|
width: 275px;
|
2013-10-23 12:55:06 -04:00
|
|
|
padding-top: 4px;
|
2013-10-22 16:30:30 -04:00
|
|
|
a {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-08-07 16:04:12 -04:00
|
|
|
|
|
|
|
.staff-actions {
|
2013-08-08 18:35:14 -04:00
|
|
|
width: 100%;
|
2013-08-07 16:04:12 -04:00
|
|
|
.action {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 10.810%;
|
2013-08-07 16:04:12 -04:00
|
|
|
}
|
2013-08-19 16:58:38 -04:00
|
|
|
.staff_user {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 9.009%;
|
2013-08-08 18:35:14 -04:00
|
|
|
}
|
2013-08-19 16:58:38 -04:00
|
|
|
.subject {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 18.018%;
|
2013-08-19 16:58:38 -04:00
|
|
|
}
|
2013-08-08 18:35:14 -04:00
|
|
|
.created_at {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 4.5045%;
|
2013-08-08 18:35:14 -04:00
|
|
|
}
|
|
|
|
.context {
|
2014-07-09 19:56:35 -04:00
|
|
|
width: 18.018%;
|
2013-08-07 16:04:12 -04:00
|
|
|
}
|
|
|
|
.created_at {
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
.details {
|
2013-08-19 16:58:38 -04:00
|
|
|
width: 300px;
|
2013-08-07 16:04:12 -04:00
|
|
|
a {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
2013-08-08 18:35:14 -04:00
|
|
|
&.value {
|
|
|
|
height: 70px;
|
|
|
|
}
|
2013-08-07 16:04:12 -04:00
|
|
|
}
|
|
|
|
}
|
2013-08-08 17:16:07 -04:00
|
|
|
|
2013-08-09 16:58:57 -04:00
|
|
|
.staff-action-logs-controls {
|
|
|
|
margin: 0 0 20px 6px;
|
|
|
|
a.filter {
|
|
|
|
display: inline-block;
|
2014-05-06 23:53:04 -04:00
|
|
|
background-color: scale-color($primary, $lightness: 75%);
|
2013-08-09 16:58:57 -04:00
|
|
|
padding: 3px 10px;
|
|
|
|
border-radius: 3px;
|
2014-03-03 01:16:30 -05:00
|
|
|
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2013-08-09 16:58:57 -04:00
|
|
|
&:hover {
|
2014-05-06 23:53:04 -04:00
|
|
|
color: $primary;
|
2014-05-19 01:17:59 -04:00
|
|
|
background-color: scale-color-diff();
|
2014-02-23 20:47:44 -05:00
|
|
|
|
|
|
|
|
2013-08-09 16:58:57 -04:00
|
|
|
}
|
|
|
|
.label {
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
i {
|
|
|
|
margin-left: 6px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.staff-action-logs-instructions {
|
2013-10-31 12:17:06 -04:00
|
|
|
margin: 0 0 10px 10px;
|
2013-08-09 16:58:57 -04:00
|
|
|
}
|
|
|
|
|
2013-08-08 17:16:07 -04:00
|
|
|
// Ember.ListView
|
|
|
|
|
|
|
|
.ember-list-view {
|
|
|
|
overflow-y: auto;
|
|
|
|
overflow-x: hidden;
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
.ember-list-item-view {
|
|
|
|
position: absolute;
|
|
|
|
}
|
2013-08-08 18:35:14 -04:00
|
|
|
|
2013-10-21 14:49:51 -04:00
|
|
|
.staff-actions, .screened-emails, .screened-urls, .screened-ip-addresses {
|
2014-03-03 01:16:30 -05:00
|
|
|
|
2014-05-06 23:53:04 -04:00
|
|
|
border-bottom: dotted 1px scale-color($primary, $lightness: 75%);
|
2013-08-08 18:35:14 -04:00
|
|
|
|
|
|
|
.heading-container {
|
|
|
|
width: 100%;
|
2014-05-19 01:17:59 -04:00
|
|
|
background-color: scale-color-diff();
|
2013-08-08 18:35:14 -04:00
|
|
|
}
|
|
|
|
.col.heading {
|
|
|
|
font-weight: bold;
|
|
|
|
padding: 4px 0;
|
|
|
|
}
|
|
|
|
.col {
|
|
|
|
display: inline-block;
|
|
|
|
padding-top: 6px;
|
|
|
|
vertical-align: top;
|
|
|
|
overflow-y: auto;
|
|
|
|
overflow-x: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ember-list-item-view {
|
|
|
|
width: 100%;
|
2014-05-19 01:17:59 -04:00
|
|
|
border-top: solid 1px scale-color-diff();
|
2013-08-08 18:35:14 -04:00
|
|
|
}
|
|
|
|
}
|
2013-08-21 10:49:35 -04:00
|
|
|
|
|
|
|
.log-details-modal {
|
|
|
|
.modal-tab {
|
|
|
|
width: 95%;
|
|
|
|
}
|
2014-01-02 10:22:04 -05:00
|
|
|
}
|
2014-01-23 16:40:10 -05:00
|
|
|
|
2014-09-24 20:19:26 -04:00
|
|
|
.tl3-requirements {
|
2014-01-23 16:40:10 -05:00
|
|
|
.fa-check {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $success;
|
2014-01-23 16:40:10 -05:00
|
|
|
}
|
|
|
|
.fa-times {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $danger;
|
2014-01-23 16:40:10 -05:00
|
|
|
}
|
2014-02-12 23:36:10 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
// Backups
|
|
|
|
// --------------------------------------------------
|
|
|
|
|
|
|
|
$rollback: #3D9970;
|
|
|
|
$rollback-dark: darken($rollback, 10%) !default;
|
|
|
|
$rollback-darker: darken($rollback, 20%) !default;
|
|
|
|
|
|
|
|
.btn-rollback {
|
2014-05-06 01:50:51 -04:00
|
|
|
color: $secondary;
|
2014-02-12 23:36:10 -05:00
|
|
|
background: $rollback;
|
|
|
|
&:hover {
|
|
|
|
background: $rollback-dark;
|
|
|
|
}
|
|
|
|
&:active {
|
|
|
|
@include linear-gradient($rollback-darker, $rollback-dark);
|
|
|
|
}
|
|
|
|
&[disabled] {
|
|
|
|
background: $rollback;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.admin-backups-logs {
|
|
|
|
max-height: 500px;
|
|
|
|
overflow: auto;
|
|
|
|
}
|
2014-02-21 19:41:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
button.ru {
|
|
|
|
position: relative;
|
|
|
|
min-width: 110px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ru-progress {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
height: 100%;
|
|
|
|
background: rgba(0, 175, 0, 0.3);
|
|
|
|
}
|
|
|
|
|
|
|
|
.is-uploading:hover .ru-progress {
|
|
|
|
background: rgba(200, 0, 0, 0.3);
|
|
|
|
}
|
2014-03-18 19:36:02 -04:00
|
|
|
|
|
|
|
.invisible {
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
2014-07-09 19:56:35 -04:00
|
|
|
|
2014-08-04 16:48:04 -04:00
|
|
|
.delete-flag-modal, .agree-flag-modal {
|
2014-07-28 13:17:37 -04:00
|
|
|
button {
|
|
|
|
display: block;
|
|
|
|
margin: 10px 0 10px 10px;
|
|
|
|
padding: 10px 15px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-08-20 12:48:56 -04:00
|
|
|
.start-backup-modal {
|
|
|
|
.btn {
|
|
|
|
margin: 10px 0 10px 5px;
|
|
|
|
}
|
|
|
|
.btn:first-of-type {
|
|
|
|
margin-left: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-07-24 12:21:22 -04:00
|
|
|
@media all
|
2014-07-09 19:56:35 -04:00
|
|
|
and (max-width : 850px) {
|
|
|
|
.nav-stacked {
|
|
|
|
.glyph {width: auto; position: relative;}
|
|
|
|
> li > a {padding: 13px}
|
|
|
|
}
|
|
|
|
}
|
2014-07-22 16:30:32 -04:00
|
|
|
|
2014-07-24 12:21:22 -04:00
|
|
|
@media all
|
2014-07-22 16:30:32 -04:00
|
|
|
and (min-width : 320px)
|
|
|
|
and (max-width : 500px) {
|
|
|
|
|
|
|
|
.full-width { margin: 0; }
|
|
|
|
.site-settings-nav { width: 100%; }
|
|
|
|
.site-settings-detail {
|
|
|
|
width: 100%;
|
|
|
|
padding: 0;
|
|
|
|
border: none;
|
|
|
|
|
|
|
|
.settings .setting {
|
|
|
|
.setting-label {
|
|
|
|
float: left;
|
|
|
|
width: 100%;
|
|
|
|
h3 {
|
|
|
|
margin-bottom: 5px;
|
|
|
|
font-weight: bold;
|
|
|
|
margin-top: 25px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.setting-value {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
label {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 0.929em;
|
2014-07-22 16:30:32 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.content-editor {
|
|
|
|
width: 100%;
|
|
|
|
#pagedown-editor {
|
|
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
div.ac-wrap {
|
|
|
|
width: 100% !important;
|
|
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
|
|
|
|
|
|
.admin-container {
|
|
|
|
h2 {
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.dashboard-left, .dashboard-right { width: 100%; }
|
|
|
|
.dashboard-stats { margin: 0; }
|
|
|
|
|
|
|
|
.badges {
|
|
|
|
.current-badge {margin: 70px 0 0 0;}
|
|
|
|
.current-badge-actions {padding: 0;}
|
|
|
|
}
|
|
|
|
|
|
|
|
.customize .content-list, .customize .current-style {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
}
|
2014-07-27 04:22:01 -04:00
|
|
|
|
|
|
|
.badge-groupings {
|
|
|
|
list-style: none;
|
|
|
|
margin: 0;
|
|
|
|
padding: 10px 3px;
|
|
|
|
li {
|
|
|
|
padding: 6px 0;
|
|
|
|
width: 600px;
|
|
|
|
border-bottom: 1px solid #dfdfdf;
|
|
|
|
}
|
|
|
|
.actions {
|
2014-12-15 22:12:56 -05:00
|
|
|
font-size: 1.214em;
|
2014-07-27 04:22:01 -04:00
|
|
|
float: right;
|
|
|
|
a {
|
|
|
|
margin-left: 5px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2014-09-03 10:09:30 -04:00
|
|
|
|
|
|
|
tr.not-activated {
|
|
|
|
td, td a, td a:visited {
|
|
|
|
color: #bbb;
|
|
|
|
}
|
2014-09-03 10:41:13 -04:00
|
|
|
}
|
|
|
|
.details.not-activated {
|
|
|
|
.username .value, .email .value a, .email .value a:visited {
|
|
|
|
color: #bbb;
|
|
|
|
}
|
2014-09-07 22:46:04 -04:00
|
|
|
}
|
2014-09-25 11:32:08 -04:00
|
|
|
|
|
|
|
.user-fields {
|
|
|
|
h2 {
|
|
|
|
margin-bottom: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.user-field {
|
|
|
|
padding: 10px;
|
|
|
|
margin-bottom: 10px;
|
|
|
|
border-bottom: 1px solid scale-color-diff();
|
|
|
|
|
|
|
|
.form-display {
|
2014-09-26 14:48:34 -04:00
|
|
|
width: 25%;
|
2014-09-25 11:32:08 -04:00
|
|
|
display: inline-block;
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-element {
|
|
|
|
float: left;
|
2014-09-26 14:48:34 -04:00
|
|
|
width: 25%;
|
2014-09-25 11:32:08 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.controls {
|
|
|
|
float: right;
|
|
|
|
text-align: right;
|
|
|
|
width: 20%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.clearfix {
|
|
|
|
clear: both;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|