Dateiverwaltung für die WebBox
ulrich
2017-03-17 e383f14455a77ad51d21c8ebcca482d968c74c00
web/ui/ui.js
@@ -31,6 +31,7 @@
var loc;
var PERS_DIR = "Persoenlich";
var PUB_DIR = "Oeffentlich";
var compilerIssues;
function fm_init() {
  $("#mce-editor").hide();
@@ -278,12 +279,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 +582,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 +867,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 +886,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 +907,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 ----------- */