Fix "View in separate window" option

This commit is contained in:
RainLoop Team 2016-06-10 21:42:41 +03:00
parent d20b4aa6f2
commit a1d829c697
2 changed files with 23 additions and 17 deletions

View file

@ -636,18 +636,19 @@ export function windowPopupKnockout(viewModel, templateID, title, fCallback = nu
{ {
const const
win = window.open(''), win = window.open(''),
doc = win.document,
func = '__OpenerApplyBindingsUid' + fakeMd5() + '__', func = '__OpenerApplyBindingsUid' + fakeMd5() + '__',
template = $('#' + templateID) template = $('#' + templateID)
; ;
window[func] = () => { window[func] = () => {
if (win && win.document.body && template && template[0]) if (win && doc && doc.body && template && template[0])
{ {
const body = $(win.document.body); const body = $(doc.body);
$('#rl-content', body).html(template.html()); $('#rl-content', body).html(template.html());
$('html', win.document).addClass('external ' + $('html').attr('class')); $('html', doc).addClass('external ' + $('html').attr('class'));
require('Common/Translator').i18nToNodes(body); require('Common/Translator').i18nToNodes(body);
@ -665,22 +666,27 @@ export function windowPopupKnockout(viewModel, templateID, title, fCallback = nu
} }
}; };
win.document.open(); doc.open();
win.document.write('<html><head>' + doc.write(trim(`
'<meta charset="utf-8" />' + <html>
'<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />' + <head>
'<meta name="viewport" content="user-scalable=no" />' + <meta charset="utf-8" />
'<meta name="apple-mobile-web-app-capable" content="yes" />' + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
'<meta name="robots" content="noindex, nofollow, noodp" />' + <meta name="viewport" content="user-scalable=no" />
'<title>' + encodeHtml(title) + '</title>' + <meta name="apple-mobile-web-app-capable" content="yes" />
'</head><body><div id="rl-content"></div></body></html>'); <meta name="robots" content="noindex, nofollow, noodp" />
win.document.close(); <title>${encodeHtml(title)}</title>
</head>
<body><div id="rl-content"></div></body>
</html>
`));
doc.close();
const script = win.document.createElement('script'); const script = doc.createElement('script');
script.type = 'text/javascript'; script.type = 'text/javascript';
script.innerHTML = `if(window&&window.opener&&window.opener['${func}]'){window.opener['${func}']();window.opener['${func}']=null}`; script.innerHTML = `if(window&&window.opener&&window.opener['${func}']){window.opener['${func}']();window.opener['${func}']=null}`;
win.document.getElementsByTagName('head')[0].appendChild(script); doc.getElementsByTagName('head')[0].appendChild(script);
} }
/** /**

View file

@ -74,7 +74,7 @@
<nobr> <nobr>
<div class="btn-group pull-right" style="margin-right: -11px;"> <div class="btn-group pull-right" style="margin-right: -11px;">
<div class="btn-group pull-right" data-bind="registrateBootstrapDropdown: true, visible: allowComposer || allowMessageListActions || allowMessageActions"> <div class="btn-group pull-right" data-bind="registrateBootstrapDropdown: true, visible: allowComposer || allowMessageListActions || allowMessageActions">
<a class="btn btn-thin-2 btn-transparent last btn-dark-disabled-border dropdown-toggle buttonMore" id="more-view-dropdown-id" href="#" tabindex="-1" data-toggle="dropdown" data-tooltip-join="bottom" style="margin-left: -4px; margin-right: 2px" data-bind="command: messageVisibilityCommand, tooltip: 'MESSAGE/BUTTON_MORE', css: {'first': !allowComposer}"> <a class="btn btn-thin-2 btn-transparent last btn-dark-disabled-border dropdown-toggle buttonMore" id="more-view-dropdown-id" href="#" tabindex="-1" data-toggle="dropdown" data-tooltip-join="bottom" style="margin-left: -4px; margin-right: 2px" data-bind="command: messageVisibilityCommand, css: {'first': !allowComposer}">
<span data-bind="visible: !allowComposer" class="icon-ellipsis-alt"></span> <span data-bind="visible: !allowComposer" class="icon-ellipsis-alt"></span>
<span data-bind="visible: allowComposer" class="caret"></span> <span data-bind="visible: allowComposer" class="caret"></span>
</a> </a>