feat: add admin page

This commit is contained in:
2026-08-07 03:09:59 +02:00
parent 2c734493cf
commit 1dd7e69aa8
19 changed files with 891 additions and 65 deletions
+17
View File
@@ -11,6 +11,13 @@
"refresh": "Refresh",
"settings": "Settings",
"logout": "Logout",
"admin": "Admin",
"adminDescription": "Restricted tools for managing products and importing names.",
"adminTools": "Admin tools",
"importData": "Import",
"importNames": "Import names",
"importNamesDescription": "Prepare a list of names to use as tabs later.",
"importPlaceholder": "Importing names will be available here later.",
"openOrSelectTab": "Open or select a tab first.",
"openNewTab": "Open new tab",
"customerGroupName": "Customer / group name",
@@ -28,6 +35,12 @@
"pinRequired": "PIN Required",
"autoLockOnExit": "Auto-lock on phone lock or app exit",
"changePin": "Change PIN",
"adminPin": "Admin PIN",
"adminPinConfigured": "Configured",
"adminPinNotSet": "Not set",
"setAdminPin": "Set admin PIN",
"enterCurrentAdminPin": "Enter current admin PIN",
"enterNewAdminPin": "Enter new admin PIN",
"appearance": "Appearance",
"language": "Language",
"languageSystem": "System default",
@@ -93,6 +106,10 @@
"enterPinSubtitle": "Youll use this to unlock the app",
"confirmPinSubtitle": "Enter the same PIN again",
"createPin": "Create a PIN",
"enterAdminPin": "Enter admin PIN",
"createAdminPin": "Create admin PIN",
"confirmAdminPin": "Confirm admin PIN",
"adminPinSubtitle": "Youll use this to access admin tools",
"pinsDidNotMatch": "PINs didnt match. Try again.",
"somethingWentWrong": "Something went wrong.",
"incorrectPin": "Incorrect PIN.",
+102
View File
@@ -164,6 +164,48 @@ abstract class AppLocalizations {
/// **'Logout'**
String get logout;
/// No description provided for @admin.
///
/// In en, this message translates to:
/// **'Admin'**
String get admin;
/// No description provided for @adminDescription.
///
/// In en, this message translates to:
/// **'Restricted tools for managing products and importing names.'**
String get adminDescription;
/// No description provided for @adminTools.
///
/// In en, this message translates to:
/// **'Admin tools'**
String get adminTools;
/// No description provided for @importData.
///
/// In en, this message translates to:
/// **'Import'**
String get importData;
/// No description provided for @importNames.
///
/// In en, this message translates to:
/// **'Import names'**
String get importNames;
/// No description provided for @importNamesDescription.
///
/// In en, this message translates to:
/// **'Prepare a list of names to use as tabs later.'**
String get importNamesDescription;
/// No description provided for @importPlaceholder.
///
/// In en, this message translates to:
/// **'Importing names will be available here later.'**
String get importPlaceholder;
/// No description provided for @openOrSelectTab.
///
/// In en, this message translates to:
@@ -260,6 +302,42 @@ abstract class AppLocalizations {
/// **'Change PIN'**
String get changePin;
/// No description provided for @adminPin.
///
/// In en, this message translates to:
/// **'Admin PIN'**
String get adminPin;
/// No description provided for @adminPinConfigured.
///
/// In en, this message translates to:
/// **'Configured'**
String get adminPinConfigured;
/// No description provided for @adminPinNotSet.
///
/// In en, this message translates to:
/// **'Not set'**
String get adminPinNotSet;
/// No description provided for @setAdminPin.
///
/// In en, this message translates to:
/// **'Set admin PIN'**
String get setAdminPin;
/// No description provided for @enterCurrentAdminPin.
///
/// In en, this message translates to:
/// **'Enter current admin PIN'**
String get enterCurrentAdminPin;
/// No description provided for @enterNewAdminPin.
///
/// In en, this message translates to:
/// **'Enter new admin PIN'**
String get enterNewAdminPin;
/// No description provided for @appearance.
///
/// In en, this message translates to:
@@ -620,6 +698,30 @@ abstract class AppLocalizations {
/// **'Create a PIN'**
String get createPin;
/// No description provided for @enterAdminPin.
///
/// In en, this message translates to:
/// **'Enter admin PIN'**
String get enterAdminPin;
/// No description provided for @createAdminPin.
///
/// In en, this message translates to:
/// **'Create admin PIN'**
String get createAdminPin;
/// No description provided for @confirmAdminPin.
///
/// In en, this message translates to:
/// **'Confirm admin PIN'**
String get confirmAdminPin;
/// No description provided for @adminPinSubtitle.
///
/// In en, this message translates to:
/// **'Youll use this to access admin tools'**
String get adminPinSubtitle;
/// No description provided for @pinsDidNotMatch.
///
/// In en, this message translates to:
+54
View File
@@ -41,6 +41,30 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get logout => 'Logout';
@override
String get admin => 'Admin';
@override
String get adminDescription =>
'Restricted tools for managing products and importing names.';
@override
String get adminTools => 'Admin tools';
@override
String get importData => 'Import';
@override
String get importNames => 'Import names';
@override
String get importNamesDescription =>
'Prepare a list of names to use as tabs later.';
@override
String get importPlaceholder =>
'Importing names will be available here later.';
@override
String get openOrSelectTab => 'Open or select a tab first.';
@@ -91,6 +115,24 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get changePin => 'Change PIN';
@override
String get adminPin => 'Admin PIN';
@override
String get adminPinConfigured => 'Configured';
@override
String get adminPinNotSet => 'Not set';
@override
String get setAdminPin => 'Set admin PIN';
@override
String get enterCurrentAdminPin => 'Enter current admin PIN';
@override
String get enterNewAdminPin => 'Enter new admin PIN';
@override
String get appearance => 'Appearance';
@@ -295,6 +337,18 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get createPin => 'Create a PIN';
@override
String get enterAdminPin => 'Enter admin PIN';
@override
String get createAdminPin => 'Create admin PIN';
@override
String get confirmAdminPin => 'Confirm admin PIN';
@override
String get adminPinSubtitle => 'Youll use this to access admin tools';
@override
String get pinsDidNotMatch => 'PINs didnt match. Try again.';
+53
View File
@@ -41,6 +41,29 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get logout => 'Uitloggen';
@override
String get admin => 'Beheer';
@override
String get adminDescription =>
'Beveiligde tools voor het beheren van producten en importeren van namen.';
@override
String get adminTools => 'Beheertools';
@override
String get importData => 'Importeren';
@override
String get importNames => 'Namen importeren';
@override
String get importNamesDescription =>
'Bereid een lijst met namen voor om later als poefs te gebruiken.';
@override
String get importPlaceholder => 'Namen importeren is hier later beschikbaar.';
@override
String get openOrSelectTab => 'Open of selecteer eerst een poef.';
@@ -92,6 +115,24 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get changePin => 'PIN wijzigen';
@override
String get adminPin => 'Beheer-PIN';
@override
String get adminPinConfigured => 'Ingesteld';
@override
String get adminPinNotSet => 'Niet ingesteld';
@override
String get setAdminPin => 'Beheer-PIN instellen';
@override
String get enterCurrentAdminPin => 'Huidige beheer-PIN invoeren';
@override
String get enterNewAdminPin => 'Nieuwe beheer-PIN invoeren';
@override
String get appearance => 'Uiterlijk';
@@ -296,6 +337,18 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get createPin => 'PIN aanmaken';
@override
String get enterAdminPin => 'Beheer-PIN invoeren';
@override
String get createAdminPin => 'Beheer-PIN aanmaken';
@override
String get confirmAdminPin => 'Beheer-PIN bevestigen';
@override
String get adminPinSubtitle => 'Je gebruikt dit om beheertools te openen';
@override
String get pinsDidNotMatch =>
'PINs kwamen niet overeen. Probeer het opnieuw.';
+17
View File
@@ -11,6 +11,13 @@
"refresh": "Vernieuwen",
"settings": "Instellingen",
"logout": "Uitloggen",
"admin": "Beheer",
"adminDescription": "Beveiligde tools voor het beheren van producten en importeren van namen.",
"adminTools": "Beheertools",
"importData": "Importeren",
"importNames": "Namen importeren",
"importNamesDescription": "Bereid een lijst met namen voor om later als poefs te gebruiken.",
"importPlaceholder": "Namen importeren is hier later beschikbaar.",
"openOrSelectTab": "Open of selecteer eerst een poef.",
"openNewTab": "Nieuw poef openen",
"customerGroupName": "Naam klant / groep",
@@ -28,6 +35,12 @@
"pinRequired": "PIN vereist",
"autoLockOnExit": "Automatisch vergrendelen bij telefoonslot of afsluiten",
"changePin": "PIN wijzigen",
"adminPin": "Beheer-PIN",
"adminPinConfigured": "Ingesteld",
"adminPinNotSet": "Niet ingesteld",
"setAdminPin": "Beheer-PIN instellen",
"enterCurrentAdminPin": "Huidige beheer-PIN invoeren",
"enterNewAdminPin": "Nieuwe beheer-PIN invoeren",
"appearance": "Uiterlijk",
"language": "Taal",
"languageSystem": "Systeemstandaard",
@@ -93,6 +106,10 @@
"enterPinSubtitle": "Je gebruikt dit om de app te ontgrendelen",
"confirmPinSubtitle": "Voer dezelfde PIN opnieuw in",
"createPin": "PIN aanmaken",
"enterAdminPin": "Beheer-PIN invoeren",
"createAdminPin": "Beheer-PIN aanmaken",
"confirmAdminPin": "Beheer-PIN bevestigen",
"adminPinSubtitle": "Je gebruikt dit om beheertools te openen",
"pinsDidNotMatch": "PINs kwamen niet overeen. Probeer het opnieuw.",
"somethingWentWrong": "Er is iets misgegaan.",
"incorrectPin": "Onjuiste PIN.",