blob: db95e4ca0f07b76aa00d962b82c49bc0e7426ede [file] [log] [blame]
/*
---
description: MooTools FileManager for integration with [TinyMCE](http://tinymce.moxiecode.com/)
authors: Christoph Pojer (@cpojer)
license: MIT-style license.
requires: [Core/*]
provides: FileManager.TinyMCE
Usage:
- Pass this to the "file_browser_callback"-option of TinyMCE: FileManager.TinyMCE(function(){ return {FileManagerOptions}; });
- See the Demo for an example.
...
*/
FileManager.TinyMCE = function(options){
/*
* field: Id of the element to set value in.
* url: value currently stored in the indicated element
* type: Type of browser to open image/file/flash: 'file' ~ page links, 'image' ~ insert picture, 'media' ~ insert media/movie
* win: window object reference
*/
return function(field, url, type, win){
var manager; // jsLint warning fix
manager = new FileManager(Object.append({
onComplete: function(path, file, mgr) {
if (!win.document)
return;
//path = manager.escapeRFC3986(path);
win.document.getElementById(field).value = path;
if (win.ImageDialog) {
win.ImageDialog.showPreviewImage(path, 1);
}
this.container.destroy();
}
}, options(type),
{
zIndex: 400000,
styles: {
'width': '90%',
'height': '90%'
}
}));
var src = win.document.getElementById(field).value;
src = decodeURI(src);
if (src.length > 0)
{
//src = this.documentBaseURI.toAbsolute(src);
}
if (src.match(/^[a-z]+:/i))
{
// strip off scheme + authority sections:
src = src.replace(/^[a-z]+:(\/\/?)[^\/]*/i, '');
}
// pass full path to 'preselect': backend will take care of it for us
manager.show(null, null, (src.length > 0 ? src : null));
return manager;
};
};