diff --git a/backend/open_webui/routers/prompts.py b/backend/open_webui/routers/prompts.py index 6047ba0d8..263bf7617 100644 --- a/backend/open_webui/routers/prompts.py +++ b/backend/open_webui/routers/prompts.py @@ -297,12 +297,13 @@ async def delete_prompt_by_id( @router.get("/id/{prompt_id}/history", response_model=list[PromptHistoryResponse]) async def get_prompt_history( prompt_id: str, - limit: int = 50, - offset: int = 0, + page: int = 0, user=Depends(get_verified_user), db: Session = Depends(get_session), ): """Get version history for a prompt.""" + PAGE_SIZE = 20 + prompt = Prompts.get_prompt_by_id(prompt_id, db=db) if not prompt: @@ -323,7 +324,7 @@ async def get_prompt_history( ) history = PromptHistories.get_history_by_prompt_id( - prompt.id, limit=limit, offset=offset, db=db + prompt.id, limit=PAGE_SIZE, offset=page * PAGE_SIZE, db=db ) return history diff --git a/src/lib/apis/prompts/index.ts b/src/lib/apis/prompts/index.ts index d058b677c..b17079085 100644 --- a/src/lib/apis/prompts/index.ts +++ b/src/lib/apis/prompts/index.ts @@ -312,13 +312,12 @@ export const deletePromptById = async (token: string, promptId: string) => { export const getPromptHistory = async ( token: string, promptId: string, - limit: number = 50, - offset: number = 0 + page: number = 0 ): Promise => { let error = null; const res = await fetch( - `${WEBUI_API_BASE_URL}/prompts/id/${promptId}/history?limit=${limit}&offset=${offset}`, + `${WEBUI_API_BASE_URL}/prompts/id/${promptId}/history?page=${page}`, { method: 'GET', headers: { diff --git a/src/lib/components/workspace/Prompts/PromptEditor.svelte b/src/lib/components/workspace/Prompts/PromptEditor.svelte index a870f31b0..5bfbd50a1 100644 --- a/src/lib/components/workspace/Prompts/PromptEditor.svelte +++ b/src/lib/components/workspace/Prompts/PromptEditor.svelte @@ -49,10 +49,9 @@ let history: any[] = []; let historyLoading = false; let selectedHistoryEntry: any = null; - let historyOffset = 0; + let historyPage = 0; let historyHasMore = true; let contentCopied = false; - const HISTORY_PAGE_SIZE = 20; $: if (!edit && !hasManualEdit) { command = name !== '' ? slugify(name) : ''; @@ -109,17 +108,12 @@ historyLoading = true; if (reset) { - historyOffset = 0; + historyPage = 0; historyHasMore = true; } try { - const newEntries = await getPromptHistory( - localStorage.token, - prompt.id, - HISTORY_PAGE_SIZE, - historyOffset - ); + const newEntries = await getPromptHistory(localStorage.token, prompt.id, historyPage); if (reset) { history = newEntries; @@ -127,8 +121,8 @@ history = [...history, ...newEntries]; } - historyHasMore = newEntries.length === HISTORY_PAGE_SIZE; - historyOffset += newEntries.length; + historyHasMore = newEntries.length > 0; + historyPage = historyPage + 1; } catch (error) { console.error('Failed to load history:', error); if (reset) {