You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2013/08/16 14:41:57 UTC

svn commit: r1514682 - in /rave/trunk/rave-portal-resources/src/main/webapp/static/script: core/rave_opensocial.js portal/rave_ui.js

Author: mfranklin
Date: Fri Aug 16 12:41:56 2013
New Revision: 1514682

URL: http://svn.apache.org/r1514682
Log:
Fixed multiple custom edit prefs dialog (RAVE-1038)

Modified:
    rave/trunk/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js
    rave/trunk/rave-portal-resources/src/main/webapp/static/script/portal/rave_ui.js

Modified: rave/trunk/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js?rev=1514682&r1=1514681&r2=1514682&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js (original)
+++ rave/trunk/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js Fri Aug 16 12:41:56 2013
@@ -117,7 +117,8 @@ define(['underscore', 'core/rave_view_ma
             var widget = args.gs._widget,
                 viewSurface = viewName.split('.')[0],
                 renderInto = viewManager.getView(viewSurface) ? viewSurface : widget._el;
-
+            //If the element has no ID then it was launched in some secondary location.  Destroy the view.
+            if(widget._el.id === "") viewManager.destroyView(widget._view);
             widget.render(renderInto, {view: viewName, view_params: opt_params, ownerId: opt_ownerId});
         }
 

Modified: rave/trunk/rave-portal-resources/src/main/webapp/static/script/portal/rave_ui.js
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/static/script/portal/rave_ui.js?rev=1514682&r1=1514681&r2=1514682&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/static/script/portal/rave_ui.js (original)
+++ rave/trunk/rave-portal-resources/src/main/webapp/static/script/portal/rave_ui.js Fri Aug 16 12:41:56 2013
@@ -407,9 +407,7 @@ define(["jquery", "underscore", "rave",
             var hasRequiredUserPrefs = false;
 
             if (widgetDefinition.metadata.views.preferences) {
-                var opts = {};
-                _.extend(opts, widgetDefinition.metadata.views.preferences, {view: 'preferences'});
-                widget.render('dialog', opts);
+                widget._view = rave.renderView('preferences', widgetDefinition);
             } else {
                 //format the data for display
                 _.each(userPrefs, function (pref) {
@@ -676,7 +674,9 @@ define(["jquery", "underscore", "rave",
                 }
 
                 function showPrefsPane() {
-                    showWidgetPrefs(widget);
+                    if(widget._view.name !== "preferences") {
+                        showWidgetPrefs(widget);
+                    }
                     return false;
                 }
 
@@ -736,6 +736,31 @@ define(["jquery", "underscore", "rave",
             rave.registerView('home', HomeView);
         }
 
+        function registerPreferencesView() {
+            var PreferencesView = function(widget) {
+                this.widget = widget;
+                this.name = "preferences";
+            }
+
+            PreferencesView.prototype.render = function () {
+                var opts = {};
+                _.extend(opts, this.widget.metadata.views.preferences, {view:"preferences"});
+                this.view = rave.renderView("modal_dialog");
+                var widgetSite = this.view.getWidgetSite();
+                this.widget.render(widgetSite, opts);
+            }
+
+            PreferencesView.prototype.getWidgetSite = function() {
+                return this.view.getWidgetSite();
+            }
+
+            PreferencesView.prototype.destroy = function () {
+                this.widget._provider.closeWidget(this.widget);
+                rave.destroyView(this.view);
+            }
+            rave.registerView('preferences', PreferencesView);
+        }
+
         function registerCanvasView() {
             var CanvasView = function (widget) {
                 this.widget = widget;
@@ -856,7 +881,6 @@ define(["jquery", "underscore", "rave",
                     },
                     cleanup: function (content) {
                         var container = content.parents(this.containerSelector);
-
                         container.modal('hide');
                     },
                     singleton: false
@@ -881,7 +905,6 @@ define(["jquery", "underscore", "rave",
                     },
                     cleanup: function (content) {
                         var container = content.parents(this.containerSelector);
-
                         container.modal('hide');
                     },
                     singleton: true
@@ -929,6 +952,7 @@ define(["jquery", "underscore", "rave",
 
         function init() {
             initializePageSharing();
+            registerPreferencesView();
             registerHomeView();
             registerCanvasView();
             registerPopups();