[Rt-commit] rt branch, 4.6-theme-trunk, updated. rt-4.4.4-267-g458a2266d

? sunnavy sunnavy at bestpractical.com
Wed May 29 17:02:25 EDT 2019


The branch, 4.6-theme-trunk has been updated
       via  458a2266d1ce59493b062ff2c472e55b9da994b7 (commit)
       via  37a20a4581bdbb57c54c2bb6e72117928c1600a3 (commit)
      from  31611ebea9a148793d15dc7aa488779fe0fea937 (commit)

Summary of changes:
 share/html/Prefs/DashboardsInMenu.html |   2 +-
 share/html/Prefs/Elements/EditAboutMe  | 297 ++++++++++++++++++++++-----------
 share/html/Prefs/Elements/ShowAboutMe  | 273 ++++++++++++++++++++----------
 share/html/Prefs/MyRT.html             |  16 +-
 share/html/Prefs/Other.html            |   7 +-
 share/html/Prefs/QueueList.html        |  20 ++-
 share/html/Prefs/Search.html           |  14 +-
 share/html/SelfService/Prefs.html      |  57 ++++---
 t/web/self_service.t                   |   8 +-
 9 files changed, 456 insertions(+), 238 deletions(-)

- Log -----------------------------------------------------------------
commit 37a20a4581bdbb57c54c2bb6e72117928c1600a3
Author: Craig Kaiser <craig at bestpractical.com>
Date:   Tue Apr 30 09:46:34 2019 -0400

    Migrate Prefs pages for elevator theme

diff --git a/share/html/Prefs/DashboardsInMenu.html b/share/html/Prefs/DashboardsInMenu.html
index 09a550b4e..db456df2b 100644
--- a/share/html/Prefs/DashboardsInMenu.html
+++ b/share/html/Prefs/DashboardsInMenu.html
@@ -64,7 +64,7 @@
 <&|/Widgets/TitleBox, title => loc("Reset dashboards in menu") &>
 <form method="post" action="DashboardsInMenu.html">
 <input type="hidden" name="Reset" value="1" />
-<input type="submit" class="button" value="<% loc('Reset to default') %>">
+<input type="submit" class="button form-control btn btn-primary"" value="<% loc('Reset to default') %>">
 </form>
 </&>
 
diff --git a/share/html/Prefs/Elements/EditAboutMe b/share/html/Prefs/Elements/EditAboutMe
index 85e64a378..cac991ccb 100644
--- a/share/html/Prefs/Elements/EditAboutMe
+++ b/share/html/Prefs/Elements/EditAboutMe
@@ -48,114 +48,216 @@
 <form name="EditAboutMe" action="" method="post">
 <input type="hidden" class="hidden" name="id" value="<%$UserObj->Id%>" />
 
