You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by er...@apache.org on 2013/05/22 17:30:58 UTC

svn commit: r1485252 - in /rave/branches/angular/rave-portal-resources/src/main/webapp/static: css/rave-css.less html/portal.html script/angular-portal/directives.js script/core/rave_core.js script/core/rave_opensocial.js

Author: erinnp
Date: Wed May 22 15:30:57 2013
New Revision: 1485252

URL: http://svn.apache.org/r1485252
Log:
rave-register-view directive got classy, updated sidebar to use css transitions like it should

Modified:
    rave/branches/angular/rave-portal-resources/src/main/webapp/static/css/rave-css.less
    rave/branches/angular/rave-portal-resources/src/main/webapp/static/html/portal.html
    rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/angular-portal/directives.js
    rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_core.js
    rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js

Modified: rave/branches/angular/rave-portal-resources/src/main/webapp/static/css/rave-css.less
URL: http://svn.apache.org/viewvc/rave/branches/angular/rave-portal-resources/src/main/webapp/static/css/rave-css.less?rev=1485252&r1=1485251&r2=1485252&view=diff
==============================================================================
--- rave/branches/angular/rave-portal-resources/src/main/webapp/static/css/rave-css.less (original)
+++ rave/branches/angular/rave-portal-resources/src/main/webapp/static/css/rave-css.less Wed May 22 15:30:57 2013
@@ -17,6 +17,7 @@
 // under the License.
 
 /* Sticky footer */
+
 * {
   margin: 0;
 }
