From e02217de335935a40c4d41df7fdc162d5222c718 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 14 Nov 2010 20:56:34 +0100 Subject: [PATCH] Display new post notifications. --- .../java/net/pterodactylus/sone/web/WebInterface.java | 15 +++++++++++++-- src/main/resources/i18n/sone.en.properties | 1 + .../resources/templates/notify/newPostNotification.html | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/templates/notify/newPostNotification.html diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 0002e2c..87f8238 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -37,6 +37,7 @@ import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.L10nFilter; import net.pterodactylus.sone.freenet.wot.Identity; import net.pterodactylus.sone.main.SonePlugin; +import net.pterodactylus.sone.notify.NewPostNotification; import net.pterodactylus.sone.notify.NewSoneNotification; import net.pterodactylus.sone.template.CollectionAccessor; import net.pterodactylus.sone.template.CssClassNameFilter; @@ -110,6 +111,9 @@ public class WebInterface implements CoreListener { /** The “new Sone” notification. */ private final NewSoneNotification newSoneNotification; + /** The “new post” notification. */ + private final NewPostNotification newPostNotification; + /** * Creates a new web interface. * @@ -143,6 +147,9 @@ public class WebInterface implements CoreListener { /* create notifications. */ Template newSoneNotificationTemplate = templateFactory.createTemplate(createReader("/templates/notify/newSoneNotification.html")); newSoneNotification = new NewSoneNotification(newSoneNotificationTemplate); + + Template newPostNotificationTemplate = templateFactory.createTemplate(createReader("/templates/notify/newPostNotification.html")); + newPostNotification = new NewPostNotification(newPostNotificationTemplate); } // @@ -359,7 +366,8 @@ public class WebInterface implements CoreListener { */ @Override public void newPostFound(Post post) { - /* TODO */ + newPostNotification.addPost(post); + notificationManager.addNotification(newPostNotification); } /** @@ -386,7 +394,10 @@ public class WebInterface implements CoreListener { */ @Override public void markPostKnown(Post post) { - /* TODO */ + newPostNotification.removePost(post); + if (newPostNotification.isEmpty()) { + newPostNotification.dismiss(); + } } /** diff --git a/src/main/resources/i18n/sone.en.properties b/src/main/resources/i18n/sone.en.properties index 419bf96..eca813e 100644 --- a/src/main/resources/i18n/sone.en.properties +++ b/src/main/resources/i18n/sone.en.properties @@ -207,3 +207,4 @@ Warning.PluginNotConnected.Text=The Web of Trust plugin could not be found! This Notification.Startup.Text=Sone is currently starting up. It may take a while to retrieve all identities and Sones from the web of trust. If you are missing some elements, please be patient, they will probably reappear very soon. Notification.Button.Dismiss=Dismiss Notification.NewSone.Text=New Sones have been discovered: +Notification.NewPost.Text=New posts have been discovered by the following Sones: diff --git a/src/main/resources/templates/notify/newPostNotification.html b/src/main/resources/templates/notify/newPostNotification.html new file mode 100644 index 0000000..5889ef5 --- /dev/null +++ b/src/main/resources/templates/notify/newPostNotification.html @@ -0,0 +1,6 @@ +
+ <%= Notification.NewPost.Text|l10n|html> + <%foreach posts post> + <% post.sone.niceName|html><%notlast>,<%/notlast><%last>.<%/last> + <%/foreach> +
-- 2.7.4