diff --git a/Gemfile b/Gemfile index 4b9d978d4..abbd3332f 100644 --- a/Gemfile +++ b/Gemfile @@ -207,7 +207,7 @@ group :production do end group :development do - gem 'annotaterb' + gem 'annotate' gem 'bullet' gem 'letter_opener' gem 'scss_lint', require: false diff --git a/Gemfile.lock b/Gemfile.lock index fa3a5e788..99e75b33c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -128,9 +128,9 @@ GEM selectize-rails (~> 0.6) ai-agents (0.4.3) ruby_llm (~> 1.3) - annotaterb (4.20.0) - activerecord (>= 6.0.0) - activesupport (>= 6.0.0) + annotate (3.2.0) + activerecord (>= 3.2, < 8.0) + rake (>= 10.4, < 14.0) ast (2.4.3) attr_extras (7.1.0) audited (5.4.1) @@ -992,7 +992,7 @@ DEPENDENCIES administrate-field-active_storage (>= 1.0.3) administrate-field-belongs_to_search (>= 0.9.0) ai-agents (>= 0.4.3) - annotaterb + annotate attr_extras audited (~> 5.4, >= 5.4.1) aws-sdk-s3 diff --git a/app/javascript/dashboard/components-next/captain/PageLayout.vue b/app/javascript/dashboard/components-next/captain/PageLayout.vue index 19303ba01..d9fce9e0f 100644 --- a/app/javascript/dashboard/components-next/captain/PageLayout.vue +++ b/app/javascript/dashboard/components-next/captain/PageLayout.vue @@ -2,6 +2,7 @@ import { ref, computed } from 'vue'; import { OnClickOutside } from '@vueuse/components'; import { useRoute } from 'vue-router'; +import { useI18n } from 'vue-i18n'; import { useMapGetter } from 'dashboard/composables/store.js'; import { usePolicy } from 'dashboard/composables/usePolicy'; import Button from 'dashboard/components-next/button/Button.vue'; @@ -69,6 +70,8 @@ const props = defineProps({ const emit = defineEmits(['click', 'close', 'update:currentPage']); +const { t } = useI18n(); + const route = useRoute(); const { shouldShowPaywall } = usePolicy(); @@ -76,14 +79,16 @@ const showAssistantSwitcherDropdown = ref(false); const createAssistantDialogRef = ref(null); const assistants = useMapGetter('captainAssistants/getRecords'); +const uiFlags = useMapGetter('captainAssistants/getUIFlags'); const currentAssistantId = computed(() => route.params.assistantId); +const isFetchingAssistants = computed(() => uiFlags.value?.fetchingList); const activeAssistantName = computed(() => { return ( assistants.value?.find( assistant => assistant.id === Number(currentAssistantId.value) - )?.name || '' + )?.name || t('CAPTAIN.ASSISTANT_SWITCHER.NEW_ASSISTANT') ); }); @@ -118,15 +123,18 @@ const handleCreateAssistant = () => { >
+ {{ t('CAPTAIN.ASSISTANT_SWITCHER.EMPTY_LIST') }} +
+