@@ -1204,7 +1205,6 @@ span.error, label.error {
   position: fixed;
   top: 5%;
   right: 0;
-  display: none;
   background: #ffffff;
   border: 1px solid #999;
   border: 1px solid rgba(0, 0, 0, 0.3);
@@ -1220,8 +1220,14 @@ span.error, label.error {
   height: 90%;
   padding: 15px;
   overflow: hidden;
-  z-index: 5000
+  z-index: 5000;
+  .transition(~"all .5s ease-in-out");
+  .translate(100%, 0);
 }
+.popup.slideout.shown {
+  .translate(0, 0);
+}
+
 
 .slideout-content {
   box-sizing: border-box;

Modified: rave/branches/angular/rave-portal-resources/src/main/webapp/static/html/portal.html
URL: http://svn.apache.org/viewvc/rave/branches/angular/rave-portal-resources/src/main/webapp/static/html/portal.html?rev=1485252&r1=1485251&r2=1485252&view=diff
==============================================================================
--- rave/branches/angular/rave-portal-resources/src/main/webapp/static/html/portal.html (original)
+++ rave/branches/angular/rave-portal-resources/src/main/webapp/static/html/portal.html Wed May 22 15:30:57 2013
@@ -17,55 +17,33 @@
 <div id="pageContent" class="container-fluid" ng-include="templateUrl">
 </div>
 
-<div rave-modal>
-    <div class="popup modal_dialog modal fade">
-        <a href="#" class="close" data-dismiss="modal">&times;</a>
-
-        <div class="site"></div>
+<div rave-register-view="dialog" dialog class="modal fade">
+    <div class="modal-header">
+        <a class="close" data-dismiss="modal">&times;</a>
     </div>
-</div>
-
-<div rave-dialog>
-    <div class="popup dialog modal fade">
-        <a href="#" class="close" data-dismiss="modal">&times;</a>
-
-        <div class="site"></div>
+    <div class="modal-body">
+        <div rave-render-widget></div>
     </div>
 </div>
 
-<div rave-sidebar>
-    <div class="popup slideout">
-        <a href="#" class="close">&times;</a>
-
-        <div class="slideout-content site">
-        </div>
+<div rave-register-view="modal_dialog" dialog="{keyboard: false, backdrop: 'static'}" class="modal fade">
+    <div class="modal-header">
+        <a class="close" data-dismiss="modal">&times;</a>
+    </div>
+    <div class="modal-body">
+        <div rave-render-widget></div>
     </div>
 </div>
 
-<div rave-canvas>
-    <div class="widget-wrapper-canvas" id="widget-4-wrapper">
-        <div class="widget-title-bar">
-
-            <div class="widget-title">
-
-
-                Gadget View Type
-
+<div rave-register-view="sidebar" >
+    <div class="no-scroll">
+        <div class="modal-backdrop fade in" ng-show="show"></div>
+        <div class="popup slideout" ng-class="{'shown':show}">
+            <a class="close" ng-click="show=false">&times;</a>
 
+            <div rave-render-widget class="slideout-content">
             </div>
-
-
-            <div class="widget-toolbar ">
-                <div class="dropdown widget-menu-wrapper" style="display: none;">
-
-                <span id="widget-4-min" class="widget-toolbar-btn widget-toolbar-btn-min" style="display: inline;">
-                    <i class="icon-resize-small"></i>
-                </span>
-                </div>
-
-
-            </div>
-            <div class="site"></div>
         </div>
     </div>
 </div>
+

Modified: rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/angular-portal/directives.js
URL: http://svn.apache.org/viewvc/rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/angular-portal/directives.js?rev=1485252&r1=1485251&r2=1485252&view=diff
==============================================================================
--- rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/angular-portal/directives.js (original)
+++ rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/angular-portal/directives.js Wed May 22 15:30:57 2013
@@ -11,12 +11,79 @@ angular.module('rave.directive', [])
                     var regionWidget = scope.raveRenderWidget(),
                         opts = scope.raveRenderOpts();
 
-                    scope.$watch(function(){
-                        return regionWidget.userPrefs;
+                    scope.$watch(function () {
+                        return regionWidget && regionWidget.userPrefs;
                     }, doRender);
 
                     function doRender() {
-                        regionWidget.render(el[0], opts);
+                        if (regionWidget) {
+                            regionWidget.render(el[0], opts);
+                        }
+                    }
+                }
+            }
+
+            return directive;
+        }
+    ])
+    .directive('raveRegisterView', [ 'rave', '$compile',
+        function (rave, $compile) {
+            var directive = {
+                restrict: 'AE',
+                scope: {},
+                priority: -1,
+                controller: ['$scope', '$element',
+                    function ($scope, $element) {
+                        this.render = function (opts) {
+                            $scope.show = true;
+                            _.extend($scope, opts);
+                            $scope.$apply();
+                        }
+
+                        this.getWidgetSite = function () {
+                            return $element.find('[rave-render-widget]')[0];
+                        }
+
+                        this.destroy = function () {
+                            $scope.show = false;
+                            $scope.$apply();
+                        }
+                    }
+                ],
+                link: function (scope, el, attrs, controller) {
+
+                    var viewName = attrs.raveRegisterView;
+
+                    rave.registerView(viewName, {
+                        render: controller.render,
+                        getWidgetSite: controller.getWidgetSite,
+                        destroy: controller.destroy
+                    });
+
+                }
+            }
+
+            return directive;
+        }
+    ])
+    .directive('dialog', [
+        function () {
+            var directive = {
+                restrict: 'A',
+                require: 'raveRegisterView',
+                link: function (scope, el, attrs, controller) {
+                    el.on('hidden', function(){
+                        //TODO: close gadget to clean up after ourselves, but we need a ref to the site?
+                    })
+
+                    controller.render = function () {
+                        var opts = attrs.opts || {};
+
+                        el.modal(_.extend(opts, {show: true}));
+                    }
+
+                    controller.destroy = function () {
+                        el.modal('hide');
                     }
                 }
             }
@@ -24,18 +91,21 @@ angular.module('rave.directive', [])
             return directive;
         }
     ])
