110 lines
3.0 KiB
JavaScript
110 lines
3.0 KiB
JavaScript
/////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin 4 - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
import gettext from 'sources/gettext';
|
|
import * as alertify from 'pgadmin.alertifyjs';
|
|
import url_for from 'sources/url_for';
|
|
import pgAdmin from 'sources/pgadmin';
|
|
|
|
let counter = 1;
|
|
|
|
function url_dialog(_title, _url, _help_filename, _width, _height) {
|
|
|
|
let pgBrowser = pgAdmin.Browser;
|
|
|
|
const dlgName = 'UrlDialog' + counter++;
|
|
|
|
alertify.dialog(dlgName, function factory() {
|
|
return {
|
|
main: function(_tmptitle) {
|
|
this.set({'title': _tmptitle});
|
|
},
|
|
build: function() {
|
|
alertify.pgDialogBuild.apply(this);
|
|
},
|
|
settings: {
|
|
url: _url,
|
|
title: _title,
|
|
},
|
|
setup: function() {
|
|
return {
|
|
buttons: [{
|
|
text: '',
|
|
key: 112,
|
|
className: 'btn btn-primary-icon pull-left fa fa-question pg-alertify-icon-button',
|
|
attrs: {
|
|
name: 'dialog_help',
|
|
type: 'button',
|
|
label: _title,
|
|
url: url_for('help.static', {
|
|
'filename': _help_filename,
|
|
}),
|
|
},
|
|
}, {
|
|
text: gettext('Close'),
|
|
key: 27,
|
|
className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
|
|
attrs: {
|
|
name: 'close',
|
|
type: 'button',
|
|
},
|
|
}],
|
|
// Set options for dialog
|
|
options: {
|
|
//disable both padding and overflow control.
|
|
padding: !1,
|
|
overflow: !1,
|
|
modal: false,
|
|
resizable: true,
|
|
maximizable: true,
|
|
pinnable: false,
|
|
closableByDimmer: false,
|
|
closable: false,
|
|
},
|
|
};
|
|
},
|
|
hooks: {
|
|
// Triggered when the dialog is closed
|
|
onclose: function() {
|
|
// Clear the view
|
|
return setTimeout((function() {
|
|
return (alertify[dlgName]()).destroy();
|
|
}), 1000);
|
|
},
|
|
},
|
|
prepare: function() {
|
|
// create the iframe element
|
|
var iframe = document.createElement('iframe');
|
|
iframe.frameBorder = 'no';
|
|
iframe.width = '100%';
|
|
iframe.height = '100%';
|
|
iframe.src = this.setting('url');
|
|
// add it to the dialog
|
|
this.elements.content.appendChild(iframe);
|
|
},
|
|
callback: function(e) {
|
|
if (e.button.element.name == 'dialog_help') {
|
|
e.cancel = true;
|
|
pgBrowser.showHelp(
|
|
e.button.element.name, e.button.element.getAttribute('url'),
|
|
null, null
|
|
);
|
|
}
|
|
},
|
|
};
|
|
});
|
|
(alertify[dlgName](_title)).show().resizeTo(_width || pgBrowser.stdW.lg, _height || pgBrowser.stdH.md);
|
|
}
|
|
|
|
pgAdmin.ui.dialogs.url_dialog = url_dialog;
|
|
|
|
export {
|
|
url_dialog,
|
|
};
|