Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge

This commit is contained in:
zotlabs 2017-07-25 16:02:41 -07:00
commit 08f15a6fc6
21 changed files with 61 additions and 46 deletions

View File

@ -7,6 +7,9 @@ class Bookmarks extends \Zotlabs\Web\Controller {
function init() { function init() {
if(! local_channel()) if(! local_channel())
return; return;
nav_set_selected(t('View Bookmarks'));
$item_id = intval($_REQUEST['item']); $item_id = intval($_REQUEST['item']);
$burl = trim($_REQUEST['burl']); $burl = trim($_REQUEST['burl']);

View File

@ -765,6 +765,7 @@ class Cdav extends \Zotlabs\Web\Controller {
} }
if(argv(1) === 'calendar') { if(argv(1) === 'calendar') {
nav_set_selected(t('CalDAV'));
$caldavBackend = new \Sabre\CalDAV\Backend\PDO($pdo); $caldavBackend = new \Sabre\CalDAV\Backend\PDO($pdo);
$calendars = $caldavBackend->getCalendarsForUser($principalUri); $calendars = $caldavBackend->getCalendarsForUser($principalUri);
} }
@ -965,6 +966,7 @@ class Cdav extends \Zotlabs\Web\Controller {
if(argv(1) === 'addressbook') { if(argv(1) === 'addressbook') {
nav_set_selected(t('CardDAV'));
$carddavBackend = new \Sabre\CardDAV\Backend\PDO($pdo); $carddavBackend = new \Sabre\CardDAV\Backend\PDO($pdo);
$addressbooks = $carddavBackend->getAddressBooksForUser($principalUri); $addressbooks = $carddavBackend->getAddressBooksForUser($principalUri);
} }

View File

@ -89,9 +89,11 @@ class Chat extends \Zotlabs\Web\Controller {
function get() { function get() {
if(local_channel()) if(local_channel()) {
$channel = \App::get_channel(); $channel = \App::get_channel();
nav_set_selected(t('My Chatrooms'));
}
$ob = \App::get_observer(); $ob = \App::get_observer();
$observer = get_observer_hash(); $observer = get_observer_hash();
if(! $observer) { if(! $observer) {

View File

@ -88,12 +88,14 @@ class Invite extends \Zotlabs\Web\Controller {
} }
function get() { function get() {
if(! local_channel()) { if(! local_channel()) {
notice( t('Permission denied.') . EOL); notice( t('Permission denied.') . EOL);
return; return;
} }
nav_set_selected(t('Invite'));
$tpl = get_markup_template('invite.tpl'); $tpl = get_markup_template('invite.tpl');
$invonly = false; $invonly = false;

View File

@ -5,6 +5,7 @@ namespace Zotlabs\Module;
class Lang extends \Zotlabs\Web\Controller { class Lang extends \Zotlabs\Web\Controller {
function get() { function get() {
nav_set_selected(t('Language'));
return lang_selector(); return lang_selector();
} }

View File

@ -110,17 +110,17 @@ class Mood extends \Zotlabs\Web\Controller {
function get() { function get() {
if(! local_channel()) { if(! local_channel()) {
notice( t('Permission denied.') . EOL); notice( t('Permission denied.') . EOL);
return; return;
} }
nav_set_selected(t('Mood'));
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0'); $parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0');
$verbs = get_mood_verbs(); $verbs = get_mood_verbs();
$shortlist = array(); $shortlist = array();

View File

@ -143,12 +143,14 @@ class Poke extends \Zotlabs\Web\Controller {
function get() { function get() {
if(! local_channel()) { if(! local_channel()) {
notice( t('Permission denied.') . EOL); notice( t('Permission denied.') . EOL);
return; return;
} }
nav_set_selected(t('Poke'));
$name = ''; $name = '';
$id = ''; $id = '';

View File

@ -7,7 +7,9 @@ require_once('include/zot.php');
class Probe extends \Zotlabs\Web\Controller { class Probe extends \Zotlabs\Web\Controller {
function get() { function get() {
nav_set_selected(t('Remote Diagnostics'));
$o .= '<h3>Probe Diagnostic</h3>'; $o .= '<h3>Probe Diagnostic</h3>';
$o .= '<form action="probe" method="get">'; $o .= '<form action="probe" method="get">';

View File

@ -59,6 +59,8 @@ class Rpost extends \Zotlabs\Web\Controller {
} }
return login(); return login();
} }
nav_set_selected(t('Post'));
// If we have saved rpost session variables, but nothing in the current $_REQUEST, recover the saved variables // If we have saved rpost session variables, but nothing in the current $_REQUEST, recover the saved variables

View File

@ -22,7 +22,7 @@ class Search extends \Zotlabs\Web\Controller {
if($load) if($load)
$_SESSION['loadtime'] = datetime_convert(); $_SESSION['loadtime'] = datetime_convert();
nav_set_selected('search'); nav_set_selected(t('Search'));
require_once("include/bbcode.php"); require_once("include/bbcode.php");
require_once('include/security.php'); require_once('include/security.php');

View File

@ -28,6 +28,8 @@ class Suggest extends \Zotlabs\Web\Controller {
notice( t('Permission denied.') . EOL); notice( t('Permission denied.') . EOL);
return; return;
} }
nav_set_selected(t('Suggest Channels'));
$_SESSION['return_url'] = z_root() . '/' . \App::$cmd; $_SESSION['return_url'] = z_root() . '/' . \App::$cmd;

View File

@ -34,7 +34,9 @@ class Webpages extends \Zotlabs\Web\Controller {
\App::$error = 404; \App::$error = 404;
return; return;
} }
nav_set_selected(t('Webpages'));
$which = argv(1); $which = argv(1);
$_SESSION['return_url'] = \App::$query_string; $_SESSION['return_url'] = \App::$query_string;

View File

@ -40,6 +40,8 @@ class Conversations {
foreach($r as $rr) { foreach($r as $rr) {
$selected = ((argc() == 3) ? intval(argv(2)) == intval($rr['id']) : $r[0]['id'] == $rr['id']);
$messages[] = array( $messages[] = array(
'mailbox' => $mailbox, 'mailbox' => $mailbox,
'id' => $rr['id'], 'id' => $rr['id'],
@ -54,7 +56,7 @@ class Conversations {
'body' => $rr['body'], 'body' => $rr['body'],
'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], 'c'), 'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], 'c'),
'seen' => $rr['seen'], 'seen' => $rr['seen'],
'selected' => ((argc() == 2) ? (intval(argv(1)) == intval($rr['id'])) : ($r[0]['id'] == $rr['id'])) 'selected' => ((argv(1) != 'new') ? $selected : '')
); );
} }

View File

@ -49,7 +49,7 @@ require_once('include/hubloc.php');
require_once('include/attach.php'); require_once('include/attach.php');
define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'STD_VERSION', '2.5.9' ); define ( 'STD_VERSION', '2.5.10' );
define ( 'ZOT_REVISION', '1.3' ); define ( 'ZOT_REVISION', '1.3' );
define ( 'DB_UPDATE_VERSION', 1192 ); define ( 'DB_UPDATE_VERSION', 1192 );

View File

@ -42,7 +42,7 @@ EOT;
$observer = App::get_observer(); $observer = App::get_observer();
require_once('include/conversation.php'); require_once('include/conversation.php');
$is_owner = (((local_channel()) && (App::$profile['profile_uid'] == local_channel())) ? true : false); $is_owner = (((local_channel()) && ((App::$profile_uid == local_channel()) || (App::$profile_uid == 0))) ? true : false);
$channel_apps[] = channel_apps($is_owner, App::$profile['channel_address']); $channel_apps[] = channel_apps($is_owner, App::$profile['channel_address']);
$myident = (($channel) ? $channel['xchan_addr'] : ''); $myident = (($channel) ? $channel['xchan_addr'] : '');
@ -93,8 +93,6 @@ EOT;
if(local_channel()) { if(local_channel()) {
if($chans && count($chans) > 1 && feature_enabled(local_channel(),'nav_channel_select')) if($chans && count($chans) > 1 && feature_enabled(local_channel(),'nav_channel_select'))
$nav['channels'] = $chans; $nav['channels'] = $chans;
@ -134,12 +132,12 @@ EOT;
$homelink = (($observer) ? $observer['xchan_url'] : ''); $homelink = (($observer) ? $observer['xchan_url'] : '');
} }
if(! local_channel()) { if(! $is_owner) {
$nav['rusermenu'] = array( $nav['rusermenu'] = array(
$homelink, $homelink,
t('Take me home'), t('Take me home'),
'logout', 'logout',
t('Log me out of this site') ((local_channel()) ? t('Logout') : t('Log me out of this site'))
); );
} }
@ -170,7 +168,6 @@ EOT;
if(local_channel()) { if(local_channel()) {
$nav['network'] = array('network', t('Grid'), "", t('Your grid'),'network_nav_btn'); $nav['network'] = array('network', t('Grid'), "", t('Your grid'),'network_nav_btn');
$nav['network']['all'] = [ 'network', t('View your network/grid'), '','' ]; $nav['network']['all'] = [ 'network', t('View your network/grid'), '','' ];
$nav['network']['mark'] = array('', t('Mark all grid notifications seen'), '',''); $nav['network']['mark'] = array('', t('Mark all grid notifications seen'), '','');
@ -221,7 +218,7 @@ EOT;
$powered_by = ''; $powered_by = '';
//app bin //app bin
if(local_channel()) { if($is_owner) {
if(get_pconfig(local_channel(), 'system','initial_import_system_apps') === false) { if(get_pconfig(local_channel(), 'system','initial_import_system_apps') === false) {
Zlib\Apps::import_system_apps(); Zlib\Apps::import_system_apps();
set_pconfig(local_channel(), 'system','initial_import_system_apps', 1); set_pconfig(local_channel(), 'system','initial_import_system_apps', 1);
@ -245,7 +242,10 @@ EOT;
$syslist = Zlib\Apps::app_order(local_channel(),$syslist); $syslist = Zlib\Apps::app_order(local_channel(),$syslist);
foreach($syslist as $app) { foreach($syslist as $app) {
$nav_apps[] = Zlib\Apps::app_render($app,'nav'); if($is_owner)
$nav_apps[] = Zlib\Apps::app_render($app,'nav');
elseif(! $is_owner && strpos($app['requires'], 'local_channel') === false)
$nav_apps[] = Zlib\Apps::app_render($app,'nav');
} }
$tpl = get_markup_template('nav.tpl'); $tpl = get_markup_template('nav.tpl');
@ -259,6 +259,7 @@ EOT;
'$emptynotifications' => t('Loading...'), '$emptynotifications' => t('Loading...'),
'$userinfo' => $x['usermenu'], '$userinfo' => $x['usermenu'],
'$localuser' => local_channel(), '$localuser' => local_channel(),
'$is_owner' => $is_owner,
'$sel' => App::$nav_sel, '$sel' => App::$nav_sel,
'$powered_by' => $powered_by, '$powered_by' => $powered_by,
'$help' => t('@name, #tag, ?doc, content'), '$help' => t('@name, #tag, ?doc, content'),

View File

@ -4,10 +4,6 @@
text-decoration: none; text-decoration: none;
} }
.new-notification {
color: #c60032;
}
.channel-photo-wrapper { .channel-photo-wrapper {
display: table-cell; display: table-cell;
table-layout: fixed; table-layout: fixed;
@ -24,11 +20,3 @@
vertical-align: top; vertical-align: top;
padding-left: 10px; padding-left: 10px;
} }
.selected-channel {
color: green;
}
#all-channels-end {
margin-bottom: 20px;
}

View File

@ -1380,6 +1380,11 @@ blockquote {
background-color: $item_colour; background-color: $item_colour;
} }
.dropdown-item.active {
color: #fff;
background-color: #007bff;
}
.bg-dark { .bg-dark {
background-color: $nav_bg !important; background-color: $nav_bg !important;
} }

View File

@ -55,7 +55,7 @@ $(document).ready(function() {
}); });
$("input[data-role=cat-tagsinput]").tagsinput({ $("input[data-role=cat-tagsinput]").tagsinput({
tagClass: 'badge badge-pill badge-warning' tagClass: 'badge badge-pill badge-warning text-dark'
}); });
var doctitle = document.title; var doctitle = document.title;

View File

@ -17,7 +17,7 @@
</div> </div>
<h3> <h3>
{{if $selected == $channel.channel_id}} {{if $selected == $channel.channel_id}}
<i class="selected-channel fa fa-circle" title="{{$msg_selected}}"></i> <i class="fa fa-circle text-success" title="{{$msg_selected}}"></i>
{{/if}} {{/if}}
{{if $channel.delegate}} {{if $channel.delegate}}
<i class="fa fa-arrow-circle-right" title="{{$delegated_desc}}"></i> <i class="fa fa-arrow-circle-right" title="{{$delegated_desc}}"></i>
@ -37,11 +37,11 @@
<div class="channel-notifications-wrapper"> <div class="channel-notifications-wrapper">
{{if !$channel.delegate}} {{if !$channel.delegate}}
<div class="channel-notification"> <div class="channel-notification">
<i class="fa fa-envelope{{if $channel.mail != 0}} new-notification{{/if}}"></i> <i class="fa fa-fw fa-envelope{{if $channel.mail != 0}} text-danger{{/if}}"></i>
{{if $channel.mail != 0}}<a href="manage/{{$channel.channel_id}}/mail/combined">{{/if}}{{$channel.mail|string_format:$mail_format}}{{if $channel.mail != 0}}</a>{{/if}} {{if $channel.mail != 0}}<a href="manage/{{$channel.channel_id}}/mail/combined">{{/if}}{{$channel.mail|string_format:$mail_format}}{{if $channel.mail != 0}}</a>{{/if}}
</div> </div>
<div class="channel-notification"> <div class="channel-notification">
<i class="fa fa-user{{if $channel.intros != 0}} new-notification{{/if}}"></i> <i class="fa fa-fw fa-user{{if $channel.intros != 0}} text-danger{{/if}}"></i>
{{if $channel.intros != 0}}<a href='manage/{{$channel.channel_id}}/connections/ifpending'>{{/if}}{{$channel.intros|string_format:$intros_format}}{{if $channel.intros != 0}}</a>{{/if}} {{if $channel.intros != 0}}<a href='manage/{{$channel.channel_id}}/connections/ifpending'>{{/if}}{{$channel.intros|string_format:$intros_format}}{{if $channel.intros != 0}}</a>{{/if}}
</div> </div>
{{/if}} {{/if}}

View File

@ -1,6 +1,6 @@
<li class="nav-item"> <li class="nav-item">
<a href="mail/{{$message.mailbox}}/{{$message.id}}" class="nav-link{{if $message.selected}} active{{/if}}"> <a href="mail/{{$message.mailbox}}/{{$message.id}}" class="nav-link{{if $message.selected}} active{{/if}}">
<span class="{{if $message.seen}}seen{{else}}unseen{{/if}}">{{$message.subject}}</span><br> <span class="{{if ! $message.seen || $message.selected}}font-weight-bold{{/if}}">{{$message.subject}}</span><br>
<span class="conv-participants">{{$message.from_name}} > {{$message.to_name}}</span><br> <span class="conv-participants">{{$message.from_name}} > {{$message.to_name}}</span><br>
<span class="wall-item-ago autotime" title="{{$message.date}}">{{$message.date}}</span> <span class="wall-item-ago autotime" title="{{$message.date}}">{{$message.date}}</span>
</a> </a>

View File

@ -1,5 +1,5 @@
{{if $nav.login && !$userinfo}} {{if $nav.login && !$userinfo}}
<div class="d-md-none p-1"> <div class="d-md-none pt-1 pb-1">
<a class="btn btn-primary btn-sm text-white" href="#" title="{{$nav.loginmenu.1.3}}" id="{{$nav.loginmenu.1.4}}_collapse" data-toggle="modal" data-target="#nav-login"> <a class="btn btn-primary btn-sm text-white" href="#" title="{{$nav.loginmenu.1.3}}" id="{{$nav.loginmenu.1.4}}_collapse" data-toggle="modal" data-target="#nav-login">
{{$nav.loginmenu.1.1}} {{$nav.loginmenu.1.1}}
</a> </a>
@ -16,7 +16,7 @@
<img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"> <img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}">
<i class="fa fa-caret-down"></i> <i class="fa fa-caret-down"></i>
</div> </div>
{{if $localuser}} {{if $is_owner}}
<div class="dropdown-menu"> <div class="dropdown-menu">
{{foreach $nav.usermenu as $usermenu}} {{foreach $nav.usermenu as $usermenu}}
<a class="dropdown-item{{if $usermenu.2}} active{{/if}}" href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem" id="{{$usermenu.4}}">{{$usermenu.1}}</a> <a class="dropdown-item{{if $usermenu.2}} active{{/if}}" href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem" id="{{$usermenu.4}}">{{$usermenu.1}}</a>
@ -26,7 +26,7 @@
{{/if}} {{/if}}
{{if $nav.channels}} {{if $nav.channels}}
{{foreach $nav.channels as $chan}} {{foreach $nav.channels as $chan}}
<a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem">{{$chan.channel_name}}</a> <a class="dropdown-item" href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem"><i class="fa fa-circle{{if $localuser == $chan.channel_id}} text-success{{else}} invisible{{/if}}"></i> {{$chan.channel_name}}</a>
{{/foreach}} {{/foreach}}
{{/if}} {{/if}}
{{if $nav.profiles}} {{if $nav.profiles}}
@ -45,14 +45,13 @@
<a class="dropdown-item" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem" id="{{$nav.logout.4}}">{{$nav.logout.1}}</a> <a class="dropdown-item" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem" id="{{$nav.logout.4}}">{{$nav.logout.1}}</a>
{{/if}} {{/if}}
</div> </div>
{{else}} {{/if}}
{{if $nav.rusermenu}} {{if ! $is_owner}}
<div class="dropdown-menu" role="menu" aria-labelledby="avatar"> <div class="dropdown-menu" role="menu" aria-labelledby="avatar">
<a class="dropdown-item" href="{{$nav.rusermenu.0}}" role="menuitem">{{$nav.rusermenu.1}}</a> <a class="dropdown-item" href="{{$nav.rusermenu.0}}" role="menuitem">{{$nav.rusermenu.1}}</a>
<a class="dropdown-item" href="{{$nav.rusermenu.2}}" role="menuitem">{{$nav.rusermenu.3}}</a> <a class="dropdown-item" href="{{$nav.rusermenu.2}}" role="menuitem">{{$nav.rusermenu.3}}</a>
</div> </div>
{{/if}} {{/if}}
{{/if}}
</div> </div>
{{/if}} {{/if}}
<div class="navbar-toggler-right"> <div class="navbar-toggler-right">
@ -204,7 +203,7 @@
{{if $channel_apps.0}} {{if $channel_apps.0}}
</div> </div>
{{/if}} {{/if}}
{{if $localuser}} {{if $is_owner}}
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a> <a class="dropdown-item" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a>
<a class="dropdown-item" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a> <a class="dropdown-item" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a>
@ -230,7 +229,7 @@
{{if $channel_apps.0}} {{if $channel_apps.0}}
</div> </div>
{{/if}} {{/if}}
{{if $localuser}} {{if $is_owner}}
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="nav-link" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a> <a class="nav-link" href="/apps"><i class="generic-icons-nav fa fa-fw fa-plus-circle"></i>{{$addapps}}</a>
<a class="nav-link" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a> <a class="nav-link" href="/apporder"><i class="generic-icons-nav fa fa-fw fa-sort"></i>{{$orderapps}}</a>