From: David ‘Bombe’ Roden Date: Sun, 14 Nov 2010 19:56:34 +0000 (+0100) Subject: Display new post notifications. X-Git-Tag: 0.3-RC1~61 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=e02217de335935a40c4d41df7fdc162d5222c718;p=Sone.git Display new post notifications. --- 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> +