Sfoglia il codice sorgente

Revert "fix: fix duplicate app lose custom image" (#19995)

tags/1.4.1
crazywoola 5 mesi fa
parent
commit
d35d854259
Nessun account collegato all'indirizzo email del committer

+ 0
- 2
api/controllers/console/app/app.py Vedi File

parser.add_argument("icon_type", type=str, location="json") parser.add_argument("icon_type", type=str, location="json")
parser.add_argument("icon", type=str, location="json") parser.add_argument("icon", type=str, location="json")
parser.add_argument("icon_background", type=str, location="json") parser.add_argument("icon_background", type=str, location="json")
parser.add_argument("icon_url", type=str, location="json")
args = parser.parse_args() args = parser.parse_args()


with Session(db.engine) as session: with Session(db.engine) as session:
description=args.get("description"), description=args.get("description"),
icon_type=args.get("icon_type"), icon_type=args.get("icon_type"),
icon=args.get("icon"), icon=args.get("icon"),
icon_url=args.get("icon_url"),
icon_background=args.get("icon_background"), icon_background=args.get("icon_background"),
) )
session.commit() session.commit()

+ 2
- 8
api/services/app_dsl_service.py Vedi File

description: str | None description: str | None
icon_type: str | None icon_type: str | None
icon: str | None icon: str | None
icon_url: str | None
icon_background: str | None icon_background: str | None
app_id: str | None app_id: str | None


description: Optional[str] = None, description: Optional[str] = None,
icon_type: Optional[str] = None, icon_type: Optional[str] = None,
icon: Optional[str] = None, icon: Optional[str] = None,
icon_url: Optional[str] = None,
icon_background: Optional[str] = None, icon_background: Optional[str] = None,
app_id: Optional[str] = None, app_id: Optional[str] = None,
) -> Import: ) -> Import:
icon_type=icon_type, icon_type=icon_type,
icon=icon, icon=icon,
icon_background=icon_background, icon_background=icon_background,
icon_url=icon_url,
app_id=app_id, app_id=app_id,
) )
redis_client.setex( redis_client.setex(
description=description, description=description,
icon_type=icon_type, icon_type=icon_type,
icon=icon, icon=icon,
icon_url=icon_url,
icon_background=icon_background, icon_background=icon_background,
dependencies=check_dependencies_pending_data, dependencies=check_dependencies_pending_data,
) )
description: Optional[str] = None, description: Optional[str] = None,
icon_type: Optional[str] = None, icon_type: Optional[str] = None,
icon: Optional[str] = None, icon: Optional[str] = None,
icon_url: Optional[str] = None,
icon_background: Optional[str] = None, icon_background: Optional[str] = None,
dependencies: Optional[list[PluginDependency]] = None, dependencies: Optional[list[PluginDependency]] = None,
) -> App: ) -> App:


# Set icon type # Set icon type
icon_type_value = icon_type or app_data.get("icon_type") icon_type_value = icon_type or app_data.get("icon_type")
if icon_type_value in ["emoji", "link", "image"]:
if icon_type_value in ["emoji", "link"]:
icon_type = icon_type_value icon_type = icon_type_value
else: else:
icon_type = "emoji" icon_type = "emoji"
icon = icon or str(app_data.get("icon", "")) icon = icon or str(app_data.get("icon", ""))
icon_url = icon_url or str(app_data.get("icon_url", ""))
if app: if app:
# Update existing app # Update existing app
app.name = name or app_data.get("name", app.name) app.name = name or app_data.get("name", app.name)
app.icon_type = icon_type app.icon_type = icon_type
app.icon = icon app.icon = icon
app.icon_background = icon_background or app_data.get("icon_background", app.icon_background) app.icon_background = icon_background or app_data.get("icon_background", app.icon_background)
app.icon_url = icon_url or app_data.get("icon_url", app.icon_url)
app.updated_by = account.id app.updated_by = account.id
else: else:
if account.current_tenant_id is None: if account.current_tenant_id is None:

