Sha256: 00a63f31507df6a2f8ddc3b78a57975d9069021b212811f95417bf8e5c460945

Contents?: true

Size: 1.92 KB

Versions: 22

Compression:

Stored size: 1.92 KB

Contents

// ========================================================================
// SproutCore
// copyright 2006-2008 Sprout Systems, Inc.
// ========================================================================

require('views/view') ;
require('views/container') ;
require('globals/panels') ;

// This singleton manages the popups on the page.  It will show an element
// called 'popups', which is appended to the end of the body node.  To show
// a view as a popup, just call the popup() method on it along with an event.
// The view will be shown at the location more appropriate for the event.
// You can choose whether the popup is modal by setting the isModal property
// on the view.
SC.PopupView = SC.PanelView.extend({
  
  emptyElement: '<div id="popups" class="popups"></div>',
    
  wrapperView: SC.ContainerView.extend({
    emptyElement: '<div class="popup"></div>',
    visibleAnimation: {
      visible: 'opacity: 1.0',
      hidden: 'opacity: 0.0',
      duration: 200,
      onComplete: function(wrapperView) {
        if (!wrapperView.get('isVisible')) {
          SC.popups.hidePanelDidComplete(wrapperView) ;
        }
      }
    }
  }),
  
  locationFor: function(view,ev) {
    var loc = Event.pointerLocation(ev) ;
    var x = (ev) ? (loc.x - 20) : 100 ;
    var y = (ev) ? lox.y : 100 ;
    var dim = view.get('size') ;
    var screenSize = Element.getDimensions(this) ;
    
    // fit on screen
    var shift = (x+dim.width+50) - screenSize.width ;
    if (shift>0) x -= shift ;
    var shift = (y+dim.height+20) - screenSize.height ;
    if (shift>0) y -= shift ;
    
    return { left: x+'px', top: y+'px' };
  },
  
  // ...................................
  // VIEW SUPPORT FUNCTION
  //  
  // called in the context of the view.
  viewHide: function() { SC.page.get('popups').hidePanel(this); }
    
}) ;

SC.callOnLoad(function() { 
  if (!SC.page) SC.page = SC.Page.create() ;
  SC.page.popups = SC.PopupView.outletFor(null); 
}) ;

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
sproutcore-0.9.10 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.12 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.11 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.14 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.15 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.13 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.18 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.19 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.16 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.17 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.2 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.22 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.23 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.21 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.20 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.3 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.4 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.5 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.9 frameworks/sproutcore/globals/popups.js
sproutcore-0.9.7 frameworks/sproutcore/globals/popups.js