diff --git a/awx/api/templates/api/stdout.html b/awx/api/templates/api/stdout.html index e7b9559812..3e323f0ed3 100644 --- a/awx/api/templates/api/stdout.html +++ b/awx/api/templates/api/stdout.html @@ -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 {
{{ body }}
-{% endif %} \ No newline at end of file +{% endif %} diff --git a/awx/ui/client/assets/favicon.ico b/awx/ui/client/assets/favicon.ico index f53629b961..31b759caf9 100644 Binary files a/awx/ui/client/assets/favicon.ico and b/awx/ui/client/assets/favicon.ico differ diff --git a/awx/ui/client/legacy-styles/ansible-ui.less b/awx/ui/client/legacy-styles/ansible-ui.less index 7f434cbb2c..0b90e4be35 100644 --- a/awx/ui/client/legacy-styles/ansible-ui.less +++ b/awx/ui/client/legacy-styles/ansible-ui.less @@ -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; +} diff --git a/awx/ui/client/legacy-styles/forms.less b/awx/ui/client/legacy-styles/forms.less index 3a16e2869c..93ac6b76e7 100644 --- a/awx/ui/client/legacy-styles/forms.less +++ b/awx/ui/client/legacy-styles/forms.less @@ -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; } diff --git a/awx/ui/client/legacy-styles/jquery-ui-overrides.less b/awx/ui/client/legacy-styles/jquery-ui-overrides.less index f9748fc807..1c8f7d4900 100644 --- a/awx/ui/client/legacy-styles/jquery-ui-overrides.less +++ b/awx/ui/client/legacy-styles/jquery-ui-overrides.less @@ -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 { diff --git a/awx/ui/client/legacy-styles/lists.less b/awx/ui/client/legacy-styles/lists.less index 452c2104ea..93e5c62656 100644 --- a/awx/ui/client/legacy-styles/lists.less +++ b/awx/ui/client/legacy-styles/lists.less @@ -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; } diff --git a/awx/ui/client/src/access/addPermissions/addPermissions.block.less b/awx/ui/client/src/access/addPermissions/addPermissions.block.less index ea41f8d214..8aae7351d6 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissions.block.less +++ b/awx/ui/client/src/access/addPermissions/addPermissions.block.less @@ -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 { diff --git a/awx/ui/client/src/access/addPermissions/addPermissions.controller.js b/awx/ui/client/src/access/addPermissions/addPermissions.controller.js index b95f851f07..938b47985e 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissions.controller.js +++ b/awx/ui/client/src/access/addPermissions/addPermissions.controller.js @@ -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 diff --git a/awx/ui/client/src/access/addPermissions/addPermissions.partial.html b/awx/ui/client/src/access/addPermissions/addPermissions.partial.html index dd81f1a823..5d0d4f01b9 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissions.partial.html +++ b/awx/ui/client/src/access/addPermissions/addPermissions.partial.html @@ -21,7 +21,7 @@
- 1. + 1 Please select Users / Teams from the lists below.
@@ -55,7 +55,7 @@
- 2. + 2 Please assign roles to the selected users/teams
-
- {{ role.name }} -
+
+ {{ role.name }} +
diff --git a/awx/ui/client/src/activity-stream/activitystream.block.less b/awx/ui/client/src/activity-stream/activitystream.block.less new file mode 100644 index 0000000000..2f49163095 --- /dev/null +++ b/awx/ui/client/src/activity-stream/activitystream.block.less @@ -0,0 +1,9 @@ +.ActivityStream-refreshButton{ + height: 30px; + padding-top: 0px; + padding-bottom: 0px; +} + +.ActivityStream-eventColumnHeader:hover{ + cursor: auto; +} diff --git a/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.block.less b/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.block.less index ae6de6cdae..1cd280225e 100644 --- a/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.block.less +++ b/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.block.less @@ -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; diff --git a/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.partial.html b/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.partial.html index 34c322c72b..4806a2eb4d 100644 --- a/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.partial.html +++ b/awx/ui/client/src/activity-stream/streamDetailModal/streamDetailModal.partial.html @@ -14,7 +14,7 @@
ACTION
-
+
CHANGES
@@ -22,7 +22,7 @@
diff --git a/awx/ui/client/src/app.js b/awx/ui/client/src/app.js index dd42857423..cd107a5590 100644 --- a/awx/ui/client/src/app.js +++ b/awx/ui/client/src/app.js @@ -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', diff --git a/awx/ui/client/src/controllers/Admins.js b/awx/ui/client/src/controllers/Admins.js deleted file mode 100644 index ffc298532f..0000000000 --- a/awx/ui/client/src/controllers/Admins.js +++ /dev/null @@ -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' -]; diff --git a/awx/ui/client/src/controllers/Projects.js b/awx/ui/client/src/controllers/Projects.js index c7ca0d1ab4..033328f838 100644 --- a/awx/ui/client/src/controllers/Projects.js +++ b/awx/ui/client/src/controllers/Projects.js @@ -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'); diff --git a/awx/ui/client/src/dashboard/counts/dashboard-counts.block.less b/awx/ui/client/src/dashboard/counts/dashboard-counts.block.less index a29476fd90..d9a85ed444 100644 --- a/awx/ui/client/src/dashboard/counts/dashboard-counts.block.less +++ b/awx/ui/client/src/dashboard/counts/dashboard-counts.block.less @@ -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; + } +} diff --git a/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js b/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js index 64c8b3216e..868742154a 100644 --- a/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js +++ b/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js @@ -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); }); diff --git a/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less index 3ef1d00c45..22e4a88ba8 100644 --- a/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less +++ b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less @@ -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; + } +} diff --git a/awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html index 663a53b8ff..3cbbf34c49 100644 --- a/awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html +++ b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html @@ -4,74 +4,83 @@ JOB STATUS
-
Period
-
- - Past Month - - +
+
Period
+
-
Job Type
-
+
+
Job Type
+ +
+
+
View
+
+ + All + + - -
-
View
-
- - All - - - + +
diff --git a/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js index 428f63dfdb..d55fd10556 100644 --- a/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js +++ b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js @@ -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(""+this.text+ + $('#period-dropdown') + .replaceWith(""+this.text+ "\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(""+this.text+ + $('#type-dropdown').replaceWith(""+this.text+ "\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(""+this.text+ + $('#status-dropdown').replaceWith(""+this.text+ "\n"); scope.$broadcast("jobStatusChange", job_status); }); diff --git a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.form.js b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.form.js index 2ae47e1046..99e5ab7683 100644 --- a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.form.js +++ b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.form.js @@ -57,7 +57,7 @@ export default function(){ default: '---', awPopOver: "

Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + diff --git a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js index 63ec02e404..7ec32008c8 100644 --- a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js +++ b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js @@ -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', diff --git a/awx/ui/client/src/dashboard/lists/dashboard-list.block.less b/awx/ui/client/src/dashboard/lists/dashboard-list.block.less index 89b266847f..589f6c292d 100644 --- a/awx/ui/client/src/dashboard/lists/dashboard-list.block.less +++ b/awx/ui/client/src/dashboard/lists/dashboard-list.block.less @@ -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; + } + } +} diff --git a/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html index 103de983c9..da60bce8cf 100644 --- a/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html +++ b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html @@ -10,10 +10,8 @@
-
+ Title - Activity @@ -53,7 +51,7 @@
-

It doesn't seem like you have used any currently available job templates.
+

No job templates were recently used.
You can create a job template here.

diff --git a/awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html index 86235f700f..a728d64d2e 100644 --- a/awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html +++ b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html @@ -10,7 +10,7 @@
- +

- RECENT JOB RUNS + RECENTLY RUN JOBS

-

It doesn't seem like you have any recent job runs.

+

No jobs were recently run.

diff --git a/awx/ui/client/src/footer/footer.block.less b/awx/ui/client/src/footer/footer.block.less index 95ec11463d..3f40c009de 100644 --- a/awx/ui/client/src/footer/footer.block.less +++ b/awx/ui/client/src/footer/footer.block.less @@ -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; diff --git a/awx/ui/client/src/forms/Groups.js b/awx/ui/client/src/forms/Groups.js index 3b8940de66..a2a88ae6d8 100644 --- a/awx/ui/client/src/forms/Groups.js +++ b/awx/ui/client/src/forms/Groups.js @@ -49,7 +49,7 @@ export default "

Enter variables using either JSON or YAML syntax. Use the " + "radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
  \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + @@ -171,7 +171,7 @@ export default dataPlacement: 'right', awPopOver: "

Provide key/value pairs using either YAML or JSON.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n", dataContainer: 'body' @@ -193,7 +193,7 @@ export default "view ec2.ini in the Ansible github repo.

" + "

Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + @@ -219,7 +219,7 @@ export default "view vmware.ini in the Ansible github repo.

" + "

Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + diff --git a/awx/ui/client/src/forms/Hosts.js b/awx/ui/client/src/forms/Hosts.js index 0efc38c4b6..c7a63c5a1f 100644 --- a/awx/ui/client/src/forms/Hosts.js +++ b/awx/ui/client/src/forms/Hosts.js @@ -64,7 +64,7 @@ export default "default": "---", awPopOver: "

Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + @@ -87,7 +87,7 @@ export default }, cancel: { ngClick: 'formCancel()', - ngDisabled: true + ngDisabled: true } }, diff --git a/awx/ui/client/src/forms/Inventories.js b/awx/ui/client/src/forms/Inventories.js index 20ee5db148..e1ee63a3d3 100644 --- a/awx/ui/client/src/forms/Inventories.js +++ b/awx/ui/client/src/forms/Inventories.js @@ -55,7 +55,7 @@ export default "default": "---", awPopOver: "

Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n" + '

