diff options
author | zotlabs <mike@macgirvin.com> | 2017-10-08 12:42:54 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-10-08 12:42:54 -0700 |
commit | 5cc6c6c1e97743b208b90f2a05b23196df787f36 (patch) | |
tree | 77b85421af0e0052f5b0ab23fc95abd51bc89728 | |
parent | d2e22d8c2f5ee7c0bca1fa63d39a6822582106e8 (diff) | |
parent | 991db280be4c3cbbff4fb1e4dae8f303a487ed3f (diff) | |
download | volse-hubzilla-5cc6c6c1e97743b208b90f2a05b23196df787f36.tar.gz volse-hubzilla-5cc6c6c1e97743b208b90f2a05b23196df787f36.tar.bz2 volse-hubzilla-5cc6c6c1e97743b208b90f2a05b23196df787f36.zip |
Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge
68 files changed, 575 insertions, 80 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php index 37cbf9497..c4f4038dc 100644 --- a/Zotlabs/Lib/Apps.php +++ b/Zotlabs/Lib/Apps.php @@ -222,7 +222,7 @@ class Apps { $apps = array( 'Apps' => t('Apps'), 'Cards' => t('Cards'), - 'Site Admin' => t('Site Admin'), + 'Admin' => t('Site Admin'), 'Report Bug' => t('Report Bug'), 'View Bookmarks' => t('View Bookmarks'), 'My Chatrooms' => t('My Chatrooms'), diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php index 9f3347d19..e82c11a35 100644 --- a/Zotlabs/Lib/Enotify.php +++ b/Zotlabs/Lib/Enotify.php @@ -130,7 +130,9 @@ class Enotify { if ($params['type'] == NOTIFY_COMMENT) { // logger("notification: params = " . print_r($params, true), LOGGER_DEBUG); - $itemlink = $params['link']; + $moderated = (($params['item']['item_blocked'] == ITEM_MODERATED) ? true : false); + + $itemlink = $params['link']; // ignore like/unlike activity on posts - they probably require a separate notification preference @@ -170,8 +172,6 @@ class Enotify { xchan_query($p); - $moderated = (($p[0]['item_blocked'] == ITEM_MODERATED) ? true : false); - $item_post_type = item_post_type($p[0]); // $private = $p[0]['item_private']; $parent_id = $p[0]['id']; diff --git a/Zotlabs/Lib/JSalmon.php b/Zotlabs/Lib/JSalmon.php new file mode 100644 index 000000000..43d5f9d09 --- /dev/null +++ b/Zotlabs/Lib/JSalmon.php @@ -0,0 +1,38 @@ +<?php + +namespace Zotlabs\Lib; + + +class JSalmon { + + static function sign($data,$key_id,$key) { + + $arr = $data; + $data = json_encode($data,JSON_UNESCAPED_SLASHES); + $data = base64url_encode($data, false); // do not strip padding + $data_type = 'application/x-zot+json'; + $encoding = 'base64url'; + $algorithm = 'RSA-SHA256'; + + $data = preg_replace('/\s+/','',$data); + + // precomputed base64url encoding of data_type, encoding, algorithm concatenated with periods + + $precomputed = '.' . base64url_encode($data_type,false) . '.YmFzZTY0dXJs.UlNBLVNIQTI1Ng=='; + + $signature = base64url_encode(rsa_sign($data . $precomputed, $key), false); + + return ([ + 'signed' => true, + 'data' => $data, + 'data_type' => $data_type, + 'encoding' => $encoding, + 'alg' => $algorithm, + 'sigs' => [ + 'value' => $signature, + 'key_id' => base64url_encode($key_id) + ] + ]); + + } +}
\ No newline at end of file diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index d916ce2c1..67a507025 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -758,7 +758,7 @@ class ThreadItem { '$cipher' => $conv->get_cipher(), '$sourceapp' => \App::$sourcename, '$observer' => get_observer_hash(), - '$anoncomments' => (($conv->get_mode() === 'channel' && perm_is_allowed($conv->get_profile_owner(),'','post_comments')) ? true : false), + '$anoncomments' => ((($conv->get_mode() === 'channel' || $conv->get_mode() === 'display') && perm_is_allowed($conv->get_profile_owner(),'','post_comments')) ? true : false), '$anonname' => [ 'anonname', t('Your full name (required)') ], '$anonmail' => [ 'anonmail', t('Your email address (required)') ], '$anonurl' => [ 'anonurl', t('Your website URL (optional)') ] diff --git a/Zotlabs/Module/Moderate.php b/Zotlabs/Module/Moderate.php index 9af43420d..8aaa0897a 100644 --- a/Zotlabs/Module/Moderate.php +++ b/Zotlabs/Module/Moderate.php @@ -73,4 +73,4 @@ class Moderate extends \Zotlabs\Web\Controller { } -}
\ No newline at end of file +} diff --git a/Zotlabs/Module/Ping.php b/Zotlabs/Module/Ping.php index 3cda6a277..e3f430861 100644 --- a/Zotlabs/Module/Ping.php +++ b/Zotlabs/Module/Ping.php @@ -19,6 +19,7 @@ class Ping extends \Zotlabs\Web\Controller { * @result JSON */ function init() { + $result = array(); $notifs = array(); @@ -139,8 +140,8 @@ class Ping extends \Zotlabs\Web\Controller { db_utcnow(), db_quoteinterval('3 MINUTE') ); - $disable_discover_tab = get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false; - $notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && !$disable_discover_tab : !$disable_discover_tab); + $discover_tab_on = ((get_config('system','disable_discover_tab') != 1) ? true : false); + $notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && $discover_tab_on : $discover_tab_on); if($notify_pubs) { $sys = get_sys_channel(); @@ -161,6 +162,37 @@ class Ping extends \Zotlabs\Web\Controller { $result['pubs'] = intval($pubs[0]['total']); } + if((argc() > 1) && (argv(1) === 'pubs') && ($notify_pubs)) { + $sys = get_sys_channel(); + $result = array(); + + $r = q("SELECT * FROM item + WHERE uid = %d + AND author_xchan != '%s' + AND obj_type != '%s' + AND item_unseen = 1 + AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "' + $item_normal + ORDER BY created DESC + LIMIT 300", + intval($sys['channel_id']), + dbesc(get_observer_hash()), + dbesc(ACTIVITY_OBJ_FILE) + ); + + if($r) { + xchan_query($r); + foreach($r as $rr) { + $rr['llink'] = str_replace('display/', 'pubstream/?f=&mid=', $rr['llink']); + $result[] = \Zotlabs\Lib\Enotify::format($rr); + } + } + +// logger('ping (network||home): ' . print_r($result, true), LOGGER_DATA); + echo json_encode(array('notify' => $result)); + killme(); + } + $t1 = dba_timer(); if((! local_channel()) || ($result['invalid'])) { @@ -206,6 +238,9 @@ class Ping extends \Zotlabs\Web\Controller { intval(local_channel()) ); break; + case 'pubs': + unset($_SESSION['static_loadtime']); + break; default: break; } diff --git a/Zotlabs/Module/Pubstream.php b/Zotlabs/Module/Pubstream.php index 72d5f80fa..15e2d8a74 100644 --- a/Zotlabs/Module/Pubstream.php +++ b/Zotlabs/Module/Pubstream.php @@ -19,18 +19,26 @@ class Pubstream extends \Zotlabs\Web\Controller { $disable_discover_tab = get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false; if($disable_discover_tab) return; - + + $mid = ((x($_REQUEST,'mid')) ? $_REQUEST['mid'] : ''); + + if(strpos($mid,'b64.') === 0) + $decoded = @base64url_decode(substr($mid,4)); + if($decoded) + $mid = $decoded; + $item_normal = item_normal(); $item_normal_update = item_normal_update(); $static = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0); - if(! $update) { + if(! $update && !$load) { nav_set_selected(t('Public Stream')); - $_SESSION['static_loadtime'] = datetime_convert(); + if(!$mid) + $_SESSION['static_loadtime'] = datetime_convert(); $static = ((local_channel()) ? channel_manual_conv_update(local_channel()) : 1); @@ -43,6 +51,10 @@ class Pubstream extends \Zotlabs\Web\Controller { . "; var profile_page = " . \App::$pager['page'] . "; divmore_height = " . intval($maxheight) . "; </script>\r\n"; + //if we got a decoded hash we must encode it again before handing to javascript + if($decoded) + $mid = 'b64.' . base64url_encode($mid); + \App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array( '$baseurl' => z_root(), '$pgtype' => 'pubstream', @@ -68,7 +80,7 @@ class Pubstream extends \Zotlabs\Web\Controller { '$cats' => '', '$tags' => '', '$dend' => '', - '$mid' => '', + '$mid' => $mid, '$verb' => '', '$dbegin' => '' )); @@ -119,29 +131,46 @@ class Pubstream extends \Zotlabs\Web\Controller { $ordering = "commented"; if($load) { - - // Fetch a page full of parent items for this page - - $r = q("SELECT distinct item.id AS item_id, $ordering FROM item - left join abook on item.author_xchan = abook.abook_xchan - WHERE true $uids $item_normal - AND item.parent = item.id - and (abook.abook_blocked = 0 or abook.abook_flags is null) - $sql_extra3 $sql_extra $sql_nets - ORDER BY $ordering DESC $pager_sql " - ); - - + if($mid) { + $r = q("SELECT parent AS item_id FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE mid like '%s' $uids $item_normal + and (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets LIMIT 1", + dbesc($mid . '%') + ); + } + else { + // Fetch a page full of parent items for this page + $r = q("SELECT distinct item.id AS item_id, $ordering FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE true $uids $item_normal + AND item.parent = item.id + and (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets + ORDER BY $ordering DESC $pager_sql " + ); + } } elseif($update) { - - $r = q("SELECT distinct item.id AS item_id, $ordering FROM item - left join abook on item.author_xchan = abook.abook_xchan - WHERE true $uids $item_normal_update - AND item.parent = item.id $simple_update - and (abook.abook_blocked = 0 or abook.abook_flags is null) - $sql_extra3 $sql_extra $sql_nets" - ); + if($mid) { + $r = q("SELECT parent AS item_id FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE mid like '%s' $uids $item_normal_update $simple_update + and (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets LIMIT 1", + dbesc($mid . '%') + ); + } + else { + $r = q("SELECT distinct item.id AS item_id, $ordering FROM item + left join abook on item.author_xchan = abook.abook_xchan + WHERE true $uids $item_normal_update + AND item.parent = item.id $simple_update + and (abook.abook_blocked = 0 or abook.abook_flags is null) + $sql_extra3 $sql_extra $sql_nets" + ); + } $_SESSION['loadtime'] = datetime_convert(); } // Then fetch all the children of the parents that are on this page @@ -173,6 +202,9 @@ class Pubstream extends \Zotlabs\Web\Controller { $mode = ('network'); $o .= conversation($items,$mode,$update,$page_mode); + + if($mid) + $o .= '<div id="content-complete"></div>'; if(($items) && (! $update)) $o .= alt_pager($a,count($items)); diff --git a/Zotlabs/Web/WebServer.php b/Zotlabs/Web/WebServer.php index 0ee735818..9e6af8c4c 100644 --- a/Zotlabs/Web/WebServer.php +++ b/Zotlabs/Web/WebServer.php @@ -107,7 +107,7 @@ class WebServer { check_config(); } - nav_set_selected('nothing'); + //nav_set_selected('nothing'); $Router = new Router($a); diff --git a/Zotlabs/Widget/Notifications.php b/Zotlabs/Widget/Notifications.php new file mode 100644 index 000000000..85e8e6cac --- /dev/null +++ b/Zotlabs/Widget/Notifications.php @@ -0,0 +1,152 @@ +<?php + +namespace Zotlabs\Widget; + +class Notifications { + + function widget($arr) { + + if(! get_pconfig(local_channel(), 'system', 'experimental_notif')) + return; + + $channel = \App::get_channel(); + + if(local_channel()) { + $notifications[] = [ + 'type' => 'network', + 'icon' => 'th', + 'severity' => 'secondary', + 'label' => t('Activity'), + 'title' => t('Network Activity Notifications'), + 'viewall' => [ + 'url' => 'network', + 'label' => t('View your network activity') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all notifications seen') + ] + ]; + + $notifications[] = [ + 'type' => 'home', + 'icon' => 'home', + 'severity' => 'danger', + 'label' => t('Home'), + 'title' => t('Channel Home Notifications'), + 'viewall' => [ + 'url' => 'channel/' . $channel['channel_address'], + 'label' => t('View your home activity') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all notifications seen') + ] + ]; + + $notifications[] = [ + 'type' => 'messages', + 'icon' => 'envelope', + 'severity' => 'danger', + 'label' => t('Mail'), + 'title' => t('Private mail'), + 'viewall' => [ + 'url' => 'mail/combined', + 'label' => t('View your private mails') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all messages seen') + ] + ]; + + $notifications[] = [ + 'type' => 'all_events', + 'icon' => 'calendar', + 'severity' => 'secondary', + 'label' => t('Events'), + 'title' => t('Event Calendar'), + 'viewall' => [ + 'url' => 'mail/combined', + 'label' => t('View events') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all events seen') + ] + ]; + + $notifications[] = [ + 'type' => 'intros', + 'icon' => 'users', + 'severity' => 'danger', + 'label' => t('New Connections'), + 'title' => t('New Connections'), + 'viewall' => [ + 'url' => 'connections', + 'label' => t('View all connections') + ] + ]; + + $notifications[] = [ + 'type' => 'files', + 'icon' => 'folder', + 'severity' => 'danger', + 'label' => t('New Files'), + 'title' => t('New files shared with me'), + ]; + + $notifications[] = [ + 'type' => 'notify', + 'icon' => 'exclamation', + 'severity' => 'danger', + 'label' => t('Notices'), + 'title' => t('Notices'), + 'viewall' => [ + 'url' => 'notifications/system', + 'label' => t('View all notices') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all notices seen') + ] + ]; + } + + if(local_channel() && is_site_admin()) { + $notifications[] = [ + 'type' => 'register', + 'icon' => 'user-o', + 'severity' => 'danger', + 'label' => t('New Registrations'), + 'title' => t('New Registrations'), + ]; + } + + $notifications[] = [ + 'type' => 'pubs', + 'icon' => 'globe', + 'severity' => 'secondary', + 'label' => t('Public Stream'), + 'title' => t('Public Stream Notifications'), + 'viewall' => [ + 'url' => 'pubstream', + 'label' => t('View the public stream') + ], + 'markall' => [ + 'url' => '#', + 'label' => t('Mark all notifications seen') + ] + ]; + + + $o = replace_macros(get_markup_template('notifications_widget.tpl'), array( + '$notifications' => $notifications, + '$loading' => t('Loading...') + )); + + return $o; + + } +} + diff --git a/app/admin.apd b/app/admin.apd new file mode 100644 index 000000000..68c07568e --- /dev/null +++ b/app/admin.apd @@ -0,0 +1,6 @@ +version: 1 +url: $baseurl/admin +requires: admin +name: Admin +photo: icon:wrench +categories: nav_featured_app diff --git a/include/channel.php b/include/channel.php index fef933ba7..488bdeef0 100644 --- a/include/channel.php +++ b/include/channel.php @@ -1373,7 +1373,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa ? trim(substr($profile['channel_name'],0,strpos($profile['channel_name'],' '))) : $profile['channel_name']); $lastname = (($firstname === $profile['channel_name']) ? '' : trim(substr($profile['channel_name'],strlen($firstname)))); - // @fixme move this to the diaspora plugin itself $contact_block = contact_block(); diff --git a/include/crypto.php b/include/crypto.php index 6ac3fd732..622add4dc 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -148,6 +148,7 @@ function other_encapsulate($data,$pubkey,$alg) { // compromised by state actors and evidence is mounting that this has // already happened. + $result = [ 'encrypted' => true ]; $key = openssl_random_pseudo_bytes(256); $iv = openssl_random_pseudo_bytes(256); $result['data'] = base64url_encode($fn($data,$key,$iv),true); @@ -200,6 +201,9 @@ function aes_encapsulate($data,$pubkey) { logger('aes_encapsulate: no key. data: ' . $data); $key = openssl_random_pseudo_bytes(32); $iv = openssl_random_pseudo_bytes(16); + + $result = [ 'encrypted' => true ]; + $result['data'] = base64url_encode(AES256CBC_encrypt($data,$key,$iv),true); // log the offending call so we can track it down if(! openssl_public_encrypt($key,$k,$pubkey)) { diff --git a/include/nav.php b/include/nav.php index eccb89764..6b56c9aee 100644 --- a/include/nav.php +++ b/include/nav.php @@ -62,10 +62,12 @@ EOT; if($banner === false) $banner = get_config('system','sitename'); - //the notifications template is in hdr.tpl - App::$page['header'] .= replace_macros(get_markup_template('hdr.tpl'), array( - //we could additionally use this to display important system notifications e.g. for updates - )); + if(! get_pconfig(local_channel(), 'system', 'experimental_notif')) { + //the notifications template is in hdr.tpl + App::$page['header'] .= replace_macros(get_markup_template('hdr.tpl'), array( + //we could additionally use this to display important system notifications e.g. for updates + )); + } $techlevel = get_account_techlevel(); @@ -211,7 +213,9 @@ EOT; } if(! get_config('system', 'disable_discover_tab')) { - $nav['pubs'] = array('pubstream', t('Public stream'), "", t('Public stream activities'),'pubs_nav_btn'); + $nav['pubs'] = array('pubstream', t('Public stream'), "", t('Public stream activity'),'pubs_nav_btn'); + $nav['pubs']['all'] = [ 'pubstream', t('View public stream'), '','' ]; + $nav['pubs']['mark'] = array('', t('Mark all public stream items seen'), '',''); } /** @@ -267,6 +271,7 @@ EOT; App::$page['nav'] .= replace_macros($tpl, array( '$baseurl' => z_root(), + '$experimental_notif' => get_pconfig(local_channel(), 'system', 'experimental_notif'), '$fulldocs' => t('Help'), '$sitelocation' => $sitelocation, '$nav' => $x['nav'], @@ -280,10 +285,13 @@ EOT; '$help' => t('@name, #tag, ?doc, content'), '$pleasewait' => t('Please wait...'), '$nav_apps' => $nav_apps, + '$channel_menu' => get_config('system','channel_menu'), + '$channel_thumb' => ((App::$profile) ? App::$profile['thumb'] : ''), '$channel_apps' => $channel_apps, '$addapps' => t('Add Apps'), '$orderapps' => t('Arrange Apps'), - '$sysapps_toggle' => t('Toggle System Apps') + '$sysapps_toggle' => t('Toggle System Apps'), + '$loc' => $myident )); if(x($_SESSION, 'reload_avatar') && $observer) { @@ -481,7 +489,8 @@ function channel_apps($is_owner = false, $nickname = null) { [ '$tabs' => $arr['tabs'], '$name' => App::$profile['channel_name'], - '$thumb' => App::$profile['thumb'] + '$thumb' => App::$profile['thumb'], + '$channel_menu' => get_config('system','channel_menu') ] ); } diff --git a/view/js/main.js b/view/js/main.js index dc40db360..b2210ee4c 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -992,7 +992,7 @@ function notify_popup_loader(notifyType) { html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass); $("#nav-" + notifyType + "-menu").append(html); }); - $(".dropdown-menu img[data-src]").each(function(i, el){ + $(".dropdown-menu img[data-src], .dropdown-item img[data-src]").each(function(i, el){ // Replace data-src attribute with src attribute for every image $(el).attr('src', $(el).data("src")); $(el).removeAttr("data-src"); diff --git a/view/js/mod_new_channel.js b/view/js/mod_new_channel.js index 17b354a4b..e670e1a35 100644 --- a/view/js/mod_new_channel.js +++ b/view/js/mod_new_channel.js @@ -1,7 +1,7 @@ $(document).ready(function() { // $("#id_permissions_role").sSelect(); $("#id_name").blur(function() { - $("#name-spinner").spin('small'); + $("#name-spinner").show(); var zreg_name = $("#id_name").val(); $.get("new_channel/autofill.json?f=&name=" + encodeURIComponent(zreg_name),function(data) { $("#id_nickname").val(data); @@ -9,12 +9,12 @@ $("#help_name").html(""); zFormError("#help_name",data.error); } - $("#name-spinner").spin(false); + $("#name-spinner").hide(); }); }); $("#id_nickname").blur(function() { - $("#nick-spinner").spin('small'); + $("#nick-spinner").show(); var zreg_nick = $("#id_nickname").val(); $.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick),function(data) { $("#id_nickname").val(data); @@ -22,7 +22,7 @@ $("#help_nickname").html(""); zFormError("#help_nickname",data.error); } - $("#nick-spinner").spin(false); + $("#nick-spinner").hide(); }); }); diff --git a/view/js/mod_register.js b/view/js/mod_register.js index f1f3e7f71..6607579a2 100644 --- a/view/js/mod_register.js +++ b/view/js/mod_register.js @@ -28,7 +28,7 @@ $(document).ready(function() { }); $("#id_name").blur(function() { - $("#name-spinner").spin('small'); + $("#name-spinner").show(); var zreg_name = $("#id_name").val(); $.get("new_channel/autofill.json?f=&name=" + encodeURIComponent(zreg_name),function(data) { $("#id_nickname").val(data); @@ -36,12 +36,12 @@ $(document).ready(function() { $("#help_name").html(""); zFormError("#help_name",data.error); } - $("#name-spinner").spin(false); + $("#name-spinner").hide(); }); }); $("#id_nickname").blur(function() { - $("#nick-spinner").spin('small'); + $("#nick-spinner").show(); var zreg_nick = $("#id_nickname").val(); $.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick),function(data) { $("#id_nickname").val(data); @@ -49,7 +49,7 @@ $(document).ready(function() { $("#help_nickname").html(""); zFormError("#help_nickname",data.error); } - $("#nick-spinner").spin(false); + $("#nick-spinner").hide(); }); }); diff --git a/view/pdl/mod_admin.pdl b/view/pdl/mod_admin.pdl index 5bd47ea37..deee4551b 100644 --- a/view/pdl/mod_admin.pdl +++ b/view/pdl/mod_admin.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=admin][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_appman.pdl b/view/pdl/mod_appman.pdl index 1209d85b9..d2b1379a5 100644 --- a/view/pdl/mod_appman.pdl +++ b/view/pdl/mod_appman.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=appcategories][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_apps.pdl b/view/pdl/mod_apps.pdl index 1209d85b9..d2b1379a5 100644 --- a/view/pdl/mod_apps.pdl +++ b/view/pdl/mod_apps.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=appcategories][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_blocks.pdl b/view/pdl/mod_blocks.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_blocks.pdl +++ b/view/pdl/mod_blocks.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_cal.pdl b/view/pdl/mod_cal.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_cal.pdl +++ b/view/pdl/mod_cal.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_cards.pdl b/view/pdl/mod_cards.pdl index 5546d97cb..f5606dcb8 100644 --- a/view/pdl/mod_cards.pdl +++ b/view/pdl/mod_cards.pdl @@ -3,3 +3,6 @@ [widget=tasklist][/widget] [widget=notes][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_cdav.pdl b/view/pdl/mod_cdav.pdl index ae26810c4..d31308d90 100644 --- a/view/pdl/mod_cdav.pdl +++ b/view/pdl/mod_cdav.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=cdav][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_channel.pdl b/view/pdl/mod_channel.pdl index 45ce31720..f7ac0b4ef 100644 --- a/view/pdl/mod_channel.pdl +++ b/view/pdl/mod_channel.pdl @@ -8,4 +8,6 @@ [widget=categories][/widget] [widget=tagcloud_wall][var=limit]24[/var][/widget] [/region] - +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_chanview.pdl b/view/pdl/mod_chanview.pdl index d8f50ad7a..5c8ca77d5 100644 --- a/view/pdl/mod_chanview.pdl +++ b/view/pdl/mod_chanview.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=vcard][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_chat.pdl b/view/pdl/mod_chat.pdl index 664e77f53..2f1f5c8d1 100644 --- a/view/pdl/mod_chat.pdl +++ b/view/pdl/mod_chat.pdl @@ -5,3 +5,6 @@ [widget=suggestedchats][/widget] [widget=chatroom_members][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_cloud.pdl b/view/pdl/mod_cloud.pdl index d8f50ad7a..5c8ca77d5 100644 --- a/view/pdl/mod_cloud.pdl +++ b/view/pdl/mod_cloud.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=vcard][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_common.pdl b/view/pdl/mod_common.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_common.pdl +++ b/view/pdl/mod_common.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_connect.pdl b/view/pdl/mod_connect.pdl index 6b1d2a15e..23b8d9f71 100644 --- a/view/pdl/mod_connect.pdl +++ b/view/pdl/mod_connect.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=profile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_connections.pdl b/view/pdl/mod_connections.pdl index fd3f25483..7cead4fe8 100644 --- a/view/pdl/mod_connections.pdl +++ b/view/pdl/mod_connections.pdl @@ -4,3 +4,6 @@ [widget=suggestions][/widget] [widget=findpeople][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_connedit.pdl b/view/pdl/mod_connedit.pdl index 4b468e34c..3f57ed87b 100644 --- a/view/pdl/mod_connedit.pdl +++ b/view/pdl/mod_connedit.pdl @@ -4,3 +4,6 @@ [widget=suggestions][/widget] [widget=findpeople][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_directory.pdl b/view/pdl/mod_directory.pdl index 452ab66c7..7b430738b 100644 --- a/view/pdl/mod_directory.pdl +++ b/view/pdl/mod_directory.pdl @@ -4,3 +4,6 @@ [widget=dirtags][/widget] [widget=suggestions][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_editblock.pdl b/view/pdl/mod_editblock.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_editblock.pdl +++ b/view/pdl/mod_editblock.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_editlayout.pdl b/view/pdl/mod_editlayout.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_editlayout.pdl +++ b/view/pdl/mod_editlayout.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_editwebpage.pdl b/view/pdl/mod_editwebpage.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_editwebpage.pdl +++ b/view/pdl/mod_editwebpage.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_events.pdl b/view/pdl/mod_events.pdl index 8347d4c59..b26f3b0d0 100644 --- a/view/pdl/mod_events.pdl +++ b/view/pdl/mod_events.pdl @@ -2,3 +2,6 @@ [widget=eventstools][/widget] [widget=tasklist][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_group.pdl b/view/pdl/mod_group.pdl index 8db29cf78..0a31e17d9 100644 --- a/view/pdl/mod_group.pdl +++ b/view/pdl/mod_group.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=collections][var=mode]groups[/var][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_help.pdl b/view/pdl/mod_help.pdl index bafad3839..2eab7aa63 100644 --- a/view/pdl/mod_help.pdl +++ b/view/pdl/mod_help.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=helpindex][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_id.pdl b/view/pdl/mod_id.pdl index 71ef7f898..c34898dd5 100644 --- a/view/pdl/mod_id.pdl +++ b/view/pdl/mod_id.pdl @@ -1,4 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] - +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_layouts.pdl b/view/pdl/mod_layouts.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_layouts.pdl +++ b/view/pdl/mod_layouts.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_locs.pdl b/view/pdl/mod_locs.pdl index 0b0a99638..53a3ac9e5 100644 --- a/view/pdl/mod_locs.pdl +++ b/view/pdl/mod_locs.pdl @@ -1,4 +1,6 @@ [region=aside] [widget=settings_menu][/widget] [/region] - +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_mail.pdl b/view/pdl/mod_mail.pdl index 67632619e..52f908919 100644 --- a/view/pdl/mod_mail.pdl +++ b/view/pdl/mod_mail.pdl @@ -2,3 +2,6 @@ [widget=mailmenu][/widget] [widget=conversations][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_menu.pdl b/view/pdl/mod_menu.pdl index cef69f194..6ef7993b5 100644 --- a/view/pdl/mod_menu.pdl +++ b/view/pdl/mod_menu.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=design_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_message.pdl b/view/pdl/mod_message.pdl index 2efb3de79..f9dd8f623 100644 --- a/view/pdl/mod_message.pdl +++ b/view/pdl/mod_message.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=mailmenu][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_mitem.pdl b/view/pdl/mod_mitem.pdl index c210606d0..4db06cb49 100644 --- a/view/pdl/mod_mitem.pdl +++ b/view/pdl/mod_mitem.pdl @@ -1,4 +1,7 @@ [region=aside] [widget=design_tools][/widget] [widget=menu_preview][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_network.pdl b/view/pdl/mod_network.pdl index b8817fd99..24cf65b3c 100644 --- a/view/pdl/mod_network.pdl +++ b/view/pdl/mod_network.pdl @@ -14,3 +14,6 @@ $content [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_photos.pdl b/view/pdl/mod_photos.pdl index c37cf02fe..4d1a5b2ea 100644 --- a/view/pdl/mod_photos.pdl +++ b/view/pdl/mod_photos.pdl @@ -2,3 +2,6 @@ [widget=vcard][/widget] [widget=photo_albums][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_profile.pdl b/view/pdl/mod_profile.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_profile.pdl +++ b/view/pdl/mod_profile.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_profile_photo.pdl b/view/pdl/mod_profile_photo.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_profile_photo.pdl +++ b/view/pdl/mod_profile_photo.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_profiles.pdl b/view/pdl/mod_profiles.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_profiles.pdl +++ b/view/pdl/mod_profiles.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_profperm.pdl b/view/pdl/mod_profperm.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_profperm.pdl +++ b/view/pdl/mod_profperm.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_rate.pdl b/view/pdl/mod_rate.pdl index d8f50ad7a..5c8ca77d5 100644 --- a/view/pdl/mod_rate.pdl +++ b/view/pdl/mod_rate.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=vcard][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_ratings.pdl b/view/pdl/mod_ratings.pdl index df1486c9b..cfa39e408 100644 --- a/view/pdl/mod_ratings.pdl +++ b/view/pdl/mod_ratings.pdl @@ -5,3 +5,6 @@ [widget=suggestions][/widget] [widget=findpeople][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_search.pdl b/view/pdl/mod_search.pdl index 5096508fa..8353b4571 100644 --- a/view/pdl/mod_search.pdl +++ b/view/pdl/mod_search.pdl @@ -1,3 +1,6 @@ [region=aside] [comment][widget=sitesearch][/widget][/comment] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_settings.pdl b/view/pdl/mod_settings.pdl index 0b0a99638..53a3ac9e5 100644 --- a/view/pdl/mod_settings.pdl +++ b/view/pdl/mod_settings.pdl @@ -1,4 +1,6 @@ [region=aside] [widget=settings_menu][/widget] [/region] - +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_suggest.pdl b/view/pdl/mod_suggest.pdl index c2889f2fe..392a36dd6 100644 --- a/view/pdl/mod_suggest.pdl +++ b/view/pdl/mod_suggest.pdl @@ -1,4 +1,7 @@ [region=aside] [widget=follow][/widget] [widget=findpeople][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_uexport.pdl b/view/pdl/mod_uexport.pdl index 0b0a99638..53a3ac9e5 100644 --- a/view/pdl/mod_uexport.pdl +++ b/view/pdl/mod_uexport.pdl @@ -1,4 +1,6 @@ [region=aside] [widget=settings_menu][/widget] [/region] - +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_viewconnections.pdl b/view/pdl/mod_viewconnections.pdl index f12bf39c3..c34898dd5 100644 --- a/view/pdl/mod_viewconnections.pdl +++ b/view/pdl/mod_viewconnections.pdl @@ -1,3 +1,6 @@ [region=aside] [widget=fullprofile][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_webpages.pdl b/view/pdl/mod_webpages.pdl index 9e4d604ba..4e60dc2a7 100644 --- a/view/pdl/mod_webpages.pdl +++ b/view/pdl/mod_webpages.pdl @@ -1,4 +1,7 @@ [region=aside] [widget=design_tools][/widget] [widget=website_portation_tools][/widget] -[/region]
\ No newline at end of file +[/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/pdl/mod_wiki.pdl b/view/pdl/mod_wiki.pdl index 052ae61a1..1b98b6379 100644 --- a/view/pdl/mod_wiki.pdl +++ b/view/pdl/mod_wiki.pdl @@ -2,3 +2,6 @@ [widget=vcard][/widget] [widget=wiki_pages][/widget] [/region] +[region=right_aside] +[widget=notifications][/widget] +[/region] diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index b36e35ccc..c67c67a51 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -64,6 +64,13 @@ $(document).ready(function() { } }); + $('#notifications-btn-1').click(function() { + $('#region_3').toggleClass('fs'); + if($('#navbar-collapse-2').hasClass('show')){ + $('#navbar-collapse-2').removeClass('show'); + } + }); + $("input[data-role=cat-tagsinput]").tagsinput({ tagClass: 'badge badge-pill badge-warning text-dark' }); diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl index adc8584c3..e8ae6a590 100644 --- a/view/tpl/cloud_directory.tpl +++ b/view/tpl/cloud_directory.tpl @@ -25,7 +25,7 @@ <td><a href="{{$item.fullPath}}">{{$item.displayName}}</a></td> {{if $item.is_owner}} <td class="cloud-index-tool">{{$item.attachIcon}}</td> - <td id="file-edit-{{$item.attachId}}" class="cloud-index-tool"></td> + <td class="cloud-index-tool"><div id="file-edit-{{$item.attachId}}" class="spinner-wrapper"><div class="spinner s"></div></div></td> <td class="cloud-index-tool"><i class="fakelink fa fa-pencil" onclick="filestorage(event, '{{$nick}}', {{$item.attachId}});"></i></td> <td class="cloud-index-tool"><a href="#" title="{{$delete}}" onclick="dropItem('{{$item.fileStorageUrl}}/{{$item.attachId}}/delete', '#cloud-index-{{$item.attachId}},#cloud-tools-{{$item.attachId}}'); return false;"><i class="fa fa-trash-o drop-icons"></i></a></td> diff --git a/view/tpl/main_slider.tpl b/view/tpl/main_slider.tpl index d4f0dd936..4cc265f59 100755 --- a/view/tpl/main_slider.tpl +++ b/view/tpl/main_slider.tpl @@ -1,5 +1,5 @@ <div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="{{$val}}" /></div> -<div id="profile-jot-text-loading" style="display:none;"></div> +<div id="profile-jot-text-loading" class="spinner-wrapper"><div class="spinner m"></div></div> <script> $(document).ready(function() { var old_cmin = 0; @@ -27,7 +27,7 @@ $(document).ready(function() { return; if((bParam_cmin == old_cmin) && (bParam_cmax == old_cmax)) return; - setTimeout(function() { $("#profile-jot-text-loading").spin('small'); }, 1000 ); + slideTimer = setTimeout(networkTimerRefresh,2000); } diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl index 82cdc0dd0..92ab88574 100755 --- a/view/tpl/nav.tpl +++ b/view/tpl/nav.tpl @@ -63,16 +63,25 @@ <button id="expand-aside" type="button" class="navbar-toggler border-0" data-toggle="offcanvas" data-target="#region_1"> <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i> </button> + {{if ! $experimental_notif}} {{if $localuser || $nav.pubs}} <button id="notifications-btn" type="button" class="navbar-toggler border-0 text-white" data-toggle="collapse" data-target="#navbar-collapse-1"> <i class="fa fa-exclamation-circle"></i> </button> {{/if}} + {{else}} + {{if $localuser || $nav.pubs}} + <button id="notifications-btn-1" type="button" class="navbar-toggler border-0 text-white"> + <i class="fa fa-exclamation-circle"></i> + </button> + {{/if}} + {{/if}} <button id="menu-btn" class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#navbar-collapse-2"> <i class="fa fa-bars"></i> </button> </div> <div class="collapse navbar-collapse" id="navbar-collapse-1"> + {{if ! $experimental_notif}} <ul class="navbar-nav mr-auto"> {{if $nav.network}} <li class="nav-item dropdown network-button" style="display: none;"> @@ -188,17 +197,25 @@ <a class="nav-link" href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</a> </li> {{/if}} - {{if $nav.pubs}} <li class="nav-item dropdown pubs-button" style="display: none;"> - <a class="nav-link" href="{{$nav.pubs.0}}" title="{{$nav.pubs.3}}" id="{{$nav.pubs.4}}" rel="#nav-pubs-menu"> + <a class="nav-link" href="#" title="{{$nav.pubs.3}}" id="{{$nav.pubs.4}}" data-toggle="dropdown" rel="#nav-pubs-menu"> <i class="fa fa-fw fa-globe"></i> - <span class="badge badge-pill badge-primary pubs-update"></span> + <span class="badge badge-pill badge-secondary pubs-update"></span> </a> + <div id="nav-pubs-menu" class="dropdown-menu" rel="pubs"> + <a class="dropdown-item" id="nav-pubs-see-all" href="{{$nav.pubs.all.0}}">{{$nav.pubs.all.1}}</a> + <a class="dropdown-item" id="nav-pubs-mark-all" href="#" onclick="markRead('pubs'); return false;">{{$nav.pubs.mark.1}}</a> + {{$emptynotifications}} + </div> </li> {{/if}} </ul> - + {{else}} + <div class="navbar-nav mr-auto"> + <div class="text-white">{{$sel.active}}</div> + </div> + {{/if}} <div id="banner" class="navbar-text d-none d-md-flex">{{$banner}}</div> <ul id="nav-right" class="navbar-nav ml-auto d-none d-md-flex"> @@ -218,10 +235,20 @@ <a class="nav-link {{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="fa fa-fw fa-question-circle"></i></a> </li> {{/if}} + {{if $channel_menu && $channel_apps.0}} + <li class="nav-item dropdown" id="channel-menu"> + <a class="nav-link" href="#" data-toggle="dropdown"><img src="{{$channel_thumb}}" style="height:14px; width:14px;position:relative; top:-2px;" /></a> + <div id="dropdown-menu" class="dropdown-menu dropdown-menu-right"> + {{foreach $channel_apps as $channel_app}} + {{$channel_app}} + {{/foreach}} + </div> + </li> + {{/if}} <li class="nav-item dropdown" id="app-menu"> <a class="nav-link" href="#" data-toggle="dropdown"><i class="fa fa-fw fa-bars"></i></a> <div id="dropdown-menu" class="dropdown-menu dropdown-menu-right"> - {{if $channel_apps.0}} + {{if $channel_apps.0 && ! $channel_menu}} {{foreach $channel_apps as $channel_app}} {{$channel_app}} {{/foreach}} @@ -233,7 +260,7 @@ {{foreach $nav_apps as $nav_app}} {{$nav_app}} {{/foreach}} - {{if $channel_apps.0}} + {{if $channel_apps.0 && ! $channel_menu}} </div> {{/if}} {{if $is_owner}} diff --git a/view/tpl/new_channel.tpl b/view/tpl/new_channel.tpl index cc1983ac4..c4837064f 100755 --- a/view/tpl/new_channel.tpl +++ b/view/tpl/new_channel.tpl @@ -19,10 +19,10 @@ {{/if}} {{include file="field_input.tpl" field=$name}} - <div id="name-spinner"></div> + <div id="name-spinner" class="spinner-wrapper"><div class="spinner m"></div></div> {{include file="field_input.tpl" field=$nickname}} - <div id="nick-spinner"></div> + <div id="nick-spinner" class="spinner-wrapper"><div class="spinner m"></div></div> <button class="btn btn-primary" type="submit" name="submit" id="newchannel-submit-button" value="{{$submit}}">{{$submit}}</button> <div id="newchannel-submit-end" class="clear"></div> diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl new file mode 100644 index 000000000..07423563a --- /dev/null +++ b/view/tpl/notifications_widget.tpl @@ -0,0 +1,57 @@ +<style> + #notifications { + width: 100%; + } + + .notification-content { + max-height: 50vh; + overflow: auto; + border-left: 0.2rem solid #eee; + } + + .fs { + position: fixed; + top: 0px; + left: 0px; + display: block !important; + background-color: white; + width: 100%; + max-width: 100%; + height: 100vh; + z-index: 1020; + } + + .fs #notifications { + position: relative !important; + width: 100% !important; + top: 0px !important; + } +</style> + +<div id="nav-notifications-template" rel="template"> + <a class="dropdown-item clearfix dropdown-notification {5}" href="{0}" title="{2} {3}"> + <img class="menu-img-3" data-src="{1}"> + <span class="contactname">{2}</span> + <span class="dropdown-sub-text">{3}<br>{4}</span> + </a> +</div> + +<ul id="notifications" class="navbar-nav" style="position: fixed; width: 280px; top: 64px;" data-children=".nav-item"> + {{foreach $notifications as $notification}} + <li class="nav-item {{$notification.type}}-button" style="display: none;"> + <a class="nav-link" href="#nav-{{$notification.type}}-menu" title="{{$notification.title}}" data-toggle="collapse" data-parent="#notifications" rel="#nav-{{$notification.type}}-menu"> + <i class="fa fa-fw fa-{{$notification.icon}}"></i> {{$notification.label}} + <span class="float-right badge badge-{{$notification.severity}} {{$notification.type}}-update"></span> + </a> + <div id="nav-{{$notification.type}}-menu" class="collapse notification-content" rel="{{$notification.type}}"> + {{if $notification.viewall}} + <a class="dropdown-item" id="nav-{{$notification.type}}-see-all" href="{{$notification.viewall.url}}">{{$notification.viewall.label}}</a> + {{/if}} + {{if $notification.markall}} + <a class="dropdown-item" id="nav-{{$notification.type}}-mark-all" href="{{$notification.markall.url}}" onclick="markRead('{{$notification.type}}'); return false;">{{$notification.markall.label}}</a> + {{/if}} + {{$loading}} + </div> + </li> + {{/foreach}} +</ul> diff --git a/view/tpl/profile_tabs.tpl b/view/tpl/profile_tabs.tpl index 49b74bb8f..b59135209 100644 --- a/view/tpl/profile_tabs.tpl +++ b/view/tpl/profile_tabs.tpl @@ -1,5 +1,7 @@ -<div class="dropdown-header"><img src="{{$thumb}}" class="menu-img-1">{{$name}}:</div> +<div class="dropdown-header"><img src="{{$thumb}}" class="menu-img-1">{{$name}}</div> {{foreach $tabs as $tab}} <a class="dropdown-item{{if $tab.sel}} {{$tab.sel}}{{/if}}" href="{{$tab.url}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}><i class="fa fa-fw fa-{{$tab.icon}} generic-icons-nav"></i>{{$tab.label}}</a> {{/foreach}} +{{if ! $channel_menu}} <div class="dropdown-divider"></div> +{{/if}}
\ No newline at end of file diff --git a/view/tpl/register.tpl b/view/tpl/register.tpl index c84934626..493dba4c8 100755 --- a/view/tpl/register.tpl +++ b/view/tpl/register.tpl @@ -39,10 +39,10 @@ {{/if}} {{include file="field_input.tpl" field=$name}} - <div id="name-spinner"></div> + <div id="name-spinner" class="spinner-wrapper"><div class="spinner m"></div></div> {{include file="field_input.tpl" field=$nickname}} - <div id="nick-spinner"></div> + <div id="nick-spinner" class="spinner-wrapper"><div class="spinner m"></div></div> {{/if}} {{if $enable_tos}} |