svn commit: r1845572 - in /ofbiz/ofbiz-framework/trunk/framework/webtools: config/ src/main/java/org/apache/ofbiz/webtools/ webapp/webtools/WEB-INF/ widget/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1845572 - in /ofbiz/ofbiz-framework/trunk/framework/webtools: config/ src/main/java/org/apache/ofbiz/webtools/ webapp/webtools/WEB-INF/ widget/

rishi
Author: rishi
Date: Fri Nov  2 11:18:52 2018
New Revision: 1845572

URL: http://svn.apache.org/viewvc?rev=1845572&view=rev
Log:
Improved: Introduce ability to clear specific cache from cache maintenance. After this user can bulk select the caches and clear them. Single clear and all clear caches works as is.
(OFBIZ-10402)
Thanks to Yogesh Naroliya for providing the patch and Suraj Khurana for reporting the ticket.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/webtools/config/WebtoolsUiLabels.xml
    ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/UtilCacheEvents.java
    ofbiz/ofbiz-framework/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
    ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheForms.xml
    ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheScreens.xml
    ofbiz/ofbiz-framework/trunk/framework/webtools/widget/Menus.xml

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/config/WebtoolsUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/config/WebtoolsUiLabels.xml?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/config/WebtoolsUiLabels.xml (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/config/WebtoolsUiLabels.xml Fri Nov  2 11:18:52 2018
@@ -1150,6 +1150,9 @@
         <value xml:lang="zh">清除这个缓存</value>
         <value xml:lang="zh-TW">清除這個快取</value>
     </property>
+    <property key="WebtoolsClearSelectedCaches">
+        <value xml:lang="en">Clear Selected Caches</value>
+    </property>
     <property key="WebtoolsCompanyName">
         <value xml:lang="de">OFBiz: Web Tools</value>
         <value xml:lang="en">OFBiz: Web Tools</value>

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/UtilCacheEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/UtilCacheEvents.java?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/UtilCacheEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/src/main/java/org/apache/ofbiz/webtools/UtilCacheEvents.java Fri Nov  2 11:18:52 2018
@@ -17,10 +17,7 @@
  * under the License.
  *******************************************************************************/
 package org.apache.ofbiz.webtools;
-
-import java.util.Iterator;
-import java.util.Locale;
-
+import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -170,6 +167,56 @@ public final class UtilCacheEvents {
         request.setAttribute("_EVENT_MESSAGE_", errMsg + " (" + UtilDateTime.nowDateString("yyyy-MM-dd HH:mm:ss")  + ").");
         return "success";
     }
+    
+    /** An HTTP WebEvent handler that clears the selected caches
+     * @param request The HTTP request object for the current JSP or Servlet request.
+     * @param response The HTTP response object for the current JSP or Servlet request.
+     * @return return an HTTP WebEvent handler that clears all caches
+     */
+    public static String clearSelectedCachesEvent(HttpServletRequest request, HttpServletResponse response) {
+
+        String errMsg = "";
+        Locale locale = UtilHttp.getLocale(request);
+
+        Security security = (Security) request.getAttribute("security");
+        if (!security.hasPermission("UTIL_CACHE_EDIT", request.getSession())) {
+            errMsg = UtilProperties.getMessage(err_resource, "utilCacheEvents.permissionEdit", locale) + ".";
+            request.setAttribute("_ERROR_MESSAGE_", errMsg);
+            return "error";
+        }
+
+        Map<String, Object> ctx = UtilHttp.getParameterMap(request);
+        boolean isSelected;
+        List<String> eventList = new LinkedList<>();
+        int rowCount = UtilHttp.getMultiFormRowCount(ctx);
+        for (int i = 0; i < rowCount; i++) {
+            String suffix = UtilHttp.getMultiRowDelimiter() + i;
+            isSelected = (ctx.containsKey("_rowSubmit" + suffix) && "Y".equalsIgnoreCase((String)ctx.get("_rowSubmit" + suffix)));
+            if (!isSelected) {
+                continue;
+            }
+
+            String name = request.getParameter("cacheName"+suffix);
+
+            if (name == null) {
+                errMsg = UtilProperties.getMessage(err_resource, "utilCache.couldNotClearCache", locale) + ".";
+                eventList.add(errMsg);
+            }
+
+            UtilCache<?, ?> utilCache = UtilCache.findCache(name);
+
+            if (utilCache != null) {
+                utilCache.clear();
+                errMsg = UtilProperties.getMessage(err_resource, "utilCache.clearCache", UtilMisc.toMap("name", name), locale) + ".";
+                eventList.add(errMsg);
+            } else {
+                errMsg = UtilProperties.getMessage(err_resource, "utilCache.couldNotClearCacheNotFoundName", UtilMisc.toMap("name", name), locale) + ".";
+                eventList.add(errMsg);
+            }
+        }
+        request.setAttribute("_EVENT_MESSAGE_LIST_", eventList);
+        return "success";
+    }
 
     /** An HTTP WebEvent handler that updates the named cache
      * @param request The HTTP request object for the current JSP or Servlet request.

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Fri Nov  2 11:18:52 2018
@@ -179,6 +179,12 @@ under the License.
         <response name="success" type="view" value="FindUtilCache"/>
         <response name="error" type="view" value="FindUtilCache"/>
     </request-map>
+    <request-map uri="ClearSelectedCaches">
+        <security https="true" auth="true"/>
+        <event type="java" path="org.apache.ofbiz.webtools.UtilCacheEvents" invoke="clearSelectedCachesEvent"/>
+        <response name="success" type="view" value="FindUtilCache"/>
+        <response name="error" type="view" value="FindUtilCache"/>
+    </request-map>
     <request-map uri="ForceGarbageCollection">
         <security https="true" auth="true"/>
         <event type="service" invoke="forceGarbageCollection"/>

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheForms.xml?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheForms.xml (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheForms.xml Fri Nov  2 11:18:52 2018
@@ -28,7 +28,10 @@ under the License.
         <field name="usedMemory" title="${uiLabelMap.WebtoolsUsedMemory}"><display/></field>
         <field name="totalCacheMemory" title="${uiLabelMap.WebtoolsCacheMemory}"><display/></field>
     </form>
-    <grid name="ListCache" list-name="cacheList" paginate-target="FindUtilCache" separate-columns="true" odd-row-style="alternate-row" default-table-style="basic-table hover-bar" header-row-style="header-row-2">
+
+    <form name="ListCache" type="multi" title="" list-name="cacheList" target="ClearSelectedCaches" paginate-target="FindUtilCache"
+          odd-row-style="alternate-row" default-table-style="basic-table hover-bar" >
+        <field name="_rowSubmit" use-when="hasUtilCacheEdit" title="${uiLabelMap.CommonSelectAll}"><check/></field>
         <field name="cacheName" title="${uiLabelMap.WebtoolsCacheName}" sort-field="true"><display/></field>
         <field name="cacheSize" title="${uiLabelMap.WebtoolsSize}" sort-field="true"><display/></field>
         <field name="hitCount" title="${uiLabelMap.WebtoolsHits}" sort-field="true"><display/></field>
@@ -38,8 +41,22 @@ under the License.
         <field name="expireTime" title="${uiLabelMap.WebtoolsExpireTime}" sort-field="true"><display/></field>
         <field name="useSoftReference" title="${uiLabelMap.WebtoolsUseSoftRef}" sort-field="true"><display/></field>
         <field name="cacheMemory" title="${uiLabelMap.WebtoolsCacheMemory}" sort-field="true"><display/></field>
-        <field name="cacheMenu" title=" " use-when="hasUtilCacheEdit"><include-menu name="ListCacheForm" location="component://webtools/widget/Menus.xml"/></field>
-    </grid>
+        <field name="findUtilCacheElements" title=" " use-when="hasUtilCacheEdit" widget-style="buttontext">
+            <hyperlink description="${uiLabelMap.WebtoolsElements}" target="FindUtilCacheElements" >
+                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
+            </hyperlink>
+        </field>
+        <field name="EditUtilCache" title=" " use-when="hasUtilCacheEdit" widget-style="buttontext" >
+            <hyperlink description="${uiLabelMap.CommonEdit}" target="EditUtilCache" >
+                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
+            </hyperlink>
+        </field>
+        <field name="FindUtilCacheClear" title=" " use-when="hasUtilCacheEdit" widget-style="buttontext">
+            <hyperlink description="${uiLabelMap.CommonClear}" target="FindUtilCacheClear" >
+                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
+            </hyperlink>
+        </field>
+    </form>
 
     <grid name="ListCacheElements" list-name="cacheElementsList" paginate-target="FindUtilCacheElements" separate-columns="true" odd-row-style="alternate-row" default-table-style="basic-table hover-bar" header-row-style="header-row-2">
         <field name="elementKey" title="${uiLabelMap.WebtoolsCacheElementKey}" sort-field="true"><display/></field>

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheScreens.xml?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheScreens.xml (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/widget/CacheScreens.xml Fri Nov  2 11:18:52 2018
@@ -41,7 +41,7 @@ under the License.
                                 </screenlet>
                                 <screenlet>
                                     <include-menu name="FindCache" location="component://webtools/widget/Menus.xml"/>
-                                    <include-grid name="ListCache" location="component://webtools/widget/CacheForms.xml"/>
+                                    <include-form name="ListCache" location="component://webtools/widget/CacheForms.xml"/>
                                     <include-menu name="FindCache" location="component://webtools/widget/Menus.xml"/>
                                 </screenlet>
                             </widgets>

Modified: ofbiz/ofbiz-framework/trunk/framework/webtools/widget/Menus.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webtools/widget/Menus.xml?rev=1845572&r1=1845571&r2=1845572&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webtools/widget/Menus.xml (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webtools/widget/Menus.xml Fri Nov  2 11:18:52 2018
@@ -144,23 +144,6 @@ under the License.
             <link target="FindUtilCache"/>
         </menu-item>
     </menu>
-    <menu name="ListCacheForm" extends="CommonInlineBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
-        <menu-item name="findUtilCacheElements" title="${uiLabelMap.WebtoolsElements}">
-            <link target="FindUtilCacheElements">
-                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
-            </link>
-        </menu-item>
-        <menu-item name="EditUtilCache" title="${uiLabelMap.CommonEdit}">
-            <link target="EditUtilCache">
-                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
-            </link>
-        </menu-item>
-        <menu-item name="FindUtilCacheClear" title="${uiLabelMap.CommonClear}">
-            <link target="FindUtilCacheClear" link-type="hidden-form">
-                <parameter param-name="UTIL_CACHE_NAME" from-field="cacheName"/>
-            </link>
-        </menu-item>
-    </menu>
 
     <menu name="ArtifactTabBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml"
           selected-menuitem-context-field-name="tabButtonItem">
@@ -287,6 +270,9 @@ under the License.
         <menu-item name="forceGarbageCollection" title="${uiLabelMap.WebtoolsRunGC}">
             <link target="ForceGarbageCollection"/>
         </menu-item>
+        <menu-item name="clearSelectedCaches" title="${uiLabelMap.WebtoolsClearSelectedCaches}">
+            <link target="javascript: document.ListCache.submit()" url-mode="plain"/>
+        </menu-item>
     </menu>
 
     <menu name="CacheElements" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml">