From c7e43762b465f71ff5158d6b3346108b09081b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Wed, 21 Feb 2018 10:30:10 +0100 Subject: [PATCH] Added button for generating channelname in frontpage --- server/handlers/functions.js | 12 ++++++++++++ server/public/assets/css/style.css | 9 +++++++++ server/public/assets/js/frontpage.js | 6 ++++++ server/public/assets/js/listeners.js | 12 ++++++++++++ server/public/partials/frontpage/search.handlebars | 3 +++ server/routing/client/api.js | 4 ++++ 6 files changed, 46 insertions(+) diff --git a/server/handlers/functions.js b/server/handlers/functions.js index 3e79c1b4..2a3ad096 100644 --- a/server/handlers/functions.js +++ b/server/handlers/functions.js @@ -17,6 +17,17 @@ function remove_from_array(array, element){ } } +function generate_channel_name(res) { + var trying_id = uniqid.time().toLowerCase(); + db.collection("frontpage_lists").find({frontpage: {$exists: true }, "_id": trying_id }, {"_id": 1}, function(err, docs){ + if(docs.length == 0) { + res.send(trying_id); + return; + } + generate_channel_name(res); + }); +} + function get_short_id(socket) { var new_short_id = uniqid.time().toLowerCase(); @@ -125,6 +136,7 @@ function hash_pass(adminpass) { return crypto.createHash('sha256').update(adminpass).digest('base64'); } +module.exports.generate_channel_name = generate_channel_name; module.exports.remove_unique_id = remove_unique_id; module.exports.remove_name_from_db = remove_name_from_db; module.exports.remove_from_array = remove_from_array; diff --git a/server/public/assets/css/style.css b/server/public/assets/css/style.css index e0638ca5..2a744c97 100755 --- a/server/public/assets/css/style.css +++ b/server/public/assets/css/style.css @@ -466,6 +466,15 @@ li.disabled span { /*transition: 1s;*/ } +.generate-channel-name { + margin-left: -24px; + padding-right: 5px; + height: 46px; + display: flex; + justify-content: center; + align-items: center; +} + #frontpage_player{ position: fixed; bottom: 10px; diff --git a/server/public/assets/js/frontpage.js b/server/public/assets/js/frontpage.js index 63129b24..28232c3c 100755 --- a/server/public/assets/js/frontpage.js +++ b/server/public/assets/js/frontpage.js @@ -303,6 +303,7 @@ var Frontpage = { $("#main-container").css("background-color", "#2d2d2d"); if(!Helper.mobilecheck()) { $("#frontpage-viewer-counter").tooltip("remove"); + $(".generate-channel-name").tooltip("remove"); $("#offline-mode").tooltip("remove"); } currently_showing_channels = 1; @@ -437,6 +438,11 @@ var Frontpage = { position: "bottom", tooltip: "Total Viewers" }); + $(".generate-channel-name").tooltip({ + delay: 5, + position: "bottom", + tooltip: "Generate name" + }); } Frontpage.get_frontpage_lists(); diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 7e9a3866..789f548f 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -1139,6 +1139,18 @@ $(document).on("click", "#player_bottom_overlay", function(e){ Frontpage.to_channel(chan.toLowerCase(), false); }); +$(document).on("click", ".generate-channel-name", function(e) { + e.preventDefault(); + $.ajax({ + type: "GET", + url: "/api/generate_name", + success: function(response) { + $(".room_namer").val(""); + $(".room-namer").val(response); + } + }) +}); + $(document).keydown(function(event) { if(window.location.pathname != "/"){ if(event.keyCode == 91 || event.keyCode == 17){ diff --git a/server/public/partials/frontpage/search.handlebars b/server/public/partials/frontpage/search.handlebars index 40dfe49a..723db458 100644 --- a/server/public/partials/frontpage/search.handlebars +++ b/server/public/partials/frontpage/search.handlebars @@ -17,6 +17,9 @@ spellcheck="false" maxlength="18" /> + + autorenew + diff --git a/server/routing/client/api.js b/server/routing/client/api.js index 8659788e..12e872d7 100644 --- a/server/routing/client/api.js +++ b/server/routing/client/api.js @@ -15,6 +15,10 @@ router.route('/api/frontpages').get(function(req, res) { }); }); +router.route('/api/generate_name').get(function(req, res) { + Functions.generate_channel_name(res); +}); + router.route('/api/list/:channel_name').get(function(req, res) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");