-<table width="100%" border="0">
-<tr>
-<td valign="top" class="boxcontainer">
-<&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &>
-<input type="hidden" class="hidden" name="Name" value="<%$UserObj->Name%>" />
-<table cellspacing="0" cellpadding="0">
-  <tr>
-    <td class="label"><&|/l&>Email</&>: </td>
-    <td class="value"><input type="text" name="EmailAddress" value="<%$UserObj->EmailAddress%>" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Real Name</&>:</td>
-    <td class="value"><input type="text" name="RealName" value="<%$UserObj->RealName%>" /></td>  </tr>
-  <tr>
-    <td class="label"><&|/l&>Nickname</&>:</td>
-    <td class="value"><input type="text" name="NickName" value="<%$UserObj->NickName || ''%>" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Language</&>:</td>
-    <td class="value"><& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang &></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Timezone</&>:</td>
-    <td class="value"><& /Elements/SelectTimezone, Name => 'Timezone', Default => $UserObj->Timezone &></td>
-  </tr>
-<& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Identity', InTable => 1 &>
-</table>
-</&>
-<&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &>
-<table cellspacing="0" cellpadding="0">
-  <tr>
-    <td class="label"><&|/l&>Residence</&>:</td>
-    <td class="value"><input type="tel" name="HomePhone" value="<%$UserObj->HomePhone || ''%>" size="13" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Work</&>:</td>
-    <td class="value"><input type="tel" name="WorkPhone" value="<%$UserObj->WorkPhone || ''%>" size="13" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Mobile</&>:</td>
-    <td class="value"><input type="tel" name="MobilePhone" value="<%$UserObj->MobilePhone || ''%>" size="13" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Pager</&>:</td>
-    <td class="value"><input type="tel" name="PagerPhone" value="<%$UserObj->PagerPhone || ''%>" size="13" /></td>
-  </tr>
-<& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Phones', InTable => 1 &>
-</table>
-</&>
-%if ($UserObj->Privileged) {
-<&| /Widgets/TitleBox, title => loc('Signature'), id => "user-prefs-signature" &>
-<textarea cols="80" rows="5" name="Signature" class="signature" wrap="hard">
-<%$UserObj->Signature || ''%></textarea>
-</&>
-% }
+<div class="form-row">
+%### Left column ###
+  <div class="col-md-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-md-3">
+          <&|/l&>Email</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="EmailAddress" value="<%$UserObj->EmailAddress%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Real Name</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="RealName" value="<%$UserObj->RealName%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Nickname</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="NickName" value="<%$UserObj->NickName || ''%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Language</&>:
+        </div>
+        <div class="col-md-9 value">
+          <& /Elements/SelectLang, Name => 'Lang', Default => $UserObj->Lang &>
+        </div>
+      </div>
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Timezone</&>:
+        </div>
+        <div class="col-md-9 value">
+          <& /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-md-3">
+          <&|/l&>Residence</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="tel" name="HomePhone" value="<%$UserObj->HomePhone || ''%>" size="13" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Work</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="tel" name="WorkPhone" value="<%$UserObj->WorkPhone || ''%>" size="13" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Mobile</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="tel" name="MobilePhone" value="<%$UserObj->MobilePhone || ''%>" size="13" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Pager</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="tel" name="PagerPhone" value="<%$UserObj->PagerPhone || ''%>" size="13" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-12">
+          <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Phones' &>
+        </div>
+      </div>
+    </&>
 
 % $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormLeftColumn' );
 
-</td>
-<td valign="top" class="boxcontainer">
-<&| /Widgets/TitleBox, title => loc( $AccessControlName ), id => "user-prefs-access-control" &>
+%### End left column ###
+  </div>
+
+%### Right column ###
+  <div class="col-md-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' &>
-</&>
+      <& /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" &>
-<table cellspacing="0" cellpadding="0">
-  <tr>
-    <td class="label"><&|/l&>Organization</&>:</td>
+% 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-md-3">
+          <&|/l&>Organization</&>:
+        </div>
+        <div class="col-md-9 value">
 %if ( $AdminUser ) {
-    <td class="value"><input type="text" name="Organization" value="<%$UserObj->Organization || ''%>" /></td>
+          <input class="form-control" type="text" name="Organization" value="<%$UserObj->Organization || ''%>" />
 %} else {
-    <td class="value"><%$UserObj->Organization || ''%></td>
+          <span class="current-value form-control"><%$UserObj->Organization || ''%></span>
 %}
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Address1</&>:</td>
-    <td class="value"><input type="text" name="Address1" value="<%$UserObj->Address1 || ''%>" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Address2</&>:</td>
-    <td class="value"><input type="text" name="Address2" value="<%$UserObj->Address2 || ''%>" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>City</&>:</td>
-    <td><input type="text" name="City" value="<%$UserObj->City || ''%>" size="14" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>State</&>:</td>
-    <td class="value"><input type="text" name="State" value="<%$UserObj->State || ''%>" size="3" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Zip</&>:</td>
-    <td class="value"><input type="text" name="Zip" value="<%$UserObj->Zip || ''%>" size="9" /></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Country</&>:</td>
-    <td class="value"><input type="text" name="Country" value="<%$UserObj->Country || ''%>" /></td>
-  </tr>
-<& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Location', InTable => 1 &>
-</table>
-</&>
+        </div>
+      </div>
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Address1</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="Address1" value="<%$UserObj->Address1 || ''%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Address2</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="Address2" value="<%$UserObj->Address2 || ''%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>City</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="City" value="<%$UserObj->City || ''%>" size="14" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>State</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="State" value="<%$UserObj->State || ''%>" size="3" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Zip</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="Zip" value="<%$UserObj->Zip || ''%>" size="9" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Country</&>:
+        </div>
+        <div class="col-md-9 value">
+          <input class="form-control" type="text" name="Country" value="<%$UserObj->Country || ''%>" />
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-12">
+          <& /Elements/EditCustomFields, Object => $UserObj, Grouping => 'Location' &>
+        </div>
+      </div>
+    </&>
+
+% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );
+
+%### End right column ###
+  </div>
+</div>
+
+%if ($UserObj->Privileged) {
+<div class="form-row">
+  <div class="col-md-6">
+    <&| /Widgets/TitleBox, title => loc('Signature'), id => "user-prefs-signature" &>
+      <textarea class="form-control" cols="80" rows="5" name="Signature" class="signature" wrap="hard">
+      <%$UserObj->Signature || ''%></textarea>
+    </&>
+  </div>
+</div>
+% }
+
 <& /Elements/EditCustomFieldCustomGroupings, Object => $UserObj &>
 
 <& /Elements/Submit, Label => loc('Save Preferences') &>
