diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index cd07ee2f25b5..0f2f55fbdf2d 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -3306,6 +3306,8 @@ "state.expunging": "Expunging", "state.migrating": "Migrating", "state.pending": "Pending", +"state.readonly": "Read-Only", +"state.readwrite": "Read-Write", "state.running": "Running", "state.starting": "Starting", "state.stopped": "Stopped", diff --git a/ui/src/components/view/ListView.vue b/ui/src/components/view/ListView.vue index 85f49b3f8460..06b9fe384e42 100644 --- a/ui/src/components/view/ListView.vue +++ b/ui/src/components/view/ListView.vue @@ -231,7 +231,7 @@ {{ text }} - + {{ $toLocaleDate(text) }} diff --git a/ui/src/components/widgets/Status.vue b/ui/src/components/widgets/Status.vue index fa8fe1a3b20b..d380271aba05 100644 --- a/ui/src/components/widgets/Status.vue +++ b/ui/src/components/widgets/Status.vue @@ -72,6 +72,12 @@ export default { case 'Error': state = this.$t('state.error') break + case 'ReadOnly': + state = this.$t('state.readonly') + break + case 'ReadWrite': + state = this.$t('state.readwrite') + break } return state.charAt(0).toUpperCase() + state.slice(1) } @@ -106,7 +112,6 @@ export default { case 'Error': case 'False': case 'Stopped': - case 'ReadOnly': status = 'error' break case 'Migrating': @@ -126,6 +131,7 @@ export default { case 'Created': case 'Maintenance': case 'Pending': + case 'ReadOnly': status = 'warning' break } diff --git a/ui/src/config/section/infra/secondaryStorages.js b/ui/src/config/section/infra/secondaryStorages.js index 17600aaa17bc..d22564d7221b 100644 --- a/ui/src/config/section/infra/secondaryStorages.js +++ b/ui/src/config/section/infra/secondaryStorages.js @@ -25,7 +25,10 @@ export default { columns: () => { var fields = ['name', 'url', 'protocol', 'scope', 'zonename'] if (store.getters.apis.listImageStores.params.filter(x => x.name === 'readonly').length > 0) { - fields.push('readonly') + fields.push({ + field: 'readonly', + customTitle: 'access' + }) } return fields }, diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue index ebeca6e4ab0c..ecd8547466e2 100644 --- a/ui/src/views/AutogenView.vue +++ b/ui/src/views/AutogenView.vue @@ -583,13 +583,21 @@ export default { const customRender = {} for (var columnKey of this.columnKeys) { - var key = columnKey + let key = columnKey + let title = columnKey if (typeof columnKey === 'object') { - key = Object.keys(columnKey)[0] - customRender[key] = columnKey[key] + if ('customTitle' in columnKey && 'field' in columnKey) { + key = columnKey.field + title = columnKey.customTitle + customRender[key] = columnKey[key] + } else { + key = Object.keys(columnKey)[0] + title = Object.keys(columnKey)[0] + customRender[key] = columnKey[key] + } } this.columns.push({ - title: this.$t('label.' + String(key).toLowerCase()), + title: this.$t('label.' + String(title).toLowerCase()), dataIndex: key, scopedSlots: { customRender: key }, sorter: function (a, b) { return genericCompare(a[this.dataIndex] || '', b[this.dataIndex] || '') }