diff --git a/app/scripts/directives/editEnvironmentFrom.js b/app/scripts/directives/editEnvironmentFrom.js index 9ec42ec60e..7c0093910e 100644 --- a/app/scripts/directives/editEnvironmentFrom.js +++ b/app/scripts/directives/editEnvironmentFrom.js @@ -8,10 +8,10 @@ EditEnvironmentFrom ], bindings: { - addRowLink: '@', - entries: '=', - envFromSelectorOptions: '<', - selectorPlaceholder: '@' + addRowLink: '@', // creates a link to "add row" and sets its text label + entries: '=', // an array of objects containing configmaps and secrets + envFromSelectorOptions: '<', // dropdown selector options, an array of objects + selectorPlaceholder: '@' // placeholder copy for dropdown selector }, templateUrl: 'views/directives/edit-environment-from.html' }); @@ -23,9 +23,9 @@ var canI = $filter('canI'); var humanizeKind = $filter('humanizeKind'); + var uniqueId = _.uniqueId(); - ctrl.$id = _.uniqueId(); - ctrl.setFocusClass = 'edit-environment-from-set-focus-' + ctrl.$id; + ctrl.setFocusClass = 'edit-environment-from-set-focus-' + uniqueId; var addEntry = function(entries, entry) { entries && entries.push(entry || {}); @@ -37,7 +37,7 @@ }; ctrl.deleteEntry = function(start, deleteCount) { - if(ctrl.entries && !ctrl.entries.length) { + if(ctrl.envFromEntries && !ctrl.envFromEntries.length) { return; } @@ -61,6 +61,16 @@ return humanizeKind(object.kind); }; + //ctrl.uniqueForValue = utils.uniqueForValue; + ctrl.dragControlListeners = { + accept: function (sourceItemHandleScope, destSortableScope) { + return sourceItemHandleScope.itemScope.sortableScope.$id === destSortableScope.$id; + }, + orderChanged: function() { + ctrl.editEnvironmentFromForm.$setDirty(); + } + }; + ctrl.envFromObjectSelected = function(index, entry, selected) { var newEnvFrom = {}; @@ -89,7 +99,7 @@ }); }; - ctrl.updateEnvFromEntries = function(entries) { + var updateEnvFromEntries = function(entries) { ctrl.envFromEntries = entries || []; if(!ctrl.envFromEntries.length) { @@ -98,12 +108,12 @@ _.each(ctrl.envFromEntries, function(entry) { if(entry) { - if (entry.configMapRef) { - entry.isReadonlyValue = !canI('configmaps', 'get'); + if(entry.configMapRef && !canI('configmaps', 'get')) { + entry.isReadonlyValue = true; } - if (entry.secretRef) { - entry.isReadonlyValue = !canI('secrets', 'get'); + if(entry.secretRef && !canI('secrets', 'get')) { + entry.isReadonlyValue = true; } } }); @@ -129,33 +139,22 @@ }; var findReferenceValueForEntries = function(entries, envFromSelectorOptions) { - _.each(envFromSelectorOptions, function(option) { - var referenceValue = getReferenceValue(option); + ctrl.cannotAdd = (ctrl.isReadonlyAny || _.isEmpty(envFromSelectorOptions)); - if (referenceValue) { - _.set(referenceValue, 'selectedEnvFrom', option); - } - }); - }; + if(envFromSelectorOptions) { + _.each(envFromSelectorOptions, function(option) { + var referenceValue = getReferenceValue(option); - angular.extend(ctrl, { - dragControlListeners: { - accept: function (sourceItemHandleScope, destSortableScope) { - return sourceItemHandleScope.itemScope.sortableScope.$id === destSortableScope.$id; - }, - orderChanged: function() { - ctrl.editEnvironmentFromForm.$setDirty(); - } + if (referenceValue) { + _.set(referenceValue, 'selectedEnvFrom', option); + } + }); } - }); + }; ctrl.$onInit = function() { - ctrl.updateEnvFromEntries(ctrl.entries); - findReferenceValueForEntries(ctrl.envFromEntries, ctrl.envFromSelectorOptions); - - if('cannotAdd' in $attrs) { - ctrl.cannotAdd = true; - } + updateEnvFromEntries(ctrl.entries); + findReferenceValueForEntries(ctrl.entries, ctrl.envFromSelectorOptions); if('cannotDelete' in $attrs) { ctrl.cannotDeleteAny = true; @@ -180,7 +179,7 @@ ctrl.$onChanges = function(changes) { if(changes.entries) { - ctrl.updateEnvFromEntries(changes.entries.currentValue); + updateEnvFromEntries(changes.entries.currentValue); } if(changes.envFromSelectorOptions) { diff --git a/app/styles/_kve.less b/app/styles/_kve.less index ddaf9eab0d..41a2c81835 100644 --- a/app/styles/_kve.less +++ b/app/styles/_kve.less @@ -107,7 +107,8 @@ } } - .key-value-editor-buttons { + .key-value-editor-buttons, + .environment-from-editor-button { position: absolute; right: 0; top: 0; @@ -121,10 +122,21 @@ position: relative; table-layout: fixed; width: 100%; + @media(min-width: @screen-md-min) { + .environment-from-editor-button { + float: left; + padding-right: 5px; + position: relative; + width: 50%; + } + } .environment-from-input { float: left; padding-right: 5px; - width: 50%; + width: 100%; + @media(min-width: @screen-md-min) { + width: 50%; + } .faux-input-group, .ui-select { float: left; diff --git a/app/views/directives/edit-environment-from.html b/app/views/directives/edit-environment-from.html index 46b3597690..a67f0007ec 100644 --- a/app/views/directives/edit-environment-from.html +++ b/app/views/directives/edit-environment-from.html @@ -19,19 +19,13 @@
+ ng-class="{ 'has-error': ($ctrl.editEnvironmentFromForm[uniqueForValue(unique, $index)].$invalid && $ctrl.editEnvironmentFromForm[uniqueForValue(unique, $index)].$touched) }">
-
- Set to values in {{entry.selectedEnvFrom.kind | humanizeKind : true | lowercase}} - - {{entry.configMapRef.name || entry.secretRef.name}} - - - {{entry.configMapRef.name || entry.secretRef.name}} - +
+ No secrets or config maps have been added as Environment From. +
+
+ Set to values in {{entry.configMapRef.name || entry.secretRef.name}}
@@ -56,37 +50,31 @@
- -
+ +
- + ng-if="!$ctrl.cannotSort" + class="fa fa-bars sort-row" + role="button" + aria-label="Move row" + aria-grabbed="false" + as-sortable-item-handle> View {{entry.selectedEnvFrom.kind | humanizeKind : true}} + ng-if="!$ctrl.cannotDeleteAny" + href="" + class="pficon pficon-close delete-row as-sortable-item-delete" + role="button" + aria-label="Delete row" + ng-click="$ctrl.deleteEntry($index, 1)">
-
+
{{ $ctrl.addRowLink }}
diff --git a/app/views/directives/edit-environment-variables.html b/app/views/directives/edit-environment-variables.html index 4f10af6dd2..2b824c9501 100644 --- a/app/views/directives/edit-environment-variables.html +++ b/app/views/directives/edit-environment-variables.html @@ -30,8 +30,8 @@

Variables

key-validator="[A-Za-z_][A-Za-z0-9_]*" key-validator-error="Please enter a valid key." key-validator-error-tooltip="A valid environment variable name is an alphanumeric (a-z and 0-9) string beginning with a letter that may contain underscores." - add-row-link="Add Environment Variable" - add-row-with-selectors-link="Add Environment Variable Using a Config Map or Secret" + add-row-link="Add Variable" + add-row-with-selectors-link="Add Variable from Config Map or Secret" show-header> diff --git a/app/views/directives/key-value-editor.html b/app/views/directives/key-value-editor.html index 132321acbf..57a0464b4a 100644 --- a/app/views/directives/key-value-editor.html +++ b/app/views/directives/key-value-editor.html @@ -226,7 +226,6 @@ href="" class="add-row-link" role="button" - aria-label="Add row" ng-click="onAddRow()">{{ addRowLink }} {{ addRowWithSelectorsLink }} diff --git a/dist/scripts/scripts.js b/dist/scripts/scripts.js index 56a7e978df..29ef93b96f 100644 --- a/dist/scripts/scripts.js +++ b/dist/scripts/scripts.js @@ -9081,19 +9081,26 @@ n[e.key] = e.value; } ]), function() { angular.module("openshiftConsole").component("editEnvironmentFrom", { controller: [ "$attrs", "$filter", "keyValueEditorUtils", function(e, t, n) { -var a = this, r = t("canI"), o = t("humanizeKind"); -a.$id = _.uniqueId(), a.setFocusClass = "edit-environment-from-set-focus-" + a.$id; -var i = function(e, t) { +var a = this, r = t("canI"), o = t("humanizeKind"), i = _.uniqueId(); +a.setFocusClass = "edit-environment-from-set-focus-" + i; +var s = function(e, t) { e && e.push(t || {}); }; a.onAddRow = function() { -i(a.envFromEntries), n.setFocusOn("." + a.setFocusClass); +s(a.envFromEntries), n.setFocusOn("." + a.setFocusClass); }, a.deleteEntry = function(e, t) { -a.entries && !a.entries.length || (a.envFromEntries.splice(e, t), !a.envFromEntries.length && a.addRowLink && i(a.envFromEntries), a.updateEntries(a.envFromEntries), a.editEnvironmentFromForm.$setDirty()); +a.envFromEntries && !a.envFromEntries.length || (a.envFromEntries.splice(e, t), !a.envFromEntries.length && a.addRowLink && s(a.envFromEntries), a.updateEntries(a.envFromEntries), a.editEnvironmentFromForm.$setDirty()); }, a.isEnvFromReadonly = function(e) { return a.isReadonlyAny || !0 === e.isReadonlyValue || (e.secretRef || e.configMapRef) && !e.selectedEnvFrom || _.isEmpty(a.envFromSelectorOptions); }, a.groupByKind = function(e) { return o(e.kind); +}, a.dragControlListeners = { +accept: function(e, t) { +return e.itemScope.sortableScope.$id === t.$id; +}, +orderChanged: function() { +a.editEnvironmentFromForm.$setDirty(); +} }, a.envFromObjectSelected = function(e, t, n) { var r = {}; switch (n.kind) { @@ -9113,12 +9120,12 @@ _.assign(a.envFromEntries[e], r), a.updateEntries(a.envFromEntries); a.entries = _.filter(e, function(e) { return e.secretRef || e.configMapRef; }); -}, a.updateEnvFromEntries = function(e) { -a.envFromEntries = e || [], a.envFromEntries.length || i(a.envFromEntries), _.each(a.envFromEntries, function(e) { -e && (e.configMapRef && (e.isReadonlyValue = !r("configmaps", "get")), e.secretRef && (e.isReadonlyValue = !r("secrets", "get"))); -}); }; -var s = function(e) { +var c = function(e) { +a.envFromEntries = e || [], a.envFromEntries.length || s(a.envFromEntries), _.each(a.envFromEntries, function(e) { +e && (e.configMapRef && !r("configmaps", "get") && (e.isReadonlyValue = !0), e.secretRef && !r("secrets", "get") && (e.isReadonlyValue = !0)); +}); +}, l = function(e) { var t; switch (e.kind) { case "ConfigMap": @@ -9139,27 +9146,18 @@ name: e.metadata.name return t; }; a.checkEntries = function(e) { -return !!s(e); +return !!l(e); }; -var c = function(e, t) { -_.each(t, function(e) { -var t = s(e); +var u = function(e, t) { +a.cannotAdd = a.isReadonlyAny || _.isEmpty(t), t && _.each(t, function(e) { +var t = l(e); t && _.set(t, "selectedEnvFrom", e); }); }; -angular.extend(a, { -dragControlListeners: { -accept: function(e, t) { -return e.itemScope.sortableScope.$id === t.$id; -}, -orderChanged: function() { -a.editEnvironmentFromForm.$setDirty(); -} -} -}), a.$onInit = function() { -a.updateEnvFromEntries(a.entries), c(a.envFromEntries, a.envFromSelectorOptions), "cannotAdd" in e && (a.cannotAdd = !0), "cannotDelete" in e && (a.cannotDeleteAny = !0), "cannotSort" in e && (a.cannotSort = !0), "isReadonly" in e && (a.isReadonlyAny = !0), "showHeader" in e && (a.showHeader = !0), a.envFromEntries && !a.envFromEntries.length && i(a.envFromEntries); +a.$onInit = function() { +c(a.entries), u(a.entries, a.envFromSelectorOptions), "cannotDelete" in e && (a.cannotDeleteAny = !0), "cannotSort" in e && (a.cannotSort = !0), "isReadonly" in e && (a.isReadonlyAny = !0), "showHeader" in e && (a.showHeader = !0), a.envFromEntries && !a.envFromEntries.length && s(a.envFromEntries); }, a.$onChanges = function(e) { -e.entries && a.updateEnvFromEntries(e.entries.currentValue), e.envFromSelectorOptions && c(a.envFromEntries, e.envFromSelectorOptions.currentValue); +e.entries && c(e.entries.currentValue), e.envFromSelectorOptions && u(a.envFromEntries, e.envFromSelectorOptions.currentValue); }; } ], bindings: { diff --git a/dist/scripts/templates.js b/dist/scripts/templates.js index 121a10bb7f..2b6e2ff6bd 100644 --- a/dist/scripts/templates.js +++ b/dist/scripts/templates.js @@ -6653,25 +6653,22 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( $templateCache.put('views/directives/edit-environment-from.html', "\n" + - "
\n" + - "
\n" + + "
\n" + + "
\n" + "
\n" + "{{$ctrl.selectorPlaceholder}}\n" + "
\n" + "
\n" + "
\n" + - "
\n" + - "
\n" + - "
\n" + + "
\n" + + "
\n" + + "
\n" + "
\n" + - "
\n" + - "Set to values in {{entry.selectedEnvFrom.kind | humanizeKind : true | lowercase}}\n" + - "\n" + - "{{entry.configMapRef.name || entry.secretRef.name}}\n" + - "\n" + - "\n" + - "{{entry.configMapRef.name || entry.secretRef.name}}\n" + - "\n" + + "
\n" + + "No secrets or config maps have been added as Environment From.\n" + + "
\n" + + "
\n" + + "Set to values in {{entry.configMapRef.name || entry.secretRef.name}}\n" + "
\n" + "
\n" + "
\n" + @@ -6689,15 +6686,14 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "
\n" + "
\n" + - "
\n" + - " 1)\" class=\"fa fa-bars sort-row\" role=\"button\" aria-label=\"Move row\" aria-grabbed=\"false\" as-sortable-item-handle>\n" + - "\n" + - "View {{entry.selectedEnvFrom.kind | humanizeKind : true}}\n" + "
\n" + + "
\n" + + "\n" + + "\n" + "
\n" + "
\n" + - "
\n" + - "{{ $ctrl.addRowLink }}\n" + + "
\n" + + "{{ $ctrl.addRowLink }}\n" + "
\n" + "
\n" + "" @@ -6717,11 +6713,11 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "\n" + "\n" + "
\n" + - "\n" + + "\n" + "\n" + "

\n" + "Environment From\n" + - "\n" + + "\n" + "

\n" + "\n" + "\n" + @@ -7432,10 +7428,10 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function( "
\n" + "
\n" + "
\n" + - "{{ addRowLink }}\n" + + "{{ addRowLink }}\n" + "\n" + " | \n" + - "{{ addRowWithSelectorsLink }}\n" + + "{{ addRowWithSelectorsLink }}\n" + "\n" + "
\n" + "
\n" + diff --git a/dist/styles/main.css b/dist/styles/main.css index e7567ba476..5b1ef6bc48 100644 --- a/dist/styles/main.css +++ b/dist/styles/main.css @@ -5845,29 +5845,36 @@ alerts+.chromeless .log-loading-msg{margin-top:130px} .container-terminal-wrapper:-fullscreen .fullscreen-toggle .go-fullscreen{display:none} kubernetes-container-terminal .terminal-actions{top:0;right:47px} kubernetes-container-terminal .terminal-actions .spinner{top:5px} -.key-value-editor.as-sortable-dragging .as-sortable-item-delete,.key-value-editor.as-sortable-dragging .input-group-addon,.key-value-editor.as-sortable-dragging input{opacity:.65} -.key-value-editor .as-sortable-DISABLED-item-delete:hover,.key-value-editor .as-sortable-item-delete:hover,.key-value-editor .as-sortable-item-handle:hover,.key-value-editor.as-sortable-dragging .as-sortable-item-handle{opacity:1} -.key-value-editor .as-sortable-DISABLED-item-delete,.key-value-editor .as-sortable-item-delete,.key-value-editor .as-sortable-item-handle{display:inline-block;font-size:15px;opacity:.65;padding:6px;vertical-align:middle} -.key-value-editor .as-sortable-DISABLED-item-delete,.key-value-editor .as-sortable-item-delete{color:#333} -.key-value-editor .as-sortable-DISABLED-item-delete:active,.key-value-editor .as-sortable-DISABLED-item-delete:focus,.key-value-editor .as-sortable-DISABLED-item-delete:hover,.key-value-editor .as-sortable-item-delete:active,.key-value-editor .as-sortable-item-delete:focus,.key-value-editor .as-sortable-item-delete:hover{text-decoration:none} -.key-value-editor .as-sortable-item-handle{cursor:move} -.key-value-editor .as-sortable-placeholder{border-top:2px solid #0088ce;clear:left;width:100%!important} -.key-value-editor .faux-form-control{background-color:#fff;background-image:none;border:1px solid #bbb;border-radius:1px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#363636;display:table-cell;font-size:13px;height:27px;line-height:1.66666667;padding:2px 6px;-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;width:100%;word-break:break-all;word-break:break-word;overflow-wrap:break-word} -.key-value-editor .faux-form-control.readonly{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none;color:#8b8d8f;opacity:1} -.key-value-editor .faux-form-control.readonly:hover{border-color:#bbb} -.key-value-editor .faux-form-control-addon{background-color:#f1f1f1;border:1px solid #bbb;border-radius:1px;color:#363636;display:table-cell;font-size:13px;font-weight:400;line-height:1;margin-right:2px;padding:2px 6px;text-align:center;vertical-align:middle;white-space:nowrap;width:1%} -.key-value-editor .faux-form-control-addon:first-child{border-right:0} -.key-value-editor .faux-form-control-addon span[title]:not([data-original-title=""]){cursor:help} -.key-value-editor .faux-input-group{border-collapse:separate;display:table;position:relative} -.key-value-editor .key-value-editor-buttons{position:absolute;right:0;top:0;width:52px} -.key-value-editor .key-value-editor-entry{display:table;padding-right:52px;position:relative;table-layout:fixed;width:100%} -.key-value-editor .key-value-editor-input .ui-select+.ui-select{padding-top:5px} -@media (min-width:992px){.key-value-editor .key-value-editor-input .ui-select{float:left;width:50%} -.key-value-editor .key-value-editor-input .ui-select+.ui-select{padding-top:0;padding-left:5px} +.environment-from-editor.as-sortable-dragging .as-sortable-item-delete,.environment-from-editor.as-sortable-dragging .input-group-addon,.environment-from-editor.as-sortable-dragging input,.key-value-editor.as-sortable-dragging .as-sortable-item-delete,.key-value-editor.as-sortable-dragging .input-group-addon,.key-value-editor.as-sortable-dragging input{opacity:.65} +.environment-from-editor .as-sortable-DISABLED-item-delete:hover,.environment-from-editor .as-sortable-item-delete:hover,.environment-from-editor .as-sortable-item-handle:hover,.environment-from-editor.as-sortable-dragging .as-sortable-item-handle,.key-value-editor .as-sortable-DISABLED-item-delete:hover,.key-value-editor .as-sortable-item-delete:hover,.key-value-editor .as-sortable-item-handle:hover,.key-value-editor.as-sortable-dragging .as-sortable-item-handle{opacity:1} +.environment-from-editor .as-sortable-DISABLED-item-delete,.environment-from-editor .as-sortable-item-delete,.environment-from-editor .as-sortable-item-handle,.key-value-editor .as-sortable-DISABLED-item-delete,.key-value-editor .as-sortable-item-delete,.key-value-editor .as-sortable-item-handle{display:inline-block;font-size:15px;opacity:.65;padding:6px;vertical-align:middle} +.environment-from-editor .as-sortable-DISABLED-item-delete,.environment-from-editor .as-sortable-item-delete,.key-value-editor .as-sortable-DISABLED-item-delete,.key-value-editor .as-sortable-item-delete{color:#333} +.environment-from-editor .as-sortable-DISABLED-item-delete:active,.environment-from-editor .as-sortable-DISABLED-item-delete:focus,.environment-from-editor .as-sortable-DISABLED-item-delete:hover,.environment-from-editor .as-sortable-item-delete:active,.environment-from-editor .as-sortable-item-delete:focus,.environment-from-editor .as-sortable-item-delete:hover,.key-value-editor .as-sortable-DISABLED-item-delete:active,.key-value-editor .as-sortable-DISABLED-item-delete:focus,.key-value-editor .as-sortable-DISABLED-item-delete:hover,.key-value-editor .as-sortable-item-delete:active,.key-value-editor .as-sortable-item-delete:focus,.key-value-editor .as-sortable-item-delete:hover{text-decoration:none} +.environment-from-editor .as-sortable-item-handle,.key-value-editor .as-sortable-item-handle{cursor:move} +.environment-from-editor .as-sortable-placeholder,.key-value-editor .as-sortable-placeholder{border-top:2px solid #0088ce;clear:left;width:100%!important} +.environment-from-editor .faux-form-control,.key-value-editor .faux-form-control{background-color:#fff;background-image:none;border:1px solid #bbb;border-radius:1px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#363636;display:table-cell;font-size:13px;height:27px;line-height:1.66666667;padding:2px 6px;-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;width:100%;word-break:break-all;word-break:break-word;overflow-wrap:break-word} +.environment-from-editor .faux-form-control.readonly,.key-value-editor .faux-form-control.readonly{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none;color:#8b8d8f;opacity:1} +.environment-from-editor .faux-form-control.readonly:hover,.key-value-editor .faux-form-control.readonly:hover{border-color:#bbb} +.environment-from-editor .faux-form-control-addon,.key-value-editor .faux-form-control-addon{background-color:#f1f1f1;border:1px solid #bbb;border-radius:1px;color:#363636;display:table-cell;font-size:13px;font-weight:400;line-height:1;margin-right:2px;padding:2px 6px;text-align:center;vertical-align:middle;white-space:nowrap;width:1%} +.environment-from-editor .faux-form-control-addon:first-child,.key-value-editor .faux-form-control-addon:first-child{border-right:0} +.environment-from-editor .faux-form-control-addon span[title]:not([data-original-title=""]),.key-value-editor .faux-form-control-addon span[title]:not([data-original-title=""]){cursor:help} +.environment-from-editor .faux-input-group,.key-value-editor .faux-input-group{border-collapse:separate;display:table;position:relative} +.environment-from-editor .faux-input-group.faux-input-single-input,.key-value-editor .faux-input-group.faux-input-single-input{width:100%} +.environment-from-editor .environment-from-editor-button,.environment-from-editor .key-value-editor-buttons,.key-value-editor .environment-from-editor-button,.key-value-editor .key-value-editor-buttons{position:absolute;right:0;top:0;width:52px} +.environment-from-editor .environment-from-entry,.environment-from-editor .key-value-editor-entry,.key-value-editor .environment-from-entry,.key-value-editor .key-value-editor-entry{display:table;padding-right:52px;position:relative;table-layout:fixed;width:100%} +@media (min-width:992px){.environment-from-editor .environment-from-entry .environment-from-editor-button,.environment-from-editor .key-value-editor-entry .environment-from-editor-button,.key-value-editor .environment-from-entry .environment-from-editor-button,.key-value-editor .key-value-editor-entry .environment-from-editor-button{float:left;padding-right:5px;position:relative;width:50%} +} +.environment-from-editor .environment-from-entry .environment-from-input,.environment-from-editor .key-value-editor-entry .environment-from-input,.key-value-editor .environment-from-entry .environment-from-input,.key-value-editor .key-value-editor-entry .environment-from-input{float:left;padding-right:5px;width:100%} +@media (min-width:992px){.environment-from-editor .environment-from-entry .environment-from-input,.environment-from-editor .key-value-editor-entry .environment-from-input,.key-value-editor .environment-from-entry .environment-from-input,.key-value-editor .key-value-editor-entry .environment-from-input{width:50%} +} +.environment-from-editor .environment-from-entry .environment-from-input .faux-input-group,.environment-from-editor .environment-from-entry .environment-from-input .ui-select,.environment-from-editor .key-value-editor-entry .environment-from-input .faux-input-group,.environment-from-editor .key-value-editor-entry .environment-from-input .ui-select,.key-value-editor .environment-from-entry .environment-from-input .faux-input-group,.key-value-editor .environment-from-entry .environment-from-input .ui-select,.key-value-editor .key-value-editor-entry .environment-from-input .faux-input-group,.key-value-editor .key-value-editor-entry .environment-from-input .ui-select{float:left;width:100%} +.environment-from-editor .key-value-editor-input .ui-select+.ui-select,.key-value-editor .key-value-editor-input .ui-select+.ui-select{padding-top:5px} +@media (min-width:992px){.environment-from-editor .key-value-editor-input .ui-select,.key-value-editor .key-value-editor-input .ui-select{float:left;width:50%} +.environment-from-editor .key-value-editor-input .ui-select+.ui-select,.key-value-editor .key-value-editor-input .ui-select+.ui-select{padding-top:0;padding-left:5px} } .key-value-editor .key-value-editor-input,.key-value-editor-header{float:left;padding-right:5px;width:50%} -.key-value-editor-entry-header{padding-right:52px} -.key-value-editor-header{margin-bottom:5px} +.environment-from-editor-entry-header,.key-value-editor-entry-header{padding-right:52px} +.environment-from-editor-header,.key-value-editor-header{margin-bottom:5px} .membership h1 .learn-more-inline{white-space:nowrap;margin-right:10px;margin-left:0px;display:inline-block} .membership .content-pane .col-heading .col-add-role h3,.membership .content-pane .form-new-role .col-roles{display:none} .membership .content-pane{width:100%}