aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-10-08 12:42:54 -0700
committerzotlabs <mike@macgirvin.com>2017-10-08 12:42:54 -0700
commit5cc6c6c1e97743b208b90f2a05b23196df787f36 (patch)
tree77b85421af0e0052f5b0ab23fc95abd51bc89728
parentd2e22d8c2f5ee7c0bca1fa63d39a6822582106e8 (diff)
parent991db280be4c3cbbff4fb1e4dae8f303a487ed3f (diff)
downloadvolse-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
-rw-r--r--Zotlabs/Lib/Apps.php2
-rw-r--r--Zotlabs/Lib/Enotify.php6
-rw-r--r--Zotlabs/Lib/JSalmon.php38
-rw-r--r--Zotlabs/Lib/ThreadItem.php2
-rw-r--r--Zotlabs/Module/Moderate.php2
-rw-r--r--Zotlabs/Module/Ping.php39
-rw-r--r--Zotlabs/Module/Pubstream.php82
-rw-r--r--Zotlabs/Web/WebServer.php2
-rw-r--r--Zotlabs/Widget/Notifications.php152
-rw-r--r--app/admin.apd6
-rw-r--r--include/channel.php1
-rw-r--r--include/crypto.php4
-rw-r--r--include/nav.php23
-rw-r--r--view/js/main.js2
-rw-r--r--view/js/mod_new_channel.js8
-rw-r--r--view/js/mod_register.js8
-rw-r--r--view/pdl/mod_admin.pdl5
-rw-r--r--view/pdl/mod_appman.pdl3
-rw-r--r--view/pdl/mod_apps.pdl3
-rw-r--r--view/pdl/mod_blocks.pdl5
-rw-r--r--view/pdl/mod_cal.pdl3
-rw-r--r--view/pdl/mod_cards.pdl3
-rw-r--r--view/pdl/mod_cdav.pdl3
-rw-r--r--view/pdl/mod_channel.pdl4
-rw-r--r--view/pdl/mod_chanview.pdl3
-rw-r--r--view/pdl/mod_chat.pdl3
-rw-r--r--view/pdl/mod_cloud.pdl3
-rw-r--r--view/pdl/mod_common.pdl3
-rw-r--r--view/pdl/mod_connect.pdl3
-rw-r--r--view/pdl/mod_connections.pdl3
-rw-r--r--view/pdl/mod_connedit.pdl3
-rw-r--r--view/pdl/mod_directory.pdl3
-rw-r--r--view/pdl/mod_editblock.pdl5
-rw-r--r--view/pdl/mod_editlayout.pdl5
-rw-r--r--view/pdl/mod_editwebpage.pdl5
-rw-r--r--view/pdl/mod_events.pdl3
-rw-r--r--view/pdl/mod_group.pdl3
-rw-r--r--view/pdl/mod_help.pdl3
-rw-r--r--view/pdl/mod_id.pdl4
-rw-r--r--view/pdl/mod_layouts.pdl5
-rw-r--r--view/pdl/mod_locs.pdl4
-rw-r--r--view/pdl/mod_mail.pdl3
-rw-r--r--view/pdl/mod_menu.pdl5
-rw-r--r--view/pdl/mod_message.pdl3
-rw-r--r--view/pdl/mod_mitem.pdl5
-rw-r--r--view/pdl/mod_network.pdl3
-rw-r--r--view/pdl/mod_photos.pdl3
-rw-r--r--view/pdl/mod_profile.pdl3
-rw-r--r--view/pdl/mod_profile_photo.pdl3
-rw-r--r--view/pdl/mod_profiles.pdl3
-rw-r--r--view/pdl/mod_profperm.pdl3
-rw-r--r--view/pdl/mod_rate.pdl3
-rw-r--r--view/pdl/mod_ratings.pdl3
-rw-r--r--view/pdl/mod_search.pdl3
-rw-r--r--view/pdl/mod_settings.pdl4
-rw-r--r--view/pdl/mod_suggest.pdl5
-rw-r--r--view/pdl/mod_uexport.pdl4
-rw-r--r--view/pdl/mod_viewconnections.pdl3
-rw-r--r--view/pdl/mod_webpages.pdl5
-rw-r--r--view/pdl/mod_wiki.pdl3
-rw-r--r--view/theme/redbasic/js/redbasic.js7
-rw-r--r--view/tpl/cloud_directory.tpl2
-rwxr-xr-xview/tpl/main_slider.tpl4
-rwxr-xr-xview/tpl/nav.tpl39
-rwxr-xr-xview/tpl/new_channel.tpl4
-rw-r--r--view/tpl/notifications_widget.tpl57
-rw-r--r--view/tpl/profile_tabs.tpl4
-rwxr-xr-xview/tpl/register.tpl4
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}}