Dateiverwaltung für die WebBox
ulrich
2017-03-19 11536c42a172f2f63b6c7f2ee2b83667f2fbb5ee
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 WWW_DIR = "www";
var compilerIssues;
function fm_init() {
@@ -94,12 +97,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 +121,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 +172,8 @@
    importcss_append: true,
    width: "100%",
    height: '100%',
    relative_urls : true,
    convert_urls : false,
    document_base_url : base + "/",
    setup: function (editor) {
      ed = editor;
@@ -279,27 +295,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, "json", function(resp) {
    cm.clearGutter("breakpoints");
    if(resp.List[0].CompilerIssue !== undefined) {
      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);
          issueNo++;
        }
      } else {
        fm_set_code_marker(resp.List[0].CompilerIssue.lineNumber, resp.List[0].CompilerIssue.kind + ' ' + resp.List[0].CompilerIssue.message);
      }
    }
    callback(resp);
  });
}
@@ -567,7 +598,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 +883,11 @@
/* ---- codemirror editor handling -------- */
/*
function htmlDecode(value){ 
  return $('<div/>').html(value).text(); 
}
*/
function fm_code_edit(content, m) {
  cm = CodeMirror.fromTextArea(document.getElementById("editspace"), {
@@ -872,6 +905,17 @@
      },
        ".": 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;
      }
    }
  });
@@ -886,13 +930,11 @@
    //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);
    console.log('cm.keyHandled keyName: ' + keyName + ', event.type: ' + event.type);
  });
}
function fm_set_code_marker(lineNumber, message) {
 cm.setGutterMarker(lineNumber-1, "breakpoints", makeMarker(message));
  */
}
function makeMarker(msg) {
@@ -907,8 +949,6 @@
  });
  return marker;
}
/* -------- helper functions ----------- */