feat: Updated admin panel providers list & modal
This commit is contained in:
@@ -153,6 +153,12 @@
|
||||
<div v-else class="list-group">
|
||||
<div v-for="provider in providers" :key="provider.id" class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<i
|
||||
class="mdi"
|
||||
:class="provider.is_active ? 'mdi-check-circle text-success' : 'mdi-close-circle text-secondary'"
|
||||
:title="provider.is_active ? 'Provider enabled' : 'Provider disabled'"
|
||||
aria-hidden="true"
|
||||
></i>
|
||||
<span class="fw-semibold">{{ provider.name }}</span>
|
||||
</div>
|
||||
<div class="d-flex gap-2">
|
||||
@@ -277,8 +283,10 @@
|
||||
:mode="providerModalMode"
|
||||
:provider="selectedProvider"
|
||||
:submitting="submittingProviderModal"
|
||||
:deleting="deletingProviderModal"
|
||||
@close="closeProviderModal"
|
||||
@submit="submitProviderModal"
|
||||
@delete="deleteProviderFromModal"
|
||||
/>
|
||||
</template>
|
||||
|
||||
@@ -335,6 +343,7 @@ const showProviderModal = ref(false);
|
||||
const providerModalMode = ref("create");
|
||||
const selectedProvider = ref(null);
|
||||
const submittingProviderModal = ref(false);
|
||||
const deletingProviderModal = ref(false);
|
||||
|
||||
const loadingFeatureFlags = ref(false);
|
||||
const savingFeatureFlags = ref(false);
|
||||
@@ -584,6 +593,7 @@ const openEditProviderModal = (provider) => {
|
||||
const closeProviderModal = () => {
|
||||
showProviderModal.value = false;
|
||||
submittingProviderModal.value = false;
|
||||
deletingProviderModal.value = false;
|
||||
selectedProvider.value = null;
|
||||
};
|
||||
|
||||
@@ -612,7 +622,7 @@ const loadProviders = async () => {
|
||||
loadingProviders.value = true;
|
||||
clearMessages();
|
||||
try {
|
||||
const res = await apiClient.get("/api/v1/auth/providers");
|
||||
const res = await apiClient.get("/api/v1/admin/auth/providers");
|
||||
providers.value = res.data.providers || [];
|
||||
} catch (e) {
|
||||
error.value = e.response?.data || "Failed to load providers.";
|
||||
@@ -621,18 +631,26 @@ const loadProviders = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
const deleteProvider = async (provider) => {
|
||||
const deleteProviderFromModal = async (provider) => {
|
||||
if (!provider?.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!confirm(`Delete identity provider "${provider.name}"? This action cannot be undone.`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
deletingProviderModal.value = true;
|
||||
clearMessages();
|
||||
try {
|
||||
await apiClient.delete(`/api/v1/admin/auth/providers/${provider.id}`);
|
||||
providers.value = providers.value.filter((item) => item.id !== provider.id);
|
||||
successMessage.value = `Provider "${provider.name}" deleted.`;
|
||||
closeProviderModal();
|
||||
} catch (e) {
|
||||
error.value = e.response?.data || "Failed to delete provider.";
|
||||
} finally {
|
||||
deletingProviderModal.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user