4949 <NcModal v-if =" showNewProvider"
5050 size =" large"
5151 :name =" t('user_oidc', 'Register a new provider')"
52- :can -close =" false " >
52+ :no -close =" true " >
5353 <div class =" providermodal__wrapper" >
5454 <h3 >{{ t('user_oidc', 'Register a new provider') }}</h3 >
5555 <p class =" settings-hint" >
8787 </NcActionButton >
8888 </NcActions >
8989 <NcActions :style =" customActionsStyle" >
90- <NcActionButton @click =" onRemove (provider)" >
90+ <NcActionButton @click =" onProviderDeleteClick (provider)" >
9191 <template #icon >
92- <DeleteOutlineIcon :size =" 20" />
92+ <TrashCanOutlineIcon :size =" 20" />
9393 </template >
9494 {{ t('user_oidc', 'Remove') }}
9595 </NcActionButton >
100100 <NcModal v-if =" editProvider"
101101 size =" large"
102102 :name =" t('user_oidc', 'Update provider settings')"
103- :can -close =" false " >
103+ :no -close =" true " >
104104 <div class =" providermodal__wrapper" >
105105 <h3 >{{ t('user_oidc', 'Update provider settings') }}</h3 >
106106 <SettingsForm :provider =" editProvider"
107107 :update =" true"
108108 :submit-text =" t('user_oidc', 'Update provider')"
109109 @submit =" onUpdate"
110- @cancel-form =" editProvider= null" />
110+ @cancel-form =" editProvider = null" />
111111 </div >
112112 </NcModal >
113+ <NcDialog v-model:open =" showDeletionConfirmation"
114+ :name =" t('user_oidc', 'Confirm deletion')"
115+ :message =" deletionConfirmationMessage" >
116+ <template #actions >
117+ <NcButton
118+ @click =" showDeletionConfirmation = false" >
119+ {{ t('user_oidc', 'Cancel') }}
120+ </NcButton >
121+ <NcButton
122+ variant =" error"
123+ @click =" confirmDelete" >
124+ <template #icon >
125+ <TrashCanOutlineIcon />
126+ </template >
127+ {{ t('user_oidc', 'Delete') }}
128+ </NcButton >
129+ </template >
130+ </NcDialog >
113131 </div >
114132 </div >
115133</template >
116134
117135<script >
118136import HelpCircleOutlineIcon from ' vue-material-design-icons/HelpCircleOutline.vue'
119- import DeleteOutlineIcon from ' vue-material-design-icons/DeleteOutline.vue'
120137import PencilOutlineIcon from ' vue-material-design-icons/PencilOutline.vue'
121138import PlusIcon from ' vue-material-design-icons/Plus.vue'
139+ import TrashCanOutlineIcon from ' vue-material-design-icons/TrashCanOutline.vue'
122140
123141import axios from ' @nextcloud/axios'
124142import { generateUrl } from ' @nextcloud/router'
@@ -128,6 +146,7 @@ import NcActionButton from '@nextcloud/vue/components/NcActionButton'
128146import NcModal from ' @nextcloud/vue/components/NcModal'
129147import NcCheckboxRadioSwitch from ' @nextcloud/vue/components/NcCheckboxRadioSwitch'
130148import NcButton from ' @nextcloud/vue/components/NcButton'
149+ import NcDialog from ' @nextcloud/vue/components/NcDialog'
131150import { confirmPassword } from ' @nextcloud/password-confirmation'
132151
133152import logger from ' ../logger.js'
@@ -143,7 +162,8 @@ export default {
143162 NcCheckboxRadioSwitch,
144163 NcButton,
145164 PencilOutlineIcon,
146- DeleteOutlineIcon,
165+ TrashCanOutlineIcon,
166+ NcDialog,
147167 PlusIcon,
148168 HelpCircleOutlineIcon,
149169 },
@@ -193,8 +213,18 @@ export default {
193213 ' --color-background-hover' : ' var(--color-background-darker)' ,
194214 },
195215 redirectUri: window .location .protocol + ' //' + window .location .host + generateUrl (' /apps/user_oidc/code' ),
216+ showDeletionConfirmation: false ,
217+ providerToDelete: null ,
196218 }
197219 },
220+ computed: {
221+ deletionConfirmationMessage () {
222+ if (this .providerToDelete ) {
223+ return t (' user_oidc' , ' Are you sure you want to delete the provider "{providerName}"?' , { providerName: this .providerToDelete .identifier })
224+ }
225+ return ' '
226+ },
227+ },
198228 methods: {
199229 async onId4MeChange (newValue ) {
200230 logger .info (' ID4me state changed' , { enabled: newValue })
@@ -255,7 +285,15 @@ export default {
255285 showError (t (' user_oidc' , ' Could not update the provider:' ) + ' ' + (error .response ? .data ? .message ?? error .message ))
256286 }
257287 },
258- async onRemove (provider ) {
288+ onProviderDeleteClick (provider ) {
289+ this .providerToDelete = provider
290+ this .showDeletionConfirmation = true
291+ },
292+ confirmDelete () {
293+ this .deleteProvider (this .providerToDelete )
294+ this .showDeletionConfirmation = false
295+ },
296+ async deleteProvider (provider ) {
259297 await confirmPassword ()
260298 logger .info (' Remove oidc provider' , { provider })
261299
@@ -268,6 +306,7 @@ export default {
268306 logger .error (' Could not remove a provider: ' + error .message , { error })
269307 showError (t (' user_oidc' , ' Could not remove provider: {msg}' , { msg: error .message }))
270308 }
309+ this .providerToDelete = null
271310 },
272311 async onSubmit () {
273312 await confirmPassword ()
0 commit comments