View JSON examples at www.json.org

' + diff --git a/awx/ui/client/src/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js index 9185d73e90..fd3afd5b52 100644 --- a/awx/ui/client/src/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -248,7 +248,7 @@ export default awPopOver: "

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.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n", dataTitle: 'Extra Variables', diff --git a/awx/ui/client/src/forms/Projects.js b/awx/ui/client/src/forms/Projects.js index cf75609b1a..5599683b06 100644 --- a/awx/ui/client/src/forms/Projects.js +++ b/awx/ui/client/src/forms/Projects.js @@ -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, diff --git a/awx/ui/client/src/helpers/JobSubmission.js b/awx/ui/client/src/helpers/JobSubmission.js index 82dd577869..f185231c40 100644 --- a/awx/ui/client/src/helpers/JobSubmission.js +++ b/awx/ui/client/src/helpers/JobSubmission.js @@ -496,7 +496,7 @@ function($compile, Rest, GetBasePath, TextareaResize,CreateDialog, GenerateForm, "

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.

" + "JSON:
\n" + - "
{
\"somevar\": \"somevalue\",
\"password\": \"magic\"
}
\n" + + "
{
 \"somevar\": \"somevalue\",
 \"password\": \"magic\"
}
\n" + "YAML:
\n" + "
---
somevar: somevalue
password: magic
\n"; diff --git a/awx/ui/client/src/license/license.block.less b/awx/ui/client/src/license/license.block.less index 5ea5065d6e..475cdf0016 100644 --- a/awx/ui/client/src/license/license.block.less +++ b/awx/ui/client/src/license/license.block.less @@ -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; +} diff --git a/awx/ui/client/src/license/license.controller.js b/awx/ui/client/src/license/license.controller.js index 4b26604793..53a6a7746f 100644 --- a/awx/ui/client/src/license/license.controller.js +++ b/awx/ui/client/src/license/license.controller.js @@ -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() diff --git a/awx/ui/client/src/license/license.partial.html b/awx/ui/client/src/license/license.partial.html index 7d35cce503..f666b2a9ce 100644 --- a/awx/ui/client/src/license/license.partial.html +++ b/awx/ui/client/src/license/license.partial.html @@ -1,4 +1,5 @@ -
+
Details
@@ -6,32 +7,32 @@
License
- Valid - Invalid + Valid + Invalid
Version
- {{license.version || "No result found"}} + {{license.version}}
License Type
- {{license.license_info.license_type || "No result found"}} + {{license.license_info.license_type}}
Subscription
- {{license.license_info.subscription_name || "No result found"}} + {{license.license_info.subscription_name}}
License Key
- {{license.license_info.license_key || "No result found"}} + {{license.license_info.license_key}}
@@ -49,24 +50,24 @@
Hosts Available
- {{license.license_info.available_instances || "No result found"}} + {{license.license_info.available_instances}}
Hosts Used
- {{license.license_info.current_instances || "No result found"}} + {{license.license_info.current_instances}}
Hosts Remaining
- {{license.license_info.free_instances || "No result found"}} + {{license.license_info.free_instances}}
If you are ready to upgrade, please contact us by clicking the button below
- +
@@ -75,20 +76,20 @@
- 1. + 1 Please click the button below to visit Ansible's website to get a Tower license key.
-
- 2. + 2 Choose your license file, agree to the End User License Agreement, and click submit. @@ -98,18 +99,22 @@
License File
- Browse... - + Browse + {{fileName}}
-
End User License Agreement
-
- +
End User License Agreement
-
+
+ {{ license.eula }} +
+
-
I agree to the End User License Agreement
+
diff --git a/awx/ui/client/src/lists.js b/awx/ui/client/src/lists.js index 925f57bd65..f36cd3f687 100644 --- a/awx/ui/client/src/lists.js +++ b/awx/ui/client/src/lists.js @@ -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, diff --git a/awx/ui/client/src/lists/Admins.js b/awx/ui/client/src/lists/Admins.js deleted file mode 100644 index e1c49772f0..0000000000 --- a/awx/ui/client/src/lists/Admins.js +++ /dev/null @@ -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: '

