X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=f68fec21d401ac5cb04813de9ec7bc219bc7b78b;hb=d233a386e5e8417e500265f57a3911053f813923;hp=115e0c3b201272e614467828f59a80f9154570cb;hpb=06ed021f1232830b8617efdb4c2d26684a18b643;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 115e0c3..f68fec2 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -56,6 +56,7 @@ import net.pterodactylus.sone.web.ajax.DeleteReplyAjaxPage; import net.pterodactylus.sone.web.ajax.DismissNotificationAjaxPage; import net.pterodactylus.sone.web.ajax.FollowSoneAjaxPage; import net.pterodactylus.sone.web.ajax.GetLikesAjaxPage; +import net.pterodactylus.sone.web.ajax.GetNotificationsAjaxPage; import net.pterodactylus.sone.web.ajax.GetReplyAjaxPage; import net.pterodactylus.sone.web.ajax.GetSoneStatusPage; import net.pterodactylus.sone.web.ajax.GetTranslationPage; @@ -226,7 +227,7 @@ public class WebInterface implements CoreListener { /* notification templates. */ Template startupNotificationTemplate = templateFactory.createTemplate(createReader("/templates/notify/startupNotification.html")); - final TemplateNotification startupNotification = new TemplateNotification(startupNotificationTemplate); + final TemplateNotification startupNotification = new TemplateNotification("startup-notification", startupNotificationTemplate); notificationManager.addNotification(startupNotification); Ticker.getInstance().registerEvent(System.currentTimeMillis() + (120 * 1000), new Runnable() { @@ -236,6 +237,23 @@ public class WebInterface implements CoreListener { startupNotification.dismiss(); } }, "Sone Startup Notification Remover"); + + Template wotMissingNotificationTemplate = templateFactory.createTemplate(createReader("/templates/notify/wotMissingNotification.html")); + final TemplateNotification wotMissingNotification = new TemplateNotification("wot-missing-notification", wotMissingNotificationTemplate); + Ticker.getInstance().registerEvent(System.currentTimeMillis() + (15 * 1000), new Runnable() { + + @Override + @SuppressWarnings("synthetic-access") + public void run() { + if (getCore().getIdentityManager().isConnected()) { + wotMissingNotification.dismiss(); + } else { + notificationManager.addNotification(wotMissingNotification); + } + Ticker.getInstance().registerEvent(System.currentTimeMillis() + (15 * 1000), this, "Sone WoT Connector Checker"); + } + + }, "Sone WoT Connector Checker"); } /** @@ -243,6 +261,7 @@ public class WebInterface implements CoreListener { */ public void stop() { unregisterToadlets(); + Ticker.getInstance().stop(); } // @@ -270,7 +289,6 @@ public class WebInterface implements CoreListener { Template unfollowSoneTemplate = templateFactory.createTemplate(createReader("/templates/unfollowSone.html")); Template deleteSoneTemplate = templateFactory.createTemplate(createReader("/templates/deleteSone.html")); Template noPermissionTemplate = templateFactory.createTemplate(createReader("/templates/noPermission.html")); - Template wotPluginMissingTemplate = templateFactory.createTemplate(createReader("/templates/wotPluginMissing.html")); Template dismissNotificationTemplate = templateFactory.createTemplate(createReader("/templates/dismissNotification.html")); Template logoutTemplate = templateFactory.createTemplate(createReader("/templates/logout.html")); Template optionsTemplate = templateFactory.createTemplate(createReader("/templates/options.html")); @@ -298,12 +316,12 @@ public class WebInterface implements CoreListener { pageToadlets.add(pageToadletFactory.createPageToadlet(new OptionsPage(optionsTemplate, this), "Options")); pageToadlets.add(pageToadletFactory.createPageToadlet(new AboutPage(aboutTemplate, this, SonePlugin.VERSION), "About")); pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("noPermission.html", noPermissionTemplate, "Page.NoPermission.Title", this))); - pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("wotPluginMissing.html", wotPluginMissingTemplate, "Page.WotPluginMissing.Title", this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new DismissNotificationPage(dismissNotificationTemplate, this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new StaticPage("css/", "/static/css/", "text/css"))); pageToadlets.add(pageToadletFactory.createPageToadlet(new StaticPage("javascript/", "/static/javascript/", "text/javascript"))); pageToadlets.add(pageToadletFactory.createPageToadlet(new StaticPage("images/", "/static/images/", "image/png"))); pageToadlets.add(pageToadletFactory.createPageToadlet(new GetTranslationPage(this))); + pageToadlets.add(pageToadletFactory.createPageToadlet(new GetNotificationsAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new DismissNotificationAjaxPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new GetSoneStatusPage(this))); pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateReplyAjaxPage(this))); @@ -382,6 +400,9 @@ public class WebInterface implements CoreListener { */ @Override public void newReplyFound(Reply reply) { + if (reply.getPost().getSone() == null) { + return; + } newReplyNotification.addReply(reply); notificationManager.addNotification(newReplyNotification); }