diff --git a/lib/features/masters/group_permission/presentation/pages/group_permission_page.dart b/lib/features/masters/group_permission/presentation/pages/group_permission_page.dart index 1e01f41..6be5912 100644 --- a/lib/features/masters/group_permission/presentation/pages/group_permission_page.dart +++ b/lib/features/masters/group_permission/presentation/pages/group_permission_page.dart @@ -20,6 +20,18 @@ import '../../domain/entities/group_permission.dart'; import '../../domain/repositories/group_permission_repository.dart'; import '../controllers/group_permission_controller.dart'; +String _menuDisplayLabelFromPath(String? path, String fallback) { + if (path != null && path.isNotEmpty) { + final normalized = path.toLowerCase(); + for (final page in allAppPages) { + if (page.path.toLowerCase() == normalized) { + return page.label; + } + } + } + return fallback; +} + /// 그룹-메뉴 권한 설정 페이지. 기능 플래그에 따라 사양/실제 화면을 전환한다. class GroupPermissionPage extends StatelessWidget { const GroupPermissionPage({super.key}); @@ -296,7 +308,7 @@ class _GroupPermissionEnabledPageState orElse: () => MenuItem(id: value, menuCode: '', menuName: ''), ); - return Text(menuItem.menuName); + return Text(_menuDisplayLabel(menuItem)); }, onChanged: (value) { _controller.updateMenuFilter(value); @@ -306,7 +318,7 @@ class _GroupPermissionEnabledPageState ..._controller.menus.map( (menuItem) => ShadOption( value: menuItem.id, - child: Text(menuItem.menuName), + child: Text(_menuDisplayLabel(menuItem)), ), ), ], @@ -419,6 +431,10 @@ class _GroupPermissionEnabledPageState } } + String _menuDisplayLabel(MenuItem menu) { + return _menuDisplayLabelFromPath(menu.path, menu.menuName); + } + Future _openPermissionForm( BuildContext context, { GroupPermission? permission, @@ -840,7 +856,10 @@ class _PermissionTable extends StatelessWidget { final cells = [ permission.id?.toString() ?? '-', permission.group.groupName, - permission.menu.menuName, + _menuDisplayLabelFromPath( + permission.menu.path, + permission.menu.menuName, + ), permission.menu.path ?? '-', permission.canCreate ? 'Y' : '-', permission.canRead ? 'Y' : '-', @@ -858,17 +877,15 @@ class _PermissionTable extends StatelessWidget { ShadTableCell( child: Align( alignment: Alignment.centerRight, - child: Wrap( - spacing: 8, - runSpacing: 6, - alignment: WrapAlignment.end, - runAlignment: WrapAlignment.end, + child: Row( + mainAxisSize: MainAxisSize.min, children: [ ShadButton.ghost( size: ShadButtonSize.sm, onPressed: onEdit == null ? null : () => onEdit!(permission), child: const Icon(LucideIcons.pencil, size: 16), ), + const SizedBox(width: 8), permission.isDeleted ? ShadButton.ghost( size: ShadButtonSize.sm, @@ -906,7 +923,7 @@ class _PermissionTable extends StatelessWidget { case 9: return const FixedTableSpanExtent(220); case 11: - return const FixedTableSpanExtent(160); + return const FixedTableSpanExtent(200); default: return const FixedTableSpanExtent(110); } diff --git a/lib/features/masters/user/presentation/pages/user_page.dart b/lib/features/masters/user/presentation/pages/user_page.dart index d315cab..f6b7278 100644 --- a/lib/features/masters/user/presentation/pages/user_page.dart +++ b/lib/features/masters/user/presentation/pages/user_page.dart @@ -965,8 +965,8 @@ class _UserTable extends StatelessWidget { ShadTableCell( child: Align( alignment: Alignment.centerRight, - child: Wrap( - spacing: 8, + child: Row( + mainAxisSize: MainAxisSize.min, children: [ ShadButton.ghost( size: ShadButtonSize.sm, @@ -975,11 +975,13 @@ class _UserTable extends StatelessWidget { : () => onResetPassword!(user), child: const Icon(LucideIcons.refreshCcw, size: 16), ), + const SizedBox(width: 8), ShadButton.ghost( size: ShadButtonSize.sm, onPressed: onEdit == null ? null : () => onEdit!(user), child: const Icon(LucideIcons.pencil, size: 16), ), + const SizedBox(width: 8), user.isDeleted ? ShadButton.ghost( size: ShadButtonSize.sm, @@ -1008,7 +1010,7 @@ class _UserTable extends StatelessWidget { header: header, children: rows, columnSpanExtent: (index) => index == 10 - ? const FixedTableSpanExtent(160) + ? const FixedTableSpanExtent(200) : const FixedTableSpanExtent(140), ), );