Select existing users by clicking each user or checking the related checkbox. When finished, click the blue ' + - 'Select button, located bottom right.

', - base: 'users', - index: false, - hover: true, - - fields: { - username: { - key: true, - label: 'Username' - }, - first_name: { - label: 'First Name' - }, - last_name: { - label: 'Last Name' - } - }, - - actions: {}, - - fieldActions: {} - }); diff --git a/awx/ui/client/src/lists/InventoryGroups.js b/awx/ui/client/src/lists/InventoryGroups.js index 58277ed78d..6002000e53 100644 --- a/awx/ui/client/src/lists/InventoryGroups.js +++ b/awx/ui/client/src/lists/InventoryGroups.js @@ -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', diff --git a/awx/ui/client/src/lists/InventoryHosts.js b/awx/ui/client/src/lists/InventoryHosts.js index d71e9a0083..655f8e28ac 100644 --- a/awx/ui/client/src/lists/InventoryHosts.js +++ b/awx/ui/client/src/lists/InventoryHosts.js @@ -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, diff --git a/awx/ui/client/src/lists/Streams.js b/awx/ui/client/src/lists/Streams.js index 4cf443c0b8..0842019c4c 100644 --- a/awx/ui/client/src/lists/Streams.js +++ b/awx/ui/client/src/lists/Streams.js @@ -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' } }, diff --git a/awx/ui/client/src/main-menu/main-menu.block.less b/awx/ui/client/src/main-menu/main-menu.block.less index 69789c28a3..ee9f2a6115 100644 --- a/awx/ui/client/src/main-menu/main-menu.block.less +++ b/awx/ui/client/src/main-menu/main-menu.block.less @@ -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 diff --git a/awx/ui/client/src/notifications/notifications.block.less b/awx/ui/client/src/notifications/notifications.block.less index 0ca491aa08..d3ebf96651 100644 --- a/awx/ui/client/src/notifications/notifications.block.less +++ b/awx/ui/client/src/notifications/notifications.block.less @@ -9,7 +9,7 @@ } .alert-success{ - background-color: #5CB85C; + background-color: @default-succ; color: @default-bg; } diff --git a/awx/ui/client/src/organizations/linkout/organizations-linkout.controller.js b/awx/ui/client/src/organizations/linkout/organizations-linkout.controller.js index 7d47f544b2..6609f1f624 100644 --- a/awx/ui/client/src/organizations/linkout/organizations-linkout.controller.js +++ b/awx/ui/client/src/organizations/linkout/organizations-linkout.controller.js @@ -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; diff --git a/awx/ui/client/src/portal-mode/portal-mode-jobs.controller.js b/awx/ui/client/src/portal-mode/portal-mode-jobs.controller.js index ccb911975f..7656237cb2 100644 --- a/awx/ui/client/src/portal-mode/portal-mode-jobs.controller.js +++ b/awx/ui/client/src/portal-mode/portal-mode-jobs.controller.js @@ -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'; diff --git a/awx/ui/client/src/scheduler/scheduleToggle.block.less b/awx/ui/client/src/scheduler/scheduleToggle.block.less index 84b3aa62cf..a4eb13612a 100644 --- a/awx/ui/client/src/scheduler/scheduleToggle.block.less +++ b/awx/ui/client/src/scheduler/scheduleToggle.block.less @@ -25,7 +25,7 @@ } .ScheduleToggle.is-on { - border-color: #337AB7; + border-color: @default-link; background-color: @default-bg; } diff --git a/awx/ui/client/src/scheduler/schedulertime.block.less b/awx/ui/client/src/scheduler/schedulertime.block.less index a40c018249..1557d37a74 100644 --- a/awx/ui/client/src/scheduler/schedulertime.block.less +++ b/awx/ui/client/src/scheduler/schedulertime.block.less @@ -10,7 +10,6 @@ span.ui-spinner.ui-widget.ui-widget-content.ui-corner-all { flex: 1; - width: 100%; } .SchedulerTime-separator { diff --git a/awx/ui/client/src/search/tagSearch.block.less b/awx/ui/client/src/search/tagSearch.block.less index 06bc298d42..47cd5d4f3e 100644 --- a/awx/ui/client/src/search/tagSearch.block.less +++ b/awx/ui/client/src/search/tagSearch.block.less @@ -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 { diff --git a/awx/ui/client/src/search/tagSearch.partial.html b/awx/ui/client/src/search/tagSearch.partial.html index 5609adc229..18a8d85d53 100644 --- a/awx/ui/client/src/search/tagSearch.partial.html +++ b/awx/ui/client/src/search/tagSearch.partial.html @@ -63,15 +63,15 @@
+
+ +
{{ tag.name }}
-
- -
diff --git a/awx/ui/client/src/shared/Utilities.js b/awx/ui/client/src/shared/Utilities.js index c6b5db0016..e1d1a5983a 100644 --- a/awx/ui/client/src/shared/Utilities.js +++ b/awx/ui/client/src/shared/Utilities.js @@ -650,7 +650,6 @@ angular.module('Utilities', ['RestServices', 'Utilities', 'sanitizeFilter']) } if (addNew) { - $(element).prepend(""); config.tags = true; config.tokenSeparators = []; } diff --git a/awx/ui/client/src/shared/branding/colors.less b/awx/ui/client/src/shared/branding/colors.less index 6f65c1bdd7..6764ec9df1 100644 --- a/awx/ui/client/src/shared/branding/colors.less +++ b/awx/ui/client/src/shared/branding/colors.less @@ -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; diff --git a/awx/ui/client/src/shared/form-generator.js b/awx/ui/client/src/shared/form-generator.js index 7e0a2888df..03d2eeaac3 100644 --- a/awx/ui/client/src/shared/form-generator.js +++ b/awx/ui/client/src/shared/form-generator.js @@ -1783,7 +1783,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat html += `
-
${tagSearch}
-
+
${actionButtons}
diff --git a/awx/ui/client/src/shared/list-generator/list-generator.factory.js b/awx/ui/client/src/shared/list-generator/list-generator.factory.js index a7736f109f..111771c8e8 100644 --- a/awx/ui/client/src/shared/list-generator/list-generator.factory.js +++ b/awx/ui/client/src/shared/list-generator/list-generator.factory.js @@ -329,7 +329,7 @@ export default ['$location', '$compile', '$rootScope', 'SearchWidget', 'Paginate html += "
"; } html += "
"; - html += "
\n"; diff --git a/awx/ui/client/src/shared/modal/modal.less b/awx/ui/client/src/shared/modal/modal.less index f379a2997b..9d67dba204 100644 --- a/awx/ui/client/src/shared/modal/modal.less +++ b/awx/ui/client/src/shared/modal/modal.less @@ -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; } diff --git a/awx/ui/client/src/smart-status/smart-status.block.less b/awx/ui/client/src/smart-status/smart-status.block.less index fdb80aaa65..92b5244e4f 100644 --- a/awx/ui/client/src/smart-status/smart-status.block.less +++ b/awx/ui/client/src/smart-status/smart-status.block.less @@ -35,6 +35,7 @@ text-align: left; max-width: 250px; padding: 10px; + line-height: 22px; } .SmartStatus-tooltip--success{
Title Title Time