@@ -183,11 +285,6 @@
 </&>
 %}
 
-% $m->callback( %ARGS, UserObj => $UserObj, CallbackName => 'FormRightColumn' );
-</td>
-</tr>
-</table>
-
 <%ARGS>
 $UserObj
 $PasswordName
diff --git a/share/html/Prefs/Elements/ShowAboutMe b/share/html/Prefs/Elements/ShowAboutMe
index d3daa456d..fe89e4460 100644
--- a/share/html/Prefs/Elements/ShowAboutMe
+++ b/share/html/Prefs/Elements/ShowAboutMe
@@ -45,104 +45,197 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
-<table width="100%" border="0">
-  <tr>
-    <td valign="top" class="boxcontainer">
-      <&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &>
+<div class="form-row">
+%### Left column ###
+  <div class="col-md-6">
+
+    <&| /Widgets/TitleBox, title => loc('Identity'), id => "user-prefs-identity" &>
       <input type="hidden" class="hidden" name="Name" value="<%$UserObj->Name%>" />
-      <table cellspacing="0" cellpadding="0">
-        <tr>
-          <td class="label"><&|/l&>Email</&>:</td>
-          <td class="value"><%$UserObj->EmailAddress%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Real Name</&>:</td>
-          <td class="value"><%$UserObj->RealName%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Nickname</&>:</td>
-          <td class="value"><%$UserObj->NickName || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Language</&>:</td>
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Email</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->EmailAddress%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Real Name</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->RealName%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="label col-md-3">
+          <&|/l&>Nickname</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->NickName || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Language</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control">
 % if ( $UserObj->Lang ) {
-          <td class="value"><&|/l, $lang &>[_1]</&></td>
+            <&|/l, $lang &>[_1]</&>
 % } else {
-          <td class="value"><&|/l&>System Default</&> (<% I18N::LangTags::List::name($session{CurrentUser}->LanguageHandle->language_tag) %>)</td>
+            <&|/l&>System Default</&> (<% I18N::LangTags::List::name($session{CurrentUser}->LanguageHandle->language_tag) %>)
 % }
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Timezone</&>:</td>
+          </span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Timezone</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control">
 % if ( $UserObj->Timezone ) {
-          <td class="value"><%$UserObj->Timezone%></td>
+            <%$UserObj->Timezone%>
 % } else {
-          <td class="value"><&|/l&>System Default</&> (<% RT->Config->Get('Timezone') %>)</td>
+            <&|/l&>System Default</&> (<% RT->Config->Get('Timezone') %>)
 % }
