You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by sc...@apache.org on 2012/08/01 11:59:07 UTC

svn commit: r1367902 - in /rave/trunk: rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/ rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ rave-components/rave-web/src/main/java/org/apache/rave/portal/...

Author: scottbw
Date: Wed Aug  1 09:59:06 2012
New Revision: 1367902

URL: http://svn.apache.org/viewvc?rev=1367902&view=rev
Log:
Implemented a portal preference to set the initial status of all newly-added widgets to "PREVIEW" (default) or "PUBLISHED". See RAVE-742.

Modified:
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/PortalPreferenceKeys.java
    rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java
    rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/model/PortalPreferenceForm.java
    rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java
    rave/trunk/rave-portal-resources/src/main/resources/messages.properties
    rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/preferencedetail.jsp

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/PortalPreferenceKeys.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/PortalPreferenceKeys.java?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/PortalPreferenceKeys.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/util/PortalPreferenceKeys.java Wed Aug  1 09:59:06 2012
@@ -27,4 +27,5 @@ public final class PortalPreferenceKeys 
     public static final String TITLE_SUFFIX = "titleSuffix";
     public static final String PAGE_SIZE = "pageSize";
     public static final String JAVASCRIPT_DEBUG_MODE = "javaScriptDebugMode";
+    public static final String INITIAL_WIDGET_STATUS = "initialWidgetStatus";
 }

Modified: rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java (original)
+++ rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java Wed Aug  1 09:59:06 2012
@@ -228,7 +228,18 @@ public class WidgetStoreController {
             ControllerUtils.addNavItemsToModel(view, model, referringPageId, user);
             return view;
         }
-        widget.setWidgetStatus(WidgetStatus.PREVIEW);
+        
+        /*
+         * By default, a new widget has a status of "PREVIEW", however this can be overridden in portal preferences,
+         * skipping the need for an admin to approve a new widget.
+         */
+        PortalPreference status = preferenceService.getPreference(PortalPreferenceKeys.INITIAL_WIDGET_STATUS);
+        if (status != null && status.getValue().equals("PUBLISHED")){
+			widget.setWidgetStatus(WidgetStatus.PUBLISHED);
+		} else {
+	        widget.setWidgetStatus(WidgetStatus.PREVIEW);
+		}
+        
         widget.setOwner(user);
 
         final Widget storedWidget = widgetService.registerNewWidget(widget);

Modified: rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/model/PortalPreferenceForm.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/model/PortalPreferenceForm.java?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/model/PortalPreferenceForm.java (original)
+++ rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/model/PortalPreferenceForm.java Wed Aug  1 09:59:06 2012
@@ -34,6 +34,7 @@ public class PortalPreferenceForm {
     public static final String DEFAULT_PAGE_SIZE = "10";
     public static final String DEFAULT_TITLE_SUFFIX = "";
     public static final String DEFAULT_JAVASCRIPT_DEBUG_MODE = "1";
+    public static final String DEFAULT_INITIAL_WIDGET_STATUS = "PREVIEW";
 
 
     private Map<String, PortalPreference> preferenceMap;
@@ -54,6 +55,13 @@ public class PortalPreferenceForm {
         if (getJavaScriptDebugMode() == null) {
             preferenceMap.put(JAVASCRIPT_DEBUG_MODE, new PortalPreferenceImpl(JAVASCRIPT_DEBUG_MODE, DEFAULT_JAVASCRIPT_DEBUG_MODE));
         }
+        if (getInitialWidgetStatus() == null){
+        	preferenceMap.put(DEFAULT_INITIAL_WIDGET_STATUS, new PortalPreferenceImpl(INITIAL_WIDGET_STATUS, DEFAULT_INITIAL_WIDGET_STATUS));
+        }
+    }
+    
+    public PortalPreference getInitialWidgetStatus(){
+    	return preferenceMap.get(INITIAL_WIDGET_STATUS);
     }
 
     public PortalPreference getPageSize() {
@@ -87,4 +95,8 @@ public class PortalPreferenceForm {
     public void setPreferenceMap(Map<String, PortalPreference> preferenceMap) {
         this.preferenceMap = preferenceMap;
     }
+    
+    public void setInitialWidgetStatus(PortalPreference initialWidgetStatus){
+    	preferenceMap.put(INITIAL_WIDGET_STATUS, initialWidgetStatus);
+    }
 }

Modified: rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java (original)
+++ rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/WidgetStoreControllerTest.java Wed Aug  1 09:59:06 2012
@@ -83,6 +83,7 @@ public class WidgetStoreControllerTest {
         replay(userService);
 
         PortalPreferenceService preferenceService = createMock(PortalPreferenceService.class);
+        expect(preferenceService.getPreference(PortalPreferenceKeys.INITIAL_WIDGET_STATUS)).andReturn(null);
         expect(preferenceService.getPreference(PortalPreferenceKeys.PAGE_SIZE)).andReturn(null);
         replay(preferenceService);
 

Modified: rave/trunk/rave-portal-resources/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/resources/messages.properties?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/resources/messages.properties (original)
+++ rave/trunk/rave-portal-resources/src/main/resources/messages.properties Wed Aug  1 09:59:06 2012
@@ -268,6 +268,9 @@ admin.preferences.title=Rave admin inter
 admin.preferences.shorttitle=Preferences
 admin.preferences.edit=Edit preferences
 admin.preferencedetail.title=Rave admin interface - Preferences
+admin.preferencedetail.initialWidgetStatus=Initial status to use for new widgets
+admin.preferencedetail.initialWidgetStatus.preview=PREVIEW
+admin.preferencedetail.initialWidgetStatus.published=PUBLISHED
 admin.preferencedetail.titleSuffix=Page title suffix
 admin.preferencedetail.pageSize=Number of items per page (list)
 admin.preferencedetail.pageSize.malformed=Enter a whole number greater than 0

Modified: rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/preferencedetail.jsp
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/preferencedetail.jsp?rev=1367902&r1=1367901&r2=1367902&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/preferencedetail.jsp (original)
+++ rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/preferencedetail.jsp Wed Aug  1 09:59:06 2012
@@ -77,6 +77,20 @@
 	                            <form:errors path="javaScriptDebugMode.value" cssClass="error"/>
 	                        </spring:bind>
 	                    </div>
+	                   <div class="control-group">
+	                        <spring:bind path="initialWidgetStatus.value">
+	                            <form:label path="initialWidgetStatus.value" class="control-label">
+	                            	<fmt:message key="admin.preferencedetail.initialWidgetStatus"/> *
+	                            </form:label>
+	                            <div class="controls">
+	                                <form:select id="initialWidgetStatus" path="initialWidgetStatus.value">
+	                                    <form:option value="PREVIEW"><fmt:message key="admin.preferencedetail.initialWidgetStatus.preview"/></form:option>
+	                                    <form:option value="PUBLISHED"><fmt:message key="admin.preferencedetail.initialWidgetStatus.published"/></form:option>
+	                                </form:select>
+	                            </div>
+	                            <form:errors path="javaScriptDebugMode.value" cssClass="error"/>
+	                        </spring:bind>
+	                    </div>
 	                    <fieldset>
 	                        <fmt:message key="admin.preferencedetail.updateButton" var="updateButtonText"/>
 	                        <button class="btn btn-primary" type="submit" value="${updateButtonText}">${updateButtonText}</button>