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,11 @@
<h1>{{$title}}</h1>
<form action="settings/addon" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{$settings_addons}}
</form>

View file

@ -0,0 +1,60 @@
<h1>{{$title}}</h1>
<div class="connector_statusmsg">{{$diasp_enabled}}</div>
<div class="connector_statusmsg">{{$ostat_enabled}}</div>
<form action="settings/connectors" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<span id="settings_general_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose('settings_general_expanded'); openClose('settings_general_inflated');">
<h3 class="connector">{{$general_settings}}</h3>
</span>
<div id="settings_general_expanded" class="settings-block" style="display: none;">
<span class="fakelink" onclick="openClose('settings_general_expanded'); openClose('settings_general_inflated');">
<h3 class="connector">{{$general_settings}}</h3>
</span>
{{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="settings-submit-wrapper" ><input type="submit" name="general-submit" class="settings-submit" value="{{$submit}}" /></div>
</div>
<div class="clear"></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>

View file

@ -0,0 +1,37 @@
<h1>{{$ptitle}}</h1>
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{include file="field_themeselect.tpl" field=$theme}}
{{include file="field_input.tpl" field=$itemspage_network}}
{{* 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}}
{{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}}
<h2>{{$calendar_title}}</h2>
{{include file="field_select.tpl" field=$first_day_of_week}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
</div>
{{if $theme_config}}
<h2>{{$stitle}}</h2>
{{$theme_config}}
{{/if}}
</form>

View file

View file

@ -0,0 +1,22 @@
<h1>{{$title}}</h1>
<form action="settings/features" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
{{foreach $features as $f}}
<h3 class="settings-heading"><a href="javascript:;">{{$f.0}}</a></h3>
<div class="settings-content-block">
{{foreach $f.1 as $fcat}}
{{include file="field_yesno.tpl" field=$fcat}}
{{/foreach}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-features-submit" value="{{$submit|escape:'html'}}" />
</div>
</div>
{{/foreach}}
</form>

View file

@ -0,0 +1,32 @@
<script>
var ispublic = "{{$ispublic}}";
$(document).ready(function() {
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-perms-icon').removeClass('unlock').addClass('lock');
$('#jot-public').hide();
});
if(selstr == null) {
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
$('#jot-public').show();
}
}).trigger('change');
$('.settings-content-block').hide();
$('.settings-heading').click(function(){
$('.settings-content-block').hide();
$(this).next('.settings-content-block').toggle();
});
});
</script>

View file

@ -0,0 +1,6 @@
<div id="settings-nick-wrapper" >
<div id="settings-nickname-desc" class="info-message">{{$desc}}</div>
</div>
<div id="settings-nick-end" ></div>

View file

@ -0,0 +1,32 @@
<h1>{{$title}}</h1>
<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>
<li>
<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="icon s22 edit" title="{{$edit|escape:'html'}}">&nbsp;</a>
<a href="{{$baseurl}}/settings/oauth/delete/{{$app.client_id}}?t={{$form_security_token}}" class="icon s22 delete" title="{{$delete|escape:'html'}}">&nbsp;</a>
{{/if}}
</div>
{{/foreach}}
</form>

View file

@ -0,0 +1,18 @@
<h1>{{$title}}</h1>
<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="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
<!-- <input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" /> -->
</div>
</form>

View file

@ -0,0 +1,71 @@
<h4>{{$account_types}}</h4>
{{include file="field_radio.tpl" field=$account_person}}
<div id="account-type-sub-0" class="pageflags">
<h5>{{$user}}</h5>
{{include file="field_radio.tpl" field=$page_normal}}
{{include file="field_radio.tpl" field=$page_soapbox}}
{{include file="field_radio.tpl" field=$page_freelove}}
</div>
{{include file="field_radio.tpl" field=$account_organisation}}
{{include file="field_radio.tpl" field=$account_news}}
{{include file="field_radio.tpl" field=$account_community}}
<div id="account-type-sub-3" class="pageflags">
<h5>{{$community}}</h5>
{{include file="field_radio.tpl" field=$page_community}}
{{include file="field_radio.tpl" field=$page_prvgroup}}
</div>
<script language="javascript" type="text/javascript">
// This js part changes the state of page-flags radio buttons according
// to the selected account type. For a translation of the different
// account-types and page-flags have a look in the define section in boot.php
var accountType = {{$account_type}};
$(document).ready(function(){
// Hide all DIV for page-flags expet the one which belongs to the present
// account-type
showPageFlags(accountType);
// Save the ID of the active page-flage
var activeFlag = $('[id^=id_page-flags_]:checked');
$("[id^=id_account-type_]").change(function(){
// Since the ID of the radio buttons containing the type of
// the account-type we catch the last character of the ID to
// know for what account-type the radio button stands for.
var type = this.id.substr(this.id.length - 1);
// Hide all DIV with page-flags and show only the one which belongs
// to the selected radio button
showPageFlags(type);
// Uncheck all page-flags radio buttons
$('input:radio[name="page-flags"]').prop("checked", false);
// If the selected account type is the active one mark the page-flag
// radio button as checked which is already by database state
if (accountType == type) {
$(activeFlag).prop("checked", true);
} else if (type == 1 || type == 2) {
// For account-type 1 or 2 the page-flags are always set to 1
$('#id_page-flags_1').prop("checked", true);
} else {
// Mark the first available page-flags radio button of the selected
// account-type as checked
$('#account-type-sub-' + type + ' input:radio[name="page-flags"]').first().prop("checked", true);
}
});
});
// Show/Hide the page-flags according to the selected account-type
function showPageFlags(type) {
$(".pageflags").hide();
if (type == 0 || type == 3) {
$("#account-type-sub-" + type).show();
}
}
</script>

View file

@ -0,0 +1,223 @@
<h1>{{$ptitle}}</h1>
{{$nickname_block}}
<form action="settings" id="settings-form" method="post" autocomplete="off" >
<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|escape:'html'}}" />
</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|escape:'html'}}" />
</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}}
{{$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 class="field input">
<span class="field_help"><a href="#advanced-expire-popup" id="advanced-expire" class='popupbox' title="{{$expire.advanced}}">{{$expire.label}}</a></span>
<div style="display: none;">
<div id="advanced-expire-popup" style="width:auto;height:auto;overflow:auto;">
<h3>{{$expire.advanced}}</h3>
{{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 id="settings-default-perms" class="settings-default-perms" >
<a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" class='popupbox'>{{$permissions}} {{$permdesc}}</a>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none; margin-bottom: 20px" >
<div style="display: none;">
<div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
{{$aclselect}}
</div>
</div>
</div>
</div>
<br/>
<div id="settings-default-perms-end"></div>
{{$group_select}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
</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-activity-desc">{{$activity_options}}</div>
{{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 id="settings-notify-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}}
<!--
<div class="field">
<button onclick="javascript:Notification.requestPermission(function(perm){if(perm === 'granted')alert('{{$desktop_notifications_success_message}}');});return false;">{{$desktop_notifications}}</button>
<span class="field_help">{{$desktop_notifications_note}}</span>
</div>
-->
{{include file="field_yesno.tpl" field=$desktop_notifications}}
<script>
(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="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
</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}}
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit|escape:'html'}}" />
</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|escape:'html'}}" />
</div>
</div>