+
- cloud_queue
-
- Provider
-
- {{getCloudProviderKind}}
- Provider
-
- /
-
- {{region}}
- Region
-
-
- /
-
-
- {{secret}}
-
- Used Credential
-
-
-
+
+
+ cloud_queue
+
+
+
+
+ Provider
+ {{shootCloudProviderKind}}
+
+
+
+
+ Credential
+
+ {{shootSecretName}}
+
+
+
+
+
+ {{regionZoneTitle}}
+ {{regionZoneText}}
+
+
+
+
-
+
spa
Seed
-
- {{seed}}
+
+ {{shootSeed}}
- {{seed}}
+ {{shootSeed}}
Technical Id
- {{technicalId}}
+ {{shootTechnicalId}}
-
+
@@ -77,7 +83,7 @@ limitations under the License.
settings_ethernet
CIDR
- {{cidr}}
+ {{shootCidr}}
@@ -100,12 +106,13 @@ limitations under the License.
import { mapGetters } from 'vuex'
import get from 'lodash/get'
+import join from 'lodash/join'
import includes from 'lodash/includes'
import CopyBtn from '@/components/CopyBtn'
import {
- getCloudProviderKind,
canLinkToSeed
} from '@/utils'
+import { shootItem } from '@/mixins/shootItem'
export default {
components: {
@@ -116,30 +123,13 @@ export default {
type: Object
}
},
+ mixins: [shootItem],
computed: {
...mapGetters([
'namespaces'
]),
- getCloudProviderKind () {
- return getCloudProviderKind(get(this.shootItem, 'spec.cloud'))
- },
- region () {
- return get(this.shootItem, 'spec.cloud.region')
- },
- secret () {
- return get(this.shootItem, 'spec.cloud.secretBindingRef.name')
- },
- cidr () {
- return get(this.shootItem, `spec.cloud.${this.getCloudProviderKind}.networks.nodes`)
- },
- technicalId () {
- return get(this.shootItem, `status.technicalID`)
- },
- seed () {
- return get(this.shootItem, 'spec.cloud.seed')
- },
showSeedInfo () {
- return !!this.seed && this.hasAccessToGardenNamespace
+ return !!this.shootSeed && this.hasAccessToGardenNamespace
},
hasAccessToGardenNamespace () {
return includes(this.namespaces, 'garden')
@@ -149,16 +139,37 @@ export default {
},
shootIngressDomainText () {
const nginxIngressEnabled = get(this.shootItem, 'spec.addons.nginx-ingress.enabled', false)
- if (!this.domain || !nginxIngressEnabled) {
+ if (!this.shootDomain || !nginxIngressEnabled) {
return undefined
}
- return `*.ingress.${this.domain}`
+ return `*.ingress.${this.shootDomain}`
},
namespace () {
return get(this.$route.params, 'namespace')
},
- domain () {
- return get(this.shootItem, 'spec.dns.domain')
+ shootZonesText () {
+ return join(this.shootZones, ', ')
+ },
+ regionZoneText () {
+ if (this.shootZones.length > 0) {
+ return `${this.shootRegion} / ${this.shootZonesText}`
+ }
+ return this.shootRegion
+ },
+ regionZoneTitle () {
+ if (this.shootZones.length > 0) {
+ return `Region / ${this.zoneTitle}`
+ }
+ return 'Region'
+ },
+ zoneTitle () {
+ if (this.shootZones.length > 1) {
+ return 'Zones'
+ }
+ return 'Zone'
+ },
+ shootSecretName () {
+ return this.shootSecret || 'default'
}
}
}
diff --git a/frontend/src/components/Journals.vue b/frontend/src/components/ShootDetails/ShootJournalsCard.vue
similarity index 64%
rename from frontend/src/components/Journals.vue
rename to frontend/src/components/ShootDetails/ShootJournalsCard.vue
index d509357e45..b476b2929a 100644
--- a/frontend/src/components/Journals.vue
+++ b/frontend/src/components/ShootDetails/ShootJournalsCard.vue
@@ -40,8 +40,9 @@ limitations under the License.
import get from 'lodash/get'
import forEach from 'lodash/forEach'
import { mapState } from 'vuex'
-import Journal from '@/components/Journal'
-import { getDateFormatted, getCloudProviderKind, canLinkToSeed } from '@/utils'
+import Journal from '@/components/ShootJournals/Journal'
+import { canLinkToSeed } from '@/utils'
+import { shootItem } from '@/mixins/shootItem'
export default {
components: {
@@ -51,24 +52,19 @@ export default {
journals: {
type: Array
},
- shoot: {
+ shootItem: {
type: Object,
required: true
}
},
+ mixins: [shootItem],
computed: {
...mapState([
'cfg'
]),
- getCloudProviderKind () {
- return getCloudProviderKind(get(this.shoot, 'spec.cloud'))
- },
- region () {
- return get(this.shoot, 'spec.cloud.region')
- },
errorConditions () {
let errorConditions = ''
- forEach(get(this.shoot, 'status.conditions'), condition => {
+ forEach(this.shootConditions, condition => {
errorConditions = `${errorConditions}\n**${condition.type}:** ${condition.message}`
})
return errorConditions
@@ -76,29 +72,23 @@ export default {
gitHubRepoUrl () {
return this.cfg.gitHubRepoUrl
},
- namespace () {
- return get(this.shoot, 'metadata.namespace')
- },
canLinkToSeed () {
- return canLinkToSeed({ shootNamespace: this.namespace })
+ return canLinkToSeed({ shootNamespace: this.shootNamespace })
},
createJournalLink () {
- const name = get(this.shoot, 'metadata.name')
-
- const url = `${window.location.origin}/namespace/${this.namespace}/shoots/${name}`
+ const url = `${window.location.origin}/namespace/${this.shootNamespace}/shoots/${this.shootName}`
- const dashboardShootLink = `**Shoot:** [${this.namespace}/${name}](${url})`
- const kind = `**Kind:** ${this.getCloudProviderKind} / ${this.region}`
+ const dashboardShootLink = `**Shoot:** [${this.shootNamespace}/${this.shootName}](${url})`
+ const kind = `**Kind:** ${this.shootCloudProviderKind} / ${this.shootRegion}`
- const seedName = get(this.shoot, 'spec.cloud.seed')
- const seedLinkOrName = this.canLinkToSeed ? `[${seedName}](${window.location.origin}/namespace/garden/shoots/${seedName})` : seedName
+ const seedLinkOrName = this.canLinkToSeed ? `[${this.shootSeed}](${window.location.origin}/namespace/garden/shoots/${this.shootSeed})` : this.shootSeed
const seed = `**Seed:** ${seedLinkOrName}`
- const createdAt = `**Created At:** ${getDateFormatted(get(this.shoot, 'metadata.creationTimestamp', ''))}`
- const lastOperation = `**Last Op:** ${get(this.shoot, 'status.lastOperation.description', '')}`
- const lastError = `**Last Error:** ${get(this.shoot, 'status.lastError.description', '-')}`
+ const createdAt = `**Created At:** ${this.shootCreatedAt}`
+ const lastOperation = `**Last Op:** ${get(this.shootLastOperation, 'description', '')}`
+ const lastError = `**Last Error:** ${get(this.shootLastError, 'description', '-')}`
- const journalTitle = encodeURIComponent(`[${this.namespace}/${name}]`)
+ const journalTitle = encodeURIComponent(`[${this.shootNamespace}/${this.shootName}]`)
const body = encodeURIComponent(`
${dashboardShootLink}
${kind}
diff --git a/frontend/src/components/ShootLifecycleCard.vue b/frontend/src/components/ShootDetails/ShootLifecycleCard.vue
similarity index 84%
rename from frontend/src/components/ShootLifecycleCard.vue
rename to frontend/src/components/ShootDetails/ShootLifecycleCard.vue
index cef9f639a8..03990f5733 100644
--- a/frontend/src/components/ShootLifecycleCard.vue
+++ b/frontend/src/components/ShootDetails/ShootLifecycleCard.vue
@@ -32,7 +32,7 @@ limitations under the License.
-
+
@@ -88,17 +88,18 @@ limitations under the License.
import { mapState } from 'vuex'
import get from 'lodash/get'
import moment from 'moment-timezone'
-import { isShootHasNoHibernationScheduleWarning, isReconciliationDeactivated } from '@/utils'
-import ShootHibernation from '@/components/ShootHibernation'
-import MaintenanceStart from '@/components/MaintenanceStart'
-import MaintenanceConfiguration from '@/components/MaintenanceConfiguration'
-import HibernationConfiguration from '@/components/HibernationConfiguration'
+import { isShootHasNoHibernationScheduleWarning } from '@/utils'
+import ChangeHibernation from '@/components/ShootHibernation/ChangeHibernation'
+import MaintenanceStart from '@/components/ShootMaintenance/MaintenanceStart'
+import MaintenanceConfiguration from '@/components/ShootMaintenance/MaintenanceConfiguration'
+import HibernationConfiguration from '@/components/ShootHibernation/HibernationConfiguration'
import DeleteCluster from '@/components/DeleteCluster'
import ReconcileStart from '@/components/ReconcileStart'
+import { shootItem } from '@/mixins/shootItem'
export default {
components: {
- ShootHibernation,
+ ChangeHibernation,
MaintenanceStart,
MaintenanceConfiguration,
HibernationConfiguration,
@@ -110,16 +111,14 @@ export default {
type: Object
}
},
+ mixins: [shootItem],
computed: {
...mapState([
'localTimezone'
]),
- purpose () {
- return get(this.shootItem, 'metadata.annotations[garden.sapcloud.io/purpose]')
- },
hibernationDescription () {
- const purpose = this.purpose || ''
- if (get(this.shootItem, 'spec.hibernation.schedules', []).length > 0) {
+ const purpose = this.shootPurpose || ''
+ if (this.shootHibernationSchedules.length > 0) {
return 'Hibernation schedule configured'
} else if (this.isShootHasNoHibernationScheduleWarning) {
return `Please configure a schedule for this ${purpose} cluster`
@@ -129,7 +128,7 @@ export default {
},
maintenanceDescription () {
const timezone = this.localTimezone
- const maintenanceStart = get(this.shootItem, 'spec.maintenance.timeWindow.begin')
+ const maintenanceStart = get(this.shootMaintenance, 'timeWindow.begin')
const momentObj = moment.tz(maintenanceStart, 'HHmmZ', timezone)
if (momentObj.isValid()) {
const maintenanceStr = momentObj.format('HH:mm')
@@ -141,14 +140,11 @@ export default {
return isShootHasNoHibernationScheduleWarning(this.shootItem)
},
reconcileDescription () {
- if (this.isReconciliationDeactivated) {
+ if (this.isShootReconciliationDeactivated) {
return 'Reconciliation deactivated'
} else {
return 'Cluster reconciliation will be triggered regularly'
}
- },
- isReconciliationDeactivated () {
- return isReconciliationDeactivated(get(this.item, 'metadata'))
}
},
methods: {
diff --git a/frontend/src/components/Logging.vue b/frontend/src/components/ShootDetails/ShootLogging.vue
similarity index 92%
rename from frontend/src/components/Logging.vue
rename to frontend/src/components/ShootDetails/ShootLogging.vue
index 638266e815..c6f48fe064 100644
--- a/frontend/src/components/Logging.vue
+++ b/frontend/src/components/ShootDetails/ShootLogging.vue
@@ -23,7 +23,7 @@ limitations under the License.
Kibana
-
+
{{kibanaUrl}}
Kibana is not running for hibernated clusters
@@ -39,7 +39,7 @@ limitations under the License.
diff --git a/frontend/src/components/ShootHibernation/ChangeHibernation.vue b/frontend/src/components/ShootHibernation/ChangeHibernation.vue
new file mode 100644
index 0000000000..9e787ab696
--- /dev/null
+++ b/frontend/src/components/ShootHibernation/ChangeHibernation.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ This will scale the worker nodes of your cluster down to zero.
+ Type {{shootName}} below and confirm to hibernate your cluster.
+
+
+ This will wake-up your cluster and scale the worker nodes up to their previous count.
+
+
+
+
+
+
diff --git a/frontend/src/components/ShootHibernation/HibernationConfiguration.vue b/frontend/src/components/ShootHibernation/HibernationConfiguration.vue
new file mode 100644
index 0000000000..6658c5bbd4
--- /dev/null
+++ b/frontend/src/components/ShootHibernation/HibernationConfiguration.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/HibernationScheduleEvent.vue b/frontend/src/components/ShootHibernation/HibernationScheduleEvent.vue
similarity index 70%
rename from frontend/src/components/HibernationScheduleEvent.vue
rename to frontend/src/components/ShootHibernation/HibernationScheduleEvent.vue
index d29d8bf545..dca599b088 100644
--- a/frontend/src/components/HibernationScheduleEvent.vue
+++ b/frontend/src/components/ShootHibernation/HibernationScheduleEvent.vue
@@ -15,73 +15,77 @@ limitations under the License.
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- mdi-close
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mdi-close
+
+
+
+
+
+
diff --git a/frontend/src/components/HibernationScheduleWarning.vue b/frontend/src/components/ShootHibernation/HibernationScheduleWarning.vue
similarity index 100%
rename from frontend/src/components/HibernationScheduleWarning.vue
rename to frontend/src/components/ShootHibernation/HibernationScheduleWarning.vue
diff --git a/frontend/src/components/HibernationSchedule.vue b/frontend/src/components/ShootHibernation/ManageHibernationSchedule.vue
similarity index 90%
rename from frontend/src/components/HibernationSchedule.vue
rename to frontend/src/components/ShootHibernation/ManageHibernationSchedule.vue
index e6e2e94eac..dffddb136e 100644
--- a/frontend/src/components/HibernationSchedule.vue
+++ b/frontend/src/components/ShootHibernation/ManageHibernationSchedule.vue
@@ -17,7 +17,7 @@ limitations under the License.
-
+
-
+
diff --git a/frontend/src/pages/ShootItemEditor.vue b/frontend/src/components/ShootItemEditor.vue
similarity index 61%
rename from frontend/src/pages/ShootItemEditor.vue
rename to frontend/src/components/ShootItemEditor.vue
index fb300ade1e..80c6ae2a07 100644
--- a/frontend/src/pages/ShootItemEditor.vue
+++ b/frontend/src/components/ShootItemEditor.vue
@@ -16,28 +16,18 @@ limitations under the License.
-
-
- By modifying the resource directly you may cause serious problems in your cluster.
- We cannot guarantee that you can solve problems that result from using Cluster Editor incorrectly.
+
+
+
-
-
- {{alertMessage}}
-
+
+
-
-
-
- mdi-content-save
-
- Save
-
-
+
@@ -79,43 +69,20 @@ limitations under the License.
>
-
-
-
-
-
-
- {{hasConflict ? 'mdi-alert-circle' : 'mdi-check-circle'}}
-
-
- Cluster resource has been modified
by another user or process
- Cluster resource can be saved
without any conflicts
-
-
+
+
{{ snackbarText }}
-
-
-
-
-
-
-
- {{action.noButtonText}}
- {{action.yesButtonText}}
-
-
-
diff --git a/frontend/src/components/MaintenanceStart.vue b/frontend/src/components/ShootMaintenance/MaintenanceStart.vue
similarity index 51%
rename from frontend/src/components/MaintenanceStart.vue
rename to frontend/src/components/ShootMaintenance/MaintenanceStart.vue
index 030cf97b8e..d0c9a990f0 100644
--- a/frontend/src/components/MaintenanceStart.vue
+++ b/frontend/src/components/ShootMaintenance/MaintenanceStart.vue
@@ -15,55 +15,44 @@ limitations under the License.
-->
-
-
-
- mdi-refresh
-
- Requesting to schedule cluster maintenance
- {{caption}}
-
-
- {{caption}}
- {{shootName}}
-
-
-
- Do you want to start the maintenance of your cluster outside of the configured maintenance time window?
-
-
-
-
-
-
+
+
+
+
+ Do you want to start the maintenance of your cluster outside of the configured maintenance time window?
+
+
+
+
+
+
+
diff --git a/frontend/src/components/ShootVersion.vue b/frontend/src/components/ShootVersion/ShootVersion.vue
similarity index 77%
rename from frontend/src/components/ShootVersion.vue
rename to frontend/src/components/ShootVersion/ShootVersion.vue
index 85cabee02f..1a8a40c3da 100644
--- a/frontend/src/components/ShootVersion.vue
+++ b/frontend/src/components/ShootVersion/ShootVersion.vue
@@ -32,38 +32,36 @@ limitations under the License.
color="cyan darken-2"
>
arrow_drop_up
- {{k8sVersion}}
+ {{shootK8sVersion}}
mdi-arrow-up-bold-circle
mdi-arrow-up-bold-circle-outline
{{tooltipText}}
-
Update Cluster
{{shootName}}
This action cannot be undone.
-
+
diff --git a/frontend/src/components/MachineType.vue b/frontend/src/components/ShootWorkers/MachineType.vue
similarity index 86%
rename from frontend/src/components/MachineType.vue
rename to frontend/src/components/ShootWorkers/MachineType.vue
index 561d495a97..e04f61ea0e 100644
--- a/frontend/src/components/MachineType.vue
+++ b/frontend/src/components/ShootWorkers/MachineType.vue
@@ -25,6 +25,8 @@
diff --git a/frontend/src/components/ManageWorkers.vue b/frontend/src/components/ShootWorkers/ManageWorkers.vue
similarity index 57%
rename from frontend/src/components/ManageWorkers.vue
rename to frontend/src/components/ShootWorkers/ManageWorkers.vue
index 2d74868a93..c522c6f864 100644
--- a/frontend/src/components/ManageWorkers.vue
+++ b/frontend/src/components/ShootWorkers/ManageWorkers.vue
@@ -16,18 +16,13 @@ limitations under the License.
-
+
-
+
add
@@ -63,7 +60,7 @@ limitations under the License.
-
-
diff --git a/frontend/src/components/VolumeSizeInput.vue b/frontend/src/components/ShootWorkers/VolumeSizeInput.vue
similarity index 100%
rename from frontend/src/components/VolumeSizeInput.vue
rename to frontend/src/components/ShootWorkers/VolumeSizeInput.vue
diff --git a/frontend/src/components/VolumeType.vue b/frontend/src/components/ShootWorkers/VolumeType.vue
similarity index 85%
rename from frontend/src/components/VolumeType.vue
rename to frontend/src/components/ShootWorkers/VolumeType.vue
index 92734dbb7e..2147950978 100644
--- a/frontend/src/components/VolumeType.vue
+++ b/frontend/src/components/ShootWorkers/VolumeType.vue
@@ -21,6 +21,9 @@
diff --git a/frontend/src/components/ShootWorkers/WorkerConfiguration.vue b/frontend/src/components/ShootWorkers/WorkerConfiguration.vue
new file mode 100644
index 0000000000..170b3c9aa7
--- /dev/null
+++ b/frontend/src/components/ShootWorkers/WorkerConfiguration.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/WorkerGroup.vue b/frontend/src/components/ShootWorkers/WorkerGroup.vue
similarity index 69%
rename from frontend/src/components/WorkerGroup.vue
rename to frontend/src/components/ShootWorkers/WorkerGroup.vue
index b517832646..f225550c7d 100644
--- a/frontend/src/components/WorkerGroup.vue
+++ b/frontend/src/components/ShootWorkers/WorkerGroup.vue
@@ -27,10 +27,9 @@ limitations under the License.
:key="index"
fill-height
align-center>
- {{line.icon}}
{{line.title}}: {{line.value}} {{line.description}}
- {{workerGroup.name}}
+ {{workerGroup.name}}
@@ -39,6 +38,7 @@ limitations under the License.
import GPopper from '@/components/GPopper'
import find from 'lodash/find'
import { mapGetters } from 'vuex'
+import { getTimestampFormatted } from '@/utils'
export default {
name: 'worker-group',
@@ -55,28 +55,30 @@ export default {
},
computed: {
...mapGetters([
- 'machineTypesByCloudProfileName',
- 'volumeTypesByCloudProfileName'
+ 'machineTypesByCloudProfileNameAndZones',
+ 'volumeTypesByCloudProfileNameAndZones',
+ 'machineImagesByCloudProfileName'
]),
machineTypes () {
- return this.machineTypesByCloudProfileName(this.cloudProfileName)
+ return this.machineTypesByCloudProfileNameAndZones({ cloudProfileName: this.cloudProfileName })
},
volumeTypes () {
- return this.volumeTypesByCloudProfileName(this.cloudProfileName)
+ return this.volumeTypesByCloudProfileNameAndZones({ cloudProfileName: this.cloudProfileName })
+ },
+ machineImages () {
+ return this.machineImagesByCloudProfileName(this.cloudProfileName)
},
description () {
const description = []
if (this.workerGroup.machineType) {
const machineType = find(this.machineTypes, { name: this.workerGroup.machineType })
description.push({
- icon: 'mdi-speedometer',
title: 'Machine Type',
value: machineType.name,
description: `(CPU: ${machineType.cpu} | GPU: ${machineType.gpu} | Memory: ${machineType.memory})`
})
if (machineType.volumeType && machineType.volumeSize) {
description.push({
- icon: 'mdi-harddisk',
title: 'Volume Type',
value: `${machineType.volumeType} / ${machineType.volumeSize}`
})
@@ -85,19 +87,34 @@ export default {
if (this.workerGroup.volumeType && this.workerGroup.volumeSize) {
const volumeType = find(this.volumeTypes, { name: this.workerGroup.volumeType })
description.push({
- icon: 'mdi-harddisk',
title: 'Volume Type',
value: `${volumeType.name} / ${this.workerGroup.volumeSize}`,
description: `(Class: ${volumeType.class})`
})
}
+ if (this.workerGroup.machineImage) {
+ const machineImage = find(this.machineImages, { name: this.workerGroup.machineImage.name })
+ const machineImageDescription = {
+ title: 'Machine Image',
+ value: `${machineImage.name} | Version: ${machineImage.version}`
+ }
+ if (machineImage.expirationDate) {
+ machineImageDescription.description = `(Expiration Date: ${getTimestampFormatted(machineImage.expirationDate)})`
+ }
+ description.push(machineImageDescription)
+ }
if (this.workerGroup.autoScalerMin && this.workerGroup.autoScalerMax) {
description.push({
- icon: 'mdi-arrow-expand-all',
title: 'Autoscaler',
value: `Min. ${this.workerGroup.autoScalerMin} / Max. ${this.workerGroup.autoScalerMax}`
})
}
+ if (this.workerGroup.maxSurge) {
+ description.push({
+ title: 'Max. Surge',
+ value: `${this.workerGroup.maxSurge}`
+ })
+ }
return description
}
}
diff --git a/frontend/src/components/ShootWorkers/WorkerInputGeneric.vue b/frontend/src/components/ShootWorkers/WorkerInputGeneric.vue
new file mode 100644
index 0000000000..35f098ac76
--- /dev/null
+++ b/frontend/src/components/ShootWorkers/WorkerInputGeneric.vue
@@ -0,0 +1,326 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/InfrastructureIcon.vue b/frontend/src/components/VendorIcon.vue
similarity index 79%
rename from frontend/src/components/InfrastructureIcon.vue
rename to frontend/src/components/VendorIcon.vue
index 655856f3af..1bb17a3208 100644
--- a/frontend/src/components/InfrastructureIcon.vue
+++ b/frontend/src/components/VendorIcon.vue
@@ -16,7 +16,7 @@ limitations under the License.
-
+
{{value}}
@@ -30,8 +30,10 @@ export default {
required: true
},
width: {
- type: Number,
- default: 20
+ type: Number
+ },
+ height: {
+ type: Number
},
contentClass: {
type: String,
@@ -67,8 +69,23 @@ export default {
return require('@/assets/vmware.svg')
case 'china-telecom':
return require('@/assets/china-telecom.svg')
+ case 'coreos':
+ return require('@/assets/coreos.svg')
+ case 'suse':
+ return require('@/assets/suse.svg')
+ case 'ubuntu':
+ return require('@/assets/ubuntu.svg')
}
return undefined
+ },
+ getHeight () {
+ return this.height
+ },
+ getWidth () {
+ if (!this.width && !this.height) {
+ return 20
+ }
+ return this.width
}
}
}
diff --git a/frontend/src/components/WorkerConfiguration.vue b/frontend/src/components/WorkerConfiguration.vue
deleted file mode 100644
index e1fcb92c7f..0000000000
--- a/frontend/src/components/WorkerConfiguration.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
- {{icon}}
-
- {{caption}}
-
-
- {{caption}}
- {{shootName}}
-
-
-
-
-
-
-
-
diff --git a/frontend/src/components/WorkerInputGeneric.vue b/frontend/src/components/WorkerInputGeneric.vue
deleted file mode 100644
index 58a98c19ac..0000000000
--- a/frontend/src/components/WorkerInputGeneric.vue
+++ /dev/null
@@ -1,276 +0,0 @@
-
-
-
-
- mdi-server
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/dialogs/ActionIconDialog.vue b/frontend/src/dialogs/ActionIconDialog.vue
new file mode 100644
index 0000000000..b08fabe184
--- /dev/null
+++ b/frontend/src/dialogs/ActionIconDialog.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{icon}}
+
+ {{shootActionToolTip(caption)}}
+
+
+ {{caption}}
+ {{shootName}}
+
+
+
+
+
+
+
+
diff --git a/frontend/src/dialogs/ConfirmDialog.vue b/frontend/src/dialogs/ConfirmDialog.vue
index 0487e70371..72c56959f8 100644
--- a/frontend/src/dialogs/ConfirmDialog.vue
+++ b/frontend/src/dialogs/ConfirmDialog.vue
@@ -15,181 +15,48 @@ limitations under the License.
-->
-
-
-
-
-
- Confirm Dialog
-
-
-
-
-
-
- This is a generic dialog template.
-
-
-
-
-
-
-
-
-
- Cancel
- {{confirmButtonText}}
-
-
-
+
+ {{captionText}}
+
+
+
+
-
-
diff --git a/frontend/src/dialogs/GDialog.vue b/frontend/src/dialogs/GDialog.vue
new file mode 100644
index 0000000000..e38c3c29cf
--- /dev/null
+++ b/frontend/src/dialogs/GDialog.vue
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+ Confirm Dialog
+
+
+
+
+
+
+ This is a generic dialog template.
+
+
+
+
+
+
+
+
+ {{cancelButtonText}}
+ {{confirmButtonText}}
+
+
+
+
+
+
diff --git a/frontend/src/dialogs/MemberAddDialog.vue b/frontend/src/dialogs/MemberAddDialog.vue
index 7eb5b1356e..80a68b2f84 100644
--- a/frontend/src/dialogs/MemberAddDialog.vue
+++ b/frontend/src/dialogs/MemberAddDialog.vue
@@ -50,7 +50,7 @@ limitations under the License.
persistent-hint
tabindex="1"
>
-
+
@@ -66,7 +66,7 @@ import toLower from 'lodash/toLower'
import { mapActions, mapState, mapGetters } from 'vuex'
import { required } from 'vuelidate/lib/validators'
import { resourceName, unique } from '@/utils/validators'
-import Alert from '@/components/Alert'
+import GAlert from '@/components/GAlert'
import { errorDetailsFromError, isConflict } from '@/utils/error'
import { serviceAccountToDisplayName, isServiceAccount } from '@/utils'
import filter from 'lodash/filter'
@@ -79,7 +79,7 @@ const defaultServiceName = 'robot'
export default {
name: 'add-member-dialog',
components: {
- Alert
+ GAlert
},
props: {
value: {
diff --git a/frontend/src/dialogs/ProjectDialog.vue b/frontend/src/dialogs/ProjectDialog.vue
index 20271842ab..586c776fcd 100644
--- a/frontend/src/dialogs/ProjectDialog.vue
+++ b/frontend/src/dialogs/ProjectDialog.vue
@@ -86,7 +86,7 @@ limitations under the License.
>
-
+
@@ -129,7 +129,7 @@ import get from 'lodash/get'
import includes from 'lodash/includes'
import concat from 'lodash/concat'
import filter from 'lodash/filter'
-import Alert from '@/components/Alert'
+import GAlert from '@/components/GAlert'
import { errorDetailsFromError, isConflict, isGatewayTimeout } from '@/utils/error'
const defaultProjectName = ''
@@ -151,7 +151,7 @@ const validationErrors = {
export default {
name: 'project-dialog',
components: {
- Alert
+ GAlert
},
props: {
value: {
diff --git a/frontend/src/dialogs/SecretDialog.vue b/frontend/src/dialogs/SecretDialog.vue
index 8597028728..18dc9bac3d 100644
--- a/frontend/src/dialogs/SecretDialog.vue
+++ b/frontend/src/dialogs/SecretDialog.vue
@@ -68,7 +68,7 @@ limitations under the License.
-
+
@@ -94,8 +94,8 @@ import get from 'lodash/get'
import head from 'lodash/head'
import sortBy from 'lodash/sortBy'
import filter from 'lodash/filter'
-import Alert from '@/components/Alert'
-import InfraIcon from '@/components/InfrastructureIcon'
+import GAlert from '@/components/GAlert'
+import InfraIcon from '@/components/VendorIcon'
import { errorDetailsFromError, isConflict } from '@/utils/error'
const validationErrors = {
@@ -111,7 +111,7 @@ export default {
name: 'secret-dialog',
components: {
CloudProfile,
- Alert,
+ GAlert,
InfraIcon
},
props: {
diff --git a/frontend/src/dialogs/SecretDialogDelete.vue b/frontend/src/dialogs/SecretDialogDelete.vue
index eb9fdcd2ef..6f9f546a13 100644
--- a/frontend/src/dialogs/SecretDialogDelete.vue
+++ b/frontend/src/dialogs/SecretDialogDelete.vue
@@ -41,7 +41,7 @@ limitations under the License.
can not be undone.
-