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