rave-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhenhua (Gerald) Guo" <jen...@gmail.com>
Subject Re: svn commit: r1132706 - in /incubator/rave/trunk/rave-portal/src/main/webapp: WEB-INF/views/home.jsp script/rave.js
Date Mon, 06 Jun 2011 21:15:49 GMT
In Javascript, I have a widget-to-region map which tracks in which
region a widget is located.  Every time a widget is moved, added or
deleted, the map is updated to be consistent with server-side data.

Gerald

On Mon, Jun 6, 2011 at 2:11 PM, Marlon Pierce <mpierce@cs.indiana.edu> wrote:
> -----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 <mpierce@cs.indiana.edu> 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" <mpierce@cs.indiana.edu> 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" <mpierce@cs.indiana.edu>
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, "mpierce@apache.org" <mpierce@apache.org>
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-----
>

Mime
View raw message