Skip to content

Commit 5b52fc0

Browse files
authored
Merge pull request #94889 from software-mansion-labs/merge-hr/daily-sync-limit
[HR Import] Handle Merge daily sync limit error with popup
2 parents 968b66d + bfd360c commit 5b52fc0

17 files changed

Lines changed: 130 additions & 7 deletions

File tree

src/CONST/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3043,6 +3043,12 @@ const CONST = {
30433043
AUTO: 'auto',
30443044
WEBHOOK: 'webhook',
30453045
},
3046+
3047+
/** Maximum number of manual syncs ("Sync now") allowed within the rolling window */
3048+
MANUAL_SYNC_LIMIT: 2,
3049+
3050+
/** Rolling window (in milliseconds) over which manual syncs are counted against MANUAL_SYNC_LIMIT (24 hours) */
3051+
MANUAL_SYNC_WINDOW_MS: 24 * 60 * 60 * 1000,
30463052
},
30473053

30483054
QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE: {

src/languages/de.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7945,6 +7945,7 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
79457945
setupIncomplete: (setupLink: string | undefined) =>
79467946
`<muted-text-label>Verbunden. ${setupLink ? `<a href="${setupLink}">Einrichtung abschließen</a>` : 'Einrichtung abschließen'} zum Importieren von Mitarbeitenden.</muted-text-label>`,
79477947
groups: {title: 'Gruppen', description: 'Wählen Sie die Mitarbeitergruppen aus, die Sie mit diesem Workspace synchronisieren möchten'},
7948+
syncLimitReached: {title: 'Versuchen Sie es morgen noch einmal', prompt: 'Sie haben Ihr Synchronisierungslimit für heute erreicht.'},
79487949
},
79497950
notSync: 'Nicht synchronisiert',
79507951
authenticationError: (providerName: string) => `Verbindung mit ${providerName} aufgrund einer abgelaufenen Verknüpfung nicht möglich.`,

src/languages/en.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7079,6 +7079,10 @@ const translations = {
70797079
title: 'Groups',
70807080
description: 'Choose the groups of employees you would like to sync with this workspace',
70817081
},
7082+
syncLimitReached: {
7083+
title: 'Try again tomorrow',
7084+
prompt: "You've reached your sync limit for the day.",
7085+
},
70827086
},
70837087
},
70847088
export: {

src/languages/es.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6810,6 +6810,7 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
68106810
setupIncomplete: (setupLink: string | undefined) =>
68116811
`<muted-text-label>Conectado. ${setupLink ? `<a href="${setupLink}">Completa la configuración</a>` : 'Completar configuración'} para importar empleados.</muted-text-label>`,
68126812
groups: {title: 'Grupos', description: 'Elige los grupos de empleados que te gustaría sincronizar con este espacio de trabajo'},
6813+
syncLimitReached: {title: 'Inténtalo de nuevo mañana', prompt: 'Has alcanzado tu límite de sincronización de hoy.'},
68136814
},
68146815
notSync: 'No sincronizado',
68156816
authenticationError: (providerName: string) => `No se puede conectar a ${providerName} porque la conexión ha caducado.`,

src/languages/fr.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7980,6 +7980,7 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
79807980
setupIncomplete: (setupLink: string | undefined) =>
79817981
`<muted-text-label>Connecté. ${setupLink ? `<a href="${setupLink}">Terminer la configuration</a>` : 'Terminer la configuration'} pour importer les employés.</muted-text-label>`,
79827982
groups: {title: 'Groupes', description: 'Choisissez les groupes d’employés que vous souhaitez synchroniser avec cet espace de travail'},
7983+
syncLimitReached: {title: 'Réessayez demain', prompt: "Vous avez atteint votre limite de synchronisation pour aujourd'hui."},
79837984
},
79847985
notSync: 'Non synchronisé',
79857986
authenticationError: (providerName: string) => `Connexion à ${providerName} impossible en raison d'une connexion expirée.`,

