diff --git a/frontend/src/routes/contact/Address.svelte b/frontend/src/routes/contact/Address.svelte index 19a86ea..5f00f7f 100644 --- a/frontend/src/routes/contact/Address.svelte +++ b/frontend/src/routes/contact/Address.svelte @@ -1,9 +1,9 @@
diff --git a/frontend/src/routes/contact/Card.svelte b/frontend/src/routes/contact/Card.svelte index be45718..45b1332 100644 --- a/frontend/src/routes/contact/Card.svelte +++ b/frontend/src/routes/contact/Card.svelte @@ -1,17 +1,34 @@ -
+
+ {t('contact_number',{number:contact.id})} -
+ {#each addresses as code} +
+ {/each} + {#each emails as code} + + {/each} + {#each extra_fields as code} + + {/each}
{contact.vcard}
-
\ No newline at end of file + \ No newline at end of file diff --git a/frontend/src/routes/contact/Email.svelte b/frontend/src/routes/contact/Email.svelte new file mode 100644 index 0000000..e5d66e7 --- /dev/null +++ b/frontend/src/routes/contact/Email.svelte @@ -0,0 +1,9 @@ + + +{adr} diff --git a/frontend/src/routes/contact/ExtraField.svelte b/frontend/src/routes/contact/ExtraField.svelte new file mode 100644 index 0000000..f5bb17b --- /dev/null +++ b/frontend/src/routes/contact/ExtraField.svelte @@ -0,0 +1,14 @@ + + +{#if field} + + {field.value} + +{/if} \ No newline at end of file diff --git a/frontend/src/routes/contact/FN.svelte b/frontend/src/routes/contact/FN.svelte index dd3b5b1..1f91b54 100644 --- a/frontend/src/routes/contact/FN.svelte +++ b/frontend/src/routes/contact/FN.svelte @@ -1,9 +1,12 @@ -{name} +{#if name} +{t('formatted name')}: {name} +{/if} \ No newline at end of file diff --git a/frontend/src/routes/contact/Org.svelte b/frontend/src/routes/contact/Org.svelte index 0ae5f93..0ea6ecb 100644 --- a/frontend/src/routes/contact/Org.svelte +++ b/frontend/src/routes/contact/Org.svelte @@ -1,9 +1,12 @@ -{o} +{#if o} +{t('organization')}: {o} +{/if} \ No newline at end of file diff --git a/frontend/src/vcard.js b/frontend/src/vcard.js index 49e7ab1..18be333 100644 --- a/frontend/src/vcard.js +++ b/frontend/src/vcard.js @@ -1,5 +1,5 @@ export function addr(vcard){ - const match = vcard.match(/^ADR:(.+)$/m); + const match = vcard.match(/^ADR.*:(.+)$/m); let adr = { box: null, ext: null, @@ -22,9 +22,18 @@ export function addr(vcard){ return adr; } +export function email(vcard){ + const match = vcard.match(/^EMAIL.*:(.+)$/m); + return match ? match[1].trim() : ''; +} + +export function extra(code){ + const match = code.match(/^X-(.+):(.+)/) + return match ? {name:match[1],value:match[2]} : null +} export function fn(vcard){ - const match = vcard.match(/^FN:(.+)$/m); + const match = vcard.match(/^FN.*:(.+)$/m); return match ? match[1].trim() : ''; } diff --git a/translations/src/main/resources/de.json b/translations/src/main/resources/de.json index 30a698a..9b9dc34 100644 --- a/translations/src/main/resources/de.json +++ b/translations/src/main/resources/de.json @@ -33,6 +33,7 @@ "confirmation": "Bestätigung", "complete": "abschließen", "contact": "Kontakt", + "contact_number": "Kontakt #{number}", "contacts": "Kontakte", "contained_tax": "enthaltene Steuer", "content": "Inhalt", diff --git a/translations/src/main/resources/en.json b/translations/src/main/resources/en.json index f585cbc..e48a177 100644 --- a/translations/src/main/resources/en.json +++ b/translations/src/main/resources/en.json @@ -33,6 +33,7 @@ "confirmation": "confirmation", "complete": "complete", "contact": "contact", + "contact_number": "contact #{number}", "contacts": "contacts", "contained_tax": "contained tax", "content": "content",