diff --git a/app/assets/css/bootstrap-override.css b/app/assets/css/bootstrap-override.css index 34da9b868..15254bf98 100644 --- a/app/assets/css/bootstrap-override.css +++ b/app/assets/css/bootstrap-override.css @@ -79,6 +79,12 @@ background-color: var(--ui-gray-3); } +.switch-values { + font-style: normal; + font-weight: 500; + margin-left: 5px; +} + /* Toggle */ .slider { diff --git a/app/kubernetes/views/deploy/deploy.html b/app/kubernetes/views/deploy/deploy.html index f988c9058..c9b5ac0d0 100644 --- a/app/kubernetes/views/deploy/deploy.html +++ b/app/kubernetes/views/deploy/deploy.html @@ -13,7 +13,7 @@ Deploy
Namespace
-
+
@@ -31,16 +31,18 @@ -
+
+
- + You do not have access to any namespace. Contact your administrator to get access to a namespace.
@@ -103,40 +105,41 @@
- - -
-

- - Portainer uses Kompose to convert your Compose manifest to a Kubernetes compliant manifest. Be wary that - not all the Compose format options are supported by Kompose at the moment. -

-

- You can get more information about Compose file format in the - official documentation. -

-
-
-

- - This feature allows you to deploy any kind of Kubernetes resource in this environment (Deployment, Secret, ConfigMap...). -

-

- You can get more information about Kubernetes file format in the - official documentation. -

-
-
-
- +
+ + + +

+ + Portainer uses Kompose to convert your Compose manifest to a Kubernetes compliant manifest. Be wary that + not all the Compose format options are supported by Kompose at the moment. +

+

+ You can get more information about Compose file format in the + official documentation. +

+
+ +

+ + This feature allows you to deploy any kind of Kubernetes resource in this environment (Deployment, Secret, ConfigMap...). +

+

+ You can get more information about Kubernetes file format in the + official documentation. +

+
+
+
+
@@ -188,7 +191,7 @@ Logs - +
diff --git a/app/kubernetes/views/deploy/deployController.js b/app/kubernetes/views/deploy/deployController.js index 1b5ff6674..876572243 100644 --- a/app/kubernetes/views/deploy/deployController.js +++ b/app/kubernetes/views/deploy/deployController.js @@ -27,15 +27,15 @@ class KubernetesDeployController { this.isTemplateVariablesEnabled = isBE; this.deployOptions = [ - buildOption('method_kubernetes', 'fa fa-cubes', 'Kubernetes', 'Kubernetes manifest format', KubernetesDeployManifestTypes.KUBERNETES), - buildOption('method_compose', 'fab fa-docker', 'Compose', 'Docker compose format', KubernetesDeployManifestTypes.COMPOSE), + buildOption('method_kubernetes', 'svg-kubernetes', 'Kubernetes', 'Kubernetes manifest format', KubernetesDeployManifestTypes.KUBERNETES), + buildOption('method_compose', 'svg-dockercompose', 'Compose', 'Docker compose format', KubernetesDeployManifestTypes.COMPOSE), ]; this.methodOptions = [ - buildOption('method_repo', 'fab fa-github', 'Git Repository', 'Use a git repository', KubernetesDeployBuildMethods.GIT), - buildOption('method_editor', 'fa fa-edit', 'Web editor', 'Use our Web editor', KubernetesDeployBuildMethods.WEB_EDITOR), - buildOption('method_url', 'fa fa-globe', 'URL', 'Specify a URL to a file', KubernetesDeployBuildMethods.URL), - buildOption('method_template', 'fa fa-rocket', 'Custom Template', 'Use a custom template', KubernetesDeployBuildMethods.CUSTOM_TEMPLATE), + buildOption('method_repo', 'svg-git', 'Git Repository', 'Use a git repository', KubernetesDeployBuildMethods.GIT), + buildOption('method_editor', 'svg-custom', 'Web editor', 'Use our Web editor', KubernetesDeployBuildMethods.WEB_EDITOR), + buildOption('method_url', 'svg-url', 'URL', 'Specify a URL to a file', KubernetesDeployBuildMethods.URL), + buildOption('method_template', 'svg-template', 'Custom Template', 'Use a custom template', KubernetesDeployBuildMethods.CUSTOM_TEMPLATE), ]; this.state = { diff --git a/app/portainer/components/custom-template-selector/custom-template-selector.html b/app/portainer/components/custom-template-selector/custom-template-selector.html index 516778cc3..dffcce07a 100644 --- a/app/portainer/components/custom-template-selector/custom-template-selector.html +++ b/app/portainer/components/custom-template-selector/custom-template-selector.html @@ -1,7 +1,7 @@
-
- -
+
+ +
- No custom templates are available. Head over to the custom template view to create one. + + No custom templates are available. Head over to the custom template view to + create one. +
diff --git a/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-file-item/git-form-additional-file-item.html b/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-file-item/git-form-additional-file-item.html index ca030590e..d293005a0 100644 --- a/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-file-item/git-form-additional-file-item.html +++ b/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-file-item/git-form-additional-file-item.html @@ -1,6 +1,6 @@
-
+
path
-
+
-

Path is required.

-

File path must include yaml, yml, json, or hcl extension

+

Path is required.

+

+ File path must include yaml, yml, json, or hcl extension +

diff --git a/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-files-panel.html b/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-files-panel.html index e69131668..f06c46d84 100644 --- a/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-files-panel.html +++ b/app/portainer/components/forms/git-form/git-form-additional-files-panel/git-form-additional-files-panel.html @@ -1,11 +1,15 @@
-
- - - add file - +
+
+ +
+
+ + add file + +
-
+
diff --git a/app/portainer/components/forms/git-form/git-form-auto-update-fieldset/git-form-auto-update-fieldset.html b/app/portainer/components/forms/git-form/git-form-auto-update-fieldset/git-form-auto-update-fieldset.html index a471b6191..74e6ed6af 100644 --- a/app/portainer/components/forms/git-form/git-form-auto-update-fieldset/git-form-auto-update-fieldset.html +++ b/app/portainer/components/forms/git-form/git-form-auto-update-fieldset/git-form-auto-update-fieldset.html @@ -1,14 +1,21 @@
- +
-
- +
+ Any changes to this stack or application made locally in Portainer will be overridden, which may cause service interruption.
-
+
@@ -49,17 +56,20 @@ required interval-format /> -
-
-
-
-
-

This field is required.

-

Please enter a valid time interval.

-

Minimum interval is 1m

+
+
+
+
+

This field is required.

+

Please enter a valid time interval.

+

Minimum interval is 1m

+
+
+
+
@@ -79,16 +90,17 @@ feature-id="$ctrl.limitedFeature" checked="$ctrl.model.RepositoryAutomaticUpdatesForce" label="'Force Redeployment'" + label-class="'col-sm-3 col-lg-2'" on-change="($ctrl.onChangeAutoUpdateForce)" >
-
- +
+ When enabled, enforces automatic deployment at each interval or webhook invocation.
-
- +
+ When enabled, updates from the git repository will occur automatically at an interval or webhook.
diff --git a/app/portainer/components/forms/git-form/git-form-compose-path-field/git-form-compose-path-field.html b/app/portainer/components/forms/git-form/git-form-compose-path-field/git-form-compose-path-field.html index ca4007572..865271e58 100644 --- a/app/portainer/components/forms/git-form/git-form-compose-path-field/git-form-compose-path-field.html +++ b/app/portainer/components/forms/git-form/git-form-compose-path-field/git-form-compose-path-field.html @@ -19,7 +19,9 @@ ng-pattern="/.+\.(yml|yaml|json|hcl)$/i" required /> -

Invalid file path

+

+ Invalid file path +

diff --git a/app/react/components/BoxSelector/BoxSelector.css b/app/react/components/BoxSelector/BoxSelector.css index d46d9008b..26b2817c8 100644 --- a/app/react/components/BoxSelector/BoxSelector.css +++ b/app/react/components/BoxSelector/BoxSelector.css @@ -1,6 +1,10 @@ .boxselector_wrapper { display: flex; flex-flow: row wrap; + gap: 10px; + overflow: hidden !important; + margin-bottom: 5px; + margin-top: 5px; } @media only screen and (max-width: 700px) { diff --git a/app/react/components/BoxSelector/BoxSelectorItem.css b/app/react/components/BoxSelector/BoxSelectorItem.css index d36c219ae..a92730468 100644 --- a/app/react/components/BoxSelector/BoxSelectorItem.css +++ b/app/react/components/BoxSelector/BoxSelectorItem.css @@ -2,11 +2,11 @@ .box-selector-item { --selected-item-color: var(--ui-blue-6); flex: 1; - padding: 5px; } -.boxselector_wrapper .boxselector_header { - font-size: 14px; +.boxselector_wrapper .boxselector_header, +.box-selector-item .boxselector_header { + font-size: 18px; margin-bottom: 5px; font-weight: bold; user-select: none; @@ -17,22 +17,26 @@ font-weight: normal; } -.boxselector_wrapper input[type='radio'] { +.boxselector_wrapper input[type='radio'], +.box-selector-item input[type='radio'] { display: none; } -.boxselector_wrapper input[type='radio']:not(:disabled) ~ label { +.boxselector_wrapper input[type='radio']:not(:disabled) ~ label, +.box-selector-item input[type='radio']:not(:disabled) ~ label { cursor: pointer; background-color: var(--bg-boxselector-wrapper-disabled-color); text-align: left; height: 100%; } -.boxselector_wrapper input[type='radio']:not(:disabled):hover ~ label:hover { +.boxselector_wrapper input[type='radio']:not(:disabled):hover ~ label:hover, +.box-selector-item input[type='radio']:not(:disabled):hover ~ label:hover { cursor: pointer; } -.boxselector_wrapper label { +.boxselector_wrapper label, +.box-selector-item label { font-weight: normal; font-size: 12px; display: block; @@ -109,6 +113,7 @@ } .box-selector-item.limited.business :checked + label { + background-color: initial; color: initial; } @@ -126,11 +131,9 @@ .boxselector_icon, .boxselector_icon img { - height: 48px; - width: 48px; color: var(--ui-blue-8); - font-size: 48px; - margin-top: 20px; + font-size: 90px; + display: block; } .boxselector_header pr-icon { @@ -140,3 +143,17 @@ .boxselector_content { padding-left: 20px; } + +.boxselector_wrapper input[type='radio']:not(:disabled) ~ label, +.box-selector-item input[type='radio']:not(:disabled) ~ label { + background-color: var(--ui-gray-2); +} + +.boxselector_img_container { + line-height: 90px; + margin-bottom: 0; +} + +.box-selector-item p { + margin-bottom: 0; +} diff --git a/app/react/components/form-components/SwitchField/SwitchField.module.css b/app/react/components/form-components/SwitchField/SwitchField.module.css index 475c82125..858758265 100644 --- a/app/react/components/form-components/SwitchField/SwitchField.module.css +++ b/app/react/components/form-components/SwitchField/SwitchField.module.css @@ -7,3 +7,9 @@ .label { padding: 0; } + +.switchValues { + font-style: normal; + font-weight: 500; + margin-left: 5px; +} diff --git a/app/react/components/form-components/SwitchField/SwitchField.tsx b/app/react/components/form-components/SwitchField/SwitchField.tsx index 87d88d154..9b07133a3 100644 --- a/app/react/components/form-components/SwitchField/SwitchField.tsx +++ b/app/react/components/form-components/SwitchField/SwitchField.tsx @@ -65,10 +65,14 @@ export function SwitchField({ dataCy={dataCy} /> {switchValues && checked && ( - {switchValues.on} + + {switchValues.on} + )} {switchValues && !checked && ( - {switchValues.off} + + {switchValues.off} + )} );