Author: ivol37 at gmail.com
Date: Fri Nov 12 17:46:52 2010
New Revision: 423

Log:
[AMDATU-169] Moved delete widget hook from the dashboard plugin

Modified:
   trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/dashboard.js
   
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/gadgets_appdata.js
   
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/lib/jquery.dashboard.js
   
trunk/amdatu-opensocial/gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/GadgetManagementServiceImpl.java

Modified: 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/dashboard.js
==============================================================================
--- trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/dashboard.js 
(original)
+++ trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/dashboard.js 
Fri Nov 12 17:46:52 2010
@@ -132,6 +132,10 @@
     my.renderGadget(obj);
   });
   
+  $('.widget').live('widgetDeleted',function(e, obj){  
+      removeWidgetFromAppData(obj, dashboard);   
+  });
+  
   dashboard.element.live('dashboardAddWidget',function(e, obj){  
     addWidgetToAppData(obj, startId++, dashboard);
   });

Modified: 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/gadgets_appdata.js
==============================================================================
--- 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/gadgets_appdata.js
   (original)
+++ 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/gadgets_appdata.js
   Fri Nov 12 17:46:52 2010
@@ -56,13 +56,12 @@
 }
 
 // Removes a gadget from the AppData of the current user
-removeWidgetFromAppData = function(gadgetId, securetoken, dashboard) {
-  var currentGadgets = retrieveCurrentWidgetsInAppData(securetoken);
-  currentGadgets = currentGadgets.replace(gadgetId, "");
-
+removeWidgetFromAppData = function(obj, dashboard) {
+  var currentGadgets = retrieveCurrentWidgetsInAppData(obj.securetoken);
+  currentGadgets = currentGadgets.replace(obj.id, "");
   var postdata = '{"registeredgadgets":"' + currentGadgets + '"}';
 
-  var url = "/social/rest/appdata/@me/@self/?fields=registeredgadgets&st=" + 
securetoken;
+  var url = "/social/rest/appdata/@me/@self/?fields=registeredgadgets&st=" + 
obj.securetoken;
   jQuery.ajax({
     url: url,
     type: "PUT",
@@ -71,7 +70,6 @@
     dataType: "json",
     async:false,
     success: function(response) {
-       dashboard.getWidget(gadgetId).remove();
       },
     error: function(request, textStatus, errorThrown) {
         alert("Gadget could not be removed from user profile.");

Modified: 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/lib/jquery.dashboard.js
==============================================================================
--- 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/lib/jquery.dashboard.js
      (original)
+++ 
trunk/amdatu-opensocial/dashboard/src/main/resources/static/js/lib/jquery.dashboard.js
      Fri Nov 12 17:46:52 2010
@@ -414,9 +414,7 @@
 
     $('.' + opts.widgetClass).live('widgetdelete',function() {
       if (confirm(opts.deleteConfirmMessage)) {
-        // Remove the widget from the AppData of the Person in the OpenSocial 
container
-        var securetoken = dashboard.getWidget($(this).attr("id")).securetoken;
-        removeWidgetFromAppData($(this).attr("id"), securetoken, dashboard);   
+        dashboard.getWidget($(this).attr("id")).remove();
       }      
     });
 

Modified: 
trunk/amdatu-opensocial/gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/GadgetManagementServiceImpl.java
==============================================================================
--- 
trunk/amdatu-opensocial/gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/GadgetManagementServiceImpl.java
      (original)
+++ 
trunk/amdatu-opensocial/gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/GadgetManagementServiceImpl.java
      Fri Nov 12 17:46:52 2010
@@ -260,7 +260,12 @@
                 byte[] bytesValue = (byte[]) 
user.getProperties().get(OpenSocialConstants.APP_DATA);
                 if (bytesValue != null) {
                     Map<String, String> values = (Map<String, String>) 
ConversionUtil.byteArrayToObject(bytesValue);
-                    gadgetUrls = 
values.get(OpenSocialConstants.REGISTERED_GADGETS).trim().split(" ");
+                    String gadgetValue = 
values.get(OpenSocialConstants.REGISTERED_GADGETS).trim();
+                    while (gadgetValue.indexOf("  ") != -1) {
+                        // Replace double spaces with single space, occurs 
when removing gadget URLs
+                        gadgetValue = gadgetValue.replace("  ", " ");
+                    }
+                    gadgetUrls = gadgetValue.split(" ");
                 }
                 else {
                     Map<String, String> values = new HashMap<String, String>();

Reply via email to