blob: c63e3a4f4cd18dd3027b8a664bb17a59c84b4bb6 [file] [log] [blame]
/** htmlArea - James' Fork - Linker Plugin **/
Linker._pluginInfo =
{
name : "Linker",
version : "1.0",
developer: "James Sleeman",
developer_url: "http://www.gogo.co.nz/",
c_owner : "Gogo Internet Services",
license : "htmlArea",
sponsor : "Gogo Internet Services",
sponsor_url : "http://www.gogo.co.nz/"
};
Xinha.loadStyle('dTree/dtree.css', 'Linker');
Xinha.Config.prototype.Linker =
{
'treeCaption' : document.location.host,
'backend' : Xinha.getPluginDir("Linker") + '/scan.php',
'backend_data' : null,
'files' : null,
'dialog': null,
'canSetTarget': true,
'canRemoveLink': true
};
function Linker(editor, args)
{
this.editor = editor;
this.lConfig = editor.config.Linker;
var linker = this;
if(typeof editor._createLink == 'undefined') {
editor._createLink = function(target) {
if(!target) target = linker._getSelectedAnchor();
linker._createLink(target);
}
}
if(!editor.config.btnList.createlink)
{
editor.config.registerButton(
'createlink', 'Insert/Modify Hyperlink', [_editor_url + "images/ed_buttons_main.gif",6,1], false,
function(e, objname, obj) { editor.execCommand("createlink"); }
);
}
// See if we can find 'createlink'
editor.config.addToolbarElement("createlink", "createlink", 0);
}
Linker.prototype._lc = function(string)
{
return Xinha._lc(string, 'Linker');
};
Linker.prototype.onGenerateOnce = function()
{
Linker.loadAssets();
this.loadFiles();
};
Linker.prototype.onUpdateToolbar = function()
{
if (typeof dTree == 'undefined' || !Linker.methodsReady || !Linker.html || !this.files)
{
this.editor._toolbarObjects.createlink.state("enabled", false);
}
else this.onUpdateToolbar = null;
};
Linker.Dialog_dTrees = [ ];
Linker.loadAssets = function()
{
var self = Linker;
if (self.loading) return;
self.loading = true;
Xinha._getback(Xinha.getPluginDir("Linker") + '/pluginMethods.js', function(getback) { eval(getback); self.methodsReady = true; });
Xinha._loadback( Xinha.getPluginDir("Linker") + '/dTree/dtree.js', function() {Linker.dTreeReady = true; } );
Xinha._getback( Xinha.getPluginDir("Linker") + '/dialog.html', function(getback) { self.html = getback; } );
}
Linker.prototype.loadFiles = function()
{
var linker = this;
if(linker.lConfig.backend)
{
//get files from backend
Xinha._postback(linker.lConfig.backend,
linker.lConfig.backend_data,
function(txt) {
try {
linker.files = eval(txt);
} catch(Error) {
linker.files = [ {url:'',title:Error.toString()} ];
}
});
}
else if(linker.lConfig.files != null)
{
//get files from plugin-config
linker.files = linker.lConfig.files;
}
}