Improve connectors settings display

- Move settings templates to subfolder
- Add accordion display to "General Theme Settings" in frio
- Replace hand-written template with form field includes
- Simplify sprintf(t()) structures
This commit is contained in:
Hypolite Petovan 2018-01-05 02:17:36 -05:00
parent 5640c42469
commit c157e7ffa4
26 changed files with 136 additions and 94 deletions

View file

@ -0,0 +1,70 @@
<div class="generic-page-wrapper">
{{* include the title template for the settings title *}}
{{include file="section_title.tpl" title=$title}}
<p class="connector_statusmsg">{{$diasp_enabled}}</p>
<p class="connector_statusmsg">{{$ostat_enabled}}</p>
<form action="settings/connectors" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div class="panel-group panel-group-settings" id="settings" role="tablist" aria-multiselectable="true">
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="content-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#content-settings-content" aria-expanded="false" aria-controls="content-settings-content">
{{$general_settings}}
</a>
</h4>
</div>
<div id="content-settings-content" class="panel-collapse collapse" role="tabpanel" aria-labelledby="content-settings">
<div class="section-content-wrapper">
{{include file="field_checkbox.tpl" field=$no_intelligent_shortening}}
{{include file="field_checkbox.tpl" field=$ostatus_autofriend}}
{{$default_group}}
{{include file="field_input.tpl" field=$legacy_contact}}
<p><a href="{{$repair_ostatus_url}}">{{$repair_ostatus_text}}</a></p>
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
{{$settings_connectors}}
{{if $mail_disabled}}
{{else}}
<span id="settings_mail_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose('settings_mail_expanded'); openClose('settings_mail_inflated');">
<img class="connector" src="images/mail.png" /><h3 class="settings-heading connector">{{$h_imap}}</h3>
</span>
<div id="settings_mail_expanded" class="settings-block" style="display: none;">
<span class="fakelink" onclick="openClose('settings_mail_expanded'); openClose('settings_mail_inflated');">
<img class="connector" src="images/mail.png" /><h3 class="settings-heading connector">{{$h_imap}}</h3>
</span>
<p>{{$imap_desc}}</p>
{{include file="field_custom.tpl" field=$imap_lastcheck}}
{{include file="field_input.tpl" field=$mail_server}}
{{include file="field_input.tpl" field=$mail_port}}
{{include file="field_select.tpl" field=$mail_ssl}}
{{include file="field_input.tpl" field=$mail_user}}
{{include file="field_password.tpl" field=$mail_pass}}
{{include file="field_input.tpl" field=$mail_replyto}}
{{include file="field_checkbox.tpl" field=$mail_pubmail}}
{{include file="field_select.tpl" field=$mail_action}}
{{include file="field_input.tpl" field=$mail_movetofolder}}
<div class="settings-submit-wrapper" >
<input type="submit" id="imap-submit" name="imap-submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
</div>
</div>
{{/if}}
</form>
</div>

View file

