From 1f550a4fce54040aa41f6351b0ba1fe1c404652d Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Sat, 18 Mar 2017 16:26:15 +0000 Subject: [PATCH] WebBox-Basis und -Daten-Ordner fuer wbxAdmin in Dateimanager aufgenommen --- web/ui/ui.js | 89 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 83 insertions(+), 6 deletions(-) diff --git a/web/ui/ui.js b/web/ui/ui.js index 2cfd263..977ea1c 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -31,6 +31,9 @@ var loc; var PERS_DIR = "Persoenlich"; var PUB_DIR = "Oeffentlich"; +var BASE_DIR = "$basis"; +var DATA_DIR = "$daten"; +var compilerIssues; function fm_init() { $("#mce-editor").hide(); @@ -93,6 +96,10 @@ restdir = pfad.substr(PUB_DIR.length); } else if(pfad.indexOf(PERS_DIR) > -1) { restdir = pfad.substr(PERS_DIR.length); + } else if(pfad.indexOf(BASE_DIR) > -1) { + restdir = pfad.substr(BASE_DIR.length); + } else if(pfad.indexOf(DATA_DIR) > -1) { + restdir = pfad.substr(DATA_DIR.length); } if(restdir !== undefined && restdir.startsWith('/')) { restdir = restdir.substr(1); @@ -278,12 +285,42 @@ } function fm_menu_test_2() { + fm_compile('0', fm_mark_compile_results_in_editor); +} + +function fm_mark_compile_results_in_editor(resp) { + cm.clearGutter("breakpoints"); + + if(resp.List[0].CompilerIssue !== undefined) { + var lno; + var eMsg; + if(resp.List[0].CompilerIssue instanceof Array) { + var issueNo = 0; + while(issueNo < resp.List[0].CompilerIssue.length) { + // console.log(resp.List[0].CompilerIssue[issueNo].kind); + // console.log(resp.List[0].CompilerIssue[issueNo].lineNumber); + // console.log(resp.List[0].CompilerIssue[issueNo].sourceName); + // console.log(resp.List[0].CompilerIssue[issueNo].message); + lno = resp.List[0].CompilerIssue[issueNo].lineNumber; + eMsg = resp.List[0].CompilerIssue[issueNo].kind + ' ' + resp.List[0].CompilerIssue[issueNo].message; + cm.setGutterMarker(lno-1, "breakpoints", makeMarker(eMsg)); + issueNo++; + } + } else { + lno = resp.List[0].CompilerIssue.lineNumber; + eMsg = resp.List[0].CompilerIssue.kind + ' ' + resp.List[0].CompilerIssue.message; + cm.setGutterMarker(lno-1, "breakpoints", makeMarker(eMsg)); + } + } +} + +function fm_compile(modeStr, callback) { var liste = fm_gewaehlte_dateien(); - var m = '?c=de.uhilger.filecms.api.CompileService&m=compile&p=' + pfad + '&p=' + encodeURIComponent(liste); + var m = '?c=de.uhilger.filecms.api.CompileService&m=compile&p=' + pfad + '&p=' + encodeURIComponent(liste) + + '&p=' + modeStr; var u = '../svc' + m; - fm_get(u, "text", function(resp) { - console.log('compile gab folgendes zurueck: '); - console.log(resp); + fm_get(u, "json", function(resp) { + callback(resp); }); } @@ -551,7 +588,7 @@ $('#modal_ok').click(function() { // hier umbenennen - fm_rename_file(fname, pfad, $('#dateiname').val()) + fm_rename_file(fname, pfad, $('#dateiname').val()); }); $('#saveModalTitle').text('Datei umbenennen'); $('#dialogfrage').text("Neuer Dateiname?"); @@ -836,13 +873,16 @@ /* ---- codemirror editor handling -------- */ +/* function htmlDecode(value){ return $('<div/>').html(value).text(); } +*/ function fm_code_edit(content, m) { cm = CodeMirror.fromTextArea(document.getElementById("editspace"), { lineNumbers: true, + gutters: ["CodeMirror-linenumbers", "breakpoints"], mode: m, viewportMargin : Infinity, tabSize: 2, @@ -852,6 +892,20 @@ }, "Esc": function(cm) { if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false); + }, + ".": function(cm) { + console.log('dot pressed: perhaps look up class or method name'); + /* + * Hier kann man eine Funktion ausloesen, die fuer das + * Wort vor dem Punkt (Name der Klasse) eine Liste mit + * Vorschlaegen fuer Methodennamen einblendet. + */ + + /* + * CodeMirror.Pass laesst das Zeichen zum Editorinhalt durch, + * verhindert aber das Ausloesen von 'keyHandled' + */ + return CodeMirror.Pass; } } }); @@ -859,9 +913,32 @@ //cm.setValue(content); cm.setValue(unescapeHtml(content)); cm.getDoc().markClean(); + cm.on("gutterClick", function(theEditor, lineNumber) { + var info = theEditor.lineInfo(lineNumber); + //--lineNumber; + //console.log(info.gutterMarkers.breakpoints.message); + //var marker = info.gutterMarkers.breakpoints; + //$(marker).tooltip('toggle'); + }); + /* + cm.on("keyHandled", function(theEditor, keyName, event){ + console.log('cm.keyHandled keyName: ' + keyName + ', event.type: ' + event.type); + }); + */ } - +function makeMarker(msg) { + var marker = document.createElement("div"); + marker.style.color = "#822"; + marker.innerHTML = "●"; + //marker.message = msg; + $(marker).tooltip({ + placement: 'right', + title: msg, + offset: '0 -30' + }); + return marker; +} /* -------- helper functions ----------- */ -- Gitblit v1.9.3