UNPKG

torii

Version:

A set of clean abstractions for authentication in Ember.js

63 lines (54 loc) 1.39 kB
import Evented from '@ember/object/evented'; import EmberObject from '@ember/object'; import { merge } from '@ember/polyfills'; import UiServiceMixin from 'torii/mixins/ui-service-mixin'; function stringifyOptions(options){ var optionsStrings = []; for (var key in options) { if (options.hasOwnProperty(key)) { var value; switch (options[key]) { case true: value = '1'; break; case false: value = '0'; break; default: value = options[key]; } optionsStrings.push( key+"="+value ); } } return optionsStrings.join(','); } function prepareOptions(options){ var width = options.width || 500, height = options.height || 500; return merge({ left: ((screen.width / 2) - (width / 2)), top: ((screen.height / 2) - (height / 2)), width: width, height: height }, options); } var Popup = EmberObject.extend(Evented, UiServiceMixin, { // Open a popup window. openRemote(url, pendingRequestKey, options) { var optionsString = stringifyOptions(prepareOptions(options || {})); this.remote = window.open(url, pendingRequestKey, optionsString); }, closeRemote() { }, pollRemote() { if (!this.remote) { return; } if (this.remote.closed) { this.trigger('didClose'); } } }); export default Popup;