Token management, Factory reset, UX/UI Improvements

This commit is contained in:
2026-02-22 19:35:20 +07:00
parent 639a8417e6
commit 36953e35df
30 changed files with 1601 additions and 197 deletions
+46 -4
View File
@@ -29,13 +29,31 @@
"deletion": "Deletion",
"deviceDeleteConfirm": "Are you sure you want to delete this device forever?",
"reconfigureNetwork": "Reconfigure Network",
"factoryReset": "Factory Reset",
"resetConfirm": "Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.",
"reset": "Reset",
"status": "Status: ",
"online": "Online",
"offline": "Offline",
"refresh": "Refresh",
"cannotBeEmpty": "{field} cannot be empty!",
"@cannotBeEmpty": {
"placeholders": {
"field": {
"type": "String",
"example": "SSID"
}
}
},
"tokenForbidden": "Token cannot be requested. Please manually enter the token or physically factory reset the device.",
"requestFailedWithCode": "Request failed with code {code}",
"@requestFailedWithCode": {
"placeholders": {
"code": {
"type": "int",
"example": "400"
}
}
},
"additionalActions": "Additional Actions",
"dangerousActions": "Dangerous Actions",
"lastKnownIP": "Last Known IP: {ip}",
"@lastKnownIP": {
"placeholders": {
@@ -54,5 +72,29 @@
}
}
},
"activityLogs": "Activity Logs"
"activityLogs": "Activity Logs",
"factoryReset": "Factory Reset",
"resetConfirm": "Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.",
"reset": "Reset",
"resetSuccessful": "Reset Successful",
"resetFailedCode": "Reset failed with code {code}",
"@resetFailedCode": {
"placeholders": {
"code": {
"type": "int",
"example": "400"
}
}
},
"token": "Token",
"manageToken": "Manage Token",
"tokenNotFound": "Token not found. Please enter one or do a manual factory reset.",
"viewTokenWarn": "Tokens are sensitive. Please do not share this token publicly.",
"showToken": "Show Token",
"copyToken": "Copy Token",
"copied": "Copied",
"saveToken": "Save Token",
"saved": "Saved!"
}
+114 -18
View File
@@ -260,24 +260,6 @@ abstract class AppLocalizations {
/// **'Reconfigure Network'**
String get reconfigureNetwork;
/// No description provided for @factoryReset.
///
/// In en, this message translates to:
/// **'Factory Reset'**
String get factoryReset;
/// No description provided for @resetConfirm.
///
/// In en, this message translates to:
/// **'Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.'**
String get resetConfirm;
/// No description provided for @reset.
///
/// In en, this message translates to:
/// **'Reset'**
String get reset;
/// No description provided for @status.
///
/// In en, this message translates to:
@@ -302,6 +284,36 @@ abstract class AppLocalizations {
/// **'Refresh'**
String get refresh;
/// No description provided for @cannotBeEmpty.
///
/// In en, this message translates to:
/// **'{field} cannot be empty!'**
String cannotBeEmpty(String field);
/// No description provided for @tokenForbidden.
///
/// In en, this message translates to:
/// **'Token cannot be requested. Please manually enter the token or physically factory reset the device.'**
String get tokenForbidden;
/// No description provided for @requestFailedWithCode.
///
/// In en, this message translates to:
/// **'Request failed with code {code}'**
String requestFailedWithCode(int code);
/// No description provided for @additionalActions.
///
/// In en, this message translates to:
/// **'Additional Actions'**
String get additionalActions;
/// No description provided for @dangerousActions.
///
/// In en, this message translates to:
/// **'Dangerous Actions'**
String get dangerousActions;
/// No description provided for @lastKnownIP.
///
/// In en, this message translates to:
@@ -319,6 +331,90 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Activity Logs'**
String get activityLogs;
/// No description provided for @factoryReset.
///
/// In en, this message translates to:
/// **'Factory Reset'**
String get factoryReset;
/// No description provided for @resetConfirm.
///
/// In en, this message translates to:
/// **'Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.'**
String get resetConfirm;
/// No description provided for @reset.
///
/// In en, this message translates to:
/// **'Reset'**
String get reset;
/// No description provided for @resetSuccessful.
///
/// In en, this message translates to:
/// **'Reset Successful'**
String get resetSuccessful;
/// No description provided for @resetFailedCode.
///
/// In en, this message translates to:
/// **'Reset failed with code {code}'**
String resetFailedCode(int code);
/// No description provided for @token.
///
/// In en, this message translates to:
/// **'Token'**
String get token;
/// No description provided for @manageToken.
///
/// In en, this message translates to:
/// **'Manage Token'**
String get manageToken;
/// No description provided for @tokenNotFound.
///
/// In en, this message translates to:
/// **'Token not found. Please enter one or do a manual factory reset.'**
String get tokenNotFound;
/// No description provided for @viewTokenWarn.
///
/// In en, this message translates to:
/// **'Tokens are sensitive. Please do not share this token publicly.'**
String get viewTokenWarn;
/// No description provided for @showToken.
///
/// In en, this message translates to:
/// **'Show Token'**
String get showToken;
/// No description provided for @copyToken.
///
/// In en, this message translates to:
/// **'Copy Token'**
String get copyToken;
/// No description provided for @copied.
///
/// In en, this message translates to:
/// **'Copied'**
String get copied;
/// No description provided for @saveToken.
///
/// In en, this message translates to:
/// **'Save Token'**
String get saveToken;
/// No description provided for @saved.
///
/// In en, this message translates to:
/// **'Saved!'**
String get saved;
}
class _AppLocalizationsDelegate
+67 -10
View File
@@ -96,16 +96,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get reconfigureNetwork => 'Reconfigure Network';
@override
String get factoryReset => 'Factory Reset';
@override
String get resetConfirm =>
'Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.';
@override
String get reset => 'Reset';
@override
String get status => 'Status: ';
@@ -118,6 +108,26 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get refresh => 'Refresh';
@override
String cannotBeEmpty(String field) {
return '$field cannot be empty!';
}
@override
String get tokenForbidden =>
'Token cannot be requested. Please manually enter the token or physically factory reset the device.';
@override
String requestFailedWithCode(int code) {
return 'Request failed with code $code';
}
@override
String get additionalActions => 'Additional Actions';
@override
String get dangerousActions => 'Dangerous Actions';
@override
String lastKnownIP(String ip) {
return 'Last Known IP: $ip';
@@ -130,4 +140,51 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get activityLogs => 'Activity Logs';
@override
String get factoryReset => 'Factory Reset';
@override
String get resetConfirm =>
'Are you sure you want to proceed with the factory reset? Your data will be lost and unrecoverable, and you must setup the device again.';
@override
String get reset => 'Reset';
@override
String get resetSuccessful => 'Reset Successful';
@override
String resetFailedCode(int code) {
return 'Reset failed with code $code';
}
@override
String get token => 'Token';
@override
String get manageToken => 'Manage Token';
@override
String get tokenNotFound =>
'Token not found. Please enter one or do a manual factory reset.';
@override
String get viewTokenWarn =>
'Tokens are sensitive. Please do not share this token publicly.';
@override
String get showToken => 'Show Token';
@override
String get copyToken => 'Copy Token';
@override
String get copied => 'Copied';
@override
String get saveToken => 'Save Token';
@override
String get saved => 'Saved!';
}
+67 -10
View File
@@ -95,16 +95,6 @@ class AppLocalizationsTh extends AppLocalizations {
@override
String get reconfigureNetwork => 'ตั้งค่าเครือข่ายใหม่';
@override
String get factoryReset => 'คืนค่าโรงงาน';
@override
String get resetConfirm =>
'คุณแน่ใจหรือไม่ว่าต้องการคืนค่าจากโรงงาน ข้อมูลของคุณจะหายไปและไม่สามารถกู้คืนได้ และคุณจำเป็นต้องตั้งค่าอุปกรณ์ใหม่';
@override
String get reset => 'คืนค่า';
@override
String get status => 'สถานะ: ';
@@ -117,6 +107,26 @@ class AppLocalizationsTh extends AppLocalizations {
@override
String get refresh => 'รีเฟรช';
@override
String cannotBeEmpty(String field) {
return '$field ไม่สามารถเป็นค่าว่างได้!';
}
@override
String get tokenForbidden =>
'ไม่สามารถรับค่าโทเค็นได้ โปรดใส่โทเค็นด้วยตนเองหรือคืนค่าโรงงานอุปกรณ์';
@override
String requestFailedWithCode(int code) {
return 'คำขอล้มเหลวด้วยรหัส $code';
}
@override
String get additionalActions => 'การกระทำเพิ่มเติม';
@override
String get dangerousActions => 'การกระทำอันตราย';
@override
String lastKnownIP(String ip) {
return 'ที่อยู่ IP ที่ทราบล่าสุด: $ip';
@@ -129,4 +139,51 @@ class AppLocalizationsTh extends AppLocalizations {
@override
String get activityLogs => 'รายการกิจกรรม';
@override
String get factoryReset => 'คืนค่าโรงงาน';
@override
String get resetConfirm =>
'คุณแน่ใจหรือไม่ว่าต้องการคืนค่าจากโรงงาน ข้อมูลของคุณจะหายไปและไม่สามารถกู้คืนได้ และคุณจำเป็นต้องตั้งค่าอุปกรณ์ใหม่';
@override
String get reset => 'คืนค่า';
@override
String get resetSuccessful => 'คืนค่าสำเร็จ';
@override
String resetFailedCode(int code) {
return 'การคืนค่าล้มเหลวด้วยรหัส $code';
}
@override
String get token => 'โทเค็น';
@override
String get manageToken => 'จัดการโทเค็น';
@override
String get tokenNotFound =>
'ไม่พบโทเค็น โปรดใส่โทเค็นหรือทำการคืนค่าโรงงานด้วยตนเอง';
@override
String get viewTokenWarn =>
'โทเค็นเป็นข้อมูลละเอียดอ่อน โปรดอย่าเผยแพร่โทเค็นของคุณ';
@override
String get showToken => 'แสดงโทเค็น';
@override
String get copyToken => 'คัดลอกโทเค็น';
@override
String get copied => 'คัดลอกแล้ว';
@override
String get saveToken => 'บันทึกโทเค็น';
@override
String get saved => 'บันทึกแล้ว';
}
+22 -4
View File
@@ -29,14 +29,32 @@
"deletion": "การลบ",
"deviceDeleteConfirm": "คุณแน่ใจหรือไม่ที่จะลบอุปกรณ์นี้อย่างถาวร",
"reconfigureNetwork": "ตั้งค่าเครือข่ายใหม่",
"factoryReset": "คืนค่าโรงงาน",
"resetConfirm": "คุณแน่ใจหรือไม่ว่าต้องการคืนค่าจากโรงงาน ข้อมูลของคุณจะหายไปและไม่สามารถกู้คืนได้ และคุณจำเป็นต้องตั้งค่าอุปกรณ์ใหม่",
"reset": "คืนค่า",
"status": "สถานะ: ",
"online": "ออนไลน์",
"offline": "ออฟไลน์",
"refresh": "รีเฟรช",
"cannotBeEmpty": "{field} ไม่สามารถเป็นค่าว่างได้!",
"tokenForbidden": "ไม่สามารถรับค่าโทเค็นได้ โปรดใส่โทเค็นด้วยตนเองหรือคืนค่าโรงงานอุปกรณ์",
"requestFailedWithCode": "คำขอล้มเหลวด้วยรหัส {code}",
"additionalActions": "การกระทำเพิ่มเติม",
"dangerousActions": "การกระทำอันตราย",
"lastKnownIP": "ที่อยู่ IP ที่ทราบล่าสุด: {ip}",
"routerSsid": "SSID เราเตอร์: {ssid}",
"activityLogs": "รายการกิจกรรม"
"activityLogs": "รายการกิจกรรม",
"factoryReset": "คืนค่าโรงงาน",
"resetConfirm": "คุณแน่ใจหรือไม่ว่าต้องการคืนค่าจากโรงงาน ข้อมูลของคุณจะหายไปและไม่สามารถกู้คืนได้ และคุณจำเป็นต้องตั้งค่าอุปกรณ์ใหม่",
"reset": "คืนค่า",
"resetSuccessful": "คืนค่าสำเร็จ",
"resetFailedCode": "การคืนค่าล้มเหลวด้วยรหัส {code}",
"token": "โทเค็น",
"manageToken": "จัดการโทเค็น",
"tokenNotFound": "ไม่พบโทเค็น โปรดใส่โทเค็นหรือทำการคืนค่าโรงงานด้วยตนเอง",
"viewTokenWarn": "โทเค็นเป็นข้อมูลละเอียดอ่อน โปรดอย่าเผยแพร่โทเค็นของคุณ",
"showToken": "แสดงโทเค็น",
"copyToken": "คัดลอกโทเค็น",
"copied": "คัดลอกแล้ว",
"saveToken": "บันทึกโทเค็น",
"saved": "บันทึกแล้ว"
}