From e70713991e099a02a5ff682c47feeba42b927112 Mon Sep 17 00:00:00 2001
From: Fabiano Sluzarski <fs09@inf.ufpr.br>
Date: Mon, 10 Feb 2014 11:40:33 -0200
Subject: [PATCH] changed view list layout

---
 .../WEB-INF/tags/form/fields/table.tagx       | 104 ++++++++++++++++--
 .../WEB-INF/tags/util/load-scripts.tagx       |   2 +-
 2 files changed, 97 insertions(+), 9 deletions(-)

diff --git a/src/main/webapp/WEB-INF/tags/form/fields/table.tagx b/src/main/webapp/WEB-INF/tags/form/fields/table.tagx
index f249b6d..743f8a5 100644
--- a/src/main/webapp/WEB-INF/tags/form/fields/table.tagx
+++ b/src/main/webapp/WEB-INF/tags/form/fields/table.tagx
@@ -44,6 +44,8 @@
     <table>
       <thead>
         <tr>
+          <th></th>
+          <spring:eval var="colCounter" expression="colCounter  + 1" />
           <c:forTokens items="${columnLabels}" delims="${'&#9999;'}" var="columnHeading">
             <th>
               <c:out value="${columnHeading}" />
@@ -51,18 +53,28 @@
             </th>
           </c:forTokens>
           <th></th>
-          <c:if test="${update}">
+          <!-- <c:if test="${update}">
             <th></th>
             <spring:eval var="colCounter" expression="colCounter  + 1" />
           </c:if>
           <c:if test="${delete}">
             <th></th>
             <spring:eval var="colCounter" expression="colCounter  + 1" />
-          </c:if>
+          </c:if> -->
         </tr>
       </thead>
+      <spring:eval var="radioId" expression="1" />
+      <c:set var="control" value="true" />
       <c:forEach items="${data}" var="item">
         <tr>
+          <c:set var="itemId"><spring:eval expression="item[typeIdFieldName]"/></c:set>
+          <td class="utilbox">
+            <input type="radio" id="${radioId}" name="radioButton" value="${itemId}"/>
+            <script type="text/javascript">
+	   		  Spring.addDecoration(new Spring.ElementDecoration({elementId : '${radioId}', widgetType: 'dijit.form.RadioButton', widgetAttrs : {}}));
+   			</script>
+            <spring:eval var="radioId" expression="radioId + 1" />
+          </td>
           <c:forTokens items="${columnProperties}" delims="${'&#9999;'}" var="column" varStatus="num">
             <c:set var="columnMaxLength" value="${lengths[num.count-1]}" />
             <c:set var="columnType" value="${types[num.count-1]}" />
@@ -91,8 +103,51 @@
               <c:out value="${colTxt}" />
             </td>
           </c:forTokens>
-          <c:set var="itemId"><spring:eval expression="item[typeIdFieldName]"/></c:set>
-          <td class="utilbox">
+          
+          <c:if test="${control}">
+	        <td rowspan="${fn:length(data)}" class="utilbox" valign="top">
+            
+            <spring:url value="/resources/images/show.png" var="show_image_url" />
+            <spring:message arguments="${typeName}" code="entity_show" var="show_label" htmlEscape="false" />
+            <a onclick="showRedirect()" alt="${fn:escapeXml(show_label)}" title="${fn:escapeXml(show_label)}">
+              <img alt="${fn:escapeXml(show_label)}" class="image" src="${show_image_url}" title="${fn:escapeXml(show_label)}" />
+            </a>
+            <br/>
+          
+            <c:if test="${update}">
+              <spring:url value="/resources/images/update.png" var="update_image_url" />
+              <spring:message arguments="${typeName}" code="entity_update" var="update_label" htmlEscape="false" />
+              <a onclick="updateRedirect()" alt="${fn:escapeXml(update_label)}" title="${fn:escapeXml(update_label)}">
+                <img alt="${fn:escapeXml(update_label)}" class="image" src="${update_image_url}" title="${fn:escapeXml(update_label)}" />
+              </a>
+            </c:if>
+          
+            <c:if test="${delete}">
+              <spring:url value="${path}/${itemId}" var="delete_form_url" />
+              <spring:url value="/resources/images/delete.png" var="delete_image_url" />
+              <form:form name="deleteForm" action="" method="DELETE">
+                <spring:message arguments="${typeName}" code="entity_delete" var="delete_label" htmlEscape="false" />
+                <c:set var="delete_confirm_msg">
+                  <!-- <spring:escapeBody javaScriptEscape="true"> -->
+                    <spring:message code="entity_delete_confirm" htmlEscape="false" />
+                  <!-- </spring:escapeBody> -->
+                </c:set>
+                <input alt="${fn:escapeXml(delete_label)}" class="image" src="${delete_image_url}" title="${fn:escapeXml(delete_label)}" type="image" value="${fn:escapeXml(delete_label)}" onclick="return deleteRedirect();"/>
+                <c:if test="${not empty param.page}">
+                  <input name="page" type="hidden" value="1" />
+                </c:if>
+                <c:if test="${not empty param.size}">
+                  <input name="size" type="hidden" value="${fn:escapeXml(param.size)}" />
+                </c:if>
+              </form:form>
+            </c:if>
+            
+            </td>
+            <c:set var="control" value="false" />
+    	  </c:if>
+    	  
+          <!-- <c:set var="itemId"><spring:eval expression="item[typeIdFieldName]"/></c:set> -->
+          <!-- <td class="utilbox">
             <spring:url value="${path}/${itemId}" var="show_form_url" />
             <spring:url value="/resources/images/show.png" var="show_image_url" />
             <spring:message arguments="${typeName}" code="entity_show" var="show_label" htmlEscape="false" />
