Dateiverwaltung für die WebBox
ulrich
2017-02-18 e5ff423d0b1b1ff57410c7efeb6ac97f42b07d35
web/ui/ui.js
@@ -1,5 +1,117 @@
var cm;
function fm_init() {
  $('.codeeditor-space').hide();
  $('.code-editor-container').hide();
  $('#newTextFile').on('click', fm_menu_neue_textdatei);
  $('#saveFile').on('click', fm_menu_datei_speichern);
  $('#closeFile').on('click', fm_menu_datei_schliessen);
  fm_get_login();
}
function fm_menu_neue_textdatei() {
  $('#dateiansicht').hide();
  $('.codeeditor-space').show();
  $('.code-editor-container').show();
  fm_code_edit('Test');
}
function fm_menu_datei_schliessen() {
  $('.codeeditor-space').hide();
  $('.code-editor-container').hide();
  cm.toTextArea();
  $('#dateiansicht').show();
}
function fm_get_login() {
  var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser';
  var u = '../../um/pub' + m;
  fm_get(u, function(resp) {
    $('#userMenu').text(resp.UserData.firstName);
  });
}
function fm_menu_datei_speichern() {
  // FileRef saveTextFile(String relPath, String fileName, String contents)
  
}
  /*
  var t = new Template(-2, $('#filename').val(), self.cm.getValue(), 3);
  var u = '../api/tr/?c=de.uhilger.webbox.api.ContentApi&m=newTemplate';
  self.post(u, {p: self.serialise(t)}, function (resp) {
    self.isnew = false;
    self.editid = resp.Template.id;
    $('#contlist').append(self.buildContListItem(3, resp.Template.name, resp.Template.id));
    $('#templateeditor').addClass('hidden');
  });
  */
}
/* ---- codemirror editor handling -------- */
function fm_code_edit(content) {
  var windowHeight = $(window).height();
  //$("editspace").empty();
  //self.cm.toTextArea();
  cm = CodeMirror.fromTextArea(document.getElementById("editspace"), {
    lineNumbers: true,
    mode: "xml",
    viewportMargin : Infinity,
    extraKeys: {
           "F9": function(cm) {
             cm.setOption("fullScreen", !cm.getOption("fullScreen"));
           },
           "Esc": function(cm) {
             if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
          }
    }
  });
  // cm.setSize("100%", windowHeight - 100); // w, h
  cm.setValue(content);
};
/* -------- helper functions ----------- */
function fm_get(u, scallback) {
  $.ajax({
    url: u,
    type: "GET",
    dataType: "json",
    success: scallback,
    error: function (xhr, status, errorThrown) {
      alert("Error: " + errorThrown + " Status: " + status + " URL: " + u);
    },
    complete: function (xhr, status) {
      //console.log( "The request is complete!" );
    }
  });
};
function fm_post(u, d, scallback) {
  $.ajax({
    url: u,
    data: d,
    type: "POST",
    dataType: "json",
    success: scallback,
    error: function (xhr, status, errorThrown) {
      $('#fehler').html("Error: " + errorThrown + " Status: " + status);
    },
    complete: function (xhr, status) {
      //alert( "The request is complete!" );
    }
  });
};
function fm_serialise(obj) {
  return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}';
};