Merge branch 'develop' of https://github.com/friendica/friendica into develop

This commit is contained in:
Tobias Diekershoff 2015-11-08 16:04:50 +01:00
commit 808eaa633a
34 changed files with 916 additions and 1063 deletions

View file

@ -27,7 +27,6 @@ function nav(&$a) {
$a->page['nav'] .= replace_macros($tpl, array( $a->page['nav'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$langselector' => lang_selector(),
'$sitelocation' => $nav_info['sitelocation'], '$sitelocation' => $nav_info['sitelocation'],
'$nav' => $nav_info['nav'], '$nav' => $nav_info['nav'],
'$banner' => $nav_info['banner'], '$banner' => $nav_info['banner'],

View file

@ -705,8 +705,8 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
$no_of_items = sizeof($items); $no_of_items = sizeof($items);
if (@is_array($conv_as->items)) if (@is_array($conv_as->items))
foreach ($conv_as->items AS $item) foreach ($conv_as->items AS $single_item)
$items[$item->id] = $item; $items[$single_item->id] = $single_item;
if ($no_of_items == sizeof($items)) if ($no_of_items == sizeof($items))
break; break;

View file

@ -161,3 +161,26 @@ function string_plural_select_default($n) {
return ($n != 1); return ($n != 1);
}} }}
/**
* Return installed languages as associative array
* [
* lang => lang,
* ...
* ]
*/
function get_avaiable_languages() {
$lang_choices = array();
$langs = glob('view/*/strings.php'); /**/
if(is_array($langs) && count($langs)) {
if(! in_array('view/en/strings.php',$langs))
$langs[] = 'view/en/';
asort($langs);
foreach($langs as $l) {
$t = explode("/",$l);
$lang_choices[$t[1]] = $t[1];
}
}
return $lang_choices;
}

View file

@ -1020,8 +1020,9 @@ if(! function_exists('valid_email')) {
*/ */
function valid_email($x){ function valid_email($x){
if(get_config('system','disable_email_validation')) // Removed because Fabio told me so.
return true; //if(get_config('system','disable_email_validation'))
// return true;
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x)) if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true; return true;
@ -1738,50 +1739,6 @@ function unamp($s) {
}} }}
if(! function_exists('lang_selector')) {
/**
* get html for language selector
* @global string $lang
* @return string
* @template lang_selector.tpl
*/
function lang_selector() {
global $lang;
$langs = glob('view/*/strings.php');
$lang_options = array();
$selected = "";
if(is_array($langs) && count($langs)) {
$langs[] = '';
if(! in_array('view/en/strings.php',$langs))
$langs[] = 'view/en/';
asort($langs);
foreach($langs as $l) {
if($l == '') {
$lang_options[""] = t('default');
continue;
}
$ll = substr($l,5);
$ll = substr($ll,0,strrpos($ll,'/'));
$selected = (($ll === $lang && (x($_SESSION, 'language'))) ? $ll : $selected);
$lang_options[$ll]=$ll;
}
}
$tpl = get_markup_template("lang_selector.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Select an alternate language'),
'$langs' => array($lang_options, $selected),
));
return $o;
}}
if(! function_exists('return_bytes')) { if(! function_exists('return_bytes')) {
/** /**
* return number of bytes in size (K, M, G) * return number of bytes in size (K, M, G)

View file

@ -102,13 +102,13 @@ session_start();
* Language was set earlier, but we can over-ride it in the session. * Language was set earlier, but we can over-ride it in the session.
* We have to do it here because the session was just now opened. * We have to do it here because the session was just now opened.
*/ */
if (x($_SESSION,'authenticated') && !x($_SESSION,'language')) {
if(array_key_exists('system_language',$_POST)) { // we didn't loaded user data yet, but we need user language
if(strlen($_POST['system_language'])) $r = q("SELECT language FROM user WHERE uid=%d", intval($_SESSION['uid']));
$_SESSION['language'] = $_POST['system_language']; $_SESSION['language'] = $lang;
else if (count($r)>0) $_SESSION['language'] = $r[0]['language'];
unset($_SESSION['language']);
} }
if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) { if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
$lang = $_SESSION['language']; $lang = $_SESSION['language'];
load_translation_table($lang); load_translation_table($lang);

View file

@ -603,18 +603,7 @@ function admin_page_site_post(&$a){
function admin_page_site(&$a) { function admin_page_site(&$a) {
/* Installed langs */ /* Installed langs */
$lang_choices = array(); $lang_choices = get_avaiable_languages();
$langs = glob('view/*/strings.php'); /**/
if(is_array($langs) && count($langs)) {
if(! in_array('view/en/strings.php',$langs))
$langs[] = 'view/en/';
asort($langs);
foreach($langs as $l) {
$t = explode("/",$l);
$lang_choices[$t[1]] = $t[1];
}
}
if (strlen(get_config('system','directory_submit_url')) AND if (strlen(get_config('system','directory_submit_url')) AND
!strlen(get_config('system','directory'))) { !strlen(get_config('system','directory'))) {

View file

@ -25,13 +25,20 @@ function dirfind_init(&$a) {
function dirfind_content(&$a, $prefix = "") { function dirfind_content(&$a, $prefix = "") {
$community = false; $community = false;
$discover_user = false;
$local = get_config('system','poco_local_search'); $local = get_config('system','poco_local_search');
$search = $prefix.notags(trim($_REQUEST['search'])); $search = $prefix.notags(trim($_REQUEST['search']));
if(strpos($search,'@') === 0) if(strpos($search,'@') === 0) {
$search = substr($search,1); $search = substr($search,1);
if ((valid_email($search) AND validate_email($search)) OR
(substr(normalise_link($search), 0, 7) == "http://")) {
$user_data = probe_url($search);
$discover_user = (in_array($user_data["network"], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA)));
}
}
if(strpos($search,'!') === 0) { if(strpos($search,'!') === 0) {
$search = substr($search,1); $search = substr($search,1);
@ -42,7 +49,32 @@ function dirfind_content(&$a, $prefix = "") {
if($search) { if($search) {
if ($local) { if ($discover_user) {
$j = new stdClass();
$j->total = 1;
$j->items_page = 1;
$j->page = $a->pager['page'];
$objresult = new stdClass();
$objresult->cid = 0;
$objresult->name = $user_data["name"];
$objresult->addr = $user_data["addr"];
$objresult->url = $user_data["url"];
$objresult->photo = $user_data["photo"];
$objresult->tags = "";
$objresult->network = $user_data["network"];
$contact = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
dbesc(normalise_link($user_data["url"])), intval(local_user()));
if ($contact)
$objresult->cid = $contact[0]["id"];
$j->results[] = $objresult;
poco_check($user_data["url"], $user_data["name"], $user_data["network"], $user_data["photo"],
"", "", "", "", "", datetime_convert(), 0);
} elseif ($local) {
if ($community) if ($community)
$extra_sql = " AND `community`"; $extra_sql = " AND `community`";

View file

@ -4,7 +4,13 @@ require_once('include/acl_selectors.php');
require_once('include/message.php'); require_once('include/message.php');
function message_init(&$a) { function message_init(&$a) {
$tabs = array();
$tabs = '';
if ($a->argc >1 && is_numeric($a->argv[1])) {
$tabs = render_messages(get_messages(local_user(),0,5), 'mail_list.tpl');
}
$new = array( $new = array(
'label' => t('New Message'), 'label' => t('New Message'),
'url' => $a->get_baseurl(true) . '/message/new', 'url' => $a->get_baseurl(true) . '/message/new',
@ -344,75 +350,29 @@ function message_content(&$a) {
if($a->argc == 1) { if($a->argc == 1) {
// list messages // List messages
$o .= $header; $o .= $header;
$r = q("SELECT count(*) AS `total` FROM `mail` $r = q("SELECT count(*) AS `total` FROM `mail`
WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `created` DESC", WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `created` DESC",
intval(local_user()), intval(local_user()),
dbesc($myprofile) dbesc($myprofile)
); );
if(count($r))
$a->set_pager_total($r[0]['total']);
$r = q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`, if(count($r)) $a->set_pager_total($r[0]['total']);
`mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`,
count( * ) as count $r = get_messages(local_user(), $a->pager['start'], $a->pager['itemspage']);
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
intval(local_user()),
//
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
if(! count($r)) { if(! count($r)) {
info( t('No messages.') . EOL); info( t('No messages.') . EOL);
return $o; return $o;
} }
$tpl = get_markup_template('mail_list.tpl'); $o .= render_messages($r, 'mail_list.tpl');
foreach($r as $rr) {
if($rr['unknown']) {
$partecipants = sprintf( t("Unknown sender - %s"),$rr['from-name']);
}
elseif (link_compare($rr['from-url'],$myprofile)){
$partecipants = sprintf( t("You and %s"), $rr['name']);
}
else {
$partecipants = sprintf( t("%s and You"), $rr['from-name']);
}
if($a->theme['template_engine'] === 'internal') {
$subject_e = template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
$body_e = template_escape($rr['body']);
$to_name_e = template_escape($rr['name']);
}
else {
$subject_e = (($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>');
$body_e = $rr['body'];
$to_name_e = $rr['name'];
}
$o .= replace_macros($tpl, array(
'$id' => $rr['id'],
'$from_name' => $partecipants,
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']),
'$sparkle' => ' sparkle',
'$from_photo' => (($rr['thumb']) ? $rr['thumb'] : $rr['from-photo']),
'$subject' => $subject_e,
'$delete' => t('Delete conversation'),
'$body' => $body_e,
'$to_name' => $to_name_e,
'$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')),
'$ago' => relative_date($rr['mailcreated']),
'$seen' => $rr['mailseen'],
'$count' => sprintf( tt('%d message', '%d messages', $rr['count']), $rr['count']),
));
}
$o .= paginate($a); $o .= paginate($a);
return $o; return $o;
} }
@ -569,5 +529,65 @@ function message_content(&$a) {
return $o; return $o;
} }
}
function get_messages($user, $lstart, $lend) {
return q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`,
`mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`,
count( * ) as count
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
intval($user), intval($lstart), intval($lend)
);
}
function render_messages($msg, $t) {
$a = get_app();
$tpl = get_markup_template($t);
$rslt = '';
foreach($msg as $rr) {
if($rr['unknown']) {
$participants = sprintf( t("Unknown sender - %s"),$rr['from-name']);
}
elseif (link_compare($rr['from-url'], $myprofile)){
$participants = sprintf( t("You and %s"), $rr['name']);
}
else {
$participants = sprintf( t("%s and You"), $rr['from-name']);
}
if($a->theme['template_engine'] === 'internal') {
$subject_e = template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
$body_e = template_escape($rr['body']);
$to_name_e = template_escape($rr['name']);
}
else {
$subject_e = (($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>');
$body_e = $rr['body'];
$to_name_e = $rr['name'];
}
$rslt .= replace_macros($tpl, array(
'$id' => $rr['id'],
'$from_name' => $participants,
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']),
'$sparkle' => ' sparkle',
'$from_photo' => (($rr['thumb']) ? $rr['thumb'] : $rr['from-photo']),
'$subject' => $subject_e,
'$delete' => t('Delete conversation'),
'$body' => $body_e,
'$to_name' => $to_name_e,
'$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')),
'$ago' => relative_date($rr['mailcreated']),
'$seen' => $rr['mailseen'],
'$count' => sprintf( tt('%d message', '%d messages', $rr['count']), $rr['count']),
));
}
return $rslt;
} }

View file

@ -13,7 +13,6 @@ function navigation_content(&$a) {
$tpl = get_markup_template('navigation.tpl'); $tpl = get_markup_template('navigation.tpl');
return replace_macros($tpl, array( return replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$langselector' => lang_selector(),
'$sitelocation' => $nav_info['sitelocation'], '$sitelocation' => $nav_info['sitelocation'],
'$nav' => $nav_info['nav'], '$nav' => $nav_info['nav'],
'$banner' => $nav_info['banner'], '$banner' => $nav_info['banner'],

View file

@ -33,6 +33,7 @@ function ping_init(&$a) {
$home = 0; $home = 0;
$network = 0; $network = 0;
$network_group = array();
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`, $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`,
`item`.`contact-id`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `item`.`contact-id`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
@ -84,6 +85,22 @@ function ping_init(&$a) {
} }
} }
if ( $network )
{
# Find out how unseen network posts are spread across groups
$sql = "SELECT g.id, g.name, count(i.id) count " .
"FROM `group` g, group_member gm, item i " .
"WHERE g.uid = %d " .
"AND i.uid = %d " .
"AND i.unseen AND i.visible " .
"AND NOT i.deleted " .
"AND i.`contact-id` = gm.`contact-id` " .
"AND gm.gid = g.id GROUP BY g.id";
#echo '<SQL id="' . intval(local_user()) . '">' . $sql . '</SQL>';
$network_group = q($sql, intval(local_user()), intval(local_user()));
#echo '<COUNT R="' . count($network_group) . '"/>';
}
$intros1 = q("SELECT `intro`.`id`, `intro`.`datetime`, $intros1 = q("SELECT `intro`.`id`, `intro`.`datetime`,
`fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo` `fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo`
FROM `intro` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id` FROM `intro` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
@ -202,6 +219,13 @@ function ping_init(&$a) {
<net>$network</net> <net>$network</net>
<home>$home</home>\r\n"; <home>$home</home>\r\n";
if ($register!=0) echo "<register>$register</register>"; if ($register!=0) echo "<register>$register</register>";
if ( count($network_group) ) {
echo '<groups>';
foreach ($network_group as $it) {
echo '<group id="' . $it['id'] . '">' . $it['count'] . "</group>";
}
echo "</groups>";
}
echo "<all-events>$all_events</all-events> echo "<all-events>$all_events</all-events>
<all-events-today>$all_events_today</all-events-today> <all-events-today>$all_events_today</all-events-today>

View file

@ -386,6 +386,8 @@ function settings_post(&$a) {
$username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : ''); $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
$email = ((x($_POST,'email')) ? notags(trim($_POST['email'])) : ''); $email = ((x($_POST,'email')) ? notags(trim($_POST['email'])) : '');
$timezone = ((x($_POST,'timezone')) ? notags(trim($_POST['timezone'])) : ''); $timezone = ((x($_POST,'timezone')) ? notags(trim($_POST['timezone'])) : '');
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : ''); $defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : ''); $openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0); $maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
@ -532,7 +534,15 @@ function settings_post(&$a) {
} }
} }
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d WHERE `uid` = %d",
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s',
`openid` = '%s', `timezone` = '%s',
`allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s',
`notify-flags` = %d, `page-flags` = %d, `default-location` = '%s',
`allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s',
`def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d,
`unkmail` = %d, `cntunkmail` = %d, `language` = '%s'
WHERE `uid` = %d",
dbesc($username), dbesc($username),
dbesc($email), dbesc($email),
dbesc($openid), dbesc($openid),
@ -554,11 +564,15 @@ function settings_post(&$a) {
intval($blocktags), intval($blocktags),
intval($unkmail), intval($unkmail),
intval($cntunkmail), intval($cntunkmail),
dbesc($language),
intval(local_user()) intval(local_user())
); );
if($r) if($r)
info( t('Settings updated.') . EOL); info( t('Settings updated.') . EOL);
// clear session language
unset($_SESSION['language']);
$r = q("UPDATE `profile` $r = q("UPDATE `profile`
SET `publish` = %d, SET `publish` = %d,
`name` = '%s', `name` = '%s',
@ -985,6 +999,7 @@ function settings_content(&$a) {
$email = $a->user['email']; $email = $a->user['email'];
$nickname = $a->user['nickname']; $nickname = $a->user['nickname'];
$timezone = $a->user['timezone']; $timezone = $a->user['timezone'];
$language = $a->user['language'];
$notify = $a->user['notify-flags']; $notify = $a->user['notify-flags'];
$defloc = $a->user['default-location']; $defloc = $a->user['default-location'];
$openid = $a->user['openid']; $openid = $a->user['openid'];
@ -1168,6 +1183,8 @@ function settings_content(&$a) {
else else
$public_post_link = '&public=1'; $public_post_link = '&public=1';
/* Installed langs */
$lang_choices = get_avaiable_languages();
$o .= replace_macros($stpl, array( $o .= replace_macros($stpl, array(
'$ptitle' => t('Account Settings'), '$ptitle' => t('Account Settings'),
@ -1190,6 +1207,7 @@ function settings_content(&$a) {
'$username' => array('username', t('Full Name:'), $username,''), '$username' => array('username', t('Full Name:'), $username,''),
'$email' => array('email', t('Email Address:'), $email, '', '', '', 'email'), '$email' => array('email', t('Email Address:'), $email, '', '', '', 'email'),
'$timezone' => array('timezone_select' , t('Your Timezone:'), select_timezone($timezone), ''), '$timezone' => array('timezone_select' , t('Your Timezone:'), select_timezone($timezone), ''),
'$language' => array('language', t('Your Language:'), $language, t('Set the language we use to show you friendica interface and to send you emails'), $lang_choices),
'$defloc' => array('defloc', t('Default Post Location:'), $defloc, ''), '$defloc' => array('defloc', t('Default Post Location:'), $defloc, ''),
'$allowloc' => array('allow_location', t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''), '$allowloc' => array('allow_location', t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''),

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" >lang</div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v|escape:'html'}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -1,11 +1,10 @@
<div id="message-sidebar" class="widget"> <div id="message-sidebar" class="widget">
<div id="message-new"><a href="{{$new.url}}" accesskey="m" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div> <div id="message-new"><a href="{{$new.url}}" accesskey="m" class="{{if $new.sel}}newmessage-selected{{/if}}">{{$new.label}}</a> </div>
<ul role="menu" class="message-ul"> {{if $tabs}}
{{foreach $tabs as $t}} <div id="message-preview">
<li role="menuitem" class="tool"><a href="{{$t.url}}" {{if $t.accesskey}}accesskey="$t.accesskey"{{/if}} class="message-link{{if $t.sel}}message-selected{{/if}}">{{$t.label}}</a></li> {{$tabs}}
{{/foreach}} </div>
</ul> {{/if}}
</div> </div>

View file

@ -27,6 +27,7 @@
{{include file="field_input.tpl" field=$email}} {{include file="field_input.tpl" field=$email}}
{{include file="field_password.tpl" field=$password4}} {{include file="field_password.tpl" field=$password4}}
{{include file="field_custom.tpl" field=$timezone}} {{include file="field_custom.tpl" field=$timezone}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_input.tpl" field=$defloc}} {{include file="field_input.tpl" field=$defloc}}
{{include file="field_checkbox.tpl" field=$allowloc}} {{include file="field_checkbox.tpl" field=$allowloc}}

View file

@ -3394,11 +3394,6 @@ aside input[type='text'] {
margin-bottom: 15px; margin-bottom: 15px;
} }
#language-selector {
position: absolute;
top: 0px;
left: 16px;
}
#group-members { #group-members {
margin-top: 20px; margin-top: 20px;
@ -3576,20 +3571,6 @@ aside input[type='text'] {
text-decoration: underline; text-decoration: underline;
} }
#lang-select-icon {
cursor: pointer;
position: fixed;
left: 0px;
top: 0px;
opacity: 0.2;
filter:alpha(opacity=20);
}
#lang-select-icon:hover {
opacity: 1;
filter:alpha(opacity=100);
}
.notif-image { .notif-image {
height: 80px; height: 80px;
width: 80px; width: 80px;
@ -3601,7 +3582,6 @@ aside input[type='text'] {
} }
/** /**
* Plugins settings * Plugins settings
*/ */

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -27,6 +27,7 @@
{{include file="field_input.tpl" field=$email}} {{include file="field_input.tpl" field=$email}}
{{include file="field_password.tpl" field=$password4}} {{include file="field_password.tpl" field=$password4}}
{{include file="field_custom.tpl" field=$timezone}} {{include file="field_custom.tpl" field=$timezone}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_input.tpl" field=$defloc}} {{include file="field_input.tpl" field=$defloc}}
{{include file="field_checkbox.tpl" field=$allowloc}} {{include file="field_checkbox.tpl" field=$allowloc}}

View file

@ -125,8 +125,6 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#notify-update{background-position:-60px 0px;} #notify-update{background-position:-60px 0px;}
#home-update{background-position:-90px 0px;} #home-update{background-position:-90px 0px;}
#intro-update{background-position:-120px 0px;} #intro-update{background-position:-120px 0px;}
#lang-select-icon{cursor:pointer;position:fixed;left:28px;bottom:6px;z-index:10;}
#language-selector{position:fixed;bottom:2px;left:52px;z-index:10;}
.menu-popup{position:absolute;display:none;background:white;color:#2e2f2e;margin:0px;padding:0px;font-size:small;line-height:1.2;border:3px solid #88a9d2;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#2e2f2e;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeecc;background-color:#88a9d2;} .menu-popup{position:absolute;display:none;background:white;color:#2e2f2e;margin:0px;padding:0px;font-size:small;line-height:1.2;border:3px solid #88a9d2;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#2e2f2e;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeecc;background-color:#88a9d2;}
.menu-popup .menu-sep{border-top:1px solid #4e4f4e;} .menu-popup .menu-sep{border-top:1px solid #4e4f4e;}
.menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;} .menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;}

View file

@ -798,19 +798,7 @@ nav #nav-notifications-linkmenu {
#intro-update { #intro-update {
background-position: -120px 0px; background-position: -120px 0px;
} }
#lang-select-icon {
cursor: pointer;
position: fixed;
left: 28px;
bottom: 6px;
z-index: 10;
}
#language-selector {
position: fixed;
bottom: 2px;
left: 52px;
z-index: 10;
}
.menu-popup { .menu-popup {
position: absolute; position: absolute;
display: none; display: none;

View file

@ -125,8 +125,6 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#notify-update{background-position:-60px 0px;} #notify-update{background-position:-60px 0px;}
#home-update{background-position:-90px 0px;} #home-update{background-position:-90px 0px;}
#intro-update{background-position:-120px 0px;} #intro-update{background-position:-120px 0px;}
#lang-select-icon{cursor:pointer;position:fixed;left:28px;bottom:6px;z-index:10;}
#language-selector{position:fixed;bottom:2px;left:52px;z-index:10;}
.menu-popup{position:absolute;display:none;background:white;color:#111111;margin:0px;padding:0px;font-size:small;line-height:1.2;border:3px solid #3465a4;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#111111;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeeec;background-color:#3465a4;} .menu-popup{position:absolute;display:none;background:white;color:#111111;margin:0px;padding:0px;font-size:small;line-height:1.2;border:3px solid #3465a4;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100000;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}.menu-popup a{display:block;color:#111111;padding:5px 10px;text-decoration:none;}.menu-popup a:hover{color:#eeeeec;background-color:#3465a4;}
.menu-popup .menu-sep{border-top:1px solid #4e4f4e;} .menu-popup .menu-sep{border-top:1px solid #4e4f4e;}
.menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;} .menu-popup li{float:none;overflow:auto;height:auto;display:block;}.menu-popup li img{float:left;width:16px;height:16px;padding-right:5px;}

View file

@ -799,19 +799,7 @@ nav #nav-notifications-linkmenu {
#intro-update { #intro-update {
background-position: -120px 0px; background-position: -120px 0px;
} }
#lang-select-icon {
cursor: pointer;
position: fixed;
left: 28px;
bottom: 6px;
z-index: 10;
}
#language-selector {
position: fixed;
bottom: 2px;
left: 52px;
z-index: 10;
}
.menu-popup { .menu-popup {
position: absolute; position: absolute;
display: none; display: none;

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -2713,12 +2713,6 @@ aside input[type='text'] {
margin-bottom: 15px; margin-bottom: 15px;
} }
#language-selector {
position: absolute;
top: 0px;
left: 16px;
}
#group-members { #group-members {
margin-top: 20px; margin-top: 20px;
padding: 10px; padding: 10px;
@ -2888,19 +2882,6 @@ aside input[type='text'] {
text-decoration: underline; text-decoration: underline;
} }
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0px;
top: 0px;
opacity: 0.2;
filter:alpha(opacity=20);
}
#lang-select-icon:hover {
opacity: 1;
filter:alpha(opacity=100);
}
.notif-image { .notif-image {
height: 80px; height: 80px;
@ -3495,5 +3476,9 @@ ul.menu-popup {
.videos .video-top-wrapper:hover .video-delete { .videos .video-top-wrapper:hover .video-delete {
opacity: 1; opacity: 1;
} }
#message-preview .mail-list-sender-url, #message-preview .mail-list-delete {
display: none;
}
#message-preview .mail-list-outside-wrapper {
margin-top: 20px;
}

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -2493,11 +2493,6 @@ aside input[type='text'] {
margin-bottom: 15px; margin-bottom: 15px;
} }
#language-selector {
position: absolute;
top: 0px;
left: 16px;
}
#group-members { #group-members {
margin-top: 20px; margin-top: 20px;
@ -2668,19 +2663,6 @@ aside input[type='text'] {
text-decoration: underline; text-decoration: underline;
} }
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0px;
top: 0px;
opacity: 0.2;
filter:alpha(opacity=20);
}
#lang-select-icon:hover {
opacity: 1;
filter:alpha(opacity=100);
}
.notif-image { .notif-image {
height: 80px; height: 80px;

View file

@ -3389,11 +3389,6 @@ aside input[type='text'] {
margin-bottom: 15px; margin-bottom: 15px;
} }
#language-selector {
position: absolute;
top: 0px;
left: 16px;
}
#group-members { #group-members {
margin-top: 20px; margin-top: 20px;
@ -3570,20 +3565,6 @@ aside input[type='text'] {
text-decoration: underline; text-decoration: underline;
} }
#lang-select-icon {
cursor: pointer;
position: fixed;
left: 0px;
top: 0px;
opacity: 0.2;
filter:alpha(opacity=20);
}
#lang-select-icon:hover {
opacity: 1;
filter:alpha(opacity=100);
}
.notif-image { .notif-image {
height: 80px; height: 80px;
width: 80px; width: 80px;

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -27,6 +27,7 @@
{{include file="field_input.tpl" field=$email}} {{include file="field_input.tpl" field=$email}}
{{include file="field_password.tpl" field=$password4}} {{include file="field_password.tpl" field=$password4}}
{{include file="field_custom.tpl" field=$timezone}} {{include file="field_custom.tpl" field=$timezone}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_input.tpl" field=$defloc}} {{include file="field_input.tpl" field=$defloc}}
{{include file="field_checkbox.tpl" field=$allowloc}} {{include file="field_checkbox.tpl" field=$allowloc}}

View file

@ -3159,12 +3159,6 @@ aside input[type='text'] {
margin-bottom: 15px; margin-bottom: 15px;
} }
#language-selector {
position: absolute;
top: 0px;
left: 16px;
}
#group-members { #group-members {
margin-top: 20px; margin-top: 20px;
padding: 10px; padding: 10px;
@ -3351,19 +3345,6 @@ aside input[type='text'] {
text-decoration: underline; text-decoration: underline;
} }
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0px;
top: 0px;
opacity: 0.2;
filter:alpha(opacity=20);
}
#lang-select-icon:hover {
opacity: 1;
filter:alpha(opacity=100);
}
.notif-image { .notif-image {
height: 80px; height: 80px;
@ -4165,5 +4146,9 @@ ul.notifications-menu-popup {
margin-left: 40px; margin-left: 40px;
width: 130px; width: 130px;
} }
#message-preview .mail-list-sender, #message-preview .mail-list-delete {
display:none;
}
#message-preview .mail-list-outside-wrapper {
margin-top: 20px;
}

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -575,19 +575,7 @@ ul#user-menu-popup li a.nav-sep {
background-position: 0px 0px; background-position: 0px 0px;
} }
#lang-select-icon {
bottom: 5px;
cursor: pointer;
left: 25px;
position: fixed;
z-index: 10;
}
#language-selector {
position: fixed;
bottom: 2px;
left: 55px;
z-index: 10;
}
/* =================== */ /* =================== */
/* = System Messages = */ /* = System Messages = */

View file

@ -1,11 +0,0 @@
<div id="lang-select-icon" class="icon s22 language" title="{{$title}}" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{foreach $langs.0 as $v=>$l}}
<option value="{{$v}}" {{if $v==$langs.1}}selected="selected"{{/if}}>{{$l}}</option>
{{/foreach}}
</select>
</form>
</div>

View file

@ -388,18 +388,7 @@ ul#user-menu-popup li a.nav-sep { border-top: 1px solid #989898; border-style:in
#intro-update { background-position: 0px -84px; } #intro-update { background-position: 0px -84px; }
#home-update { background-position: 0px 0px; } #home-update { background-position: 0px 0px; }
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 5px;
top: 5px;
}
#language-selector {
position: absolute;
top: 0;
left: 16px;
}
/* =================== */ /* =================== */
/* = System Messages = */ /* = System Messages = */

View file

@ -3037,3 +3037,8 @@ a.mail-list-link {
/* upload/select popup */ /* upload/select popup */
.fbrowser.image .photo-album-image-wrapper { margin-left: 10px; } .fbrowser.image .photo-album-image-wrapper { margin-left: 10px; }
#message-preview { margin-top: 15px; }
#message-preview span { width: 100%; }
#message-preview .mail-count, #message-preview .mail-delete { display:none; }
#message-preview .mail-list-wrapper { padding: 3px; }
#message-preview .mail-date { opacity:0.6; font-size:10px; }