📄 workgroup-queue-agents.jsp
字号:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %><%-- - $RCSfile$ - $Revision: 32924 $ - $Date: 2006-08-04 15:03:08 -0700 (Fri, 04 Aug 2006) $--%><%@ page import="org.jivesoftware.xmpp.workgroup.Agent, org.jivesoftware.xmpp.workgroup.AgentManager, org.jivesoftware.xmpp.workgroup.RequestQueue, org.jivesoftware.xmpp.workgroup.Workgroup, org.jivesoftware.xmpp.workgroup.WorkgroupAdminManager, org.jivesoftware.xmpp.workgroup.WorkgroupManager, org.jivesoftware.xmpp.workgroup.dispatcher.DispatcherInfo, org.jivesoftware.util.ParamUtils, org.jivesoftware.openfire.group.Group, org.jivesoftware.openfire.group.GroupManager, org.xmpp.component.ComponentManagerFactory" errorPage="workgroup-error.jsp" %><%@ page import="org.xmpp.packet.JID" %><%@ page import="java.util.HashMap" %><%@ page import="java.util.Iterator" %><%@ page import="java.util.LinkedList" %><%@ page import="java.util.List" %><%@ page import="java.util.Map" %><%@ page import="java.util.StringTokenizer" %><%@ page import="org.jivesoftware.xmpp.workgroup.AgentNotFoundException"%><%@ page import="org.jivesoftware.util.Log"%><%@ page import="org.jivesoftware.openfire.group.GroupNotFoundException"%><%@ page import="org.jivesoftware.openfire.user.UserManager"%><% // Get parameters // String wgID = ParamUtils.getParameter(request, "wgID"); long queueID = ParamUtils.getLongParameter(request, "qID", -1L); String agentGroups = ParamUtils.getParameter(request, "agentGroups"); String agents = ParamUtils.getParameter(request, "agents"); String success = ParamUtils.getParameter(request, "success"); boolean addAgents = request.getParameter("addAgents") != null; boolean addGroups = request.getParameter("addGroups") != null; boolean removeAgents = request.getParameter("removeUsers") != null; boolean removeGroups = request.getParameter("removeGroup") != null; WorkgroupManager wgManager = WorkgroupManager.getInstance(); WorkgroupAdminManager adminManager = new WorkgroupAdminManager(); GroupManager groupManager = GroupManager.getInstance(); // Load the workgroup Workgroup workgroup = wgManager.getWorkgroup(new JID(wgID)); AgentManager agentManager = wgManager.getAgentManager(); // Load the request queue: RequestQueue queue = workgroup.getRequestQueue(queueID); //AgentSelector newSelector = null; DispatcherInfo infos = queue.getDispatcher().getDispatcherInfo(); long requestTimeout = infos.getRequestTimeout() / 1000; long offerTimeout = infos.getOfferTimeout() / 1000; String successMessage = null;%><% Map errors = new HashMap(); if(addGroups && agentGroups == null){ errors.put("groups", "Please specify a valid group name."); } if(addGroups && errors.size() == 0){ StringTokenizer tokenizer = new StringTokenizer(agentGroups, ",\t\n\r\f"); while (tokenizer.hasMoreTokens()) { String tok = tokenizer.nextToken().trim(); try { Group group = groupManager.getGroup(tok); queue.addGroup(group); } catch (Exception e) { errors.put("groups", "Group not found."); ComponentManagerFactory.getComponentManager().getLog().error(e); } } successMessage = "Group(s) have been added to queue."; } else if (addAgents && errors.size() == 0) { if (agents != null) { // loop thru all params StringTokenizer tokenizer = new StringTokenizer(agents, ", \t\n\r\f"); while (tokenizer.hasMoreTokens()) { String usernameToken = tokenizer.nextToken(); if (usernameToken.indexOf('@') != -1) { usernameToken = JID.escapeNode(usernameToken); } try { // See if they are a user in the system. UserManager.getInstance().getUser(usernameToken); usernameToken += ("@" + ComponentManagerFactory.getComponentManager().getServerName()); JID address = new JID(usernameToken.trim()); Agent agent = null; if (agentManager.hasAgent(address)) { agent = agentManager.getAgent(address); } else { agent = agentManager.createAgent(address); } queue.addMember(agent); } catch (Exception e) { if (!errors.containsKey("agents")) { errors.put("agents", new LinkedList()); } List list = (List)errors.get("agents"); list.add(usernameToken); } successMessage = "Agent(s) have been added to the queue."; } } if(errors.size() == 0){ response.sendRedirect("workgroup-queue-agents.jsp?success=true&wgID=" + wgID + "&qID=" + queue.getID()); return; } } if(removeAgents){ String[] agentID = request.getParameterValues("remove"); final int no = agentID != null ? agentID.length : 0; for(int i=0; i<no; i++){ try { long id = Long.parseLong(agentID[i]); Agent agent = agentManager.getAgent(id); queue.removeMember(agent); } catch (AgentNotFoundException e1) { Log.error(e1); } } successMessage = "Agent(s) have been removed from the queue."; } if(removeGroups){ String[] groups = request.getParameterValues("groupRemove"); final int no = groups != null ? groups.length : 0; for (int i = 0; i < no; i++) { try { String groupName = groups[i]; Group group = groupManager.getGroup(groupName); queue.removeGroup(group); } catch (GroupNotFoundException e1) { Log.error(e1); } } successMessage = "Group(s) have been removed from the queue."; } RequestQueue backupQueue = null; if (errors.size() == 0) { DispatcherInfo dispatcherInfo = queue.getDispatcher().getDispatcherInfo(); agentGroups = ""; for (Iterator iter = queue.getGroups().iterator(); iter.hasNext();) { Group ag = (Group)iter.next(); String sep = (iter.hasNext() ? ", " : ""); agentGroups += (ag.getName() + sep); } agents = ""; for (Iterator iter = queue.getMembers().iterator(); iter.hasNext();) { Agent a = (Agent)iter.next(); String sep = (iter.hasNext() ? ", " : ""); agents += (a.getAgentJID().toString() + sep); } } String overFlowDescription = ""; RequestQueue.OverflowType overflowType = queue.getOverflowType(); if (overflowType == RequestQueue.OverflowType.OVERFLOW_BACKUP) { overFlowDescription = "Overflow to " + queue.getBackupQueue().getName(); } else if (overflowType == RequestQueue.OverflowType.OVERFLOW_NONE) { overFlowDescription = "No Overflow."; } else { overFlowDescription = "Overflow to random queue."; }%><html> <head> <title>Manage Queue - <%= queue.getName()%></title> <meta name="subPageID" content="workgroup-queues"/> <meta name="extraParams" content="wgID=<%= wgID %>"/> <!--<meta name="helpPage" content="edit_queue_properties.html"/>--> <script language="JavaScript" type="text/javascript"> function openWin(el) { var win = window.open('user-browser.jsp?formName=f&elName=agents', 'newWin', 'width=500,height=550,menubar=yes,location=no,personalbar=no,scrollbars=yes,resize=yes'); } function openAgentGroupWindow(el) { var agentwin = window.open('agent-group-browser.jsp?formName=f&elName=agentGroups', 'newWin', 'width=500,height=550,menubar=yes,location=no,personalbar=no,scrollbars=yes,resize=yes'); } </script> </head> <body> <p> <b>Description: </b><%= queue.getDescription() != null ? queue.getDescription() : ""%> </p><p> Use the form below to add agents and/or groups to this queue. All users specified will be marked as agents that are able to take incoming chat requests to this queue.</p><p><a href="workgroup-queues.jsp?wgID=<%= wgID %>" >« Back to list of queues in workgroup.</a></p><% if (successMessage != null && errors.size() == 0) { %><div class="success"> <%= successMessage%></div><br/><% } %><% if (errors.size() > 0) { %> <div class="error"> Please fix the errors below. </div><% } %> <table width="100%" class="jive-table" cellpadding="3" cellspacing="0" border="0"> <th colspan="2">Queue Settings</th> <tr> <td width="1%" nowrap>Offer Timeout:</td> <td><%= offerTimeout%> seconds</td> </tr> <tr> <td width="1%" nowrap>Request Timeout:</td> <td><%= requestTimeout%> seconds.</td> </tr> <tr> <td width="1%" nowrap>Overflow Policy:</td> <td><%= overFlowDescription%></td> </tr> <tr> <td colspan="2"><input type="button" name="edit" value="Edit Settings" onclick="window.location.href='workgroup-queue-manage.jsp?wgID=<%=wgID%>&qID=<%= queueID%>'"/></td> </tr></table><br/><form action="workgroup-queue-agents.jsp" method="post" name="f"><input type="hidden" name="wgID" value="<%= wgID %>"><input type="hidden" name="qID" value="<%= queueID %>"><table cellpadding="3" cellspacing="0" border="0"><tr valign="top"> <td class="c1"> <b>Add Agent(s):</b> <% if (errors.get("agents") != null) { %> <span class="jive-error-text"> Agent not found. </span> <% } %> <br/> </td> <td> <input type="text" name="agents" size="40"/> <input type="submit" name="addAgents" value="Add"/> </td> <td> <a href="#" onclick="openWin(document.f.agents);return false;" title="Click to browse available agents..." >Browse...</a> </td></table><!-- List Agents --> <table width="100%" class="jive-table" cellpadding="3" cellspacing="0" border="0"> <tr> <th>Username</th><th>Remove</th> </tr> <% for(Agent agent : queue.getMembers()){ %> <tr> <td><%= JID.unescapeNode(agent.getAgentJID().getNode())%></td> <td><input type="checkbox" name="remove" value="<%= agent.getID()%>"></td> </tr> <% } %> <tr><td> </td><td><input type="submit" name="removeUsers" value="Remove" /></td></tr> </table> <br/> <table cellpadding="3" cellspacing="0" border="0"> <tr valign="top"> <td class="c1"> <b>Add Groups(s):</b> <% if (errors.get("groups") != null) { %> <br/> <span class="jive-error-text"> <%= errors.get("groups") %> </span> <% } %> </td> <td> <input type="text" name="agentGroups" size="40"> <input type="submit" name="addGroups" value="Add"/> </td> <td nowrap valign="top"> <a href="#" onclick="openAgentGroupWindow(document.f.agentGroups);return false;" title="Click to browse available agent groups..." >Browse...</a> </td> </tr> </table><!-- List Groups--> <table width="100%" class="jive-table" cellpadding="3" cellspacing="0" border="0"> <tr> <th>Group</th><th>Remove</th> </tr> <% boolean hasGroup = false; for(Group group : queue.getGroups()){ hasGroup = true; %> <tr> <td><%= group.getName() %></td> <td><input type="checkbox" name="groupRemove" value="<%= group.getName()%>"></td> </tr> <% } %> <% if(hasGroup){ %> <tr><td> </td><td><input type="submit" name="removeGroup" value="Remove" /></td></tr> <% } %> </table></form><script type="text/javascript"> document.f.agents.focus();</script></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -