Hi all,
I am trying to create a plugin that implements the option to set permissions on a folder. This is done by adding a tool panel and open a iframe to an aspx file that handles the permissions for this folder.
From topic "Plugin detecting folder changes", i figured out how to add an event in my plugin that catches when a new folder is selected in the folder tree. But this tool panel only shows when i select a folder, not show when ckfinder is loaded at the first time.
my plugin:
CKFinder.addPlugin('myplugin',
{
connectorInitialized: function (api, xml)
{
var toolId = api.addTool();
function updateFolderName()
{
var folder = api.getSelectedFolder();
if (folder)
{
api.showTool(toolId);
api.document.getElementById(toolId).innerHTML = '<style type="text/css">#tool_18 {backgrond-color:#ffffff; border: 1px solid; border-color: #D3D3D3; overflow-x: hidden; overflow-y: hidden; position: relative; border-radius: 5px 5px 5px 5px;}</style><iframe src="/permissions?folder=' + folder.getUrl() + '" width="100%" />';
}
};
api.connector.app.on('requestShowFolderFiles', updateFolderName);
}
});
I replaced "display:none" to "display:block" in ckfinder.js to test when ckfinder is loaded at the first time.
m.add('tools', {
eK: function r(q)
{
this.app = q;
},
addTool: function (q, r)
{
var s = 'tool_' + i.getNextNumber();
q = r ? '<div id="' + s + '" class="view tool_panel" tabindex="0" style="display: none;">' + q + '</div>' : '<div id="' + s + '" class="tool" style="display: block;">' + q + '</div>';
this.app.layout.dV().aC(0).appendHtml(q);
return s;
},
addToolPanel: function (q)
{
q = q || '';
var r = this.addTool(q, 1),
s = this.app.layout.dV().aC(0).dB();
p(s);
return r;
},
hideTool: function (q)
{
this.app.document.getById(q).setStyle('display', 'none');
this.app.layout.ea(true);
},
showTool: function (q)
{
this.app.document.getById(q).removeStyle('display');
this.app.layout.ea(true);
},
removeTool: function (q)
{
this.hideTool(q);
this.app.document.getById(q).remove();
}
});
But when ckfinder is loaded at the first time, a text "undefined" is shown instead of iframe in tool panel.
Tool panel shows iframe when i select a folder.
When i select subfolders and reopen ckfinder, tool panel show iframe but when i select root folder, tool panel only show text "undefined" until i select that folder again, then tool panel show iframe.
I used firebug and saw that when i select root folder, "permissions?folder=""". When i select subfolders, "permissions?folder=selected folder name".
I think when i select subfolders, a cookie is created, so when i reopen ckfinder, iframe in tool panel is shown. But when i select root folder, maybe cookie isn't created so when i reopen ckfinder, text "undefined" is shown instead of iframe.
Is my opinion right ? What do i do to show iframe when ckfinder is loaded at the first time ?
Re: Need help with CKFinder