<& /elements/header.html, mt('Preferences for [_1]', $FS::CurrentUser::CurrentUser->username) &> % my $js_form_validate = { 'pref_form' => { 'name' => 'pref_form' } };
<& /elements/error.html &> % if ( FS::Auth->auth_class->can('change_password') ) { <% emt('Change password (leave blank for no change)') %>
<% emt("Current password:") %>
<% emt("New password:") %>
<% emt("Re-enter new password:") %>

% } <% emt("Interface") %> % my $history_order = $curuser->option('history_order') || 'oldest'; % my $validate_field_cve = 'customer_view_emails'; % $js_form_validate->{pref_form}->{validate_fields}{$validate_field_cve} = 'digits: true'; % $js_form_validate->{pref_form}->{error_message}{$validate_field_cve} = 'Please only enter numbers here.';
<% emt("Locale:") %>
<% emt("Menu location:") %> > <% emt("Left") %>
> <% emt("Top") %>
<% emt("Enable mobile-friendly menu:") %> option('mobile_menu') ? 'CHECKED' : '' %>>
<% emt("Default customer view:") %>
<% emt("Customer history sort order:") %> <& /elements/select.html, field => 'history_order', curr_value => $history_order, options => [ 'oldest', 'newest' ], labels => { 'oldest' => mt('Oldest first'), 'newest' => mt('Newest first'), }, &>
<% emt("Spreadsheet download format:") %>
<% emt("Disable HTML editor for customer notes:") %> option('disable_html_editor') ? 'CHECKED' : '' %>>
<% emt("Disable submission on Enter key - one-time charges:") %> option('disable_enter_submit_onetimecharge') ? 'CHECKED' : '' %>>
<% emt("Don't copy MAC address delimiters to clipboard") %> option('enable_mask_clipboard_hack') ? 'CHECKED' : '' %>>
<% emt("When printing, scale HTML documents to fit on a letter-size page") %> option('printtofit') ? 'CHECKED' : '' %>>
<% emt("How many recently-modified customers displayed on dashboard") %>
<% emt("How many recent outbound emails to show in customer view") %>

<% emt("Email Address") %>
<% emt("Email Address(es) (comma separated) ") %>

<% emt("Development") %>
<% emt("Show customer package timestamps:") %> option('cust_pkg-display_times') ? 'CHECKED' : '' %>>
<% emt("Show internal package numbers:") %> option('show_pkgnum') ? 'CHECKED' : '' %>>
<% emt("Show config item counts:") %> option('show_confitem_counts') ? 'CHECKED' : '' %>>
<% emt("Show export data on service view (when available):") %> option('export_getsettings') ? 'CHECKED' : '' %>>
<% emt("Show database profiling (when available):") %> option('show_db_profile') ? 'CHECKED' : '' %>>
<% emt("Save database profiling logs (when available):") %> option('save_db_profile') ? 'CHECKED' : '' %>>
<% emt("Save temporary invoice typesetting files:") %> option('save_tmp_typesetting') ? 'CHECKED' : '' %>>

% if ( $curuser->access_right('Employee preference telephony integration') ) { <% emt("SNOM integration") %> <% ntable("#cccccc",2) %> <% emt("SNOM IP address") %> <% emt("SNOM HTTP username (if necessary)") %> <% emt("SNOM HTTP password (if necessary)") %>
<% emt("OR")%>

<% emt("Vonage integration (see") %> <% emt("Click2Call") %>) <% ntable("#cccccc",2) %> <% emt("Vonage phone number") %> <% emt("Vonage username") %> <% emt("Vonage password") %>
% } % foreach my $prop (qw( height width availHeight availWidth colorDepth )) { % } "> % my %footerdata = ( % 'formvalidation' => $js_form_validate, % ); <% include("/elements/footer.html", %footerdata) %> <%init> my $curuser = $FS::CurrentUser::CurrentUser; #false laziness w/view/cust_main.cgi and Conf.pm (cust_main-default_view) tie my %customer_views, 'Tie::IxHash', 'Basics' => 'basics', 'Notes' => 'notes', #notes and files? 'Tickets' => 'tickets', 'Appointments' => 'appointments', 'Quotations' => 'quotations', 'Packages' => 'packages', 'Payment History' => 'payment_history', ; $customer_views{'Change History'} = 'change_history' if $curuser->access_right('View customer history'); # XSS via your own preferences? seems unlikely, but nice try anyway... ( $curuser->option('menu_position') || 'top' ) =~ /^(\w+)$/ or die "illegal menu_position"; my $menu_position = $1; ( $curuser->option('email_address') ) =~ /^([,\w\@.\-]*)$/ or die "illegal email_address"; #too late my $email_address = $1; my $conf = new FS::Conf; my @locales = $conf->config('available-locales'); if ( ! @locales ) { @locales = FS::Locales->locales ; }