%# BEGIN BPS TAGGED BLOCK {{{
%#
%# COPYRIGHT:
%#
%# This software is Copyright (c) 1996-2022 Best Practical Solutions, LLC
%#                                          <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
%#
%#
%# LICENSE:
%#
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%#
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%#
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%# 02110-1301 or visit their web page on the internet at
%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
%#
%#
%# CONTRIBUTION SUBMISSION POLICY:
%#
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
%#
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# you are the copyright holder for those contributions and you grant
%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
<form name="EditAboutMe" action="" method="post" enctype="multipart/form-data">
<input type="hidden" class="hidden" name="id" value="<%$UserObj->Id%>" />

<div class="form-row">
%### Left column ###
  <div class="col-6">

    <&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &>
      <input type="hidden" class="hidden" name="Name" value="<%$UserObj->Name%>" />
      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Email</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="EmailAddress" value="<%$UserObj->EmailAddress%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Real Name</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="RealName" value="<%$UserObj->RealName%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Nickname</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="NickName" value="<%$UserObj->NickName || ''%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Language</&>:
        </div>
        <div class="value col-9">
          <& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang &>
        </div>
      </div>
      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Timezone</&>:
        </div>
        <div class="value col-9">
          <& /Elements/SelectTimezone, Name => 'Timezone', Default => $UserObj->Timezone &>
        </div>
      </div>

      <div class="form-row">
        <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Identity' &>
      </div>
    </&>

    <&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &>
      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Residence</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="tel" name="HomePhone" value="<%$UserObj->HomePhone || ''%>" size="13" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Work</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="tel" name="WorkPhone" value="<%$UserObj->WorkPhone || ''%>" size="13" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Mobile</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="tel" name="MobilePhone" value="<%$UserObj->MobilePhone || ''%>" size="13" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Pager</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="tel" name="PagerPhone" value="<%$UserObj->PagerPhone || ''%>" size="13" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-12">
          <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Phones' &>
        </div>
      </div>
    </&>

% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormLeftColumn' );

%### End left column ###
  </div>

%### Right column ###
  <div class="col-6
  ">

    <&| /Widgets/TitleBox, title => loc( $AccessControlName ), id => "user-prefs-access-control" &>
% if ( $UserObj->__Value('Password') ne '*NO-PASSWORD*' ) {
<& /Elements/EditPassword,
    User => $UserObj,
    Name => $PasswordName,
&>
% }
      <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Access control' &>
    </&>

% my $AdminUser = $session{'CurrentUser'}->HasRight( Object => RT->System, Right => 'AdminUsers' );
    <&| /Widgets/TitleBox, title => loc('Location'), id => "user-prefs-location" &>
      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Organization</&>:
        </div>
        <div class="value col-9">
%if ( $AdminUser ) {
          <input class="form-control" type="text" name="Organization" value="<%$UserObj->Organization || ''%>" />
%} else {
          <span class="current-value form-control"><%$UserObj->Organization || ''%></span>
%}
        </div>
      </div>
      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Address1</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="Address1" value="<%$UserObj->Address1 || ''%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Address2</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="Address2" value="<%$UserObj->Address2 || ''%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>City</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="City" value="<%$UserObj->City || ''%>" size="14" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>State</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="State" value="<%$UserObj->State || ''%>" size="3" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Zip</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="Zip" value="<%$UserObj->Zip || ''%>" size="9" />
        </div>
      </div>

      <div class="form-row">
        <div class="label col-3">
          <&|/l&>Country</&>:
        </div>
        <div class="value col-9">
          <input class="form-control" type="text" name="Country" value="<%$UserObj->Country || ''%>" />
        </div>
      </div>

      <div class="form-row">
        <div class="col-12">
          <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Location' &>
        </div>
      </div>
    </&>

% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );

%### End right column ###
  </div>
</div>

%if ($UserObj->Privileged) {
%   my $sig = $UserObj->Signature || '';
%   my $richtext = '';
<div class="form-row">
  <div class="col-6">
    <&| /Widgets/TitleBox, title => loc('Signature'), id => "user-prefs-signature" &>
%   if (RT->Config->Get('MessageBoxRichText', $session{'CurrentUser'})) {
%       # allow for a smooth transition from a plain text signature, with or without HTML content, to an HTML signature
        <input type="text" style="display:none" name="SignatureType" id="SignatureType" value="<%$sig =~ /<.{1,5}>/ ? "text/html" : 'text/plain'%>"/>
%       $richtext = ' richtext';
%   }
      <textarea class="form-control signature<%$richtext%>" cols="80" rows="5" name="Signature" wrap="hard"><%$sig%></textarea>
    </&>
  </div>
</div>
% }

<& /Elements/EditCustomFieldCustomGroupings, Object => $UserObj &>

<div class="form-row">
  <div class="col-12">
    <& /Elements/Submit, Label => loc('Save Preferences') &>
  </div>
</div>

%if ( $AdminUser ) {
<&| /Widgets/TitleBox, title => loc('Secret authentication token'), id => "user-prefs-feeds" &>

<&|/l&>All iCal feeds embed a secret token which authorizes you.  If the URL for one of your iCal feeds was 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>
</&>
%}

<%ARGS>
$UserObj
$PasswordName
$AccessControlName => 'Access control'
</%ARGS>
