From 0b535dd24e68015f8b0fc84ff23d3d25ede6d23a Mon Sep 17 00:00:00 2001 From: Sebastien Date: Thu, 26 Apr 2018 16:58:01 +0200 Subject: [PATCH] Add multiserver on web UI --- .../Commands/{ytTest.java => Test.java} | 2 +- .../Broken/RestApi/MusicWebAPIController.java | 2 +- src/main/resources/log4j2.xml | 2 +- src/main/resources/static/js/music.js | 87 ++++++++++--------- src/main/resources/static/js/navabar.js | 60 ++++++++++++- src/main/resources/templates/header.html | 51 +++++++++-- src/main/resources/templates/index.html | 10 ++- src/main/resources/templates/music.html | 2 + 8 files changed, 161 insertions(+), 55 deletions(-) rename src/main/java/net/Broken/Commands/{ytTest.java => Test.java} (87%) diff --git a/src/main/java/net/Broken/Commands/ytTest.java b/src/main/java/net/Broken/Commands/Test.java similarity index 87% rename from src/main/java/net/Broken/Commands/ytTest.java rename to src/main/java/net/Broken/Commands/Test.java index 23c3eaa..46a38a3 100644 --- a/src/main/java/net/Broken/Commands/ytTest.java +++ b/src/main/java/net/Broken/Commands/Test.java @@ -13,7 +13,7 @@ import java.io.IOException; public class ytTest implements Commande { @Override public void action(String[] args, MessageReceivedEvent event) { - event.getJDA().getPresence().setPresence(RichPresence.listening("Noting"),false); + event.getJDA().getPresence().setPresence(RichPresence.playing("test").asRichPresence(),false); } @Override diff --git a/src/main/java/net/Broken/RestApi/MusicWebAPIController.java b/src/main/java/net/Broken/RestApi/MusicWebAPIController.java index 5ba423f..3cf6c9e 100644 --- a/src/main/java/net/Broken/RestApi/MusicWebAPIController.java +++ b/src/main/java/net/Broken/RestApi/MusicWebAPIController.java @@ -96,7 +96,7 @@ public class MusicWebAPIController { try { UserEntity user = userUtils.getUserWithApiToken(userRepository, data.token); - logger.info("Receive command " + data.command + " from " + request.getRemoteAddr() + " USER: " + user.getName() + "GUILD: " + guild.getName()); + logger.info("Receive command " + data.command + " from " + request.getRemoteAddr() + " USER: " + user.getName() + " GUILD: " + guild.getName()); if (ApiCommandLoader.apiCommands.containsKey(data.command)) return ApiCommandLoader.apiCommands.get(data.command).action(data, MainBot.jda.getUserById(user.getJdaId()), guild); diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index 36cd124..7b81aed 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -25,7 +25,7 @@ - + diff --git a/src/main/resources/static/js/music.js b/src/main/resources/static/js/music.js index 2846513..5600d45 100644 --- a/src/main/resources/static/js/music.js +++ b/src/main/resources/static/js/music.js @@ -12,56 +12,59 @@ var btn_flush; var btn_add; var switchAutoFlow; var loadingFlag = false; +var guild; $(document).ready(function() { + if(Cookies.get('guild') != undefined) { - btn_play = $('#btn_play'); - btn_stop = $('#btn_stop'); - btn_next = $('#btn_next'); - btn_info = $('#btn_info'); - btn_disconnect = $('#btn_disconnect'); - btn_flush = $('#flush_btn'); - btn_add = $('#add_btn'); - switchAutoFlow = $("#autoflow"); + guild = Cookies.get('guild') + btn_play = $('#btn_play'); + btn_stop = $('#btn_stop'); + btn_next = $('#btn_next'); + btn_info = $('#btn_info'); + btn_disconnect = $('#btn_disconnect'); + btn_flush = $('#flush_btn'); + btn_add = $('#add_btn'); + switchAutoFlow = $("#autoflow"); - setInterval("getCurentMusic()",1000); - $('#modalAdd').modal(); - - $('#modal_current_info').modal(); + setInterval("getCurentMusic()", 1000); + $('#modalAdd').modal(); - $('#modalChanels').modal({ - dismissible: false // Modal can be dismissed by clicking outside of the modal - }); - - modal_loading = $('#modal_loading'); - modal_loading.modal({ - dismissible: false - }); - - $('.button-collapse-1').sideNav({ - menuWidth: 400, // Default is 300 - edge: 'right', // Choose the horizontal origin - closeOnClick: false, // Closes side-nav on clicks, useful for Angular/Meteor - draggable: true // Choose whether you can drag to open on touch screens, - }); + $('#modal_current_info').modal(); - $('.dropdown-button').dropdown({ - inDuration: 300, - outDuration: 225, - constrainWidth: false, // Does not change width of dropdown to that of the activator - hover: false, // Activate on hover - gutter: 0, // Spacing from edge - belowOrigin: false, // Displays dropdown below the button - alignment: 'left', // Displays dropdown with edge aligned to the left of button - stopPropagation: false // Stops event propagation - }); + $('#modalChanels').modal({ + dismissible: false // Modal can be dismissed by clicking outside of the modal + }); - listeners(); + modal_loading = $('#modal_loading'); + modal_loading.modal({ + dismissible: false + }); + $('.button-collapse-1').sideNav({ + menuWidth: 400, // Default is 300 + edge: 'right', // Choose the horizontal origin + closeOnClick: false, // Closes side-nav on clicks, useful for Angular/Meteor + draggable: true // Choose whether you can drag to open on touch screens, + }); + + $('.dropdown-button').dropdown({ + inDuration: 300, + outDuration: 225, + constrainWidth: false, // Does not change width of dropdown to that of the activator + hover: false, // Activate on hover + gutter: 0, // Spacing from edge + belowOrigin: false, // Displays dropdown below the button + alignment: 'left', // Displays dropdown with edge aligned to the left of button + stopPropagation: false // Stops event propagation + }); + + listeners(); + } }); function getCurentMusic() { - $.get("api/music/currentMusicInfo", function (data) { + $.get("api/music/currentMusicInfo?guild=" + guild, function (data) { }).done(function (data) { state = data.state; @@ -176,7 +179,7 @@ function getCurentMusic() { } function getPlayList() { - $.get("api/music/getPlaylist", function (data) { + $.get("api/music/getPlaylist?guild=" + guild, function (data) { }).done(function (data) { data = data.list; if(data != null && data.length != 0){ @@ -237,7 +240,7 @@ function getPlayList() { } function getChannels(){ - $.get("api/music/getChanel", function (data) { + $.get("api/music/getChanel?guild=" + guild, function (data) { }).done(function (data) { console.log(data); $('#channelForm').empty(); @@ -319,7 +322,7 @@ function sendCommand(command){ type: "POST", dataType: 'json', contentType: 'application/json', - url: "/api/music/command", + url: "/api/music/command?guild=" + guild, data: JSON.stringify(command), success: function (data) { console.log(data); diff --git a/src/main/resources/static/js/navabar.js b/src/main/resources/static/js/navabar.js index ed4ab69..fce6601 100644 --- a/src/main/resources/static/js/navabar.js +++ b/src/main/resources/static/js/navabar.js @@ -7,6 +7,7 @@ var btn_submit; var btn_disconnect; var nav_name; + $(document).ready(function() { $('.button-navbar-mobile').sideNav({ menuWidth: 400, // Default is 300 @@ -15,12 +16,16 @@ $(document).ready(function() { draggable: true // Choose whether you can drag to open on touch screens, }); + $('#modal_guild').modal({ + dismissible: false // Modal can be dismissed by clicking outside of the modal + }); + nav_bar_account_link = $("#nav-bar-account"); input_name = $("#user_input"); input_psw = $("#password_input"); btn_submit = $("#btn-submit-connect"); - btn_disconnect = $("#nav-disconnect"); + btn_disconnect = $(".nav-disconnect"); nav_name = $("#nav-name"); if(Cookies.get('token') === undefined){ @@ -61,6 +66,9 @@ function connected(){ } ); nav_name.text(Cookies.get('name')); + if(Cookies.get('guild') === undefined){ + getGuild() + } } function disconnected() { @@ -132,7 +140,57 @@ function navListeners() { btn_disconnect.click(function () { Cookies.remove('token'); Cookies.remove('name'); + Cookies.remove('guild'); location.reload(); }); + $('#guild_form').change(function () { + if ($('#btn_ok_guild').hasClass("disabled")) { + $('#btn_ok_guild').removeClass("disabled"); + } + }); + + $('#btn_ok_guild').click(function () { + guild = $('input[name=guildRadio]:checked').val(); + Cookies.set('guild', guild, { expires: 31 }); + location.reload(); + + }); + + $('.nav-change-guild').click(function () { + Cookies.remove('guild'); + location.reload(); + }) +} + +function getGuild(){ + $.get("api/userManagement/getGuilds", function (data) { + }).done(function (data) { + console.log(data); + $('#guild_form').empty(); + + if(data.length === 1){ + Cookies.set('guild', data.id, { expires: 31 }); + return; + } + data.forEach(function(element){ + var template = $('#radioTemplateGuild').clone(); + template.removeAttr("id"); + template.removeAttr("style"); + var content = template.html(); + content = content.replace("@name", element.name); + content = content.replace(/@id/g, element.id); + template.html(content); + + $('#guild_form').append(template); + }); + $('#modal_guild').modal('open'); + + }).fail(function (data) { + if(!error){ + alert("Com error, please refresh."); + error = true; + } + + }); } \ No newline at end of file diff --git a/src/main/resources/templates/header.html b/src/main/resources/templates/header.html index 42a0733..4905059 100644 --- a/src/main/resources/templates/header.html +++ b/src/main/resources/templates/header.html @@ -29,12 +29,25 @@ menu @@ -43,9 +56,10 @@ @@ -100,6 +115,32 @@ + + + + + + + + + + diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 1e1cbf3..f90621c 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -3,15 +3,15 @@ - Music Control - Discord Bot + Discord Bot - - + + @@ -22,7 +22,9 @@ - + diff --git a/src/main/resources/templates/music.html b/src/main/resources/templates/music.html index 8a6eaeb..e0967c0 100644 --- a/src/main/resources/templates/music.html +++ b/src/main/resources/templates/music.html @@ -201,7 +201,9 @@