/***************************************************************************** * 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( $("
  • ") .append( $("").attr("href", "#").attr("class", "file") .html("") ) .append( $("").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); });