feat: new CSS, display rels

This commit is contained in:
Arman
2023-03-29 12:34:22 +02:00
parent e9072b12e0
commit d74ce74124
5 changed files with 38 additions and 19 deletions
+4 -4
View File
@@ -8,7 +8,7 @@
"dependencies": {
"@analytics/google-analytics": "^1.0.5",
"@appwrite.io/console": "0.1.0-preview-0.1",
"@appwrite.io/pink": "^0.0.6-rc.5",
"@appwrite.io/pink": "^0.0.6-rc.6",
"@popperjs/core": "^2.11.6",
"@sentry/svelte": "^7.44.2",
"@sentry/tracing": "^7.44.2",
@@ -155,9 +155,9 @@
}
},
"node_modules/@appwrite.io/pink": {
"version": "0.0.6-rc.5",
"resolved": "https://registry.npmjs.org/@appwrite.io/pink/-/pink-0.0.6-rc.5.tgz",
"integrity": "sha512-3taoSvB1LtrFcESp/SwdlEGGZwIQcztdBBhbgc1LiK94YuGGLp8Ec2cSGG0w+LXHuZux1gOxXDA5uEkbMvrVJA==",
"version": "0.0.6-rc.6",
"resolved": "https://registry.npmjs.org/@appwrite.io/pink/-/pink-0.0.6-rc.6.tgz",
"integrity": "sha512-mSOUI2UxRqO3MS4ZXz9bdyAt0VFGRhOwWYGXw+oFfYPjmu6GSKnLEQwjF37DeuArEGRNriTiOFrKqXO0HW0odA==",
"dependencies": {
"@appwrite.io/pink-icons": "*",
"normalize.css": "^8.0.1",
+1 -1
View File
@@ -20,7 +20,7 @@
"dependencies": {
"@analytics/google-analytics": "^1.0.5",
"@appwrite.io/console": "0.1.0-preview-0.1",
"@appwrite.io/pink": "^0.0.6-rc.5",
"@appwrite.io/pink": "^0.0.6-rc.6",
"@popperjs/core": "^2.11.6",
"@sentry/svelte": "^7.44.2",
"@sentry/tracing": "^7.44.2",
@@ -62,7 +62,7 @@
{#if hasRelationship}
<TableList>
{#each $attributes?.find((attribute) => attribute.type === 'relationship') as attr}
{#each Array.from($attributes?.find((attribute) => attribute.type === 'relationship')) as attr}
<li class="table-row">
<TableCellText title="relation">
{attr?.key}
@@ -4,12 +4,12 @@
import { CardGrid, Heading } from '$lib/components';
import { Dependencies } from '$lib/constants';
import { Button, Form, FormList, InputSelectSearch, InputText } from '$lib/elements/forms';
import { difference, last, symmetricDifference } from '$lib/helpers/array';
import { symmetricDifference } from '$lib/helpers/array';
import { addNotification } from '$lib/stores/notifications';
import { organization } from '$lib/stores/organization';
import { teamPrefs } from '$lib/stores/team';
import { onMount } from 'svelte';
import { attributes } from '../store';
import { attributes, collection } from '../store';
let displayNames = [];
let search: string;
@@ -17,15 +17,21 @@
onMount(async () => {
await teamPrefs.load($organization.$id);
$teamPrefs.displayNames ??= [];
displayNames = [...$teamPrefs.displayNames];
$teamPrefs.displayNames ??= {};
$teamPrefs.displayNames[$collection.$id] ??= [];
displayNames = [...$teamPrefs.displayNames[$collection.$id]];
});
async function updateDisplayName() {
try {
teamPrefs.updatePrefs($organization.$id, {
displayNames
});
const pref = {
...$teamPrefs,
displayNames: {
...$teamPrefs.displayNames,
[$collection.$id]: displayNames
}
};
teamPrefs.updatePrefs($organization.$id, pref);
invalidate(Dependencies.TEAM);
addNotification({
message: 'Name has been updated',
@@ -60,11 +66,12 @@
displayNames?.length >= 5 ||
(displayNames?.length && !displayNames[displayNames?.length - 1]);
$: updateBtnDisabled = !symmetricDifference(displayNames, $teamPrefs?.displayNames)?.length;
$: updateBtnDisabled = !symmetricDifference(
displayNames,
$teamPrefs?.displayNames?.[$collection.$id] ?? []
)?.length;
$: console.log(displayNames, $teamPrefs?.displayNames);
$: console.log(symmetricDifference(displayNames, $teamPrefs?.displayNames).length);
$: console.log(displayNames, $teamPrefs?.displayNames[$collection.$id]);
</script>
<Form onSubmit={updateDisplayName}>
@@ -13,19 +13,23 @@
TableRowLink,
TableScroll
} from '$lib/elements/table';
import { organization } from '$lib/stores/organization';
import { teamPrefs } from '$lib/stores/team';
import { onMount } from 'svelte';
import type { PageData } from './$types';
import RelationshipsModal from './relationshipsModal.svelte';
import { collection, columns } from './store';
import { attributes, collection, columns } from './store';
export let data: PageData;
const projectId = $page.params.project;
const databaseId = $page.params.database;
const collectionId = $page.params.collection;
let showRelationships = false;
let selectedRelationship: string = null;
onMount(() => {
teamPrefs.load($organization.$id);
columns.set([
...$collection.attributes.map((attribute) => ({
id: attribute.key,
@@ -100,9 +104,17 @@
{#each $columns as column}
{#if column.show}
{#if column.type === 'relationship'}
<!-- {JSON.stringify(document[column.id])} -->
{@const attr = $attributes.find((n) => n.key === column.id)}
{@const args = $teamPrefs?.displayNames?.[attr.relatedCollection] ?? [
'$id'
]}
{#if !column.twoWay}
<TableCell title={column.title}>
{document[column.id]}
{#each args as arg}
{document[column.id]?.[arg]}
{/each}
</TableCell>
{:else}
<TableCell>