Commit 56cb1129 authored by Alain Takoudjou's avatar Alain Takoudjou Committed by Nicolas Wavrant

fix fileTreeView in slaprunner editor

parent b74603bc
......@@ -58,7 +58,7 @@ class FileBrowser(object):
html += 'gsdirs.push(new gsItem("2", "%s", "%s", "0", "%s", "dir", "%s"));' % (f, ff, md5sum, mdate)
return html
def fancylistDirs(self, dir, key, all=False):
def fancylistDirs(self, dir, key, listfiles, all=False):
dir = urllib.unquote(dir)
realdir = realpath(self.config, dir)
if not realdir:
......@@ -73,18 +73,18 @@ class FileBrowser(object):
ff = os.path.join(dir, f)
realfile = os.path.join(realdir, f)
identity = "%s%s" % (key, i)
if not os.path.isdir(realfile):
if os.path.isdir(realfile):
dirList.append({"title": f, "key": identity,
"folder":True, "lazy":True, "path": ff})
elif listfiles:
regex = re.compile("(^.*)\.(.*)", re.VERBOSE)
ext = regex.sub(r'\2', f)
if ext == f:
ext = ""
dirList.append({"title": f, "key": identity,
"extraClasses": "ext_"+ext, "path": ff})
else:
fileList.append({"title": f, "key": identity,
"folder":True, "lazy":True, "path": ff})
"extraClasses": "ext_"+ext, "path": ff})
i+=1
return (fileList + dirList)
return (dirList + fileList)
def makeDirectory(self, dir, filename):
"""Create a directory"""
......
This diff is collapsed.
......@@ -11,7 +11,6 @@ $(document).ready(function () {
CurrentMode,
script = "/readFolder",
softwareDisplay = true,
fileTree,
Mode,
modes,
projectDir = $("input#project").val(),
......@@ -86,7 +85,7 @@ $(document).ready(function () {
function selectFile(file) {
$("#info").empty();
$("#info").append("Selection: " + file);
$("#info").append("Current work tree: " + file);
selection = file;
return;
}
......@@ -117,7 +116,7 @@ $(document).ready(function () {
$('#fileTreeFull').hide();
}
$("#info").empty();
$("#info").append("Selection: " + base_path());
$("#info").append("Current work tree: " + base_path());
selection = "";
}
......@@ -296,7 +295,7 @@ $(document).ready(function () {
success: function (data) {
$("#inline_content").empty();
$("#inline_content").append('<h2 style="color: #4c6172; font: 18px \'Helvetica Neue\', Helvetica, Arial, sans-serif;">Content of file: ' +
node.title +'</h2>');
node.title +'</h2>');
$("#inline_content").append('<br/><div class="main_content"><pre id="editorViewer"></pre></div>');
viewer = ace.edit("editorViewer");
viewer.setTheme("ace/theme/crimson_editor");
......@@ -390,8 +389,11 @@ $(document).ready(function () {
};
// --- Init fancytree during startup ----------------------------------------
$(function(){
$("#fileTree").fancytree({
function initTree(tree, path, key){
if (!key){
key = '0';
}
$(tree).fancytree({
activate: function(event, data) {
var node = data.node;
},
......@@ -404,14 +406,14 @@ $(document).ready(function () {
},
source: {
url: $SCRIPT_ROOT + "/fileBrowser",
data:{opt: 20, dir: currentProject, key: 0},
data:{opt: 20, dir: path, key: key, listfiles: 'yes'},
cache: false
},
lazyload: function(event, data) {
var node = data.node;
data.result = {
url: $SCRIPT_ROOT + "/fileBrowser",
data: {opt: 20, dir: node.data.path , key: node.key}
data: {opt: 20, dir: node.data.path , key: node.key, listfiles: 'yes'}
}
},
keydown: function(event, data) {
......@@ -461,7 +463,7 @@ $(document).ready(function () {
bindContextMenu(data.node.span, !data.node.isFolder());
}
});
});
}
editor.setTheme("ace/theme/crimson_editor");
......@@ -494,7 +496,9 @@ $(document).ready(function () {
/*$('#fileTreeFull').fileTree({ root: currentProject, script: $SCRIPT_ROOT + script, folderEvent: 'click', expandSpeed: 750, collapseSpeed: 750, multiFolder: false, selectFolder: true }, function (file) {
selectFile(file);
}, function (file) { openFile(file); });*/
$("#info").append("Selection: " + base_path());
initTree('#fileTree', projectDir, 'pfolder');
initTree('#fileTreeFull', currentProject);
$("#info").append("Current work tree: " + base_path());
/*setDetailBox();*/
editor.on("change", function (e) {
......@@ -549,7 +553,7 @@ $(document).ready(function () {
$("#clearselect").click(function () {
edit = false;
$("#info").empty();
$("#info").append("Selection: " + base_path());
$("#info").append("Current work tree: " + base_path());
$("input#subfolder").val("");
$("#edit_info").empty();
$("#edit_info").append("No file in editor");
......
......@@ -48,7 +48,7 @@
</div>
<div id="details_box">
<div id="fileTree" class="file_tree_short"></div>
<div id="fileTreeFull" style='display:none' class="file_tree_short" title="Double click to edit selected file..."></div>
<div id="fileTreeFull" style='display:none' class="file_tree_short"></div>
</div>
</div>
<div id="code">
......
......@@ -587,60 +587,61 @@ def fileBrowser():
else:
opt = int(request.args.get('opt'))
# try:
if opt == 1:
#list files and directories
result = file_request.listDirs(dir)
elif opt == 2:
#Create file
result = file_request.makeFile(dir, filename)
elif opt == 3:
#Create directory
result = file_request.makeDirectory(dir, filename)
elif opt == 4:
#Delete a list of files or/and directories
result = file_request.deleteItem(dir, files)
elif opt == 5:
#copy a lis of files or/and directories
result = file_request.copyItem(dir, files)
elif opt == 6:
#rename file or directory
result = file_request.rename(dir, filename, newfilename)
elif opt == 7:
result = file_request.copyItem(dir, files, del_source=True)
elif opt == 8:
#donwload file
filename = request.args.get('filename').encode('utf-8')
result = file_request.downloadFile(request.args.get('dir').encode('utf-8'),
filename)
try:
return send_file(result, attachment_filename=filename, as_attachment=True)
except:
abort(404)
elif opt == 9:
result = file_request.readFile(dir, filename, False)
elif opt == 11:
#Upload file
result = file_request.uploadFile(dir, request.files)
elif opt == 14:
#Copy file or directory as ...
result = file_request.copyAsFile(dir, filename, newfilename)
elif opt == 16:
#zip file
result = file_request.zipFile(dir, filename, newfilename)
elif opt == 17:
#zip file
result = file_request.unzipFile(dir, filename, newfilename)
elif opt == 20:
#Fancy Load folder
key = int(request.args.get('key'))
dir = request.args.get('dir').encode('utf-8')
data = file_request.fancylistDirs(dir, key)
result = json.dumps(data)
else:
result = "ARGS PARSE ERROR: Bad option..."
# except Exception as e:
# return str(e)
try:
if opt == 1:
#list files and directories
result = file_request.listDirs(dir)
elif opt == 2:
#Create file
result = file_request.makeFile(dir, filename)
elif opt == 3:
#Create directory
result = file_request.makeDirectory(dir, filename)
elif opt == 4:
#Delete a list of files or/and directories
result = file_request.deleteItem(dir, files)
elif opt == 5:
#copy a lis of files or/and directories
result = file_request.copyItem(dir, files)
elif opt == 6:
#rename file or directory
result = file_request.rename(dir, filename, newfilename)
elif opt == 7:
result = file_request.copyItem(dir, files, del_source=True)
elif opt == 8:
#donwload file
filename = request.args.get('filename').encode('utf-8')
result = file_request.downloadFile(request.args.get('dir').encode('utf-8'),
filename)
try:
return send_file(result, attachment_filename=filename, as_attachment=True)
except:
abort(404)
elif opt == 9:
result = file_request.readFile(dir, filename, False)
elif opt == 11:
#Upload file
result = file_request.uploadFile(dir, request.files)
elif opt == 14:
#Copy file or directory as ...
result = file_request.copyAsFile(dir, filename, newfilename)
elif opt == 16:
#zip file
result = file_request.zipFile(dir, filename, newfilename)
elif opt == 17:
#zip file
result = file_request.unzipFile(dir, filename, newfilename)
elif opt == 20:
#Fancy Load folder
key = request.args.get('key')
dir = request.args.get('dir').encode('utf-8')
listfiles = request.args.get('listfiles', '')
data = file_request.fancylistDirs(dir, key, listfiles)
result = json.dumps(data)
else:
result = "ARGS PARSE ERROR: Bad option..."
except Exception as e:
return str(e)
return result
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment