@cat-factory/app 0.137.0 → 0.137.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/board/AddTaskModal.vue +73 -1
- package/i18n/locales/de.json +2 -0
- package/i18n/locales/en.json +2 -0
- package/i18n/locales/es.json +2 -0
- package/i18n/locales/fr.json +2 -0
- package/i18n/locales/he.json +2 -0
- package/i18n/locales/it.json +2 -0
- package/i18n/locales/ja.json +2 -0
- package/i18n/locales/pl.json +2 -0
- package/i18n/locales/tr.json +2 -0
- package/i18n/locales/uk.json +2 -0
- package/package.json +1 -1
|
@@ -337,9 +337,37 @@ const pendingContext = ref<PendingContext[]>([])
|
|
|
337
337
|
|
|
338
338
|
// The Context documents / Context issues sections mirror the task inspector but are
|
|
339
339
|
// always shown (ungated): when the relevant integration isn't connected the Attach
|
|
340
|
-
// button
|
|
340
|
+
// button becomes a "Connect a source" action instead. Connecting opens the source's
|
|
341
|
+
// connect modal OVER this one (both are root-mounted with independent open flags), so
|
|
342
|
+
// the user's in-progress task data is preserved rather than lost to a navigation away.
|
|
341
343
|
const docsConnected = computed(() => documents.available && documents.anyConnected)
|
|
342
344
|
const issuesConnected = computed(() => tasks.available && tasks.anyOffered)
|
|
345
|
+
|
|
346
|
+
// Sources the user could connect right now to unlock the picker, when none is connected
|
|
347
|
+
// yet: for documents, every configured source without a live connection (GitHub docs are
|
|
348
|
+
// already implicitly connected via the App, so they never appear here); for issues, every
|
|
349
|
+
// configured tracker not yet available (a connected credentialed source, or the installed
|
|
350
|
+
// GitHub App). The connect modals are the same ones the Integrations hub opens.
|
|
351
|
+
const connectableDocSources = computed(() =>
|
|
352
|
+
documents.available ? documents.sources.filter((s) => !documents.isConnected(s.source)) : [],
|
|
353
|
+
)
|
|
354
|
+
const connectableIssueSources = computed(() =>
|
|
355
|
+
tasks.available ? tasks.sources.filter((s) => !s.available) : [],
|
|
356
|
+
)
|
|
357
|
+
const connectDocMenu = computed(() => [
|
|
358
|
+
connectableDocSources.value.map((s) => ({
|
|
359
|
+
label: s.label,
|
|
360
|
+
icon: s.icon,
|
|
361
|
+
onSelect: () => ui.openDocumentConnect(s.source),
|
|
362
|
+
})),
|
|
363
|
+
])
|
|
364
|
+
const connectIssueMenu = computed(() => [
|
|
365
|
+
connectableIssueSources.value.map((s) => ({
|
|
366
|
+
label: s.label,
|
|
367
|
+
icon: s.icon,
|
|
368
|
+
onSelect: () => ui.openTaskConnect(s.source),
|
|
369
|
+
})),
|
|
370
|
+
])
|
|
343
371
|
const pendingDocs = computed(() => pendingContext.value.filter((c) => c.kind === 'document'))
|
|
344
372
|
const pendingIssues = computed(() => pendingContext.value.filter((c) => c.kind === 'task'))
|
|
345
373
|
|
|
@@ -963,6 +991,27 @@ async function add() {
|
|
|
963
991
|
>
|
|
964
992
|
{{ showDocPicker ? t('board.addTask.done') : t('board.addTask.attach') }}
|
|
965
993
|
</UButton>
|
|
994
|
+
<UDropdownMenu
|
|
995
|
+
v-else-if="connectableDocSources.length > 1"
|
|
996
|
+
:items="connectDocMenu"
|
|
997
|
+
:content="{ side: 'bottom', align: 'end' }"
|
|
998
|
+
>
|
|
999
|
+
<UButton color="neutral" variant="soft" size="xs" icon="i-lucide-plug">
|
|
1000
|
+
{{ t('board.addTask.connectSource') }}
|
|
1001
|
+
</UButton>
|
|
1002
|
+
</UDropdownMenu>
|
|
1003
|
+
<UButton
|
|
1004
|
+
v-else-if="connectableDocSources.length === 1"
|
|
1005
|
+
color="neutral"
|
|
1006
|
+
variant="soft"
|
|
1007
|
+
size="xs"
|
|
1008
|
+
icon="i-lucide-plug"
|
|
1009
|
+
@click="ui.openDocumentConnect(connectableDocSources[0]!.source)"
|
|
1010
|
+
>
|
|
1011
|
+
{{
|
|
1012
|
+
t('board.addTask.connectSourceNamed', { source: connectableDocSources[0]!.label })
|
|
1013
|
+
}}
|
|
1014
|
+
</UButton>
|
|
966
1015
|
<UButton
|
|
967
1016
|
v-else
|
|
968
1017
|
color="neutral"
|
|
@@ -1038,6 +1087,29 @@ async function add() {
|
|
|
1038
1087
|
>
|
|
1039
1088
|
{{ showIssuePicker ? t('board.addTask.done') : t('board.addTask.attach') }}
|
|
1040
1089
|
</UButton>
|
|
1090
|
+
<UDropdownMenu
|
|
1091
|
+
v-else-if="connectableIssueSources.length > 1"
|
|
1092
|
+
:items="connectIssueMenu"
|
|
1093
|
+
:content="{ side: 'bottom', align: 'end' }"
|
|
1094
|
+
>
|
|
1095
|
+
<UButton color="neutral" variant="soft" size="xs" icon="i-lucide-plug">
|
|
1096
|
+
{{ t('board.addTask.connectSource') }}
|
|
1097
|
+
</UButton>
|
|
1098
|
+
</UDropdownMenu>
|
|
1099
|
+
<UButton
|
|
1100
|
+
v-else-if="connectableIssueSources.length === 1"
|
|
1101
|
+
color="neutral"
|
|
1102
|
+
variant="soft"
|
|
1103
|
+
size="xs"
|
|
1104
|
+
icon="i-lucide-plug"
|
|
1105
|
+
@click="ui.openTaskConnect(connectableIssueSources[0]!.source)"
|
|
1106
|
+
>
|
|
1107
|
+
{{
|
|
1108
|
+
t('board.addTask.connectSourceNamed', {
|
|
1109
|
+
source: connectableIssueSources[0]!.label,
|
|
1110
|
+
})
|
|
1111
|
+
}}
|
|
1112
|
+
</UButton>
|
|
1041
1113
|
<UButton
|
|
1042
1114
|
v-else
|
|
1043
1115
|
color="neutral"
|
package/i18n/locales/de.json
CHANGED
|
@@ -2176,6 +2176,8 @@
|
|
|
2176
2176
|
"contextDocuments": "Kontextdokumente",
|
|
2177
2177
|
"contextIssues": "Kontext-Issues",
|
|
2178
2178
|
"attach": "Anhängen",
|
|
2179
|
+
"connectSource": "Quelle verbinden",
|
|
2180
|
+
"connectSourceNamed": "{source} verbinden",
|
|
2179
2181
|
"done": "Fertig",
|
|
2180
2182
|
"attachDocDisabledConnect": "Verbinden Sie zuerst eine Dokumentquelle (Integrationen)",
|
|
2181
2183
|
"attachDocDisabledEnable": "Aktivieren Sie zuerst die Dokumente-Integration",
|
package/i18n/locales/en.json
CHANGED
|
@@ -294,6 +294,8 @@
|
|
|
294
294
|
"contextDocuments": "Context documents",
|
|
295
295
|
"contextIssues": "Context issues",
|
|
296
296
|
"attach": "Attach",
|
|
297
|
+
"connectSource": "Connect a source",
|
|
298
|
+
"connectSourceNamed": "Connect {source}",
|
|
297
299
|
"done": "Done",
|
|
298
300
|
"attachDocDisabledConnect": "Connect a document source first (Integrations)",
|
|
299
301
|
"attachDocDisabledEnable": "Enable the documents integration first",
|
package/i18n/locales/es.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "Documentos de contexto",
|
|
274
274
|
"contextIssues": "Incidencias de contexto",
|
|
275
275
|
"attach": "Adjuntar",
|
|
276
|
+
"connectSource": "Conectar una fuente",
|
|
277
|
+
"connectSourceNamed": "Conectar {source}",
|
|
276
278
|
"done": "Hecho",
|
|
277
279
|
"attachDocDisabledConnect": "Conecta primero una fuente de documentos (Integraciones)",
|
|
278
280
|
"attachDocDisabledEnable": "Activa primero la integración de documentos",
|
package/i18n/locales/fr.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "Documents de contexte",
|
|
274
274
|
"contextIssues": "Tickets de contexte",
|
|
275
275
|
"attach": "Joindre",
|
|
276
|
+
"connectSource": "Connecter une source",
|
|
277
|
+
"connectSourceNamed": "Connecter {source}",
|
|
276
278
|
"done": "Terminé",
|
|
277
279
|
"attachDocDisabledConnect": "Connectez d’abord une source de documents (Intégrations)",
|
|
278
280
|
"attachDocDisabledEnable": "Activez d’abord l’intégration de documents",
|
package/i18n/locales/he.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "מסמכי הקשר",
|
|
274
274
|
"contextIssues": "אישיו הקשר",
|
|
275
275
|
"attach": "צרף",
|
|
276
|
+
"connectSource": "חבר מקור",
|
|
277
|
+
"connectSourceNamed": "חבר את {source}",
|
|
276
278
|
"done": "סיום",
|
|
277
279
|
"attachDocDisabledConnect": "חבר תחילה מקור מסמכים (אינטגרציות)",
|
|
278
280
|
"attachDocDisabledEnable": "הפעל תחילה את אינטגרציית המסמכים",
|
package/i18n/locales/it.json
CHANGED
|
@@ -2176,6 +2176,8 @@
|
|
|
2176
2176
|
"contextDocuments": "Documenti di contesto",
|
|
2177
2177
|
"contextIssues": "Issue di contesto",
|
|
2178
2178
|
"attach": "Allega",
|
|
2179
|
+
"connectSource": "Collega una fonte",
|
|
2180
|
+
"connectSourceNamed": "Collega {source}",
|
|
2179
2181
|
"done": "Fatto",
|
|
2180
2182
|
"attachDocDisabledConnect": "Connetti prima una sorgente di documenti (Integrazioni)",
|
|
2181
2183
|
"attachDocDisabledEnable": "Abilita prima l'integrazione dei documenti",
|
package/i18n/locales/ja.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "コンテキストドキュメント",
|
|
274
274
|
"contextIssues": "コンテキスト issue",
|
|
275
275
|
"attach": "添付",
|
|
276
|
+
"connectSource": "ソースを接続",
|
|
277
|
+
"connectSourceNamed": "{source} を接続",
|
|
276
278
|
"done": "完了",
|
|
277
279
|
"attachDocDisabledConnect": "まずドキュメントソースを接続してください(連携)",
|
|
278
280
|
"attachDocDisabledEnable": "まずドキュメント連携を有効にしてください",
|
package/i18n/locales/pl.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "Dokumenty kontekstu",
|
|
274
274
|
"contextIssues": "Zgłoszenia kontekstu",
|
|
275
275
|
"attach": "Dołącz",
|
|
276
|
+
"connectSource": "Połącz źródło",
|
|
277
|
+
"connectSourceNamed": "Połącz {source}",
|
|
276
278
|
"done": "Gotowe",
|
|
277
279
|
"attachDocDisabledConnect": "Najpierw połącz źródło dokumentów (Integracje)",
|
|
278
280
|
"attachDocDisabledEnable": "Najpierw włącz integrację dokumentów",
|
package/i18n/locales/tr.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "Bağlam belgeleri",
|
|
274
274
|
"contextIssues": "Bağlam sorunları",
|
|
275
275
|
"attach": "Ekle",
|
|
276
|
+
"connectSource": "Bir kaynak bağla",
|
|
277
|
+
"connectSourceNamed": "{source} bağla",
|
|
276
278
|
"done": "Tamam",
|
|
277
279
|
"attachDocDisabledConnect": "Önce bir belge kaynağı bağlayın (Entegrasyonlar)",
|
|
278
280
|
"attachDocDisabledEnable": "Önce belge entegrasyonunu etkinleştirin",
|
package/i18n/locales/uk.json
CHANGED
|
@@ -273,6 +273,8 @@
|
|
|
273
273
|
"contextDocuments": "Документи контексту",
|
|
274
274
|
"contextIssues": "Звернення контексту",
|
|
275
275
|
"attach": "Прикріпити",
|
|
276
|
+
"connectSource": "Підключити джерело",
|
|
277
|
+
"connectSourceNamed": "Підключити {source}",
|
|
276
278
|
"done": "Готово",
|
|
277
279
|
"attachDocDisabledConnect": "Спочатку підключіть джерело документів (Інтеграції)",
|
|
278
280
|
"attachDocDisabledEnable": "Спочатку увімкніть інтеграцію документів",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.137.
|
|
3
|
+
"version": "0.137.1",
|
|
4
4
|
"description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|