diff --git a/app/scripts/controllers/create/nextSteps.js b/app/scripts/controllers/create/nextSteps.js index 032bd7124b..ff2f0ad83b 100644 --- a/app/scripts/controllers/create/nextSteps.js +++ b/app/scripts/controllers/create/nextSteps.js @@ -33,6 +33,7 @@ angular.module("openshiftConsole") $scope.projectName = $routeParams.project; $scope.fromSampleRepo = $routeParams.fromSample; + $scope.name = $routeParams.breadcrumbTitle || $routeParams.name; $scope.breadcrumbs = [ { diff --git a/app/scripts/directives/create/nextSteps.js b/app/scripts/directives/create/nextSteps.js index 54369ec18c..7143268521 100644 --- a/app/scripts/directives/create/nextSteps.js +++ b/app/scripts/directives/create/nextSteps.js @@ -13,7 +13,10 @@ loginBaseUrl: '<', fromSampleRepo: '<', createdBuildConfig: '<', - onContinue: '<' + onContinue: '<', + showProjectName: '<', + name: '<', + isDialog: '<' }, templateUrl: 'views/directives/next-steps.html' }); diff --git a/app/scripts/directives/deployImageDialog.js b/app/scripts/directives/deployImageDialog.js index 50da2f24ba..be5ea8eee0 100644 --- a/app/scripts/directives/deployImageDialog.js +++ b/app/scripts/directives/deployImageDialog.js @@ -4,6 +4,7 @@ angular.module('openshiftConsole').component('deployImageDialog', { controller: [ '$scope', + '$routeParams', 'DataService', DeployImageDialog ], @@ -16,12 +17,16 @@ templateUrl: 'views/directives/deploy-image-dialog.html' }); - function DeployImageDialog($scope, DataService) { + function DeployImageDialog($scope, $routeParams, DataService) { var ctrl = this; ctrl.$onInit = function() { ctrl.loginBaseUrl = DataService.openshiftAPIBaseUrl(); ctrl.currentStep = "Image"; + // if on the landing page, show the project name in next-steps + if (!$routeParams.project) { + ctrl.showProjectName = true; + } }; ctrl.deployImage = function() { @@ -30,6 +35,7 @@ $scope.$on('deployImageNewAppCreated', function(event, message) { ctrl.selectedProject = message.project; + ctrl.appName = message.appName; ctrl.deployImageNewAppCreated = true; ctrl.currentStep = "Results"; }); diff --git a/app/scripts/directives/fromFile.js b/app/scripts/directives/fromFile.js index 6fdd30161d..7ea9982e66 100644 --- a/app/scripts/directives/fromFile.js +++ b/app/scripts/directives/fromFile.js @@ -350,11 +350,14 @@ angular.module("openshiftConsole") DataService.create(APIService.kindToResource(resource.kind), null, resource, {namespace: $scope.input.selectedProject.metadata.name}).then( // create resource success function() { - var kind = humanizeKind(resource.kind); - NotificationsService.addNotification({ - type: "success", - message: _.capitalize(kind) + " " + resource.metadata.name + " was successfully created." - }); + if (!$scope.isDialog) { + var kind = humanizeKind(resource.kind); + NotificationsService.addNotification({ + type: "success", + message: _.capitalize(kind) + " " + resource.metadata.name + " was successfully created." + }); + } + redirect(); }, // create resource failure @@ -371,11 +374,14 @@ angular.module("openshiftConsole") DataService.update(APIService.kindToResource(resource.kind), resource.metadata.name, resource, {namespace: $scope.input.selectedProject.metadata.name}).then( // update resource success function() { - var kind = humanizeKind(resource.kind); - NotificationsService.addNotification({ - type: "success", - message: _.capitalize(kind) + " " + resource.metadata.name + " was successfully updated." - }); + if (!$scope.isDialog) { + var kind = humanizeKind(resource.kind); + NotificationsService.addNotification({ + type: "success", + message: _.capitalize(kind) + " " + resource.metadata.name + " was successfully updated." + }); + } + redirect(); }, // update resource failure diff --git a/app/scripts/directives/fromFileDialog.js b/app/scripts/directives/fromFileDialog.js index 06134299da..01c50ca035 100644 --- a/app/scripts/directives/fromFileDialog.js +++ b/app/scripts/directives/fromFileDialog.js @@ -5,6 +5,8 @@ controller: [ '$scope', '$timeout', + '$routeParams', + '$filter', 'DataService', FromFileDialog ], @@ -17,12 +19,16 @@ templateUrl: 'views/directives/from-file-dialog.html' }); - function FromFileDialog($scope, $timeout, DataService) { + function FromFileDialog($scope, $timeout, $routeParams, $filter, DataService) { var ctrl = this; ctrl.$onInit = function() { ctrl.alerts = {}; ctrl.loginBaseUrl = DataService.openshiftAPIBaseUrl(); + // if on the landing page, show the project name in next-steps + if (!$routeParams.project) { + ctrl.showProjectName = true; + } }; function getIconClass() { @@ -42,6 +48,7 @@ ctrl.selectedProject = message.project; ctrl.template = message.template; ctrl.iconClass = getIconClass(); + ctrl.name = "YAML / JSON"; // Need to let the current digest loop finish so the template config step becomes visible or the wizard will throw an error // from the change to currentStep $timeout(function() { @@ -51,6 +58,7 @@ $scope.$on('templateInstantiated', function(event, message) { ctrl.selectedProject = message.project; + ctrl.name = $filter('displayName')(ctrl.template); ctrl.currentStep = "Results"; }); @@ -73,7 +81,7 @@ } }; - ctrl.currentStep = "JSON / YAML"; + ctrl.currentStep = "YAML / JSON"; ctrl.nextCallback = function (step) { if (step.stepId === 'file') { diff --git a/app/scripts/directives/processTemplateDialog.js b/app/scripts/directives/processTemplateDialog.js index c64bb7d83e..67a7c3520c 100644 --- a/app/scripts/directives/processTemplateDialog.js +++ b/app/scripts/directives/processTemplateDialog.js @@ -5,6 +5,7 @@ controller: [ '$scope', '$filter', + '$routeParams', 'Catalog', 'DataService', 'KeywordService', @@ -25,6 +26,7 @@ function ProcessTemplateDialog($scope, $filter, + $routeParams, Catalog, DataService, KeywordService, @@ -78,7 +80,6 @@ onShow: showResults }; - ctrl.$onInit = function() { ctrl.loginBaseUrl = DataService.openshiftAPIBaseUrl(); ctrl.preSelectedProject = ctrl.selectedProject = ctrl.project; @@ -113,6 +114,10 @@ appliedFilters: [], onFilterChange: filterChange }; + // if on the landing page, show the project name in next-steps + if (!$routeParams.project) { + ctrl.showProjectName = true; + } }; ctrl.$onChanges = function(changes) { diff --git a/app/styles/_core.less b/app/styles/_core.less index 6829314460..8e8e260510 100644 --- a/app/styles/_core.less +++ b/app/styles/_core.less @@ -703,16 +703,13 @@ label.checkbox { } .template-message { - background-color: #d9edf7; - border-color: #31708f; - border-style: solid; - border-width: 1px; - color: black; + background-color: transparent; + border: 1px solid @color-pf-black-300; .resource-description { - margin-bottom: 0; font-family: @font-family-monospace; // Consistent font-size with the CLI examples in code blocks below the template message. font-size: (@font-size-base - 1); + margin-bottom: 0; } } diff --git a/app/views/create/next-steps.html b/app/views/create/next-steps.html index bb67fe0d8a..d7ef9d5186 100644 --- a/app/views/create/next-steps.html +++ b/app/views/create/next-steps.html @@ -1,15 +1,16 @@
-
-
- +
+
+ - + -
-
+
+
diff --git a/app/views/directives/deploy-image-dialog.html b/app/views/directives/deploy-image-dialog.html index fa920af046..8033691133 100644 --- a/app/views/directives/deploy-image-dialog.html +++ b/app/views/directives/deploy-image-dialog.html @@ -41,7 +41,10 @@ + on-continue="$ctrl.close" + show-project-name="$ctrl.showProjectName" + name="$ctrl.appName" + is-dialog="true"> diff --git a/app/views/directives/from-file-dialog.html b/app/views/directives/from-file-dialog.html index 2f91ad9c78..305b6c6189 100644 --- a/app/views/directives/from-file-dialog.html +++ b/app/views/directives/from-file-dialog.html @@ -10,7 +10,7 @@ on-step-changed="$ctrl.stepChanged(step)" step-class="order-service-wizard-step"> + on-continue="$ctrl.close" + show-project-name="$ctrl.showProjectName" + name="$ctrl.name" + is-dialog="true"> diff --git a/app/views/directives/next-steps.html b/app/views/directives/next-steps.html index 77de0e8150..91d5292ca5 100644 --- a/app/views/directives/next-steps.html +++ b/app/views/directives/next-steps.html @@ -1,10 +1,58 @@
-

Completed. Go to overview.

-

Application created. Continue to overview.

-

Creating...

-

Completed, with errors

+
+
+ + Pending +

+ {{$ctrl.name}} is being created in {{$ctrl.projectName}}. +

+
+
+
+
+ + Error +

+ {{$ctrl.name}} failed to be created in {{$ctrl.projectName}}. +

+
+
+ +
+
+ + Success +

+ {{$ctrl.name}} has been created in {{$ctrl.projectName}} successfully. +

+
+
+
+
+ + Success +

+ {{$ctrl.name}} has been created in {{$ctrl.projectName}} successfully. +

+
+
+ +

+ Continue to the project overview. +

-
+ +
+
    +
  • + {{alert.message}} + {{alert.details}} +
  • +
+
+ + +
@@ -39,62 +87,33 @@

-
-
-

Things you can do

-

Go to the overview page to see more details about this project. Make sure you don't already have services, build configs, deployment configs, or other resources with the same names you are trying to create. Refer to the documentation for creating new applications for more information.

-

Command line tools

-

You may want to use the oc command line tool to help with troubleshooting. After downloading and installing it, you can log in, switch to this particular project, and try some commands :

- -
oc login {{$ctrl.loginBaseUrl}}
-oc project {{$ctrl.projectName}}
-oc logs -h
- -

For more information about the command line tools, check the CLI Reference and Basic CLI Operations.

-
- -
-

Manage your app

-

The web console is convenient, but if you need deeper control you may want to try our command line tools.

- -

Command line tools

-

Download and install the oc command line tool. After that, you can start by logging in, switching to this particular project, and displaying an overview of it, by doing:

- -
oc login {{$ctrl.loginBaseUrl}}
-oc project {{$ctrl.projectName}}
-oc status
- -

For more information about the command line tools, check the CLI Reference and Basic CLI Operations.

-
- -
-

Making code changes

+
+

Making code changes

+

+ You are set up to use the example git repository. If you would like to modify the source code, fork the {{$ctrl.createdBuildConfig.spec.source.git.uri}} repository to an OpenShift-visible git account and edit the {{$ctrl.createdBuildConfig.metadata.name}} build config to point to your fork. + Note that this will start a new build. +

+
+

+ A GitHub webhook trigger has been created for the {{$ctrl.createdBuildConfig.metadata.name}} build config. +

- You are set up to use the example git repository. If you would like to modify the source code, fork the {{$ctrl.createdBuildConfig.spec.source.git.uri}} repository to an OpenShift-visible git account and edit the {{$ctrl.createdBuildConfig.metadata.name}} build config to point to your fork. - Note that this will start a new build. + You can configure the webhook in the forked repository's settings, using the following payload URL:

-
-

- A GitHub webhook trigger has been created for the {{$ctrl.createdBuildConfig.metadata.name}} build config. -

-

- You can configure the webhook in the forked repository's settings, using the following payload URL: -

-

- - You can now set up the webhook in the GitHub repository settings if you own it, in {{$ctrl.createdBuildConfig.spec.source.git.uri | githubLink}}/settings/hooks, using the following payload URL and specifying a Content type of application/json: - - - Your source does not appear to be a URL to a GitHub repository. If you have a GitHub repository that you want to trigger this build from then use the following payload URL and specifying a Content type of application/json: - -

- -
+

+ + You can now set up the webhook in the GitHub repository settings if you own it, in {{$ctrl.createdBuildConfig.spec.source.git.uri | githubLink}}/settings/hooks, using the following payload URL and specifying a Content type of application/json: + + + Your source does not appear to be a URL to a GitHub repository. If you have a GitHub repository that you want to trigger this build from then use the following payload URL and specifying a Content type of application/json: + +

+
-

Applied Parameter Values

+

Applied Parameter Values

These parameters often include things like passwords. If you will need to reference these values later, copy them to a safe location. Parameters {{paramName}}, were generated automatically. Parameter {{$ctrl.parameters.generated[0]}} was generated automatically. diff --git a/app/views/directives/process-template-dialog/process-template-results.html b/app/views/directives/process-template-dialog/process-template-results.html index ab4b4151e1..9aada385db 100644 --- a/app/views/directives/process-template-dialog/process-template-results.html +++ b/app/views/directives/process-template-dialog/process-template-results.html @@ -3,6 +3,9 @@ project="$ctrl.selectedProject" project-name="$ctrl.selectedProject.metadata.name" login-base-url="$ctrl.loginBaseUrl" - on-continue="$ctrl.close"> + on-continue="$ctrl.close" + show-project-name="$ctrl.showProjectName" + name="$ctrl.template | displayName" + is-dialog="true">

diff --git a/app/views/overview.html b/app/views/overview.html index ed42bcfbea..5900ed33a0 100644 --- a/app/views/overview.html +++ b/app/views/overview.html @@ -2,7 +2,6 @@
-
diff --git a/app/views/overview/_service-instance-row.html b/app/views/overview/_service-instance-row.html index 77a05c4fa5..a92321cf2c 100644 --- a/app/views/overview/_service-instance-row.html +++ b/app/views/overview/_service-instance-row.html @@ -63,7 +63,7 @@

class="hidden-xs" ng-if="(!row.instanceStatus || row.instanceStatus === 'ready') && row.apiObject.status.dashboardURL"> - Console + Dashboard

diff --git a/bower.json b/bower.json index fe46a1517c..8a47c69f2b 100644 --- a/bower.json +++ b/bower.json @@ -46,8 +46,8 @@ "angular-moment": "1.0.0", "angular-utf8-base64": "0.0.5", "file-saver": "1.3.3", - "origin-web-common": "0.0.61", - "origin-web-catalog": "0.0.50" + "origin-web-common": "0.0.62", + "origin-web-catalog": "0.0.51" }, "devDependencies": { "angular-mocks": "1.5.11", diff --git a/dist/scripts/scripts.js b/dist/scripts/scripts.js index d5e384989c..8b137f8a96 100644 --- a/dist/scripts/scripts.js +++ b/dist/scripts/scripts.js @@ -7955,7 +7955,7 @@ f.toProjectOverview(e.projectName); } ]), angular.module("openshiftConsole").controller("NextStepsController", [ "$scope", "$http", "$routeParams", "DataService", "$q", "$location", "TaskList", "$parse", "Navigate", "Logger", "$filter", "imageObjectRefFilter", "failureObjectNameFilter", "ProjectsService", function(e, t, n, a, r, o, i, s, c, l, u, d, m, p) { u("displayName"); var f = []; -e.alerts = [], e.loginBaseUrl = a.openshiftAPIBaseUrl(), e.buildConfigs = {}, e.projectName = n.project, e.fromSampleRepo = n.fromSample, e.breadcrumbs = [ { +e.alerts = [], e.loginBaseUrl = a.openshiftAPIBaseUrl(), e.buildConfigs = {}, e.projectName = n.project, e.fromSampleRepo = n.fromSample, e.name = n.breadcrumbTitle || n.name, e.breadcrumbs = [ { title: "Add to Project", link: "project/" + e.projectName + "/create" }, { @@ -9420,11 +9420,14 @@ var t; _.isEmpty(p.createResources) ? (t = _.head(p.updateResources), i.update(r.kindToResource(t.kind), t.metadata.name, t, { namespace: p.input.selectedProject.metadata.name }).then(function() { +if (!p.isDialog) { var e = P(t.kind); c.addNotification({ type: "success", message: _.capitalize(e) + " " + t.metadata.name + " was successfully updated." -}), b(); +}); +} +b(); }, function(n) { c.addNotification({ id: "from-file-error", @@ -9435,11 +9438,14 @@ details: e("getErrorDetails")(n) })) : (t = _.head(p.createResources), i.create(r.kindToResource(t.kind), null, t, { namespace: p.input.selectedProject.metadata.name }).then(function() { +if (!p.isDialog) { var e = P(t.kind); c.addNotification({ type: "success", message: _.capitalize(e) + " " + t.metadata.name + " was successfully created." -}), b(); +}); +} +b(); }, function(n) { c.addNotification({ id: "from-file-error", @@ -13001,53 +13007,53 @@ templateUrl: "views/directives/process-template.html" }); }(), function() { angular.module("openshiftConsole").component("processTemplateDialog", { -controller: [ "$scope", "$filter", "Catalog", "DataService", "KeywordService", "NotificationsService", "ProjectsService", "RecentlyViewedProjectsService", function(e, t, n, a, r, o, i, s) { -function c() { -var e = _.get(v, "template.metadata.annotations.iconClass", "fa fa-clone"); -return -1 !== e.indexOf("icon-") ? "font-icon " + e : e; -} +controller: [ "$scope", "$filter", "$routeParams", "Catalog", "DataService", "KeywordService", "NotificationsService", "ProjectsService", "RecentlyViewedProjectsService", function(e, t, n, a, r, o, i, s, c) { function l() { -v.steps || (v.steps = [ v.selectStep, v.infoStep, v.configStep, v.resultsStep ]); +var e = _.get(y, "template.metadata.annotations.iconClass", "fa fa-clone"); +return -1 !== e.indexOf("icon-") ? "font-icon " + e : e; } function u() { -h && (h(), h = void 0); +y.steps || (y.steps = [ y.selectStep, y.infoStep, y.configStep, y.resultsStep ]); } function d() { -e.$broadcast("instantiateTemplate"); +v && (v(), v = void 0); } -function m(e, t) { -return r.filterForKeywords(t, [ "name", "tags" ], r.generateKeywords(e)); +function m() { +e.$broadcast("instantiateTemplate"); } -function p(e) { -v.filterConfig.appliedFilters = e, f(); +function p(e, t) { +return o.filterForKeywords(t, [ "name", "tags" ], o.generateKeywords(e)); } -function f() { -v.filteredItems = v.catalogItems, v.filterConfig.appliedFilters && v.filterConfig.appliedFilters.length > 0 && _.each(v.filterConfig.appliedFilters, function(e) { -v.filteredItems = m(e.value, v.filteredItems); -}), v.filterConfig.resultsCount = v.filteredItems.length, _.includes(v.filteredItems, v.selectedTemplate) || v.templateSelected(); +function f(e) { +y.filterConfig.appliedFilters = e, g(); } function g() { -v.unfilteredProjects || i.list().then(function(e) { -v.unfilteredProjects = _.toArray(e.by("metadata.name")); +y.filteredItems = y.catalogItems, y.filterConfig.appliedFilters && y.filterConfig.appliedFilters.length > 0 && _.each(y.filterConfig.appliedFilters, function(e) { +y.filteredItems = p(e.value, y.filteredItems); +}), y.filterConfig.resultsCount = y.filteredItems.length, _.includes(y.filteredItems, y.selectedTemplate) || y.templateSelected(); +} +function h() { +y.unfilteredProjects || s.list().then(function(e) { +y.unfilteredProjects = _.toArray(e.by("metadata.name")); }, function() { -v.unfilteredProjects = []; +y.unfilteredProjects = []; }).finally(function() { -y(); +b(); }); } -var h, v = this; -v.selectStep = { +var v, y = this; +y.selectStep = { id: "projectTemplates", label: "Selection", view: "views/directives/process-template-dialog/process-template-select.html", -hidden: !0 !== v.useProjectTemplate, +hidden: !0 !== y.useProjectTemplate, allowed: !0, valid: !1, allowClickNav: !0, onShow: function() { -v.infoStep.selected = !1, v.selectStep.selected = !0, v.configStep.selected = !1, v.resultsStep.selected = !1, v.nextTitle = "Next >", u(), g(); +y.infoStep.selected = !1, y.selectStep.selected = !0, y.configStep.selected = !1, y.resultsStep.selected = !1, y.nextTitle = "Next >", d(), h(); } -}, v.infoStep = { +}, y.infoStep = { id: "info", label: "Information", view: "views/directives/process-template-dialog/process-template-info.html", @@ -13055,9 +13061,9 @@ allowed: !0, valid: !0, allowClickNav: !0, onShow: function() { -v.infoStep.selected = !0, v.selectStep.selected = !1, v.configStep.selected = !1, v.resultsStep.selected = !1, v.nextTitle = "Next >", u(); +y.infoStep.selected = !0, y.selectStep.selected = !1, y.configStep.selected = !1, y.resultsStep.selected = !1, y.nextTitle = "Next >", d(); } -}, v.configStep = { +}, y.configStep = { id: "configuration", label: "Configuration", view: "views/directives/process-template-dialog/process-template-config.html", @@ -13065,11 +13071,11 @@ valid: !1, allowed: !0, allowClickNav: !0, onShow: function() { -v.infoStep.selected = !1, v.selectStep.selected = !1, v.configStep.selected = !0, v.resultsStep.selected = !1, v.nextTitle = "Create", v.resultsStep.allowed = v.configStep.valid, h = e.$watch("$ctrl.form.$valid", function(e) { -v.configStep.valid = e && v.selectedProject, v.resultsStep.allowed = e; +y.infoStep.selected = !1, y.selectStep.selected = !1, y.configStep.selected = !0, y.resultsStep.selected = !1, y.nextTitle = "Create", y.resultsStep.allowed = y.configStep.valid, v = e.$watch("$ctrl.form.$valid", function(e) { +y.configStep.valid = e && y.selectedProject, y.resultsStep.allowed = e; }); } -}, v.resultsStep = { +}, y.resultsStep = { id: "results", label: "Results", view: "views/directives/process-template-dialog/process-template-results.html", @@ -13078,18 +13084,18 @@ allowed: !1, prevEnabled: !1, allowClickNav: !1, onShow: function() { -v.infoStep.selected = !1, v.selectStep.selected = !1, v.configStep.selected = !1, v.resultsStep.selected = !0, v.nextTitle = "Close", u(), v.wizardDone = !0; +y.infoStep.selected = !1, y.selectStep.selected = !1, y.configStep.selected = !1, y.resultsStep.selected = !0, y.nextTitle = "Close", d(), y.wizardDone = !0; } -}, v.$onInit = function() { -v.loginBaseUrl = a.openshiftAPIBaseUrl(), v.preSelectedProject = v.selectedProject = v.project, g(), v.projectEmptyState = { +}, y.$onInit = function() { +y.loginBaseUrl = r.openshiftAPIBaseUrl(), y.preSelectedProject = y.selectedProject = y.project, h(), y.projectEmptyState = { icon: "pficon pficon-info", title: "No Project Selected", info: "Please select a project from the dropdown to load Templates from that project." -}, v.templatesEmptyState = { +}, y.templatesEmptyState = { icon: "pficon pficon-info", title: "No Templates", info: "The selected project has no templates available to import." -}, v.filterConfig = { +}, y.filterConfig = { fields: [ { id: "keyword", title: "Keyword", @@ -13102,34 +13108,34 @@ itemsLabel: "Item", itemsLabelPlural: "Items", resultsCount: 0, appliedFilters: [], -onFilterChange: p -}; -}, v.$onChanges = function(e) { -e.template && v.template && (l(), v.iconClass = c()), e.useProjectTemplate && l(); +onFilterChange: f +}, n.project || (y.showProjectName = !0); +}, y.$onChanges = function(e) { +e.template && y.template && (u(), y.iconClass = l()), e.useProjectTemplate && u(); }, e.$on("templateInstantiated", function(e, t) { -v.selectedProject = t.project, v.currentStep = v.resultsStep.label; -}), v.$onDestroy = function() { -u(); -}, v.next = function(e) { -return e.stepId === v.configStep.id ? (d(), !1) : e.stepId !== v.resultsStep.id || (v.close(), !1); -}, v.close = function() { -var e = v.onDialogClosed(); +y.selectedProject = t.project, y.currentStep = y.resultsStep.label; +}), y.$onDestroy = function() { +d(); +}, y.next = function(e) { +return e.stepId === y.configStep.id ? (m(), !1) : e.stepId !== y.resultsStep.id || (y.close(), !1); +}, y.close = function() { +var e = y.onDialogClosed(); _.isFunction(e) && e(); -}, v.onProjectSelected = function(t) { -v.selectedProject = t, v.configStep.valid = e.$ctrl.form.$valid && v.selectedProject; -}, v.templateSelected = function(e) { -v.selectedTemplate = e, v.template = _.get(e, "resource"), v.selectStep.valid = !!e, v.iconClass = c(); -}, v.templateProjectChange = function() { -v.templateProjectName = _.get(v.templateProject, "metadata.name"), v.catalogItems = {}, v.templateSelected(), n.getProjectCatalogItems(v.templateProjectName, !1, !0).then(_.spread(function(e, t) { -v.catalogItems = e, v.totalCount = v.catalogItems.length, p(), t && o.addNotification({ +}, y.onProjectSelected = function(t) { +y.selectedProject = t, y.configStep.valid = e.$ctrl.form.$valid && y.selectedProject; +}, y.templateSelected = function(e) { +y.selectedTemplate = e, y.template = _.get(e, "resource"), y.selectStep.valid = !!e, y.iconClass = l(); +}, y.templateProjectChange = function() { +y.templateProjectName = _.get(y.templateProject, "metadata.name"), y.catalogItems = {}, y.templateSelected(), a.getProjectCatalogItems(y.templateProjectName, !1, !0).then(_.spread(function(e, t) { +y.catalogItems = e, y.totalCount = y.catalogItems.length, f(), t && i.addNotification({ type: "error", message: t }); })); }; -var y = function() { -var e = _.reject(v.unfilteredProjects, "metadata.deletionTimestamp"), n = _.sortBy(e, t("displayName")); -v.searchEnabled = !_.isEmpty(e), v.templateProjects = s.orderByMostRecentlyViewed(n); +var b = function() { +var e = _.reject(y.unfilteredProjects, "metadata.deletionTimestamp"), n = _.sortBy(e, t("displayName")); +y.searchEnabled = !_.isEmpty(e), y.templateProjects = c.orderByMostRecentlyViewed(n); }; } ], controllerAs: "$ctrl", @@ -13143,21 +13149,21 @@ templateUrl: "views/directives/process-template-dialog.html" }); }(), function() { angular.module("openshiftConsole").component("deployImageDialog", { -controller: [ "$scope", "DataService", function(e, t) { -var n = this; -n.$onInit = function() { -n.loginBaseUrl = t.openshiftAPIBaseUrl(), n.currentStep = "Image"; -}, n.deployImage = function() { +controller: [ "$scope", "$routeParams", "DataService", function(e, t, n) { +var a = this; +a.$onInit = function() { +a.loginBaseUrl = n.openshiftAPIBaseUrl(), a.currentStep = "Image", t.project || (a.showProjectName = !0); +}, a.deployImage = function() { e.$broadcast("newAppFromDeployImage"); }, e.$on("deployImageNewAppCreated", function(e, t) { -n.selectedProject = t.project, n.deployImageNewAppCreated = !0, n.currentStep = "Results"; -}), n.close = function() { -var e = n.onDialogClosed(); -return _.isFunction(e) && e(), n.wizardDone = !1, !0; -}, n.stepChanged = function(e) { -"results" === e.stepId ? (n.nextButtonTitle = "Close", n.wizardDone = !0) : n.nextButtonTitle = "Deploy"; -}, n.nextCallback = function(e) { -return "image" === e.stepId ? (n.deployImage(), !1) : "results" !== e.stepId || (n.close(), !1); +a.selectedProject = t.project, a.appName = t.appName, a.deployImageNewAppCreated = !0, a.currentStep = "Results"; +}), a.close = function() { +var e = a.onDialogClosed(); +return _.isFunction(e) && e(), a.wizardDone = !1, !0; +}, a.stepChanged = function(e) { +"results" === e.stepId ? (a.nextButtonTitle = "Close", a.wizardDone = !0) : a.nextButtonTitle = "Deploy"; +}, a.nextCallback = function(e) { +return "image" === e.stepId ? (a.deployImage(), !1) : "results" !== e.stepId || (a.close(), !1); }; } ], controllerAs: "$ctrl", @@ -13170,32 +13176,32 @@ templateUrl: "views/directives/deploy-image-dialog.html" }); }(), function() { angular.module("openshiftConsole").component("fromFileDialog", { -controller: [ "$scope", "$timeout", "DataService", function(e, t, n) { -function a() { -var e = _.get(r, "template.metadata.annotations.iconClass", "fa fa-clone"); +controller: [ "$scope", "$timeout", "$routeParams", "$filter", "DataService", function(e, t, n, a, r) { +function o() { +var e = _.get(i, "template.metadata.annotations.iconClass", "fa fa-clone"); return -1 !== e.indexOf("icon-") ? "font-icon " + e : e; } -var r = this; -r.$onInit = function() { -r.alerts = {}, r.loginBaseUrl = n.openshiftAPIBaseUrl(); -}, r.importFile = function() { +var i = this; +i.$onInit = function() { +i.alerts = {}, i.loginBaseUrl = r.openshiftAPIBaseUrl(), n.project || (i.showProjectName = !0); +}, i.importFile = function() { e.$broadcast("importFileFromYAMLOrJSON"); -}, r.instantiateTemplate = function() { +}, i.instantiateTemplate = function() { e.$broadcast("instantiateTemplate"); }, e.$on("fileImportedFromYAMLOrJSON", function(e, n) { -r.selectedProject = n.project, r.template = n.template, r.iconClass = a(), t(function() { -r.currentStep = r.template ? "Template Configuration" : "Results"; +i.selectedProject = n.project, i.template = n.template, i.iconClass = o(), i.name = "YAML / JSON", t(function() { +i.currentStep = i.template ? "Template Configuration" : "Results"; }, 0); }), e.$on("templateInstantiated", function(e, t) { -r.selectedProject = t.project, r.currentStep = "Results"; -}), r.close = function() { -r.template = null; -var e = r.onDialogClosed(); -return _.isFunction(e) && e(), r.wizardDone = !1, !0; -}, r.stepChanged = function(e) { -"results" === e.stepId ? (r.nextButtonTitle = "Close", r.wizardDone = !0) : r.nextButtonTitle = "Create"; -}, r.currentStep = "JSON / YAML", r.nextCallback = function(e) { -return "file" === e.stepId ? (r.importFile(), !1) : "template" === e.stepId ? (r.instantiateTemplate(), !1) : "results" !== e.stepId || (r.close(), !1); +i.selectedProject = t.project, i.name = a("displayName")(i.template), i.currentStep = "Results"; +}), i.close = function() { +i.template = null; +var e = i.onDialogClosed(); +return _.isFunction(e) && e(), i.wizardDone = !1, !0; +}, i.stepChanged = function(e) { +"results" === e.stepId ? (i.nextButtonTitle = "Close", i.wizardDone = !0) : i.nextButtonTitle = "Create"; +}, i.currentStep = "YAML / JSON", i.nextCallback = function(e) { +return "file" === e.stepId ? (i.importFile(), !1) : "template" === e.stepId ? (i.instantiateTemplate(), !1) : "results" !== e.stepId || (i.close(), !1); }; } ], controllerAs: "$ctrl", @@ -13249,7 +13255,10 @@ projectName: "<", loginBaseUrl: "<", fromSampleRepo: "<", createdBuildConfig: "<", -onContinue: "<" +onContinue: "<", +showProjectName: "<", +name: "<", +isDialog: "<" }, templateUrl: "views/directives/next-steps.html" }); diff --git a/dist/scripts/templates.js b/dist/scripts/templates.js index 1dfb6d39b8..c410eb46a5 100644 --- a/dist/scripts/templates.js +++ b/dist/scripts/templates.js @@ -5052,7 +5052,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "
\n" + "\n" + - "\n" + + "\n" + "
\n" + "
\n" + "
" @@ -6269,7 +6269,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "
\n" + "
\n" + - "\n" + + "\n" + "\n" + "
\n" + "
\n" + @@ -7047,7 +7047,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/directives/from-file-dialog.html', "\n" + - "\n" + + "\n" + "
\n" + "
\n" + "
\n" + @@ -7097,7 +7097,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "
\n" + "\n" + - "\n" + + "\n" + "\n" + "
\n" + "
\n" + @@ -7647,11 +7647,56 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/directives/next-steps.html', "
\n" + - "

Completed. Go to overview.

\n" + - "

Application created. Continue to overview.

\n" + - "

Creating...

\n" + - "

Completed, with errors

\n" + - "
\n" + + "
\n" + + "
\n" + + "\n" + + "Pending\n" + + "

\n" + + "{{$ctrl.name}} is being created in {{$ctrl.projectName}}.\n" + + "

\n" + + "
\n" + + "
\n" + + "
\n" + + "
\n" + + "\n" + + "Error\n" + + "

\n" + + "{{$ctrl.name}} failed to be created in {{$ctrl.projectName}}.\n" + + "

\n" + + "
\n" + + "
\n" + + "\n" + + "
\n" + + "
\n" + + "\n" + + "Success\n" + + "

\n" + + "{{$ctrl.name}} has been created in {{$ctrl.projectName}} successfully.\n" + + "

\n" + + "
\n" + + "
\n" + + "
\n" + + "
\n" + + "\n" + + "Success\n" + + "

\n" + + "{{$ctrl.name}} has been created in {{$ctrl.projectName}} successfully.\n" + + "

\n" + + "
\n" + + "
\n" + + "

\n" + + "Continue to the project overview.\n" + + "

\n" + + "\n" + + "
\n" + + "
    \n" + + "
  • \n" + + "{{alert.message}} {{alert.details}}\n" + + "
  • \n" + + "
\n" + + "
\n" + + "\n" + + "
\n" + "
\n" + "
\n" + "\n" + @@ -7684,29 +7729,8 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "
\n" + "
\n" + - "
\n" + - "
\n" + - "

Things you can do

\n" + - "

Go to the overview page to see more details about this project. Make sure you don't already have services, build configs, deployment configs, or other resources with the same names you are trying to create. Refer to the documentation for creating new applications for more information.

\n" + - "

Command line tools

\n" + - "

You may want to use the oc command line tool to help with troubleshooting. After downloading and installing it, you can log in, switch to this particular project, and try some commands :

\n" + - "
oc login {{$ctrl.loginBaseUrl}}\n" +
-    "oc project {{$ctrl.projectName}}\n" +
-    "oc logs -h
\n" + - "

For more information about the command line tools, check the CLI Reference and Basic CLI Operations.

\n" + - "
\n" + - "
\n" + - "

Manage your app

\n" + - "

The web console is convenient, but if you need deeper control you may want to try our command line tools.

\n" + - "

Command line tools

\n" + - "

Download and install the oc command line tool. After that, you can start by logging in, switching to this particular project, and displaying an overview of it, by doing:

\n" + - "
oc login {{$ctrl.loginBaseUrl}}\n" +
-    "oc project {{$ctrl.projectName}}\n" +
-    "oc status
\n" + - "

For more information about the command line tools, check the CLI Reference and Basic CLI Operations.

\n" + - "
\n" + - "
\n" + - "

Making code changes

\n" + + "
\n" + + "

Making code changes

\n" + "

\n" + "You are set up to use the example git repository. If you would like to modify the source code, fork the {{$ctrl.createdBuildConfig.spec.source.git.uri}} repository to an OpenShift-visible git account and edit the {{$ctrl.createdBuildConfig.metadata.name}} build config to point to your fork.\n" + "Note that this will start a new build.\n" + @@ -7729,9 +7753,8 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "

\n" + "
\n" + - "
\n" + "
\n" + - "

Applied Parameter Values

\n" + + "

Applied Parameter Values

\n" + "

These parameters often include things like passwords. If you will need to reference these values later, copy them to a safe location.\n" + " 1\">Parameters {{paramName}}, were generated automatically.\n" + "Parameter {{$ctrl.parameters.generated[0]}} was generated automatically.\n" + @@ -8914,7 +8937,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/directives/process-template-dialog/process-template-results.html', "

\n" + - "\n" + + "\n" + "\n" + "
" ); @@ -11434,7 +11457,6 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "\n" + "
\n" + - "\n" + "\n" + "\n" + "
\n" + @@ -12411,7 +12433,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "\n" + "
\n" + diff --git a/dist/scripts/vendor.js b/dist/scripts/vendor.js index 63128167b4..7e9f6dcadd 100644 --- a/dist/scripts/vendor.js +++ b/dist/scripts/vendor.js @@ -72764,7 +72764,7 @@ description: "Name must consist of lower-case letters, numbers, periods, and hyp }).constant("IS_IOS", /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream), hawtioPluginLoader.addModule("openshiftCommonUI"), angular.module("openshiftCommonUI").run([ "$templateCache", function(e) { "use strict"; e.put("src/components/binding/bindApplicationForm.html", '
\n
\n
\n \n \n Bindings create a secret containing the necessary information for an application to use a service.\n \n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n Bindings can be created later from within a project.\n \n
\n
\n
\n \n
\n \n \n \n {{serviceInstance.metadata.name}}\n \n
\n
\n

\n \n \n There are no bindable services in this project\n \n

\n
\n
\n
\n
\n'), -e.put("src/components/binding/bindResults.html", '
\n
\n \n

\n Pending\n
The binding was created but is not ready yet.
\n

\n
\n
\n
\n \n Success\n

\n {{ctrl.serviceToBind}}\n has been bound\n to {{ctrl.applicationToBind}} successfully\n

\n
\n
\n The binding operation created the secret\n {{ctrl.binding.spec.secretName}}\n {{ctrl.binding.spec.secretName}}\n that you may need to reference in your application.\n Its data will be available to your application as environment variables.\n
\n
\n \n Info\n The binding secret will only be available to new pods. You will need to redeploy your application.\n
\n
\n
\n
\n
\n \n Error\n

\n Binding Failed\n

\n
\n
\n \n {{ctrl.error.data.message | upperFirst}}\n \n \n An error occurred creating the binding.\n \n
\n
\n {{ctrl.binding | bindingFailedMessage}}\n
\n
\n'), +e.put("src/components/binding/bindResults.html", '
\n
\n \n Pending\n

\n The binding is being created.\n

\n
\n
\n
\n \n Success\n

\n \n {{ctrl.serviceToBind}} has been bound to\n {{ctrl.applicationToBind}} successfully.\n \n \n {{ctrl.serviceToBind}} binding created successfully.\n \n

\n
\n
\n The binding operation created the secret\n {{ctrl.binding.spec.secretName}}\n {{ctrl.binding.spec.secretName}}\n that you may need to reference in your application.\n Its data will be available to your application as environment variables.\n
\n
\n \n Info\n The binding secret will only be available to new pods. You will need to redeploy your application.\n
\n
\n
\n
\n
\n \n Error\n

\n The binding could not be created.\n

\n
\n
\n \n {{ctrl.error.data.message | upperFirst}}\n \n \n An error occurred creating the binding.\n \n
\n
\n {{ctrl.binding | bindingFailedMessage}}\n
\n
\n'), e.put("src/components/binding/bindServiceForm.html", '
\n
\n
\n \n Bindings create a secret containing the necessary information for an application to use this service.\n
\n
\n\n
\n
\n
\n \n
\n \n \n \n {{$select.selected.metadata.name}}\n – {{$select.selected.kind | humanizeKind : true}}\n \n \n \n \n \n \n
\n \n
\n Secrets can be referenced later from an application.\n
\n \n
\n Bindings can be created later from within a project.\n
\n
\n
\n
\n
\n'), e.put("src/components/create-project/createProject.html", '
\n
\n
\n \n \n \n \n
\n A unique name for the project.\n
\n
\n \n Name is required.\n \n
\n
\n \n Name must have at least two characters.\n \n
\n
\n \n Project names may only contain lower-case letters, numbers, and dashes.\n They may not start or end with a dash.\n \n
\n
\n \n This name is already in use. Please choose a different name.\n \n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n Cancel\n \n
\n
\n
\n'), e.put("src/components/delete-project/delete-project-button.html", '
\n \x3c!-- Avoid whitespace inside the link --\x3e\n Delete Project {{projectName}}\n
\n'), e.put("src/components/delete-project/delete-project-modal.html", '
\n \x3c!-- Use a form so that the enter key submits when typing a project name to confirm. --\x3e\n
\n \n \n
\n
\n'), @@ -72797,22 +72797,13 @@ controllerAs: "ctrl", bindings: { error: "<", binding: "<", -progressInline: "@", serviceToBind: "<", bindType: "@", applicationToBind: "<", showPodPresets: "<", secretHref: "<" }, -templateUrl: "src/components/binding/bindResults.html", -controller: function() { -var e = this; -e.$onInit = function() { -e.progressInline = "true" === e.progressInline; -}, e.$onChanges = function(t) { -t.progressInline && (e.progressInline = "true" === e.progressInline); -}; -} +templateUrl: "src/components/binding/bindResults.html" }), angular.module("openshiftCommonUI").component("bindServiceForm", { controllerAs: "ctrl", bindings: { @@ -73026,15 +73017,20 @@ d.shown && c(); return { restrict: "A", scope: { -oscUnique: "=" +oscUnique: "=", +oscUniqueDisabled: "=" }, require: "ngModel", link: function(e, t, n, i) { -var r = []; +var r = [], o = !0; e.$watchCollection("oscUnique", function(e) { r = _.isArray(e) ? e : _.keys(e); -}), i.$parsers.unshift(function(e) { -return i.$setValidity("oscUnique", !_.includes(r, e)), e; +}); +var a = function() { +i.$setValidity("oscUnique", e.oscUniqueDisabled || o); +}; +e.$watch("oscUniqueDisabled", a), i.$parsers.unshift(function(e) { +return o = !_.includes(r, e), a(), e; }); } }; @@ -77273,7 +77269,7 @@ e.exports = '
\n
\n }, function(e, t) { e.exports = '
\n
\n
\n \n
\n
\n
\n {{$ctrl.imageStream.name}}\n {{$ctrl.istag.name}}\n
\n
\n \n {{tag}}\n \n
\n
\n
\n
\n

\n

\n Sample Repository:\n \x3c!-- TODO: Use Git link filter, needs to be added to origin-web-common --\x3e\n \n

\n
\n
\n'; }, function(e, t) { -e.exports = '
\n
\n

\n \n

\n

\n The application is being created\n

\n
\n
\n
\n \n Success\n

\n \n {{$ctrl.name}} has been created in {{$ctrl.selectedProject.metadata.name}} successfully\n \n

\n
\n
\n
\n \n \n
\n
\n

\n Continue to your project to check the status of your application as it builds and deploys.\n

\n
\n
\n
\n \n

\n Error creating {{$ctrl.name}} in\n {{$ctrl.selectedProject | displayName}}\n

\n
\n
\n \n {{$ctrl.error.data.message | upperFirst}}\n \n \n An error occurred creating the application.\n \n
\n \x3c!-- TODO: Improve error message presentation --\x3e\n
    \n
  • \n {{failure.data.message}}\n
  • \n
\n
\n \n
\n'; +e.exports = '
\n
\n
\n \n Pending\n

\n {{$ctrl.name}} is being created in {{$ctrl.selectedProject | displayName}}.\n

\n
\n
\n
\n
\n \n Success\n

\n {{$ctrl.name}} has been created in {{$ctrl.selectedProject | displayName}} successfully.\n

\n
\n
\n
\n \n \n
\n
\n

\n Continue to the project overview to check the status of your application as it builds and deploys.\n

\n
\n
\n
\n \n

\n {{$ctrl.name}} failed to create in {{$ctrl.selectedProject | displayName}}.\n

\n
\n
\n \n {{$ctrl.error.data.message | upperFirst}}\n \n \n An error occurred creating the application.\n \n
\n \x3c!-- TODO: Improve error message presentation --\x3e\n
    \n
  • \n {{failure.data.message}}\n
  • \n
\n
\n
\n'; }, function(e, t) { e.exports = '
\n
\n
\n \n \n \n
\n
\n'; }, function(e, t) { @@ -77281,11 +77277,11 @@ e.exports = '
\n \n \n Plan {{$ctrl.selectedPlan.externalMetadata.displayName}}\n \n \n {{$ctrl.selectedPlan.description}}\n

\n

\n

\n
\n
\n'; +e.exports = '
\n
\n
\n \n \n
\n
\n
\n {{$ctrl.serviceName}}\n
\n
\n \n {{tag}}\n \n
\n \n
\n
\n
\n

\n \n Plan {{$ctrl.selectedPlan.externalMetadata.displayName}}\n \n \n {{$ctrl.selectedPlan.description}}\n

\n

\n

\n
\n
\n'; }, function(e, t) { e.exports = '
\n
\n
\n

Select a Plan

\n
\n \n
\n
\n
\n
\n'; }, function(e, t) { -e.exports = '
\n
\n
\n

\n \n

\n

\n The service is being provisioned\n

\n
\n
\n
\n
\n \n

\n Error provisioning {{$ctrl.serviceClass.name}} in\n {{$ctrl.projectDisplayName}}\n

\n
\n
\n \n {{$ctrl.error.message}}\n \n \n An error occurred provisioning the service.\n \n
\n
\n
\n
\n \n Success\n

\n \n {{$ctrl.serviceInstance.metadata.name}} has been added to {{$ctrl.projectDisplayName}} successfully\n \n

\n
\n
\n
\n \n \n
\n
\n \n Info\n Continue to your project to bind this service to your application. Binding this service creates a secret containing the information necessary for your application to use the service.\n
\n \n
\n'; +e.exports = '
\n
\n
\n
\n \n Pending\n

\n {{$ctrl.serviceClass.name}} is being provisioned in {{$ctrl.projectDisplayName}}.\n

\n
\n

The binding will be created after the service has been provisioned.

\n

This may take several minutes.

\n

Continue to the project overview to check the status of your service.

\n
\n
\n
\n
\n \n Error\n

\n {{$ctrl.serviceClass.name}} failed to provision in {{$ctrl.projectDisplayName}}.\n

\n
\n
\n \n {{$ctrl.error.message}}\n \n \n An error occurred provisioning the service.\n \n
\n
\n
\n
\n \n Success\n

\n {{$ctrl.serviceInstance.metadata.name}} has been added to {{$ctrl.projectDisplayName}} successfully.\n

\n
\n
\n \n
\n

Continue to the project overview to bind this service to your application. Binding this service creates a secret containing the information necessary for your application to use the service.

\n
\n
\n

or

\n

Browse resources for {{$ctrl.serviceClass.name}}:

\n \n
\n
\n'; }, function(e, t) { e.exports = '
\n \n
    \n
  1. \n \n
  2. \n
\n
\n
\n\n \n
\n
\n'; }, function(e, t) { diff --git a/dist/styles/main.css b/dist/styles/main.css index 25f8f063a9..91b32f807e 100644 --- a/dist/styles/main.css +++ b/dist/styles/main.css @@ -3,6 +3,7 @@ body,figure{margin:0} .text-left,caption,th{text-align:left} .navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px} .c3 svg,html{-webkit-tap-highlight-color:transparent} +.list-view-pf-top-align .list-view-pf-actions,.list-view-pf-top-align .list-view-pf-checkbox{align-self:flex-start} .fa,.font-icon,.glyphicon{-moz-osx-font-smoothing:grayscale} @font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:url(../styles/fonts/OpenSans-Light-webfont.eot);src:local("Open Sans Light"),local("OpenSans-Light"),url(../styles/fonts/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"),url(../styles/fonts/OpenSans-Light-webfont.woff2) format("woff2"),url(../styles/fonts/OpenSans-Light-webfont.woff) format("woff"),url(../styles/fonts/OpenSans-Light-webfont.ttf) format("truetype"),url(../styles/fonts/OpenSans-Light-webfont.svg#OpenSans) format("svg")} @font-face{font-family:"Open Sans";font-style:normal;font-weight:400;src:url(../styles/fonts/OpenSans-Regular-webfont.eot);src:local("Open Sans"),local("OpenSans"),url(../styles/fonts/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"),url(../styles/fonts/OpenSans-Regular-webfont.woff2) format("woff2"),url(../styles/fonts/OpenSans-Regular-webfont.woff) format("woff"),url(../styles/fonts/OpenSans-Regular-webfont.ttf) format("truetype"),url(../styles/fonts/OpenSans-Regular-webfont.svg#OpenSans) format("svg")} @@ -3145,7 +3146,6 @@ a.disabled{color:#8b8d8f;cursor:not-allowed;text-decoration:none} } .list-view-pf-actions{float:right;margin-bottom:20px;margin-left:20px;margin-top:20px;order:2} .list-view-pf-actions .dropdown-kebab-pf,.list-view-pf-actions button,.list-view-pf-actions>a{margin-left:10px} -.list-view-pf-top-align .list-view-pf-actions{align-self:flex-start} .list-view-pf-additional-info{align-items:center;display:flex;flex-wrap:wrap} @media (min-width:992px){.list-view-pf-additional-info{flex:1 0 auto;float:left;width:50%} } @@ -3160,7 +3160,6 @@ a.disabled{color:#8b8d8f;cursor:not-allowed;text-decoration:none} @media (min-width:992px){.list-view-pf-body{align-items:center;display:flex;flex-direction:row} } .list-view-pf-checkbox{border-right:1px solid #d1d1d1;float:left;margin-right:15px;padding:3px 10px 3px 0} -.list-view-pf-top-align .list-view-pf-checkbox{align-self:flex-start} .list-view-pf-stacked .list-view-pf-description{display:block;flex:none} @media (min-width:992px){.list-view-pf-description{align-items:center;display:flex;float:left;width:50%} } @@ -3352,7 +3351,6 @@ a.disabled{color:#8b8d8f;cursor:not-allowed;text-decoration:none} .navbar-pf-vertical .nav .nav-item-iconic:focus,.navbar-pf-vertical .nav .nav-item-iconic:hover{color:#fff;background-color:transparent} .navbar-pf-vertical .nav .nav-item-iconic:focus .caret,.navbar-pf-vertical .nav .nav-item-iconic:focus .fa,.navbar-pf-vertical .nav .nav-item-iconic:focus .glyphicon,.navbar-pf-vertical .nav .nav-item-iconic:focus .pficon,.navbar-pf-vertical .nav .nav-item-iconic:hover .caret,.navbar-pf-vertical .nav .nav-item-iconic:hover .fa,.navbar-pf-vertical .nav .nav-item-iconic:hover .glyphicon,.navbar-pf-vertical .nav .nav-item-iconic:hover .pficon{color:#fff} .navbar-pf-vertical .nav .nav-item-iconic .badge{background-color:#0088ce;border-radius:20px;color:#fff;cursor:pointer;font-size:10px;font-weight:700;margin-top:-15px;margin-left:-12px;padding:2px 4px;min-width:10px;min-height:10px} -.bind-form .bind-choice strong,.delete-resource-modal h1,.toast-notifications-list-pf,.word-break{word-wrap:break-word;min-width:0} .navbar-pf-vertical .nav .nav-item-iconic .caret,.navbar-pf-vertical .nav .nav-item-iconic .fa,.navbar-pf-vertical .nav .nav-item-iconic .pficon{color:#d1d1d1;font-size:17px} .navbar-pf-vertical .nav .nav-item-iconic .caret{font-size:13px;width:auto} .navbar-pf-vertical .nav .open>.nav-item-iconic,.navbar-pf-vertical .nav .open>.nav-item-iconic:focus,.navbar-pf-vertical .nav .open>.nav-item-iconic:hover{background:0 0} @@ -3957,21 +3955,18 @@ div.hopscotch-bubble .hopscotch-bubble-arrow-container.left,div.hopscotch-bubble .bind-form .bind-description{padding-left:20px} .bind-form .bind-choice{margin-top:10px} .bind-form .bind-choice:first-of-type{margin-top:0} -.bind-form .bind-choice strong{word-break:break-word;overflow-wrap:break-word} +.bind-form .bind-choice strong{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .bind-form .help-block.service-instance-name{display:inline-block;margin-top:0} .bind-form .radio label[disabled]{cursor:not-allowed} -.bind-info{margin-bottom:20px;margin-top:30px} .bind-service-selection{margin-bottom:5px} -.bind-status{display:flex;font-size:16px;margin-top:0} -.bind-status.show-progress,.table-responsive .truncation-expand-link{display:block} -.bind-status .bind-message{flex:1;line-height:1.4;margin-top:0;padding-left:10px} -.bind-status .pficon{margin-top:3px} -.bind-status.show-progress .bind-message{padding-left:0} -.bind-status .spinner.spinner-sm{height:16px;margin-right:0;margin-top:3px;width:16px} -.bind-pending-message{margin-top:15px} -.bind-pending-message.progress-inline{margin-top:0} +.results-info{margin-bottom:20px;margin-top:30px} +.results-message{line-height:1.4;margin-top:0;padding-left:10px} +.results-message strong{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} +.results-status{display:flex;font-size:16px} +.results-status .pficon{margin-top:3px} +.results-status .spinner.spinner-sm{height:16px;margin:3px 0 0;width:16px} .delete-resource-modal{background-color:#f1f1f1} -.delete-resource-modal h1{font-size:21px;font-weight:500;margin-bottom:20px;word-break:break-word;overflow-wrap:break-word} +.delete-resource-modal h1{font-size:21px;font-weight:500;margin-bottom:20px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .delete-resource-modal p{font-size:16px} .delete-resource-modal .help-block{margin-top:0px;margin-bottom:10px} .dialog-btn{float:right!important;margin-right:10px} @@ -3982,6 +3977,7 @@ div.hopscotch-bubble .hopscotch-bubble-arrow-container.left,div.hopscotch-bubble .table-responsive .truncation-collapse-link{display:block;float:none;margin-left:0} .well .truncation-collapse-link{margin-top:-10px} .truncation-expand-link{white-space:nowrap} +.table-responsive .truncation-expand-link{display:block} label.required:before{content:'*';position:absolute;left:10px} @media (min-width:768px){.bind-form .application-select .ui-select-bootstrap>.ui-select-choices{max-height:170px} .form-horizontal label.required:before{position:relative;left:-3px} @@ -4008,7 +4004,7 @@ div.hopscotch-bubble .hopscotch-bubble-number{background:#0088ce;border-radius:1 div.hopscotch-bubble .hopscotch-nav-button{border-radius:0;font-family:"Open Sans";font-size:12px} div.hopscotch-bubble .hopscotch-nav-button.next{background-color:#0088ce;background-image:none;margin-left:5px} div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} -.word-break{word-break:break-word;overflow-wrap:break-word} +.word-break{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .word-break-all{word-break:break-all;word-break:break-word;overflow-wrap:break-word} .origin-modal-popup{background-color:#fff;bottom:0;color:#363636;left:0;position:fixed;padding:0 20px 20px;right:0;top:0;z-index:1050} @media (min-width:768px){.origin-modal-popup{border:1px solid #bbb;bottom:auto;box-shadow:0 6px 12px rgba(0,0,0,.175);left:auto;margin-top:15px;right:auto;top:auto} @@ -4027,7 +4023,7 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .toast-action-divider{color:#9c9c9c} .toast-notification-details .truncated-content{white-space:pre-line} .toast-notification-message{font-weight:700;margin-right:5px} -.toast-notifications-list-pf{top:28px;word-break:break-word;overflow-wrap:break-word;z-index:1055} +.toast-notifications-list-pf{top:28px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0;z-index:1055} @media (max-width:767px){.toast-notifications-list-pf{max-width:calc(100% - 40px)} } .toast-notifications-list-pf>div.ng-enter{animation:toastSlideIn .2s ease-out} @@ -4116,10 +4112,9 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .order-service-details .order-service-details-top .service-icon .image img{max-height:60px;max-width:60px} } .order-service-details .order-service-details-top .service-title{font-size:18px;font-weight:600;display:-webkit-box;line-height:1.4em;max-height:4.2em;overflow:hidden;padding:0!important;-webkit-box-orient:vertical;-webkit-line-clamp:3} -.order-service-config .review-message strong,.order-service-details .order-service-details-top .service-title-area{overflow-wrap:break-word;min-width:0;word-break:break-word;word-wrap:break-word} @media (min-width:450px){.order-service-details .order-service-details-top .service-title{font-size:22px} } -.order-service-details .order-service-details-top .service-title-area{flex:1 1 0%} +.order-service-details .order-service-details-top .service-title-area{flex:1 1 0%;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .order-service-details .order-service-details-top .sub-title{font-size:20px;font-weight:600;color:#72767b} .order-service-details .order-service-description-block{margin-top:15px} .order-service-details .order-service-description-block .description{white-space:pre-wrap} @@ -4139,6 +4134,7 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .order-service-config .footer-panel a:hover{color:#fff;text-decoration:none} .order-service-config h3{line-height:1.4;margin-top:0} .order-service-config h3+.alert{margin-top:20px} +.order-service-config .or{margin-left:15px} .order-service-config .select-plans .plan-name{display:inline-block;font-size:14px;margin-bottom:5px;margin-top:-2px} .order-service-config .select-plans .radio{margin-top:15px} .order-service-config .sub-title{margin:-5px 0 10px 25px} @@ -4146,10 +4142,6 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .order-service-config .related-services-container{background-color:#ededed;margin-top:62px;padding:14px;display:flex;align-items:center} .order-service-config .related-services-container .related-services-label{font-size:14px;font-weight:600;padding-right:14px} .order-service-config .related-services-container .related-services-row .card{background-color:#fff;border:1px solid #bbb;float:right;margin-right:6px;padding:11px} -.order-service-config .review-message{padding-left:10px} -.order-service-config .review-status{display:flex;font-size:16px} -.order-service-config .review-status .pficon{margin-top:3px} -.order-service-config .review-status .spinner.spinner-sm{height:16px;margin:3px 0 0;width:16px} .order-service-wizard-step .schema-form-fieldset{margin-bottom:40px;margin-top:40px} .order-service-wizard-step .schema-form-fieldset legend{border-bottom:none;border-top:solid 1px rgba(0,0,0,.15);margin-bottom:10px;padding-top:20px} body.overlay-open,body.overlay-open .landing,body.overlay-open .landing-side-bar{overflow:hidden} @@ -4675,9 +4667,9 @@ label.checkbox{font-weight:400} .env-variable-list li .value,.label-list li .value{max-width:500px} .env-variable-list li .btn,.label-list li .btn{vertical-align:top} .label+.label{margin-left:3px} -.template-message{background-color:#d9edf7;border-color:#31708f;border-style:solid;border-width:1px;color:#000} +.template-message{background-color:transparent;border:1px solid #d1d1d1} .attention-message,.tasks,div.code,pre.code{background-color:#fff} -.template-message .resource-description{margin-bottom:0;font-size:12px} +.template-message .resource-description{font-size:12px;margin-bottom:0} .resource-metadata,.tasks{margin-bottom:20px} .resource-description{margin-bottom:20px;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .tasks{font-weight:400;padding:20px;position:relative}