Hi,
The diff for the UI module of 4.1.7 in DLC is attached in the JIRA ticket
https://wso2.org/jira/browse/MB-435. Please find the diff file attached
herewith too.
Also the code is checked in the following scratch locations
4.1.3 - https://svn.wso2.org/repos/wso2/scratch/ss-dev/shani/MB-dev/4.1.3
4.1.7 - https://svn.wso2.org/repos/wso2/scratch/ss-dev/shani/MB-dev/4.1.7
--
Thanks and Regards
*, Shani Ranasinghe*
Software Engineer
WSO2 Inc.; http://wso2.com
lean.enterprise.middleware
mobile: +94 77 2273555
linked in: lk.linkedin.com/pub/shani-ranasinghe/34/111/ab
Index: src/main/resources/org/wso2/carbon/andes/ui/i18n/JSResources.properties
===================================================================
--- src/main/resources/org/wso2/carbon/andes/ui/i18n/JSResources.properties
(revision 0)
+++ src/main/resources/org/wso2/carbon/andes/ui/i18n/JSResources.properties
(working copy)
@@ -0,0 +1,8 @@
+confirmation.delete=Are you sure to delete?
+confirmation.restore=Are you sure you want to restore?
+info.successful.delete=Successfully deleted.
+info.successful.restore=Successfully restored.
+info.zero.items.selected=Please select one or more messages to
+info.no.queueu.selected=Please select a queue to restore
+delete=delete
+restore=restore
\ No newline at end of file
Index: src/main/resources/web/queues/js/treecontrol.js
===================================================================
--- src/main/resources/web/queues/js/treecontrol.js (revision 197189)
+++ src/main/resources/web/queues/js/treecontrol.js (working copy)
@@ -42,6 +42,72 @@
theform.queueName.value = queueName;
theform.submit();
}
+
+
+ function doDeleteDLC(nameOfQueue) {
+ var checkedValues = getCheckedValues();
+ if(checkedValues == null || checkedValues == "" ){
+ var msg =
org_wso2_carbon_andes_ui_jsi18n["info.zero.items.selected"]+ " " +
org_wso2_carbon_andes_ui_jsi18n["delete"];
+ CARBON.showInfoDialog(msg);
+ return;
+ }
+
CARBON.showConfirmationDialog(org_wso2_carbon_andes_ui_jsi18n["confirmation.delete"],
function(){
+ $.ajax({
+
url:'../queues/dlc_message_delete_ajaxprocessor.jsp?nameOfQueue=' + nameOfQueue
+ '&msgList=' + checkedValues,
+ async:true,
+ dataType:"html",
+ success: function() {
+
CARBON.showInfoDialog(org_wso2_carbon_andes_ui_jsi18n["info.successful.delete"],
function(){
+ location.href =
"../queues/dlc_messages_list.jsp?nameOfQueue=" + nameOfQueue;
+ });
+
+ },
+
+ failure: function(transport) {
+
CARBON.showErrorDialog(trim(transport.responseText),function(){
+ location.href =
"../queues/dlc_messages_list.jsp?nameOfQueue=" + nameOfQueue;
+ return;
+ });
+ }
+ });
+ });
+}
+
+ function deRestoreMessages(nameOfQueue){
+ var checkedValues = getCheckedValues();
+ if(checkedValues == null || checkedValues == ""){
+ var msg =
org_wso2_carbon_andes_ui_jsi18n["info.zero.items.selected"]+ " " +
org_wso2_carbon_andes_ui_jsi18n["restore"];
+ CARBON.showInfoDialog(msg);
+ return;
+ }
+
CARBON.showConfirmationDialog(org_wso2_carbon_andes_ui_jsi18n["confirmation.restore"],
function(){
+ $.ajax({
+
url:'../queues/dlc_message_restore_ajaxprocessor.jsp?nameOfQueue=' +
nameOfQueue + '&msgList=' + checkedValues,
+ async:true,
+ dataType:"html",
+ success: function() {
+
CARBON.showInfoDialog(org_wso2_carbon_andes_ui_jsi18n["info.successful.restore"],
function(){
+ location.href =
"../queues/dlc_messages_list.jsp?nameOfQueue=" + nameOfQueue;
+ });
+
+ },
+
+ failure: function(transport) {
+
CARBON.showErrorDialog(trim(transport.responseText),function(){
+ location.href =
"../queues/dlc_messages_list.jsp?nameOfQueue=" + nameOfQueue;
+ return;
+ });
+ }
+ });
+ });
+ }
+
+ function getCheckedValues(){
+ return $('input[name="checkbox"]:checked').map(
+ function() {
+ return this.value;
+ }).get().join(',');
+ }
function validateForm(){
var msg_count = document.getElementById("num_of_msgs");
Index: src/main/resources/web/queues/dlc_messages_list.jsp
===================================================================
--- src/main/resources/web/queues/dlc_messages_list.jsp (revision 0)
+++ src/main/resources/web/queues/dlc_messages_list.jsp (working copy)
@@ -0,0 +1,227 @@
+<%@page import="java.sql.Array"%>
+<%@page import="org.wso2.carbon.andes.stub.admin.types.Queue"%>
+<%@page import="org.apache.axis2.AxisFault"%>
+<%@ page import="org.wso2.carbon.andes.ui.UIUtils" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="carbon"
uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" %>
+<%@ page import="org.wso2.carbon.andes.ui.client.QueueBrowserClient" %>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage" %>
+<%@ page import="javax.jms.JMSException" %>
+<%@ page import="javax.jms.Message" %>
+<%@ page import="java.util.ArrayList" %>
+<%@ page import="java.util.Collections" %>
+<%@ page import="java.util.Enumeration" %>
+<%@ page import="org.wso2.carbon.andes.stub.AndesAdminServiceStub" %>
+<script type="text/javascript" src="js/treecontrol.js"></script>
+<fmt:bundle basename="org.wso2.carbon.andes.ui.i18n.Resources">
+<jsp:include page="resources-i18n-ajaxprocessor.jsp"/>
+ <carbon:jsi18n
+ resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ request="<%=request%>"/>
+
+ <script type="text/javascript" src="../admin/js/breadcrumbs.js"></script>
+ <script type="text/javascript" src="../admin/js/cookies.js"></script>
+ <script type="text/javascript" src="../admin/js/main.js"></script>
+ <link rel="stylesheet" href="../qpid/css/dsxmleditor.css"/>
+ <script type="text/javascript">
+
+ function toggleCheck(source)
+ {
+
+ var allcheckBoxes = document.getElementsByName("checkbox");
+ for (var i=0; i < allcheckBoxes.length; i++) {
+ if (allcheckBoxes[i].type == 'checkbox')
+ {
+ allcheckBoxes[i].checked = source.checked;
+ }
+ }
+ }
+
+ function checkSelectAll(source)
+ {
+ var selectAllCheckBox = document.getElementsByName("selectAllCheckBox");
+ if(selectAllCheckBox[0].checked){
+ selectAllCheckBox[0].checked = source.checked;
+ }
+
+ var allcheckBoxesInPage = $("input:checkbox");
+
+ var totalCheckboxCount = allcheckBoxesInPage.size() -1; ////removing
the select all check box from the count.
+
+ var checkedBoxes = $("input[@type=checkbox]:checked"); //the checked
box count
+ var checkedBoxesCount = checkedBoxes.size();
+
+ if(totalCheckboxCount == checkedBoxesCount){
+ selectAllCheckBox[0].checked = true;arg0
+ }
+ }
+
+ function Ondelete(){
+
+ }
+
+ </script>
+
+ <%
+ AndesAdminServiceStub stub = UIUtils.getAndesAdminServiceStub(config,
session, request);
+ String nameOfQueue = request.getParameter("nameOfQueue");
+ Queue[] queueList = null;
+ try {
+ queueList = stub.getAllQueues();
+
+ } catch (Exception e) {
+ CarbonUIMessage.sendCarbonUIMessage(e.getMessage(),
CarbonUIMessage.ERROR, request, e);
+ e.printStackTrace();
+ }
+
+ QueueBrowserClient queueBrowserClient = new
QueueBrowserClient(nameOfQueue, stub.getCurrentUser(),stub.getAccessKey());
+ Enumeration queueEnu = queueBrowserClient.browseQueue();
+ ArrayList msgArrayList = Collections.list(queueEnu);
+ Object[] filteredMsgArray = null;
+ int msgCountPerPage = 100;
+ int pageNumber = 0;
+ int numberOfPages = 1;
+ String concatenatedParameters = "nameOfQueue=" + nameOfQueue;
+ long totalMsgsInQueue;
+ String pageNumberAsStr = request.getParameter("pageNumber");
+ if (pageNumberAsStr != null) {
+ pageNumber = Integer.parseInt(pageNumberAsStr);
+ }
+
+ if (msgArrayList != null) {
+ totalMsgsInQueue = msgArrayList.size();
+ numberOfPages = (int) Math.ceil(((float) totalMsgsInQueue) /
msgCountPerPage);
+ filteredMsgArray = UIUtils.getFilteredMsgsList(msgArrayList,
pageNumber * msgCountPerPage, msgCountPerPage);
+ }
+
+ %>
+ <carbon:breadcrumb
+ label="queue.content"
+ resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ topPage="false"
+ request="<%=request%>"/>
+
+ <div id="middle">
+ <h2><fmt:message key="dlc.queue.content"/> <%=nameOfQueue%></h2>
+ <div id="iconArea">
+ <table align="right">
+ <thead>
+ <tr align="right">
+ <th align="right">
+ <a style="background-image: url(../admin/images/delete.gif);"
+ class="icon-link"
+ onclick="doDeleteDLC('<%=nameOfQueue%>')">Delete</a>
+ </th>
+ <th align="right">
+ <a style="background-image: url(../admin/images/move.gif);"
+ class="icon-link"
+
onclick="deRestoreMessages('<%=nameOfQueue%>')">Restore</a>
+ </th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+
+ <div id="workArea">
+ <input type="hidden" name="pageNumber" value="<%=pageNumber%>"/>
+ <carbon:paginator pageNumber="<%=pageNumber%>"
numberOfPages="<%=numberOfPages%>"
+ page="queue_messages_list.jsp"
pageNumberParameterName="pageNumber"
+
resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ prevKey="prev" nextKey="next"
parameters="<%=concatenatedParameters%>"/>
+
+ <table class="styledLeft" style="width:100%">
+ <thead>
+ <tr>
+ <th><input type="checkbox" name="selectAllCheckBox"
onClick="toggleCheck(this)" /></th>
+ <th><fmt:message key="message.contenttype"/></th>
+ <th><fmt:message key="message.messageId"/></th>
+ <th><fmt:message key="message.correlationId"/></th>
+ <th><fmt:message key="message.type"/></th>
+ <th><fmt:message key="message.redelivered"/></th>
+ <th><fmt:message key="message.deliverymode"/></th>
+ <th><fmt:message key="message.priority"/></th>
+ <th><fmt:message key="message.timestamp"/></th>
+ <th><fmt:message key="message.expiration"/></th>
+ <th><fmt:message key="message.properties"/></th>
+ <th><fmt:message key="message.summary"/></th>
+ </tr>
+ </thead>
+ <tbody>
+ <%
+ try {
+ for (Object message : filteredMsgArray) {
+ Message queueMessage = (Message) message;
+ if (queueMessage != null) {
+ String msgProperties =
queueBrowserClient.getMsgProperties(queueMessage);
+ String contentType =
queueBrowserClient.getMsgContentType(queueMessage);
+ String[] messageContent =
queueBrowserClient.getMessageContentAsString(queueMessage);
+ %>
+ <tr>
+ <td><input type="checkbox" name="checkbox"
onClick="checkSelectAll(this)" value="<%= queueMessage.getJMSMessageID()
%>"/></td>
+ <td><img src="images/<%= contentType.toLowerCase()%>.png"
+ alt=""/> <%= contentType%>
+ </td>
+ <td><%= queueMessage.getJMSMessageID()%>
+ </td>
+ <td><%= queueMessage.getJMSCorrelationID()%>
+ </td>
+ <td><%= queueMessage.getJMSType()%>
+ </td>
+ <td><%= queueMessage.getJMSRedelivered()%>
+ </td>
+ <td><%= queueMessage.getJMSDeliveryMode()%>
+ </td>
+ <td><%= queueMessage.getJMSPriority()%>
+ </td>
+ <td><%= queueMessage.getJMSTimestamp()%>
+ </td>
+ <td><%= queueMessage.getJMSExpiration()%>
+ </td>
+ <td><%= msgProperties%>
+ </td>
+ <td><%= messageContent[0]%><a
href="message_content.jsp?message=<%=messageContent[1]%>"> more...</a>
+ </td>
+ </tr>
+
+ <% }
+ }
+
+ } catch (JMSException e) {
+ CarbonUIMessage.sendCarbonUIMessage(e.getMessage(),
CarbonUIMessage.ERROR, request, e);
+ e.printStackTrace();
+ }
+ %>
+ </tbody>
+ </table>
+
+ <%
+ try {
+ queueBrowserClient.closeBrowser();
+ } catch (JMSException e) {
+ CarbonUIMessage.sendCarbonUIMessage(e.getMessage(),
CarbonUIMessage.ERROR, request, e);
+ e.printStackTrace();
+ }
+ %>
+ </div>
+ </div>
+ <div>
+ <form id="deleteForm" name="input"
action="dlc_messages_list.jsp" method="get"><input type="HIDDEN"
+
name="deleteMsg"
+
value=""/>
+
<input type="HIDDEN"
+
name="nameOfQueue"
+
value=""/>
+
<input type="HIDDEN"
+
name="msgList"
+
value=""/></form>
+ <form id="restoreForm" name="input" action="dlc_messages_list.jsp"
method="get"><input type="HIDDEN"
+
name="restoreMsgs"
+
value=""/>
+
<input type="HIDDEN"
+
name="nameOfQueue"
+
value=""/>
+
<input type="HIDDEN"
+
name="msgList"
+
value=""/></form>
+ </div>
+</fmt:bundle>
Index: src/main/resources/web/queues/queue_details.jsp
===================================================================
--- src/main/resources/web/queues/queue_details.jsp (revision 197189)
+++ src/main/resources/web/queues/queue_details.jsp (working copy)
@@ -188,6 +188,7 @@
if (filteredQueueList != null) {
for (Queue queue : filteredQueueList) {
String nameOfQueue = queue.getQueueName();
+ if(nameOfQueue != null &&
!nameOfQueue.equals("DeadLetterChannel")){
%>
<tr>
<td>
@@ -205,6 +206,7 @@
</td>
</tr>
<%
+ }
}
}
%>
Index: src/main/resources/web/queues/dlc_message_delete_ajaxprocessor.jsp
===================================================================
--- src/main/resources/web/queues/dlc_message_delete_ajaxprocessor.jsp
(revision 0)
+++ src/main/resources/web/queues/dlc_message_delete_ajaxprocessor.jsp
(working copy)
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
+<%@page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.andes.stub.AndesAdminServiceStub" %>
+<%@ page import="org.wso2.carbon.andes.ui.UIUtils" %>
+
+<%
+ AndesAdminServiceStub stub = UIUtils.getAndesAdminServiceStub(config,
session, request);
+ String idList = request.getParameter("msgList");
+ String[] idArray = idList.split(",");
+ System.out.println(idList);
+ try{
+ stub.deleteMessagesFromDeadLetterQueue(idArray);
+
+ } catch (Exception e) {
+ CarbonUIMessage uiMsg = new CarbonUIMessage(CarbonUIMessage.ERROR,
e.getMessage(), e);
+ session.setAttribute(CarbonUIMessage.ID, uiMsg);
+ }
+%>
\ No newline at end of file
Index: src/main/resources/web/queues/resources-i18n-ajaxprocessor.jsp
===================================================================
--- src/main/resources/web/queues/resources-i18n-ajaxprocessor.jsp
(revision 0)
+++ src/main/resources/web/queues/resources-i18n-ajaxprocessor.jsp
(working copy)
@@ -0,0 +1,23 @@
+<!--
+ ~ Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights
Reserved.
+ ~
+ ~ WSO2 Inc. licenses this file to you under the Apache License,
+ ~ Version 2.0 (the "License"); you may not use this file except
+ ~ in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<%@ page contentType="text/html;charset=UTF-8" language="java"
pageEncoding="UTF-8" %>
+<%@ taglib prefix="carbon"
uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" %>
+
+<carbon:jsi18n
+ resourceBundle="org.wso2.carbon.andes.ui.i18n.JSResources"
+ request="<%=request%>" namespace="org.wso2.carbon.andes.ui" />
\ No newline at end of file
Index: src/main/resources/web/queues/dlc_queue_details.jsp
===================================================================
--- src/main/resources/web/queues/dlc_queue_details.jsp (revision 0)
+++ src/main/resources/web/queues/dlc_queue_details.jsp (working copy)
@@ -0,0 +1,123 @@
+<%@ page import="org.apache.axis2.AxisFault" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="carbon"
uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" %>
+<%@ page import="org.wso2.carbon.andes.stub.AndesAdminServiceStub" %>
+<%@ page import="org.wso2.carbon.andes.stub.admin.types.Queue" %>
+<%@ page import="org.wso2.carbon.andes.ui.UIUtils" %>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage" %>
+<%@ page import="javax.jms.JMSException" %>
+<%@ page import="javax.naming.NamingException" %>
+<script type="text/javascript" src="js/treecontrol.js"></script>
+<fmt:bundle basename="org.wso2.carbon.andes.ui.i18n.Resources">
+ <carbon:jsi18n
+ resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ request="<%=request%>"/>
+
+ <script type="text/javascript" src="../admin/js/breadcrumbs.js"></script>
+ <script type="text/javascript" src="../admin/js/cookies.js"></script>
+ <script type="text/javascript" src="../admin/js/main.js"></script>
+ <link rel="stylesheet" href="../qpid/css/dsxmleditor.css"/>
+
+ <%
+ AndesAdminServiceStub stub = UIUtils.getAndesAdminServiceStub(config,
session, request);
+ Queue[] filteredQueueList = null;
+ Queue[] queueList;
+ int queueCountPerPage = 20;
+ int pageNumber = 0;
+ int numberOfPages = 1;
+ String concatenatedParams = "region=region1&item=queue_browse";
+ try {
+
+ //TODO- using this for testing purposes. Need to change to
getDLCQueue.
+ //dlcQueue=stub.getAllDLCQueues();
+ queueList = stub.getAllQueues();
+ long totalQueueCount;
+ String pageNumberAsStr = request.getParameter("pageNumber");
+ if (pageNumberAsStr != null) {
+ pageNumber = Integer.parseInt(pageNumberAsStr);
+ }
+
+ if (queueList != null) {
+ totalQueueCount = queueList.length;
+ numberOfPages = (int) Math.ceil(((float) totalQueueCount) /
queueCountPerPage);
+ filteredQueueList = UIUtils.getFilteredQueueList(queueList,
pageNumber * queueCountPerPage, queueCountPerPage);
+ }
+ } catch (Exception e) {
+ CarbonUIMessage.sendCarbonUIMessage(e.getMessage(),
CarbonUIMessage.ERROR, request, e);
+ e.printStackTrace();
+ %>
+
+ <script type="text/javascript">
+ location.href = "../admin/error.jsp";
+ alert("error");
+ </script>
+ <%
+ return;
+ }
+ %>
+
+ <carbon:breadcrumb
+ label="queues.list"
+ resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ topPage="false"
+ request="<%=request%>"/>
+
+ <div id="middle">
+ <h2><fmt:message key="DLC"/></h2>
+
+ <div id="workArea">
+
+ <%
+ if (queueList == null) {
+ %>
+ No queues are created.
+ <%
+ } else {
+
+ %>
+ <input type="hidden" name="pageNumber" value="<%=pageNumber%>"/>
+ <carbon:paginator pageNumber="<%=pageNumber%>"
numberOfPages="<%=numberOfPages%>"
+ page="queue_details.jsp"
pageNumberParameterName="pageNumber"
+
resourceBundle="org.wso2.carbon.andes.ui.i18n.Resources"
+ prevKey="prev" nextKey="next"
+ parameters="<%=concatenatedParams%>"/>
+ <table class="styledLeft" style="width:100%">
+ <thead>
+ <tr>
+ <th><fmt:message key="queue.name"/></th>
+ <th><fmt:message key="queue.messageCount"/></th>
+ <th><fmt:message key="queue.view"/></th>
+ </tr>
+ </thead>
+ <tbody>
+ <%
+ if (filteredQueueList != null) {
+ for (Queue queue : filteredQueueList) {
+ String nameOfQueue = queue.getQueueName();
+ if(nameOfQueue != null &&
nameOfQueue.equals("DeadLetterChannel")){
+ %>
+ <tr>
+ <td>
+ <%=queue.getQueueName()%>
+ </td>
+ <td><%=queue.getMessageCount()%>
+ </td>
+ <td>
+ <a href="javascript:void(null);"
onclick="document.getElementById('dummyForm').submit();">Browse</a>
+ <form id="dummyForm"
action="dlc_messages_list.jsp" method="post">
+ <input type="hidden"
name="nameOfQueue" value="<%=nameOfQueue%>" />
+ </form>
+ </tr>
+ <%
+ }
+ }
+ }
+ %>
+ </tbody>
+ </table>
+ <%
+ }
+ %>
+ </div>
+ </div>
+</fmt:bundle>
Index: src/main/resources/web/queues/dlc_message_restore_ajaxprocessor.jsp
===================================================================
--- src/main/resources/web/queues/dlc_message_restore_ajaxprocessor.jsp
(revision 0)
+++ src/main/resources/web/queues/dlc_message_restore_ajaxprocessor.jsp
(working copy)
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
+<%@page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.andes.stub.AndesAdminServiceStub" %>
+<%@ page import="org.wso2.carbon.andes.ui.UIUtils" %>
+
+<%
+ AndesAdminServiceStub stub = UIUtils.getAndesAdminServiceStub(config,
session, request);
+ String idList = request.getParameter("msgList");
+ String[] idArray = idList.split(",");
+ System.out.println(idList);
+ try{
+ stub.restoreMessagesFromDeadLetterQueue(idArray);
+
+ } catch (Exception e) {
+ CarbonUIMessage uiMsg = new CarbonUIMessage(CarbonUIMessage.ERROR,
e.getMessage(), e);
+ session.setAttribute(CarbonUIMessage.ID, uiMsg);
+ }
+%>
\ No newline at end of file
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev