-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Deletion doesn't work if you move a gadget from one column to another: the 
regionId on client and server are not in synch until you refresh the page or 
logout/login.  We'll have to revisit to remove the dependency of regionId on 
the client side.


Marlon


On 6/6/11 5:08 PM, Zhenhua (Gerald) Guo wrote:
> I committed some code to fix the gadget deletion bug several days ago.
>  I tested it and it worked.
> It still does not work for you guys?
> 
> Gerald
> 
> On Mon, Jun 6, 2011 at 11:34 AM, Marlon Pierce <[email protected]> wrote:
> Sorry, computer crash.  Sure--go ahead or describe the solution and I'll do 
> it.  Deleting the RegionWidget from Region's list was the only way I saw to 
> do the delete.
> 
> 
> Marlon
> 
> 
> On 6/6/11 1:55 PM, Franklin, Matthew B. wrote:
>>>> Ahh.  That makes sense.  I think there might be a way to simplify the
>>>> server side delete operation so that this wouldn't happen.  Specifically,
>>>> removing the need to pass the regionId and just use the regionWidgetId to
>>>> delete the widget.
>>>>
>>>> -Matt
>>>>
>>>> On 6/6/11 1:52 PM, "Marlon Pierce" <[email protected]> wrote:
>>>>
>>>> Trying to delete a gadget that you have moved on the page throws this
>>>> error:Rave attempted to update the server with your recent changes,  but
>>>> the changes were rejected by the server as invalid.
>>>>
>>>> On 6/6/11 1:46 PM, Franklin, Matthew B. wrote:
>>>>>>>
>>>>>>> On 6/6/11 1:43 PM, "Marlon Pierce" <[email protected]> wrote:
>>>>>>>
>>>>>>> I cleaned it up a bit already, but let me look at the init.  There is
>>>>>>> still a bug associated with deleting gadgets that have been moved.
>>>>>>>
>>>>>>>> Moved or deleted? Can you elaborate on the bug a bit?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Marlon
>>>>>>>
>>>>>>>
>>>>>>> On 6/6/11 1:36 PM, Franklin, Matthew B. wrote:
>>>>>>>>>> On 6/6/11 1:10 PM, "[email protected]" <[email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Author: mpierce
>>>>>>>>>>> Date: Mon Jun  6 17:10:32 2011
>>>>>>>>>>> New Revision: 1132706
>>>>>>>>>>>
>>>>>>>>>>> URL: http://svn.apache.org/viewvc?rev=1132706&view=rev
>>>>>>>>>>> Log:
>>>>>>>>>>> Reorganizing the widget deletion code (RAVE-41) so that most of the
>>>>>>>>>>> action takes place in rave.js rather than home.jsp.  Probably this
>>>>>>>>>>> needs
>>>>>>>>>>> a better design pattern applied to it.
>>>>>>>>>>
>>>>>>>>>> Thanks for taking that on.  I haven't had a ton of time to look over
>>>>>>>>>> the
>>>>>>>>>> delete code yet, but from what I have seen, it looks like there
>>>>>>>>>> should
>>>>>>>>>> be
>>>>>>>>>> no reason that we can't do what is left in the home.jsp in the
>>>>>>>>>> ui.init
>>>>>>>>>> function of rave.js (init the buttons for all widgets with one
>>>>>>>>>> expression).  This would allow us to move the script includes for
>>>>>>>>>> jquery,
>>>>>>>>>> etc back to the bottom of the page, which is where we really want
>>>>>>>>>> them.
>>>>>>>>>>
>>>>>>>>>> I can go ahead and make this change unless Marlon or others who have
>>>>>>>>>> been
>>>>>>>>>> working on it want to give it a go.
>>>>>>>>>>
>>>>>>>>>> -Matt
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Modified:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.j
>>>>>>>>>>> sp
>>>>>>>>>>>    incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
>>>>>>>>>>>
>>>>>>>>>>> Modified:
>>>>>>>>>>>
>>>>>>>>>>> incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.j
>>>>>>>>>>> sp
>>>>>>>>>>> URL:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/mai
>>>>>>>>>>> n/w
>>>>>>>>>>> eb
>>>>>>>>>>>
>>>>>>>>>>> app/WEB-INF/views/home.jsp?rev=1132706&r1=1132705&r2=1132706&view=dif
>>>>>>>>>>> f
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> =====================================================================
>>>>>>>>>>> ===
>>>>>>>>>>> ==
>>>>>>>>>>> ====
>>>>>>>>>>> ---
>>>>>>>>>>>
>>>>>>>>>>> incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.j
>>>>>>>>>>> sp
>>>>>>>>>>> (original)
>>>>>>>>>>> +++
>>>>>>>>>>>
>>>>>>>>>>> incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.j
>>>>>>>>>>> sp
>>>>>>>>>>> Mon Jun  6 17:10:32 2011
>>>>>>>>>>> @@ -64,41 +64,35 @@
>>>>>>>>>>>         <div class="widget-title-bar" >
>>>>>>>>>>>             <span
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> id="widget-${regionWidget.id}-title">${regionWidget.widget.title}</sp
>>>>>>>>>>> an>
>>>>>>>>>>>
>>>>>>>>>>> -            <span id="widget-${regionWidget.id}-toolbar"
>>>>>>>>>>> style="float:right;">
>>>>>>>>>>> -              <button id="widget-${regionWidget.id}-max"
>>>>>>>>>>> class="widget-toolbar-btn"></button>
>>>>>>>>>>> -                                                <button 
>>>>>>>>>>> id="widget-${regionWidget.id}-remove"
>>>>>>>>>>> class="widget-toolbar-btn"></button>
>>>>>>>>>>> -                                                <script>
>>>>>>>>>>> -              $("#widget-${regionWidget.id}-max").button({
>>>>>>>>>>> -                text: false,
>>>>>>>>>>> -                icons: {
>>>>>>>>>>> -                  primary: "ui-icon-arrow-4-diag"
>>>>>>>>>>> -                }
>>>>>>>>>>> -              }).click(function() {
>>>>>>>>>>> -                alert("not implemented yet.");
>>>>>>>>>>> -              });
>>>>>>>>>>> -                                                
>>>>>>>>>>> $("#widget-${regionWidget.id}-remove").button({
>>>>>>>>>>> -                                            text: false,
>>>>>>>>>>> -                                            icons: {
>>>>>>>>>>> -                                              primary: 
>>>>>>>>>>> "ui-icon-close"
>>>>>>>>>>> -                                            }
>>>>>>>>>>> -                                          
>>>>>>>>>>> }).unbind("click").click(function() {
>>>>>>>>>>> -                                              alert("remove 
>>>>>>>>>>> gadget");
>>>>>>>>>>> -                                            
>>>>>>>>>>> rave.api.rpc.removeWidget({
>>>>>>>>>>> -                                                regionWidgetId: 
>>>>>>>>>>> "${regionWidget.id}",
>>>>>>>>>>> -                                                pageId: 
>>>>>>>>>>> "${defaultPage.id}",
>>>>>>>>>>> -                                                region: {
>>>>>>>>>>> -                                                    id : 
>>>>>>>>>>> rave.getGadgetRegion("${regionWidget.id}")
>>>>>>>>>>> -                                                },
>>>>>>>>>>> -                                                succCB: function() 
>>>>>>>>>>> {
>>>>>>>>>>> -                                                        
>>>>>>>>>>> $("#widget-wrapper-${regionWidget.id}").remove();
>>>>>>>>>>> -                                                }
>>>>>>>>>>> -                                              });
>>>>>>>>>>> -                                          });
>>>>>>>>>>> -                                                
>>>>>>>>>>> rave.mapGadgetToRegion("${regionWidget.id}",
>>>>>>>>>>> "${region.id}");
>>>>>>>>>>> -                                                </script>
>>>>>>>>>>> -                                              </span>
>>>>>>>>>>> -
>>>>>>>>>>> -        </div>
>>>>>>>>>>> +                              <!-- These are toolbar buttons -->
>>>>>>>>>>> +                              <span 
>>>>>>>>>>> id="widget-${regionWidget.id}-toolbar"
>>>>>>>>>>> style="float:right;">
>>>>>>>>>>> +                                <button 
>>>>>>>>>>> id="widget-${regionWidget.id}-max"
>>>>>>>>>>> +                                                       
>>>>>>>>>>> class="widget-toolbar-btn"
>>>>>>>>>>> +                                                       
>>>>>>>>>>> onclick="rave.toolbarMaximize(this)"></button>
>>>>>>>>>>> +                                <button 
>>>>>>>>>>> id="widget-${regionWidget.id}-remove"
>>>>>>>>>>> +                                                       
>>>>>>>>>>> class="widget-toolbar-btn"
>>>>>>>>>>> +
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> onclick="rave.toolbarDelete(this,${regionWidget.id},${region.id},${de
>>>>>>>>>>> fau
>>>>>>>>>>> lt
>>>>>>>>>>> Page.id})">
>>>>>>>>>>> +                                </button>
>>>>>>>>>>> +                                <script>
>>>>>>>>>>> +                                       //This decorates the 
>>>>>>>>>>> toolbar buttons.  As currently written,
>>>>>>>>>>> +                                       //it needs to be in the 
>>>>>>>>>>> forEach loop.
>>>>>>>>>>> +                                       
>>>>>>>>>>> $("#widget-${regionWidget.id}-max").button({
>>>>>>>>>>> +                                       text: false,
>>>>>>>>>>> +                                       icons: {
>>>>>>>>>>> +                                       primary: 
>>>>>>>>>>> "ui-icon-arrow-4-diag"
>>>>>>>>>>> +                                       }
>>>>>>>>>>> +                                       });
>>>>>>>>>>> +
>>>>>>>>>>> +                                       
>>>>>>>>>>> $("#widget-${regionWidget.id}-remove").button({
>>>>>>>>>>> +                                       text: false,
>>>>>>>>>>> +                                       icons: {
>>>>>>>>>>> +                                       primary: "ui-icon-close"
>>>>>>>>>>> +                                       }
>>>>>>>>>>> +                                       });
>>>>>>>>>>> +                                </script>
>>>>>>>>>>> +
>>>>>>>>>>> +                              </span>
>>>>>>>>>>> +                </div>
>>>>>>>>>>>         <div class="widget" id="widget-${regionWidget.id}-body">
>>>>>>>>>>>                         <!--
>>>>>>>>>>>                                        Among other things, the 
>>>>>>>>>>> render-widget tag will populate the
>>>>>>>>>>> widgets[] array.
>>>>>>>>>>>
>>>>>>>>>>> Modified:
>>>>>>>>>>> incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
>>>>>>>>>>> URL:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/mai
>>>>>>>>>>> n/w
>>>>>>>>>>> eb
>>>>>>>>>>> app/script/rave.js?rev=1132706&r1=1132705&r2=1132706&view=diff
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> =====================================================================
>>>>>>>>>>> ===
>>>>>>>>>>> ==
>>>>>>>>>>> ====
>>>>>>>>>>> --- incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
>>>>>>>>>>> (original)
>>>>>>>>>>> +++ incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
>>>>>>>>>>> Mon
>>>>>>>>>>> Jun  6 17:10:32 2011
>>>>>>>>>>> @@ -105,6 +105,36 @@ var rave = rave || (function() {
>>>>>>>>>>>
>>>>>>>>>>>     })();
>>>>>>>>>>>
>>>>>>>>>>> +       /**
>>>>>>>>>>> +        * Group widget toolbar functions
>>>>>>>>>>> +        */
>>>>>>>>>>> +       var toolbar = (function() {
>>>>>>>>>>> +                function init(){
>>>>>>>>>>> +                }
>>>>>>>>>>> +                function maximizeAction(button){
>>>>>>>>>>> +                              alert("Maximize: "+button.id+" not 
>>>>>>>>>>> yet implemented.");
>>>>>>>>>>> +
>>>>>>>>>>> +                };
>>>>>>>>>>> +                function
>>>>>>>>>>> deleteAction(button,myRegionWidgetId,myRegionId,myPageId){
>>>>>>>>>>> +//                            alert("Delete:"+button.id+" 
>>>>>>>>>>> "+myRegionWidgetId+"
>>>>>>>>>>> "+myRegionId+"
>>>>>>>>>>> "+myPageId);
>>>>>>>>>>> +                              rave.api.rpc.removeWidget({
>>>>>>>>>>> +                                       regionWidgetId: 
>>>>>>>>>>> myRegionWidgetId,
>>>>>>>>>>> +                                       pageId : myPageId,
>>>>>>>>>>> +                                       region: {
>>>>>>>>>>> +                                                id : myRegionId
>>>>>>>>>>> +                                       },
>>>>>>>>>>> +                                       succCB: function() {
>>>>>>>>>>> +                                                
>>>>>>>>>>> $("#widget-wrapper-"+myRegionWidgetId).remove();
>>>>>>>>>>> +                                       }
>>>>>>>>>>> +                              });
>>>>>>>>>>> +                              
>>>>>>>>>>> rave.mapGadgetToRegion(myRegionWidgetId, myRegionId);
>>>>>>>>>>> +                };
>>>>>>>>>>> +                return {
>>>>>>>>>>> +                              maximizeAction : maximizeAction,
>>>>>>>>>>> +                              deleteAction : deleteAction
>>>>>>>>>>> +                }
>>>>>>>>>>> +       })();
>>>>>>>>>>> +
>>>>>>>>>>>     function initializeProviders() {
>>>>>>>>>>>                  //Current providers are rave.wookie and 
>>>>>>>>>>> rave.opensocial.
>>>>>>>>>>>                  //Providers register themselves when loaded, so
>>>>>>>>>>> @@ -161,14 +191,6 @@ var rave = rave || (function() {
>>>>>>>>>>>     }
>>>>>>>>>>>
>>>>>>>>>>>         /**
>>>>>>>>>>> -        * Deletes the gadget/widget from the display.
>>>>>>>>>>> -     * TODO: must be implemented.
>>>>>>>>>>> -        */
>>>>>>>>>>> -       function deleteWidgetFromPage() {
>>>>>>>>>>> -                return null;
>>>>>>>>>>> -       }
>>>>>>>>>>> -
>>>>>>>>>>> -       /**
>>>>>>>>>>>          * Map a widget to the region where it is located.
>>>>>>>>>>>          *
>>>>>>>>>>>          * @param widgetId: id of the widget (not DOM id)
>>>>>>>>>>> @@ -248,10 +270,6 @@ var rave = rave || (function() {
>>>>>>>>>>>          */
>>>>>>>>>>>         getContext: getContext,
>>>>>>>>>>>
>>>>>>>>>>> -      /**
>>>>>>>>>>> -      * Remove a selected gadget from the page
>>>>>>>>>>> -      */
>>>>>>>>>>> -      deleteGadget : deleteWidgetFromPage,
>>>>>>>>>>>
>>>>>>>>>>>        /**
>>>>>>>>>>>         * Change or delete gadget to region map entry.
>>>>>>>>>>> @@ -261,6 +279,12 @@ var rave = rave || (function() {
>>>>>>>>>>>        /**
>>>>>>>>>>>         * Get the region where a widget/gadget belongs to.
>>>>>>>>>>>         */
>>>>>>>>>>> -      getGadgetRegion : getGadgetRegion
>>>>>>>>>>> +        getGadgetRegion : getGadgetRegion,
>>>>>>>>>>> +
>>>>>>>>>>> +                /**
>>>>>>>>>>> +                      * These are exposed toolbar actions, 
>>>>>>>>>>> associated with widget
>>>>>>>>>>> toolbar
>>>>>>>>>>> buttons
>>>>>>>>>>> +                      */
>>>>>>>>>>> +                toolbarMaximize : toolbar.maximizeAction,
>>>>>>>>>>> +                toolbarDelete : toolbar.deleteAction
>>>>>>>>>>>     }
>>>>>>>>>>> })();
>>>>>>>>>>> \ No newline at end of file
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN7UJ0AAoJEEfVXEODPFIDO68H/jSDm0w9fY0xHNPml1T7OZ3U
SZawMn17+WkgzvV8+Nhf01xWBh9j+dwmZN4jqk88qTk7WDwMUJr7cMkRO1YLxI+i
wZ/qRej9cwXlNn9n70OSGYTQ9Ru4OHbWwoJ9HOggxdlgZilLGc/6JqULPHq/zPS4
YqqKzVZSRspjPxFg5QtXERKCBc7jdL0WcbuS4wcJc2YCwmj9OfJ06tC6WGQMEH8r
ub6XTTFJ1aqGXKOXxET+vt9Q5rz42989SPOUQ8FVhH+hOaoBlnRj3PvLUI/DCOxP
TROsxcaVB3+WkZQz+52sv3i/Iu3y3BcDMhbWfqnFUsspL7hCUT5YA5E2plLNk4Q=
=vyFJ
-----END PGP SIGNATURE-----

Reply via email to