Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ import { dataBrowser, core, classes, ai, canvas } from '@tomic/react';
import { registerBasicInstanceHandler } from '../useNewResourceUI';
import { DEFAULT_AICHAT_NAME } from '../../../AI/aiContstants';
import { getOrCreateMeetingsFolder } from '../../../../helpers/standardLocations';
import {
resolveAddressBookParent,
resolveContactParent,
} from '../../../../views/Contacts/contactLocations';

/**
* These handlers do not show any UI / inputs when creating new instances.
Expand Down Expand Up @@ -85,6 +89,32 @@ export const registerBasicInstanceHandlers = () => {
},
);

registerBasicInstanceHandler(
dataBrowser.classes.addressBook,
async (parent, createAndNavigate, { store }) => {
const bookParent = await resolveAddressBookParent(store, parent);

await createAndNavigate(
dataBrowser.classes.addressBook,
{ [core.properties.name]: 'Address Book' },
{ parent: bookParent },
);
},
);

registerBasicInstanceHandler(
dataBrowser.classes.contact,
async (parent, createAndNavigate, { store }) => {
const contactParent = await resolveContactParent(store, parent);

await createAndNavigate(
dataBrowser.classes.contact,
{ [core.properties.name]: 'Contact' },
{ parent: contactParent },
);
},
);

registerBasicInstanceHandler(
canvas.classes.canvas,
async (parent, createAndNavigate) => {
Expand Down
4 changes: 4 additions & 0 deletions browser/data-browser/src/helpers/iconMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ import {
FaCode,
FaPuzzlePiece,
FaVideo,
FaAddressBook,
FaUser,
} from 'react-icons/fa6';
import { AIIcon } from '../components/AI/AIIcon';

Expand All @@ -50,6 +52,8 @@ const iconMap = new Map<string, IconType>([
[dataBrowser.classes.document, FaFileLines],
[dataBrowser.classes.documentV2, FaFileLines],
[dataBrowser.classes.meeting, FaVideo],
[dataBrowser.classes.addressBook, FaAddressBook],
[dataBrowser.classes.contact, FaUser],
[server.classes.file, FaFile],
[server.classes.drive, FaHardDrive],
[server.classes.plugin, FaPuzzlePiece],
Expand Down
13 changes: 13 additions & 0 deletions browser/data-browser/src/helpers/standardLocations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,19 @@ export async function getOrCreateMeetingsFolder(
);
}

/** The Drive's Contacts folder: home for Address Book resources. */
export async function getOrCreateContactsFolder(
store: Store,
driveSubject: string,
): Promise<string> {
return getOrCreateDriveLocation(
store,
driveSubject,
dataBrowser.properties.contactsFolder,
{ isA: dataBrowser.classes.folder, name: /* @wc-ignore */ 'Contacts' },
);
}

