diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6891fef59..8fcb73389 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -61,6 +61,7 @@ Follow the [install instructions](https://appwrite.io/docs/advanced/self-hosting
### 4. Setup environment variables
Add a `.env` file by copying the `.env.example` file as a template in the project's root directory.
+
> **Note**
> If you are updating from Appwrite `1.5.x`, be aware that the variables for the console in the `.env` / `.env.example` file have changed in `1.6.x`.
diff --git a/src/lib/components/drop.svelte b/src/lib/components/drop.svelte
index 9d4e07e0d..2d4ee2b73 100644
--- a/src/lib/components/drop.svelte
+++ b/src/lib/components/drop.svelte
@@ -120,7 +120,7 @@
bind:this={tooltip}
class:u-width-full-line={fullWidth}
style:--arrow-size={`${arrowSize}px`}
- style:z-index="10">
+ style:z-index="21">
+ style:--drop-width-size-desktop={width ? `${width}rem` : ''}
+ style:position>
{#if $$slots.list}
{#if isCloud}
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
index 28e5be689..707d0f66f 100644
--- a/src/lib/constants.ts
+++ b/src/lib/constants.ts
@@ -65,200 +65,239 @@ export const scopes: {
scope: string;
description: string;
category: string;
+ icon: string;
}[] = [
{
scope: 'sessions.write',
description: "Access to create, update and delete your project's sessions",
- category: 'Auth'
+ category: 'Auth',
+ icon: 'user-group'
},
{
scope: 'users.read',
description: "Access to read your project's users",
- category: 'Auth'
+ category: 'Auth',
+ icon: 'user-group'
},
{
scope: 'users.write',
description: "Access to create, update, and delete your project's users",
- category: 'Auth'
+ category: 'Auth',
+ icon: 'user-group'
},
{
scope: 'teams.read',
description: "Access to read your project's teams",
- category: 'Auth'
+ category: 'Auth',
+ icon: 'user-group'
},
{
scope: 'teams.write',
description: "Access to create, update, and delete your project's teams",
- category: 'Auth'
+ category: 'Auth',
+ icon: 'user-group'
},
{
scope: 'databases.read',
description: "Access to read your project's databases",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'databases.write',
description: "Access to create, update, and delete your project's databases",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'collections.read',
description: "Access to read your project's database collections",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'collections.write',
description: "Access to create, update, and delete your project's database collections",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'attributes.read',
description: "Access to read your project's database collection's attributes",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'attributes.write',
description:
"Access to create, update, and delete your project's database collection's attributes",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'indexes.read',
description: "Access to read your project's database collection's indexes",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'indexes.write',
description:
"Access to create, update, and delete your project's database collection's indexes",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'documents.read',
description: "Access to read your project's database documents",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'documents.write',
description: "Access to create, update, and delete your project's database documents",
- category: 'Database'
+ category: 'Database',
+ icon: 'database'
},
{
scope: 'files.read',
description: "Access to read your project's storage files and preview images",
- category: 'Storage'
+ category: 'Storage',
+ icon: 'folder'
},
{
scope: 'files.write',
description: "Access to create, update, and delete your project's storage files",
- category: 'Storage'
+ category: 'Storage',
+ icon: 'folder'
},
{
scope: 'buckets.read',
description: "Access to read your project's storage buckets",
- category: 'Storage'
+ category: 'Storage',
+ icon: 'folder'
},
{
scope: 'buckets.write',
description: "Access to create, update, and delete your project's storage buckets",
- category: 'Storage'
+ category: 'Storage',
+ icon: 'folder'
},
{
scope: 'functions.read',
description: "Access to read your project's functions and code deployments",
- category: 'Functions'
+ category: 'Functions',
+ icon: 'lightning-bolt'
},
{
scope: 'functions.write',
description:
"Access to create, update, and delete your project's functions and code deployments",
- category: 'Functions'
+ category: 'Functions',
+ icon: 'lightning-bolt'
},
{
scope: 'execution.read',
description: "Access to read your project's execution logs",
- category: 'Functions'
+ category: 'Functions',
+ icon: 'lightning-bolt'
},
{
scope: 'execution.write',
description: "Access to execute your project's functions",
- category: 'Functions'
+ category: 'Functions',
+ icon: 'lightning-bolt'
},
{
scope: 'targets.read',
description: "Access to read your project's messaging targets",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'targets.write',
description: "Access to create, update, and delete your project's messaging targets",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'providers.read',
description: "Access to read your project's messaging providers",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'providers.write',
description: "Access to create, update, and delete your project's messaging providers",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'messages.read',
description: "Access to read your project's messages",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'messages.write',
description: "Access to create, update, and delete your project's messages",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'topics.read',
description: "Access to read your project's messaging topics",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'topics.write',
description: "Access to create, update, and delete your project's messaging topics",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'subscribers.read',
description: "Access to read your project's messaging topic subscribers",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'subscribers.write',
description:
"Access to create, update, and delete your project's messaging topic subscribers",
- category: 'Messaging'
+ category: 'Messaging',
+ icon: 'send'
},
{
scope: 'locale.read',
description: "Access to access your project's Locale service",
- category: 'Other'
+ category: 'Other',
+ icon: 'globe'
},
{
scope: 'avatars.read',
description: "Access to access your project's Avatars service",
- category: 'Other'
+ category: 'Other',
+ icon: 'globe'
},
{
scope: 'health.read',
description: "Access to read your project's health status",
- category: 'Other'
+ category: 'Other',
+ icon: 'globe'
},
{
scope: 'migrations.read',
description: "Access to read your project's migration status",
- category: 'Other'
+ category: 'Other',
+ icon: 'globe'
},
{
scope: 'migrations.write',
description: 'Access to create migrations',
- category: 'Other'
+ category: 'Other',
+ icon: 'globe'
}
];
diff --git a/src/lib/elements/forms/inputFile.svelte b/src/lib/elements/forms/inputFile.svelte
index 3ecb27959..76c3babcc 100644
--- a/src/lib/elements/forms/inputFile.svelte
+++ b/src/lib/elements/forms/inputFile.svelte
@@ -32,7 +32,7 @@
}
function isFileExtensionAllowed(fileExtension: string) {
- if (allowedFileExtensions.length && !allowedFileExtensions.includes(fileExtension)) {
+ if (allowedFileExtensions?.length && !allowedFileExtensions.includes(fileExtension)) {
return false;
}
return true;
@@ -42,7 +42,7 @@
hovering = false;
if (!ev.dataTransfer.items) return;
for (let i = 0; i < ev.dataTransfer.items.length; i++) {
- const fileExtension = ev.dataTransfer.items[i].getAsFile().name.split('.')[1];
+ const fileExtension = ev.dataTransfer.items[i].getAsFile().name.split('.').pop();
if (!isFileExtensionAllowed(fileExtension)) {
error = 'Invalid file extension';
return;
@@ -183,15 +183,16 @@
{#if files?.length}
{#each fileArray as file}
- {@const fileName = file.name.split('.')}
+ {@const fileName = file.name.split('.').slice(0, -1).join('.')}
+ {@const extension = file.name.split('.').pop()}
{@const fileSize = humanFileSize(file.size)}
-
- {fileName[0]}
+ {fileName}
- .{fileName[1]}
+ .{extension}
diff --git a/src/lib/layout/logs.svelte b/src/lib/layout/logs.svelte
index 484dc25f7..b2782edc1 100644
--- a/src/lib/layout/logs.svelte
+++ b/src/lib/layout/logs.svelte
@@ -1,7 +1,7 @@
@@ -187,7 +198,7 @@
{/if}
{/each}
-