From 9d073624697b1dcdd3f01dc307774647bb35d04f Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 18 Feb 2013 11:51:57 -0800 Subject: [PATCH] Ticket #268: Add pagination for connections. --- guacamole/src/main/webapp/admin.xhtml | 3 + guacamole/src/main/webapp/scripts/admin-ui.js | 66 +++++++++++++------ 2 files changed, 48 insertions(+), 21 deletions(-) diff --git a/guacamole/src/main/webapp/admin.xhtml b/guacamole/src/main/webapp/admin.xhtml index 099e4c907..97d698a34 100644 --- a/guacamole/src/main/webapp/admin.xhtml +++ b/guacamole/src/main/webapp/admin.xhtml @@ -77,6 +77,9 @@
+
+
+ diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index 679f37334..78cef9340 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -22,23 +22,23 @@ */ var GuacAdmin = { - "lists" : { - "connection_list" : document.getElementById("connection-list"), - "user_list" : document.getElementById("user-list") + "containers" : { + "connection_list" : document.getElementById("connection-list"), + "user_list" : document.getElementById("user-list"), + "user_list_buttons" : document.getElementById("user-list-buttons"), + "connection_list_buttons" : document.getElementById("connection-list-buttons") }, - "user_list_buttons" : document.getElementById("user-list-buttons"), - "buttons" : { - "back" : document.getElementById("back"), - "logout" : document.getElementById("logout"), - "add_connection" : document.getElementById("add-connection"), - "add_user" : document.getElementById("add-user") + "back" : document.getElementById("back"), + "logout" : document.getElementById("logout"), + "add_connection" : document.getElementById("add-connection"), + "add_user" : document.getElementById("add-user") }, "fields" : { - "connection_id" : document.getElementById("connection-id"), - "username" : document.getElementById("username") + "connection_id" : document.getElementById("connection-id"), + "username" : document.getElementById("username") }, "cached_permissions" : null, @@ -530,7 +530,7 @@ GuacAdmin.addUser = function(name) { // Deselect function deselect() { - GuacUI.removeClass(GuacAdmin.lists.user_list, "disabled"); + GuacUI.removeClass(GuacAdmin.containers.user_list, "disabled"); GuacUI.removeClass(item_element, "selected"); item_element.removeChild(form_element); GuacAdmin.selected_user = null; @@ -538,7 +538,7 @@ GuacAdmin.addUser = function(name) { // Select function select() { - GuacUI.addClass(GuacAdmin.lists.user_list, "disabled"); + GuacUI.addClass(GuacAdmin.containers.user_list, "disabled"); GuacUI.addClass(item_element, "selected"); item_element.appendChild(form_element); } @@ -685,6 +685,11 @@ GuacAdmin.addUser = function(name) { }; +/** + * Currently-defined pager for connections, if any. + */ +GuacAdmin.connectionPager = null; + /** * Adds the given connection to the displayed connection list. */ @@ -692,7 +697,7 @@ GuacAdmin.addConnection = function(connection) { var item = new GuacAdmin.ListItem("connection", connection.id); var item_element = item.getElement(); - GuacAdmin.lists.connection_list.appendChild(item_element); + GuacAdmin.connectionPager.addElement(item_element); item_element.onclick = function() { @@ -796,7 +801,7 @@ GuacAdmin.addConnection = function(connection) { // Deselect function deselect() { - GuacUI.removeClass(GuacAdmin.lists.connection_list, "disabled"); + GuacUI.removeClass(GuacAdmin.containers.connection_list, "disabled"); GuacUI.removeClass(item_element, "selected"); item_element.removeChild(form_element); GuacAdmin.selected_connection = null; @@ -804,7 +809,7 @@ GuacAdmin.addConnection = function(connection) { // Select function select() { - GuacUI.addClass(GuacAdmin.lists.connection_list, "disabled"); + GuacUI.addClass(GuacAdmin.containers.connection_list, "disabled"); GuacUI.addClass(item_element, "selected"); item_element.appendChild(form_element); } @@ -1031,17 +1036,17 @@ GuacAdmin.reset = function() { user_previous_page = GuacAdmin.userPager.current_page; // Add new pager - GuacAdmin.lists.user_list.innerHTML = ""; - GuacAdmin.userPager = new GuacAdmin.Pager(GuacAdmin.lists.user_list); + GuacAdmin.containers.user_list.innerHTML = ""; + GuacAdmin.userPager = new GuacAdmin.Pager(GuacAdmin.containers.user_list); // Add users to pager for (var name in GuacAdmin.cached_permissions.read_user) GuacAdmin.addUser(name) // If more than one page, add navigation buttons - GuacAdmin.user_list_buttons.innerHTML = ""; + GuacAdmin.containers.user_list_buttons.innerHTML = ""; if (GuacAdmin.userPager.last_page != 0) - GuacAdmin.user_list_buttons.appendChild(GuacAdmin.userPager.getElement()); + GuacAdmin.containers.user_list_buttons.appendChild(GuacAdmin.userPager.getElement()); // Set starting page GuacAdmin.userPager.setPage(Math.min(GuacAdmin.userPager.last_page, @@ -1051,10 +1056,29 @@ GuacAdmin.reset = function() { * Add readable connections. */ - GuacAdmin.lists.connection_list.innerHTML = ""; + // Get previous page, if any + var connection_previous_page = 0; + if (GuacAdmin.connectionPager) + connection_previous_page = GuacAdmin.connectionPager.current_page; + + // Add new pager + GuacAdmin.containers.connection_list.innerHTML = ""; + GuacAdmin.connectionPager = new GuacAdmin.Pager(GuacAdmin.containers.connection_list); + + // Add connections to pager for (var i=0; i