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">×</a>
-
- <div class="site"></div>
+<div rave-register-view="dialog" dialog class="modal fade">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">×</a>
</div>
-</div>
-
-<div rave-dialog>
- <div class="popup dialog modal fade">
- <a href="#" class="close" data-dismiss="modal">×</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">×</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">×</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">×</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;
}