function getQueryParams(qs) { qs = qs.split('+').join(' '); var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g; while (tokens = re.exec(qs)) { params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]); } return params; } function show_instances() { $.get($.cookie("base_location") + "api/v1/instances", function(data) { $("#main_content").html("

List of Spectrum 2 instances

"); var admin = $.cookie("admin") == "1"; $.each(data.instances, function(i, instance) { if (instance.running) { if (admin) { var command = instance.running ? "stop" : "start"; } else { var command = instance.registered ? "unregister" : "register"; if (instance.registered) { instance.status += "
Registered as " + instance.username; } } } else if (admin) { var command = "start"; } else { var command = ""; } var row = '' row += '' row += '' if (command == 'register') { row += ''; $("#main_result > tbody:last-child").append(row); } else if (command == "") { row += ''; $("#main_result > tbody:last-child").append(row); } else { row += ''; $("#main_result > tbody:last-child").append(row); $(".button_command").click(function(e) { e.preventDefault(); $(this).parent().empty().progressbar( {value: false} ).css('height', '1em'); var url = $(this).attr('href'); $.get(url, function(data) { show_instances(); }); }) } }); }); } function show_list_rooms() { var query = getQueryParams(document.location.search); $.get($.cookie("base_location") + "api/v1/instances/list_rooms/" + query.id, function(data) { $("#main_content").html("

Joined rooms

NameStatusActions
' + instance.name + '' + instance.status + '' + command + '' + '
'; if (command == 'unregister' && instance.frontend == "slack") { row += 'Join room | '; row += 'List joined rooms | '; } row += '' + command + ''; row += '
"); $.each(data.rooms, function(i, room) { var row = ''; row += ''; row += ''; row += ''; row += ''; row += ''; row += ''; $("#main_result > tbody:last-child").append(row); $(".button_command").click(function(e) { e.preventDefault(); $(this).parent().empty().progressbar( {value: false} ).css('height', '1em'); var url = $(this).attr('href'); $.get(url, function(data) { show_list_rooms(); }); }) }); }); } function show_users() { var admin = $.cookie("admin") == "1"; if (!admin) { $("#main_content").html("

List of Spectrum 2 users

Only administrator can list the users.

"); return; } $.get($.cookie("base_location") + "api/v1/users", function(data) { $("#main_content").html("

List of Spectrum 2 users

You can add new users here.

" + data.frontend_room_label + "" + data.legacy_room_label + "" + data.legacy_server_label + "" + data.name_label + "Actions
' + room.frontend_room + '' + room.legacy_room + '' + room.legacy_server + '' + room.name + 'Leave
"); $.each(data.users, function(i, user) { var row = '' row += '' row += ''; $("#main_result > tbody:last-child").append(row); $(".button_command").click(function(e) { e.preventDefault(); $(this).parent().empty().progressbar( {value: false} ).css('height', '1em'); var url = $(this).attr('href'); $.get(url, function(data) { show_users(); }); }) }); }); } function fill_instances_join_room_form() { var query = getQueryParams(document.location.search); $("#instance").attr("value", query.id); $(".button_command").click(function(e) { e.preventDefault(); $(this).parent().empty().progressbar( {value: false} ).css('height', '1em'); var postdata ={ "name": $("#name").val(), "legacy_room": $("#legacy_room").val(), "legacy_server": $("#legacy_server").val(), "frontend_room": $("#frontend_room").val() }; $.post($.cookie("base_location") + "api/v1/instances/join_room/" + $("#instance").val(), postdata, function(data) { window.location.replace("index.shtml"); }); }) $.get($.cookie("base_location") + "api/v1/instances/join_room_form/" + query.id, function(data) { $("#name_desc").html(data.name_label + ":"); $("#legacy_room_desc").html(data.legacy_room_label + ":"); $("#legacy_server_desc").html(data.legacy_server_label + ":"); $("#frontend_room_desc").html(data.frontend_room_label + ":"); $("#name").attr("placeholder", data.name_label + ":"); $("#legacy_room").attr("placeholder", data.legacy_room_label + ":"); $("#legacy_server").attr("placeholder", data.legacy_server_label + ":"); $("#frontend_room").attr("placeholder", data.frontend_room_label + ":"); }); } function fill_instances_register_form() { var query = getQueryParams(document.location.search); $("#instance").attr("value", query.id); $(".button_command").click(function(e) { e.preventDefault(); $(this).parent().empty().progressbar( {value: false} ).css('height', '1em'); var postdata ={ "jid": $("#jid").val(), "uin": $("#uin").val(), "password": $("#password").val() }; $.post($.cookie("base_location") + "api/v1/instances/register/" + $("#instance").val(), postdata, function(data) { if (data.oauth2_url) { window.location.replace(data.oauth2_url); } else { window.location.replace("index.shtml"); } }); }) $.get($.cookie("base_location") + "api/v1/instances/register_form/" + query.id, function(data) { $("#jid_desc").html(data.username_label + ":"); $("#jid").attr("placeholder", data.username_label); if (data.legacy_username_label.length == 0) { $('#uin_label').hide(); } else { $("#uin_desc").html(data.legacy_username_label + ":"); $("#uin").attr("placeholder", data.legacy_username_label); } if (data.password_label.length == 0) { $('#password_label').hide(); } else { $("#password_desc").html(data.password_label + ":"); $("#password").attr("placeholder", data.password_label); } }); } function fill_users_register_form() { $(".button").click(function(e) { e.preventDefault(); var postdata ={ "username": $("#username").val(), "password": $("#password").val() }; $.post("/api/v1/users/add", postdata, function(data) { if (data.error) { $('#error').text(data.message); } else { var query = getQueryParams(document.location.search); if (query.back_to_list == "1") { window.location.replace("list.shtml"); } else { window.location.replace("../login/"); } } }); }) }
NameActions
' + user.username + 'remove