78 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
| /**
 | |
|  * Copyright © Magento, Inc. All rights reserved.
 | |
|  * See COPYING.txt for license details.
 | |
|  */
 | |
| 
 | |
| define([
 | |
|     'jquery',
 | |
|     'jquery-ui-modules/widget'
 | |
| ], function ($) {
 | |
|     'use strict';
 | |
| 
 | |
|     $.widget('mage.popupWindow', {
 | |
|         options: {
 | |
|             centerBrowser: 0, // center window over browser window? {1 (YES) or 0 (NO)}. overrides top and left
 | |
|             centerScreen: 0, // center window over entire screen? {1 (YES) or 0 (NO)}. overrides top and left
 | |
|             height: 500, // sets the height in pixels of the window.
 | |
|             left: 0, // left position when the window appears.
 | |
|             location: 0, // determines whether the address bar is displayed {1 (YES) or 0 (NO)}.
 | |
|             menubar: 0, // determines whether the menu bar is displayed {1 (YES) or 0 (NO)}.
 | |
|             resizable: 0, // whether the window can be resized {1 (YES) or 0 (NO)}.
 | |
|             scrollbars: 0, // determines whether scrollbars appear on the window {1 (YES) or 0 (NO)}.
 | |
|             status: 0, // whether a status line appears at the bottom of the window {1 (YES) or 0 (NO)}.
 | |
|             width: 500, // sets the width in pixels of the window.
 | |
|             windowName: null, // name of window set from the name attribute of the element that invokes the click
 | |
|             windowURL: null, // url used for the popup
 | |
|             top: 0, // top position when the window appears.
 | |
|             toolbar: 0 // determines whether a toolbar is displayed {1 (YES) or 0 (NO)}.
 | |
|         },
 | |
| 
 | |
|         /**
 | |
|          * @private
 | |
|          */
 | |
|         _create: function () {
 | |
|             this.element.on('click', $.proxy(this._openPopupWindow, this));
 | |
|         },
 | |
| 
 | |
|         /**
 | |
|          * @param {jQuery.Event} event
 | |
|          * @private
 | |
|          */
 | |
|         _openPopupWindow: function (event) {
 | |
|             var element = $(event.target),
 | |
|                 settings = this.options,
 | |
|                 windowFeatures =
 | |
|                     'height=' + settings.height +
 | |
|                         ',width=' + settings.width +
 | |
|                         ',toolbar=' + settings.toolbar +
 | |
|                         ',scrollbars=' + settings.scrollbars +
 | |
|                         ',status=' + settings.status +
 | |
|                         ',resizable=' + settings.resizable +
 | |
|                         ',location=' + settings.location +
 | |
|                         ',menuBar=' + settings.menubar,
 | |
|                 centeredX,
 | |
|                 centeredY;
 | |
| 
 | |
|             settings.windowName = settings.windowName || element.attr('name');
 | |
|             settings.windowURL = settings.windowURL || element.attr('href');
 | |
| 
 | |
|             if (settings.centerBrowser) {
 | |
|                 centeredY = window.screenY + (window.outerHeight / 2 - settings.height / 2);
 | |
|                 centeredX = window.screenX + (window.outerWidth / 2 - settings.width / 2);
 | |
|                 windowFeatures += ',left=' + centeredX + ',top=' + centeredY;
 | |
|             } else if (settings.centerScreen) {
 | |
|                 centeredY = (screen.height - settings.height) / 2;
 | |
|                 centeredX = (screen.width - settings.width) / 2;
 | |
|                 windowFeatures += ',left=' + centeredX + ',top=' + centeredY;
 | |
|             } else {
 | |
|                 windowFeatures += ',left=' + settings.left + ',top=' + settings.top;
 | |
|             }
 | |
| 
 | |
|             window.open(settings.windowURL, settings.windowName, windowFeatures).focus();
 | |
|             event.preventDefault();
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     return $.mage.popupWindow;
 | |
| });
 |