Fix notifications

This commit is contained in:
Mattias Erming 2014-09-14 06:18:53 -07:00
parent 4d1aa174a1
commit 0c6c54bc83
3 changed files with 20 additions and 17 deletions

View file

@ -12,7 +12,7 @@
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<link id="theme" rel="stylesheet" href="<%=theme%>"> <link id="theme" rel="stylesheet" href="<%=theme%>">
<link rel="shortcut icon" href="/img/favicon.png"> <link rel="shortcut icon" href="/img/logo-32.png">
</head> </head>
<body class="<%= public ? "public" : "" %>"> <body class="<%= public ? "public" : "" %>">
@ -225,6 +225,7 @@
<script src="js/libs/handlebars/equal.js"></script> <script src="js/libs/handlebars/equal.js"></script>
<script src="js/libs/handlebars/tz.js"></script> <script src="js/libs/handlebars/tz.js"></script>
<script src="js/libs/handlebars/uri.js"></script> <script src="js/libs/handlebars/uri.js"></script>
<script src="js/libs/handlebars/users.js"></script>
<script src="js/libs/jquery.js"></script> <script src="js/libs/jquery.js"></script>
<script src="js/libs/jquery/bootstrap.js"></script> <script src="js/libs/jquery/bootstrap.js"></script>
<script src="js/libs/jquery/cookie.js"></script> <script src="js/libs/jquery/cookie.js"></script>
@ -233,14 +234,16 @@
<script src="js/libs/jquery/stickyscroll.js"></script> <script src="js/libs/jquery/stickyscroll.js"></script>
<script src="js/libs/jquery/tabcomplete.js"></script> <script src="js/libs/jquery/tabcomplete.js"></script>
<script src="js/libs/moment.js"></script> <script src="js/libs/moment.js"></script>
<script src="js/libs/notification.js"></script>
<script src="js/libs/socket.io.js"></script> <script src="js/libs/socket.io.js"></script>
<script src="js/libs/string.contains.js"></script> <script src="js/libs/string.contains.js"></script>
<script src="js/libs/uri.js"></script> <script src="js/libs/uri.js"></script>
<% } else { %> <% } else { %>
<script src="js/libs.min.js"></script> <script src="js/libs.min.js"></script>
<% } %>
<script src="js/shout.templates.js"></script> <script src="js/shout.templates.js"></script>
<script src="js/shout.js"></script> <script src="js/shout.js"></script>
<% } %>
</body> </body>
</html> </html>

View file

@ -41,7 +41,7 @@ $(function() {
} }
// Request notification permissions if we don't already have it // Request notification permissions if we don't already have it
if (Notification.permission !== 'granted') { if (Notification.permission !== "granted") {
Notification.requestPermission(); Notification.requestPermission();
} }
@ -411,25 +411,24 @@ $(function() {
}); });
chat.on("msg", ".messages", function(e, target, msg) { chat.on("msg", ".messages", function(e, target, msg) {
var btn = sidebar.find(".chan[data-target=" + target + "]:not(.active)"); var button = sidebar.find(".chan[data-target=" + target + "]");
var query = btn.hasClass("query"); var isQuery = button.hasClass("query");
var type = msg.type; var type = msg.type;
var highlight = type.contains("highlight"); var highlight = type.contains("highlight");
if (highlight || query) { if (highlight || isQuery) {
pop.play(); pop.play();
if (!document.hasFocus() || !$(target).hasClass("active")) { if (!document.hasFocus() || !$(target).hasClass("active")) {
favico.badge("!"); favico.badge("!");
if (Notification.permission === 'granted') { if (Notification.permission === "granted") {
var n = new Notification( msg.from + ' - ' + btn.data('title'), { var n = new Notification(msg.from + " says:", {
body: msg.text, body: msg.text.trim(),
icon: '/img/favicon.png' icon: ""
} ); } );
n.onclick = function() { n.onclick = function() {
window.focus(); window.focus();
btn.click(); button.click();
this.close(); this.close();
}; };
// Close notification after 5s
window.setTimeout(function() { window.setTimeout(function() {
n.close(); n.close();
}, 5 * 1000); }, 5 * 1000);
@ -437,7 +436,8 @@ $(function() {
} }
} }
if (btn.length === 0) { button = button.filter(":not(.active)");
if (button.length === 0) {
return; return;
} }
@ -451,12 +451,12 @@ $(function() {
return; return;
} }
var badge = btn.find(".badge"); var badge = button.find(".badge");
if (badge.length !== 0) { if (badge.length !== 0) {
var i = (badge.data("count") || 0) + 1; var i = (badge.data("count") || 0) + 1;
badge.data("count", i); badge.data("count", i);
badge.html(i > 999 ? (i / 1000).toFixed(1) + "k" : i); badge.html(i > 999 ? (i / 1000).toFixed(1) + "k" : i);
if (highlight || query) { if (highlight || isQuery) {
badge.addClass("highlight"); badge.addClass("highlight");
} }
} }

View file

@ -1,8 +1,8 @@
module.exports = { module.exports = {
public: true, public: true,
host: "0.0.0.0", host: "0.0.0.0",
port: 9000, port: 9090,
theme: "themes/example.css", theme: "themes/example.css",
home: "", home: "",
debug: false debug: true
}; };