mirror of https://github.com/friendica/friendica
Issue 9339: Notifications can now be paused
This commit is contained in:
parent
cc42c0ba27
commit
116f7f9050
|
@ -370,6 +370,10 @@ function ping_init(App $a)
|
|||
'info' => $sysmsgs_info
|
||||
];
|
||||
|
||||
if (DI::pConfig()->get(local_user(), 'system', 'pause_notification')) {
|
||||
$data = [];
|
||||
}
|
||||
|
||||
$json_payload = json_encode(["result" => $data]);
|
||||
|
||||
if (isset($_GET['callback'])) {
|
||||
|
|
|
@ -268,6 +268,12 @@ class Nav
|
|||
$nav['notifications'] = ['notifications', DI::l10n()->t('Notifications'), '', DI::l10n()->t('Notifications')];
|
||||
$nav['notifications']['all'] = ['notifications/system', DI::l10n()->t('See all notifications'), '', ''];
|
||||
$nav['notifications']['mark'] = ['', DI::l10n()->t('Mark as seen'), '', DI::l10n()->t('Mark all system notifications seen')];
|
||||
|
||||
if (DI::pConfig()->get(local_user(), 'system', 'pause_notification')) {
|
||||
$nav['notifications']['unpause'] = DI::l10n()->t('Unpause');
|
||||
} else {
|
||||
$nav['notifications']['pause'] = DI::l10n()->t('Pause');
|
||||
}
|
||||
}
|
||||
|
||||
$nav['messages'] = ['message', DI::l10n()->t('Messages'), '', DI::l10n()->t('Private mail')];
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
namespace Friendica\Module\Notifications;
|
||||
|
||||
use Friendica\BaseModule;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\DI;
|
||||
use Friendica\Module\Security\Login;
|
||||
|
@ -76,6 +77,16 @@ class Notification extends BaseModule
|
|||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Permission denied.'));
|
||||
}
|
||||
|
||||
if (DI::args()->get(1) === 'pause') {
|
||||
DI::pConfig()->set(local_user(), 'system', 'pause_notification', true);
|
||||
$success = true;
|
||||
}
|
||||
|
||||
if (DI::args()->get(1) === 'unpause') {
|
||||
DI::pConfig()->set(local_user(), 'system', 'pause_notification', false);
|
||||
$success = true;
|
||||
}
|
||||
|
||||
if (DI::args()->get(1) === 'mark' && DI::args()->get(2) === 'all') {
|
||||
try {
|
||||
$success = DI::notify()->setSeen();
|
||||
|
|
|
@ -231,9 +231,12 @@ return [
|
|||
|
||||
'/notification' => [
|
||||
'[/]' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/pause' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/unpause' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/mark/all' => [Module\Notifications\Notification::class, [R::GET]],
|
||||
'/{id:\d+}' => [Module\Notifications\Notification::class, [R::GET, R::POST]],
|
||||
],
|
||||
|
||||
'/objects/{guid}[/{activity}]' => [Module\Objects::class, [R::GET]],
|
||||
|
||||
'/oembed' => [
|
||||
|
|
|
@ -972,6 +972,26 @@ function notificationMarkAll() {
|
|||
});
|
||||
}
|
||||
|
||||
function notificationPause() {
|
||||
$.get('notification/pause', function(data) {
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
timer = setTimeout(NavUpdate,1000);
|
||||
force_update = true;
|
||||
});
|
||||
}
|
||||
|
||||
function notificationUnpause() {
|
||||
$.get('notification/unpause', function(data) {
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
timer = setTimeout(NavUpdate,1000);
|
||||
force_update = true;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* sprintf in javascript
|
||||
* "{0} and {1}".format('zero','uno');
|
||||
|
|
|
@ -50,8 +50,10 @@
|
|||
{{if $nav.notifications}}
|
||||
<a accesskey="f" id="nav-notifications-linkmenu" class="nav-commlink" href="{{$nav.notifications.0}}" rel="#nav-notifications-menu" title="{{$nav.notifications.1}}">{{$nav.notifications.1}}</a>
|
||||
<span id="notification-update" class="nav-ajax-left"></span>
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
<ul id="nav-notificationns-menu" class="menu-popup">
|
||||
<li id="nav-notifications-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
|
||||
{{if $nav.notifications.pause}}<li id="nav-notifications-pause"><a href="#" onclick="notificationPause(); return false;">{{$nav.notifications.pause}}</a></li>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<li id="nav-notifications-unpause"><a href="#" onclick="notificationUnpause(); return false;">{{$nav.notifications.unpause}}</a></li>{{/if}}
|
||||
<li id="nav-notifications-mark-all"><a href="#" onclick="notificationMarkAll(); return false;">{{$nav.notifications.mark.3}}</a></li>
|
||||
<li class="empty">{{$emptynotifications}}</li>
|
||||
</ul>
|
||||
|
|
|
@ -51,6 +51,8 @@
|
|||
<span id="notification-update" class="nav-ajax-left"></span>
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
<li id="nav-notifications-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
|
||||
{{if $nav.notifications.pause}}<li id="nav-notifications-pause"><a onclick="notificationPause(); return false;">{{$nav.notifications.pause}}</a></li>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<li id="nav-notifications-unpause"><a onclick="notificationUnpause(); return false;">{{$nav.notifications.unpause}}</a></li>{{/if}}
|
||||
<li id="nav-notifications-mark-all"><a href="#" onclick="notificationMarkAll(); return false;">{{$nav.notifications.mark.3}}</a></li>
|
||||
<li class="empty">{{$emptynotifications}}</li>
|
||||
</ul>
|
||||
|
|
|
@ -87,6 +87,8 @@
|
|||
<div class="arrow"></div>
|
||||
{{$nav.notifications.1}}
|
||||
<div class="dropdown-header-link">
|
||||
{{if $nav.notifications.pause}}<button role="menuitem" type="button" class="btn-link" onclick="notificationPause();" data-toggle="tooltip" aria-label="{{$nav.notifications.pause}}" title="{{$nav.notifications.pause}}"><i class="fa fa-pause" aria-hidden="true"></i></button>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<button role="menuitem" type="button" class="btn-link" onclick="notificationUnpause();" data-toggle="tooltip" aria-label="{{$nav.notifications.unpause}}" title="{{$nav.notifications.unpause}}"><i class="fa fa-play" aria-hidden="true"></i></button>{{/if}}
|
||||
<button role="menuitem" type="button" class="btn-link" onclick="notificationMarkAll();" data-toggle="tooltip" aria-label="{{$nav.notifications.mark.3}}" title="{{$nav.notifications.mark.3}}">{{$nav.notifications.mark.1}}</button>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -63,6 +63,8 @@
|
|||
<span id="notification-update" class="nav-notification"></span>
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
<!-- TODO: better icons! -->
|
||||
{{if $nav.notifications.pause}}<li id="nav-notifications-pause"><a onclick="notificationPause(); return false;" title="{{$nav.notifications.pause}}"><span class="icon s10 edit"></span></a></li>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<li id="nav-notifications-unpause"><a onclick="notificationUnpause(); return false;" title="{{$nav.notifications.unpause}}"><span class="icon s10 edit"></span></a></li>{{/if}}
|
||||
<li id="nav-notifications-mark-all" class="toolbar"><a href="#" onclick="notificationMarkAll(); return false;" title="{{$nav.notifications.mark.3}}"><span class="icon s10 edit"></span></a></a><a href="{{$nav.notifications.all.0}}" title="{{$nav.notifications.all.1}}"><span class="icon s10 plugin"></span></a></li>
|
||||
<li class="empty">{{$emptynotifications}}</li>
|
||||
</ul>
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
{{if $nav.notifications}}<a rel="#nav-notifications-menu" id="notification-update" class="nav-ajax-update" href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"></a>{{/if}}
|
||||
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
{{if $nav.notifications.pause}}<li id="nav-notifications-pause"><a onclick="notificationPause(); return false;">{{$nav.notifications.pause}}</a></li>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<li id="nav-notifications-unpause"><a onclick="notificationUnpause(); return false;">{{$nav.notifications.unpause}}</a></li>{{/if}}
|
||||
<li id="nav-notifications-mark-all"><a href="#" onclick="notificationMarkAll(); return false;">{{$nav.notifications.mark.3}}</a></li>
|
||||
<li id="nav-notifications-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
|
||||
<li class="empty">{{$emptynotifications}}</li>
|
||||
|
|
|
@ -69,6 +69,8 @@
|
|||
<span id="notification-update" class="nav-notification"></span>
|
||||
</a>
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
{{if $nav.notifications.pause}}<li role="menuitem" id="nav-notifications-pause"><a onclick="notificationPause(); return false;">{{$nav.notifications.pause}}</a></li>{{/if}}
|
||||
{{if $nav.notifications.unpause}}<li role="menuitem" id="nav-notifications-unpause"><a onclick="notificationUnpause(); return false;">{{$nav.notifications.unpause}}</a></li>{{/if}}
|
||||
<li role="menuitem" id="nav-notifications-mark-all"><a onclick="notificationMarkAll(); return false;">{{$nav.notifications.mark.1}}</a></li>
|
||||
<li role="menuitem" id="nav-notifications-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
|
||||
<li role="menuitem" class="empty">{{$emptynotifications}}</li>
|
||||
|
|
Loading…
Reference in New Issue