file-browser.adp
Delivered as text/html
Related Files
[ hide source ] | [ make this the default ]
File Contents
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>@title@</title>
<script type="text/javascript" <if @::__csp_nonce@ not nil> nonce="@::__csp_nonce;literal@"</if>>
// Helper function to get parameters from the query string.
function getUrlParam( paramName ) {
var reParam = new RegExp( '(?:[\?&]|&)' + paramName + '=([^&]+)', 'i' );
var match = window.location.search.match( reParam );
return ( match && match.length > 1 ) ? match[1] : null;
}
// Simulate user action of selecting a file to be returned to CKEditor.
function returnFileUrl(fileUrl, altText) {
var funcNum = getUrlParam( 'CKEditorFuncNum' );
window.opener.CKEDITOR.tools.callFunction( funcNum, fileUrl, function() {
// Get the reference to a dialog window.
var dialog = this.getDialog();
// Check if this is the Image Properties dialog window.
if ( dialog.getName() == 'image' ) {
// Get the reference to a text field that stores the "alt" attribute.
var element = dialog.getContentElement( 'info', 'txtAlt' );
// Assign the new value.
if ( element )
element.setValue( altText );
}
// Return "false" to stop further execution. In such case CKEditor will ignore the second argument ("fileUrl")
// and the "onSelect" function assigned to the button that called the file manager (if defined).
// return false;
} );
window.close();
}
</script>
<style>
div {
display: flex;
flex-wrap: wrap;
}
</style>
</head>
<body>
<h2>@page_title@</h2>
<if @images:rowcount@ gt 0>
<div>
<multiple name="images">
<figure>
<a href="#"><img class="selectable" src="@images.src;noi18n@" alt="@images.alt@"></a>
</figure>
</multiple>
</div>
</if>
<else>
<p>@no_attachment@</p>
</else>
<p><button class="quit">quit</button></p>
<script type="text/javascript" <if @::__csp_nonce@ not nil> nonce="@::__csp_nonce;literal@"</if>>
var elems = document.getElementsByClassName('selectable');
for (var i = 0, l = elems.length; i < l; i++) {
var e = elems[i];
e.addEventListener('click', function (event) {
event.preventDefault();
console.log(event);
var t = event.target;
console.log(t);
returnFileUrl(t.getAttribute('src'), t.getAttribute('alt'));
});
}
var elems = document.getElementsByClassName('quit');
for (var i = 0, l = elems.length; i < l; i++) {
var e = elems[i];
e.addEventListener('click', function (event) {
window.close();
});
}
</script>
</body>
</html>
<!--
Local Variables:
mode: html
indent-tabs-mode: nil
End:
-->