@@ -118,11 +173,11 @@
               <spring:url value="/resources/images/delete.png" var="delete_image_url" />
               <form:form action="${delete_form_url}" method="DELETE">
                 <spring:message arguments="${typeName}" code="entity_delete" var="delete_label" htmlEscape="false" />
-                <c:set var="delete_confirm_msg">
+                <c:set var="delete_confirm_msg"> -->
                   <!-- <spring:escapeBody javaScriptEscape="true"> -->
-                    <spring:message code="entity_delete_confirm" htmlEscape="false" />
+          <!--           <spring:message code="entity_delete_confirm" htmlEscape="false" /> -->
                   <!-- </spring:escapeBody> -->
-                </c:set>
+                <!-- </c:set>
                 <input alt="${fn:escapeXml(delete_label)}" class="image" src="${delete_image_url}" title="${fn:escapeXml(delete_label)}" type="image" value="${fn:escapeXml(delete_label)}" onclick="return confirm('${delete_confirm_msg}');" />
                 <c:if test="${not empty param.page}">
                   <input name="page" type="hidden" value="1" />
@@ -132,7 +187,7 @@
                 </c:if>
               </form:form>
             </td>
-          </c:if>
+          </c:if> -->
         </tr>
       </c:forEach>
       <tr class="footer">
@@ -156,6 +211,39 @@
         </td>
       </tr>
     </table>
+    
+    <script type="text/javascript">
+    function showRedirect(){
+        var radioElements = document.getElementsByName("radioButton");
+        
+        for (var i=0; i &lt; radioElements.length; i++)
+        	if(radioElements[i].checked == true) {
+                var pathHeader = window.location.href.substring(0,window.location.href.lastIndexOf("${path}"));
+        		window.location.href=pathHeader+"${path}/"+radioElements[i].value;
+        	}
+    }
+    
+    function updateRedirect(){
+        var radioElements = document.getElementsByName("radioButton");
+        
+        for (var i=0; i &lt; radioElements.length; i++)
+        	if(radioElements[i].checked == true) {
+                var pathHeader = window.location.href.substring(0,window.location.href.lastIndexOf("${path}"));
+        		window.location.href=pathHeader+"${path}/"+radioElements[i].value+"?form";
+        	}
+    }
+    
+    function deleteRedirect(){
+        var radioElements = document.getElementsByName("radioButton");
+        
+        for (var i=0; i &lt; radioElements.length; i++)
+        	if(radioElements[i].checked == true) {
+                var pathHeader = window.location.href.substring(0,window.location.href.lastIndexOf("${path}"));
+        		document.deleteForm.action = pathHeader+"${path}/"+radioElements[i].value;
+        		return confirm('${delete_confirm_msg}');
+        	}
+    }
+    </script>
 
   </c:if>
 
diff --git a/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx b/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
index 2d83623..50c11fa 100644
--- a/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
+++ b/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
@@ -36,5 +36,5 @@
   <script src="${fixed_checkedmultiselect_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
   
   <script language="JavaScript" type="text/javascript">dojo.require("dojo.parser");</script>
-
+  
 </jsp:root>
\ No newline at end of file
-- 
GitLab