Copy or move a group by dragging and dropping its name onto another group name. A dialog will appear asking " +
- "if the group should be coppied or moved.
First, select a Group. " +
- "Then click on the hosts list (the right side of the page) to create a host. " +
- "The new host will be part of the selected group.
Note hosts cannot be added to the All Hosts group.
",
- height: 500
- }
+ width: 510,
+ height: 560,
+ steps: [
+ {
+ intro: 'Start by creating a group:',
+ img: { src: 'groups001.png', maxWidth: 338 , maxHeight: 222 },
+ box: "Click on the groups list (the left side of the page) to add a new group.",
+ autoOffNotice: true
+ },
+ {
+ intro: 'Enter group properties:',
+ img: { src: 'groups002.png', maxWidth: 443, maxHeight: 251 },
+ box: 'Enter the group name, a description and any inventory variables. Variables can be entered using either JSON or YAML syntax. ' +
+ 'For more on inventory variables, see ' +
+ 'docs.ansible.com/intro_inventory.html'
+ },
+ {
+ intro: 'Cloud inventory: select cloud source',
+ img: { src: 'groups003.png', maxWidth: 412, maxHeight: 215 },
+ box: "For a cloud inventory, choose the cloud provider from the list and select your credentials. If you have not already setup " +
+ "credentials for the provider, you will need to do that first on the Credentials tab."
+ },
+ {
+ intro: 'Cloud inventory: synchronize Tower with the cloud',
+ img: { src: 'groups004.png', maxWidth: 261, maxHeight: 221 },
+ box: "To pull the cloud inventory into Tower, initiate an inventory sync by clicking .",
+ },
+ {
+ intro: "Groups can have subgroups:",
+ img: { src: 'groups005.png', maxWidth: 430, maxHeight: 206 },
+ box: "
First, select a group. Then click to create a new group. The new group " +
+ "will be added to the selected group.
Copy or move a group by dragging and dropping its name onto another group name. A dialog will appear " +
+ "asking if the group should be coppied or moved.
First, select a Group. " +
+ "Then click on the hosts list (the right side of the page) to create a host. " +
+ "The new host will be part of the selected group.
Note hosts cannot be added to the All Hosts group.
"
}
+ ]
}
});
diff --git a/awx/ui/static/js/helpers/Jobs.js b/awx/ui/static/js/helpers/Jobs.js
index 6e5ebd7426..a01e3cf507 100644
--- a/awx/ui/static/js/helpers/Jobs.js
+++ b/awx/ui/static/js/helpers/Jobs.js
@@ -78,6 +78,7 @@ angular.module('JobsHelper', ['Utilities', 'FormGenerator', 'JobSummaryDefinitio
y = (500 > wh) ? wh : 500;
maxrows = 10;
}
+
// Create the modal
$('#status-modal-dialog').dialog({
buttons: { "OK": function() { $( this ).dialog( "close" ); } },
diff --git a/awx/ui/static/js/widgets/Stream.js b/awx/ui/static/js/widgets/Stream.js
index 92005d8e2f..30ece9f089 100644
--- a/awx/ui/static/js/widgets/Stream.js
+++ b/awx/ui/static/js/widgets/Stream.js
@@ -75,7 +75,7 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
$rootScope.breadcrumbs = [];
var paths = $location.path().split('/');
paths.splice(0,1);
- var path, title;
+ var path, title, j;
for (var i=0; i < paths.length; i++) {
if (/^\d+/.test(paths[i])) {
path='';
diff --git a/awx/ui/static/less/ansible-ui.less b/awx/ui/static/less/ansible-ui.less
index 9c582cea07..770bd45be1 100644
--- a/awx/ui/static/less/ansible-ui.less
+++ b/awx/ui/static/less/ansible-ui.less
@@ -17,6 +17,7 @@
@blue-link: #1778c3;
@blue-dark: #2a6496; /* link hover */
@grey: #A9A9A9;
+@grey-txt: #707070;
@well: #f5f5f5; /* well background color */
@info: #d9edf7; /* alert info background color */
@info-border: #bce8f1; /* alert info border color */
@@ -1341,37 +1342,35 @@ tr td button i {
margin-bottom: 5px;
}
-/* help dialog */
+
+/* Help modal dialog */
#help-modal {
overflow: hidden;
padding: 10px;
- text-align: center;
+
+ img {
+ max-width: 450px;
+ margin-top: 15px;
+ margin-bottom: 15px;
+ border: 1px solid @grey;
+ box-shadow: 3px 3px 5px 0 @grey;
+ }
+}
+
+#help-modal .img-container {
+ width: 100%;
+ text-align: center;
}
.help-box {
- text-align: center;
- border: 1px solid @info-border;
- border-radius: 6px;
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 10px;
- background-color: @info;
- color: @info-color;
-}
-
-.help-intro {
- width: 100;
- text-align: left;
- margin: 15px 0 30px 0;
- font-weight: normal;
- font-size: 16px;
- color: #888;
-}
-
-.step-no {
- font-weight: bold;
-}
+ width: 100%;
+ margin-top: 15px;
+ border-radius: 6px;
+ padding: 8px;
+ color: @grey-txt;
+ font-size: 14px;
+ }
/* Activity Stream Widget */
diff --git a/awx/ui/static/less/jquery-ui-overrides.less b/awx/ui/static/less/jquery-ui-overrides.less
index 7732ef4079..1e236684d7 100644
--- a/awx/ui/static/less/jquery-ui-overrides.less
+++ b/awx/ui/static/less/jquery-ui-overrides.less
@@ -57,8 +57,14 @@
}
.ui-dialog-buttonset {
+ button.btn.btn-default.ui-state-hover,
+ button.btn.btn-default.ui-state-active,
+ button.btn.btn-default.ui-state-focus {
+ font-weight: normal;
+ }
button.btn.btn-primary.ui-state-hover,
- button.btn.btn-primary.ui-state-active {
+ button.btn.btn-primary.ui-state-active,
+ button.btn.btn-primary.ui-state-focus {
background-image: none;
color: @white;
background-color: @blue-dark;
diff --git a/awx/ui/static/lib/ansible/Utilities.js b/awx/ui/static/lib/ansible/Utilities.js
index 83c5d9c00d..1ed3e9b6d8 100644
--- a/awx/ui/static/lib/ansible/Utilities.js
+++ b/awx/ui/static/lib/ansible/Utilities.js
@@ -29,6 +29,13 @@ angular.module('Utilities',['RestServices', 'Utilities'])
$(this).remove();
});
+ try {
+ $('#help-modal').dialog('close');
+ }
+ catch(e) {
+ // ignore
+ }
+
$(window).unbind('resize');
}
@@ -250,112 +257,133 @@ angular.module('Utilities',['RestServices', 'Utilities'])
// HelpDialog({ defn: })
//
- function showHelp(params) {
- // Using a function inside a function so we can recurse
- // over the steps in the help story
-
- var defn = params.defn;
- var nxtStory = { story: { steps: { } } };
- var width, height;
- var autoShow = params.autoShow || false;
-
+ var defn = params.defn;
+ var current_step = params.step;
+ var autoShow = params.autoShow || false;
+
+ function showHelp(step) {
+ var width, height, isOpen=false;
+ current_step = step;
+
function buildHtml(step) {
var html = '';
- html += (step.intro) ? "
" + step.intro + "
" : "";
- if (step.img) {
- html += "";
- }
- html += (step.box) ? "