mirror of
https://github.com/unraid/api.git
synced 2026-01-01 06:01:18 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ability to update existing API keys, including name, description, roles, and permissions, through the UI and GraphQL API. - Introduced a modal-based interface for creating and editing API keys with improved role and permission selection. - Added a new API Key Manager page and custom element for centralized API key management. - Enhanced API key listing with detailed views, role badges, permission counters, and copy-to-clipboard functionality. - Introduced reusable dialog components for consistent modal experiences. - Added plugin management capabilities with mutations to add or remove plugins. - Added comprehensive support for managing remote access, network URLs, and API key updates within the GraphQL schema. - **Bug Fixes** - Improved error handling and display for API key creation and update operations. - **Refactor** - Centralized API key modal and editing state management using a dedicated store. - Updated GraphQL queries and mutations to use reusable fragments for API key data. - Removed deprecated or redundant remote access and allowed origins configuration components and queries. - Simplified and updated input types for connect settings and remote access. - **Tests** - Added comprehensive tests for API key update logic and improved coverage for API key loading. - **Chores** - Updated configuration files and cleaned up unused schema and component files. - Added new dialog components and centralized exports for dialogs. - Improved ESLint configuration and import statements for better type handling. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
83 lines
1.9 KiB
Vue
83 lines
1.9 KiB
Vue
<script setup lang="ts">
|
|
import { useI18n } from 'vue-i18n';
|
|
import { storeToRefs } from 'pinia';
|
|
|
|
import { useCallbackActionsStore } from '~/store/callbackActions';
|
|
import { useTrialStore } from '~/store/trial';
|
|
import { useUpdateOsStore } from '~/store/updateOs';
|
|
import { useApiKeyStore } from '~/store/apiKey';
|
|
import ApiKeyCreate from '~/components/ApiKey/ApiKeyCreate.vue';
|
|
|
|
const { t } = useI18n();
|
|
|
|
const { callbackStatus } = storeToRefs(useCallbackActionsStore());
|
|
const { trialModalVisible } = storeToRefs(useTrialStore());
|
|
const { updateOsModalVisible, changelogModalVisible } = storeToRefs(useUpdateOsStore());
|
|
const { modalVisible: apiKeyModalVisible } = storeToRefs(useApiKeyStore());
|
|
</script>
|
|
|
|
<template>
|
|
<div id="modals" ref="modals" class="relative z-[99999]">
|
|
<UpcCallbackFeedback :t="t" :open="callbackStatus !== 'ready'" />
|
|
<UpcTrial :t="t" :open="trialModalVisible" />
|
|
<UpdateOsCheckUpdateResponseModal :t="t" :open="updateOsModalVisible" />
|
|
<UpdateOsChangelogModal :t="t" :open="changelogModalVisible" />
|
|
<ActivationModal :t="t" />
|
|
<ApiKeyCreate :open="apiKeyModalVisible" :t="t" />
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="postcss">
|
|
/* Import unraid-ui globals first */
|
|
@import '@unraid/ui/styles';
|
|
@import '~/assets/main.css';
|
|
|
|
.unraid_mark_2,
|
|
.unraid_mark_4 {
|
|
animation: mark_2 1.5s ease infinite;
|
|
}
|
|
.unraid_mark_3 {
|
|
animation: mark_3 1.5s ease infinite;
|
|
}
|
|
.unraid_mark_6,
|
|
.unraid_mark_8 {
|
|
animation: mark_6 1.5s ease infinite;
|
|
}
|
|
.unraid_mark_7 {
|
|
animation: mark_7 1.5s ease infinite;
|
|
}
|
|
|
|
@keyframes mark_2 {
|
|
50% {
|
|
transform: translateY(-40px);
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
@keyframes mark_3 {
|
|
50% {
|
|
transform: translateY(-62px);
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
@keyframes mark_6 {
|
|
50% {
|
|
transform: translateY(40px);
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
@keyframes mark_7 {
|
|
50% {
|
|
transform: translateY(62px);
|
|
}
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
</style>
|