make sure notification always returns array
This commit is contained in:
parent
1921c3465d
commit
d3233740b3
@ -2,15 +2,15 @@
|
||||
|
||||
namespace App\Http\Controllers\Common;
|
||||
|
||||
use Date;
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Traits\Modules as RemoteModules;
|
||||
use App\Http\Requests\Common\Notification as Request;
|
||||
use App\Traits\Modules;
|
||||
use App\Utilities\Date;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Notifications extends Controller
|
||||
{
|
||||
use RemoteModules;
|
||||
use Modules;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
@ -36,13 +36,17 @@ class Notifications extends Controller
|
||||
}
|
||||
|
||||
// Hide New Apps Notifications
|
||||
$module_notifications = $this->getNotifications('new-apps' );
|
||||
$module_notifications = $this->getNotifications('new-apps');
|
||||
|
||||
foreach ($module_notifications as $module_notification) {
|
||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.name', $module_notification->name);
|
||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.message', $module_notification->alias);
|
||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.date', Date::now());
|
||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.status', '0');
|
||||
$prefix = 'notifications.' . user()->id . '.' . $module_notification->alias;
|
||||
|
||||
setting()->set([
|
||||
$prefix . '.name' => $module_notification->name,
|
||||
$prefix . '.message' => $module_notification->alias,
|
||||
$prefix . '.date' => Date::now(),
|
||||
$prefix . '.status' => '0',
|
||||
]);
|
||||
}
|
||||
|
||||
setting()->save();
|
||||
@ -68,17 +72,20 @@ class Notifications extends Controller
|
||||
|
||||
$notifications = $this->getNotifications($path);
|
||||
|
||||
if ($notifications) {
|
||||
foreach ($notifications as $notification) {
|
||||
if ($notification->id == $id) {
|
||||
setting()->set('notifications.'. $path . '.' . $id . '.name', $notification->name);
|
||||
setting()->set('notifications.'. $path . '.' . $id . '.message', $notification->message);
|
||||
setting()->set('notifications.'. $path . '.' . $id . '.date', Date::now());
|
||||
setting()->set('notifications.'. $path . '.' . $id . '.status', '0');
|
||||
foreach ($notifications as $notification) {
|
||||
if ($notification->id == $id) {
|
||||
$prefix = 'notifications.' . $path . '.' . $id;
|
||||
|
||||
setting()->save();
|
||||
break;
|
||||
}
|
||||
setting()->set([
|
||||
$prefix . '.name' => $notification->name,
|
||||
$prefix . '.message' => $notification->message,
|
||||
$prefix . '.date' => Date::now(),
|
||||
$prefix . '.status' => '0',
|
||||
]);
|
||||
|
||||
setting()->save();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Http\Livewire\Common\Notifications;
|
||||
|
||||
use Date;
|
||||
use App\Traits\Modules;
|
||||
use App\Utilities\Date;
|
||||
use Livewire\Component;
|
||||
|
||||
class NewApps extends Component
|
||||
@ -12,39 +12,46 @@ class NewApps extends Component
|
||||
|
||||
public function markRead($alias)
|
||||
{
|
||||
$notifications = $this->getNotifications('new-apps' );
|
||||
$notifications = $this->getNotifications('new-apps');
|
||||
|
||||
foreach ($notifications as $notification) {
|
||||
if ($notification->alias != $alias) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$readed = $notification;
|
||||
$read = $notification;
|
||||
}
|
||||
|
||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.name', $readed->name);
|
||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.message', $readed->alias);
|
||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.date', Date::now());
|
||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.status', '0');
|
||||
$prefix = 'notifications.' . user()->id . '.' . $alias;
|
||||
|
||||
setting()->set([
|
||||
$prefix . '.name' => $read->name,
|
||||
$prefix . '.message' => $read->alias,
|
||||
$prefix . '.date' => Date::now(),
|
||||
$prefix . '.status' => '0',
|
||||
]);
|
||||
|
||||
setting()->save();
|
||||
|
||||
$this->dispatchBrowserEvent('mark-read', [
|
||||
'type' => 'new-apps',
|
||||
'message' => trans('notifications.messages.mark_read', ['type' => $notification->name]),
|
||||
'message' => trans('notifications.messages.mark_read', ['type' => $read->name]),
|
||||
]);
|
||||
}
|
||||
|
||||
public function markReadAll()
|
||||
{
|
||||
$notifications = $this->getNotifications('new-apps' );
|
||||
$notifications = $this->getNotifications('new-apps');
|
||||
|
||||
foreach ($notifications as $notification) {
|
||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.name', $notification->name);
|
||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.message', $notification->alias);
|
||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.date', Date::now());
|
||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.status', '0');
|
||||
$prefix = 'notifications.' . user()->id . '.' . $notification->alias;
|
||||
|
||||
setting()->set([
|
||||
$prefix . '.name' => $notification->name,
|
||||
$prefix . '.message' => $notification->alias,
|
||||
$prefix . '.date' => Date::now(),
|
||||
$prefix . '.status' => '0',
|
||||
]);
|
||||
}
|
||||
|
||||
setting()->save();
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Http\ViewComposers;
|
||||
|
||||
use App\Utilities\Versions;
|
||||
use App\Traits\Modules;
|
||||
use App\Utilities\Versions;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class Header
|
||||
@ -71,16 +71,14 @@ class Header
|
||||
|
||||
$new_apps = $this->getNotifications('new-apps');
|
||||
|
||||
if ($new_apps) {
|
||||
foreach ($new_apps as $key => $new_app) {
|
||||
if (setting('notifications.' . user()->id . '.' . $new_app->alias)) {
|
||||
unset($new_apps[$key]);
|
||||
foreach ($new_apps as $key => $new_app) {
|
||||
if (setting('notifications.' . user()->id . '.' . $new_app->alias)) {
|
||||
unset($new_apps[$key]);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$notifications++;
|
||||
continue;
|
||||
}
|
||||
|
||||
$notifications++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\Http\ViewComposers;
|
||||
|
||||
use App\Traits\Modules;
|
||||
use Route;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class Notifications
|
||||
@ -29,9 +29,7 @@ class Notifications
|
||||
|
||||
$path = str_replace('{company_id}/', '', $path);
|
||||
|
||||
if (!$notifications = $this->getNotifications($path)) {
|
||||
return;
|
||||
}
|
||||
$notifications = $this->getNotifications($path);
|
||||
|
||||
// Push to a stack
|
||||
foreach ($notifications as $notification) {
|
||||
|
@ -396,7 +396,7 @@ trait Modules
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getNotifications($path)
|
||||
public function getNotifications($path): array
|
||||
{
|
||||
$key = 'apps.notifications';
|
||||
|
||||
@ -407,10 +407,10 @@ trait Modules
|
||||
}
|
||||
|
||||
if (!empty($data) && array_key_exists($path, $data)) {
|
||||
return $data[$path];
|
||||
return (array) $data[$path];
|
||||
}
|
||||
|
||||
return false;
|
||||
return [];
|
||||
}
|
||||
|
||||
public function getPageNumberOfModules($data = [])
|
||||
|
Loading…
x
Reference in New Issue
Block a user