Repository: activemq
Updated Branches:
  refs/heads/trunk 7b555c289 -> c8402a6e3


AMD-4175: applied patch from Torbjørn Skyberg Knutsen: added webconsole retry 
operations for messages on "DLQ." and "DLT." destinations; sort queue names for 
move or copy operations.  Also added confirmation dialogs for all message 
operations not already covered.


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/c8402a6e
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/c8402a6e
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/c8402a6e

Branch: refs/heads/trunk
Commit: c8402a6e34d85f5ada7685f56983fb5501358baa
Parents: 7b555c2
Author: artnaseef <a...@artnaseef.com>
Authored: Sat Feb 15 18:59:23 2014 -0700
Committer: artnaseef <a...@artnaseef.com>
Committed: Sat Feb 15 19:08:33 2014 -0700

----------------------------------------------------------------------
 activemq-web-console/src/main/webapp/browse.jsp | 27 +++++++-
 .../src/main/webapp/message.jsp                 | 66 ++++++++++++++++++--
 2 files changed, 88 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/c8402a6e/activemq-web-console/src/main/webapp/browse.jsp
----------------------------------------------------------------------
diff --git a/activemq-web-console/src/main/webapp/browse.jsp 
b/activemq-web-console/src/main/webapp/browse.jsp
index 4eb19eb..8f40f5a 100644
--- a/activemq-web-console/src/main/webapp/browse.jsp
+++ b/activemq-web-console/src/main/webapp/browse.jsp
@@ -60,7 +60,32 @@
     <a href="<c:url value="deleteMessage.action">
                  <c:param name="JMSDestination" 
value="${requestContext.queueBrowser.JMSDestination}"/>
                  <c:param name="messageId" value="${row.JMSMessageID}"/>
-                 <c:param name="secret" 
value='${sessionScope["secret"]}'/></c:url>">Delete</a>
+                 <c:param name="secret" 
value='${sessionScope["secret"]}'/></c:url>"
+       onclick="return confirm('Are you sure you want to delete this 
message?')"
+    >Delete</a>
+       
+    <c:set var="queueName" 
value="${requestContext.queueBrowser.JMSDestination}"/>
+    <!-- <c:set var="queueName" value="${fn:replace(queueName, 'queue://', 
'')}" /> -->
+    <c:set var="queueNameSubStr" value="${fn:substring(queueName, 0, 4)}" />
+    
+    <c:if test="${queueNameSubStr eq 'DLQ.' || queueNameSubStr eq 'DLT.'}">
+        <c:if test="${queueNameSubStr eq 'DLQ.'}">
+            <c:set var="moveToQueue" value="${fn:replace(queueName, 'DLQ.', 
'')}" />
+        </c:if>
+        <c:if test="${queueNameSubStr eq 'DLT.'}">
+            <c:set var="moveToQueue" value="${fn:replace(queueName, 'DLT.', 
'')}" />
+        </c:if>
+        <a href="<c:url value="moveMessage.action">
+                     <c:param name="destination" value="${moveToQueue}" />
+                     <c:param name="JMSDestination" 
value="${requestContext.queueBrowser.JMSDestination}" />
+                     <c:param name="messageId" value="${row.JMSMessageID}" />
+                     <c:param name="JMSDestinationType" value="queue" />
+                     <c:param name="secret" value='${sessionScope["secret"]}' 
/>
+                 </c:url>"
+                 onclick="return confirm('Are you sure you want to retry this 
message on queue://<c:out value="${moveToQueue}"/>?')"
+                 title="Move to <c:out value="${moveToQueue}" /> to attempt 
reprocessing"
+        >Retry</a>
+    </c:if>
 </td>
 </tr>
 </jms:forEachMessage>

http://git-wip-us.apache.org/repos/asf/activemq/blob/c8402a6e/activemq-web-console/src/main/webapp/message.jsp
----------------------------------------------------------------------
diff --git a/activemq-web-console/src/main/webapp/message.jsp 
b/activemq-web-console/src/main/webapp/message.jsp
index 22174a8..ea04456 100644
--- a/activemq-web-console/src/main/webapp/message.jsp
+++ b/activemq-web-console/src/main/webapp/message.jsp
@@ -115,7 +115,6 @@ No message could be found for ID <c:out 
value="${requestContext.messageQuery.id}
                             <td class="label"><c:out value="${prop.key}"/></td>
                             <td><c:out value="${prop.value}"/></td>
                         </tr>
