From d948baa82de185de8f380395a319231aaa38c973 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Mon, 20 Mar 2017 15:34:49 +0000 Subject: [PATCH] Test-Pfad entfernt --- web/ui/ui.js | 203 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 178 insertions(+), 25 deletions(-) diff --git a/web/ui/ui.js b/web/ui/ui.js index 97867a7..3deda97 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -31,12 +31,16 @@ var loc; var PERS_DIR = "Persoenlich"; var PUB_DIR = "Oeffentlich"; +var BASE_DIR = "$basis"; +var DATA_DIR = "$daten"; +var WWW_DIR = "www"; var compilerIssues; function fm_init() { $("#mce-editor").hide(); $('.codeeditor-space').hide(); $('.code-editor-container').hide(); + $('.sued').hide(); //$('.ost').attr('flex-basis', 0); $('#newTextFile').on('click', fm_menu_neue_textdatei); $('#newDoc').on('click', fm_menu_neues_dokument); @@ -58,11 +62,14 @@ $('#m-paste').on('click', fm_menu_paste); $('#m-shrink').on('click', fm_menu_shrink); $('#m-test').on('click', fm_menu_test); - $('#m-test-2').on('click', fm_menu_test_2); + $('#m-test-2').on('click', fm_menu_compile); + $('#m-test-3').on('click', fm_menu_compile_all); + $('#m-compile-results').on('click', fm_fusszeile_zeigen); $('#saveModal').on('hidden.bs.modal', function (e) { $('#modal_ok').attr('onclick','').unbind('click'); }); $('#logout').click(fm_logout); + $('#fusszeile-schliessen').on('click', fm_fusszeile_schliessen); fm_get_login(); fm_get_list(''); fm_init_uploader(); @@ -87,6 +94,14 @@ }, 200); } +function fm_fusszeile_schliessen() { + $('.sued').hide(); +} + +function fm_fusszeile_zeigen() { + $('.sued').show(); +} + function fm_get_path(uid) { //console.log('pfad: ' + pfad); var restdir; @@ -94,12 +109,19 @@ 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); + if(restdir.indexOf(WWW_DIR) > -1) { + restdir = restdir.replace(WWW_DIR, 'data'); + } } var pdir = fm_get_base(uid); - //console.log('path: ' + pdir + "/" + restdir); + // console.log('fm_get_path path: ' + pdir + "/" + restdir); if(restdir.length > 1) { return pdir + "/" + restdir; } else { @@ -111,18 +133,22 @@ //console.log('pfad: ' + pfad); var pdir; if(pfad.indexOf(PUB_DIR) > -1) { - pdir = '/data/'; + pdir = '/data/' + uid; } else if(pfad.indexOf(PERS_DIR) > -1) { - pdir = '/home/'; + pdir = '/home/' + uid; + } else if(pfad.indexOf(BASE_DIR) > -1) { + pdir = ''; + } else if(pfad.indexOf(DATA_DIR) > -1) { + pdir = ''; } - //console.log('base: ' + pdir + uid); - return pdir + uid; + //console.log('fm_get_base base: ' + pdir + uid); + return pdir; } function fm_dok_editor_init(uid) { var base = fm_get_path(uid); edCount = 0; - //console.log("calling tinymce.init with base: " + base + "/"); + //console.log("fm_dok_editor_init calling tinymce.init with base: " + base + "/"); /* * vgl. @@ -158,6 +184,8 @@ importcss_append: true, width: "100%", height: '100%', + relative_urls : true, + convert_urls : false, document_base_url : base + "/", setup: function (editor) { ed = editor; @@ -249,6 +277,7 @@ */ function fm_gewaehlte_dateien() { var gewaehlte = $('.datei-gewaehlt'); + /* //console.log('anzahl: ' + gewaehlte.length); var fnames = new Array(); var i = 0; @@ -264,7 +293,27 @@ // {"List":[{"java.lang.String":"test3.txt"},{"java.lang.String":"Test1.txt"},{"java.lang.String":"Test2.txt"}]} // und wird auf dem Server zu einer List[ArrayList<String>] bei der jede ArrayList<String> nur ein Element hat return liste; + */ + return fm_dateiliste_bilden(gewaehlte); } + +function fm_dateiliste_bilden(gewaehlte) { + var fnames = new Array(); + var i = 0; + while(i < gewaehlte.length) { + var str = { "java.lang.String": $(gewaehlte[i]).text()}; + fnames.push(str); + //console.log('loeschen ' + pfad + ' ' + $(gewaehlte[i]).text()); + //i += 2; + i++; + } + var liste = '{"List":' + JSON.stringify(fnames) + '}'; + // 'liste' enthaelt: + // {"List":[{"java.lang.String":"test3.txt"},{"java.lang.String":"Test1.txt"},{"java.lang.String":"Test2.txt"}]} + // und wird auf dem Server zu einer List[ArrayList<String>] bei der jede ArrayList<String> nur ein Element hat + return liste; +} + /* --------- Dateifunktionen Ende ---------- */ function fm_menu_test() { @@ -278,28 +327,105 @@ } } -function fm_menu_test_2() { - var liste = fm_gewaehlte_dateien(); - var m = '?c=de.uhilger.filecms.api.CompileService&m=compile&p=' + pfad + '&p=' + encodeURIComponent(liste); +function fm_menu_compile() { + fm_compile('0', fm_mark_compile_results_in_editor); +} +function fm_menu_compile_all() { + fm_compile_all(); +} + +function fm_mark_compile_results_in_editor(resp) { + cm.clearGutter("breakpoints"); + + if(resp.List[0].CompilerIssue !== undefined) { + cm.setGutterMarker(0, "breakpoints", makeMarker("Code hat Fehler")); + 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_all() { + var m = '?c=de.uhilger.filecms.api.CompileService&m=compileAll&p=' + pfad; var u = '../svc' + m; fm_get(u, "json", function(resp) { - cm.clearGutter("breakpoints"); - if(resp.List[0].CompilerIssue !== undefined) { + var lno; + var eMsg; + var issueList = new Array(); 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); - fm_set_code_marker(resp.List[0].CompilerIssue[issueNo].lineNumber, resp.List[0].CompilerIssue[issueNo].kind + ' ' + resp.List[0].CompilerIssue[issueNo].message); + /* + $('.system-out').append(' +++ ---- +++ '); + $('.system-out').append(resp.List[0].CompilerIssue[issueNo].kind); + $('.system-out').append(resp.List[0].CompilerIssue[issueNo].lineNumber); + $('.system-out').append(resp.List[0].CompilerIssue[issueNo].sourceName); + $('.system-out').append(resp.List[0].CompilerIssue[issueNo].message); + */ + var issue = new CompilerIssue( + resp.List[0].CompilerIssue[issueNo].sourceName, + resp.List[0].CompilerIssue[issueNo].message, + resp.List[0].CompilerIssue[issueNo].kind, + resp.List[0].CompilerIssue[issueNo].lineNumber + ); + issueList.push(issue); + + /* + console.log(' +++ ---- +++ '); + 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); + */ issueNo++; } } else { - fm_set_code_marker(resp.List[0].CompilerIssue.lineNumber, resp.List[0].CompilerIssue.kind + ' ' + resp.List[0].CompilerIssue.message); + //lno = resp.List[0].CompilerIssue.lineNumber; + //eMsg = resp.List[0].CompilerIssue.kind + ' ' + resp.List[0].CompilerIssue.message; + //$('.system-out').append(lno + ' ' + eMsg); + //console.log(lno + ' ' + eMsg); + var issue = new CompilerIssue( + resp.List[0].CompilerIssue.sourceName, + resp.List[0].CompilerIssue.message, + resp.List[0].CompilerIssue.kind, + resp.List[0].CompilerIssue.lineNumber + ); + issueList.push(issue); } + var theList = new IssueList(issueList); + var template = $('#tpl-ci').html(); + Mustache.parse(template); // optional, speeds up future uses + $('.system-out').empty(); + $('.system-out').html(Mustache.render(template, theList)); + $('.sued').show(); } + }); +} + +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) + + '&p=' + modeStr; + var u = '../svc' + m; + fm_get(u, "json", function(resp) { + callback(resp); }); } @@ -567,7 +693,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?"); @@ -852,9 +978,11 @@ /* ---- codemirror editor handling -------- */ +/* function htmlDecode(value){ return $('<div/>').html(value).text(); } +*/ function fm_code_edit(content, m) { cm = CodeMirror.fromTextArea(document.getElementById("editspace"), { @@ -869,6 +997,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; } } }); @@ -883,10 +1025,11 @@ //var marker = info.gutterMarkers.breakpoints; //$(marker).tooltip('toggle'); }); -} - -function fm_set_code_marker(lineNumber, message) { - cm.setGutterMarker(lineNumber-1, "breakpoints", makeMarker(message)); + /* + cm.on("keyHandled", function(theEditor, keyName, event){ + console.log('cm.keyHandled keyName: ' + keyName + ', event.type: ' + event.type); + }); + */ } function makeMarker(msg) { @@ -901,8 +1044,6 @@ }); return marker; } - - /* -------- helper functions ----------- */ @@ -969,6 +1110,18 @@ /* ----- Objekte ----- */ +function IssueList(il) { + this.issues = il; +} + +function CompilerIssue(sn, ms, ki, ln) { + var self = this; + this.sourceName = sn; + this.message = ms; + this.kind = ki; + this.lineNumber = ln; +} + function FileList(fl) { this.files = fl; } -- Gitblit v1.9.3