/** The Drive's follow-sessions ChatRoom: while an agent is being followed,
* their client logs which resources they visit here (issue #1229). */
export async function getOrCreateFollowSessionsChatroom(
Expand Down
103 changes: 103 additions & 0 deletions browser/data-browser/src/locales/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ msgstr ""
#: src/components/forms/NewForm/CustomCreateActions/CustomForms/NewOntologyDialog.tsx
#: src/components/forms/ValueForm/ValueFormEdit.tsx
#: src/routes/History/HistoryMobileView.tsx
#: src/views/Contacts/ImportVCardDialog.tsx
#: src/views/OntologyPage/NewClassButton.tsx
#: src/views/OntologyPage/NewPropertyButton.tsx
#: src/views/Plugin/AssignRights.tsx
Expand Down Expand Up @@ -541,6 +542,7 @@ msgstr ""
#: src/chunks/TablePage/RowActionHeading.tsx
#: src/chunks/TablePage/TableHeadingMenu.tsx
#: src/routes/EditRoute.tsx
#: src/views/Contacts/ContactPage.tsx
#: src/views/OntologyPage/OntologyPage.tsx
#: src/views/ResourcePageDefault.tsx
msgid "Edit"
Expand Down Expand Up @@ -1240,6 +1242,7 @@ msgid "Importing..."
msgstr ""

#: src/actions/resourceActions.tsx
#: src/views/Contacts/ImportVCardDialog.tsx
#: src/views/ImporterPage.tsx
msgid "Import"
msgstr ""
Expand Down Expand Up @@ -5526,6 +5529,7 @@ msgstr ""

#: src/helpers/knownPeers.test.ts
#: src/helpers/knownPeers.test.ts
#: src/views/Contacts/ContactPage.tsx
msgid "Phone"
msgstr ""

Expand Down Expand Up @@ -6595,3 +6599,102 @@ msgstr ""
#: src/chunks/TablePage/tableTemplates.test.ts
msgid "{0} presets \"{1}\", which is not a column"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
#: src/views/Contacts/AddressBookPage.tsx
msgid "<0/> Import vCard"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
#: src/views/Contacts/AddressBookPage.tsx
msgid "<0/> New Contact"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
msgid "Filter contacts…"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
msgid "Filter contacts"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
msgid "Loading contacts…"
msgstr ""

#: src/views/Contacts/AddressBookPage.tsx
msgid "No contacts yet. Create one or import a `.vcf` export from Google, iCloud, or Microsoft."
msgstr ""

#: src/views/Contacts/ContactPage.tsx
msgid "Email"
msgstr ""

#: src/views/Contacts/ContactPage.tsx
msgid "Website"
msgstr ""

#: src/views/Contacts/ContactPage.tsx
msgid "Atomic Agent"
msgstr ""

#: src/views/Contacts/ContactPage.tsx
msgid "No contact details yet — use Edit to add them."
msgstr ""

#: src/components/forms/NewForm/CustomCreateActions/BasicInstanceHandlers.ts
#: src/views/Contacts/AddressBookCard.tsx
msgid "Address Book"
msgstr ""

#: src/components/forms/NewForm/CustomCreateActions/BasicInstanceHandlers.ts
#: src/views/Contacts/ContactCard.tsx
msgid "Contact"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "No contacts found in this file."
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Failed to read file"
msgstr ""

#. 0: result.created; 1: result.created === 1 ? '' \\: 's'
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Imported {0} contact{1}"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Import failed"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Import vCard"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Drop vCard here…"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Drop a .vcf file, or click to browse"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Export contacts from Google Contacts, iCloud, or Microsoft as a `.vcf` file, then drop it here."
msgstr ""

#. 0: cards.length - 8
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "…and {0} more"
msgstr ""

#. 0: cards.length; 1: cards.length === 1 ? '' \\: 's'
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "{0} contact{1} ready"
msgstr ""

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Importing…"
msgstr ""
103 changes: 103 additions & 0 deletions browser/data-browser/src/locales/en.po
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ msgstr "<0/> Create New Agent"
#: src/components/forms/NewForm/CustomCreateActions/CustomForms/NewOntologyDialog.tsx
#: src/components/forms/ValueForm/ValueFormEdit.tsx
#: src/routes/History/HistoryMobileView.tsx
#: src/views/Contacts/ImportVCardDialog.tsx
#: src/views/OntologyPage/NewClassButton.tsx
#: src/views/OntologyPage/NewPropertyButton.tsx
#: src/views/Plugin/AssignRights.tsx
Expand Down Expand Up @@ -541,6 +542,7 @@ msgstr "Optional HTTP headers to send when connecting to this MCP server"
#: src/chunks/TablePage/RowActionHeading.tsx
#: src/chunks/TablePage/TableHeadingMenu.tsx
#: src/routes/EditRoute.tsx
#: src/views/Contacts/ContactPage.tsx
#: src/views/OntologyPage/OntologyPage.tsx
#: src/views/ResourcePageDefault.tsx
msgid "Edit"
Expand Down Expand Up @@ -1240,6 +1242,7 @@ msgid "Importing..."
msgstr "Importing..."

#: src/actions/resourceActions.tsx
#: src/views/Contacts/ImportVCardDialog.tsx
#: src/views/ImporterPage.tsx
msgid "Import"
msgstr "Import"
Expand Down Expand Up @@ -5560,6 +5563,7 @@ msgstr "Tablet"

#: src/helpers/knownPeers.test.ts
#: src/helpers/knownPeers.test.ts
#: src/views/Contacts/ContactPage.tsx
msgid "Phone"
msgstr "Phone"

Expand Down Expand Up @@ -6629,3 +6633,102 @@ msgstr "{0} types into \"{1}\", which is not a column"
#: src/chunks/TablePage/tableTemplates.test.ts
msgid "{0} presets \"{1}\", which is not a column"
msgstr "{0} presets \"{1}\", which is not a column"

#: src/views/Contacts/AddressBookPage.tsx
#: src/views/Contacts/AddressBookPage.tsx
msgid "<0/> Import vCard"
msgstr "<0/> Import vCard"

#: src/views/Contacts/AddressBookPage.tsx
#: src/views/Contacts/AddressBookPage.tsx
msgid "<0/> New Contact"
msgstr "<0/> New Contact"

#: src/views/Contacts/AddressBookPage.tsx
msgid "Filter contacts…"
msgstr "Filter contacts…"

#: src/views/Contacts/AddressBookPage.tsx
msgid "Filter contacts"
msgstr "Filter contacts"

#: src/views/Contacts/AddressBookPage.tsx
msgid "Loading contacts…"
msgstr "Loading contacts…"

#: src/views/Contacts/AddressBookPage.tsx
msgid "No contacts yet. Create one or import a `.vcf` export from Google, iCloud, or Microsoft."
msgstr "No contacts yet. Create one or import a `.vcf` export from Google, iCloud, or Microsoft."

#: src/views/Contacts/ContactPage.tsx
msgid "Email"
msgstr "Email"

#: src/views/Contacts/ContactPage.tsx
msgid "Website"
msgstr "Website"

#: src/views/Contacts/ContactPage.tsx
msgid "Atomic Agent"
msgstr "Atomic Agent"

#: src/views/Contacts/ContactPage.tsx
msgid "No contact details yet — use Edit to add them."
msgstr "No contact details yet — use Edit to add them."

#: src/components/forms/NewForm/CustomCreateActions/BasicInstanceHandlers.ts
#: src/views/Contacts/AddressBookCard.tsx
msgid "Address Book"
msgstr "Address Book"

#: src/components/forms/NewForm/CustomCreateActions/BasicInstanceHandlers.ts
#: src/views/Contacts/ContactCard.tsx
msgid "Contact"
msgstr "Contact"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "No contacts found in this file."
msgstr "No contacts found in this file."

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Failed to read file"
msgstr "Failed to read file"

#. 0: result.created; 1: result.created === 1 ? '' \\: 's'
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Imported {0} contact{1}"
msgstr "Imported {0} contact{1}"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Import failed"
msgstr "Import failed"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Import vCard"
msgstr "Import vCard"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Drop vCard here…"
msgstr "Drop vCard here…"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Drop a .vcf file, or click to browse"
msgstr "Drop a .vcf file, or click to browse"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Export contacts from Google Contacts, iCloud, or Microsoft as a `.vcf` file, then drop it here."
msgstr "Export contacts from Google Contacts, iCloud, or Microsoft as a `.vcf` file, then drop it here."

#. 0: cards.length - 8
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "…and {0} more"
msgstr "…and {0} more"

#. 0: cards.length; 1: cards.length === 1 ? '' \\: 's'
#: src/views/Contacts/ImportVCardDialog.tsx
msgid "{0} contact{1} ready"
msgstr "{0} contact{1} ready"

#: src/views/Contacts/ImportVCardDialog.tsx
msgid "Importing…"
msgstr "Importing…"
Loading
Loading