diff --git a/app/scripts/directives/overview/serviceBindings.js b/app/scripts/directives/overview/serviceBindings.js index 42bfbfad30..786659ead6 100644 --- a/app/scripts/directives/overview/serviceBindings.js +++ b/app/scripts/directives/overview/serviceBindings.js @@ -3,6 +3,7 @@ angular.module('openshiftConsole').component('overviewServiceBindings', { controllerAs: '$ctrl', bindings: { + sectionTitle: '@', namespace: '<', bindings: '<', bindableServiceInstances: '<', diff --git a/app/scripts/directives/overview/serviceInstanceRow.js b/app/scripts/directives/overview/serviceInstanceRow.js index 264a51e0dc..477c0f94f8 100644 --- a/app/scripts/directives/overview/serviceInstanceRow.js +++ b/app/scripts/directives/overview/serviceInstanceRow.js @@ -25,6 +25,9 @@ ListRowUtils, ServiceInstancesService) { var row = this; + var isBindingFailed = $filter('isBindingFailed'); + var isBindingReady = $filter('isBindingReady'); + _.extend(row, ListRowUtils.ui); var serviceInstanceDisplayName = $filter('serviceInstanceDisplayName'); @@ -35,20 +38,14 @@ }; var updateInstanceStatus = function() { - var conditions = _.get(row.apiObject, 'status.conditions'); - var readyCondition = _.find(conditions, {type: 'Ready'}); - - row.instanceError = _.find(conditions, {type: 'Failed', status: 'True'}); - if (_.get(row.apiObject, 'metadata.deletionTimestamp')) { row.instanceStatus = 'deleted'; - } else if (row.instanceError) { + } else if (isBindingFailed(row.apiObject)) { row.instanceStatus = 'failed'; - } else if (readyCondition && readyCondition.status === 'True') { + } else if (isBindingReady(row.apiObject)) { row.instanceStatus = 'ready'; } else { row.instanceStatus = 'pending'; - row.pendingMessage = _.get(readyCondition, 'message') || 'The instance is being provisioned asynchronously.'; } }; @@ -57,8 +54,7 @@ row.notifications = ListRowUtils.getNotifications(row.apiObject, row.state); row.displayName = serviceInstanceDisplayName(row.apiObject, row.state.serviceClasses); - row.isBindable = !row.instanceError && - BindingService.isServiceBindable(row.apiObject, row.state.serviceClasses); + row.isBindable = BindingService.isServiceBindable(row.apiObject, row.state.serviceClasses); row.description = getDescription(); }; diff --git a/app/scripts/directives/serviceBinding.js b/app/scripts/directives/serviceBinding.js index 2c343807ef..4cc7c5cbe4 100644 --- a/app/scripts/directives/serviceBinding.js +++ b/app/scripts/directives/serviceBinding.js @@ -11,7 +11,8 @@ binding: '<', refApiObject: ' {{serviceInstance | serviceInstanceDisplayName:serviceClasses}} - created + {{serviceInstance.metadata.name}} +
+ created +
@@ -53,11 +56,6 @@

-
Description:
-
-

-

-
Status:
@@ -67,6 +65,11 @@

{{serviceInstance | serviceInstanceConditionMessage}}
+
Description:
+
+

+

+

diff --git a/app/views/directives/_service-binding.html b/app/views/directives/_service-binding.html index 81170e2959..068f712196 100644 --- a/app/views/directives/_service-binding.html +++ b/app/views/directives/_service-binding.html @@ -1,12 +1,16 @@
-
-

+
+

+
+ Secret +
- + {{$ctrl.serviceClass.externalMetadata.displayName || $ctrl.serviceClass.metadata.name}} - + {{$ctrl.binding.spec.secretName}} @@ -17,25 +21,37 @@

created

-
+
Marked for Deletion
-
+
+ + + Error + +
+
Pending
diff --git a/app/views/overview/_list-row-expanded.html b/app/views/overview/_list-row-expanded.html index bed14fd7db..5ee880b4b8 100644 --- a/app/views/overview/_list-row-expanded.html +++ b/app/views/overview/_list-row-expanded.html @@ -178,6 +178,7 @@

Average Usage Last 15 Minutes

Bindings Average Usage Last 15 Minutes

- +
@@ -111,7 +111,7 @@

error - {{row.instanceError.message}} + {{row.apiObject | serviceInstanceFailedMessage}}

@@ -132,57 +132,15 @@

-
- Bindings -
-
-
-
-

-
- Secret -
- - {{binding.spec.secretName}} - - - {{binding.spec.secretName}} - -

-
-
-

-
- {{target.kind | humanizeKind : true}} -
- {{target.metadata.name}} -

-
-
-
- - - Marked for Deletion - - - Pending - -
-
- -
-
- No bindings -
-
+ +
diff --git a/app/views/service-instances.html b/app/views/service-instances.html index 1b5790fe01..b12c76959c 100644 --- a/app/views/service-instances.html +++ b/app/views/service-instances.html @@ -30,6 +30,7 @@

Name + Instance Name Status Created Bindings @@ -43,7 +44,7 @@

{{serviceInstance | serviceInstanceDisplayName:serviceClasses}} - + {{serviceInstance.metadata.name}}
diff --git a/bower.json b/bower.json index 387d382262..98110c876e 100644 --- a/bower.json +++ b/bower.json @@ -46,7 +46,7 @@ "angular-moment": "1.0.0", "angular-utf8-base64": "0.0.5", "file-saver": "1.3.3", - "origin-web-common": "0.0.58", + "origin-web-common": "0.0.59", "origin-web-catalog": "0.0.49" }, "devDependencies": { diff --git a/dist/scripts/scripts.js b/dist/scripts/scripts.js index ada1157cda..09a916d72a 100644 --- a/dist/scripts/scripts.js +++ b/dist/scripts/scripts.js @@ -13181,7 +13181,8 @@ namespace: "<", binding: "<", refApiObject: "\n" + "
\n" + "{{serviceInstance | serviceInstanceDisplayName:serviceClasses}}\n" + + "{{serviceInstance.metadata.name}}\n" + + "
\n" + "created \n" + + "
\n" + "

\n" + "\n" + "\n" + @@ -3726,11 +3729,6 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "

\n" + "
\n" + - "
Description:
\n" + - "
\n" + - "

\n" + - "

\n" + - "
\n" + "
Status:
\n" + "
\n" + "\n" + @@ -3740,6 +3738,11 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "{{serviceInstance | serviceInstanceConditionMessage}}\n" + "
\n" + + "
Description:
\n" + + "
\n" + + "

\n" + + "

\n" + + "
\n" + "
\n" + "
\n" + "
\n" + @@ -5597,13 +5600,17 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/directives/_service-binding.html', "
\n" + "
\n" + - "
\n" + - "

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

\n" + + "
\n" + + "Secret\n" + + "
\n" + "\n" + - "\n" + + "\n" + "{{$ctrl.serviceClass.externalMetadata.displayName || $ctrl.serviceClass.metadata.name}}\n" + "\n" + - "\n" + + "\n" + "{{$ctrl.binding.spec.secretName}}\n" + "\n" + "\n" + @@ -5614,18 +5621,27 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "created \n" + "

\n" + "
\n" + - "
\n" + + "
\n" + "\n" + "Marked for Deletion\n" + "
\n" + - "
\n" + + "
\n" + + "\n" + + "\n" + + "Error\n" + + "\n" + + "
\n" + + "
\n" + "Pending\n" + "
\n" + "
\n" + "
\n" + - "\n" + + "\n" + "\n" + - "\n" + + "\n" + "View Secret\n" + "\n" + "
\n" + @@ -12049,7 +12065,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "\n" + "Bindings\n" + - "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -12065,7 +12081,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "\n" + "\n" + - "\n" + + "\n" + "\n" + "
\n" + "

\n" + @@ -12244,8 +12260,8 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/overview/_service-bindings.html', "
\n" + - "
Service Bindings
\n" + - "\n" + + "
{{$ctrl.sectionTitle}}
\n" + + "\n" + "\n" + "\n" + "
\n" + "
\n" + - "\n" + + "\n" + "\n" + "Error\n" + "\n" + @@ -12386,7 +12402,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "\n" + "error\n" + - "{{row.instanceError.message}}\n" + + "{{row.apiObject | serviceInstanceFailedMessage}}\n" + "
\n" + "
\n" + "
\n" + @@ -12407,56 +12423,8 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "

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

\n" + - "
\n" + - "Secret\n" + - "
\n" + - "
\n" + - "{{binding.spec.secretName}}\n" + - "\n" + - "\n" + - "{{binding.spec.secretName}}\n" + - "\n" + - "

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

\n" + - "
\n" + - "{{target.kind | humanizeKind : true}}\n" + - "
\n" + - "{{target.metadata.name}}\n" + - "

\n" + - "
\n" + - "
\n" + - "
\n" + - "\n" + - "\n" + - "Marked for Deletion\n" + - "\n" + - "\n" + - " Pending\n" + - "\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "\n" + - "\n" + - "Create Binding\n" + - "\n" + - "
\n" + - "
\n" + - "
\n" + - "
\n" + - "No bindings\n" + - "
\n" + - "
\n" + + "\n" + + "\n" + "\n" + "\n" + "\n" + @@ -13154,6 +13122,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "\n" + "Name\n" + + "Instance Name\n" + "Status\n" + "Created\n" + "Bindings\n" + @@ -13167,6 +13136,7 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( " 0\">\n" + "\n" + "{{serviceInstance | serviceInstanceDisplayName:serviceClasses}}\n" + + "{{serviceInstance.metadata.name}}\n" + "\n" + "
\n" + "\n" + diff --git a/dist/scripts/vendor.js b/dist/scripts/vendor.js index 20f4f99ede..d4744406b4 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'), +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/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'), @@ -73467,8 +73467,26 @@ type: t return function(t) { return "True" === _.get(e(t, "Ready"), "status"); }; +} ]).filter("serviceInstanceReadyMessage", [ "statusConditionFilter", function(e) { +return function(t) { +return _.get(e(t, "Ready"), "message"); +}; +} ]).filter("isServiceInstanceFailed", [ "statusConditionFilter", function(e) { +return function(t) { +return "True" === _.get(e(t, "Failed"), "status"); +}; +} ]).filter("serviceInstanceFailedMessage", [ "isServiceInstanceFailedFilter", "statusConditionFilter", function(e, t) { +return function(n) { +if (e(n)) return _.get(t(n, "Failed"), "message"); +}; } ]).filter("isBindingReady", [ "isServiceInstanceReadyFilter", function(e) { return e; +} ]).filter("isBindingFailed", [ "isServiceInstanceFailedFilter", function(e) { +return e; +} ]).filter("bindingFailedMessage", [ "serviceInstanceFailedMessageFilter", function(e) { +return e; +} ]).filter("bindingReadyMessage", [ "serviceInstanceReadyMessageFilter", function(e) { +return e; } ]).filter("hasDeployment", [ "annotationFilter", function(e) { return function(t) { return !!e(t, "deployment.kubernetes.io/revision"); @@ -73712,10 +73730,10 @@ return t || o.log("No preferred version for ", e), t; }; } ]), angular.module("openshiftCommonServices").service("ApplicationsService", [ "$q", "DataService", function(e, t) { var n = function(e) { -return t.list("replicationcontrollers", e, { +return t.list("replicationcontrollers", e, null, { http: { params: { -labelSelector: "!openshift.io/deployment-config-name" +labelSelector: "!openshift.io/deployment-config.name" } } }); @@ -73723,7 +73741,7 @@ labelSelector: "!openshift.io/deployment-config-name" return t.list({ group: "extensions", resource: "replicasets" -}, e, { +}, e, null, { http: { params: { labelSelector: "!pod-template-hash" @@ -74008,12 +74026,13 @@ matchLabels: a name: r, selector: a }), o; -}, h = function(e, t) { -var n = a(e, t); -if (_.get(e, "metadata.deletionTimestamp")) return !1; -if (!n) return !!e; -var i = s(e, n), r = _.get(i, "bindable"); -return !0 === r || !1 !== r && n.bindable; +}, h = function(t, n) { +if (_.get(t, "metadata.deletionTimestamp")) return !1; +if (e("isServiceInstanceFailed")(t, "Failed")) return !1; +var i = a(t, n); +if (!i) return !!t; +var r = s(t, i), o = _.get(r, "bindable"); +return !0 === o || !1 !== o && i.bindable; }, f = function(e) { var t = {}; return _.each(e, function(e) { @@ -74460,37 +74479,37 @@ namespace: r return _.get(i, "partialObjectMetadataList") ? a + "#application/json;as=PartialObjectMetadataList;v=v1alpha1;g=meta.k8s.io" : a; }, f.prototype._startListOp = function(e, n, i) { i = i || {}; -var r = this._uniqueKey(e, null, n, i); -this._listInFlight(r, !0); -var o = {}; -i.partialObjectMetadataList && (o.Accept = "application/json;as=PartialObjectMetadataList;v=v1alpha1;g=meta.k8s.io"); -var a = this; -n.projectPromise && !e.equals("projects") ? n.projectPromise.done(function(s) { +var r = _.get(i, "http.params") || {}, o = this._uniqueKey(e, null, n, i); +this._listInFlight(o, !0); +var a = {}; +i.partialObjectMetadataList && (a.Accept = "application/json;as=PartialObjectMetadataList;v=v1alpha1;g=meta.k8s.io"); +var s = this; +n.projectPromise && !e.equals("projects") ? n.projectPromise.done(function(l) { t(angular.extend({ method: "GET", auth: {}, -headers: o, -url: a._urlForResource(e, null, n, !1, { -namespace: s.metadata.name -}) -}, i.http || {})).success(function(t, o, s, l, c) { -a._listOpComplete(r, e, n, i, t); -}).error(function(t, n, o, s) { -a._listInFlight(r, !1); -var l = a._listDeferred(r); -delete a._listDeferredMap[r], l.reject(t, n, o, s), _.get(i, "errorNotification", !0) && b("Failed to list " + e, n); +headers: a, +url: s._urlForResource(e, null, n, !1, _.assign({}, r, { +namespace: l.metadata.name +})) +}, i.http || {})).success(function(t, r, a, l, c) { +s._listOpComplete(o, e, n, i, t); +}).error(function(t, n, r, a) { +s._listInFlight(o, !1); +var l = s._listDeferred(o); +delete s._listDeferredMap[o], l.reject(t, n, r, a), _.get(i, "errorNotification", !0) && b("Failed to list " + e, n); }); }) : t({ method: "GET", auth: {}, -headers: o, -url: this._urlForResource(e, null, n) -}).success(function(t, o, s, l, c) { -a._listOpComplete(r, e, n, i, t); -}).error(function(t, n, o, s) { -a._listInFlight(r, !1); -var l = a._listDeferred(r); -delete a._listDeferredMap[r], l.reject(t, n, o, s), _.get(i, "errorNotification", !0) && b("Failed to list " + e, n); +headers: a, +url: this._urlForResource(e, null, n, !1, r) +}).success(function(t, r, a, l, c) { +s._listOpComplete(o, e, n, i, t); +}).error(function(t, n, r, a) { +s._listInFlight(o, !1); +var l = s._listDeferred(o); +delete s._listDeferredMap[o], l.reject(t, n, r, a), _.get(i, "errorNotification", !0) && b("Failed to list " + e, n); }); }, f.prototype._listOpComplete = function(e, t, n, i, r) { r.items || console.warn("List request for " + t + " returned a null items array. This is an invalid API response."); diff --git a/dist/styles/main.css b/dist/styles/main.css index 12d758ae66..816188e03e 100644 --- a/dist/styles/main.css +++ b/dist/styles/main.css @@ -766,7 +766,6 @@ select[multiple].input-lg,textarea.input-lg{height:auto} .form-horizontal .form-group-sm .control-label{padding-top:3px;font-size:11px} } .btn{display:inline-block;margin-bottom:0;font-weight:600;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:2px 6px;font-size:13px;line-height:1.66666667;border-radius:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -.bootstrap-switch,.datepicker table{-webkit-user-select:none;-moz-user-select:none} .btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin!important;outline:-webkit-focus-ring-color auto 5px!important;outline-offset:-2px!important} .btn.focus,.btn:focus,.btn:hover{color:#4d5258;text-decoration:none} .btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)} @@ -2375,7 +2374,7 @@ td>.progress:first-child:last-child{margin-bottom:0;margin-top:3px} .datepicker-dropdown.datepicker-orient-bottom:after{top:-6px} .datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #bbb} .datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff} -.datepicker table{margin:0;-webkit-touch-callout:none;-khtml-user-select:none;-ms-user-select:none;user-select:none} +.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} .datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border:none} .datepicker table tr td.new,.datepicker table tr td.old{color:#9c9c9c} .datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#f1f1f1;cursor:pointer} @@ -2511,8 +2510,7 @@ select.bs-select-hidden,select.selectpicker{display:none!important} .bs-donebutton .btn-group button{width:100%} .bs-searchbox+.bs-actionsbox{padding:0 8px 4px} .bs-searchbox .form-control{margin-bottom:0;width:100%;float:none} -.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:1px;border:1px solid #bbb;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s} -.c3 text,.log-line-number{-moz-user-select:none;-webkit-user-select:none} +.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:1px;border:1px solid #bbb;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s} .bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:1px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)} .bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:2px 6px;font-size:13px;line-height:21px} .ie9.layout-pf-alt-fixed .nav-pf-vertical-alt,.ie9.layout-pf-fixed .nav-pf-secondary-nav,.ie9.layout-pf-fixed .nav-pf-tertiary-nav,.ie9.layout-pf-fixed .nav-pf-vertical,.list-group-item-header{box-sizing:content-box} @@ -2546,7 +2544,7 @@ select.bs-select-hidden,select.selectpicker{display:none!important} .bootstrap-touchspin .input-group-btn-vertical i{position:absolute;font-weight:400} .c3 svg{font:10px sans-serif} .c3 line,.c3 path{fill:none;stroke:#000} -.c3 text{user-select:none} +.c3 text{-webkit-user-select:none;-moz-user-select:none;user-select:none} .c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges} .c3-chart-arc text{fill:#fff;font-size:13px} .c3-grid text{fill:#aaa} @@ -4099,6 +4097,7 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .landing-search-form .search-pf-input-group .pficon-close{font-size:17px;padding-top:.3em} .landing-search-form .dropdown-menu{margin-top:0;width:100%} .landing-search-form .dropdown-menu>li>a.catalog-search-match{display:flex;line-height:1.5;padding:3px 10px 3px 5px;white-space:normal} +.order-service-details .order-service-description-block .description,.pre-wrap{white-space:pre-wrap} .landing-search-form .dropdown-menu .active>a.catalog-search-match,.landing-search-form .dropdown-menu :focus{background-color:#def3ff!important;border-color:#bee1f4!important;color:inherit!important} .landing-search-form .dropdown-menu .active>a.catalog-search-match.no-matches{background-color:transparent!important;border-color:transparent!important} .landing-side-bar{background-color:#292e34;color:#fff;z-index:1029} @@ -4122,7 +4121,6 @@ div.hopscotch-bubble .hopscotch-nav-button.prev{color:#030303} .order-service-details .order-service-details-top .service-title-area{flex:1 1 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} .order-service-details .order-service-description-block .learn-more-link{font-size:11px;white-space:nowrap} .order-service-details .order-service-documentation-url{margin-top:4px} .order-service-details .order-service-documentation-url a{margin-right:10px} @@ -4365,7 +4363,6 @@ body.overlay-open,body.overlay-open .landing,body.overlay-open .landing-side-bar .services-view .services-view-container .services-categories>li>a .services-sub-category-tab-icon,.services-view .services-view-container .services-sub-categories>li>a .services-sub-category-tab-icon{display:none!important} } .services-view .spinner-container{background:#fff;display:flex;flex:1 1 auto;padding-top:100px;padding-bottom:100px} -.pre-wrap{white-space:pre-wrap} .visible-xlg-inline-block{display:none!important} @media (max-width:767px){.td-long-string{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} } @@ -4493,6 +4490,8 @@ code.command{display:inline-block;line-height:1.3;margin-right:2px} .service-binding h3{line-height:1.4;margin-top:0} .service-binding h3 small{display:block;margin-top:5px} .service-binding h3 small:first-of-type{margin-top:0} +.service-binding .component-label{font-size:11px;font-weight:500;padding:0 0 4px;color:#9c9c9c;text-transform:uppercase} +.service-binding .component-label .sublabel{font-size:10px;margin-left:2px;text-transform:none} .resource-details .service-binding h3{border-bottom:0;margin:0;padding-bottom:5px} .service-binding-actions{font-size:13px;font-weight:400} .service-binding-actions>a{border-left:1px solid #d1d1d1;padding:0 10px} @@ -4998,7 +4997,7 @@ h2+.list-view-pf{margin-top:20px} .overview .empty-state{padding-top:20px} .overview .expanded-section{margin-top:20px} .overview .expanded-section .row>[class^=col-]{margin-bottom:10px} -@media (min-width:1200px){.overview .expanded-section .row>[class^=col-].overview-bindings,.overview .expanded-section .row>[class^=col-].overview-builds-msg,.overview .expanded-section .row>[class^=col-].overview-routes{padding-left:0} +@media (min-width:1200px){.overview .expanded-section .row>[class^=col-].overview-builds-msg,.overview .expanded-section .row>[class^=col-].overview-routes{padding-left:0} } .overview .expanded-section h3{line-height:1.4;margin-bottom:5px;margin-top:0;width:100%;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:0} .overview .expanded-section .section-title{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;margin-top:10.5px;margin-bottom:10.5px;font-size:14px;border-bottom:1px solid #dcdcdc;padding-bottom:10px} @@ -5706,7 +5705,7 @@ alerts+.chromeless .log-loading-msg{margin-top:130px} .log-line{color:#d1d1d1} .log-line:hover{background-color:#22262b;color:#ededed} .log-line-number:before{content:attr(data-line-number)} -.log-line-number{-ms-user-select:none;border-right:1px #272b30 solid;padding-right:10px;vertical-align:top;white-space:nowrap;width:60px;color:#72767b} +.log-line-number{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;border-right:1px #272b30 solid;padding-right:10px;vertical-align:top;white-space:nowrap;width:60px;color:#72767b} .log-line-text{padding:0 10px;white-space:pre-wrap;width:100%} .appended-icon,.project-date [am-time-ago],.projects-list [am-time-ago]{white-space:nowrap} .log-line-text::-moz-selection{color:#101214;background:#e5e5e5} diff --git a/package.json b/package.json index e260c86ded..508f44ef19 100644 --- a/package.json +++ b/package.json @@ -12,17 +12,13 @@ "clean-css": "3.4.12", "connect-modrewrite": "0.7.9", "geckodriver": "1.3.0", - "grunt": "0.4.5", - "grunt-angular-templates": "1.0.3", "grunt-cli": "1.1.0", "grunt-concurrent": "2.3.1", "grunt-contrib-clean": "1.0.0", "grunt-contrib-concat": "1.0.0", - "grunt-contrib-connect": "1.0.2", - "grunt-contrib-copy": "1.0.0", "grunt-contrib-cssmin": "1.0.1", "grunt-contrib-htmlmin": "1.3.0", @@ -33,9 +29,7 @@ "grunt-contrib-watch": "1.0.0", "grunt-htmlhint": "0.4.1", "grunt-istanbul-coverage": "0.0.5", - "grunt-karma": "^2.0.0", - "grunt-newer": "0.7.0", "grunt-ng-annotate": "0.3.2", "grunt-postcss": "^0.8.0", @@ -46,13 +40,10 @@ "grunt-wiredep": "3.0.0", "html-minifier": "1.1.1", "imagemin": "1.0.5", - "jasmine-core": "^2.8.0", "jasmine-beforeall": "0.1.1", "jasmine-spec-reporter": "1.1.2", - "jshint-stylish": "0.2.0", - "karma": "^1.7.1", "karma-chrome-launcher": "^2.2.0", "karma-coverage": "^1.1.1", @@ -62,14 +53,11 @@ "karma-jasmine-diff-reporter": "^1.1.0", "karma-phantomjs-launcher": "^1.0.4", "karma-nightmare": "^0.4.10", - "less": "2.6.1", "load-grunt-tasks": "0.4.0", "lodash": "3.10.1", - "protractor": "1.7.0", "protractor-screenshot-reporter": "^0.0.5", - "serve-static": "1.10.2", "time-grunt": "0.3.2" },