diff --git a/daily.php b/daily.php
index 8569f1c9a..282d8671f 100644
--- a/daily.php
+++ b/daily.php
@@ -103,3 +103,7 @@ if ($options['f'] === 'device_perf') {
}
}
}
+
+if ($options['f'] === 'notifications') {
+ include_once 'notifications.php';
+}
diff --git a/daily.sh b/daily.sh
index ddc4f2e9f..effb4a502 100755
--- a/daily.sh
+++ b/daily.sh
@@ -16,3 +16,4 @@ php daily.php -f authlog
php daily.php -f perf_times
php daily.php -f callback
php daily.php -f device_perf
+php daily.php -f notifications
diff --git a/html/includes/forms/notifications.inc.php b/html/includes/forms/notifications.inc.php
new file mode 100644
index 000000000..d787389e5
--- /dev/null
+++ b/html/includes/forms/notifications.inc.php
@@ -0,0 +1,56 @@
+
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see . */
+
+/**
+ * Notification Page
+ * @author Daniel Preussker
+ * @copyright 2015 Daniel Preussker, QuxLabs UG
+ * @license GPL
+ * @package LibreNMS
+ * @subpackage Notifications
+ */
+
+$status = 'error';
+$message = 'unknown error';
+if (isset($_REQUEST['notification_id']) && isset($_REQUEST['action'])) {
+ if ($_REQUEST['action'] == 'read' && dbInsert(array('notifications_id'=>$_REQUEST['notification_id'],'user_id'=>$_SESSION['user_id'],'key'=>'read','value'=>1),'notifications_attribs')) {
+ $status = 'ok';
+ $message = 'Set as Read';
+ }
+ elseif ($_SESSION['userlevel'] == 10 && $_REQUEST['action'] == 'stick' && dbInsert(array('notifications_id'=>$_REQUEST['notification_id'],'user_id'=>$_SESSION['user_id'],'key'=>'sticky','value'=>1),'notifications_attribs')) {
+ $status = 'ok';
+ $message = 'Set as Sticky';
+ }
+ elseif ($_SESSION['userlevel'] == 10 && $_REQUEST['action'] == 'unstick' && dbUpdate(array('key'=>'sticky','value'=>0),'notifications_attribs','notifications_id = ? && user_id = ?',array($_REQUEST['notification_id'],$_SESSION['user_id']))) {
+ $status = 'ok';
+ $message = 'Removed Sticky';
+ }
+}
+elseif ($_REQUEST['action'] == 'create' && $_SESSION['userlevel'] == 10 && (isset($_REQUEST['title']) && isset($_REQUEST['body']))) {
+ if (dbInsert(array('title'=>$_REQUEST['title'],'body'=>$_REQUEST['body'],'checksum'=>hash('sha512',$_SESSION['user_id'].'.LOCAL.'.$_REQUEST['title']),'source'=>$_SESSION['user_id']),'notifications')) {
+ $status = 'ok';
+ $message = 'Created';
+ }
+}
+else {
+ $status = 'error';
+ $message = 'ERROR: Missing Params';
+}
+
+die(json_encode(array(
+ 'status' => $status,
+ 'message' => $message,
+)));
+
diff --git a/html/includes/print-menubar.php b/html/includes/print-menubar.php
index 121d8a5db..05eabc91c 100644
--- a/html/includes/print-menubar.php
+++ b/html/includes/print-menubar.php
@@ -488,6 +488,12 @@ if(is_file("includes/print-menubar-custom.inc.php")) {