Skip to content

Commit e2ff5f7

Browse files
authored
Merge pull request Expensify#80331 from software-mansion-labs/time-tracking-settings-page
Create Time Tracking settings page
2 parents 7285520 + 3c02538 commit e2ff5f7

37 files changed

Lines changed: 368 additions & 19 deletions

src/ONYXKEYS.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,8 @@ const ONYXKEYS = {
910910
WORKSPACE_INVOICES_COMPANY_NAME_FORM_DRAFT: 'workspaceInvoicesCompanyNameFormDraft',
911911
WORKSPACE_INVOICES_COMPANY_WEBSITE_FORM: 'workspaceInvoicesCompanyWebsiteForm',
912912
WORKSPACE_INVOICES_COMPANY_WEBSITE_FORM_DRAFT: 'workspaceInvoicesCompanyWebsiteFormDraft',
913+
WORKSPACE_TIME_TRACKING_DEFAULT_RATE_FORM: 'workspaceTimeTrackingDefaultRateForm',
914+
WORKSPACE_TIME_TRACKING_DEFAULT_RATE_FORM_DRAFT: 'workspaceTimeTrackingDefaultRateFormDraft',
913915
NEW_CHAT_NAME_FORM: 'newChatNameForm',
914916
NEW_CHAT_NAME_FORM_DRAFT: 'newChatNameFormDraft',
915917
SUBSCRIPTION_SIZE_FORM: 'subscriptionSizeForm',
@@ -1070,6 +1072,7 @@ type OnyxFormValuesMapping = {
10701072
[ONYXKEYS.FORMS.WORKSPACE_TAX_VALUE_FORM]: FormTypes.WorkspaceTaxValueForm;
10711073
[ONYXKEYS.FORMS.WORKSPACE_INVOICES_COMPANY_NAME_FORM]: FormTypes.WorkspaceInvoicesCompanyNameForm;
10721074
[ONYXKEYS.FORMS.WORKSPACE_INVOICES_COMPANY_WEBSITE_FORM]: FormTypes.WorkspaceInvoicesCompanyWebsiteForm;
1075+
[ONYXKEYS.FORMS.WORKSPACE_TIME_TRACKING_DEFAULT_RATE_FORM]: FormTypes.WorkspaceTimeTrackingDefaultRateForm;
10731076
[ONYXKEYS.FORMS.NEW_CHAT_NAME_FORM]: FormTypes.NewChatNameForm;
10741077
[ONYXKEYS.FORMS.SUBSCRIPTION_SIZE_FORM]: FormTypes.SubscriptionSizeForm;
10751078
[ONYXKEYS.FORMS.ISSUE_NEW_EXPENSIFY_CARD_FORM]: FormTypes.IssueNewExpensifyCardForm;

src/ROUTES.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2624,6 +2624,21 @@ const ROUTES = {
26242624
route: 'workspaces/:policyID/per-diem/edit/currency/:rateID/:subRateID',
26252625
getRoute: (policyID: string, rateID: string, subRateID: string) => `workspaces/${policyID}/per-diem/edit/currency/${rateID}/${subRateID}` as const,
26262626
},
2627+
2628+
WORKSPACE_TIME_TRACKING: {
2629+
route: 'workspaces/:policyID/time-tracking',
2630+
getRoute: (policyID: string | undefined) => {
2631+
if (!policyID) {
2632+
Log.warn('Invalid policyID is used to build the WORKSPACE_TIME_TRACKING route');
2633+
}
2634+
return `workspaces/${policyID}/time-tracking` as const;
2635+
},
2636+
},
2637+
WORKSPACE_TIME_TRACKING_DEFAULT_RATE: {
2638+
route: 'workspaces/:policyID/time-tracking/rate',
2639+
getRoute: (policyID: string) => `workspaces/${policyID}/time-tracking/rate` as const,
2640+
},
2641+
26272642
REPORTS_DEFAULT_TITLE: {
26282643
route: 'workspaces/:policyID/reports/name',
26292644
getRoute: (policyID: string) => `workspaces/${policyID}/reports/name` as const,

src/SCREENS.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,8 @@ const SCREENS = {
779779
PER_DIEM_EDIT_SUBRATE: 'Per_Diem_Edit_Subrate',
780780
PER_DIEM_EDIT_AMOUNT: 'Per_Diem_Edit_Amount',
781781
PER_DIEM_EDIT_CURRENCY: 'Per_Diem_Edit_Currency',
782+
TIME_TRACKING: 'Time_Tracking',
783+
TIME_TRACKING_DEFAULT_RATE: 'Time_Tracking_Default_Rate',
782784
},
783785

784786
EDIT_REQUEST: {

src/components/FocusTrap/WIDE_LAYOUT_INACTIVE_SCREENS.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const WIDE_LAYOUT_INACTIVE_SCREENS: string[] = [
3737
SCREENS.WORKSPACE.RULES,
3838
SCREENS.WORKSPACE.PER_DIEM,
3939
SCREENS.WORKSPACE.RECEIPT_PARTNERS,
40+
SCREENS.WORKSPACE.TIME_TRACKING,
4041
];
4142

4243
export default WIDE_LAYOUT_INACTIVE_SCREENS;

src/languages/de.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5304,7 +5304,11 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
53045304
title: 'Regeln',
53055305
subtitle: 'Belege verlangen, hohe Ausgaben kennzeichnen und mehr.',
53065306
},
5307-
timeTracking: {title: 'Zeit', subtitle: 'Legen Sie einen abrechenbaren Stundensatz fest, damit Mitarbeitende für ihre Zeit bezahlt werden.'},
5307+
timeTracking: {
5308+
title: 'Zeit',
5309+
subtitle: 'Legen Sie einen abrechenbaren Stundensatz für die Zeiterfassung fest.',
5310+
defaultHourlyRate: 'Standardstundensatz',
5311+
},
53085312
},
53095313
reports: {
53105314
reportsCustomTitleExamples: 'Beispiele:',

src/languages/en.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5226,7 +5226,8 @@ const translations = {
52265226
},
52275227
timeTracking: {
52285228
title: 'Time',
5229-
subtitle: 'Set an hourly billable rate for employees to get paid for their time.',
5229+
subtitle: 'Set a billable hourly rate for time tracking.',
5230+
defaultHourlyRate: 'Default hourly rate',
52305231
},
52315232
},
52325233
reports: {

src/languages/es.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4981,7 +4981,8 @@ ${amount} para ${merchant} - ${date}`,
49814981
},
49824982
timeTracking: {
49834983
title: 'Tiempo',
4984-
subtitle: 'Establece una tarifa facturable por hora para que los empleados reciban pago por su tiempo.',
4984+
subtitle: 'Establecer una tarifa por hora facturable para el seguimiento de tiempo.',
4985+
defaultHourlyRate: 'Tarifa por hora predeterminada',
49854986
},
49864987
},
49874988
reports: {

src/languages/fr.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5313,7 +5313,11 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
53135313
title: 'Règles',
53145314
subtitle: 'Exigez des reçus, signalez les dépenses élevées, et plus encore.',
53155315
},
5316-
timeTracking: {title: 'Heure', subtitle: 'Définissez un taux horaire facturable pour que les employés soient rémunérés pour leur temps.'},
5316+
timeTracking: {
5317+
title: 'Heure',
5318+
subtitle: 'Définissez un taux horaire facturable pour le suivi du temps.',
5319+
defaultHourlyRate: 'Taux horaire par défaut',
5320+
},
53175321
},
53185322
reports: {
53195323
reportsCustomTitleExamples: 'Exemples :',

src/languages/it.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5290,7 +5290,11 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
52905290
title: 'Regole',
52915291
subtitle: 'Richiedi ricevute, segnala spese elevate e altro ancora.',
52925292
},
5293-
timeTracking: {title: 'Ora', subtitle: 'Imposta una tariffa oraria fatturabile per consentire ai dipendenti di essere pagati per il loro tempo.'},
5293+
timeTracking: {
5294+
title: 'Ora',
5295+
subtitle: 'Imposta una tariffa oraria fatturabile per il monitoraggio del tempo.',
5296+
defaultHourlyRate: 'Tariffa oraria predefinita',
5297+
},
52945298
},
52955299
reports: {
52965300
reportsCustomTitleExamples: 'Esempi:',

src/languages/ja.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5254,7 +5254,11 @@ _より詳しい手順については、[ヘルプサイトをご覧ください
52545254
title: 'ルール',
52555255
subtitle: 'レシートの必須化や高額支出のフラグ付けなどを設定できます。',
52565256
},
5257-
timeTracking: {title: '時間', subtitle: '従業員が作業時間に対して支払いを受けられるよう、時間単位の請求レートを設定します。'},
5257+
timeTracking: {
5258+
title: '時間',
5259+
subtitle: 'タイムトラッキング用の時間単価請求レートを設定します。',
5260+
defaultHourlyRate: 'デフォルトの時間単価',
5261+
},
52585262
},
52595263
reports: {
52605264
reportsCustomTitleExamples: '例:',

0 commit comments

Comments
 (0)