Update: 2026-05-08 13:52:23
This commit is contained in:
@@ -106,7 +106,12 @@ class InvoicesController extends GetxController {
|
|||||||
isLoading.value = true;
|
isLoading.value = true;
|
||||||
final res = await DioClient().client.get('invoices');
|
final res = await DioClient().client.get('invoices');
|
||||||
if (res.data['success'] == true && res.data['data'] != null) {
|
if (res.data['success'] == true && res.data['data'] != null) {
|
||||||
invoices.value = List<Map<String, dynamic>>.from(res.data['data']);
|
final rawData = res.data['data'];
|
||||||
|
if (rawData is Map && rawData.containsKey('items')) {
|
||||||
|
invoices.value = List<Map<String, dynamic>>.from(rawData['items']);
|
||||||
|
} else if (rawData is List) {
|
||||||
|
invoices.value = List<Map<String, dynamic>>.from(rawData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
AppLogger.error('Failed to load invoices', e);
|
AppLogger.error('Failed to load invoices', e);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import '../../../app/routes/app_pages.dart';
|
|||||||
import '../../../core/utils/app_snackbar.dart';
|
import '../../../core/utils/app_snackbar.dart';
|
||||||
import '../../../core/services/shorebird_update_service.dart';
|
import '../../../core/services/shorebird_update_service.dart';
|
||||||
import '../../../core/services/device_security_service.dart';
|
import '../../../core/services/device_security_service.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class SettingsView extends GetView<SettingsController> {
|
class SettingsView extends GetView<SettingsController> {
|
||||||
const SettingsView({super.key});
|
const SettingsView({super.key});
|
||||||
@@ -175,6 +176,7 @@ class SettingsView extends GetView<SettingsController> {
|
|||||||
title: 'الدعم الفني',
|
title: 'الدعم الفني',
|
||||||
trailing: 'support@musadaq.jo',
|
trailing: 'support@musadaq.jo',
|
||||||
isDark: isDark,
|
isDark: isDark,
|
||||||
|
onTap: () => launchUrl(Uri.parse('mailto:support@musadaq.jo')),
|
||||||
),
|
),
|
||||||
const Divider(height: 1),
|
const Divider(height: 1),
|
||||||
_buildInfoTile(
|
_buildInfoTile(
|
||||||
@@ -182,7 +184,7 @@ class SettingsView extends GetView<SettingsController> {
|
|||||||
title: 'سياسة الخصوصية',
|
title: 'سياسة الخصوصية',
|
||||||
trailing: '→',
|
trailing: '→',
|
||||||
isDark: isDark,
|
isDark: isDark,
|
||||||
onTap: () {},
|
onTap: () => launchUrl(Uri.parse('https://musadaq.intaleqapp.com/privacy.php')),
|
||||||
),
|
),
|
||||||
const Divider(height: 1),
|
const Divider(height: 1),
|
||||||
_buildInfoTile(
|
_buildInfoTile(
|
||||||
@@ -191,6 +193,7 @@ class SettingsView extends GetView<SettingsController> {
|
|||||||
trailing: 'فحص →',
|
trailing: 'فحص →',
|
||||||
isDark: isDark,
|
isDark: isDark,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
AppSnackbar.showInfo('جاري الفحص', 'جاري البحث عن تحديثات جديدة عبر Shorebird...');
|
||||||
final shorebird = Get.find<ShorebirdUpdateService>();
|
final shorebird = Get.find<ShorebirdUpdateService>();
|
||||||
shorebird.manualCheckForUpdate();
|
shorebird.manualCheckForUpdate();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,7 +21,12 @@ class UsersManagementController extends GetxController {
|
|||||||
isLoading.value = true;
|
isLoading.value = true;
|
||||||
final response = await _dio.get('users');
|
final response = await _dio.get('users');
|
||||||
if (response.data['success'] == true) {
|
if (response.data['success'] == true) {
|
||||||
users.value = List<Map<String, dynamic>>.from(response.data['data']);
|
final rawData = response.data['data'];
|
||||||
|
if (rawData is Map && rawData.containsKey('items')) {
|
||||||
|
users.value = List<Map<String, dynamic>>.from(rawData['items']);
|
||||||
|
} else if (rawData is List) {
|
||||||
|
users.value = List<Map<String, dynamic>>.from(rawData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
AppLogger.error('Failed to fetch users', e);
|
AppLogger.error('Failed to fetch users', e);
|
||||||
|
|||||||
Reference in New Issue
Block a user