feat: filter digest tiles by user permissions and add import progress status
Build and Push Multi-Platform Images / build-and-push (push) Successful in 42s
Build and Push Multi-Platform Images / build-and-push (push) Successful in 42s
- Store UserGroups from OIDC in UserSettings entity, sync on each request - Filter daily digest tiles based on user's permission groups - Add in-memory job status tracking to EmailImportService - Poll import job status in MailImportWizard and show progress in Spin tip Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -62,10 +62,19 @@ export const emailImportApi = {
|
||||
return res.data.isDuplicate;
|
||||
},
|
||||
|
||||
executeImport: async (emailDate: string, attachments: AttachmentImportData[]): Promise<{ success: boolean; results: any[] }> => {
|
||||
const res = await api.post('/api/email-import/execute', { emailDate, attachments });
|
||||
executeImport: async (emailDate: string, attachments: AttachmentImportData[], jobId?: string): Promise<{ success: boolean; results: any[] }> => {
|
||||
const res = await api.post('/api/email-import/execute', { emailDate, attachments, jobId }, { timeout: 300_000 });
|
||||
return res.data;
|
||||
},
|
||||
|
||||
getJobStatus: async (jobId: string): Promise<{ message: string; done: boolean } | null> => {
|
||||
try {
|
||||
const res = await api.get(`/api/email-import/jobs/${jobId}/status`);
|
||||
return res.data;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
ensurePreviews: async (emailId: number): Promise<void> => {
|
||||
await api.post(`/api/email-import/emails/${emailId}/ensure-previews`);
|
||||
|
||||
Reference in New Issue
Block a user