/** * User: Julia.Radzhabova * Date: 09.02.15 */ define([ 'common/main/lib/component/Window', 'common/main/lib/component/LoadMask' ], function () { 'use strict'; DE.Views.MailMergeRecepients = Common.UI.Window.extend(_.extend({ initialize : function(options) { var _options = {}; _.extend(_options, { title: this.textTitle, width: 1024, height: 621, header: true }, options); this.template = [ '
' ].join(''); _options.tpl = _.template(this.template, _options); this.fileChoiceUrl = options.fileChoiceUrl || ''; Common.UI.Window.prototype.initialize.call(this, _options); }, render: function() { Common.UI.Window.prototype.render.call(this); this.$window.find('> .body').css({height: 'auto', overflow: 'hidden'}); var iframe = document.createElement("iframe"); iframe.width = '100%'; iframe.height = 585; iframe.align = "top"; iframe.frameBorder = 0; iframe.scrolling = "no"; iframe.onload = _.bind(this._onLoad,this); $('#id-mail-recepients-placeholder').append(iframe); this.loadMask = new Common.UI.LoadMask({owner: $('#id-mail-recepients-placeholder')}); this.loadMask.setTitle(this.textLoading); this.loadMask.show(); iframe.src = this.fileChoiceUrl; var me = this; this._eventfunc = function(msg) { me._onWindowMessage(msg); }; this._bindWindowEvents.call(this); this.on('close', function(obj){ me._unbindWindowEvents(); }); }, _bindWindowEvents: function() { if (window.addEventListener) { window.addEventListener("message", this._eventfunc, false) } else if (window.attachEvent) { window.attachEvent("onmessage", this._eventfunc); } }, _unbindWindowEvents: function() { if (window.removeEventListener) { window.removeEventListener("message", this._eventfunc) } else if (window.detachEvent) { window.detachEvent("onmessage", this._eventfunc); } }, _onWindowMessage: function(msg) { // TODO: check message origin if (msg && window.JSON) { try { this._onMessage.call(this, window.JSON.parse(msg.data)); } catch(e) {} } }, _onMessage: function(msg) { if (msg && msg.file !== undefined) { Common.NotificationCenter.trigger('window:close', this); var me = this; setTimeout(function() { if ( !_.isEmpty(msg.file) ) { me.trigger('mailmergerecepients', me, msg.file); } }, 50); } }, _onLoad: function() { if (this.loadMask) this.loadMask.hide(); }, textTitle : 'Select Data Source', textLoading : 'Loading' }, DE.Views.MailMergeRecepients || {})); });