Repository: traefik/traefik (language: go)

Issue:
Dashboard stopped showing middleware names between 2.11.0 and 2.11.1
### Welcome!

- [x] Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any.
- [x] Yes, I've searched similar issues on the [Traefik community forum](https://community.traefik.io) and didn't find any.

### What did you do?

From 2.11.1 onwards, it appears that the dashboard no longer shows the names of middlewares. 
The release notes for https://github.com/traefik/traefik/releases/tag/v2.11.1 do not detail this change, so it's not clear what the rational is behind this.

The name of the middleware was very useful to see in the dashboard. For example, I might have configured several middlewares of the same type but with different settings. I could previously tell which one a router was using by looking at it in the dashboard and seeing the name and thus knowing what effect it had. Now I only know that there is a middleware of that type, but not which one it is (which completely removes the utility of viewing it in the dashboard).

2.11.0 dashboard showing middlewares with their names

<img width="1449" alt="Image" src="https://github.com/user-attachments/assets/0a94ce04-7763-4625-b26e-53a90a2b47cf" />

### What did you see instead?

2.11.1 dashboard showing middlewares with names now missing

<img width="1456" alt="Image" src="https://github.com/user-attachments/assets/073b56f4-166e-4c9f-9ee9-c358426077f9" />

### What version of Traefik are you using?

```
Version:      2.11.1
Codename:     mimolette
Go version:   go1.22.2
Built:        2024-04-10T09:58:54Z
OS/Arch:      linux/arm64
```
and all versions since, including 3.x

### What is your environment & configuration?

N/A: the issue is not configuration dependent 

### If applicable, please paste the log output in DEBUG level

_No response_


Discussion / hints:

Fix patch:
diff --git a/webui/src/components/_commons/Chips.vue b/webui/src/components/_commons/Chips.vue
index 4108f6d276..531723a22d 100644
--- a/webui/src/components/_commons/Chips.vue
+++ b/webui/src/components/_commons/Chips.vue
@@ -14,7 +14,7 @@
 <script>
 export default {
   props: {
-    dense: Boolean,
+    dense: { type: Boolean, default: undefined },
     classNames: Array[String],
     list: Array[Object]
   }
diff --git a/webui/src/components/_commons/PanelHealthCheck.vue b/webui/src/components/_commons/PanelHealthCheck.vue
index 0d1689d0d0..7ac03a7bc3 100644
--- a/webui/src/components/_commons/PanelHealthCheck.vue
+++ b/webui/src/components/_commons/PanelHealthCheck.vue
@@ -138,7 +138,7 @@ export default {
   },
   props: {
     data: { type: Object, default: undefined, required: false },
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   },
   computed: {
     isDense () {
diff --git a/webui/src/components/_commons/PanelMiddlewares.vue b/webui/src/components/_commons/PanelMiddlewares.vue
index ced92222d2..19cfbd4746 100644
--- a/webui/src/components/_commons/PanelMiddlewares.vue
+++ b/webui/src/components/_commons/PanelMiddlewares.vue
@@ -1563,7 +1563,7 @@ export default defineComponent({
   },
   props: {
     data: Array[Object],
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   },
   computed: {
     protocol () {
diff --git a/webui/src/components/_commons/PanelMirroringServices.vue b/webui/src/components/_commons/PanelMirroringServices.vue
index a526f3f0fa..eccabfcc02 100644
--- a/webui/src/components/_commons/PanelMirroringServices.vue
+++ b/webui/src/components/_commons/PanelMirroringServices.vue
@@ -71,7 +71,7 @@ export default {
   name: 'PanelMirroringServices',
   props: {
     data: { type: Object, default: undefined, required: false },
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   },
   computed: {
     isDense () {
diff --git a/webui/src/components/_commons/PanelServers.vue b/webui/src/components/_commons/PanelServers.vue
index 5c3e8f54bd..5e94847f1b 100644
--- a/webui/src/components/_commons/PanelServers.vue
+++ b/webui/src/components/_commons/PanelServers.vue
@@ -103,8 +103,8 @@ export default defineComponent({
   },
   props: {
     data: { type: Object, default: undefined, required: false },
-    dense: Boolean,
-    hasStatus: Boolean
+    dense: { type: Boolean, default: undefined },
+    hasStatus: { type: Boolean, default: undefined }
   },
   computed: {
     isDense () {
diff --git a/webui/src/components/_commons/PanelServiceDetails.vue b/webui/src/components/_commons/PanelServiceDetails.vue
index 0f6758e524..e5dbe4f333 100644
--- a/webui/src/components/_commons/PanelServiceDetails.vue
+++ b/webui/src/components/_commons/PanelServiceDetails.vue
@@ -172,7 +172,7 @@ export default defineComponent({
   },
   props: {
     data: { type: Object, default: undefined, required: false },
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   },
   computed: {
     isDense () {
diff --git a/webui/src/components/_commons/PanelWeightedServices.vue b/webui/src/components/_commons/PanelWeightedServices.vue
index b8eeaa72aa..107e23f941 100644
--- a/webui/src/components/_commons/PanelWeightedServices.vue
+++ b/webui/src/components/_commons/PanelWeightedServices.vue
@@ -67,7 +67,7 @@ export default defineComponent({
   components: {},
   props: {
     data: { type: Object, default: undefined, required: false },
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   },
   computed: {
     isDense () {
diff --git a/webui/src/components/_commons/StickyServiceDetails.vue b/webui/src/components/_commons/StickyServiceDetails.vue
index de81f11191..c2ac73d45e 100644
--- a/webui/src/components/_commons/StickyServiceDetails.vue
+++ b/webui/src/components/_commons/StickyServiceDetails.vue
@@ -56,7 +56,7 @@ export default defineComponent({
   },
   props: {
     sticky: { type: Object, default: undefined, required: false },
-    dense: Boolean
+    dense: { type: Boolean, default: undefined }
   }
 })
 </script>


Test patch: