aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--assets/home.html42
-rw-r--r--mod/acl.php7
-rw-r--r--view/css/mod_connect.css4
-rw-r--r--view/css/mod_group.css4
-rw-r--r--view/css/mod_settings.css8
-rw-r--r--view/css/mod_thing.css4
-rw-r--r--view/theme/redbasic/css/style.css122
-rwxr-xr-xview/tpl/field_checkbox.tpl2
-rwxr-xr-xview/tpl/field_intcheckbox.tpl2
9 files changed, 89 insertions, 106 deletions
diff --git a/assets/home.html b/assets/home.html
index 16baab838..2c3aa6e69 100644
--- a/assets/home.html
+++ b/assets/home.html
@@ -198,35 +198,35 @@ $(document).ready(function() {
"Gratuit",
null);
else if (lang == "sv") // SWEDISH TRANSLATIONS
- terms = new Array("Sekretess skalad för Internet",
- "Socialt nätverkande",
+ terms = new Array("Sekretess skalad för Internet",
+ "Socialt nätverkande",
"Single Sign-On",
"Fotoalbum",
"Decentraliserat",
"Molnlagring",
- "Ditt eget innehåll",
+ "Ditt eget innehåll",
"Blogg",
"End-to-end-kryptering",
"Chattrum",
- "Delbara tilläggsprogram",
- "Kontrollera behörighet mellan webbplatser",
- "Ångra privata meddelanden",
+ "Delbara tilläggsprogram",
+ "Kontrollera behörighet mellan webbplatser",
+ "Ångra privata meddelanden",
"Skapa webbsidor",
- "Innehållshantering",
- "Tidsbegränsade meddelanden",
+ "Innehållshantering",
+ "Tidsbegränsade meddelanden",
"Spel och verktyg",
- "Inte styrt av företag",
+ "Inte styrt av företag",
"Forum",
"Gilla + Ogilla",
- "Dela allt som är digitalt",
+ "Dela allt som är digitalt",
"Kommunikation",
- "Identitsmedvetet innehåll",
+ "Identitsmedvetet innehåll",
"Pseudonymer",
"Multipla identiteter",
"Reklamfritt",
- "Rich Text-inlägg/-kommentarer",
- "Händelsekalender",
- "Bokmärken",
+ "Rich Text-inlägg/-kommentarer",
+ "Händelsekalender",
+ "Bokmärken",
"Gemensam taggning",
"Speglad katalog",
"Nomadisk identitet",
@@ -236,15 +236,15 @@ $(document).ready(function() {
"Sekretessgrupper",
"Fildelning",
"MIT-licens",
- "Självständighet",
- "Samhörighetsfiltrering",
- "Vänförslag",
- "Fjärrinloggning",
+ "Självständighet",
+ "Samhörighetsfiltrering",
+ "Vänförslag",
+ "Fjärrinloggning",
"Teman",
- "Tillägg",
+ "Tillägg",
"Externt API",
"Tredjepartsappar",
- "Öppen källkod",
+ "Öppen källkod",
null);
// Find all <div>s with a class of "wrapper" and lang attribute equal
@@ -347,7 +347,7 @@ Een van de traditionele problemen met onafhankelijke internetpublicaties is dat
</div>
<br />
<div class="tr" style="font-size: 1.4em; color: #666; margin-left: 75px; margin-right: 75px;">
-De RedMatrix is een supernetwerk bestaande uit een enorme hoeveelheid kleinere onafhankelijke en autonome websites, die aan elkaar gekoppeld een coöperatief publicatie en sociaal platform vormen. Het bestaat uit een opensource webapplicatie die een compleet <strong>gedecentraliseerd</strong> multi-user publicatie-, communicatie- en social media-systeem biedt, een “hub” geheten. Elke hub verzorgt de communicatie (privéberichten, chatten, bloggen, forums en een sociaal netwerk) en het mediabeheer (foto's, agenda, webpagina's en apps) voor zijn leden; alles in een functie-rijke omgeving. Deze hubs maken automatisch contact met elkaar en de rest van de matrix. Het individu blijft altijd directe controle houden over zijn/haar privacy en eigendom; en aan elk item in de gehele matrix kan aan wie dan ook toegang verleend of geweigerd worden.
+De RedMatrix is een supernetwerk bestaande uit een enorme hoeveelheid kleinere onafhankelijke en autonome websites, die aan elkaar gekoppeld een co&ouml;peratief publicatie en sociaal platform vormen. Het bestaat uit een opensource webapplicatie die een compleet <strong>gedecentraliseerd</strong> multi-user publicatie-, communicatie- en social media-systeem biedt, een “hub” geheten. Elke hub verzorgt de communicatie (privéberichten, chatten, bloggen, forums en een sociaal netwerk) en het mediabeheer (foto's, agenda, webpagina's en apps) voor zijn leden; alles in een functie-rijke omgeving. Deze hubs maken automatisch contact met elkaar en de rest van de matrix. Het individu blijft altijd directe controle houden over zijn/haar privacy en eigendom; en aan elk item in de gehele matrix kan aan wie dan ook toegang verleend of geweigerd worden.
</div>
<br />
<div class="tr" style="font-size: 1.4em; color: #666; margin-left: 75px; margin-right: 75px;">
diff --git a/mod/acl.php b/mod/acl.php
index 797a3633b..24f2a35e0 100644
--- a/mod/acl.php
+++ b/mod/acl.php
@@ -30,6 +30,9 @@ function acl_init(&$a){
$sql_extra = " AND `name` LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . ") ";
+ // This horrible mess is needed because position also returns 0 if nothing is found. W/ould be MUCH easier if it instead returned a very large value
+ // Otherwise we could just order by LEAST(POSTION($search IN xchan_name),POSITION($search IN xchan_addr)).
+ $order_extra2 = "CASE WHEN xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) ." then POSITION('".dbesc($search)."' IN xchan_name) else position('".dbesc($search)."' IN xchan_addr) end, ";
$col = ((strpos($search,'@') !== false) ? 'xchan_addr' : 'xchan_name' );
$sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
@@ -141,7 +144,7 @@ function acl_init(&$a){
if ($type=='' || $type=='c') {
$r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags
FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d AND not ( abook_flags & %d )>0 and not (xchan_flags & %d )>0 $sql_extra2 order by xchan_name asc" ,
+ WHERE abook_channel = %d AND not ( abook_flags & %d )>0 and not (xchan_flags & %d )>0 $sql_extra2 order by $order_extra2 xchan_name asc" ,
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED),
intval(XCHAN_FLAGS_DELETED)
@@ -150,7 +153,7 @@ function acl_init(&$a){
if((! $r) && $type == 'c') {
$r = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags
FROM xchan
- WHERE not (xchan_flags & %d )>0 $sql_extra2 order by xchan_name asc" ,
+ WHERE not (xchan_flags & %d )>0 $sql_extra2 order by $order_extra2 xchan_name asc" ,
intval(XCHAN_FLAGS_DELETED)
);
}
diff --git a/view/css/mod_connect.css b/view/css/mod_connect.css
index 218b1d2cb..e1f28484a 100644
--- a/view/css/mod_connect.css
+++ b/view/css/mod_connect.css
@@ -6,8 +6,6 @@
margin-top: 25px;
}
-/* first-of-type needed to style switches */
-#sellpage-edit label.mainlabel,
-#sellpage-edit label:first-of-type {
+#sellpage-edit > label {
width: 300px;
}
diff --git a/view/css/mod_group.css b/view/css/mod_group.css
index 30a954d2a..91d5b2136 100644
--- a/view/css/mod_group.css
+++ b/view/css/mod_group.css
@@ -3,9 +3,7 @@
margin-top: 30px;
}
-/* first-of-type needed to style switches */
-#group-edit-form label.mainlabel,
-#group-edit-form label:first-of-type {
+#group-edit-form > label {
float: left;
width: 300px;
}
diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css
index b066e6059..cd66684f8 100644
--- a/view/css/mod_settings.css
+++ b/view/css/mod_settings.css
@@ -28,9 +28,7 @@ ul#settings-privacy-macros {
margin-bottom: 10px;
}
-/* first-of-type needed to be able to style switches */
-#settings-permissions-wrapper .field label.mainlabel,
-#settings-permissions-wrapper .field label:first-of-type {
+#settings-permissions-wrapper .field > label {
width: 350px;
}
@@ -43,9 +41,7 @@ ul#settings-privacy-macros {
margin-bottom: 45px;
}
-/* first-of-type needed to be able to style switches */
-#settings-notifications .field label.mainlabel,
-#settings-notifications .field label:first-of-type {
+#settings-notifications .field > label {
margin-left: 20px;
width: 330px;
}
diff --git a/view/css/mod_thing.css b/view/css/mod_thing.css
index ddb2faa87..1b091860b 100644
--- a/view/css/mod_thing.css
+++ b/view/css/mod_thing.css
@@ -4,9 +4,7 @@
margin-left: 0;
}
-/* first-of-type needed to style switches */
-.field label.mainlabel,
-.thing-label, .field label:first-of-type, .thing-verb-label, .thing-profile-label{
+.thing-label, .field > label, .thing-verb-label, .thing-profile-label{
float: left;
width: 350px;
}
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 61acc8ec7..63cf27d58 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -306,9 +306,7 @@ footer {
width: 20px;
}
-/* first-of-type needed to style switches */
-#main-login .field.checkbox label.mainlabel,
-#main-login .field.checkbox label:first-of-type {
+#main-login .field.checkbox > label {
margin-bottom: 0;
float: left;
width: 100px;
@@ -376,9 +374,7 @@ footer {
#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 {
+#profile-edit-wrapper .field > label {
width: 175px;
}
@@ -1245,9 +1241,7 @@ footer {
width: 100%
}
-/* first-of-type needed to style switches */
-.field label.mainlabel,
-.field label:first-of-type {
+.field > label {
float: left;
width: 350px;
}
@@ -2358,69 +2352,65 @@ aside .nav > li > a:hover, aside .nav > li > a: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 .fieldhelp { vertical-align:top; }
+.field.checkbox > div {
+ position: relative; width: 70px;
+ -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
+ display:inline-block;
+}
+
.field.checkbox input {
- position: absolute;
- margin-left: -9999px;
- visibility: hidden;
+ display: none;
}
-.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;
+.field.checkbox > div label {
+ display: block; overflow: hidden; cursor: pointer;
+ border: 2px solid #999999;
+ border-radius: 20px;
+ margin:0px;
+}
- float:left;
+.onoffswitch-inner {
+ display: block; width: 200%; margin-left: -100%;
+ -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s;
+ -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s;
}
-.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;
+.onoffswitch-inner:before, .onoffswitch-inner:after {
+ display: block; float: left; width: 50%; height: 20px; padding: 0; line-height:20px;
+ -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
+}
+
+.onoffswitch-inner:before {
+ content: attr(data-on);
+ padding-left: 10px;
+ background-color: #EEEEEE;
+}
+
+.onoffswitch-inner:after {
+ content: attr(data-off);
+ padding-right: 10px;
+ background-color: #EEEEEE; color: #999999;
+ text-align: right;
+}
+
+.onoffswitch-switch {
+ display: block; width: 25px; margin-left: 6px; margin-right: 6px; margin-top:5%; margin-bottom:5%;
+ background: #A1A1A1;
+ border: 2px solid #999999; border-radius: 20px;
+ position: absolute; top: 0; bottom: 0; right: 36px;
+ -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s;
+ -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s;
+}
+
+.field.checkbox > div > input:checked + label .onoffswitch-inner {
+ margin-left: 0;
+}
+
+.field.checkbox > div > input:checked + label .onoffswitch-switch {
+ right: -2px;
+ background-color: #27A1CA;
}
diff --git a/view/tpl/field_checkbox.tpl b/view/tpl/field_checkbox.tpl
index 5c7f58ad1..7a2781be0 100755
--- a/view/tpl/field_checkbox.tpl
+++ b/view/tpl/field_checkbox.tpl
@@ -1,4 +1,4 @@
<div class='field checkbox'>
<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><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}}'> <span class="onoffswitch-inner" data-on='{{if $field.4}}{{$field.4.1}}{{/if}}' data-off='{{if $field.4}}{{$field.4.0}}{{/if}}'></span><span class="onoffswitch-switch"></span> </label></div><span class='field_help'>{{$field.3}}</span>
</div>
diff --git a/view/tpl/field_intcheckbox.tpl b/view/tpl/field_intcheckbox.tpl
index 1d0bd9175..847783518 100755
--- a/view/tpl/field_intcheckbox.tpl
+++ b/view/tpl/field_intcheckbox.tpl
@@ -1,4 +1,4 @@
<div class='field checkbox'>
<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><input type="checkbox" name='{{$field.0}}' id='id_{{$field.0}}' value="{{$field.3}}" {{if $field.2}}checked="checked"{{/if}}><label class="switchlabel" for='id_{{$field.0}}'> <span class="onoffswitch-inner" data-on='{{if $field.5}}{{$field.5.1}}{{/if}}' data-off='{{if $field.5}}{{$field.5.0}}{{/if}}'></span><span class="onoffswitch-switch"></span> </label></div><span class='field_help'>{{$field.4}}</span>
</div>