diff --git a/src/lib/components/filters/appliedFilter.svelte b/src/lib/components/filters/pasedTagList.svelte
similarity index 77%
rename from src/lib/components/filters/appliedFilter.svelte
rename to src/lib/components/filters/pasedTagList.svelte
index 86ae82694..4b1faa05d 100644
--- a/src/lib/components/filters/appliedFilter.svelte
+++ b/src/lib/components/filters/pasedTagList.svelte
@@ -1,22 +1,23 @@
{#if $parsedTags?.length}
{#each $parsedTags as tag}
-
+
{
- queries.removeFilter(tag);
+ const t = $tags.filter((t) => t.tag.includes(tag.tag.split(' ')[0]));
+ t.forEach((t) => (t ? queries.removeFilter(t) : null));
queries.apply();
parsedTags.update((tags) => tags.filter((t) => t.tag !== tag.tag));
}}>
diff --git a/src/lib/components/filters/quickFilters.svelte b/src/lib/components/filters/quickFilters.svelte
index 7cdff80a7..0b8c541e7 100644
--- a/src/lib/components/filters/quickFilters.svelte
+++ b/src/lib/components/filters/quickFilters.svelte
@@ -6,8 +6,8 @@
import { type Writable } from 'svelte/store';
import Menu from '$lib/components/filters/menu.svelte';
import { CustomFilters } from '$lib/components/filters';
- import { setFiltersOnNavigate } from '$lib/components/filters/setFilters';
- import { addFilterAndApply, buildFilterCol } from '$lib/components/filters/quickFilters';
+ import { addFilterAndApply, buildFilterCol } from './quickFilters';
+ import { setFiltersOnNavigate } from './setFilters';
export let columns: Writable;
export let analyticsSource: string;
@@ -22,6 +22,7 @@
const localTags = Array.from(localQueries.keys());
setFiltersOnNavigate(localTags, filterCols, $columns);
+ filterCols = filterCols;
});
@@ -47,7 +48,6 @@
);
}}
on:clear={() => {
- filter.tag = null;
addFilterAndApply(
filter.id,
filter.title,
diff --git a/src/lib/components/filters/quickFilters.ts b/src/lib/components/filters/quickFilters.ts
index 0bbe84fe3..fc09619b0 100644
--- a/src/lib/components/filters/quickFilters.ts
+++ b/src/lib/components/filters/quickFilters.ts
@@ -61,12 +61,6 @@ export function addFilterAndApply(
});
}
-export function resetOptions(filter: FilterData) {
- filter.options.forEach((option) => {
- option.checked = false;
- });
-}
-
export function addStatusCodeFilter(value: string, colId: string, columns: Column[]) {
addFilter(columns, colId, ValidOperators.LessThanOrEqual, parseInt(value));
addFilter(columns, colId, ValidOperators.GreaterThanOrEqual, parseInt(value) - 99);
diff --git a/src/lib/components/filters/setFilters.ts b/src/lib/components/filters/setFilters.ts
index fe8aa4ad3..812bd3436 100644
--- a/src/lib/components/filters/setFilters.ts
+++ b/src/lib/components/filters/setFilters.ts
@@ -1,18 +1,19 @@
import type { Column } from '$lib/helpers/types';
import { get, writable } from 'svelte/store';
-import { resetOptions, type FilterData } from './quickFilters';
+import { type FilterData } from './quickFilters';
import { tags, type TagValue } from './store';
export const parsedTags = writable([]);
export function setFiltersOnNavigate(
- tags: TagValue[],
+ localTags: TagValue[],
filterCols: FilterData[],
$columns: Column[]
) {
- if (!tags?.length) {
+ if (!localTags?.length) {
filterCols.forEach((filter) => {
resetOptions(filter);
+ cleanOldTags(filter.title);
});
} else {
filterCols.forEach((filter) => {
@@ -37,26 +38,25 @@ export function setFiltersOnNavigate(
export function setFilterData(filter: FilterData) {
const tagData = get(tags).find((tag) => tag.tag.includes(`**${filter.title}**`));
if (tagData) {
- cleanOldTags(filter.title);
-
- filter.tag = tagData.tag;
if (Array.isArray(tagData.value) && tagData.value?.length) {
const values = tagData.value as string[];
filter.options.forEach((option) => {
option.checked = values.includes(option.value);
});
}
+ cleanOldTags(filter.title);
const newTag = {
tag: tagData.tag.replace(',', ' or '),
value: tagData.value
};
+
parsedTags.update((tags) => {
tags.push(newTag);
return tags;
});
} else {
- filter.tag = null;
resetOptions(filter);
+ cleanOldTags(filter.title);
}
}
@@ -64,7 +64,6 @@ export function setTimeFilter(filter: FilterData, columns: Column[]) {
const col = columns.find((c) => c.id === filter.id);
const timeTag = get(tags).find((tag) => tag.tag.includes(`**${filter.title}**`));
if (timeTag) {
- cleanOldTags(filter.title);
const now = new Date();
const diff = now.getTime() - new Date(timeTag.value as string).getTime();
@@ -80,15 +79,16 @@ export function setTimeFilter(filter: FilterData, columns: Column[]) {
tag: `**${filter.title}** is **${dateRange.label}**`,
value: timeTag.value
};
- filter.tag = `**${filter.title}** is **${dateRange.label}**`;
- filter = filter;
+
+ cleanOldTags(filter.title);
+
parsedTags.update((tags) => {
tags.push(newTag);
return tags;
});
}
} else {
- filter.tag = null;
+ cleanOldTags(filter.title);
}
}
@@ -106,11 +106,19 @@ export function setSizeFilter(filter: FilterData, columns: Column[]) {
return prev;
});
if (sizeRange) {
- filter.tag = `**${filter.title}** is **${sizeRange.label}**`;
- filter = filter;
+ cleanOldTags(filter.title);
+
+ const newTag = {
+ tag: `**${filter.title}** is **${sizeRange.label}**`,
+ value: sizeTag.value
+ };
+ parsedTags.update((tags) => {
+ tags.push(newTag);
+ return tags;
+ });
}
} else {
- filter.tag = null;
+ cleanOldTags(filter.title);
}
}
@@ -123,11 +131,18 @@ export function setStatusCodeFilter(filter: FilterData, columns: Column[]) {
const codeRange = ranges.find((c) => c?.value && c.value === statusCodeTag.value);
if (codeRange) {
- filter.tag = `**${filter.title}** is **${codeRange.label}**`;
- filter = filter;
+ cleanOldTags(filter.title);
+ const newTag = {
+ tag: `**${filter.title}** is **${codeRange.label}**`,
+ value: statusCodeTag.value
+ };
+ parsedTags.update((tags) => {
+ tags.push(newTag);
+ return tags;
+ });
}
} else {
- filter.tag = null;
+ cleanOldTags(filter.title);
}
}
@@ -135,7 +150,6 @@ export function setDateFilter(filter: FilterData, columns: Column[]) {
const dateTag = get(tags).find((tag) => tag.tag.includes(`**${filter.title}**`));
const col = columns.find((c) => c.id === filter.id);
if (dateTag) {
- cleanOldTags(filter.title);
const now = new Date();
const diff = now.getTime() - new Date(dateTag.value as string).getTime();
@@ -147,6 +161,7 @@ export function setDateFilter(filter: FilterData, columns: Column[]) {
return prev;
});
if (dateRange) {
+ cleanOldTags(filter.title);
const newTag = {
tag: `**${filter.title}** is **${dateRange.label}**`,
value: dateTag.value
@@ -157,7 +172,7 @@ export function setDateFilter(filter: FilterData, columns: Column[]) {
});
}
} else {
- filter.tag = null;
+ cleanOldTags(filter.title);
}
}
@@ -167,3 +182,9 @@ function cleanOldTags(title: string) {
return tags;
});
}
+
+export function resetOptions(filter: FilterData) {
+ filter.options.forEach((option) => {
+ option.checked = false;
+ });
+}
diff --git a/src/lib/components/filters/subMenu.svelte b/src/lib/components/filters/subMenu.svelte
index 0063578ef..4824859ec 100644
--- a/src/lib/components/filters/subMenu.svelte
+++ b/src/lib/components/filters/subMenu.svelte
@@ -4,17 +4,7 @@
import { ActionMenu, Card, Layout, Selector } from '@appwrite.io/pink-svelte';
import { createMenubar, melt } from '@melt-ui/svelte';
import { createEventDispatcher } from 'svelte';
- import type { ValidOperators } from './store';
-
- type FilterData = {
- title: string;
- id: string;
- array: boolean;
- show: boolean;
- tag: string;
- operator: ValidOperators;
- options: { value: string; label: string; checked: boolean }[];
- };
+ import type { FilterData } from './quickFilters';
export let filter: FilterData;
export let variant: 'checkbox' | 'radio' = 'checkbox';
@@ -61,11 +51,7 @@
on:click={() => {
option.checked = !option.checked;
dispatch('add', {
- value: filter?.array
- ? null
- : option.checked
- ? option.value
- : null
+ value: option.value
});
}}>
{capitalize(option.label)}
@@ -79,15 +65,11 @@
on:click={() => {
option.checked = !option.checked;
dispatch('add', {
- value: filter?.array
- ? null
- : option.checked
- ? option.value
- : null
+ value: option.checked
});
}}>
-
+
{capitalize(option.label)}
diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/executions/execute-function/+page.ts b/src/routes/(console)/project-[project]/functions/function-[function]/executions/execute-function/+page.ts
index 1839e3613..7ee66a5a4 100644
--- a/src/routes/(console)/project-[project]/functions/function-[function]/executions/execute-function/+page.ts
+++ b/src/routes/(console)/project-[project]/functions/function-[function]/executions/execute-function/+page.ts
@@ -1,7 +1,6 @@
import { sdk } from '$lib/stores/sdk';
import { Dependencies } from '$lib/constants';
import type { PageLoad } from './$types';
-import { proxyRuleList } from '../../store';
export const load: PageLoad = async ({ params, depends, parent }) => {
const data = await parent();
diff --git a/src/routes/(console)/project-[project]/sites/(components)/addCollaboratorModal.svelte b/src/routes/(console)/project-[project]/sites/(components)/addCollaboratorModal.svelte
index c4ee16c58..e4e7d1c5f 100644
--- a/src/routes/(console)/project-[project]/sites/(components)/addCollaboratorModal.svelte
+++ b/src/routes/(console)/project-[project]/sites/(components)/addCollaboratorModal.svelte
@@ -12,7 +12,6 @@
import { Submit, trackEvent, trackError } from '$lib/actions/analytics';
import { roles } from '$lib/stores/billing';
import InputSelect from '$lib/elements/forms/inputSelect.svelte';
- import Roles from '$lib/components/roles/roles.svelte';
import { Layout } from '@appwrite.io/pink-svelte';
import { isCloud, isSelfHosted } from '$lib/system';
@@ -76,7 +75,6 @@
bind:value={email} />
{#if isCloud}