[Rt-commit] rt branch, admin_ui, updated. cc119b84e828c915c596d6b3973e5b01a11c516d
sunnavy at bestpractical.com
sunnavy at bestpractical.com
Wed Jan 20 02:33:00 EST 2010
The branch, admin_ui has been updated
via cc119b84e828c915c596d6b3973e5b01a11c516d (commit)
from 96065b876df022588374967c8edd9a3ffafcf80b (commit)
Summary of changes:
lib/RT/Action/EditUserPrefs.pm | 63 ++++++++++++++++
.../{UserSettings.pm => EditUserPrefsOther.pm} | 79 +++++---------------
2 files changed, 82 insertions(+), 60 deletions(-)
create mode 100644 lib/RT/Action/EditUserPrefs.pm
rename lib/RT/Action/{UserSettings.pm => EditUserPrefsOther.pm} (71%)
- Log -----------------------------------------------------------------
commit cc119b84e828c915c596d6b3973e5b01a11c516d
Author: sunnavy <sunnavy at bestpractical.com>
Date: Wed Jan 20 15:32:50 2010 +0800
EditUserPrefs and subclass EditUserPrefsOther
diff --git a/lib/RT/Action/EditUserPrefs.pm b/lib/RT/Action/EditUserPrefs.pm
new file mode 100644
index 0000000..011bcb5
--- /dev/null
+++ b/lib/RT/Action/EditUserPrefs.pm
@@ -0,0 +1,63 @@
+use strict;
+use warnings;
+
+package RT::Action::EditUserPrefs;
+use base qw/RT::Action Jifty::Action/;
+
+
+sub name {
+ my $self = shift;
+ Jifty->log->error('you need to subclass name');
+ return;
+}
+
+=head2 take_action
+
+=cut
+
+sub take_action {
+ my $self = shift;
+
+ my $user = Jifty->web->current_user->user_object;
+ my $pref = $user->preferences( $self->name ) || {};
+ for my $arg ( $self->argument_names ) {
+ if ( $self->has_argument($arg) ) {
+ if ( $self->argument_value($arg) eq 'use_system_default' ) {
+ delete $pref->{$arg};
+ }
+ else {
+ $pref->{$arg} = $self->argument_value($arg);
+ }
+ }
+ }
+ $user->set_preferences( $self->name, $pref );
+ $self->report_success if not $self->result->failure;
+
+ return 1;
+}
+
+=head2 report_success
+
+=cut
+
+sub report_success {
+ my $self = shift;
+
+ # Your success message here
+ $self->result->message( _('Updated user settings') );
+}
+
+sub default_value {
+ my $self = shift;
+ my $name = shift;
+ my $pref =
+ Jifty->web->current_user->user_object->preferences( $self->name );
+ if ( $pref && exists $pref->{$name} ) {
+ return $pref->{$name};
+ }
+ else {
+ return 'use_system_default';
+ }
+}
+
+1;
diff --git a/lib/RT/Action/UserSettings.pm b/lib/RT/Action/EditUserPrefsOther.pm
similarity index 71%
rename from lib/RT/Action/UserSettings.pm
rename to lib/RT/Action/EditUserPrefsOther.pm
index 23cc233..f45f6d5 100644
--- a/lib/RT/Action/UserSettings.pm
+++ b/lib/RT/Action/EditUserPrefsOther.pm
@@ -1,17 +1,12 @@
use strict;
use warnings;
-package RT::Action::UserSettings;
-use base qw/RT::Action Jifty::Action/;
-use UNIVERSAL::require;
-use Scalar::Util qw/looks_like_number/;
-use Regexp::Common qw/Email::Address/;
+package RT::Action::EditUserPrefsOther;
+use base qw/RT::Action::EditUserPrefs/;
-# XXX system default's option is
-# {
-# display => _('use system default'),
-# value => 'use_system_default'
-# }
+sub name {
+ return RT->system;
+}
use Jifty::Param::Schema;
use Jifty::Action schema {
@@ -38,7 +33,7 @@ use Jifty::Action schema {
return $ret;
},
default is defer {
- RT::Action::UserSettings->default_value('default_queue');
+ __PACKAGE__->default_value('default_queue');
};
param 'username_format' =>
label is 'username format',
@@ -49,7 +44,7 @@ use Jifty::Action schema {
{ display => _('Name and email address'), value => 'verbose' },
],
default is defer {
- RT::Action::UserSettings->default_value('username_format');
+ __PACKAGE__->default_value('username_format');
};
param 'web_default_stylesheet' =>
label is 'theme',
@@ -59,7 +54,7 @@ use Jifty::Action schema {
map {{ display => _($_), value => $_ }} qw/web2/
],
default is defer {
- RT::Action::UserSettings->default_value('web_default_stylesheet');
+ __PACKAGE__->default_value('web_default_stylesheet');
};
param 'message_box_rich_text' =>
label is 'WYSIWYG message composer',
@@ -69,22 +64,22 @@ use Jifty::Action schema {
map { { display => _($_), value => $_ } } 'yes', 'no',
],
default is defer {
- RT::Action::UserSettings->default_value('message_box_rich_text');
+ __PACKAGE__->default_value('message_box_rich_text');
};
param 'message_box_rich_text_height' =>
label is 'WYSIWYG composer height',
default is defer {
- RT::Action::UserSettings->default_value('message_box_rich_text_height');
+ __PACKAGE__->default_value('message_box_rich_text_height');
};
param 'message_box_width' =>
label is 'message box width',
default is defer {
- RT::Action::UserSettings->default_value('message_box_width');
+ __PACKAGE__->default_value('message_box_width');
};
param 'message_box_height' =>
label is 'message box height',
default is defer {
- RT::Action::UserSettings->default_value('message_box_height');
+ __PACKAGE__->default_value('message_box_height');
};
# locale
@@ -109,7 +104,7 @@ use Jifty::Action schema {
return $ret;
},
default is defer {
- RT::Action::UserSettings->default_value('date_time_format');
+ __PACKAGE__->default_value('date_time_format');
};
#mail
@@ -130,21 +125,21 @@ use Jifty::Action schema {
];
},
default is defer {
- RT::Action::UserSettings->default_value('email_frequency');
+ __PACKAGE__->default_value('email_frequency');
};
# rt at a glance
param 'default_summary_rows' =>
label is 'number of search results',
default is defer {
- RT::Action::UserSettings->default_value('default_summary_rows');
+ __PACKAGE__->default_value('default_summary_rows');
};
# ticket display
param 'max_inline_body' =>
label is 'Maximum inline message length',
default is defer {
- RT::Action::UserSettings->default_value('max_inline_body');
+ __PACKAGE__->default_value('max_inline_body');
};
param 'oldest_transactions_first' =>
label is 'Show oldest transactions first',
@@ -154,7 +149,7 @@ use Jifty::Action schema {
map { { display => _($_), value => $_ } } 'yes', 'no',
],
default is defer {
- RT::Action::UserSettings->default_value('oldest_transactions_first');
+ __PACKAGE__->default_value('oldest_transactions_first');
};
param 'show_unread_message_notifications' =>
label is 'Notify me of unread messages',
@@ -164,7 +159,7 @@ use Jifty::Action schema {
map { { display => _($_), value => $_ } } 'yes', 'no',
],
default is defer {
- RT::Action::UserSettings->default_value(
+ __PACKAGE__->default_value(
'show_unread_message_notifications');
};
param 'plain_text_pre' =>
@@ -176,46 +171,10 @@ use Jifty::Action schema {
map { { display => _($_), value => $_ } } 'yes', 'no',
],
default is defer {
- RT::Action::UserSettings->default_value('plain_text_pre');
+ __PACKAGE__->default_value('plain_text_pre');
};
};
-=head2 take_action
-
-=cut
-
-sub take_action {
- my $self = shift;
-
- my $user = Jifty->web->current_user->user_object;
- my $pref = $user->preferences( RT->system ) || {};
- for my $arg ( $self->argument_names ) {
- if ( $self->has_argument($arg) ) {
- if ( $self->argument_value($arg) eq 'use_system_default' ) {
- delete $pref->{$arg};
- }
- else {
- $pref->{$arg} = $self->argument_value($arg);
- }
- }
- }
- $user->set_preferences( RT->system, $pref );
- $self->report_success if not $self->result->failure;
-
- return 1;
-}
-
-=head2 report_success
-
-=cut
-
-sub report_success {
- my $self = shift;
-
- # Your success message here
- $self->result->message(_('Updated user settings'));
-}
-
sub default_value {
my $self = shift;
my $name = shift;
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list