From 964feb7243c2ac0b57452c3a6260fb3e3daf4e1c Mon Sep 17 00:00:00 2001 From: Calvin Montgomery Date: Sat, 22 Jul 2017 10:35:45 -0700 Subject: [PATCH] Add id field to announcements and hide previously closed announcements --- package.json | 2 +- src/acp.js | 2 ++ www/js/callbacks.js | 11 +++++++++++ www/js/data.js | 4 +++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b6eec028..7fb50032 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Calvin Montgomery", "name": "CyTube", "description": "Online media synchronizer and chat", - "version": "3.42.0", + "version": "3.42.1", "repository": { "url": "http://github.com/calzoneman/sync" }, diff --git a/src/acp.js b/src/acp.js index e370ffa3..58ffe886 100644 --- a/src/acp.js +++ b/src/acp.js @@ -4,6 +4,7 @@ var db = require("./database"); var util = require("./utilities"); var Config = require("./config"); var Server = require("./server"); +import { v4 as uuidv4 } from 'uuid'; function eventUsername(user) { return user.getName() + "@" + user.realip; @@ -13,6 +14,7 @@ function handleAnnounce(user, data) { var sv = Server.getServer(); sv.announce({ + id: uuidv4(), title: data.title, text: data.content, from: user.getName() diff --git a/www/js/callbacks.js b/www/js/callbacks.js index 86a74362..15966819 100644 --- a/www/js/callbacks.js +++ b/www/js/callbacks.js @@ -64,10 +64,21 @@ Callbacks = { }, announcement: function(data) { + // Suppress this announcement for people who have already closed it + if (data.id && CyTube.ui.suppressedAnnouncementId + && data.id === CyTube.ui.suppressedAnnouncementId) { + return; + } $("#announcements").html(""); var signature = "
\u2014" + data.from; var announcement = makeAlert(data.title, data.text + signature) .appendTo($("#announcements")); + if (data.id) { + announcement.find(".close").click(function suppressThisAnnouncement() { + CyTube.ui.suppressedAnnouncementId = data.id; + setOpt("suppressed_announcement_id", data.id); + }); + } }, kick: function(data) { diff --git a/www/js/data.js b/www/js/data.js index 996687c2..4c101e37 100644 --- a/www/js/data.js +++ b/www/js/data.js @@ -69,7 +69,9 @@ var SOCKETIO_CONNECT_ERROR_COUNT = 0; var HAS_CONNECTED_BEFORE = false; var IMAGE_MATCH = /]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>/gi; var CyTube = {}; -CyTube.ui = {}; +CyTube.ui = { + suppressedAnnouncementId: getOpt("suppressed_announcement_id") +}; CyTube.featureFlag = { efficientEmotes: false };