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: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > 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/ > > iQEcBAEBAgAGBQJN7R24AAoJEEfVXEODPFIDH2oH/0nB6T0QNlDBjeUzs4WLM+pu > khbPiuBmkvs+DP8wRubJVLbebIlVVoL1egIUamz2tmyjItGkTfs7PQ8GtxxB96QP > twOPF7l4irX64yaPYanYiInn70bIm5RPJsXeFmursjCI3dyEqxHHAWGop+r8m/Iy > KVPDpeJtHr7hMkkPiShZe0lJDKIZzHlFwq+fArgVPIXK9mcgna1E00zq2e0F1TgM > oj5tuYvwSXDYLEaPl7X50PWQMqOQ7yX5KR4A8H0o9NVDMkvn6mXw+CSHp3lzAKzj > ubqI+mCwzoXdQclBaJafss+7loK8zbeyy+EAkFHg1SyfIzynWcZJcaDWlssebyw= > =08Wn > -----END PGP SIGNATURE----- >
