Skip to content

Instantly share code, notes, and snippets.

@anaselli
Last active April 25, 2016 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anaselli/cff6f566fcc45c5fd2203d0c4ae0e1ed to your computer and use it in GitHub Desktop.
Save anaselli/cff6f566fcc45c5fd2203d0c4ae0e1ed to your computer and use it in GitHub Desktop.
patches to manage yitems comparison in users/groups tab
diff --git a/lib/ManaTools/Module/Users.pm b/lib/ManaTools/Module/Users.pm
index 522b0d5..19509b3 100644
--- a/lib/ManaTools/Module/Users.pm
+++ b/lib/ManaTools/Module/Users.pm
@@ -205,6 +205,13 @@ sub _config_fileBuilder {
return $confDir . "/manauser";
}
+# users/groups tab
+has 'groups_users_tab' => (
+ is => 'rw',
+ isa => 'HashRef',
+ init_arg => undef,
+ default => sub {return {};},
+);
#=============================================================
@@ -1435,14 +1442,14 @@ sub _getUserInfo {
sub _getGroupInfo {
my $self = shift;
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label ne $self->loc->N("Groups") ) {
- return undef;
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab != $self->groups_users_tab()->{groups}) {
+ return ();
}
my $item = $self->get_widget('table')->selectedItem();
if (! $item) {
- return undef;
+ return ();
}
my %groupData;
@@ -2038,7 +2045,7 @@ sub _editUserDialog {
my $dlg = $factory->createPopupDialog();
my $layout = $factory->createVBox($dlg);
- my %tabs;
+ my %tabs = ();
if ($optional->hasDumbTab()) {
my $hbox = $factory->createHBox($layout);
my $align = $factory->createHCenter($hbox);
@@ -2089,28 +2096,28 @@ sub _editUserDialog {
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
my $item = $event->item();
- if ($item->label() eq $tabs{user_data}->label()) {
+ if ($item == $tabs{user_data}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userDataTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{user_data});
}
- elsif ($item->label() eq $tabs{account_info}->label()) {
+ elsif ($item == $tabs{account_info}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userAccountInfoTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{account_info});
}
- elsif ($item->label() eq $tabs{password_info}->label()) {
+ elsif ($item == $tabs{password_info}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userPasswordInfoTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{password_info});
}
- elsif ($item->label() eq $tabs{groups}->label()) {
+ elsif ($item == $tabs{groups}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userGroupsTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
@@ -2232,7 +2239,7 @@ sub _editGroupDialog {
my $okButton = $factory->createPushButton($hbox, $self->loc->N("&Ok"));
my %groupData = $self->_getGroupInfo();
- # groupData here should be tested because it could be undef
+ # groupData here should be tested because it could be an empty hash
# %groupData: selected group info as:
# $groupname: group name
@@ -2254,14 +2261,14 @@ sub _editGroupDialog {
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
my $item = $event->item();
- if ($item->label() eq $tabs{group_data}->label()) {
+ if ($item == $tabs{group_data}) {
%groupData = $self->_storeDataFromGroupEditPreviousTab(%groupData);
my %edit_tab = $self->_groupDataTabWidget($dlg, $tabs{replace_pnt}, %groupData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%edit_tab);
$self->set_edit_tab_widget( edit_tab_label => $groupEditLabel{group_data});
}
- elsif ($item->label() eq $tabs{group_users}->label()) {
+ elsif ($item == $tabs{group_users}) {
%groupData = $self->_storeDataFromGroupEditPreviousTab(%groupData);
my %edit_tab = $self->_groupUsersTabWidget($dlg, $tabs{replace_pnt}, %groupData );
$self->edit_tab_widgets( {} );
@@ -2299,9 +2306,8 @@ sub _editGroupDialog {
sub _editUserOrGroup {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_editUserDialog();
}
else {
@@ -2314,9 +2320,8 @@ sub _editUserOrGroup {
sub _deleteUserOrGroup {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_deleteUserDialog();
$self->_refresh();
}
@@ -2330,9 +2335,8 @@ sub _deleteUserOrGroup {
sub _refresh {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_refreshUsers();
}
else {
@@ -2568,6 +2572,8 @@ sub _manageUsersDialog {
$self->get_widget('table')->DISOWN();
}
+ $self->groups_users_tab(\%tabs);
+
$self->_refreshActions();
# main loop
@@ -2581,35 +2587,34 @@ sub _manageUsersDialog {
}
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
- my $item = $event->item();
- my $menuLabel = $item->label();
- if ($menuLabel eq $fileMenu{ quit }->label()) {
+ my $menuItem = $event->item();
+ if ($menuItem == $fileMenu{ quit }) {
last;
}
- elsif ($menuLabel eq $helpMenu{about}->label()) {
+ elsif ($menuItem == $helpMenu{about}) {
$self->_showAboutDialog();
}
- elsif ($menuLabel eq $self->get_action_menu('add_user')->label()) {
+ elsif ($menuItem == $self->get_action_menu('add_user')) {
$self->addUserDialog();
$self->_refresh();
}
- elsif ($menuLabel eq $self->get_action_menu('add_group')->label()) {
+ elsif ($menuItem == $self->get_action_menu('add_group')) {
$self->_addGroupDialog();
$self->_refresh();
}
- elsif ($menuLabel eq $self->get_action_menu('del')->label()) {
+ elsif ($menuItem == $self->get_action_menu('del')) {
$self->_deleteUserOrGroup();
}
- elsif ($menuLabel eq $self->get_action_menu('edit')->label()) {
+ elsif ($menuItem == $self->get_action_menu('edit')) {
$self->_editUserOrGroup();
}
- elsif ($self->get_widget('tabs') && $menuLabel eq $tabs{groups}->label()) {
+ elsif ($self->get_widget('tabs') && $menuItem == $tabs{groups}) {
$self->_createGroupTable();
}
- elsif ($self->get_widget('tabs') && $menuLabel eq $tabs{users}->label()) {
+ elsif ($self->get_widget('tabs') && $menuItem == $tabs{users}) {
$self->_createUserTable();
}
- elsif ($menuLabel eq $fileMenu{refresh}->label()) {
+ elsif ($menuItem == $fileMenu{refresh}) {
$self->_refresh();
}
}
--- a/lib/ManaTools/Module/Users.pm.orig 2015-03-24 19:33:02.000000000 +0100
+++ b/lib/ManaTools/Module/Users.pm 2016-04-25 20:46:58.690390288 +0200
@@ -176,6 +176,13 @@ sub _localeInitialize {
# TODO if we want to give the opportunity to test locally add dir_name => 'path'
}
+# users/groups tab
+has 'groups_users_tab' => (
+ is => 'rw',
+ isa => 'HashRef',
+ init_arg => undef,
+ default => sub {return {};},
+);
#=============================================================
@@ -1380,14 +1387,14 @@ sub _getUserInfo {
sub _getGroupInfo {
my $self = shift;
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label ne $self->loc->N("Groups") ) {
- return undef;
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab != $self->groups_users_tab()->{groups}) {
+ return ();
}
my $item = $self->get_widget('table')->selectedItem();
if (! $item) {
- return undef;
+ return ();
}
my %groupData;
@@ -1983,7 +1990,7 @@ sub _editUserDialog {
my $dlg = $factory->createPopupDialog();
my $layout = $factory->createVBox($dlg);
- my %tabs;
+ my %tabs = ();
if ($optional->hasDumbTab()) {
my $hbox = $factory->createHBox($layout);
my $align = $factory->createHCenter($hbox);
@@ -2034,28 +2041,28 @@ sub _editUserDialog {
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
my $item = $event->item();
- if ($item->label() eq $tabs{user_data}->label()) {
+ if ($item == $tabs{user_data}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userDataTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{user_data});
}
- elsif ($item->label() eq $tabs{account_info}->label()) {
+ elsif ($item == $tabs{account_info}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userAccountInfoTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{account_info});
}
- elsif ($item->label() eq $tabs{password_info}->label()) {
+ elsif ($item == $tabs{password_info}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userPasswordInfoTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%{$edit_tab});
$self->set_edit_tab_widget( edit_tab_label => $userEditLabel{password_info});
}
- elsif ($item->label() eq $tabs{groups}->label()) {
+ elsif ($item == $tabs{groups}) {
$self->_storeDataFromUserEditPreviousTab($userData);
my $edit_tab = $self->_userGroupsTabWidget($dlg, $tabs{replace_pnt}, $userData );
$self->edit_tab_widgets( {} );
@@ -2177,7 +2184,7 @@ sub _editGroupDialog {
my $okButton = $factory->createPushButton($hbox, $self->loc->N("Ok"));
my %groupData = $self->_getGroupInfo();
- # groupData here should be tested because it could be undef
+ # groupData here should be tested because it could be an empty hash
# %groupData: selected group info as:
# $groupname: group name
@@ -2199,14 +2206,14 @@ sub _editGroupDialog {
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
my $item = $event->item();
- if ($item->label() eq $tabs{group_data}->label()) {
+ if ($item == $tabs{group_data}) {
%groupData = $self->_storeDataFromGroupEditPreviousTab(%groupData);
my %edit_tab = $self->_groupDataTabWidget($dlg, $tabs{replace_pnt}, %groupData );
$self->edit_tab_widgets( {} );
$self->set_edit_tab_widget(%edit_tab);
$self->set_edit_tab_widget( edit_tab_label => $groupEditLabel{group_data});
}
- elsif ($item->label() eq $tabs{group_users}->label()) {
+ elsif ($item == $tabs{group_users}) {
%groupData = $self->_storeDataFromGroupEditPreviousTab(%groupData);
my %edit_tab = $self->_groupUsersTabWidget($dlg, $tabs{replace_pnt}, %groupData );
$self->edit_tab_widgets( {} );
@@ -2244,9 +2251,8 @@ sub _editGroupDialog {
sub _editUserOrGroup {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_editUserDialog();
}
else {
@@ -2259,9 +2265,8 @@ sub _editUserOrGroup {
sub _deleteUserOrGroup {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_deleteUserDialog();
$self->_refresh();
}
@@ -2275,9 +2280,8 @@ sub _deleteUserOrGroup {
sub _refresh {
my $self = shift;
- # TODO item management avoid label if possible
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label eq $self->loc->N("Users") ) {
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab == $self->groups_users_tab()->{users}) {
$self->_refreshUsers();
}
else {
@@ -2493,6 +2497,8 @@ sub _manageUsersDialog {
$self->get_widget('table')->DISOWN();
}
+ $self->groups_users_tab(\%tabs);
+
$self->_refreshActions();
# main loop
@@ -2506,35 +2512,34 @@ sub _manageUsersDialog {
}
elsif ($eventType == $yui::YEvent::MenuEvent) {
### MENU ###
- my $item = $event->item();
- my $menuLabel = $item->label();
- if ($menuLabel eq $fileMenu{ quit }->label()) {
+ my $menuItem = $event->item();
+ if ($menuItem == $fileMenu{ quit }) {
last;
}
- elsif ($menuLabel eq $helpMenu{about}->label()) {
+ elsif ($menuItem == $helpMenu{about}) {
$self->_showAboutDialog();
}
- elsif ($menuLabel eq $self->get_action_menu('add_user')->label()) {
+ elsif ($menuItem == $self->get_action_menu('add_user')) {
$self->addUserDialog();
$self->_refresh();
}
- elsif ($menuLabel eq $self->get_action_menu('add_group')->label()) {
+ elsif ($menuItem == $self->get_action_menu('add_group')) {
$self->_addGroupDialog();
$self->_refresh();
}
- elsif ($menuLabel eq $self->get_action_menu('del')->label()) {
+ elsif ($menuItem == $self->get_action_menu('del')) {
$self->_deleteUserOrGroup();
}
- elsif ($menuLabel eq $self->get_action_menu('edit')->label()) {
+ elsif ($menuItem == $self->get_action_menu('edit')) {
$self->_editUserOrGroup();
}
- elsif ($self->get_widget('tabs') && $menuLabel eq $tabs{groups}->label()) {
+ elsif ($self->get_widget('tabs') && $menuItem == $tabs{groups}) {
$self->_createGroupTable();
}
- elsif ($self->get_widget('tabs') && $menuLabel eq $tabs{users}->label()) {
+ elsif ($self->get_widget('tabs') && $menuItem == $tabs{users}) {
$self->_createUserTable();
}
- elsif ($menuLabel eq $fileMenu{refresh}->label()) {
+ elsif ($menuItem == $fileMenu{refresh}) {
$self->_refresh();
}
}
--- a/lib/ManaTools/Module/Users.pm.orig 2016-04-25 21:37:49.289068677 +0200
+++ b/lib/ManaTools/Module/Users.pm 2016-04-25 21:39:17.226418227 +0200
@@ -1299,14 +1299,14 @@ sub _refreshGroups {
sub _getUserInfo {
my $self = shift;
- my $label = $self->_skipShortcut($self->get_widget('tabs')->selectedItem()->label());
- if ($label ne $self->loc->N("Users") ) {
- return undef;
+ my $selectedTab = $self->get_widget('tabs')->selectedItem();
+ if ($selectedTab != $self->groups_users_tab()->{users}) {
+ return ();
}
my $item = $self->get_widget('table')->selectedItem();
if (! $item) {
- return undef;
+ return ();
}
my %userData;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment