/** * DocumentAccessDialog.js * * Created by Julia Radzhabova on 3/14/14 * Copyright (c) 2014 Ascensio System SIA. All rights reserved. * */ define([ 'common/main/lib/component/Window', 'common/main/lib/component/LoadMask' ], function () { 'use strict'; Common.Views.DocumentAccessDialog = Common.UI.Window.extend(_.extend({ initialize : function(options) { var _options = {}; _.extend(_options, { title: this.textTitle, width: 850, height: 536, header: true }, options); this.template = [ '
' ].join(''); _options.tpl = _.template(this.template, _options); this.settingsurl = options.settingsurl || ''; 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 = 500; iframe.align = "top"; iframe.frameBorder = 0; iframe.scrolling = "no"; iframe.onload = _.bind(this._onLoad,this); $('#id-sharing-placeholder').append(iframe); this.loadMask = new Common.UI.LoadMask({owner: $('#id-sharing-placeholder')}); this.loadMask.setTitle(this.textLoading); this.loadMask.show(); iframe.src = this.settingsurl; 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.needUpdate) { this.trigger('accessrights', this, msg.sharingSettings); } Common.NotificationCenter.trigger('window:close', this); }, _onLoad: function() { if (this.loadMask) this.loadMask.hide(); }, textTitle : 'Sharing Settings', textLoading : 'Loading' }, Common.Views.DocumentAccessDialog || {})); });