rt 4.0.23
[freeside.git] / rt / share / html / User / Prefs.html
index c62d873..d491145 100755 (executable)
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 %#                                          <sales@bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
@@ -46,9 +46,7 @@
 %#
 %# END BPS TAGGED BLOCK }}}
 <& /Elements/Header, Title=>loc("Ticketing Preferences") &>
-<& /User/Elements/Tabs, 
-    current_tab => 'User/Prefs.html', 
-    Title => loc("Preferences") &>
+<& /Elements/Tabs &>
 
 <& /Elements/ListActions, actions => \@results &>
 
   </tr>
 </table>
 </&>
+
+%if ($UserObj->Privileged) {
+<&| /Widgets/TitleBox, title => loc('Signature') &>
+<textarea cols="80" rows="5" name="Signature" class="signature" wrap="hard">
+<%$UserObj->Signature || ''%></textarea>
+</&>
+% }
+
 % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormLeftColumn' );
 </td>
 <td valign="top" class="boxcontainer">
 </table>
 </&>
 
-% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );
-</td>
-</tr>
-
-
-<tr><td colspan="2" valign="top" class="boxcontainer">
-%if ($UserObj->Privileged) {
-<br />
-<&| /Widgets/TitleBox, title => loc('Signature') &>
-<textarea cols="80" rows="5" name="Signature" class="signature" wrap="hard">
-<%$UserObj->Signature || ''%></textarea>
-</&>
-% }
-</td></tr>
+<& /Elements/Submit, Label => loc('Save Preferences') &>
 
-<tr><td colspan="2" valign="top" class="boxcontainer">
 <&| /Widgets/TitleBox, title => loc('Secret authentication token'), id => "user-prefs-feeds" &>
 
-<&|/l&><p>All iCal feeds embed a secret token which authorizes you.  If the URL one of your iCal feeds got exposed to the outside world, you can get a new secret, <b>breaking all existing iCal feeds</b> below.</p></&>
-
-<& /Elements/Submit, Label => loc('Reset secret authentication token'), Name => "ResetAuthToken" &>
+<&|/l&>All iCal feeds embed a secret token which authorizes you.  If the URL one of your iCal feeds got exposed to the outside world, you can get a new secret, <b>breaking all existing iCal feeds</b> below.</&>
+
+<a href="#" id="ResetAuthTokenPrompt" style="display: none">
+  <&|/l&>I want to reset my secret token.</&>
+</a>
+<& /Elements/Submit,
+    Label       => loc('Reset secret authentication token'),
+    Name        => "ResetAuthToken",
+    id          => "ResetAuthTokenContainer" &>
+<script>
+    jQuery("#ResetAuthTokenContainer").hide();
+    jQuery("#ResetAuthTokenPrompt").show().click(function(ev){
+        jQuery(this).slideUp();
+        jQuery("#ResetAuthTokenContainer").slideDown();
+        ev.preventDefault();
+    });
+</script>
 </&>
-</td></tr>
+
+% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );
+</td>
+</tr>
 
 </table>
 
 % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormEnd' );
 
-<& /Elements/Submit, Label => loc('Save Preferences') &>
 </form>
 
 
@@ -211,56 +219,57 @@ $id = $UserObj->id;
 
 my @results;
 
-my @fields = qw(
-    Name Comments Signature EmailAddress FreeformContactInfo 
-    Organization RealName NickName Lang EmailEncoding WebEncoding 
-    ExternalContactInfoId ContactInfoSystem Gecos ExternalAuthId 
-    AuthSystem HomePhone WorkPhone MobilePhone PagerPhone Address1
-    Address2 City State Zip Country Lang Timezone
-);
-
-$m->callback(
-    CallbackName => 'UpdateLogic',
-    fields       => \@fields,
-    results      => \@results,
-    UserObj      => $UserObj,
-    ARGSRef      => \%ARGS,
-);
-
-push @results, UpdateRecordObject (
-    AttributesRef => \@fields,
-    Object => $UserObj,
-    ARGSRef => \%ARGS,
-);
-
-push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $UserObj );
-
-if ( $Lang ) {
-    $session{'CurrentUser'}->LanguageHandle($Lang);
-    $session{'CurrentUser'} = $session{'CurrentUser'}; # force writeback
+if ( $ARGS{'ResetAuthToken'} ) {
+    my ($status, $msg) = $UserObj->GenerateAuthToken;
+    push @results, $msg;
 }
+else {
+    my @fields = qw(
+        Name Comments Signature EmailAddress FreeformContactInfo 
+        Organization RealName NickName Lang EmailEncoding WebEncoding 
+        ExternalContactInfoId ContactInfoSystem Gecos ExternalAuthId 
+        AuthSystem HomePhone WorkPhone MobilePhone PagerPhone Address1
+        Address2 City State Zip Country Timezone
+    );
 
-# Deal with special fields: Privileged, Enabled, and Password
-if  ( $SetPrivileged and $Privileged != $UserObj->Privileged ) {
-    my ($code, $msg) = $UserObj->SetPrivileged( $Privileged );
-    push @results, loc('Privileged status: [_1]', loc_fuzzy($msg));
-}
+    $m->callback(
+        CallbackName => 'UpdateLogic',
+        fields       => \@fields,
+        results      => \@results,
+        UserObj      => $UserObj,
+        ARGSRef      => \%ARGS,
+    );
 
-my %password_cond = $UserObj->CurrentUserRequireToSetPassword;
-if (defined $Pass1 && length $Pass1 ) {
-    my ($status, $msg) = $UserObj->SafeSetPassword(
-        Current      => $CurrentPass,
-        New          => $Pass1,
-        Confirmation => $Pass2,
+    push @results, UpdateRecordObject (
+        AttributesRef => \@fields,
+        Object => $UserObj,
+        ARGSRef => \%ARGS,
     );
-    push @results, loc("Password: [_1]", $msg);
-}
 
-if ( $ARGS{'ResetAuthToken'} ) {
-    my ($status, $msg) = $UserObj->GenerateAuthToken;
-    push @results, $msg;
+    push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $UserObj );
+
+    # Deal with special fields: Privileged, Enabled, and Password
+    if  ( $SetPrivileged and $Privileged != $UserObj->Privileged ) {
+        my ($code, $msg) = $UserObj->SetPrivileged( $Privileged );
+        push @results, loc('Privileged status: [_1]', loc_fuzzy($msg));
+    }
+
+    my %password_cond = $UserObj->CurrentUserRequireToSetPassword;
+    if (defined $Pass1 && length $Pass1 ) {
+        my ($status, $msg) = $UserObj->SafeSetPassword(
+            Current      => $CurrentPass,
+            New          => $Pass1,
+            Confirmation => $Pass2,
+        );
+        push @results, loc("Password: [_1]", $msg);
+    }
 }
 
+
+MaybeRedirectForResults(
+    Actions   => \@results,
+);
+
 </%INIT>