]> git.mxchange.org Git - friendica.git/commitdiff
Refactor user settings page
authorHypolite Petovan <hypolite@mrpetovan.com>
Wed, 1 Apr 2020 01:38:56 +0000 (21:38 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Wed, 1 Apr 2020 23:06:00 +0000 (19:06 -0400)
- Fix header hierarchy
- [frio] Fix panel display
- Move checkbox sub-template calls to template

mod/settings.php
view/templates/settings/settings.tpl
view/theme/frio/css/style.css
view/theme/frio/templates/settings/settings.tpl

index 3832de1b1f6ec54cb564d91546a2ca7438331ad2..c4e2482939be42f03c21671c6458ee8a0b956532 100644 (file)
@@ -823,44 +823,11 @@ function settings_content(App $a)
                ]);
        }
 
+       $net_pub_desc = '';
        if (strlen(DI::config()->get('system', 'directory'))) {
                $net_pub_desc = ' ' . DI::l10n()->t('Your profile will also be published in the global friendica directories (e.g. <a href="%s">%s</a>).', DI::config()->get('system', 'directory'), DI::config()->get('system', 'directory'));
-       } else {
-               $net_pub_desc = '';
        }
 
-       $profile_in_net_dir = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc]
-       ]);
-
-       $hide_friends = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['hide-friends', DI::l10n()->t('Hide your contact/friend list from viewers of your profile?'), $profile['hide-friends'], DI::l10n()->t('A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.')],
-       ]);
-
-       $hide_wall = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['hidewall', DI::l10n()->t('Hide your profile details from anonymous viewers?'), $a->user['hidewall'], DI::l10n()->t('Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means.')],
-       ]);
-
-       $unlisted = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['unlisted', DI::l10n()->t('Make public posts unlisted'), DI::pConfig()->get(local_user(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.')],
-       ]);
-
-       $accessiblephotos = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['accessible-photos', DI::l10n()->t('Make all posted pictures accessible'), DI::pConfig()->get(local_user(), 'system', 'accessible-photos'), DI::l10n()->t("This option makes every posted picture accessible via the direct link. This is a workaround for the problem that most other networks can't handle permissions on pictures. Non public pictures still won't be visible for the public on your photo albums though.")],
-       ]);
-
-       $blockwall = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['blockwall', DI::l10n()->t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), DI::l10n()->t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts')],
-       ]);
-
-       $blocktags = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['blocktags', DI::l10n()->t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), DI::l10n()->t('Your contacts can add additional tags to your posts.')],
-       ]);
-
-       $unkmail = Renderer::replaceMacros($opt_tpl, [
-               '$field' => ['unkmail', DI::l10n()->t('Permit unknown people to send you private mail?'), $unkmail, DI::l10n()->t('Friendica network users may send you private messages even if they are not in your contact list.')],
-       ]);
-
        $tpl_addr = Renderer::getMarkupTemplate('settings/nick_set.tpl');
 
        $prof_addr = Renderer::replaceMacros($tpl_addr,[
@@ -870,18 +837,6 @@ function settings_content(App $a)
 
        $stpl = Renderer::getMarkupTemplate('settings/settings.tpl');
 
-       $expire_arr = [
-               'days' => ['expire',  DI::l10n()->t("Automatically expire posts after this many days:"), $expire, DI::l10n()->t('If empty, posts will not expire. Expired posts will be deleted')],
-               'label' => DI::l10n()->t('Expiration settings'),
-               'items' => ['expire_items', DI::l10n()->t('Expire posts'), $expire_items, DI::l10n()->t('When activated, posts and comments will be expired.')],
-               'notes' => ['expire_notes', DI::l10n()->t('Expire personal notes'), $expire_notes, DI::l10n()->t('When activated, the personal notes on your profile page will be expired.')],
-               'starred' => ['expire_starred', DI::l10n()->t('Expire starred posts'), $expire_starred, DI::l10n()->t('Starring posts keeps them from being expired. That behaviour is overwritten by this setting.')],
-               'photos' => ['expire_photos', DI::l10n()->t('Expire photos'), $expire_photos, DI::l10n()->t('When activated, photos will be expired.')],
-               'network_only' => ['expire_network_only', DI::l10n()->t('Only expire posts by others'), $expire_network_only, DI::l10n()->t('When activated, your own posts never expire. Then the settings above are only valid for posts you received.')],
-       ];
-
-       $group_select = Group::displayGroupSelection(local_user(), $a->user['def_gid']);
-
        // Private/public post links for the non-JS ACL form
        $private_post = 1;
        if (!empty($_REQUEST['public']) && !$_REQUEST['public']) {
@@ -932,40 +887,32 @@ function settings_content(App $a)
                '$defloc'       => ['defloc', DI::l10n()->t('Default Post Location:'), $defloc, ''],
                '$allowloc' => ['allow_location', DI::l10n()->t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''],
 
-
-               '$h_prv'        => DI::l10n()->t('Security and Privacy Settings'),
-
-               '$maxreq'       => ['maxreq', DI::l10n()->t('Maximum Friend Requests/Day:'), $maxreq , DI::l10n()->t("\x28to prevent spam abuse\x29")],
-               '$permissions' => DI::l10n()->t('Default Post Permissions'),
-               '$visibility' => $profile['net-publish'],
-               '$aclselect' => ACL::getFullSelectorHTML(DI::page(), $a->user),
-               '$blockwall'=> $blockwall, // array('blockwall', DI::l10n()->t('Allow friends to post to your profile page:'), !$blockwall, ''),
-               '$blocktags'=> $blocktags, // array('blocktags', DI::l10n()->t('Allow friends to tag your posts:'), !$blocktags, ''),
-
-               // ACL permissions box
-               '$group_perms' => DI::l10n()->t('Show to Groups'),
-               '$contact_perms' => DI::l10n()->t('Show to Contacts'),
-               '$private' => DI::l10n()->t('Default Private Post'),
-               '$public' => DI::l10n()->t('Default Public Post'),
-               '$is_private' => $private_post,
-               '$return_path' => $query_str,
-               '$public_link' => $public_post_link,
-               '$settings_perms' => DI::l10n()->t('Default Permissions for New Posts'),
-
-               '$group_select' => $group_select,
-
-
-               '$expire'       => $expire_arr,
-
-               '$profile_in_dir' => $profile_in_dir,
-               '$profile_in_net_dir' => $profile_in_net_dir,
-               '$hide_friends' => $hide_friends,
-               '$hide_wall' => $hide_wall,
-               '$unlisted' => $unlisted,
-               '$accessiblephotos' => $accessiblephotos,
-               '$unkmail' => $unkmail,
-               '$cntunkmail'   => ['cntunkmail', DI::l10n()->t('Maximum private messages per day from unknown people:'), $cntunkmail , DI::l10n()->t("\x28to prevent spam abuse\x29")],
-
+               '$h_prv'                  => DI::l10n()->t('Security and Privacy Settings'),
+               '$visibility'         => $profile['net-publish'],
+               '$maxreq'                 => ['maxreq', DI::l10n()->t('Maximum Friend Requests/Day:'), $maxreq , DI::l10n()->t("\x28to prevent spam abuse\x29")],
+               '$profile_in_dir'     => $profile_in_dir,
+               '$profile_in_net_dir' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc],
+               '$hide_friends'       => ['hide-friends', DI::l10n()->t('Hide your contact/friend list from viewers of your profile?'), $profile['hide-friends'], DI::l10n()->t('A list of your contacts is displayed on your profile page. Activate this option to disable the display of your contact list.')],
+               '$hide_wall'          => ['hidewall', DI::l10n()->t('Hide your profile details from anonymous viewers?'), $a->user['hidewall'], DI::l10n()->t('Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means.')],
+               '$unlisted'           => ['unlisted', DI::l10n()->t('Make public posts unlisted'), DI::pConfig()->get(local_user(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community pages or in search results, nor be sent to relay servers. However they can still appear on public feeds on remote servers.')],
+               '$accessiblephotos'   => ['accessible-photos', DI::l10n()->t('Make all posted pictures accessible'), DI::pConfig()->get(local_user(), 'system', 'accessible-photos'), DI::l10n()->t("This option makes every posted picture accessible via the direct link. This is a workaround for the problem that most other networks can't handle permissions on pictures. Non public pictures still won't be visible for the public on your photo albums though.")],
+               '$blockwall'          => ['blockwall', DI::l10n()->t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), DI::l10n()->t('Your contacts may write posts on your profile wall. These posts will be distributed to your contacts')], // array('blockwall', DI::l10n()->t('Allow friends to post to your profile page:'), !$blockwall, ''),
+               '$blocktags'          => ['blocktags', DI::l10n()->t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), DI::l10n()->t('Your contacts can add additional tags to your posts.')], // array('blocktags', DI::l10n()->t('Allow friends to tag your posts:'), !$blocktags, ''),
+               '$unkmail'            => ['unkmail', DI::l10n()->t('Permit unknown people to send you private mail?'), $unkmail, DI::l10n()->t('Friendica network users may send you private messages even if they are not in your contact list.')],
+               '$cntunkmail'         => ['cntunkmail', DI::l10n()->t('Maximum private messages per day from unknown people:'), $cntunkmail , DI::l10n()->t("\x28to prevent spam abuse\x29")],
+               '$group_select'       => Group::displayGroupSelection(local_user(), $a->user['def_gid']),
+               '$permissions'        => DI::l10n()->t('Default Post Permissions'),
+               '$aclselect'          => ACL::getFullSelectorHTML(DI::page(), $a->user),
+
+               '$expire' => [
+                       'label'        => DI::l10n()->t('Expiration settings'),
+                       'days'         => ['expire',  DI::l10n()->t("Automatically expire posts after this many days:"), $expire, DI::l10n()->t('If empty, posts will not expire. Expired posts will be deleted')],
+                       'items'        => ['expire_items', DI::l10n()->t('Expire posts'), $expire_items, DI::l10n()->t('When activated, posts and comments will be expired.')],
+                       'notes'        => ['expire_notes', DI::l10n()->t('Expire personal notes'), $expire_notes, DI::l10n()->t('When activated, the personal notes on your profile page will be expired.')],
+                       'starred'      => ['expire_starred', DI::l10n()->t('Expire starred posts'), $expire_starred, DI::l10n()->t('Starring posts keeps them from being expired. That behaviour is overwritten by this setting.')],
+                       'photos'       => ['expire_photos', DI::l10n()->t('Expire photos'), $expire_photos, DI::l10n()->t('When activated, photos will be expired.')],
+                       'network_only' => ['expire_network_only', DI::l10n()->t('Only expire posts by others'), $expire_network_only, DI::l10n()->t('When activated, your own posts never expire. Then the settings above are only valid for posts you received.')],
+               ],
 
                '$h_not'        => DI::l10n()->t('Notification Settings'),
                '$lbl_not'      => DI::l10n()->t('Send a notification email when:'),
index fe83ebf0c5ae33a32f80173976dd1f13de94b7de..bd0fa5f2023680ddec5a18839932b084d1b4bacf 100644 (file)
 
 {{$nickname_block nofilter}}
 
-<form action="settings" id="settings-form" method="post" autocomplete="off" enctype="multipart/form-data" >
-<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$h_pass}}</a></h3>
-<div class="settings-content-block">
-{{include file="field_password.tpl" field=$password1}}
-{{include file="field_password.tpl" field=$password2}}
-{{include file="field_password.tpl" field=$password3}}
-
-{{if $oid_enable}}
-{{include file="field_input.tpl" field=$openid}}
-{{/if}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$h_basic}}</a></h3>
-<div class="settings-content-block">
-
-{{include file="field_input.tpl" field=$username}}
-{{include file="field_input.tpl" field=$email}}
-{{include file="field_password.tpl" field=$password4}}
-{{include file="field_custom.tpl" field=$timezone}}
-{{include file="field_select.tpl" field=$language}}
-{{include file="field_input.tpl" field=$defloc}}
-{{include file="field_checkbox.tpl" field=$allowloc}}
-
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-
-
-<h3 class="settings-heading"><a href="javascript:;">{{$h_prv}}</a></h3>
-<div class="settings-content-block">
-
-<input type="hidden" name="visibility" value="{{$visibility}}" />
-
-{{include file="field_input.tpl" field=$maxreq}}
-
-{{$profile_in_dir nofilter}}
-
-{{$profile_in_net_dir nofilter}}
-
-{{$hide_friends nofilter}}
-
-{{$hide_wall nofilter}}
-
-{{$unlisted nofilter}}
-
-{{$accessiblephotos nofilter}}
-
-{{$blockwall nofilter}}
-
-{{$blocktags nofilter}}
-
-{{$unkmail nofilter}}
-
-{{include file="field_input.tpl" field=$cntunkmail}}
-
-{{$group_select nofilter}}
-
-<h3>{{$permissions}}</h3>
-
-{{$aclselect nofilter}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$expire.label}}</a></h3>
-<div class="settings-content-block">
-<div id="settings-expiry">
-{{include file="field_input.tpl" field=$expire.days}}
-{{include file="field_checkbox.tpl" field=$expire.items}}
-{{include file="field_checkbox.tpl" field=$expire.notes}}
-{{include file="field_checkbox.tpl" field=$expire.starred}}
-{{include file="field_checkbox.tpl" field=$expire.network_only}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$h_not}}</a></h3>
-<div class="settings-content-block">
-<div id="settings-notifications">
-
-<div id="settings-notification-desc">{{$lbl_not}}</div>
-
-<div class="group">
-{{include file="field_intcheckbox.tpl" field=$notify1}}
-{{include file="field_intcheckbox.tpl" field=$notify2}}
-{{include file="field_intcheckbox.tpl" field=$notify3}}
-{{include file="field_intcheckbox.tpl" field=$notify4}}
-{{include file="field_intcheckbox.tpl" field=$notify5}}
-{{include file="field_intcheckbox.tpl" field=$notify6}}
-{{include file="field_intcheckbox.tpl" field=$notify7}}
-{{include file="field_intcheckbox.tpl" field=$notify8}}
-</div>
-
-{{include file="field_checkbox.tpl" field=$email_textonly}}
-{{include file="field_checkbox.tpl" field=$detailed_notif}}
-
-{{include file="field_checkbox.tpl" field=$desktop_notifications}}
-<script>
-(function(){
-       let $notificationField = $("#div_id_{{$desktop_notifications.0}}");
-       let $notificationCheckbox = $("#id_{{$desktop_notifications.0}}");
-
-       if (getNotificationPermission() === 'granted') {
-               $notificationCheckbox.prop('checked', true);
-       }
-       if (getNotificationPermission() === null) {
-               $notificationField.hide();
-       }
-
-       $notificationCheckbox.on('change', function(e) {
-               if (Notification.permission === 'granted') {
-                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
-               } else if (Notification.permission === 'denied') {
-                       localStorage.setItem('notification-permissions', 'denied');
-
-                       $notificationCheckbox.prop('checked', false);
-               } else if (Notification.permission === 'default') {
-                       Notification.requestPermission(function(choice) {
-                               if (choice === 'granted') {
-                                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
-                               } else {
-                                       localStorage.setItem('notification-permissions', 'denied');
-                                       $notificationCheckbox.prop('checked', false);
-                               }
-                       });
-               }
-       })
-})();
-</script>
-
-</div>
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$h_advn}}</a></h3>
-<div class="settings-content-block">
-<div id="settings-pagetype-desc">{{$h_descadvn}}</div>
-
-{{$pagetype nofilter}}
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$importcontact}}</a></h3>
-<div class="settings-content-block">
-<input type="hidden" name="MAX_FILE_SIZE" value="{{$importcontact_maxsize}}" />
-<div id="settings-pagetype-desc">{{$importcontact_text}}</div>
-<input type="file" name="importcontact-filename" />
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="importcontact-submit" class="importcontact-submit" value="{{$importcontact_button}}" />
-</div>
-</div>
-
-<h3 class="settings-heading"><a href="javascript:;">{{$relocate}}</a></h3>
-<div class="settings-content-block">
-<div id="settings-pagetype-desc">{{$relocate_text}}</div>
-
-<div class="settings-submit-wrapper" >
-<input type="submit" name="resend_relocate" class="settings-submit" value="{{$relocate_button}}" />
-</div>
-</div>
+<form action="settings" id="settings-form" method="post" autocomplete="off" enctype="multipart/form-data">
+       <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$h_pass}}</a></h2>
+       <div class="settings-content-block">
+               {{include file="field_password.tpl" field=$password1}}
+               {{include file="field_password.tpl" field=$password2}}
+               {{include file="field_password.tpl" field=$password3}}
+
+               {{if $oid_enable}}
+                       {{include file="field_input.tpl" field=$openid}}
+               {{/if}}
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$h_basic}}</a></h2>
+       <div class="settings-content-block">
+
+               {{include file="field_input.tpl" field=$username}}
+               {{include file="field_input.tpl" field=$email}}
+               {{include file="field_password.tpl" field=$password4}}
+               {{include file="field_custom.tpl" field=$timezone}}
+               {{include file="field_select.tpl" field=$language}}
+               {{include file="field_input.tpl" field=$defloc}}
+               {{include file="field_checkbox.tpl" field=$allowloc}}
+
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$h_prv}}</a></h2>
+       <div class="settings-content-block">
+
+               <input type="hidden" name="visibility" value="{{$visibility}}"/>
+
+               {{include file="field_input.tpl" field=$maxreq}}
+
+               {{$profile_in_dir nofilter}}
+
+               {{include file="field_checkbox.tpl" field=$profile_in_net_dir}}
+               {{include file="field_checkbox.tpl" field=$hide_friends}}
+               {{include file="field_checkbox.tpl" field=$hide_wall}}
+               {{include file="field_checkbox.tpl" field=$unlisted}}
+               {{include file="field_checkbox.tpl" field=$accessiblephotos}}
+               {{include file="field_checkbox.tpl" field=$blockwall}}
+               {{include file="field_checkbox.tpl" field=$blocktags}}
+               {{include file="field_checkbox.tpl" field=$unkmail}}
+               {{include file="field_input.tpl" field=$cntunkmail}}
+
+               {{$group_select nofilter}}
+
+               <h3>{{$permissions}}</h3>
+
+               {{$aclselect nofilter}}
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$expire.label}}</a></h2>
+       <div class="settings-content-block">
+               <div id="settings-expiry">
+                       {{include file="field_input.tpl" field=$expire.days}}
+                       {{include file="field_checkbox.tpl" field=$expire.items}}
+                       {{include file="field_checkbox.tpl" field=$expire.notes}}
+                       {{include file="field_checkbox.tpl" field=$expire.starred}}
+                       {{include file="field_checkbox.tpl" field=$expire.network_only}}
+
+                       <div class="settings-submit-wrapper">
+                               <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+                       </div>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$h_not}}</a></h2>
+       <div class="settings-content-block">
+               <div id="settings-notifications">
+
+                       <div id="settings-notification-desc">{{$lbl_not}}</div>
+
+                       <div class="group">
+                               {{include file="field_intcheckbox.tpl" field=$notify1}}
+                               {{include file="field_intcheckbox.tpl" field=$notify2}}
+                               {{include file="field_intcheckbox.tpl" field=$notify3}}
+                               {{include file="field_intcheckbox.tpl" field=$notify4}}
+                               {{include file="field_intcheckbox.tpl" field=$notify5}}
+                               {{include file="field_intcheckbox.tpl" field=$notify6}}
+                               {{include file="field_intcheckbox.tpl" field=$notify7}}
+                               {{include file="field_intcheckbox.tpl" field=$notify8}}
+                       </div>
+
+                       {{include file="field_checkbox.tpl" field=$email_textonly}}
+                       {{include file="field_checkbox.tpl" field=$detailed_notif}}
+
+                       {{include file="field_checkbox.tpl" field=$desktop_notifications}}
+                       <script>
+                               (function () {
+                                       let $notificationField = $("#div_id_{{$desktop_notifications.0}}");
+                                       let $notificationCheckbox = $("#id_{{$desktop_notifications.0}}");
+
+                                       if (getNotificationPermission() === 'granted') {
+                                               $notificationCheckbox.prop('checked', true);
+                                       }
+                                       if (getNotificationPermission() === null) {
+                                               $notificationField.hide();
+                                       }
+
+                                       $notificationCheckbox.on('change', function (e) {
+                                               if (Notification.permission === 'granted') {
+                                                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
+                                               } else if (Notification.permission === 'denied') {
+                                                       localStorage.setItem('notification-permissions', 'denied');
+
+                                                       $notificationCheckbox.prop('checked', false);
+                                               } else if (Notification.permission === 'default') {
+                                                       Notification.requestPermission(function (choice) {
+                                                               if (choice === 'granted') {
+                                                                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
+                                                               } else {
+                                                                       localStorage.setItem('notification-permissions', 'denied');
+                                                                       $notificationCheckbox.prop('checked', false);
+                                                               }
+                                                       });
+                                               }
+                                       })
+                               })();
+                       </script>
+
+               </div>
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$h_advn}}</a></h2>
+       <div class="settings-content-block">
+               <div id="settings-pagetype-desc">{{$h_descadvn}}</div>
+
+               {{$pagetype nofilter}}
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$importcontact}}</a></h2>
+       <div class="settings-content-block">
+               <input type="hidden" name="MAX_FILE_SIZE" value="{{$importcontact_maxsize}}"/>
+               <div id="settings-pagetype-desc">{{$importcontact_text}}</div>
+               <input type="file" name="importcontact-filename"/>
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="importcontact-submit" class="importcontact-submit" value="{{$importcontact_button}}"/>
+               </div>
+       </div>
+
+       <h2 class="settings-heading"><a href="javascript:;">{{$relocate}}</a></h2>
+       <div class="settings-content-block">
+               <div id="settings-pagetype-desc">{{$relocate_text}}</div>
+
+               <div class="settings-submit-wrapper">
+                       <input type="submit" name="resend_relocate" class="settings-submit" value="{{$relocate_button}}"/>
+               </div>
+       </div>
index 5ace932ea1bd2d2f3a85bf235ca0e01168461895..d0a4c39e481233c89c2e07edc5aae0b9435e3698 100644 (file)
@@ -2904,6 +2904,12 @@ details.profile-jot-net[open] summary:before {
     font-size: 18px;
 }
 
