99 lines
4.3 KiB
JavaScript
99 lines
4.3 KiB
JavaScript
/*****************************************************************************
|
|
* ScribeEngine - Open Source Blog Software *
|
|
* ------------------------------------------------------------------------- *
|
|
* Copyright (c) 2010 Raoul Snyman *
|
|
* ------------------------------------------------------------------------- *
|
|
* This program is free software; you can redistribute it and/or modify it *
|
|
* under the terms of the GNU General Public License as published by the *
|
|
* Free Software Foundation; version 2 of the License. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, but *
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General *
|
|
* Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License along *
|
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
*****************************************************************************/
|
|
|
|
ScribeEngine.Namespace.create("ScribeEngine.Media", {
|
|
init: function ()
|
|
{
|
|
// do nothing for the moment. in future, pre-select the file.
|
|
},
|
|
closeWindow: function ()
|
|
{
|
|
window.close();
|
|
},
|
|
newDirectory: function ()
|
|
{
|
|
var dirname = prompt("New Directory:", "directory");
|
|
},
|
|
getFiles: function (event)
|
|
{
|
|
var tree = jQuery.jstree._focused();
|
|
var path = tree.get_path(ScribeEngine.Events.getElement(event));
|
|
$("#selected-path").val(path);
|
|
$.getJSON(
|
|
'/media/get-files',
|
|
{"path": path.toString()},
|
|
function (data, textStatus) {
|
|
$("#file-list > ul").html("");
|
|
$.each(data.results, function () {
|
|
var file = this;
|
|
if (file.name.length > 15)
|
|
{
|
|
file.display_name = file.name.substr(0, 12) + "...";
|
|
}
|
|
else
|
|
{
|
|
file.display_name = file.name;
|
|
}
|
|
$("#file-list > ul").append(
|
|
$("<li>")
|
|
.append(
|
|
$("<a>").attr("href", "#").attr("class", "file")
|
|
.html("<img src=\""+ file.type +"\" />")
|
|
)
|
|
.append(
|
|
$("<a>").attr("href", "#").attr("class", "caption")
|
|
.attr("title", file.name).text(file.display_name)
|
|
)
|
|
.attr("title", file.name)
|
|
);
|
|
});
|
|
}
|
|
);
|
|
return false;
|
|
},
|
|
selectFile: function (event)
|
|
{
|
|
var li = ScribeEngine.Events.getElement(event).parent();
|
|
if (!li.is("li"))
|
|
{
|
|
li = li.parent();
|
|
}
|
|
li.parent().children("li").children(".selected").removeClass("selected");
|
|
li.children("a").addClass("selected").blur();
|
|
$("#selected-file").val(li.attr("title"));
|
|
return false;
|
|
},
|
|
finishSelect: function (event)
|
|
{
|
|
var file = $("#selected-file").val();
|
|
var path = "/files/" + $("#selected-path").val().replace(",", "/");
|
|
var win = tinyMCEPopup.getWindowArg("window");
|
|
win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = path + "/" + file;
|
|
tinyMCEPopup.close();
|
|
//window.close();
|
|
}
|
|
});
|
|
|
|
ScribeEngine.Events.load(function () {
|
|
ScribeEngine.Events.click("#new-directory", ScribeEngine.Media.newDirectory);
|
|
ScribeEngine.Events.click("#file-select", ScribeEngine.Media.finishSelect);
|
|
ScribeEngine.Events.liveClick("#file-list > ul > li > a", ScribeEngine.Media.selectFile);
|
|
tinyMCEPopup.onInit.add(ScribeEngine.Media.init, ScribeEngine.Media);
|
|
});
|