-        </tr>
-      <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Identity', InTable => 1 &>
-      </table>
-      </&>
-      <&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &>
-      <table cellspacing="0" cellpadding="0">
-        <tr>
-          <td class="label"><&|/l&>Residence</&>:</td>
-          <td class="value"><%$UserObj->HomePhone || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Work</&>:</td>
-          <td class="value"><%$UserObj->WorkPhone || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Mobile</&>:</td>
-          <td class="value"><%$UserObj->MobilePhone || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Pager</&>:</td>
-          <td class="value"><%$UserObj->PagerPhone || ''%></td>
-        </tr>
-      <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Phones', InTable => 1 &>
-      </table>
-      </&>
-    </td>
-    <td valign="top" class="boxcontainer">
-      <&| /Widgets/TitleBox, title => loc('Location'), id => "user-prefs-location" &>
-      <table cellspacing="0" cellpadding="0">
-        <tr>
-          <td class="label"><&|/l&>Organization</&>:</td>
-          <td class="value"><%$UserObj->Organization || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Address1</&>:</td>
-          <td class="value"><%$UserObj->Address1 || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Address2</&>:</td>
-          <td class="value"><%$UserObj->Address2 || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>City</&>:</td>
-          <td class="value"><%$UserObj->City || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>State</&>:</td>
-          <td class="value"><%$UserObj->State || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Zip</&>:</td>
-          <td class="value"><%$UserObj->Zip || ''%></td>
-        </tr>
-        <tr>
-          <td class="label"><&|/l&>Country</&>:</td>
-          <td class="value"><%$UserObj->Country || ''%></td>
-        </tr>
-      <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Location', InTable => 1 &>
-      </table>
-      </&>
-      <& /Elements/ShowCustomFieldCustomGroupings, Object => $UserObj &>
-    </td>
-  </tr>
-</table>
+          </span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Identity' &>
+      </div>
+
+    </&>
+
+    <&| /Widgets/TitleBox, title => loc('Phone numbers'), id => "user-prefs-phone" &>
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Residence</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->HomePhone || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Work</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->WorkPhone || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Mobile</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->MobilePhone || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Pager</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->PagerPhone || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Phones' &>
+      </div>
+    </&>
+
+  </div>
+
+%### Right column ###
+
+  <div class="col-md-6">
+
+    <&| /Widgets/TitleBox, title => loc('Location'), id => "user-prefs-location" &>
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Organization</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->Organization || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Address1</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->Address1 || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Address2</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->Address2 || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>City</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->City || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>State</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->State || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Zip</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->Zip || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <div class="col-md-3 label">
+          <&|/l&>Country</&>:
+        </div>
+        <div class="col-md-9 value">
+          <span class="current-value form-control"><%$UserObj->Country || ''%></span>
+        </div>
+      </div>
+
+      <div class="form-row">
+        <& /Elements/ShowCustomFields, Object => $UserObj, Grouping => 'Location' &>
+      </div>
+    </&>
+
+    <& /Elements/ShowCustomFieldCustomGroupings, Object => $UserObj &>
 
+  </div>
+%### End right column ###
+</div>
 <%INIT>
 use I18N::LangTags::List;
 my $lang = I18N::LangTags::List::name( $UserObj->Lang );
diff --git a/share/html/Prefs/MyRT.html b/share/html/Prefs/MyRT.html
index 235d6e0fb..1bc841f80 100644
--- a/share/html/Prefs/MyRT.html
+++ b/share/html/Prefs/MyRT.html
@@ -63,15 +63,23 @@
 
 <&|/Widgets/TitleBox, title => loc('Options'), bodyclass => "" &>
 <form method="post" action="MyRT.html">
-<&|/l&>Rows per box</&>:
-<input type="text" name="SummaryRows" value="<% $ARGS{SummaryRows} %>" />
-<input type="submit" class="button" name="UpdateSummaryRows" value="<% loc('Save') %>" />
+<div class="form-row">
+  <div class="col-md-auto label">
+    <&|/l&>Rows per box</&>:
+  </div>
+  <div class="col-md-auto">
+    <input class="form-control" type="text" name="SummaryRows" value="<% $ARGS{SummaryRows} %>" />
+  </div>
+  <div class="col-md-auto">
+    <input type="submit" class="button form-control btn btn-primary"" name="UpdateSummaryRows" value="<% loc('Save') %>" />
+  </div>
+</div>
 </form>
 </&>
 <&|/Widgets/TitleBox, title => loc("Reset RT at a glance") &>
 <form method="post" action="MyRT.html">
 <input type="hidden" name="Reset" value="1" />
-<input type="submit" class="button" value="<% loc('Reset to default') %>">
+<input type="submit" class="button form-control btn btn-primary"" value="<% loc('Reset to default') %>">
 </form>
 </&>
 
diff --git a/share/html/Prefs/Other.html b/share/html/Prefs/Other.html
index cf9fe4aba..b1fb9a539 100644
--- a/share/html/Prefs/Other.html
+++ b/share/html/Prefs/Other.html
@@ -72,8 +72,11 @@
 <&|/l&>Preferred key</&>: <& /Elements/Crypt/SelectKeyForEncryption, EmailAddress => $UserObj->EmailAddress, Default => $UserObj->PreferredKey &>
 </&>
 % }