+.section-subtitle-wrapper > h2 {
+       font-size: 18px;
+       margin-top: 10px;
+       margin-bottom: 10px;
+}
+
 .fakelink > h3:before {
     padding-right: 10px;
 }
index 40c1d85ddf30888ce6e45a47f2ca82a1b7bda395..626d3b4d03a4985e6a95d6ee9c1f976274e3124a 100644 (file)
@@ -1,54 +1,50 @@
 <div class="generic-page-wrapper">
-       {{* include the title template for the settings title *}}
-       {{include file="section_title.tpl" title=$ptitle }}
+       <h1>{{$ptitle}}</h1>
 
        {{$nickname_block nofilter}}
 
        <form action="settings" id="settings-form" method="post" autocomplete="off" enctype="multipart/form-data">
-               <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+               <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
 
                {{* We organize the settings in collapsable panel-groups *}}
                <div class="panel-group panel-group-settings" id="settings" role="tablist" aria-multiselectable="true">
                        {{* The password setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="password-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="password-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#password-settings-collapse" aria-expanded="false" aria-controls="password-settings-collapse">
                                                        {{$h_pass}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="password-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="password-settings">
-                                       <div class="section-content-tools-wrapper">
+                                       <div class="panel-body">
                                                {{include file="field_password.tpl" field=$password1}}
                                                {{include file="field_password.tpl" field=$password2}}
                                                {{include file="field_password.tpl" field=$password3}}
 
-                                               {{if $oid_enable}}
+                                       {{if $oid_enable}}
                                                {{include file="field_input.tpl" field=$openid}}
                                                {{include file="field_checkbox.tpl" field=$delete_openid}}
-                                               {{/if}}
-
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       {{/if}}
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* The basic setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="basic-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="basic-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#basic-settings-collapse" aria-expanded="false" aria-controls="basic-settings-collapse">
                                                        {{$h_basic}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="basic-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="basic-settings">
-                                       <div class="section-content-tools-wrapper">
-
+                                       <div class="panel-body">
                                                {{include file="field_input.tpl" field=$username}}
                                                {{include file="field_input.tpl" field=$email}}
                                                {{include file="field_password.tpl" field=$password4}}
                                                {{include file="field_select.tpl" field=$language}}
                                                {{include file="field_input.tpl" field=$defloc}}
                                                {{include file="field_checkbox.tpl" field=$allowloc}}
-
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* The privacity setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="privacy-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="privacy-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#privacy-settings-collapse" aria-expanded="false" aria-controls="privacy-settings-collapse">
                                                        {{$h_prv}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="privacy-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="privacy-settings">
-                                       <div class="section-content-tools-wrapper">
+                                       <div class="panel-body">
 
                                                <input type="hidden" name="visibility" value="{{$visibility}}" />
 
 
                                                {{$profile_in_dir nofilter}}
 
-                                               {{$profile_in_net_dir nofilter}}
-
-                                               {{$hide_friends nofilter}}
-
-                                               {{$hide_wall nofilter}}
-
-                                               {{$unlisted nofilter}}
-
-                                               {{$accessiblephotos nofilter}}
-
-                                               {{$blockwall nofilter}}
-
-                                               {{$blocktags nofilter}}
-
-                                               {{$unkmail nofilter}}
-
+                                               {{include file="field_checkbox.tpl" field=$profile_in_net_dir}}
+                                               {{include file="field_checkbox.tpl" field=$hide_friends}}
+                                               {{include file="field_checkbox.tpl" field=$hide_wall}}
+                                               {{include file="field_checkbox.tpl" field=$unlisted}}
+                                               {{include file="field_checkbox.tpl" field=$accessiblephotos}}
+                                               {{include file="field_checkbox.tpl" field=$blockwall}}
+                                               {{include file="field_checkbox.tpl" field=$blocktags}}
+                                               {{include file="field_checkbox.tpl" field=$unkmail}}
                                                {{include file="field_input.tpl" field=$cntunkmail}}
 
                                                {{$group_select nofilter}}
 
-                                               <h4>{{$permissions}}</h4>
+                                               <h3>{{$permissions}}</h3>
 
                                                {{$aclselect nofilter}}
-
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
-                                               </div>
-                                               <div class="clear"></div>
-
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="expire-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="expire-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#expire-settings-collapse" aria-expanded="false" aria-controls="expire-settings-collapse">
                                                        {{$expire.label}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="expire-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="expire-settings">
-                                       <div class="section-content-tools-wrapper">
-
+                                       <div class="panel-body">
                                                {{include file="field_input.tpl" field=$expire.days}}
 
                                                {{include file="field_checkbox.tpl" field=$expire.items}}
                                                {{include file="field_checkbox.tpl" field=$expire.notes}}
                                                {{include file="field_checkbox.tpl" field=$expire.starred}}
                                                {{include file="field_checkbox.tpl" field=$expire.network_only}}
-
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* The notification setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="notification-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="notification-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#notification-settings-collapse" aria-expanded="false" aria-controls="notification-settings-collapse">
                                                        {{$h_not}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="notification-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="notification-settings">
-                                       <div class="section-content-tools-wrapper">
-                                               <div id="settings-notifications">
-
-                                                       <div id="settings-notification-desc"><h4>{{$lbl_not}}</h4></div>
-
-                                                       <div class="group">
-                                                               {{include file="field_intcheckbox.tpl" field=$notify1}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify2}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify3}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify4}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify5}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify6}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify7}}
-                                                               {{include file="field_intcheckbox.tpl" field=$notify8}}
-                                                       </div>
-
-                                                       {{include file="field_checkbox.tpl" field=$email_textonly}}
-                                                       {{include file="field_checkbox.tpl" field=$detailed_notif}}
-
-                                                       {{* commented out because it was commented out in the original template
-                                                       <div class="field">
-                                                        <button type="button" onclick="javascript:Notification.requestPermission(function(perm){if(perm === 'granted')alert('{{$desktop_notifications_success_message}}');});">{{$desktop_notifications}}</button>
-                                                        <span class="field_help">{{$desktop_notifications_note}}</span>
-                                                       </div>
-                                                       *}}
-
-                                                       {{include file="field_checkbox.tpl" field=$desktop_notifications}}
-                                                       <script type="text/javascript">
-                                                               (function(){
-                                                                       let $notificationField = $("#div_id_{{$desktop_notifications.0}}");
-                                                                       let $notificationCheckbox = $("#id_{{$desktop_notifications.0}}");
-
-                                                                       if (getNotificationPermission() === 'granted') {
-                                                                               $notificationCheckbox.prop('checked', true);
-                                                                       }
-                                                                       if (getNotificationPermission() === null) {
-                                                                               $notificationField.hide();
-                                                                       }
-
-                                                                       $notificationCheckbox.on('change', function(e){
-                                                                               if (Notification.permission === 'granted') {
-                                                                                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
-                                                                               } else if (Notification.permission === 'denied') {
-                                                                                       localStorage.setItem('notification-permissions', 'denied');
-
-                                                                                       $notificationCheckbox.prop('checked', false);
-                                                                               } else if (Notification.permission === 'default') {
-                                                                                       Notification.requestPermission(function(choice) {
-                                                                                               if (choice === 'granted') {
-                                                                                                       localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
-                                                                                               } else {
-                                                                                                       localStorage.setItem('notification-permissions', 'denied');
-                                                                                                       $notificationCheckbox.prop('checked', false);
-                                                                                               }
-                                                                                       });
-                                                                               }
-                                                                       })
-                                                               })();
-                                                       </script>
+                                       <div id="settings-notifications" class="panel-body">
+
+                                               <div id="settings-notification-desc">{{$lbl_not}}</div>
+
+                                               <div class="group">
+                                                       {{include file="field_intcheckbox.tpl" field=$notify1}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify2}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify3}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify4}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify5}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify6}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify7}}
+                                                       {{include file="field_intcheckbox.tpl" field=$notify8}}
                                                </div>
 
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
+                                               {{include file="field_checkbox.tpl" field=$email_textonly}}
+                                               {{include file="field_checkbox.tpl" field=$detailed_notif}}
+
+                                               {{* commented out because it was commented out in the original template
+                                               <div class="field">
+                                                <button type="button" onclick="javascript:Notification.requestPermission(function(perm){if(perm === 'granted')alert('{{$desktop_notifications_success_message}}');});">{{$desktop_notifications}}</button>
+                                                <span class="field_help">{{$desktop_notifications_note}}</span>
                                                </div>
-                                               <div class="clear"></div>
+                                               *}}
+
+                                               {{include file="field_checkbox.tpl" field=$desktop_notifications}}
+                                               <script type="text/javascript">
+                                                       (function(){
+                                                               let $notificationField = $("#div_id_{{$desktop_notifications.0}}");
+                                                               let $notificationCheckbox = $("#id_{{$desktop_notifications.0}}");
+
+                                                               if (getNotificationPermission() === 'granted') {
+                                                                       $notificationCheckbox.prop('checked', true);
+                                                               }
+                                                               if (getNotificationPermission() === null) {
+                                                                       $notificationField.hide();
+                                                               }
+
+                                                               $notificationCheckbox.on('change', function(e){
+                                                                       if (Notification.permission === 'granted') {
+                                                                               localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
+                                                                       } else if (Notification.permission === 'denied') {
+                                                                               localStorage.setItem('notification-permissions', 'denied');
+
+                                                                               $notificationCheckbox.prop('checked', false);
+                                                                       } else if (Notification.permission === 'default') {
+                                                                               Notification.requestPermission(function(choice) {
+                                                                                       if (choice === 'granted') {
+                                                                                               localStorage.setItem('notification-permissions', $notificationCheckbox.prop('checked') ? 'granted' : 'denied');
+                                                                                       } else {
+                                                                                               localStorage.setItem('notification-permissions', 'denied');
+                                                                                               $notificationCheckbox.prop('checked', false);
+                                                                                       }
+                                                                               });
+                                                                       }
+                                                               })
+                                                       })();
+                                               </script>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* The additional account setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="additional-account-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="additional-account-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#additional-account-settings-collapse" aria-expanded="false" aria-controls="additional-account-settings-collapse">
                                                        {{$h_advn}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="additional-account-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="additional-account-settings">
-                                       <div class="section-content-tools-wrapper">
-
+                                       <div class="panel-body">
                                                <div id="settings-pagetype-desc">{{$h_descadvn}}</div>
 
                                                {{$pagetype nofilter}}
-
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* Import contacts CSV *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="importcontact-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="importcontact-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#importcontact-settings-collapse" aria-expanded="false" aria-controls="importcontact-settings-collapse">
                                                        {{$importcontact}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="importcontact-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="importcontact-settings">
-                                       <div class="section-content-tools-wrapper">
-
+                                       <div class="panel-body">
                                                <div id="importcontact-relocate-desc">{{$importcontact_text}}</div>
                                                <input type="hidden" name="MAX_FILE_SIZE" value="{{$importcontact_maxsize}}" />
                                                <input type="file" name="importcontact-filename" />
-
-                                               <br/>
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="importcontact-submit" class="btn btn-primary" value="{{$importcontact_button}}">{{$importcontact_button}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>
 
                        {{* The relocate setting section *}}
                        <div class="panel">
-                               <div class="section-subtitle-wrapper" role="tab" id="relocate-settings">
-                                       <h4>
+                               <div class="section-subtitle-wrapper panel-heading" role="tab" id="relocate-settings">
+                                       <h2>
                                                <a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#relocate-settings-collapse" aria-expanded="false" aria-controls="relocate-settings-collapse">
                                                        {{$relocate}}
                                                </a>
-                                       </h4>
+                                       </h2>
                                </div>
                                <div id="relocate-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="relocate-settings">
-                                       <div class="section-content-tools-wrapper">
-
+                                       <div class="panel-body">
                                                <div id="settings-relocate-desc">{{$relocate_text}}</div>
-
-                                               <br/>
-                                               <div class="form-group pull-right settings-submit-wrapper" >
-                                                       <button type="submit" name="resend_relocate" class="btn btn-primary" value="{{$relocate_button}}">{{$relocate_button}}</button>
-                                               </div>
-                                               <div class="clear"></div>
+                                       </div>
+                                       <div class="panel-footer">
+                                               <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>
                                        </div>
                                </div>
                        </div>