-                        <tr>
                     </form:forEachMapEntry>
                 </tbody>
             </table>
@@ -133,8 +132,31 @@ No message could be found for ID <c:out 
value="${requestContext.messageQuery.id}
                 </thead>
                 <tbody>
                     <tr>
-                        <td colspan="2"><a href="<c:url 
value="deleteMessage.action?JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&secret=${sessionScope['secret']}"
 />">Delete</a></td>
-                    </tr>
+                        <td colspan="2"><a href="<c:url 
value='deleteMessage.action?JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&secret=${sessionScope["secret"]}'
 />" onclick="return confirm('Are you sure you want to delete the message?')" 
>Delete</a></td>
+                    </tr>
+                    <c:set var="queueName" 
value="${requestContext.messageQuery.JMSDestination}"/>
+                    <c:set var="queueNameSubStr" 
value="${fn:substring(queueName, 0, 4)}" />
+                    <c:if test="${queueNameSubStr eq 'DLQ.' || queueNameSubStr 
eq 'DLT.'}">
+                        <c:if test="${queueNameSubStr eq 'DLQ.'}">
+                            <c:set var="moveToQueue" 
value="${fn:replace(queueName, 'DLQ.', '')}" />
+                        </c:if>
+                        <c:if test="${queueNameSubStr eq 'DLT.'}">
+                            <c:set var="moveToQueue" 
value="${fn:replace(queueName, 'DLT.', '')}" />
+                        </c:if>
+                        <tr>
+                            <td colspan="2">
+                                <a href="<c:url value="moveMessage.action">
+                                             <c:param name="destination" 
value="${moveToQueue}" />
+                                             <c:param name="JMSDestination" 
value="${requestContext.messageQuery.JMSDestination}" />
+                                             <c:param name="messageId" 
value="${row.JMSMessageID}" />
+                                             <c:param 
name="JMSDestinationType" value="queue" />
+                                             <c:param name="secret" 
value='${sessionScope["secret"]}' />
+                                         </c:url>"
+                                         onclick="return confirm('Are you sure 
you want to retry this message on queue://<c:out value="${moveToQueue}"/>?')"
+                                         title="Move to <c:out 
value="$moveToQueue" /> to attempt reprocessing">Retry</a>
+                            </td>
+                        </tr>
+                    </c:if>
                     <tr class="odd">
                     <td><a href="<c:url 
value="javascript:confirmAction('queue', 
'copyMessage.action?destination=%target%&JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']}"/>')">Copy</a></td>
                         <td rowspan="2">
@@ -150,7 +172,8 @@ No message could be found for ID <c:out 
value="${requestContext.messageQuery.id}
 
                     </tr>
                     <tr class="odd">
-                        <td><a href="<c:url 
value="javascript:confirmAction('queue', 
'moveMessage.action?destination=%target%&JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']}"/>')">Move</a></td>
+                        <td><a href="<c:url 
value="javascript:confirmAction('queue', 
'moveMessage.action?destination=%target%&JMSDestination=${requestContext.messageQuery.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue&secret=${sessionScope['secret']})"/>"
+                            >Move</a></td>
                     </tr>
                 </tbody>
             </table>
@@ -179,6 +202,41 @@ No message could be found for ID <c:out 
value="${requestContext.messageQuery.id}
 </c:otherwise>
 </c:choose>
 
+<script type="text/javascript">
+function sortSelect(selElem) {
+        var tmpAry = new Array();
+        for (var i=0;i<selElem.options.length;i++) {
+            tmpAry[i] = new Array();
+            tmpAry[i][0] = selElem.options[i].text;
+            tmpAry[i][1] = selElem.options[i].value;
+        }
+        tmpAry.sort();
+        while (selElem.options.length > 0) {
+            selElem.options[0] = null;
+        }
+        for (var i=0;i<tmpAry.length;i++) {
+            var op = new Option(tmpAry[i][0], tmpAry[i][1]);
+            selElem.options[i] = op;
+        }
+        return;
+}
+
+function selectOptionByText (selElem, selText) {
+    var iter = 0;
+    while ( iter < selElem.options.length ) {
+        if ( selElem.options[iter].text === selText ) {
+            selElem.selectedIndex = iter;
+            break;
+        }
+        iter++;
+    }
+}
+
+window.onload=function() {
+       sortSelect( document.getElementById('queue') );
+       selectOptionByText( document.getElementById('queue'), "-- Please select 
--" );
+}
+</script>
 
 
 <%@include file="decorators/footer.jsp" %>

Reply via email to