mirror of
https://github.com/ansible/awx.git
synced 2026-01-17 04:31:21 -03:30
Merge pull request #1825 from ansible/auditPR
Fixes from UI audit with Taufique
This commit is contained in:
commit
731563210a
@ -13,22 +13,22 @@
|
||||
.ansi3 { font-weight: italic; }
|
||||
.ansi4 { text-decoration: underline; }
|
||||
.ansi9 { text-decoration: line-through; }
|
||||
.ansi30 { color: #000316; }
|
||||
.ansi31 { color: #ff5850; }
|
||||
.ansi32 { color: #60D66F; }
|
||||
.ansi33 { color: #AA5500; }
|
||||
.ansi34 { color: #0000AA; }
|
||||
.ansi35 { color: #E850A8; }
|
||||
.ansi36 { color: #00AAAA; }
|
||||
.ansi37 { color: #F5F1DE; }
|
||||
.ansi40 { background-color: #000000; }
|
||||
.ansi41 { background-color: #ff5850; }
|
||||
.ansi42 { background-color: #60D66F; }
|
||||
.ansi43 { background-color: #AA5500; }
|
||||
.ansi44 { background-color: #0000AA; }
|
||||
.ansi45 { background-color: #E850A8; }
|
||||
.ansi46 { background-color: #00AAAA; }
|
||||
.ansi47 { background-color: #F5F1DE; }
|
||||
.ansi30 { color: #161b1f; }
|
||||
.ansi31 { color: #d9534f; }
|
||||
.ansi32 { color: #5cb85c; }
|
||||
.ansi33 { color: #f0ad4e; }
|
||||
.ansi34 { color: #337ab7; }
|
||||
.ansi35 { color: #e1539e; }
|
||||
.ansi36 { color: #2dbaba; }
|
||||
.ansi37 { color: #ffffff; }
|
||||
.ansi40 { background-color: #161b1f; }
|
||||
.ansi41 { background-color: #d9534f; }
|
||||
.ansi42 { background-color: #5cb85c; }
|
||||
.ansi43 { background-color: #f0ad4e; }
|
||||
.ansi44 { background-color: #337ab7; }
|
||||
.ansi45 { background-color: #e1539e; }
|
||||
.ansi46 { background-color: #2dbaba; }
|
||||
.ansi47 { background-color: #ffffff; }
|
||||
body.ansi_back pre {
|
||||
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
|
||||
font-size: 12px;
|
||||
@ -47,4 +47,4 @@ div.ansi_back.ansi_dark {
|
||||
<pre>{{ body }}</pre>
|
||||
</body>
|
||||
</html>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 6.4 KiB |
@ -104,9 +104,9 @@ a:focus {
|
||||
}
|
||||
/* Old style TB default button with grey background */
|
||||
.btn-grey {
|
||||
color: #333;
|
||||
background-color: #ccc;
|
||||
border-color: #ccc;
|
||||
color: @default-data-txt;
|
||||
background-color: @d7grey;
|
||||
border-color: @d7grey;
|
||||
}
|
||||
|
||||
.btn-grey:hover {
|
||||
@ -146,7 +146,7 @@ a:focus {
|
||||
|
||||
/* Bring primary (blue) buttons in line with link colors */
|
||||
.btn-primary {
|
||||
background-color: @blue-link;
|
||||
background-color: @default-link;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
@ -217,7 +217,7 @@ i:active,
|
||||
height: 46px;
|
||||
padding-top: 10px;
|
||||
text-align: right;
|
||||
border-top: 1px solid #A6C9E2;
|
||||
border-top: 1px solid @default-border;
|
||||
margin-top: 5px;
|
||||
a {
|
||||
margin-right: 8px;
|
||||
@ -230,16 +230,16 @@ i:active,
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
border: 1px solid #e5e5e5;
|
||||
border: 1px solid @default-border;
|
||||
border-radius: 4px;
|
||||
box-shadow: 3px 3px 6px 0 #666;
|
||||
box-shadow: 3px 3px 6px 0 @default-dark;
|
||||
padding: 0 10px 15px 8px;
|
||||
background-color: @white;
|
||||
z-index: 200;
|
||||
}
|
||||
|
||||
#configure-schedules-title {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
border-bottom: 1px solid @default-border;
|
||||
padding-bottom: 8px;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 0;
|
||||
@ -321,7 +321,7 @@ i:active,
|
||||
|
||||
.success-badge {
|
||||
color: @default-bg;
|
||||
background-color: #5cb85c;
|
||||
background-color: @default-succ;
|
||||
}
|
||||
|
||||
.bold-text .checkbox-inline {
|
||||
@ -345,7 +345,7 @@ textarea.allowresize {
|
||||
width: 138px;
|
||||
height: 50px;
|
||||
text-align:center;
|
||||
color: #eee;
|
||||
color: @d7grey;
|
||||
background-color: @black;
|
||||
border: 1px solid @grey;
|
||||
border-radius: 6px;
|
||||
@ -410,11 +410,24 @@ textarea.allowresize {
|
||||
.popover-title {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
background-color: @default-interface-txt;
|
||||
color: @default-bg;
|
||||
font-weight: 600;
|
||||
border-bottom: none;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.popover {
|
||||
z-index: 2000;
|
||||
min-width: 200px;
|
||||
max-width: 325px;
|
||||
background-color: @default-interface-txt;
|
||||
color: @default-bg; //white
|
||||
}
|
||||
.popover.right>.arrow:after {
|
||||
border-right-color: @default-interface-txt;
|
||||
}
|
||||
.popover.left>.arrow:after {
|
||||
border-left-color: @default-interface-txt;
|
||||
}
|
||||
.popover pre {
|
||||
white-space: pre-wrap;
|
||||
@ -442,7 +455,7 @@ textarea.allowresize {
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #e3e3e3;
|
||||
border-color: @default-border;
|
||||
}
|
||||
|
||||
.help {
|
||||
@ -494,13 +507,13 @@ td.actions {
|
||||
}
|
||||
|
||||
.btn .caret {
|
||||
border-top-color: #696969;
|
||||
border-top-color: @default-icon;
|
||||
}
|
||||
|
||||
.btn-light {
|
||||
color: #333;
|
||||
background-color: #ddd;
|
||||
border-color: #ddd;
|
||||
color: @default-data-txt;
|
||||
background-color: @d7grey;
|
||||
border-color: @d7grey;
|
||||
}
|
||||
|
||||
.refresh-grp {
|
||||
@ -517,9 +530,9 @@ td.actions {
|
||||
}
|
||||
|
||||
.btn-light:hover {
|
||||
color: #333;
|
||||
background-color: #ccc;
|
||||
border-color: #ccc;
|
||||
color: @d7grey;
|
||||
background-color: @default-icon;
|
||||
border-color: @default-icon;
|
||||
}
|
||||
|
||||
/* Make a div or any element behave like pre. Use in conjunction with .mono-space */
|
||||
@ -549,7 +562,7 @@ dd {
|
||||
|
||||
#navbar-container, .main-menu {
|
||||
width: 100%;
|
||||
background-color: @black;
|
||||
background-color: @default-dark;
|
||||
}
|
||||
|
||||
.text-justify {
|
||||
@ -568,7 +581,7 @@ dd {
|
||||
|
||||
.help-link:hover,
|
||||
.ui-widget-content a.help-link:hover {
|
||||
color: @black;
|
||||
color: @default-icon;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@ -627,7 +640,7 @@ dd {
|
||||
|
||||
/* Outline required fields in Red when there is an error */
|
||||
.form-control.ng-dirty.ng-invalid, .form-control.ng-dirty.ng-invalid:focus {
|
||||
border-color: rgba(255, 88, 80, 0.8);
|
||||
border-color: @default-err;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(255, 88, 80, 0.6);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(255, 88, 80, 0.6);
|
||||
@ -635,7 +648,7 @@ dd {
|
||||
|
||||
.form-control.ng-dirty.ng-invalid + .select2 .select2-selection,
|
||||
.form-control.ng-dirty.ng-invalid + .select2 .select2-selection:focus {
|
||||
border-color: rgba(255, 88, 80, 0.8) !important;
|
||||
border-color: @default-err !important;
|
||||
outline: 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
@ -737,7 +750,7 @@ legend {
|
||||
background-color: @default-bg;
|
||||
color: #428bca;
|
||||
border-color: none;
|
||||
border: 1px solid #428bca;
|
||||
border: 1px solid @default-link;
|
||||
}
|
||||
}
|
||||
|
||||
@ -815,10 +828,10 @@ select.page-size {
|
||||
margin-bottom: 15px;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #d8d8d8;
|
||||
background-color: @default-no-items-bord;
|
||||
border: 1px solid @d7grey;
|
||||
border-radius: 6px;
|
||||
box-shadow: 3px 3px 4px 0 #808080;
|
||||
box-shadow: 3px 3px 4px 0 @default-icon;
|
||||
|
||||
.breadcrumb {
|
||||
display: inline-block;
|
||||
@ -994,11 +1007,11 @@ input[type="checkbox"].checkbox-no-label {
|
||||
.table-summary thead > tr > td,
|
||||
.table-summary tbody > tr > td,
|
||||
.table-summary tfoot > tr > td {
|
||||
border-top: 1px solid #ccc;
|
||||
border-top: 1px solid @d7grey;
|
||||
}
|
||||
|
||||
.table-summary thead > tr > th {
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-bottom: 1px solid @d7grey;
|
||||
}
|
||||
|
||||
/* Table without row borders */
|
||||
@ -1047,7 +1060,7 @@ input[type="checkbox"].checkbox-no-label {
|
||||
.active-failures-true a:active,
|
||||
.job-failed,
|
||||
.job-error {
|
||||
color: #da4f49;
|
||||
color: @default-err;
|
||||
}
|
||||
|
||||
.icon-failures-true a:hover {
|
||||
@ -1056,7 +1069,7 @@ input[type="checkbox"].checkbox-no-label {
|
||||
|
||||
.job-failures-true {
|
||||
padding-top: 5px;
|
||||
color: #da4f49;
|
||||
color: @default-err;
|
||||
}
|
||||
|
||||
.job-event-status,
|
||||
@ -1285,11 +1298,11 @@ input[type="checkbox"].checkbox-no-label {
|
||||
/* end */
|
||||
|
||||
.field-success {
|
||||
color: #5bb75b;
|
||||
color: @default-succ;
|
||||
}
|
||||
|
||||
.field-success input {
|
||||
border-color: #5bb75b;
|
||||
border-color: @default-succ;
|
||||
}
|
||||
|
||||
.field-failure {
|
||||
@ -1361,8 +1374,8 @@ input[type="checkbox"].checkbox-no-label {
|
||||
|
||||
input[readonly],
|
||||
textarea[readonly] {
|
||||
background-color: #FBFBFB;
|
||||
border: 1px solid #E0E0E0;
|
||||
background-color: @default-border;
|
||||
border: 1px solid @default-icon;
|
||||
}
|
||||
|
||||
.fa-external-link {
|
||||
@ -1376,8 +1389,8 @@ input[type="checkbox"].checkbox-no-label {
|
||||
color: @white;
|
||||
}
|
||||
.free-button:hover {
|
||||
background-color: #E64F48;
|
||||
border: 1px solid #E64F48;
|
||||
background-color: @default-err-hov;
|
||||
border: 1px solid @default-err-hov;
|
||||
color: @white;
|
||||
}
|
||||
}
|
||||
@ -1439,8 +1452,8 @@ input[type="checkbox"].checkbox-no-label {
|
||||
|
||||
.active-row {
|
||||
background-color: @white;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-right: 1px solid #ddd;
|
||||
border-bottom: 1px solid @default-tertiary-bg;
|
||||
border-right: 1px solid @default-tertiary-bg;
|
||||
}
|
||||
|
||||
.node-toggle, .node-no-toggle {
|
||||
@ -1564,7 +1577,7 @@ a.btn-disabled:hover {
|
||||
}
|
||||
|
||||
.list-header .icon-sort {
|
||||
color: #ccc;
|
||||
color: @default-icon;
|
||||
}
|
||||
|
||||
.list-header .icon-sort-down,
|
||||
@ -1603,7 +1616,7 @@ tr td button i {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
border-bottom: 1px solid @default-border;
|
||||
}
|
||||
|
||||
.modal-backdrop,
|
||||
@ -1620,8 +1633,8 @@ tr td button i {
|
||||
|
||||
.modal-header {
|
||||
padding: 15px 10px;
|
||||
color: #2078be;
|
||||
border-bottom: 1px solid #eee;
|
||||
color: @default-link;
|
||||
border-bottom: 1px solid @default-border;
|
||||
-webkit-border-top-right-radius: 3px;
|
||||
-moz-border-top-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
@ -1887,10 +1900,16 @@ tr td button i {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.list-actions {
|
||||
margin-bottom: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.nvtooltip {
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.nvtooltip td.value {
|
||||
@ -1902,7 +1921,7 @@ tr td button i {
|
||||
}
|
||||
|
||||
.stdout-panel-body {
|
||||
background-color: #e9e9e9;
|
||||
background-color: @default-list-header-bg;
|
||||
}
|
||||
|
||||
.job-stdout-panel {
|
||||
@ -2004,7 +2023,7 @@ tr td button i {
|
||||
|
||||
.form-control {
|
||||
border-color: @d7grey;
|
||||
background-color: #f6f6f6;
|
||||
background-color: @default-no-items-bord;
|
||||
color: @default-data-txt;
|
||||
transition: border-color 0.3s;
|
||||
box-shadow: none;
|
||||
@ -2012,7 +2031,7 @@ tr td button i {
|
||||
|
||||
.form-control + .select2 .select2-selection {
|
||||
border-color: @d7grey !important;
|
||||
background-color: #f6f6f6 !important;
|
||||
background-color: #fcfcfc !important;
|
||||
color: @default-data-txt !important;
|
||||
transition: border-color 0.3s !important;
|
||||
box-shadow: none !important;
|
||||
@ -2020,12 +2039,12 @@ tr td button i {
|
||||
|
||||
.form-control:active, .form-control:focus {
|
||||
box-shadow: none;
|
||||
border-color: #167ec4;
|
||||
border-color: @default-link;
|
||||
}
|
||||
|
||||
.form-control:active + .select2 .select2-selection, .form-control:focus + .select2 .select2-selection {
|
||||
box-shadow: none !important;
|
||||
border-color: #167ec4 !important;
|
||||
border-color: @default-link !important;
|
||||
}
|
||||
|
||||
.form-control.ng-dirty.ng-invalid, .form-control.ng-dirty.ng-invalid:focus {
|
||||
@ -2036,7 +2055,6 @@ tr td button i {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
|
||||
.error {
|
||||
opacity: 1;
|
||||
transition: opacity 0.2s;
|
||||
@ -2050,10 +2068,6 @@ tr td button i {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.list-actions button, .list-actions .checkbox-inline {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* Overwrite select2 base styles for single/multiple selects so that match up with other form elements. Also overwrite disabled styles. */
|
||||
.select2-container--disabled,.select2-container--disabled .select2-selection--single,.select2-container--disabled .select2-selection--multiple {
|
||||
cursor: not-allowed !important;
|
||||
@ -2065,13 +2079,13 @@ tr td button i {
|
||||
|
||||
.select2-container--default .select2-selection--single {
|
||||
background-color: @field-secondary-bg;
|
||||
border: 1px solid #aaa;
|
||||
border: 1px solid @d7grey;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple {
|
||||
background-color: @field-secondary-bg;
|
||||
border: 1px solid #aaa;
|
||||
border: 1px solid @d7grey;
|
||||
border-radius: 4px;
|
||||
cursor: text;
|
||||
}
|
||||
@ -2091,7 +2105,7 @@ input[type=file]:focus, input[type=radio]:focus, input[type=checkbox]:focus {
|
||||
}
|
||||
|
||||
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
|
||||
border-color: #5CB85C;
|
||||
border-color: @default-succ;
|
||||
}
|
||||
|
||||
a {
|
||||
@ -2105,3 +2119,48 @@ a:hover {
|
||||
.form-control:active, .form-control:focus {
|
||||
border-color: @default-link;
|
||||
}
|
||||
|
||||
.nv-axislabel {
|
||||
font-weight: bold !important;
|
||||
fill: @db-graph-axis-label !important;
|
||||
font-family: 'Open Sans' !important;
|
||||
}
|
||||
|
||||
.nv-axis text {
|
||||
fill: @db-graph-axis-label !important; //rgb(169, 178, 189);
|
||||
font-family: 'Open Sans' !important;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
||||
cursor: default;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
margin-top: 5px;
|
||||
padding-left: 0px;
|
||||
border-left-width: 0px;
|
||||
border-bottom-width: 0px;
|
||||
border-top-width: 0px;
|
||||
padding-right: 10px;
|
||||
border-right-width: 0px;
|
||||
background-color: @default-link;
|
||||
color: @default-bg;
|
||||
border-radius: 5px;
|
||||
line-height: 21px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-right: 8px !important;
|
||||
padding: 0 6px;
|
||||
color: @default-bg !important;
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
background-color: @default-link;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
||||
background-color: @default-err;
|
||||
}
|
||||
|
||||
@ -129,13 +129,12 @@
|
||||
|
||||
.Form-tab.is-selected {
|
||||
color: @btn-txt-sel;
|
||||
background-color: @btn-bg-sel;
|
||||
border-color: @btn-bord-sel;
|
||||
background-color: @default-icon-hov;
|
||||
border-color: @default-icon-hov;
|
||||
}
|
||||
|
||||
.Form-tab--disabled {
|
||||
opacity: 0.4;
|
||||
cursor: not-allowed !important;
|
||||
}
|
||||
|
||||
.Form-tab--disabled:hover {
|
||||
@ -162,14 +161,21 @@
|
||||
|
||||
.Form-subForm {
|
||||
width: 100%;
|
||||
border-left: 5px solid @default-border;
|
||||
margin-left: -20px;
|
||||
padding-left: 15px;
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.Form-formGroup {
|
||||
float: left;
|
||||
}
|
||||
.Form-subForm:before {
|
||||
content: '';
|
||||
left: -20px;
|
||||
position: absolute;
|
||||
width: 5px;
|
||||
background-color: @default-border;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.Form-subForm--title {
|
||||
@ -273,7 +279,7 @@
|
||||
}
|
||||
|
||||
.select2-container--default .select2-results__option[aria-selected=true]{
|
||||
background-color: @field-border !important;
|
||||
background-color: @default-white-button-bord !important;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-selection--single .select2-selection__arrow b{
|
||||
@ -464,7 +470,7 @@ input[type='radio']:checked:before {
|
||||
}
|
||||
|
||||
.Form-formGroup--singleColumn {
|
||||
width: 100%;
|
||||
width: 100% !important;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
@ -474,10 +480,15 @@ input[type='radio']:checked:before {
|
||||
color: @default-interface-txt;
|
||||
}
|
||||
|
||||
.Form-formGroup {
|
||||
max-width: 33%;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 650px) {
|
||||
.Form-formGroup {
|
||||
flex: 1 0 auto;
|
||||
margin-bottom: 25px;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
padding-right: 50px;
|
||||
}
|
||||
@ -487,6 +498,7 @@ input[type='radio']:checked:before {
|
||||
.Form-formGroup {
|
||||
flex: 1 0 auto;
|
||||
margin-bottom: 25px;
|
||||
max-width: 50%;
|
||||
width: 50%;
|
||||
padding-right: 50px;
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
@import "awx/ui/client/src/shared/branding/colors.default.less";
|
||||
|
||||
table.ui-datepicker-calendar {
|
||||
background-color: @well;
|
||||
@ -173,7 +174,7 @@ table.ui-datepicker-calendar {
|
||||
}
|
||||
|
||||
.dropdown-menu>li>a {
|
||||
color: @black;
|
||||
color: @default-interface-txt
|
||||
}
|
||||
|
||||
.pagination .active {
|
||||
|
||||
@ -47,6 +47,10 @@ table, tbody {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.List-tableHeader:not([ng-click]) {
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
.List-tableHeaderSort {
|
||||
color: @list-header-icon;
|
||||
}
|
||||
@ -181,15 +185,10 @@ table, tbody {
|
||||
.List-actionHolder {
|
||||
justify-content: flex-end;
|
||||
display: flex;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
.List-actions {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.List-auxAction + .List-actions {
|
||||
margin-left: 10px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.List-auxAction {
|
||||
@ -313,7 +312,7 @@ table, tbody {
|
||||
height: 200px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid @list-no-items-bord;
|
||||
background-color: @list-no-items-bg;
|
||||
background-color: @default-no-items-bord;
|
||||
color: @list-no-items-txt;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
@ -90,8 +90,10 @@
|
||||
font-weight: bold;
|
||||
border-radius: 50%;
|
||||
background-color: @default-list-header-bg;
|
||||
padding: 2px 6px;
|
||||
padding: 1px 8px;
|
||||
margin-right: 10px;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
}
|
||||
|
||||
.AddPermissions-separator {
|
||||
@ -122,9 +124,7 @@
|
||||
}
|
||||
|
||||
.AddPermissions-roleType {
|
||||
border-radius: 5px;
|
||||
padding: 0px 6px;
|
||||
border: 1px solid @d7grey;
|
||||
font-size: 10px;
|
||||
color: @default-interface-txt;
|
||||
text-transform: uppercase;
|
||||
@ -143,7 +143,7 @@
|
||||
|
||||
.AddPermissions-roleRemove {
|
||||
border-radius: 50%;
|
||||
padding: 5px 3px;
|
||||
padding: 3px 4.5px;
|
||||
line-height: 11px;
|
||||
color: @default-icon;
|
||||
background-color: @default-tertiary-bg;
|
||||
@ -187,11 +187,15 @@
|
||||
|
||||
.AddPermissions-keyPane {
|
||||
margin: 20px 0;
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
width: 100%;
|
||||
padding: 15px;
|
||||
padding-bottom: 0px;
|
||||
border: 1px solid @d7grey;
|
||||
color: @default-interface-txt;
|
||||
padding-top: 10px;
|
||||
margin-bottom: 15px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid @login-notice-border;
|
||||
background-color: @login-notice-bg;
|
||||
color: @login-notice-text;
|
||||
}
|
||||
|
||||
.AddPermissions-keyRow {
|
||||
|
||||
@ -75,18 +75,19 @@ export default ['$rootScope', '$scope', 'GetBasePath', 'Rest', '$q', 'Wait', 'Pr
|
||||
});
|
||||
} else {
|
||||
// selected, so add to the allSelected list
|
||||
var getName = function(val) {
|
||||
if (val.type === "user") {
|
||||
return (val.first_name &&
|
||||
val.last_name) ?
|
||||
val.first_name + " " +
|
||||
val.last_name :
|
||||
val.username;
|
||||
} else {
|
||||
return val.name;
|
||||
}
|
||||
};
|
||||
scope.allSelected.push({
|
||||
name: function() {
|
||||
if (val.type === "user") {
|
||||
return (val.first_name &&
|
||||
val.last_name) ?
|
||||
val.first_name + " " +
|
||||
val.last_name :
|
||||
val.username;
|
||||
} else {
|
||||
return val .name;
|
||||
}
|
||||
},
|
||||
name: getName(val),
|
||||
type: val.type,
|
||||
roles: [],
|
||||
id: val.id
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<div class="AddPermissions-body">
|
||||
<div class="AddPermissions-directions">
|
||||
<span class="AddPermissions-directionNumber">
|
||||
1.
|
||||
1
|
||||
</span>
|
||||
Please select Users / Teams from the lists below.
|
||||
</div>
|
||||
@ -55,7 +55,7 @@
|
||||
<div class="AddPermissions-directions"
|
||||
ng-show="allSelected && allSelected.length > 0">
|
||||
<span class="AddPermissions-directionNumber">
|
||||
2.
|
||||
2
|
||||
</span>
|
||||
Please assign roles to the selected users/teams
|
||||
<div class="AddPermissions-keyToggle"
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.RoleList-tagContainer {
|
||||
@ -16,11 +17,10 @@
|
||||
border-radius: 5px;
|
||||
padding: 2px 10px;
|
||||
margin: 4px 0px;
|
||||
border: 1px solid @d7grey;
|
||||
font-size: 12px;
|
||||
color: @default-interface-txt;
|
||||
color: @default-bg;
|
||||
text-transform: uppercase;
|
||||
background-color: @default-bg;
|
||||
background-color: @default-link;
|
||||
margin-right: 5px;
|
||||
max-width: 100%;
|
||||
white-space: nowrap;
|
||||
@ -30,21 +30,20 @@
|
||||
|
||||
.RoleList-tag--deletable {
|
||||
margin-right: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-right: 0;
|
||||
max-wdith: ~"calc(100% - 23px)";
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.RoleList-deleteContainer {
|
||||
border: 1px solid @d7grey;
|
||||
border-left-color: @default-bg;
|
||||
background-color: @default-bg;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
background-color: @default-link;
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
color: @default-bg;
|
||||
padding: 0 5px;
|
||||
margin: 4px 0px;
|
||||
margin-right: 5px;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
@ -52,7 +51,7 @@
|
||||
|
||||
.RoleList-tagDelete {
|
||||
font-size: 13px;
|
||||
color: @default-icon;
|
||||
color: @default-bg;
|
||||
}
|
||||
|
||||
.RoleList-name {
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<div class="RoleList-tagContainer"
|
||||
ng-repeat="role in roles">
|
||||
<div class="RoleList-tag"
|
||||
ng-class="{'RoleList-tag--deletable': role.explicit}">
|
||||
<span class="RoleList-name">{{ role.name }}</span>
|
||||
</div>
|
||||
<div class="RoleList-deleteContainer"
|
||||
ng-if="role.explicit"
|
||||
ng-click="deletePermission(permission.id, role.roleId, permission.username, role.name, role.resourceName)">
|
||||
<i ng-if="role.explicit"
|
||||
class="fa fa-times RoleList-tagDelete"></i>
|
||||
</div>
|
||||
<div class="RoleList-tag"
|
||||
ng-class="{'RoleList-tag--deletable': role.explicit}">
|
||||
<span class="RoleList-name">{{ role.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
.ActivityStream-refreshButton{
|
||||
height: 30px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.ActivityStream-eventColumnHeader:hover{
|
||||
cursor: auto;
|
||||
}
|
||||
@ -25,9 +25,13 @@
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.StreamDetail-actions{
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.StreamDetail-changes {
|
||||
border: none;
|
||||
background-color: @default-secondary-bg;
|
||||
background-color: @default-no-items-bord;
|
||||
margin-bottom: 0;
|
||||
max-height: 200px;
|
||||
overflow: scroll;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
</div>
|
||||
<div ng-show="operation" class="StreamDetail-inlineRow">
|
||||
<div class="StreamDetail-rowTitle StreamDetail-inlineRowTitle">ACTION</div>
|
||||
<div class="StreamDetail-inlineRowData" ng-bind="operation"></div>
|
||||
<div class="StreamDetail-inlineRowData StreamDetail-actions" ng-bind="operation"></div>
|
||||
</div>
|
||||
<div ng-show="changes">
|
||||
<div class="StreamDetail-rowTitle StreamDetail-changesRowTitle">CHANGES</div>
|
||||
@ -22,7 +22,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="Modal-footer">
|
||||
<a href="#" data-target="#stream-detail-modal" data-dismiss="modal" id="action_cancel_btn" class="btn Modal-defaultButton Modal-footerButton StreamDetail-actionButton">OK</a>
|
||||
<a href="#" data-target="#stream-detail-modal" data-dismiss="modal" id="action_cancel_btn" class="btn btn-primary StreamDetail-actionButton">OK</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -55,7 +55,6 @@ import search from './search/main';
|
||||
import {ProjectsList, ProjectsAdd, ProjectsEdit} from './controllers/Projects';
|
||||
import OrganizationsList from './organizations/list/organizations-list.controller';
|
||||
import OrganizationsAdd from './organizations/add/organizations-add.controller';
|
||||
import {AdminsList} from './controllers/Admins';
|
||||
import {UsersList, UsersAdd, UsersEdit} from './controllers/Users';
|
||||
import {TeamsList, TeamsAdd, TeamsEdit} from './controllers/Teams';
|
||||
|
||||
@ -126,7 +125,6 @@ var tower = angular.module('Tower', [
|
||||
'SearchHelper',
|
||||
'PaginationHelpers',
|
||||
'RefreshHelper',
|
||||
'AdminListDefinition',
|
||||
'AWDirectives',
|
||||
'InventoriesListDefinition',
|
||||
'InventoryFormDefinition',
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
/*************************************************
|
||||
* Copyright (c) 2015 Ansible, Inc.
|
||||
*
|
||||
* All Rights Reserved
|
||||
*************************************************/
|
||||
|
||||
/**
|
||||
* @ngdoc overview
|
||||
* @name controllers
|
||||
* @description These are all the controllers that are used throughout the application
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* @ngdoc function
|
||||
* @name controllers.function:Admins
|
||||
* @description This controller's for administrators
|
||||
* Admins.js
|
||||
*
|
||||
* Controller functions for ading Admins to an Organization.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
export function AdminsList($scope, $rootScope, $location, $log, $stateParams, Rest, Alert, AdminList, GenerateList,
|
||||
Prompt, SearchInit, PaginateInit, ReturnToCaller, GetBasePath, SelectionInit) {
|
||||
|
||||
var list = AdminList,
|
||||
defaultUrl = GetBasePath('organizations') + $stateParams.organization_id + '/users/',
|
||||
generator = GenerateList,
|
||||
mode = 'select',
|
||||
url = GetBasePath('organizations') + $stateParams.organization_id + '/admins/';
|
||||
|
||||
generator.inject(AdminList, { mode: mode, scope: $scope });
|
||||
|
||||
SelectionInit({ scope: $scope, list: list, url: url, returnToCaller: 1 });
|
||||
|
||||
SearchInit({ scope: $scope, set: 'admins', list: list, url: defaultUrl });
|
||||
|
||||
PaginateInit({ scope: $scope, list: list, url: defaultUrl });
|
||||
|
||||
$scope.search(list.iterator);
|
||||
}
|
||||
|
||||
AdminsList.$inject = ['$scope', '$rootScope', '$location', '$log', '$stateParams', 'Rest', 'Alert', 'AdminList', 'generateList',
|
||||
'Prompt', 'SearchInit', 'PaginateInit', 'ReturnToCaller', 'GetBasePath', 'SelectionInit'
|
||||
];
|
||||
@ -479,7 +479,7 @@ export function ProjectsAdd(Refresh, $scope, $rootScope, $compile, $location, $l
|
||||
url: $scope.current_url
|
||||
});
|
||||
|
||||
$state.go("^");
|
||||
$state.go('projects.edit', {id: data.id}, {reload: true});
|
||||
})
|
||||
.error(function (data, status) {
|
||||
Wait('stop');
|
||||
|
||||
@ -28,20 +28,6 @@
|
||||
transition: background-color 0.2s, border-color 0.2s;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 710px) {
|
||||
.DashboardCounts {
|
||||
margin-bottom: -15px;
|
||||
}
|
||||
|
||||
.DashboardCounts-buttonStyle {
|
||||
margin-bottom: 15px;
|
||||
width: 33%;
|
||||
flex-basis: ~"calc(33% - 7px)";
|
||||
max-width: ~"calc(33% - 7px)";
|
||||
height: 96px;
|
||||
}
|
||||
}
|
||||
|
||||
.DashboardCounts-buttonStyle:hover {
|
||||
background-color: @db-count-succ;
|
||||
border-color: @db-count-succ;
|
||||
@ -80,3 +66,23 @@
|
||||
text-transform: uppercase;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 710px) {
|
||||
.DashboardCounts {
|
||||
margin-bottom: -15px;
|
||||
}
|
||||
|
||||
.DashboardCounts-buttonStyle {
|
||||
margin-bottom: 15px;
|
||||
width: 33%;
|
||||
flex-basis: ~"calc(33% - 7px)";
|
||||
max-width: ~"calc(33% - 7px)";
|
||||
height: 96px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 360px) {
|
||||
.DashboardCounts-label {
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ export default
|
||||
{
|
||||
url: "/#/projects/?status=failed",
|
||||
number: scope.data.projects.failed,
|
||||
label: "Projects Sync Failures",
|
||||
label: "Project Sync Failures",
|
||||
isFailureCount: true
|
||||
}
|
||||
], function(val) { return addFailureToCount(val); });
|
||||
|
||||
@ -28,6 +28,8 @@
|
||||
color: @default-interface-txt;
|
||||
white-space: nowrap;
|
||||
margin-right: auto;
|
||||
margin-bottom: 20px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-graphSection {
|
||||
@ -70,21 +72,11 @@
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.nv-axislabel {
|
||||
font-weight: bold !important;
|
||||
fill: @db-graph-axis-label !important;
|
||||
font-family: 'Open Sans' !important;
|
||||
}
|
||||
|
||||
.nv-axis text {
|
||||
fill: @db-graph-axis-label !important; //rgb(169, 178, 189);
|
||||
font-family: 'Open Sans' !important;
|
||||
}
|
||||
|
||||
.DashboardGraphs-graphToolbar {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin-right: 60px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filterDropdownText,
|
||||
@ -128,20 +120,14 @@
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.DashboardGraphs-periodDropdown{
|
||||
.DashboardGraphs-periodDropdown,
|
||||
.DashboardGraphs-jobTypeDropdown,
|
||||
.DashboardGraphs-statusDropdown {
|
||||
padding-top:5px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-jobTypeDropdown{
|
||||
padding-top:5px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filterDropdownItems--period {
|
||||
margin-left: -42px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filterDropdownItems--jobType {
|
||||
margin-left: -84px;
|
||||
.DashboardGraphs-filterDropdownItems {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.DashboardGraphs-statusFilters{
|
||||
@ -178,3 +164,36 @@
|
||||
.DashboardGraphs-statusFilterIcon{
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filteringDropdowns {
|
||||
display: inherit;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filterDropdownItems {
|
||||
li > a {
|
||||
color: @default-interface-txt;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
.DashboardGraphs-graphToolbar {
|
||||
width: 100%;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filteringDropdowns {
|
||||
float: left;
|
||||
width: 100%;
|
||||
margin-left: -10px;
|
||||
}
|
||||
|
||||
.DashboardGraphs-filterLabel {
|
||||
width: 50%;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.DashboardGraphs-periodDropdown {
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,74 +4,83 @@
|
||||
JOB STATUS
|
||||
</h3>
|
||||
<div class="DashboardGraphs-graphToolbar" ng-show="!hostStatusSelected">
|
||||
<div class="DashboardGraphs-filterLabel">Period</div>
|
||||
<div class="DashboardGraphs-periodDropdown">
|
||||
<a id="period-dropdown" role="button"
|
||||
data-toggle="dropdown"
|
||||
data-target="#"
|
||||
href="/page.html"
|
||||
class="DashboardGraphs-filterDropdownText">
|
||||
Past Month <i class="fa fa-chevron-down DashboardGraphs-filterIcon"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--period" role="menu" aria-labelledby="period-dropdown">
|
||||
<li>
|
||||
<a class="n" id="day" >Past 24 Hours </a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="n" id="week">Past Week</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="n" id="month">Past Month</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="DashboardGraphs-filteringDropdowns">
|
||||
<div class="DashboardGraphs-filterLabel">Period</div>
|
||||
<div class="DashboardGraphs-periodDropdown">
|
||||
<a id="period-dropdown" role="button"
|
||||
data-toggle="dropdown"
|
||||
data-target="#"
|
||||
href="/page.html"
|
||||
class="DashboardGraphs-filterDropdownText">
|
||||
Past Month <i class="fa fa-chevron-down DashboardGraphs-filterIcon"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--period" role="menu" aria-labelledby="period-dropdown">
|
||||
<li>
|
||||
<a class="n" id="day" >Past 24 Hours </a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="n" id="week">Past Week</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="n" id="month">Past Month</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="DashboardGraphs-filterLabel">Job Type</div>
|
||||
<div class="DashboardGraphs-jobTypeDropdown">
|
||||
<div class="DashboardGraphs-filteringDropdowns">
|
||||
<div class="DashboardGraphs-filterLabel">Job Type</div>
|
||||
<div class="DashboardGraphs-jobTypeDropdown">
|
||||
|
||||
<a id="type-dropdown" role="button" data-toggle="dropdown" data-target="#" class="DashboardGraphs-filterDropdownText"
|
||||
href="/page.html">
|
||||
All <i class="fa fa-chevron-down DashboardGraphs-filterIcon"></i>
|
||||
<a id="type-dropdown" role="button" data-toggle="dropdown" data-target="#" class="DashboardGraphs-filterDropdownText"
|
||||
href="/page.html">
|
||||
All <i class="fa fa-chevron-down DashboardGraphs-filterIcon"></i>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--jobType" role="menu" aria-labelledby="type-dropdown">
|
||||
<li>
|
||||
<a class="m" id="all">All</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="inv_sync">Inventory Sync</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="scm_update">SCM Update</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="playbook_run">Playbook Run</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="DashboardGraphs-filteringDropdowns">
|
||||
<div class="DashboardGraphs-filterLabel">View</div>
|
||||
<div class="DashboardGraphs-statusDropdown">
|
||||
<a id="status-dropdown" role="button"
|
||||
data-toggle="dropdown"
|
||||
data-target="#"
|
||||
href="/page.html"
|
||||
class="DashboardGraphs-filterDropdownText">
|
||||
All
|
||||
<i class="fa fa-chevron-down
|
||||
DashboardGraphs-filterIcon">
|
||||
</i>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--jobType" role="menu" aria-labelledby="type-dropdown">
|
||||
<li>
|
||||
<a class="m" id="all">All</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="inv_sync">Inventory Sync</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="scm_update">SCM Update</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="m" id="playbook_run">Playbook Run</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="DashboardGraphs-filterLabel">View</div>
|
||||
<div class="DashboardGraphs-periodDropdown">
|
||||
<a id="status-dropdown" role="button"
|
||||
data-toggle="dropdown"
|
||||
data-target="#"
|
||||
href="/page.html"
|
||||
class="DashboardGraphs-filterDropdownText">
|
||||
All <i class="fa fa-chevron-down DashboardGraphs-filterIcon"></i>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--period" role="menu" aria-labelledby="status-dropdown">
|
||||
<li>
|
||||
<a class="o" id="both" >All</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="o" id="failed">Successful</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="o" id="successful">Failed</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="dropdown-menu DashboardGraphs-filterDropdownItems
|
||||
DashboardGraphs-filterDropdownItems--status" role="menu" aria-labelledby="status-dropdown">
|
||||
<li>
|
||||
<a class="o" id="both" >All</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="o" id="failed">Successful</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="o" id="successful">Failed</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -124,7 +124,8 @@ function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustG
|
||||
// when the Period drop down filter is used, create a new graph based on the
|
||||
$('.n').on("click", function(){
|
||||
period = this.getAttribute("id");
|
||||
$('#period-dropdown').replaceWith("<a id=\"period-dropdown\" class=\"DashboardGraphs-filterDropdownText\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
$('#period-dropdown')
|
||||
.replaceWith("<a id=\"period-dropdown\" class=\"DashboardGraphs-filterDropdownText DashboardGraphs-filterDropdownItems--period\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
"<i class=\"fa fa-chevron-down DashboardGraphs-filterIcon\"></i>\n");
|
||||
scope.$parent.isFailed = true;
|
||||
scope.$parent.isSuccessful = true;
|
||||
@ -134,7 +135,7 @@ function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustG
|
||||
//On click, update with new data
|
||||
$('.m').on("click", function(){
|
||||
job_type = this.getAttribute("id");
|
||||
$('#type-dropdown').replaceWith("<a id=\"type-dropdown\" class=\"DashboardGraphs-filterDropdownText\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
$('#type-dropdown').replaceWith("<a id=\"type-dropdown\" class=\"DashboardGraphs-filterDropdownText DashboardGraphs-filterDropdownItems--jobType\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
"<i class=\"fa fa-chevron-down DashboardGraphs-filterIcon\"></i>\n");
|
||||
scope.$parent.isFailed = true;
|
||||
scope.$parent.isSuccessful = true;
|
||||
@ -143,7 +144,7 @@ function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustG
|
||||
|
||||
$('.o').on('click', function() {
|
||||
var job_status = this.getAttribute('id');
|
||||
$('#status-dropdown').replaceWith("<a id=\"status-dropdown\" class=\"DashboardGraphs-filterDropdownText\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
$('#status-dropdown').replaceWith("<a id=\"status-dropdown\" class=\"DashboardGraphs-filterDropdownText DashboardGraphs-filterDropdownText--status\" role=\"button\" data-toggle=\"dropdown\" data-target=\"#\" href=\"/page.html\">"+this.text+
|
||||
"<i class=\"fa fa-chevron-down DashboardGraphs-filterIcon\"></i>\n");
|
||||
scope.$broadcast("jobStatusChange", job_status);
|
||||
});
|
||||
|
||||
@ -57,7 +57,7 @@ export default function(){
|
||||
default: '---',
|
||||
awPopOver: "<p>Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
|
||||
@ -15,7 +15,7 @@ export default function(){
|
||||
index: false,
|
||||
hover: true,
|
||||
well: true,
|
||||
emptyListText: 'NO ACTIVE FAILURES FOUND',
|
||||
emptyListText: 'NO HOSTS FOUND',
|
||||
fields: {
|
||||
status: {
|
||||
basePath: 'unified_jobs',
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
color: @btn-txt;
|
||||
background-color: @btn-bg;
|
||||
font-size: 12px;
|
||||
border: 1px solid @btn-bord;
|
||||
border: 1px solid @default-icon-hov;
|
||||
border-radius: 5px;
|
||||
margin-right: 15px;
|
||||
margin-top: 10px;
|
||||
@ -145,11 +145,32 @@
|
||||
}
|
||||
|
||||
.DashboardList-actionButton--edit:hover {
|
||||
background-color: #337AB7;
|
||||
background-color: @default-link;
|
||||
color: @default-bg;
|
||||
border: 1px solid #337AB7;
|
||||
border: 1px solid @default-link;
|
||||
}
|
||||
|
||||
.DashboardList-noJobs {
|
||||
color: @list-empty-txt;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 360px) {
|
||||
.DashboardList-headerText {
|
||||
white-space: normal;
|
||||
line-height: 22px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.DashboardList-timeCell {
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 540px) {
|
||||
.DashboardList-container {
|
||||
th {
|
||||
width: 25%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,10 +10,8 @@
|
||||
<div class="DashboardList-container">
|
||||
<table class="List-table">
|
||||
<tr class="List-tableHeaderRow">
|
||||
<th class="List-tableHeader DashboardList-tableHeader--name"
|
||||
ng-click="sort('job_templates','name')">
|
||||
<th class="List-tableHeader DashboardList-tableHeader--name">
|
||||
Title
|
||||
<i class="DashboardList-tableHeaderIcon fa fa-sort-up"></i>
|
||||
</th>
|
||||
<th class="List-tableHeader DashboardList-tableHeader--activity">
|
||||
Activity
|
||||
@ -53,7 +51,7 @@
|
||||
</h3>
|
||||
</div>
|
||||
<div class="DashboardList-container">
|
||||
<p class="DashboardList-noJobs">It doesn't seem like you have used any currently available job templates.<br />
|
||||
<p class="DashboardList-noJobs">No job templates were recently used.<br />
|
||||
You can create a job template <a href="#/job_templates/add">here</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<div class="DashboardList-container">
|
||||
<table class="List-table">
|
||||
<tr>
|
||||
<th class="List-tableHeader DashboardList-tableHeader--name" ng-click="sort('job_templates','name')">Title <i class="DashboardList-tableHeaderIcon fa fa-sort-up"></i></th>
|
||||
<th class="List-tableHeader DashboardList-tableHeader--name">Title</th>
|
||||
<th class="List-tableHeader DashboardList-tableHeader--time">Time</th>
|
||||
</tr>
|
||||
<tr class="List-tableRow"
|
||||
@ -38,10 +38,10 @@
|
||||
<div class="DashboardList" ng-show="noJobs">
|
||||
<div class="DashboardList-header">
|
||||
<h3 class="DashboardList-headerText">
|
||||
RECENT JOB RUNS
|
||||
RECENTLY RUN JOBS
|
||||
</h3>
|
||||
</div>
|
||||
<div class="DashboardList-container">
|
||||
<p class="DashboardList-noJobs">It doesn't seem like you have any recent job runs.</p>
|
||||
<p class="DashboardList-noJobs">No jobs were recently run.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
.Footer {
|
||||
height: 40px;
|
||||
background-color: @default-no-items-bord;
|
||||
background-color: @default-secondary-bg;
|
||||
color: @default-interface-txt;
|
||||
width: 100%;
|
||||
z-index: 1040;
|
||||
|
||||
@ -49,7 +49,7 @@ export default
|
||||
"<p>Enter variables using either JSON or YAML syntax. Use the " +
|
||||
"radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br />  \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
@ -171,7 +171,7 @@ export default
|
||||
dataPlacement: 'right',
|
||||
awPopOver: "<p>Provide key/value pairs using either YAML or JSON.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n",
|
||||
dataContainer: 'body'
|
||||
@ -193,7 +193,7 @@ export default
|
||||
"view ec2.ini in the Ansible github repo.</a></p>" +
|
||||
"<p>Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
@ -219,7 +219,7 @@ export default
|
||||
"view vmware.ini in the Ansible github repo.</a></p>" +
|
||||
"<p>Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
|
||||
@ -64,7 +64,7 @@ export default
|
||||
"default": "---",
|
||||
awPopOver: "<p>Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
@ -87,7 +87,7 @@ export default
|
||||
},
|
||||
cancel: {
|
||||
ngClick: 'formCancel()',
|
||||
ngDisabled: true
|
||||
ngDisabled: true
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ export default
|
||||
"default": "---",
|
||||
awPopOver: "<p>Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
|
||||
@ -248,7 +248,7 @@ export default
|
||||
awPopOver: "<p>Pass extra command line variables to the playbook. This is the -e or --extra-vars command line parameter " +
|
||||
"for ansible-playbook. Provide key/value pairs using either YAML or JSON.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n",
|
||||
dataTitle: 'Extra Variables',
|
||||
|
||||
@ -78,7 +78,7 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition'])
|
||||
},
|
||||
base_dir: {
|
||||
label: 'Project Base Path',
|
||||
type: 'textarea',
|
||||
type: 'text',
|
||||
//"class": 'col-lg-6',
|
||||
showonly: true,
|
||||
ngShow: "scm_type.value == 'manual' " ,
|
||||
@ -206,7 +206,7 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition'])
|
||||
type: 'number',
|
||||
integer: true,
|
||||
min: 0,
|
||||
ngShow: "scm_update_on_launch",
|
||||
ngShow: "scm_update_on_launch && projectSelected",
|
||||
spinner: true,
|
||||
"default": '0',
|
||||
addRequired: false,
|
||||
|
||||
@ -496,7 +496,7 @@ function($compile, Rest, GetBasePath, TextareaResize,CreateDialog, GenerateForm,
|
||||
"<p>Extra variables are passed as command line variables to the playbook run. It is equivalent to the -e or --extra-vars " +
|
||||
"command line parameter for ansible-playbook. Provide key/value pairs using either YAML or JSON.</p>" +
|
||||
"JSON:<br />\n" +
|
||||
"<blockquote>{<br />\"somevar\": \"somevalue\",<br />\"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"<blockquote>{<br /> \"somevar\": \"somevalue\",<br /> \"password\": \"magic\"<br /> }</blockquote>\n" +
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n";
|
||||
|
||||
|
||||
@ -10,9 +10,19 @@
|
||||
.License-container{
|
||||
.OnePlusTwo-container;
|
||||
}
|
||||
|
||||
.License-container--missing {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.License-field--label{
|
||||
.OnePlusTwo-left--detailsLabel;
|
||||
}
|
||||
.License-fileName{
|
||||
padding-left: 20px;
|
||||
}
|
||||
.License-management .CodeMirror-scroll{
|
||||
min-height: 140px;
|
||||
}
|
||||
@ -30,15 +40,28 @@
|
||||
.License-submit--success.ng-hide{
|
||||
opacity: 0;
|
||||
}
|
||||
.License-eula textarea{
|
||||
|
||||
.License-eulaNotice{
|
||||
font-size: 12px;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
max-height: 129px;
|
||||
padding: 15px;
|
||||
padding-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid @login-notice-border;
|
||||
background-color: @login-notice-bg;
|
||||
color: @login-notice-text;
|
||||
overflow-y: scroll;
|
||||
overflow-x: visible;
|
||||
}
|
||||
|
||||
.License-field label{
|
||||
width: 155px;
|
||||
}
|
||||
.License-field--content{
|
||||
.OnePlusTwo-left--detailsContent;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
.License-field{
|
||||
.OnePlusTwo-left--detailsRow;
|
||||
@ -48,9 +71,11 @@
|
||||
}
|
||||
.License-greenText{
|
||||
color: @submit-button-bg;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.License-redText{
|
||||
color: #d9534f;
|
||||
color: @default-err;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.License-fields{
|
||||
.OnePlusTwo-left--details;
|
||||
@ -68,14 +93,15 @@
|
||||
height: auto;
|
||||
}
|
||||
.License-downloadLicenseButton{
|
||||
background-color: @default-link !important;
|
||||
margin-bottom: 10px;
|
||||
color:@default-bg;
|
||||
}
|
||||
.License-downloadLicenseButton:hover{
|
||||
background-color: @default-link-hov !important;
|
||||
color:@default-bg !important;
|
||||
}
|
||||
.License-downloadLicenseButton:focus{
|
||||
background-color: @default-link-hov !important;
|
||||
color:@default-bg !important;
|
||||
}
|
||||
.License-submit--container{
|
||||
@ -108,3 +134,7 @@
|
||||
border-top-right-radius: 4px !important;
|
||||
border-bottom-right-radius: 4px !important;
|
||||
}
|
||||
|
||||
.License-detailsGroup {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@ -73,7 +73,7 @@ export default
|
||||
return moment().add(days, 'days').calendar();
|
||||
};
|
||||
var init = function(){
|
||||
$scope.fileName = "Please choose a file...";
|
||||
$scope.fileName = "No file selected.";
|
||||
$scope.title = $rootScope.licenseMissing ? "Tower License" : "License Management";
|
||||
Wait('start');
|
||||
CheckLicense.get()
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<div class="License-container">
|
||||
<div class="License-container"
|
||||
ng-class="{'License-container--missing': licenseMissing}">
|
||||
<div class="License-details" ng-if="!licenseMissing">
|
||||
<div class="Panel">
|
||||
<div class="License-titleText">Details</div>
|
||||
@ -6,32 +7,32 @@
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">License</div>
|
||||
<div class="License-field--content">
|
||||
<span ng-show='valid'><i class="fa fa-circle License-greenText"></i> Valid</span>
|
||||
<span ng-show='invalid'><i class="fa fa-circle License-redText"></i> Invalid</span>
|
||||
<span ng-show='valid'><i class="fa fa-circle License-greenText"></i>Valid</span>
|
||||
<span ng-show='invalid'><i class="fa fa-circle License-redText"></i>Invalid</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">Version</div>
|
||||
<div class="License-field--content">
|
||||
{{license.version || "No result found"}}
|
||||
{{license.version}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">License Type</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.license_type || "No result found"}}
|
||||
{{license.license_info.license_type}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">Subscription</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.subscription_name || "No result found"}}
|
||||
{{license.license_info.subscription_name}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">License Key</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.license_key || "No result found"}}
|
||||
{{license.license_info.license_key}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
@ -49,24 +50,24 @@
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">Hosts Available</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.available_instances || "No result found"}}
|
||||
{{license.license_info.available_instances}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field">
|
||||
<div class="License-field--label">Hosts Used</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.current_instances || "No result found"}}
|
||||
{{license.license_info.current_instances}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-field License-greenText">
|
||||
<div class="License-field--label">Hosts Remaining</div>
|
||||
<div class="License-field--content">
|
||||
{{license.license_info.free_instances || "No result found"}}
|
||||
{{license.license_info.free_instances}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-upgradeText">If you are ready to upgrade, please contact us by clicking the button below</div>
|
||||
<a href="https://www.ansible.com/renew" target="_blank"><button class="btn btn-default">Upgrade</button></a>
|
||||
<a href="https://www.ansible.com/renew" target="_blank"><button class="btn btn-primary">Upgrade</button></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-management" ng-class="{'License-management--missingLicense' : licenseMissing}">
|
||||
@ -75,20 +76,20 @@
|
||||
<div class="License-body">
|
||||
<div class="AddPermissions-directions" ng-if="licenseMissing">
|
||||
<span class="AddPermissions-directionNumber">
|
||||
1.
|
||||
1
|
||||
</span>
|
||||
<span class="License-helperText">
|
||||
Please click the button below to visit Ansible's website to get a Tower license key.
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<button class="License-downloadLicenseButton btn" ng-if="licenseMissing" ng-click="downloadLicense()">
|
||||
<button class="License-downloadLicenseButton btn btn-primary" ng-if="licenseMissing" ng-click="downloadLicense()">
|
||||
Request License
|
||||
</button>
|
||||
|
||||
<div class="AddPermissions-directions">
|
||||
<span class="AddPermissions-directionNumber" ng-if="licenseMissing">
|
||||
2.
|
||||
2
|
||||
</span>
|
||||
<span class="License-helperText">
|
||||
Choose your license file, agree to the End User License Agreement, and click submit.
|
||||
@ -98,18 +99,22 @@
|
||||
<form id="License-form" name="license">
|
||||
<div class="License-subTitleText prepend-asterisk"> License File</div>
|
||||
<div class="input-group License-file--container">
|
||||
<span class="btn btn-default input-group-addon" ng-click="fakeClick()">Browse...</span>
|
||||
<input class="form-control License-input--fake" ng-disabled="true" placeholder="{{fileName}}" />
|
||||
<span class="btn btn-primary" ng-click="fakeClick()">Browse</span>
|
||||
<span class="License-fileName" ng-class="{'License-helperText' : fileName == 'No file selected.'}">{{fileName}}</span>
|
||||
<input id="License-file" class="form-control" type="file" file-on-change="getKey"/>
|
||||
</div>
|
||||
<div class="License-subTitleText prepend-asterisk"> End User License Agreement</div>
|
||||
<div class="form-group License-eula">
|
||||
<textarea class="form-control">{{license.eula}}
|
||||
</textarea>
|
||||
<div class="License-subTitleText prepend-asterisk"> End User License Agreement
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div id="eula_notice"
|
||||
class="License-eulaNotice">
|
||||
{{ license.eula }}
|
||||
</div>
|
||||
<div class="form-group License-detailsGroup">
|
||||
<div class="checkbox">
|
||||
<div class="License-details--label"><input type="checkbox" ng-model="newLicense.eula" required> I agree to the End User License Agreement</div>
|
||||
<label class="License-details--label">
|
||||
<input type="checkbox" ng-model="newLicense.eula" required>
|
||||
I agree to the End User License Agreement
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="License-submit--container">
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
* All Rights Reserved
|
||||
*************************************************/
|
||||
|
||||
import Admins from "./lists/Admins";
|
||||
import CloudCredentials from "./lists/CloudCredentials";
|
||||
import CompletedJobs from "./lists/CompletedJobs";
|
||||
import AllJobs from "./lists/AllJobs";
|
||||
@ -31,8 +30,7 @@ import Teams from "./lists/Teams";
|
||||
import Users from "./lists/Users";
|
||||
|
||||
export
|
||||
{ Admins,
|
||||
CloudCredentials,
|
||||
{ CloudCredentials,
|
||||
CompletedJobs,
|
||||
AllJobs,
|
||||
Credentials,
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
/*************************************************
|
||||
* Copyright (c) 2015 Ansible, Inc.
|
||||
*
|
||||
* All Rights Reserved
|
||||
*************************************************/
|
||||
|
||||
export default
|
||||
angular.module('AdminListDefinition', [])
|
||||
.value('AdminList', {
|
||||
|
||||
name: 'admins',
|
||||
iterator: 'admin',
|
||||
selectTitle: 'Add Administrators',
|
||||
editTitle: 'Admins',
|
||||
selectInstructions: '<p>Select existing users by clicking each user or checking the related checkbox. When finished, click the blue ' +
|
||||
'<em>Select</em> button, located bottom right.</p>',
|
||||
base: 'users',
|
||||
index: false,
|
||||
hover: true,
|
||||
|
||||
fields: {
|
||||
username: {
|
||||
key: true,
|
||||
label: 'Username'
|
||||
},
|
||||
first_name: {
|
||||
label: 'First Name'
|
||||
},
|
||||
last_name: {
|
||||
label: 'Last Name'
|
||||
}
|
||||
},
|
||||
|
||||
actions: {},
|
||||
|
||||
fieldActions: {}
|
||||
});
|
||||
@ -12,6 +12,7 @@ export default
|
||||
iterator: 'group',
|
||||
editTitle: '{{ inventory.name }}',
|
||||
listTitle: 'Groups',
|
||||
searchSize: 'col-lg-12 col-md-12 col-sm-12 col-xs-12',
|
||||
showTitle: false,
|
||||
well: true,
|
||||
index: false,
|
||||
@ -31,7 +32,7 @@ export default
|
||||
nosort: true,
|
||||
label: '',
|
||||
type: 'badgeCount',
|
||||
ngHide: 'group.total_groups == 0',
|
||||
ngHide: 'group.total_groups == 0',
|
||||
},
|
||||
source: {
|
||||
label: 'Source',
|
||||
|
||||
@ -12,6 +12,7 @@ export default
|
||||
iterator: 'host',
|
||||
editTitle: '{{ selected_group }}',
|
||||
listTitle: 'Hosts',
|
||||
searchSize: 'col-lg-12 col-md-12 col-sm-12 col-xs-12',
|
||||
showTitle: false,
|
||||
well: true,
|
||||
index: false,
|
||||
|
||||
@ -24,7 +24,7 @@ export default
|
||||
|
||||
fields: {
|
||||
timestamp: {
|
||||
label: 'Event Time',
|
||||
label: 'Time',
|
||||
key: true,
|
||||
desc: true,
|
||||
noLink: true,
|
||||
@ -44,11 +44,11 @@ export default
|
||||
columnClass: 'col-lg-3 col-md-3 col-sm-3 col-xs-3'
|
||||
},
|
||||
description: {
|
||||
label: 'Action',
|
||||
label: 'Event',
|
||||
ngBindHtml: 'activity.description',
|
||||
nosort: true,
|
||||
searchable: false,
|
||||
columnClass: 'col-lg-5 col-md-6 col-sm-4 col-xs-4'
|
||||
columnClass: 'ActivityStream-eventColumnHeader col-lg-5 col-md-6 col-sm-4 col-xs-4'
|
||||
},
|
||||
actor: {
|
||||
label: 'System event',
|
||||
@ -263,7 +263,7 @@ export default
|
||||
id: 'activity-stream-refresh-btn',
|
||||
awToolTip: "Refresh the page",
|
||||
ngClick: "refreshStream()",
|
||||
actionClass: 'btn List-buttonDefault',
|
||||
actionClass: 'btn List-buttonDefault ActivityStream-refreshButton',
|
||||
buttonContent: 'REFRESH'
|
||||
}
|
||||
},
|
||||
|
||||
@ -264,7 +264,8 @@
|
||||
.MainMenu-item:hover,
|
||||
.MainMenu-logo:hover,
|
||||
.MainMenu-item.is-currentRoute {
|
||||
color: @menu-link;
|
||||
background-color: @default-tertiary-bg;
|
||||
color: @default-icon;
|
||||
}
|
||||
|
||||
// item on
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
}
|
||||
|
||||
.alert-success{
|
||||
background-color: #5CB85C;
|
||||
background-color: @default-succ;
|
||||
color: @default-bg;
|
||||
}
|
||||
|
||||
|
||||
@ -4,21 +4,27 @@ export default ['$scope', '$stateParams', '$state', 'Rest', 'UserList', 'Invento
|
||||
var list = {};
|
||||
if (mode === 'users') {
|
||||
list = _.cloneDeep(UserList);
|
||||
list.emptyListText = "Please add items to this list";
|
||||
list.actions.add.buttonContent = '+ ADD user';
|
||||
} else if (mode === 'inventories') {
|
||||
list = _.cloneDeep(InventoryList);
|
||||
list.emptyListText = "List is empty";
|
||||
delete list.actions.add;
|
||||
} else if (mode === 'job_templates') {
|
||||
list = _.cloneDeep(JobTemplateList);
|
||||
list.emptyListText = "List is empty";
|
||||
delete list.actions.add;
|
||||
} else if (mode === 'teams') {
|
||||
list = _.cloneDeep(TeamList);
|
||||
list.emptyListText = "List is empty";
|
||||
delete list.actions.add;
|
||||
} else if (mode === 'projects') {
|
||||
list = _.cloneDeep(ProjectList);
|
||||
list.emptyListText = "List is empty";
|
||||
delete list.actions.add;
|
||||
} else if (mode === 'admins') {
|
||||
list = _.cloneDeep(UserList);
|
||||
list.emptyListText = "Please add items to this list";
|
||||
list.actions.add.buttonContent = '+ ADD administrator';
|
||||
}
|
||||
return list;
|
||||
|
||||
@ -13,6 +13,13 @@ export function PortalModeJobsController($scope, $state, $rootScope, GetBasePath
|
||||
defaultUrl = GetBasePath('jobs') + '?created_by=' + $rootScope.current_user.id,
|
||||
pageSize = 12;
|
||||
|
||||
if ($rootScope.removeJobStatusChange) {
|
||||
$rootScope.removeJobStatusChange();
|
||||
}
|
||||
$rootScope.removeJobStatusChange = $rootScope.$on('JobStatusChange-portal', function() {
|
||||
$scope.search('portal_job'); //processEvent(event);
|
||||
});
|
||||
|
||||
$scope.iterator = list.iterator;
|
||||
$scope.activeFilter = 'user';
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
}
|
||||
|
||||
.ScheduleToggle.is-on {
|
||||
border-color: #337AB7;
|
||||
border-color: @default-link;
|
||||
background-color: @default-bg;
|
||||
}
|
||||
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
|
||||
span.ui-spinner.ui-widget.ui-widget-content.ui-corner-all {
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.SchedulerTime-separator {
|
||||
|
||||
@ -82,11 +82,11 @@
|
||||
}
|
||||
|
||||
.TagSearch-dropdownItem:hover {
|
||||
background-color: @default-tertiary-bg;
|
||||
background-color: @default-no-items-bord;
|
||||
}
|
||||
|
||||
.TagSearch-dropdownItem.is-selected {
|
||||
background-color: @default-no-items-bord;
|
||||
background-color: @default-white-button-bord;
|
||||
}
|
||||
|
||||
.TagSearch-searchTermContainer {
|
||||
@ -174,7 +174,6 @@
|
||||
border-radius: 5px;
|
||||
padding: 2px 10px;
|
||||
margin: 4px 0px;
|
||||
border: 1px solid @d7grey;
|
||||
font-size: 12px;
|
||||
color: @default-interface-txt;
|
||||
text-transform: uppercase;
|
||||
@ -188,21 +187,23 @@
|
||||
|
||||
.TagSearch-tag--deletable {
|
||||
margin-right: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-right: 0;
|
||||
max-wdith: ~"calc(100% - 23px)";
|
||||
background-color: @default-link;
|
||||
color: @default-bg;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.TagSearch-deleteContainer {
|
||||
border: 1px solid @d7grey;
|
||||
border-left-color: @default-bg;
|
||||
background-color: @default-link!important;
|
||||
color: white;
|
||||
background-color: @default-bg;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
padding: 0 5px;
|
||||
margin: 4px 0px;
|
||||
margin-right: 5px;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
@ -210,7 +211,6 @@
|
||||
|
||||
.TagSearch-tagDelete {
|
||||
font-size: 13px;
|
||||
color: @default-icon;
|
||||
}
|
||||
|
||||
.TagSearch-name {
|
||||
@ -224,7 +224,7 @@
|
||||
|
||||
.TagSearch-deleteContainer:hover, {
|
||||
border-color: @default-err;
|
||||
background-color: @default-err;
|
||||
background-color: @default-err!important;
|
||||
}
|
||||
|
||||
.TagSearch-deleteContainer:hover > .TagSearch-tagDelete {
|
||||
|
||||
@ -63,15 +63,15 @@
|
||||
<div class="TagSearch-flexContainer">
|
||||
<div class="TagSearch-tagContainer"
|
||||
ng-repeat="tag in currentSearchFilters track by $index">
|
||||
<div class="TagSearch-deleteContainer"
|
||||
ng-click="deleteTag(tag)">
|
||||
<i class="fa fa-times TagSearch-tagDelete"></i>
|
||||
</div>
|
||||
<div class="TagSearch-tag TagSearch-tag--deletable"
|
||||
<span class="TagSearch-name">
|
||||
{{ tag.name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="TagSearch-deleteContainer"
|
||||
ng-click="deleteTag(tag)">
|
||||
<i class="fa fa-times TagSearch-tagDelete"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -650,7 +650,6 @@ angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter'])
|
||||
}
|
||||
|
||||
if (addNew) {
|
||||
$(element).prepend("<option></option>");
|
||||
config.tags = true;
|
||||
config.tokenSeparators = [];
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
@info-color: #3a87ad;
|
||||
@unreachable: #FF0000;
|
||||
@changed: #FF9900; // Ansible Changed
|
||||
@skipped: #00aaaa; // Ansible Skipped
|
||||
@skipped: #2dbaba; // Ansible Skipped
|
||||
@warning: #FF9900;
|
||||
@well: #f5f5f5; /* well background color */
|
||||
@well-border: #e3e3e3;
|
||||
|
||||
@ -1783,7 +1783,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
|
||||
html += `
|
||||
<div class=\"row\"
|
||||
ng-show=\"${collection.hideSearchAndActions ? false : true}\">
|
||||
<div class=\"col-lg-8\"
|
||||
<div class=\"col-lg-8 col-md-8 col-sm-8 col-xs-12\"
|
||||
ng-show=\"${collection.iterator}Loading == true ||
|
||||
${collection.iterator}_active_search == true || (
|
||||
${collection.iterator}Loading == false &&
|
||||
@ -1793,7 +1793,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
|
||||
>
|
||||
${tagSearch}
|
||||
</div>
|
||||
<div class=\"col-lg-4\">
|
||||
<div class=\"col-lg-4 col-md-4 col-sm-4 col-xs-12\">
|
||||
<div class=\"list-actions\">
|
||||
${actionButtons}
|
||||
</div>
|
||||
|
||||
@ -329,7 +329,7 @@ export default ['$location', '$compile', '$rootScope', 'SearchWidget', 'Paginate
|
||||
html += "</div>";
|
||||
}
|
||||
html += "<div class=\"List-actions\">";
|
||||
html += "<div class=\"list-actions\" ng-include=\"'" +
|
||||
html += "<div ng-include=\"'" +
|
||||
templateUrl('shared/list-generator/list-actions') +
|
||||
"'\">\n";
|
||||
|
||||
|
||||
@ -37,12 +37,14 @@
|
||||
height:20px;
|
||||
font-size: 20px;
|
||||
background-color:@default-bg;
|
||||
color:@default-icon;
|
||||
color:@default-icon-hov;
|
||||
line-height:1;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.Modal-exit:hover{
|
||||
color:@default-icon-hov;
|
||||
color: @default-icon;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.Modal-body {
|
||||
@ -96,6 +98,10 @@
|
||||
color: @btn-txt-sel;
|
||||
}
|
||||
|
||||
.Modal-errorButton:focus {
|
||||
color: @btn-txt-sel;
|
||||
}
|
||||
|
||||
.Modal-footerButton {
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
text-align: left;
|
||||
max-width: 250px;
|
||||
padding: 10px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.SmartStatus-tooltip--success{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user