-
-<& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &>
+<div class="form-row">
+  <div class="col-md-12">
+    <& /Elements/Submit, Name => 'Update', Label => loc('Save Changes') &>
+  </div>
+</div>
 </form>
 <%INIT>
 my @results;
diff --git a/share/html/Prefs/QueueList.html b/share/html/Prefs/QueueList.html
index 1df3bc46d..b8b639f40 100644
--- a/share/html/Prefs/QueueList.html
+++ b/share/html/Prefs/QueueList.html
@@ -51,18 +51,21 @@
 <& /Elements/ListActions, actions => \@actions &>
 <h1><&|/l&>Select queues to be displayed on the "RT at a glance" page</&></h1>
 <form method="post" action="QueueList.html" name="Preferences">
-<ul>
+  <ul class="list-group list-group-borderless">
 % for my $queue (@queues) {
-<li><input type="checkbox" class="checkbox" id="Want-<%$queue->Name%>" name="Want-<%$queue->Name%>" value="1"
+    <li class="list-group-item">
+      <div class="custom-control custom-checkbox">
+        <input class="custom-control-input" type="checkbox" class="checkbox" id="Want-<%$queue->Name%>" name="Want-<%$queue->Name%>" value="1"
 % unless ($unwanted->{$queue->Name}) {
 checked="checked"
 % }
-/>
-<label for="Want-<%$queue->Name%>"><%$queue->Name%><% $queue->Description ? ': '.$queue->Description : '' %></label>
-</li>
+        />
+        <label class="custom-control-label" for="Want-<%$queue->Name%>"><%$queue->Name%><% $queue->Description ? ': '.$queue->Description : '' %></label>
+      </div>
+    </li>
 % }
-</ul>
-<& /Elements/Submit,
+  </ul>
+  <& /Elements/Submit,
     Caption             => loc("Save Changes"),
     Label               => loc('Save'),
     Name                => 'Save',
@@ -70,8 +73,7 @@ checked="checked"
     CheckAll            => 1,
     ClearAll            => 1,
     CheckboxNameRegex   => '/^Want-/',
-    &>
-
+  &>
 </form>
 
 <%INIT>
diff --git a/share/html/Prefs/Search.html b/share/html/Prefs/Search.html
index 7c7f5f557..321197ca6 100644
--- a/share/html/Prefs/Search.html
+++ b/share/html/Prefs/Search.html
@@ -62,17 +62,23 @@
 <input type="hidden" name="name" value="<%$ARGS{name}%>" class="hidden" />
 <input type="hidden" name="Format" value="<%$ARGS{Format}%>" class="hidden" />
 
-<& /Search/Elements/DisplayOptions, %$SearchArg, %ARGS,
-   AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat &>
-<& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&>
+  <div class="form-row">
+    <& /Search/Elements/DisplayOptions, %$SearchArg, %ARGS,
+      AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat &>
+  </div>
 
+  <div class="form-row">
+    <div class="col-md-12">
+      <& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&>
+    </div>
+  </div>
 </form>
 
 <&|/Widgets/TitleBox, title => loc("Reset") &>
 <form method="post" name="ResetSearchOptions" action="Search.html">
 <input type="hidden" name="Reset" value="1" />
 <input type="hidden" name="name" value="<%$ARGS{name}%>" class="hidden" />
-<input type="submit" class="button" name="ResetSearchOptions" value="<% loc('Reset to default') %>">
+<input type="submit" class="button form-control btn btn-primary"" name="ResetSearchOptions" value="<% loc('Reset to default') %>">
 </form>
 </&>
 