@ -0,0 +1,110 @@
<div class="generic-page-wrapper">
{{* include the title template for the settings title *}}
{{include file="section_title.tpl" title=$ptitle }}
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div class="panel-group panel-group-settings" id="settings" role="tablist" aria-multiselectable="true">
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="theme-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#theme-settings-content" aria-expanded="true" aria-controls="theme-settings-content">
{{$d_tset}}
</a>
</h4>
</div>
<div id="theme-settings-content" class="panel-collapse collapse" role="tabpanel" aria-labelledby="theme-settings">
<div class="section-content-tools-wrapper">
{{include file="field_themeselect.tpl" field=$theme}}
{{* Show the mobile theme selection only if mobile themes are available *}}
{{if count($mobile_theme.4) > 1}}
{{include file="field_themeselect.tpl" field=$mobile_theme}}
{{/if}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="custom-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#custom-settings-content" aria-expanded="false" aria-controls="custom-settings-content">
{{$d_ctset}}
</a>
</h4>
</div>
<div id="custom-settings-content" class="panel-collapse collapse{{if !$theme && !$mobile_theme}} in{{/if}}" role="tabpanel" aria-labelledby="custom-settings">
<div class="section-content-tools-wrapper">
{{if $theme_config}}
{{$theme_config}}
{{/if}}
</div>
</div>
</div>
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="content-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#content-settings-content" aria-expanded="false" aria-controls="content-settings-content">
{{$d_cset}}
</a>
</h4>
</div>
<div id="content-settings-content" class="panel-collapse collapse{{if !$theme && !$mobile_theme && !$theme_config}} in{{/if}}" role="tabpanel" aria-labelledby="content-settings">
<div class="section-content-wrapper">
{{include file="field_input.tpl" field=$itemspage_network}}
{{include file="field_input.tpl" field=$itemspage_mobile_network}}
{{include file="field_input.tpl" field=$ajaxint}}
{{include file="field_checkbox.tpl" field=$nowarn_insecure}}
{{include file="field_checkbox.tpl" field=$no_auto_update}}
{{include file="field_checkbox.tpl" field=$nosmile}}
{{include file="field_checkbox.tpl" field=$noinfo}}
{{include file="field_checkbox.tpl" field=$infinite_scroll}}
{{include file="field_checkbox.tpl" field=$bandwidth_saver}}
{{include file="field_checkbox.tpl" field=$smart_threading}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="calendar-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#calendar-settings-content" aria-expanded="false" aria-controls="calendar-settings-content">
{{$calendar_title}}
</a>
</h4>
</div>
<div id="calendar-settings-content" class="panel-collapse collapse{{if !$theme && !$mobile_theme && !$theme_config}} in{{/if}}" role="tabpanel" aria-labelledby="calendar-settings">
<div class="section-content-wrapper">
{{include file="field_select.tpl" field=$first_day_of_week}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</form>
</div>

View file

@ -0,0 +1,36 @@
<div class="generic-page-wrapper">
{{* include the title template for the settings title *}}
{{include file="section_title.tpl" title=$title }}
<form action="settings/features" method="post" autocomplete="off">
<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">
{{foreach $features as $g => $f}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="{{$g}}-settings-title">
<h4>
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#settings" href="#{{$g}}-settings-content" aria-expanded="true" aria-controls="{{$g}}-settings-content">
{{$f.0}}
</a>
</h4>
</div>
<div id="{{$g}}-settings-content" class="panel-collapse collapse" role="tabpanel" aria-labelledby="{{$g}}-settings-title">
<div class="section-content-tools-wrapper">
{{foreach $f.1 as $fcat}}
{{include file="field_yesno.tpl" field=$fcat}}
{{/foreach}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{/foreach}}
</div>
</form>
</div>

View file

@ -0,0 +1,44 @@
<div class="generic-page-wrapper">
{{* include the title template for the settings title *}}
{{include file="section_title.tpl" title=$title }}
<form action="settings/oauth" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="profile-edit-links">
<ul>
{{*
I commented this out. Initially I wanted to to load the oauth/add into a modal dialog but settings.php
does need $a->argv[2] === 'add' to work and argv[2] isn't available if you load a modal
I leave it at this place as reminder that we need an other solution in settings.php
<li role="menuitem">
<a id="profile-edit-view-link" onclick="addToModal('{{$baseurl}}/settings/oauth/add')">{{$add}}</a>
</li>
*}}
<li role="menuitem">
<a id="profile-edit-view-link" href="{{$baseurl}}/settings/oauth/add">{{$add}}</a>
</li>
</ul>
</div>
{{foreach $apps as $app}}
<div class='oauthapp'>
<img src='{{$app.icon}}' class="{{if $app.icon}} {{else}}noicon{{/if}}">
{{if $app.name}}<h4>{{$app.name}}</h4>{{else}}<h4>{{$noname}}</h4>{{/if}}
{{if $app.my}}
{{if $app.oauth_token}}
<div class="settings-submit-wrapper" ><button class="settings-submit" type="submit" name="remove" value="{{$app.oauth_token}}">{{$remove}}</button></div>
{{/if}}
{{/if}}
{{if $app.my}}
<a href="{{$baseurl}}/settings/oauth/edit/{{$app.client_id}}" class="btn" title="{{$edit|escape:'html'}}"><i class="fa fa-pencil-square-o" aria-hidden="true"></i>&nbsp;</a>
<a href="{{$baseurl}}/settings/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" class="btn" title="{{$delete|escape:'html'}}"><i class="fa fa-trash" aria-hidden="true"></i></a>
{{/if}}
</div>
{{/foreach}}
</form>
</div>

View file

@ -0,0 +1,18 @@
<h2 class="heading">{{$title}}</h2>
<form method="POST">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_input.tpl" field=$name}}
{{include file="field_input.tpl" field=$key}}
{{include file="field_input.tpl" field=$secret}}
{{include file="field_input.tpl" field=$redirect}}
{{include file="field_input.tpl" field=$icon}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</form>

View file

@ -0,0 +1,308 @@
<div class="generic-page-wrapper">
{{* include the title template for the settings title *}}
{{include file="section_title.tpl" title=$ptitle }}
{{$nickname_block}}
<form action="settings" id="settings-form" method="post" autocomplete="off" >
<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>
<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>
</div>
<div id="password-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="password-settings">
<div class="section-content-tools-wrapper">
{{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="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{* The basic setting section *}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="basic-settings">
<h4>
<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>
</div>
<div id="basic-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="basic-settings">
<div class="section-content-tools-wrapper">
{{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="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{* The privacity setting section *}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="privacy-settings">
<h4>
<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>
</div>
<div id="privacy-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="privacy-settings">
<div class="section-content-tools-wrapper">
<input type="hidden" name="visibility" value="{{$visibility}}" />
{{include file="field_input.tpl" field=$maxreq}}
{{$profile_in_dir}}
{{$profile_in_net_dir}}
{{$hide_friends}}
{{$hide_wall}}
{{$blockwall}}
{{$blocktags}}
{{$suggestme}}
{{$unkmail}}
{{include file="field_input.tpl" field=$cntunkmail}}
{{include file="field_input.tpl" field=$expire.days}}
<div id="settings-advanced-expire">
<a id="advanced-expire-menu" title="{{$expire.advanced}}" data-toggle="modal" data-target="#aeModal">{{$expire.label}}</a>
{{* The modal for advanced-expire *}}
<div class="modal" id="aeModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{{$expire.advanced}}</h4>
</div>
<div class="modal-body">
{{include file="field_yesno.tpl" field=$expire.items}}
{{include file="field_yesno.tpl" field=$expire.notes}}
{{include file="field_yesno.tpl" field=$expire.starred}}
{{include file="field_yesno.tpl" field=$expire.network_only}}
</div>
</div>
</div>
</div>
</div>
{{* Block for setting default permissions *}}
<div id="settings-default-perms" class="settings-default-perms">
<a id="settings-default-perms-menu" class="settings-default-perms" data-toggle="modal" data-target="#aclModal">{{$permissions}} {{$permdesc}}</a>
<div id="settings-default-perms-menu-end"></div>
{{* We include the aclModal directly into the template since we cant use frio's default modal *}}
<div class="modal" id="aclModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{{$permissions}}</h4>
</div>
<div class="modal-body">
{{$aclselect}}
</div>
</div>
</div>
</div>
</div>
<br/>
<div class="clear"></div>
{{$group_select}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{* The notification setting section *}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="notification-settings">
<h4>
<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>
</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-activity-desc"><h4>{{$activity_options}}</h4></div>
<div class="group">
{{include file="field_checkbox.tpl" field=$post_newfriend}}
{{include file="field_checkbox.tpl" field=$post_joingroup}}
{{include file="field_checkbox.tpl" field=$post_profilechange}}
</div>
<div id="settings-notify-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_yesno.tpl" field=$desktop_notifications}}
<script type="text/javascript">
(function(){
var elm = $("#id_{{$desktop_notifications.0}}_onoff");
var ckbox = $("#id_{{$desktop_notifications.0}}");
if (getNotificationPermission() === 'granted') {
ckbox.val(1);
elm.find(".off").addClass("hidden");
elm.find(".on").removeClass("hidden");
}
if (getNotificationPermission() === null) {
elm.parent(".field.yesno").hide();
}
$("#id_{{$desktop_notifications.0}}_onoff").on("click", function(e){
if (Notification.permission === 'granted') {
localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
} else if (Notification.permission === 'denied') {
localStorage.setItem('notification-permissions', 'denied');
ckbox.val(0);
elm.find(".on").addClass("hidden");
elm.find(".off").removeClass("hidden");
} else if (Notification.permission === 'default') {
Notification.requestPermission(function(choice) {
if (choice === 'granted') {
localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
} else {
localStorage.setItem('notification-permissions', 'denied');
ckbox.val(0);
elm.find(".on").addClass("hidden");
elm.find(".off").removeClass("hidden");
}
});
}
//console.log(getNotificationPermission());
})
})();
</script>
</div>
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{* The additional account setting section *}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="additional-account-settings">
<h4>
<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>
</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 id="settings-pagetype-desc">{{$h_descadvn}}</div>
{{$pagetype}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
{{* The relocate setting section *}}
<div class="panel">
<div class="section-subtitle-wrapper" role="tab" id="relocate-settings">
<h4>
<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>
</div>
<div id="relocate-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="relocate-settings">
<div class="section-content-tools-wrapper">
<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|escape:'html'}}">{{$relocate_button|escape:'html'}}</button>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</form>
</div>