Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add filter to show only apps created by the user #11968

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
3 changes: 2 additions & 1 deletion api/controllers/console/app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,13 @@ def uuid_list(value):
)
parser.add_argument("name", type=str, location="args", required=False)
parser.add_argument("tag_ids", type=uuid_list, location="args", required=False)
parser.add_argument("is_created_by_me", type=inputs.boolean, location="args", required=False)

args = parser.parse_args()

# get app list
app_service = AppService()
app_pagination = app_service.get_paginate_apps(current_user.current_tenant_id, args)
app_pagination = app_service.get_paginate_apps(current_user.id, current_user.current_tenant_id, args)
if not app_pagination:
return {"data": [], "total": 0, "page": 1, "limit": 20, "has_more": False}

Expand Down
5 changes: 4 additions & 1 deletion api/services/app_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@


class AppService:
def get_paginate_apps(self, tenant_id: str, args: dict) -> Pagination | None:
def get_paginate_apps(self, user_id: str, tenant_id: str, args: dict) -> Pagination | None:
"""
Get app list with pagination
:param user_id: user id
:param tenant_id: tenant id
:param args: request args
:return:
Expand All @@ -44,6 +45,8 @@ def get_paginate_apps(self, tenant_id: str, args: dict) -> Pagination | None:
elif args["mode"] == "channel":
filters.append(App.mode == AppMode.CHANNEL.value)

if args.get("is_created_by_me", False):
filters.append(App.created_by == user_id)
if args.get("name"):
name = args["name"][:30]
filters.append(App.name.ilike(f"%{name}%"))
Expand Down
13 changes: 11 additions & 2 deletions web/app/(commonLayout)/apps/Apps.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,18 @@ import Input from '@/app/components/base/input'
import { useStore as useTagStore } from '@/app/components/base/tag-management/store'
import TagManagementModal from '@/app/components/base/tag-management'
import TagFilter from '@/app/components/base/tag-management/filter'
import CheckboxWithLabel from '@/app/components/datasets/create/website/base/checkbox-with-label'

const getKey = (
pageIndex: number,
previousPageData: AppListResponse,
activeTab: string,
isCreatedByMe: boolean,
tags: string[],
keywords: string,
) => {
if (!pageIndex || previousPageData.has_more) {
const params: any = { url: 'apps', params: { page: pageIndex + 1, limit: 30, name: keywords } }
const params: any = { url: 'apps', params: { page: pageIndex + 1, limit: 30, name: keywords, is_created_by_me: isCreatedByMe } }

if (activeTab !== 'all')
params.params.mode = activeTab
Expand All @@ -58,6 +60,7 @@ const Apps = () => {
defaultTab: 'all',
})
const { query: { tagIDs = [], keywords = '' }, setQuery } = useAppsQueryState()
const [isCreatedByMe, setIsCreatedByMe] = useState(false)
const [tagFilterValue, setTagFilterValue] = useState<string[]>(tagIDs)
const [searchKeywords, setSearchKeywords] = useState(keywords)
const setKeywords = useCallback((keywords: string) => {
Expand All @@ -68,7 +71,7 @@ const Apps = () => {
}, [setQuery])

const { data, isLoading, setSize, mutate } = useSWRInfinite(
(pageIndex: number, previousPageData: AppListResponse) => getKey(pageIndex, previousPageData, activeTab, tagIDs, searchKeywords),
(pageIndex: number, previousPageData: AppListResponse) => getKey(pageIndex, previousPageData, activeTab, isCreatedByMe, tagIDs, searchKeywords),
fetchAppList,
{ revalidateFirstPage: true },
)
Expand Down Expand Up @@ -132,6 +135,12 @@ const Apps = () => {
options={options}
/>
<div className='flex items-center gap-2'>
<CheckboxWithLabel
className='mr-2'
label={t('app.showMyCreatedAppsOnly')}
isChecked={isCreatedByMe}
onChange={() => setIsCreatedByMe(!isCreatedByMe)}
/>
<TagFilter type='app' value={tagFilterValue} onChange={handleTagsChange} />
<Input
showLeftIcon
Expand Down
1 change: 1 addition & 0 deletions web/i18n/de-DE/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ const translation = {
byCategories: 'NACH KATEGORIEN',
searchAllTemplate: 'Alle Vorlagen durchsuchen...',
},
showMyCreatedAppsOnly: 'Nur meine erstellten Apps anzeigen',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/en-US/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ const translation = {
removeConfirmContent: 'The current configuration is in use, removing it will turn off the Tracing feature.',
},
},
showMyCreatedAppsOnly: 'Created by me',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/es-ES/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'POR CATEGORÍAS',
searchAllTemplate: 'Buscar todas las plantillas...',
},
showMyCreatedAppsOnly: 'Mostrar solo mis aplicaciones creadas',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/fa-IR/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'بر اساس دسته بندی ها',
searchAllTemplate: 'همه قالب ها را جستجو کنید...',
},
showMyCreatedAppsOnly: 'فقط برنامه‌های ایجاد شده توسط من را نشان بده',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/fr-FR/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'PAR CATÉGORIES',
searchAllTemplate: 'Rechercher dans tous les modèles...',
},
showMyCreatedAppsOnly: 'Afficher uniquement mes applications créées',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/hi-IN/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'श्रेणियों द्वारा',
searchAllTemplate: 'सभी टेम्पलेट्स खोजें...',
},
showMyCreatedAppsOnly: 'केवल मेरे बनाए गए ऐप्स दिखाएं',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/it-IT/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ const translation = {
byCategories: 'PER CATEGORIE',
searchAllTemplate: 'Cerca in tutti i modelli...',
},
showMyCreatedAppsOnly: 'Mostra solo le mie app create',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/ja-JP/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ const translation = {
byCategories: 'カテゴリ別',
searchAllTemplate: 'すべてのテンプレートを検索...',
},
showMyCreatedAppsOnly: '自分が作成したアプリ',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/ko-KR/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ const translation = {
byCategories: '카테고리별',
searchAllTemplate: '모든 템플릿 검색...',
},
showMyCreatedAppsOnly: '내가 만든 앱만 보기',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/pl-PL/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ const translation = {
searchAllTemplate: 'Przeszukaj wszystkie szablony...',
byCategories: 'WEDŁUG KATEGORII',
},
showMyCreatedAppsOnly: 'Pokaż tylko moje utworzone aplikacje',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/pt-BR/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Pesquisar todos os modelos...',
byCategories: 'POR CATEGORIAS',
},
showMyCreatedAppsOnly: 'Mostrar apenas meus aplicativos criados',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/ro-RO/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Căutați toate șabloanele...',
byCategories: 'DUPĂ CATEGORII',
},
showMyCreatedAppsOnly: 'Afișează doar aplicațiile create de mine',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/ru-RU/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Поиск по всем шаблонам...',
byCategories: 'ПО КАТЕГОРИЯМ',
},
showMyCreatedAppsOnly: 'Показать только созданные мной приложения',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/sl-SI/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'PO KATEGORIJAH',
searchAllTemplate: 'Preišči vse predloge ...',
},
showMyCreatedAppsOnly: 'Prikaži samo aplikacije, ki sem jih ustvaril',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/th-TH/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ const translation = {
searchAllTemplate: 'ค้นหาเทมเพลตทั้งหมด...',
byCategories: 'ตามหมวดหมู่',
},
showMyCreatedAppsOnly: 'แสดงเฉพาะแอปที่ฉันสร้าง',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/tr-TR/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ const translation = {
searchAllTemplate: 'Tüm şablonlarda ara...',
byCategories: 'KATEGORILERE GÖRE',
},
showMyCreatedAppsOnly: 'Sadece oluşturduğum uygulamaları göster',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/uk-UA/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
byCategories: 'ЗА КАТЕГОРІЯМИ',
searchAllTemplate: 'Пошук по всіх шаблонах...',
},
showMyCreatedAppsOnly: 'Показати лише створені мною додатки',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/vi-VN/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ const translation = {
searchAllTemplate: 'Tìm kiếm tất cả các mẫu...',
byCategories: 'THEO DANH MỤC',
},
showMyCreatedAppsOnly: 'Chỉ hiển thị ứng dụng do tôi tạo',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/zh-Hans/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ const translation = {
},
},
openInExplore: '在“探索”中打开',
showMyCreatedAppsOnly: '我创建的',
}

export default translation
1 change: 1 addition & 0 deletions web/i18n/zh-Hant/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ const translation = {
searchAllTemplate: '搜尋所有樣本...',
byCategories: '按類別',
},
showMyCreatedAppsOnly: '我创建的',
}

export default translation
Loading