+ 1
- 3
web/app/(commonLayout)/apps/AppCard.tsx Vedi File

} }
}, [app.id, mutateApps, notify, onRefresh, t]) }, [app.id, mutateApps, notify, onRefresh, t])


const onCopy: DuplicateAppModalProps['onConfirm'] = async ({ name, icon_type, icon, icon_background, icon_url }) => {
const onCopy: DuplicateAppModalProps['onConfirm'] = async ({ name, icon_type, icon, icon_background }) => {
try { try {
console.log('icon_url', icon_url)
const newApp = await copyApp({ const newApp = await copyApp({
appID: app.id, appID: app.id,
name, name,
icon_type, icon_type,
icon, icon,
icon_background, icon_background,
icon_url,
mode: app.mode, mode: app.mode,
}) })
setShowDuplicateModal(false) setShowDuplicateModal(false)

+ 0
- 2
web/app/components/app/duplicate-modal/index.tsx Vedi File

onConfirm: (info: { onConfirm: (info: {
name: string name: string
icon_type: AppIconType icon_type: AppIconType
icon_url?: string | null
icon: string icon: string
icon_background?: string | null icon_background?: string | null
}) => Promise<void> }) => Promise<void>
name, name,
icon_type: appIcon.type, icon_type: appIcon.type,
icon: appIcon.type === 'emoji' ? appIcon.icon : appIcon.fileId, icon: appIcon.type === 'emoji' ? appIcon.icon : appIcon.fileId,
icon_url: appIcon.type === 'image' ? appIcon.url : undefined,
icon_background: appIcon.type === 'emoji' ? appIcon.background : undefined, icon_background: appIcon.type === 'emoji' ? appIcon.background : undefined,
}) })
onHide() onHide()

+ 4
- 4
web/service/apps.ts Vedi File

return post<AppDetailResponse>('apps', { body: { name, icon_type, icon, icon_background, mode, description, model_config: config } }) return post<AppDetailResponse>('apps', { body: { name, icon_type, icon, icon_background, mode, description, model_config: config } })
} }


export const updateAppInfo: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string; icon_url?: string; description: string; use_icon_as_answer_icon?: boolean }> = ({ appID, name, icon_type, icon, icon_background, icon_url, description, use_icon_as_answer_icon }) => {
return put<AppDetailResponse>(`apps/${appID}`, { body: { name, icon_type, icon, icon_background, icon_url, description, use_icon_as_answer_icon } })
export const updateAppInfo: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string; description: string; use_icon_as_answer_icon?: boolean }> = ({ appID, name, icon_type, icon, icon_background, description, use_icon_as_answer_icon }) => {
return put<AppDetailResponse>(`apps/${appID}`, { body: { name, icon_type, icon, icon_background, description, use_icon_as_answer_icon } })
} }


export const copyApp: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string | null; icon_url?: string | null; mode: AppMode; description?: string }> = ({ appID, name, icon_type, icon, icon_background, icon_url, mode, description }) => {
return post<AppDetailResponse>(`apps/${appID}/copy`, { body: { name, icon_type, icon, icon_background, icon_url, mode, description } })
export const copyApp: Fetcher<AppDetailResponse, { appID: string; name: string; icon_type: AppIconType; icon: string; icon_background?: string | null; mode: AppMode; description?: string }> = ({ appID, name, icon_type, icon, icon_background, mode, description }) => {
return post<AppDetailResponse>(`apps/${appID}/copy`, { body: { name, icon_type, icon, icon_background, mode, description } })
} }


export const exportAppConfig: Fetcher<{ data: string }, { appID: string; include?: boolean }> = ({ appID, include = false }) => { export const exportAppConfig: Fetcher<{ data: string }, { appID: string; include?: boolean }> = ({ appID, include = false }) => {

Loading…
Annulla
Salva