-    //TODO: these are hacky - think of a better more declarative approach for register
+    /*
+
+
+     */
     .directive('raveModal', [
-        function(){
+        function () {
             var directive = {
                 limit: 'A',
                 replace: true,
                 transclude: true,
                 template: '<div ng-transclude></div>',
-                link: function(scope, el, attrs) {
+                link: function (scope, el, attrs) {
                     var modal = el.find('.popup');
                     rave.registerView('modal_dialog', {
-                        render: function(){
+                        render: function () {
                             var cfg = {
                                 keyboard: false,
                                 backdrop: 'static',
@@ -43,10 +113,10 @@ angular.module('rave.directive', [])
                             };
                             modal.modal(cfg);
                         },
-                        getWidgetSite: function(){
+                        getWidgetSite: function () {
                             return el.find('.site')[0];
                         },
-                        destroy: function(){
+                        destroy: function () {
                             modal.modal('hide');
                         }
                     });
@@ -57,22 +127,22 @@ angular.module('rave.directive', [])
         }
     ])
     .directive('raveDialog', [
-        function(){
+        function () {
             var directive = {
                 limit: 'A',
                 replace: true,
                 transclude: true,
                 template: '<div ng-transclude></div>',
-                link: function(scope, el, attrs) {
+                link: function (scope, el, attrs) {
                     var modal = el.find('.popup');
                     rave.registerView('dialog', {
-                        render: function(){
+                        render: function () {
                             modal.modal();
                         },
-                        getWidgetSite: function(){
+                        getWidgetSite: function () {
                             return el.find('.site')[0];
                         },
-                        destroy: function(){
+                        destroy: function () {
                             modal.modal('hide');
                         }
                     });
@@ -83,18 +153,18 @@ angular.module('rave.directive', [])
         }
     ])
     .directive('raveSidebar', [
-        function(){
+        function () {
             var directive = {
                 limit: 'A',
                 replace: true,
                 transclude: true,
                 template: '<div ng-transclude></div>',
-                link: function(scope, el, attrs) {
+                link: function (scope, el, attrs) {
                     var popup = el.find('.popup');
 
                     rave.registerView('sidebar', {
-                        render: function(){
-                            var self =this;
+                        render: function () {
+                            var self = this;
                             popup.find('.close').click(function () {
                                 self.destroy();
                             });
@@ -105,10 +175,10 @@ angular.module('rave.directive', [])
                             // between it and an iframe vertical scrollbar
                             $('body').addClass('no-scroll');
                         },
-                        getWidgetSite: function(){
+                        getWidgetSite: function () {
                             return popup.find('.site')[0];
                         },
-                        destroy: function(){
+                        destroy: function () {
                             popup.hide("slide", { direction: "right" }, 'fast', function () {
                                 $('body').removeClass('modal-open');
                                 $('.modal-backdrop').remove();

Modified: rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_core.js
URL: http://svn.apache.org/viewvc/rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_core.js?rev=1485252&r1=1485251&r2=1485252&view=diff
==============================================================================
--- rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_core.js (original)
+++ rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_core.js Wed May 22 15:30:57 2013
@@ -126,6 +126,7 @@ _.extend(rave, (function () {
             view = rave.getRenderedView(view);
         }
         delete renderedViews[view._uid];
+        delete view._uid;
         view.destroy(args);
     }
 

Modified: rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js
URL: http://svn.apache.org/viewvc/rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js?rev=1485252&r1=1485251&r2=1485252&view=diff
==============================================================================
--- rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js (original)
+++ rave/branches/angular/rave-portal-resources/src/main/webapp/static/script/core/rave_opensocial.js Wed May 22 15:30:57 2013
@@ -32,7 +32,7 @@ rave.registerProvider(
             container = new osapi.container.Container(containerConfig);
 
             gadgets.pubsub2router.init({
-                hub:rave.getManagedHub()
+                hub: rave.getManagedHub()
             });
 
             rpcRegister();
@@ -88,10 +88,18 @@ rave.registerProvider(
         function implementViews() {
             container.views.createElementForGadget = function (metadata, rel, opt_view, opt_viewTarget, opt_coordinates, parentSite, opt_callback) {
                 if (opt_viewTarget) {
+                    var el = document.createElement('div');
+
                     var prefs = (metadata && metadata.views && metadata.views[opt_view])
                     var view = rave.renderView(opt_viewTarget, prefs);
-                    var el = view.getWidgetSite();
-                    el.setAttribute('data-rave-view', view._uid);
+                    if(view.inject){
+                        view.inject(el);
+                    }
+                    if (view.getWidgetSite) {
+                        el = view.getWidgetSite();
+                        el.setAttribute('data-rave-view', view._uid);
+                    }
+
                     return el;
                 }
             };
@@ -159,7 +167,7 @@ rave.registerProvider(
          full spectrum of allowed render options!
          */
         exports.renderWidget = function (widget, el, opts) {
-            if(widget.error) {
+            if (widget.error) {
                 widget.renderError(el, widget.error.message);
                 return;
             }
@@ -226,7 +234,7 @@ rave.registerProvider(
             }
         }
 
-        exports.getContainer = function() {
+        exports.getContainer = function () {
             return container;
         }