diff --git a/share/html/SelfService/Prefs.html b/share/html/SelfService/Prefs.html
index 15a605356..d12d41e2b 100644
--- a/share/html/SelfService/Prefs.html
+++ b/share/html/SelfService/Prefs.html
@@ -53,36 +53,50 @@
 % }
 % if ( $pref eq 'edit-prefs' || $pref eq 'edit-prefs-view-info' ) {
 <form method="post">
-
-<table width="100%" border="0">
-<tr>
-<td valign="top" class="boxcontainer" width=50%>
-<&| /Widgets/TitleBox, title => loc('Locale'), id => "user-prefs-identity" &>
-<table cellspacing="0" cellpadding="0">
-  <tr>
-    <td class="label"><&|/l&>Language</&>:</td>
-    <td class="value"><& /Elements/SelectLang, Name => 'Lang', Default => $user->Lang &></td>
-  </tr>
-  <tr>
-    <td class="label"><&|/l&>Timezone</&>:</td>
-    <td class="value"><& /Elements/SelectTimezone, Name => 'Timezone', Default => $user->Timezone &></td>
-  </tr>
-</table>
-</&>
-</td>
-<td valign="top">
-<&| /Widgets/TitleBox, title => loc('Change password')  &>
+  <div class="form-row">
+    <div class="col-md-6">
+
+      <&| /Widgets/TitleBox, title => loc('Locale'), id => "user-prefs-identity" &>
+        <div class="form-row">
+          <div class="label col-md-3">
+            <&|/l&>Language</&>:
+          </div>
+          <div class="col-md-9 value">
+            <& /Elements/SelectLang, Name => 'Lang', Default => $user->Lang &>
+          </div>
+        </div>
+
+        <div class="form-row">
+          <div class="label col-md-3">
+                <&|/l&>Timezone</&>:
+          </div>
+          <div class="col-md-9 value">
+            <& /Elements/SelectTimezone, Name => 'Timezone', Default => $user->Timezone &>
+          </div>
+        </div>
+      </&>
+    </div>
+
+    <div class="col-md-6">
+      <&| /Widgets/TitleBox, title => loc('Change password')  &>
 % if ( $user->__Value('Password') ne '*NO-PASSWORD*' ) {
-<& /Elements/EditPassword,
-    User => $user,
-    Name => $password,
-&>
+        <& /Elements/EditPassword,
+            User => $user,
+            Name => $password,
+        &>
 % }
 </&>
+    </div>
+  </div>
+
+  <div class="form-row">
+    <div class="col-md-12">
+      <& /Elements/Submit, Label => loc('Save Changes') &>
+    </div>
+  </div>
+
+</div>
 
-</td></tr></table>
-<br />
-<& /Elements/Submit, Label => loc('Save Changes') &>
 </form>
 
 % }
