Merge pull request #803 from pafcu/checkboxes
Checkboxyfy settings, style checkboxes as switches in redbasic
This commit is contained in:
commit
b54235234f
@ -596,13 +596,12 @@ function profiles_content(&$a) {
|
||||
|
||||
|
||||
$opt_tpl = get_markup_template("profile_hide_friends.tpl");
|
||||
$hide_friends = replace_macros($opt_tpl,array(
|
||||
'$desc' => t('Hide your contact/friend list from viewers of this profile?'),
|
||||
'$yes_str' => t('Yes'),
|
||||
'$no_str' => t('No'),
|
||||
'$yes_selected' => (($r[0]['hide_friends']) ? " checked=\"checked\" " : ""),
|
||||
'$no_selected' => (($r[0]['hide_friends'] == 0) ? " checked=\"checked\" " : "")
|
||||
));
|
||||
$hide_friends = replace_macros($opt_tpl,array('$field' => array(
|
||||
'hide-friends',
|
||||
t('Hide your contact/friend list from viewers of this profile?'),
|
||||
$r[0]['hide_friends'],
|
||||
'',
|
||||
)));
|
||||
|
||||
$q = q("select * from profdef where true");
|
||||
if($q) {
|
||||
|
@ -122,10 +122,19 @@ function settings_post(&$a) {
|
||||
|
||||
if((argc() > 1) && (argv(1) === 'features')) {
|
||||
check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
|
||||
foreach($_POST as $k => $v) {
|
||||
if(strpos($k,'feature_') === 0) {
|
||||
set_pconfig(local_user(),'feature',substr($k,8),((intval($v)) ? 1 : 0));
|
||||
}
|
||||
|
||||
// Build list of features and check which are set
|
||||
$features = get_features();
|
||||
$all_features = array();
|
||||
foreach($features as $k => $v) {
|
||||
foreach($v as $f)
|
||||
$all_features[] = $f[0];
|
||||
}
|
||||
foreach($all_features as $k) {
|
||||
if(x($_POST,"feature_$k"))
|
||||
set_pconfig(local_user(),'feature',$k, 1);
|
||||
else
|
||||
set_pconfig(local_user(),'feature',$k, 0);
|
||||
}
|
||||
build_sync_packet();
|
||||
return;
|
||||
@ -707,7 +716,6 @@ function settings_content(&$a) {
|
||||
'$title' => t('Additional Features'),
|
||||
'$features' => $arr,
|
||||
'$submit' => t('Submit'),
|
||||
'$field_yesno' => 'field_yesno.tpl',
|
||||
));
|
||||
|
||||
return $o;
|
||||
@ -938,7 +946,7 @@ function settings_content(&$a) {
|
||||
|
||||
$timezone = date_default_timezone_get();
|
||||
|
||||
$opt_tpl = get_markup_template("field_yesno.tpl");
|
||||
$opt_tpl = get_markup_template("field_checkbox.tpl");
|
||||
if(get_config('system','publish_all')) {
|
||||
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
|
||||
}
|
||||
|
4
view/css/bootstrap-red.css
vendored
4
view/css/bootstrap-red.css
vendored
@ -79,3 +79,7 @@ nav .navbar-toggle {
|
||||
code {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/* Bootstrap assumes that checkboxes are on the left of labels, while it's usually the opposite in Red */
|
||||
.field.checkbox input[type="checkbox"] { margin-left: 0px; }
|
||||
.field.checkbox label { padding-left: 0px; font-weight: 700}
|
||||
|
@ -6,6 +6,8 @@
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
#sellpage-edit label{
|
||||
/* first-of-type needed to style switches */
|
||||
#sellpage-edit label.mainlabel,
|
||||
#sellpage-edit label:first-of-type {
|
||||
width: 300px;
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,9 @@
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
#group-edit-form label {
|
||||
/* first-of-type needed to style switches */
|
||||
#group-edit-form label.mainlabel,
|
||||
#group-edit-form label:first-of-type {
|
||||
float: left;
|
||||
width: 300px;
|
||||
}
|
||||
|
@ -28,7 +28,9 @@ ul#settings-privacy-macros {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#settings-permissions-wrapper .field label{
|
||||
/* first-of-type needed to be able to style switches */
|
||||
#settings-permissions-wrapper .field label.mainlabel,
|
||||
#settings-permissions-wrapper .field label:first-of-type {
|
||||
width: 350px;
|
||||
}
|
||||
|
||||
@ -41,7 +43,9 @@ ul#settings-privacy-macros {
|
||||
margin-bottom: 45px;
|
||||
}
|
||||
|
||||
#settings-notifications label {
|
||||
/* first-of-type needed to be able to style switches */
|
||||
#settings-notifications .field label.mainlabel,
|
||||
#settings-notifications .field label:first-of-type {
|
||||
margin-left: 20px;
|
||||
width: 330px;
|
||||
}
|
||||
@ -63,4 +67,4 @@ ul#settings-privacy-macros {
|
||||
#settings-channel-menu-end {
|
||||
clear: both;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,9 @@
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
.thing-label, .field label, .thing-verb-label, .thing-profile-label{
|
||||
/* first-of-type needed to style switches */
|
||||
.field label.mainlabel,
|
||||
.thing-label, .field label:first-of-type, .thing-verb-label, .thing-profile-label{
|
||||
float: left;
|
||||
width: 350px;
|
||||
}
|
||||
@ -18,4 +19,4 @@
|
||||
|
||||
.thing-field-end {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
@ -301,14 +301,14 @@ footer {
|
||||
#main-login #id_remember {
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 0;
|
||||
margin-left: 0;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#main-login .field.checkbox label {
|
||||
margin-top: 15px;
|
||||
/* first-of-type needed to style switches */
|
||||
#main-login .field.checkbox label.mainlabel,
|
||||
#main-login .field.checkbox label:first-of-type {
|
||||
margin-bottom: 0;
|
||||
float: left;
|
||||
width: 100px;
|
||||
@ -373,13 +373,16 @@ footer {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#profile-edit-wrapper .field label {
|
||||
#profile-edit-wrapper .field {
|
||||
margin-top: 20px;
|
||||
}
|
||||
/* first-of-type needed to style switches */
|
||||
#profile-edit-wrapper .field label.mainlabel,
|
||||
#profile-edit-wrapper .field label:first-of-type {
|
||||
width: 175px;
|
||||
}
|
||||
|
||||
#profile-edit-wrapper .field input[type="text"] {
|
||||
margin-top: 20px;
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
@ -1242,7 +1245,9 @@ footer {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.field label {
|
||||
/* first-of-type needed to style switches */
|
||||
.field label.mainlabel,
|
||||
.field label:first-of-type {
|
||||
float: left;
|
||||
width: 350px;
|
||||
}
|
||||
@ -1296,6 +1301,8 @@ footer {
|
||||
.hidden { display: none!important; }
|
||||
|
||||
.field.radio .field_help { margin-left: 0px; }
|
||||
.field.checkbox .field_help { display: inline; margin-left: 10px; }
|
||||
|
||||
|
||||
/**
|
||||
* OAuth
|
||||
@ -2350,3 +2357,70 @@ aside .nav > li > a:hover, aside .nav > li > a:focus {
|
||||
.jothidden .bootstrap-tagsinput:hover, .jothidden .bootstrap-tagsinput:focus {
|
||||
border: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
/* Hide the placeholder label which is used for styling switches */
|
||||
/* Many places give a width to all labels, so need to specifically set these to 0 width */
|
||||
/* This should probably be moved to core */
|
||||
.field.checkbox label.switchlabel,
|
||||
.field.checkbox label:nth-of-type(2) {
|
||||
width: 0px;
|
||||
margin: 0px;
|
||||
float: none;
|
||||
}
|
||||
|
||||
/* Turn checkboxes into switches */
|
||||
/* Doesn't work with IE<9. */
|
||||
.field.checkbox input {
|
||||
position: absolute;
|
||||
margin-left: -9999px;
|
||||
visibility: hidden;
|
||||
}
|
||||
.field.checkbox input + label.switchlabel,
|
||||
.field.checkbox input + label:nth-of-type(2) {
|
||||
display: block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
user-select: none;
|
||||
|
||||
padding: 2px;
|
||||
width: 60px;
|
||||
height: 24px;
|
||||
background-color: #dddddd;
|
||||
border-radius: 60px;
|
||||
transition: background 0.4s;
|
||||
|
||||
float:left;
|
||||
}
|
||||
|
||||
.field.checkbox input + label:before,
|
||||
.field.checkbox input + label:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
content: "";
|
||||
}
|
||||
.field.checkbox input + label:before {
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
bottom: 2px;
|
||||
right: 2px;
|
||||
background-color: #fff;
|
||||
border-radius: 30px;
|
||||
transition: background 0.4s;
|
||||
}
|
||||
.field.checkbox input + label:after {
|
||||
top: 4px;
|
||||
left: 4px;
|
||||
bottom: 4px;
|
||||
width: 30px;
|
||||
background-color: #dddddd;
|
||||
border-radius: 30px;
|
||||
transition: margin 0.4s, background 0.4s;
|
||||
}
|
||||
.field.checkbox input:checked + label {
|
||||
background-color: #8ce196;
|
||||
}
|
||||
.field.checkbox input:checked + label:after {
|
||||
margin-left: 22px;
|
||||
background-color: #8ce196;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<tr>
|
||||
<td>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
</td>
|
||||
<td class="abook-them">
|
||||
<input type="checkbox" name='them_{{$field.0}}' id='them_id_{{$field.0}}' value="1" disabled="disabled" {{if $field.2}}checked="checked"{{/if}} />
|
||||
|
@ -1,5 +1,4 @@
|
||||
<div class='field checkbox'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="1" {{if $field.2}}checked="checked"{{/if}}>
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="1" {{if $field.2}}checked="checked"{{/if}}><label class="switchlabel" for='id_{{$field.0}}'></label><span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field input color'>
|
||||
<label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input class='color' name='{{$field.0}}' id='id_{{$field.0}}' type="text" value="{{$field.2}}">{{if $field.4}} <span class="required">{{$field.4}}</span> {{/if}}
|
||||
<span id='help_{{$field.0}}' class='field_help'>{{$field.3}}</span>
|
||||
<div id='end_{{$field.0}}' class='field_end'></div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field combobox'>
|
||||
<label for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
|
||||
{{* html5 don't work on Chrome, Safari and IE9 see https://github.com/thgreasi/datalist-polyfill
|
||||
<input id="id_{{$field.0}}" type="text" list="data_{{$field.0}}" >
|
||||
<datalist id="data_{{$field.0}}" >
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field custom'>
|
||||
<label for='{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='{{$field.0}}'>{{$field.1}}</label>
|
||||
{{$field.2}}
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field input'>
|
||||
<label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input name='{{$field.0}}' id='id_{{$field.0}}' type="text" value="{{$field.2}}">{{if $field.4}} <span class="required">{{$field.4}}</span> {{/if}}
|
||||
<span id='help_{{$field.0}}' class='field_help'>{{$field.3}}</span>
|
||||
<div id='end_{{$field.0}}' class='field_end'></div>
|
||||
|
@ -1,5 +1,4 @@
|
||||
<div class='field checkbox'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.3}}" {{if $field.2}}checked="true"{{/if}}>
|
||||
<span class='field_help'>{{$field.4}}</span>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.3}}" {{if $field.2}}checked="true"{{/if}}><label class="switchlabel" for='id_{{$field.0}}'></label><span class='field_help'>{{$field.4}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field password'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<input type='password' name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field radio'>
|
||||
<label for='id_{{$field.0}}_{{$field.2}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}_{{$field.2}}'>{{$field.1}}</label>
|
||||
<input type="radio" name='{{$field.0}}' id='id_{{$field.0}}_{{$field.2}}' value="{{$field.2}}" {{if $field.4}}checked="true"{{/if}}>
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field richtext'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<textarea name='{{$field.0}}' id='id_{{$field.0}}' class="fieldRichtext">{{$field.2}}</textarea>
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field select'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<select name='{{$field.0}}' id='id_{{$field.0}}'>
|
||||
{{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
|
||||
</select>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field select'>
|
||||
<label style="font-weight: normal;" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" style="font-weight: normal;" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<select disabled="true" name='{{$field.0}}' id='id_{{$field.0}}'>
|
||||
{{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
|
||||
</select>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field select'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<select name='{{$field.0}}' id='id_{{$field.0}}'>
|
||||
{{$field.4}}
|
||||
</select>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field textarea'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<textarea name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.4}}{{$field.4}}{{/if}} >{{$field.2}}</textarea>
|
||||
<span class='field_help'>{{$field.3}}</span>
|
||||
</div>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<script>$(document).ready(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>
|
||||
<div class='field select'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<select name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5=='preview'}}onchange="previewTheme(this);"{{/if}} >
|
||||
{{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
|
||||
</select>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class='field yesno'>
|
||||
<label for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<label class="mainlabel" for='id_{{$field.0}}'>{{$field.1}}</label>
|
||||
<div class='onoff' id="id_{{$field.0}}_onoff">
|
||||
<input type="hidden" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.2}}">
|
||||
<a href="#" class='off'>
|
||||
|
@ -1,3 +1,6 @@
|
||||
{{include file="field_checkbox.tpl"}}
|
||||
|
||||
{{*
|
||||
<p id="hide-friends-text">
|
||||
{{$desc}}
|
||||
</p>
|
||||
@ -14,4 +17,4 @@
|
||||
|
||||
<div id="hide-friends-end"></div>
|
||||
</div>
|
||||
|
||||
*}}
|
||||
|
@ -62,7 +62,7 @@
|
||||
|
||||
{{$suggestme}}
|
||||
|
||||
{{include file="field_yesno.tpl" field=$blocktags}}
|
||||
{{include file="field_checkbox.tpl" field=$blocktags}}
|
||||
|
||||
|
||||
{{include file="field_input.tpl" field=$expire}}
|
||||
|
@ -9,7 +9,7 @@
|
||||
<h3 class="settings-heading">{{$f.0}}</h3>
|
||||
|
||||
{{foreach $f.1 as $fcat}}
|
||||
{{include file="{{$field_yesno}}" field=$fcat}}
|
||||
{{include file="field_checkbox.tpl" field=$fcat}}
|
||||
{{/foreach}}
|
||||
{{/foreach}}
|
||||
|
||||
|
Reference in New Issue
Block a user