src/languages/it.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7928,6 +7928,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
79287928
setupIncomplete: (setupLink: string | undefined) =>
79297929
`<muted-text-label>Connesso. ${setupLink ? `<a href="${setupLink}">Completa la configurazione</a>` : 'Completa configurazione'} per importare i dipendenti.</muted-text-label>`,
79307930
groups: {title: 'Gruppi', description: 'Scegli i gruppi di dipendenti che vuoi sincronizzare con questo spazio di lavoro'},
7931+
syncLimitReached: {title: 'Riprova domani', prompt: 'Hai raggiunto il limite di sincronizzazioni per oggi.'},
79317932
},
79327933
notSync: 'Non sincronizzato',
79337934
authenticationError: (providerName: string) => `Impossibile connettersi a ${providerName} a causa di una connessione scaduta.`,

src/languages/ja.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7824,6 +7824,7 @@ ${reportName}`,
78247824
setupIncomplete: (setupLink: string | undefined) =>
78257825
`<muted-text-label>接続されました。従業員をインポートするには ${setupLink ? `<a href="${setupLink}">セットアップを完了</a>` : '設定を完了'} に接続してください。</muted-text-label>`,
78267826
groups: {title: 'グループ', description: 'このワークスペースと同期したい従業員グループを選択してください'},
7827+
syncLimitReached: {title: '明日もう一度お試しください', prompt: '本日の同期上限に達しました。'},
78277828
},
78287829
notSync: '未同期',
78297830
authenticationError: (providerName: string) => `有効期限が切れた接続のため、${providerName} に接続できません。`,

src/languages/nl.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7906,6 +7906,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
79067906
setupIncomplete: (setupLink: string | undefined) =>
79077907
`<muted-text-label>Verbonden. ${setupLink ? `<a href="${setupLink}">Instellen voltooien</a>` : 'Configuratie voltooien'} om werknemers te importeren.</muted-text-label>`,
79087908
groups: {title: 'Groepen', description: 'Kies de groepen werknemers die je met deze workspace wilt synchroniseren'},
7909+
syncLimitReached: {title: 'Probeer het morgen opnieuw', prompt: 'Je hebt je synchronisatielimiet voor vandaag bereikt.'},
79097910
},
79107911
notSync: 'Niet gesynchroniseerd',
79117912
authenticationError: (providerName: string) => `Kan geen verbinding maken met ${providerName} vanwege een verlopen koppeling.`,

src/languages/pl.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7885,6 +7885,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
78857885
setupIncomplete: (setupLink: string | undefined) =>
78867886
`<muted-text-label>Połączono. ${setupLink ? `<a href="${setupLink}">Zakończ konfigurację</a>` : 'Zakończ konfigurację'}, aby zaimportować pracowników.</muted-text-label>`,
78877887
groups: {title: 'Grupy', description: 'Wybierz grupy pracowników, które chcesz zsynchronizować z tą przestrzenią roboczą'},
7888+
syncLimitReached: {title: 'Spróbuj ponownie jutro', prompt: 'Osiągnąłeś dzienny limit synchronizacji.'},
78887889
},
78897890
notSync: 'Niesynchronizowane',
78907891
authenticationError: (providerName: string) => `Nie można połączyć z ${providerName} z powodu wygasłego połączenia.`,

src/languages/pt-BR.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7898,6 +7898,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
78987898
setupIncomplete: (setupLink: string | undefined) =>
78997899
`<muted-text-label>Conectado. ${setupLink ? `<a href="${setupLink}">Concluir configuração</a>` : 'Concluir configuração'} para importar funcionários.</muted-text-label>`,
79007900
groups: {title: 'Grupos', description: 'Escolha os grupos de funcionários que você gostaria de sincronizar com este workspace'},
7901+
syncLimitReached: {title: 'Tente novamente amanhã', prompt: 'Você atingiu o limite de sincronizações de hoje.'},
79017902
},
79027903
notSync: 'Não sincronizado',
79037904
authenticationError: (providerName: string) => `Não é possível conectar a ${providerName} devido a uma conexão expirada.`,

0 commit comments

Comments
 (0)