diff --git a/t/web/self_service.t b/t/web/self_service.t
index abe9f2724..2a3c2781b 100644
--- a/t/web/self_service.t
+++ b/t/web/self_service.t
@@ -69,11 +69,11 @@ diag 'Test $SelfServiceUserPrefs config';
       $m->content_lacks( 'Nickname', "'Edit-Prefs' option does not contain full user info" );
       $m->content_contains( '<td class="value"><input type="password" name="CurrentPass"', "'Edit-Prefs' option contains default user info" );
     } elsif ( $config eq 'view-info' ) {
-      $m->content_lacks( '<td class="value"><input name="NickName" value="" /></td>', "'View-Info' option contains no input fields for full user info" );
-      $m->content_contains( '<td class="label">Nickname:</td>', "'View-Info' option contains full user info" );
+      $m->content_lacks( '<input name="NickName" value="" />', "'View-Info' option contains no input fields for full user info" );
+      $m->content_contains( "Nickname:", "'View-Info' option contains full user info" );
     } elsif ( $config eq 'edit-prefs-view-info' ) {
       $m->content_contains( '<td class="value"><input type="password" name="CurrentPass"', "'Edit-Prefs-View-Info' option contains default user info" );
-      $m->content_contains( '<td class="label">Nickname:</td>', "'Edit-Prefs-View-Info' option contains full user info" );
+      $m->content_contains( 'Nickname:', "'Edit-Prefs-View-Info' option contains full user info" );
       $m->content_lacks( '<td class="value"><input name="NickName" value="" /></td>', "'Edit-Prefs-View-Info' option contains no input fields for full user info" );
     } else {
       RT::Test->add_rights( { Principal => $user_a, Right => ['ModifySelf'] } );

commit 458a2266d1ce59493b062ff2c472e55b9da994b7
Merge: 31611ebea 37a20a458
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu May 30 03:10:04 2019 +0800

    Merge branch '4.6-theme/prefs-pages' into 4.6-theme-trunk

diff --cc share/html/SelfService/Prefs.html
index 9b64aeb2a,d12d41e2b..c754b415a
--- a/share/html/SelfService/Prefs.html
+++ b/share/html/SelfService/Prefs.html
@@@ -53,14 -53,39 +53,39 @@@
  % }
  % if ( $pref eq 'edit-prefs' || $pref eq 'edit-prefs-view-info' ) {
  <form method="post">
- 
- <&| /Widgets/TitleBox, title => loc('Locale'), id => "user-prefs-identity" &>
    <div class="form-row">
-     <div class="col-md-3 label">
-       <&|/l&>Language</&>:
 -    <div class="col-md-6">
+ 
++    <div class="col-md-6">
+       <&| /Widgets/TitleBox, title => loc('Locale'), id => "user-prefs-identity" &>
+         <div class="form-row">
+           <div class="label col-md-3">
+             <&|/l&>Language</&>:
+           </div>
+           <div class="col-md-9 value">
+             <& /Elements/SelectLang, Name => 'Lang', Default => $user->Lang &>
+           </div>
+         </div>
+ 
+         <div class="form-row">
+           <div class="label col-md-3">
+                 <&|/l&>Timezone</&>:
+           </div>
+           <div class="col-md-9 value">
+             <& /Elements/SelectTimezone, Name => 'Timezone', Default => $user->Timezone &>
+           </div>
+         </div>
+       </&>
      </div>
-     <div class="col-md-9 value">
-       <& /Elements/SelectLang, Name => 'Lang', Default => $user->Lang &>
+ 
+     <div class="col-md-6">
+       <&| /Widgets/TitleBox, title => loc('Change password')  &>
+ % if ( $user->__Value('Password') ne '*NO-PASSWORD*' ) {
+         <& /Elements/EditPassword,
+             User => $user,
+             Name => $password,
+         &>
+ % }
+ </&>
      </div>
    </div>
  
diff --cc t/web/self_service.t
index 07fc18d1d,2a3c2781b..6b5a48ab6
--- a/t/web/self_service.t
+++ b/t/web/self_service.t
@@@ -67,14 -67,14 +67,14 @@@ diag 'Test $SelfServiceUserPrefs config
  
      if ( $config eq 'edit-prefs' ) {
        $m->content_lacks( 'Nickname', "'Edit-Prefs' option does not contain full user info" );
 -      $m->content_contains( '<td class="value"><input type="password" name="CurrentPass"', "'Edit-Prefs' option contains default user info" );
 +      $m->content_contains( '<input type="password" class="form-control" name="CurrentPass"', "'Edit-Prefs' option contains default user info" );
      } elsif ( $config eq 'view-info' ) {
-       $m->content_lacks( '<td class="value"><input name="NickName" value="" /></td>', "'View-Info' option contains no input fields for full user info" );
-       $m->content_contains( '<td class="label">Nickname:</td>', "'View-Info' option contains full user info" );
 -      $m->content_lacks( '<input name="NickName" value="" />', "'View-Info' option contains no input fields for full user info" );
++      $m->content_lacks( 'name="NickName" value=""', "'View-Info' option contains no input fields for full user info" );
+       $m->content_contains( "Nickname:", "'View-Info' option contains full user info" );
      } elsif ( $config eq 'edit-prefs-view-info' ) {
 -      $m->content_contains( '<td class="value"><input type="password" name="CurrentPass"', "'Edit-Prefs-View-Info' option contains default user info" );
 +      $m->content_contains( '<input type="password" class="form-control" name="CurrentPass"', "'Edit-Prefs-View-Info' option contains default user info" );
-       $m->content_contains( '<td class="label">Nickname:</td>', "'Edit-Prefs-View-Info' option contains full user info" );
-       $m->content_lacks( '<td class="value"><input name="NickName" value="" /></td>', "'Edit-Prefs-View-Info' option contains no input fields for full user info" );
+       $m->content_contains( 'Nickname:', "'Edit-Prefs-View-Info' option contains full user info" );
 -      $m->content_lacks( '<td class="value"><input name="NickName" value="" /></td>', "'Edit-Prefs-View-Info' option contains no input fields for full user info" );
++      $m->content_lacks( 'name="NickName" value=""', "'Edit-Prefs-View-Info' option contains no input fields for full user info" );
      } else {
        RT::Test->add_rights( { Principal => $user_a, Right => ['ModifySelf'] } );
        my $nickname = 'user_a_nickname';

-----------------------------------------------------------------------


More information about the rt-commit mailing list