You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ca...@apache.org on 2011/12/22 18:18:15 UTC
svn commit: r1222358 - in /incubator/rave/trunk:
rave-portal-resources/src/main/resources/
rave-portal-resources/src/main/webapp/WEB-INF/tags/
rave-portal-resources/src/main/webapp/css/
rave-portal-resources/src/main/webapp/script/ rave-portal-resource...
Author: carlucci
Date: Thu Dec 22 17:18:15 2011
New Revision: 1222358
URL: http://svn.apache.org/viewvc?rev=1222358&view=rev
Log:
RAVE-394: Create an item in the Widget menu to go directly to its Widget Detail page
Modified:
incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties
incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css
incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js
incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js
incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js
incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveSpec.js
incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
incubator/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
Modified: incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties Thu Dec 22 17:18:15 2011
@@ -208,6 +208,7 @@ widget.widgetStatus.PUBLISHED=
widget.chrome.toggle=Collapse/Restore Widget
+widget.menu.about=About this Widget
widget.menu.delete=Delete Widget
widget.menu.editprefs=Edit Preferences
widget.menu.maximize=Maximize
Modified: incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties Thu Dec 22 17:18:15 2011
@@ -208,6 +208,7 @@ widget.widgetStatus.PUBLISHED=
widget.chrome.toggle=In-/uitklappen widget
+widget.menu.about=Over deze Widget
widget.menu.delete=Verwijder widget
widget.menu.editprefs=Pas voorkeursinstellingen aan
widget.menu.maximize=Maximaliseer
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag Thu Dec 22 17:18:15 2011
@@ -63,6 +63,9 @@ Template for rendering a RegionWidget in
<div id="widget-${regionWidget.entityId}-menu-delete-item" class="widget-menu-item">
<fmt:message key="widget.menu.delete"/>
</div>
+ <div id="widget-${regionWidget.entityId}-menu-about-item" class="widget-menu-item widget-menu-item-divider">
+ <fmt:message key="widget.menu.about"/>
+ </div>
</div>
</div>
<%-- the minimize widget button, which is hidden by default and only displays in maximized view --%>
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css Thu Dec 22 17:18:15 2011
@@ -817,6 +817,11 @@ span.error, label.error {
.widget-menu-item-disabled {
color: #D3D3D3;
}
+
+.widget-menu-item-divider {
+ border-top: 1px solid #000000;
+}
+
.widget-menu-button {
cursor: pointer;
}
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js Thu Dec 22 17:18:15 2011
@@ -156,7 +156,7 @@ var rave = rave || (function() {
function initMobileWidgetUI() {
$(".widget-wrapper").each(function(){
var widgetId = extractObjectIdFromElementId($(this).attr("id"));
- var widget = rave.getWidgetById(widgetId);
+ var widget = rave.getRegionWidgetById(widgetId);
// init the collapse/restore toggle for the title bar
$(this).find(".widget-title-bar-mobile").click({id: widgetId}, toggleCollapseAction);
@@ -183,7 +183,7 @@ var rave = rave || (function() {
$("#widget-" + regionWidgetId + "-min").show();
// hide the collapse/restore toggle icon in canvas mode
$("#widget-" + regionWidgetId + "-collapse").hide();
- var widget = rave.getWidgetById(regionWidgetId);
+ var widget = rave.getRegionWidgetById(regionWidgetId);
if(typeof widget != "undefined" && isFunction(widget.maximize)) {
widget.maximize();
}
@@ -201,7 +201,7 @@ var rave = rave || (function() {
$("#widget-" + regionWidgetId + "-widget-menu-wrapper").show();
// show the collapse/restore toggle icon
$("#widget-" + regionWidgetId + "-collapse").show();
- var widget = rave.getWidgetById(regionWidgetId);
+ var widget = rave.getRegionWidgetById(regionWidgetId);
// if the widget is collapsed execute the collapse function
// otherwise execute the minimize function
if(typeof widget != "undefined"){
@@ -215,7 +215,7 @@ var rave = rave || (function() {
function toggleCollapseAction(args) {
var regionWidgetId = args.data.id;
- var widget = getWidgetById(regionWidgetId);
+ var widget = getRegionWidgetById(regionWidgetId);
// toggle the collapse state of the widget
var newCollapsedValue = !widget.collapsed;
var functionArgs = {"regionWidgetId": regionWidgetId, "collapsed": newCollapsedValue};
@@ -247,7 +247,7 @@ var rave = rave || (function() {
function doWidgetUiCollapse(args) {
// update the in-memory widget with the new collapsed status
- rave.getWidgetById(args.regionWidgetId).collapsed = args.collapsed;
+ rave.getRegionWidgetById(args.regionWidgetId).collapsed = args.collapsed;
// toggle the collapse/restore icon
rave.toggleCollapseWidgetIcon(args.regionWidgetId);
@@ -308,7 +308,7 @@ var rave = rave || (function() {
}
function editPrefsAction(regionWidgetId) {
- var regionWidget = getWidgetById(regionWidgetId);
+ var regionWidget = getRegionWidgetById(regionWidgetId);
var userPrefs = regionWidget.metadata.userPrefs;
var hasRequiredUserPrefs = false;
@@ -400,7 +400,7 @@ var rave = rave || (function() {
}
function saveEditPrefsAction(args) {
- var regionWidget = getWidgetById(args.data.id);
+ var regionWidget = getRegionWidgetById(args.data.id);
var prefsElement = $("#" + WIDGET_PREFS_CONTENT(regionWidget.regionWidgetId));
var updatedPrefs = {};
@@ -489,7 +489,7 @@ var rave = rave || (function() {
* @param widgetId identifier of the region widget
*/
function styleWidgetButtons(widgetId) {
- var widget = rave.getWidgetById(widgetId);
+ var widget = rave.getRegionWidgetById(widgetId);
// init the widget minimize button which is hidden by default
// and only renders when widget is in maximized view
@@ -676,7 +676,7 @@ var rave = rave || (function() {
return context;
}
- function getWidgetById(regionWidgetId) {
+ function getRegionWidgetById(regionWidgetId) {
return widgetByIdMap[regionWidgetId];
}
@@ -684,6 +684,10 @@ var rave = rave || (function() {
var fragment = (pageId != null) ? ("/" + pageId) : "";
window.location.href = rave.getContext() + "page/view" + fragment;
}
+
+ function viewWidgetDetail(widgetId, referringPageId) {
+ window.location.href = rave.getContext() + "store/widget/" + widgetId + "?referringPageId=" + referringPageId;
+ }
/**
* Utility function to determine if a javascript object is a function
@@ -787,9 +791,9 @@ var rave = rave || (function() {
getContext: getContext,
/**
- * Gets a widget by id
+ * Gets a regionwidget by region widget id
*/
- getWidgetById: getWidgetById,
+ getRegionWidgetById: getRegionWidgetById,
/**
* View a page
@@ -797,6 +801,14 @@ var rave = rave || (function() {
* @param pageId the pageId to view, or if null, the user's default page
*/
viewPage: viewPage,
+
+ /**
+ * View the widget detail page of a widget
+ *
+ * @param widgetId to widgetId to view
+ * @param referringPageId the entityId of the page the call is coming from
+ */
+ viewWidgetDetail: viewWidgetDetail,
/**
* Toggles the collapse/restore icon of the rendered widget
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js Thu Dec 22 17:18:15 2011
@@ -162,7 +162,7 @@ rave.layout = rave.layout || (function()
if (!$menuItemDelete.hasClass("page-menu-item-disabled")) {
$menuItemDelete.bind('click', function(event) {
// send the rpc request to delete the page
- rave.api.rest.deletePage({pageId: getCurrentPageId(), successCallback: rave.viewPage});
+ rave.api.rest.deletePage({pageId: getCurrentPageId(), successCallback: rave.viewPage});
pageMenu.hide();
// prevent the menu button click event from bubbling up to parent
// DOM object event handlers such as the page tab click event
@@ -323,7 +323,22 @@ rave.layout = rave.layout || (function()
// DOM object event handlers such as the page tab click event
event.stopPropagation();
});
- }
+ }
+
+ // setup the about this widget menu item
+ $menuItemAbout = $("#widget-" + widgetId + "-menu-about-item");
+ if (!$menuItemAbout.hasClass("widget-menu-item-disabled")) {
+ $menuItemAbout.bind('click', function(event) {
+ var regionWidget = rave.getRegionWidgetById(rave.getObjectIdFromDomId(this.id));
+ // hide the widget menu
+ rave.layout.hideWidgetMenu(regionWidget.regionWidgetId);
+ // go to the widget detail page
+ rave.viewWidgetDetail(regionWidget.widgetId, getCurrentPageId());
+ // prevent the menu button click event from bubbling up to parent
+ // DOM object event handlers such as the page tab click event
+ event.stopPropagation();
+ });
+ }
});
// close the widget menu if the user clicks outside of it
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js Thu Dec 22 17:18:15 2011
@@ -125,7 +125,7 @@ rave.opensocial = rave.opensocial || (fu
$(getGadgetIframeByWidgetId(this.regionWidgetId)).hide();
};
gadget.restore = function() {
- renderGadgetView(rave.opensocial.VIEW_NAMES.HOME, rave.getWidgetById(this.regionWidgetId));
+ renderGadgetView(rave.opensocial.VIEW_NAMES.HOME, rave.getRegionWidgetById(this.regionWidgetId));
};
gadget.savePreferences = function(userPrefs) {
this.userPrefs = userPrefs;
@@ -188,7 +188,7 @@ rave.opensocial = rave.opensocial || (fu
* @param widgetId the widgetId
*/
function getActiveGadgetHolderByWidgetId(widgetId) {
- return rave.getWidgetById(widgetId).site.getActiveGadgetHolder();
+ return rave.getRegionWidgetById(widgetId).site.getActiveGadgetHolder();
}
/**
@@ -281,7 +281,7 @@ rave.opensocial = rave.opensocial || (fu
*/
function setPref(args, editToken, prefName, prefValue) {
var widgetId = rave.getObjectIdFromDomId(args.gs.getActiveGadgetHolder().getElement().id);
- var regionWidget = rave.getWidgetById(widgetId);
+ var regionWidget = rave.getRegionWidgetById(widgetId);
// update the memory prefs object
regionWidget.userPrefs[prefName] = prefValue;
// persist it to database
Modified: incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveSpec.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveSpec.js?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveSpec.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveSpec.js Thu Dec 22 17:18:15 2011
@@ -576,7 +576,7 @@ describe("Rave", function() {
var args = {};
args.data = {};
args.data.id = 99;
- spyOn(rave, "getWidgetById").andReturn(mockWidget);
+ spyOn(rave, "getRegionWidgetById").andReturn(mockWidget);
rave.maximizeWidget(args);
@@ -591,8 +591,8 @@ describe("Rave", function() {
expect($().getValue("hideWasCalled-#widget-" + args.data.id + "-widget-menu-wrapper")).toEqual(true);
// verify widget minimize show was called
expect($().getValue("showWasCalled-#widget-" + args.data.id + "-min")).toEqual(true);
- // verify getWidgetById called
- expect(rave.getWidgetById).toHaveBeenCalledWith(args.data.id);
+ // verify getRegionWidgetById called
+ expect(rave.getRegionWidgetById).toHaveBeenCalledWith(args.data.id);
// verify collapse/restore icon hide was called
expect($().getValue("hideWasCalled-#widget-" + args.data.id + "-collapse")).toEqual(true);
// verify widget.maximize was called
@@ -611,7 +611,7 @@ describe("Rave", function() {
var args = {};
args.data = {};
args.data.id = 99;
- spyOn(rave, "getWidgetById").andReturn(mockWidget);
+ spyOn(rave, "getRegionWidgetById").andReturn(mockWidget);
rave.minimizeWidget(args);
@@ -630,8 +630,8 @@ describe("Rave", function() {
expect($().getValue("showWasCalled-#widget-" + args.data.id + "-widget-menu-wrapper")).toEqual(true);
// verify collapse/restore icon show was called
expect($().getValue("showWasCalled-#widget-" + args.data.id + "-collapse")).toEqual(true);
- // verify getWidgetById called
- expect(rave.getWidgetById).toHaveBeenCalledWith(args.data.id);
+ // verify getRegionWidgetById called
+ expect(rave.getRegionWidgetById).toHaveBeenCalledWith(args.data.id);
// verify widget.minimize was called
expect(mockWidget.minimizeWasCalled).toEqual(true);
});
Modified: incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java (original)
+++ incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java Thu Dec 22 17:18:15 2011
@@ -68,7 +68,8 @@ public class OpenSocialWidgetRenderer im
" securityToken: '%5$s', " +
" metadata: %6$s," +
" userPrefs: %7$s," +
- " collapsed: %8$s});</script>";
+ " collapsed: %8$s, " +
+ " widgetId: %9$s});</script>";
private static final String MARKUP = "<!-- RegionWidget %1$s placeholder -->";
@Override
@@ -110,8 +111,15 @@ public class OpenSocialWidgetRenderer im
}
}
- return String.format(SCRIPT_BLOCK, item.getRegion().getEntityId(), Constants.WIDGET_TYPE, item.getEntityId(),
- item.getWidget().getUrl(), securityTokenService.getEncryptedSecurityToken(item),
- openSocialService.getGadgetMetadata(item.getWidget().getUrl()), userPrefs.toString(), item.isCollapsed());
+ return String.format(SCRIPT_BLOCK,
+ item.getRegion().getEntityId(),
+ Constants.WIDGET_TYPE,
+ item.getEntityId(),
+ item.getWidget().getUrl(),
+ securityTokenService.getEncryptedSecurityToken(item),
+ openSocialService.getGadgetMetadata(item.getWidget().getUrl()),
+ userPrefs.toString(),
+ item.isCollapsed(),
+ item.getWidget().getEntityId());
}
}
\ No newline at end of file
Modified: incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java (original)
+++ incubator/rave/trunk/rave-providers/rave-opensocial-provider/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java Thu Dec 22 17:18:15 2011
@@ -95,7 +95,8 @@ public class OpenSocialWidgetRendererTes
" securityToken: '" + VALID_SECURITY_TOKEN + "', " +
" metadata: " + VALID_METADATA + "," +
" userPrefs: {\"speed\":\"fast\",\"color\":\"blue\"}," +
- " collapsed: " + VALID_COLLAPSED + "});</script>";
+ " collapsed: " + VALID_COLLAPSED + ", " +
+ " widgetId: 1});</script>";
expect(securityTokenService.getEncryptedSecurityToken(rw)).andReturn(VALID_SECURITY_TOKEN);
replay(securityTokenService);
@@ -128,7 +129,8 @@ public class OpenSocialWidgetRendererTes
" securityToken: '" + VALID_SECURITY_TOKEN + "', " +
" metadata: null," +
" userPrefs: null," +
- " collapsed: false});</script>";
+ " collapsed: false, " +
+ " widgetId: null});</script>";
scriptManager.registerScriptBlock(markup, ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, null);
expectLastCall();
Modified: incubator/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java?rev=1222358&r1=1222357&r2=1222358&view=diff
==============================================================================
--- incubator/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java (original)
+++ incubator/rave/trunk/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java Thu Dec 22 17:18:15 2011
@@ -70,7 +70,8 @@ public class W3cWidgetRenderer implement
" widgetUrl: '%4$s', " +
" height: '%5$s', " +
" width: '%6$s', " +
- " collapsed: %7$s});</script>";
+ " collapsed: %7$s, " +
+ " widgetId: %8$s});</script>";
private static final String MARKUP = "<!-- RegionWidget %1$s placeholder -->";
@@ -146,7 +147,14 @@ public class W3cWidgetRenderer implement
//
// Construct and return script block
//
- return String.format(SCRIPT_BLOCK, item.getRegion().getEntityId(), WIDGET_TYPE, item.getEntityId(),
- contextualizedWidget.getUrl(), height, width, item.isCollapsed());
+ return String.format(SCRIPT_BLOCK,
+ item.getRegion().getEntityId(),
+ WIDGET_TYPE,
+ item.getEntityId(),
+ contextualizedWidget.getUrl(),
+ height,
+ width,
+ item.isCollapsed(),
+ item.getWidget().getEntityId());
}
}