From 42fecef285c712f2a8d9b1b6371edc6ea9d9fac6 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Mon, 27 Feb 2017 22:26:21 +0000
Subject: [PATCH] Upload in gewaehltes Verzeichnis eingebaut und einige Modes bei Codemirror hinzugefuegt

---
 web/ui/ui.js |  161 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 98 insertions(+), 63 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index 47ca193..1896636 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -22,6 +22,8 @@
 var openFileName = '';
 var ed;
 var openEditor;
+var userid;
+var tmo;
 
 function fm_init() {
   $("#mce-editor").hide();
@@ -31,6 +33,7 @@
   $('#newTextFile').on('click', fm_menu_neue_textdatei);
   $('#newDoc').on('click', fm_menu_neues_dokument);
   $('#newFolder').on('click', fm_get_new_folder);
+  $('#viewFile').on('click', fm_view_file);
   $('#editTextFile').on('click', function() {
     fm_get_file_content('text');
   });
@@ -49,6 +52,66 @@
   fm_get_login();
   fm_get_list('');
   fm_init_uploader();
+}
+
+function fm_resize_editor() {
+  window.clearTimeout(tmo);
+  tmo = window.setTimeout(function () {
+    try {
+      var myHeight = $('.zentrum').height() - $('.nord').height() - 4;
+      ed.theme.resizeTo('100%', myHeight);  // sets the dimensions of the editable area
+    } catch (err) {
+    }
+  }, 200);
+}
+
+function fm_get_path(uid) {
+  //console.log('pfad: ' + pfad);
+  var restdir;
+  if(pfad.indexOf('Oeffentlich') > -1) {
+    restdir = pfad.substr('Oeffentlich'.length);
+  } else if(pfad.indexOf('Persoenlicher Ordner') > -1) {
+    restdir = pfad.substr('Persoenlicher Ordner'.length);
+  }
+  if(restdir !== undefined && restdir.startsWith('/')) {
+    restdir = restdir.substr(1);
+  }
+  var pdir = fm_get_base(uid);
+  //console.log('path: ' + pdir + "/" + restdir);
+  if(restdir.length > 1) {
+    return pdir + "/" + restdir;
+  } else {
+    return pdir;
+  }
+}
+
+function fm_get_base(uid) {
+  //console.log('pfad: ' + pfad);
+  var pdir;
+  if(pfad.indexOf('Oeffentlich') > -1) {
+    pdir = '/data/';
+  } else if(pfad.indexOf('Persoenlicher Ordner') > -1) {
+    pdir = '/home/';
+  }
+  //console.log('base: ' + pdir + uid);
+  return pdir + uid;
+}
+
+function fm_dok_editor_init(uid) {
+  var base = fm_get_path(uid);
+  //console.log("calling tinymce.init with base: " + base + "/");
+  
+  /*
+   * vgl.
+   * http://stackoverflow.com/questions/4651676/how-do-i-remove-tinymce-and-then-re-add-it
+   */
+  //tinymce.EditorManager.execCommand('mceRemoveControl',true, 'textarea.text-editor');
+  //tinymce.EditorManager.execCommand('mceAddControl',true, editor_id);
+  if(ed !== undefined) {
+    ed.destroy();
+  }
+  tinymce.remove('textarea.text-editor');
+  tinymce.EditorManager.editors = []; 
   
   /*
    * Konfiguration TinyMCE
@@ -67,26 +130,17 @@
       view: {title: 'View', items: 'visualaid | code | link image media | template hr'},
     },
     */
-    /*resize: 'both',*/
+    resize: 'both',
     width: "100%",
     height: '100%',
-    /*autoresize_bottom_margin : 1,*/
+    document_base_url : base + "/",
     setup: function (editor) {
       ed = editor;
     }
   });
-  window.onresize = function() {
-    fm_resizeEditor();
-  };
-}
-function fm_resizeEditor() {
-  if (ed) {
-    try {
-      var myHeight = $('.zentrum').height() - $('.nord').height() - 4;
-      ed.theme.resizeTo('100%', myHeight);  // sets the dimensions of the editable area
-    } catch (err) {
-    }
-  }
+  
+  $(window).on('resize', fm_resize_editor);
+  fm_resize_editor();
 }
 
 /* ----- Uploader Anfang ----------*/
@@ -125,6 +179,7 @@
     }  
   };  
   fd.append('dateiauswahlfeld', datei);  
+  fd.append('pfad', pfad);
   xhr.send(fd);          
 }
 
@@ -190,12 +245,6 @@
 }
 
 function fm_menu_neues_dokument() {
-  /*
-  fm_filectls_hide();
-  $("#mce-editor").show();
-  fm_resizeEditor();
-  openEditor = 'dok';
-  */
   fm_dok_edit('');
 }
 
@@ -280,19 +329,19 @@
   }
 }
 
-function fm_text_edit(content) {
+function fm_text_edit(content, mode) {
   fm_filectls_hide();
   $('.codeeditor-space').show();
   $('.code-editor-container').show();
-  fm_code_edit(content);  
+  fm_code_edit(content, mode);  
   openEditor = 'text';
 }
 
 function fm_dok_edit(content) {
   fm_filectls_hide();
+  fm_dok_editor_init(userid);
   $("#mce-editor").show();
   ed.setContent(content);
-  fm_resizeEditor();
   openEditor = 'dok';  
 }
 
@@ -311,7 +360,9 @@
   var m = '?c=de.uhilger.filecms.pub.SessionManager&m=getSessionUser';
   var u = '../pub' + m;
   fm_get(u, "text", function(resp) {
+    userid = resp;
     $('#userMenu').text(resp);
+    //fm_dok_editor_init(resp);
   });  
 }
 
@@ -344,12 +395,33 @@
   var u = '../svc' + m;
   fm_get(u, "text", function(resp) {
     if(typ == 'text') {
-      fm_text_edit(resp);
+      var mode = "text/x-java";
+      if(fname.endsWith('js')) {
+        mode = 'javascript';
+      } else if(fname.endsWith('xml')) {
+        mode = 'xml';
+      } else if(fname.endsWith('properties')) {
+        mode = 'xml';
+      }
+      fm_text_edit(resp, mode);
     } else {
       fm_dok_edit(resp);
     }
   });
   
+}
+
+function fm_view_file() {
+  // http://localhost:8080/file-cms/ui/#  
+  // http://localhost:8080/file-cms/data/admin/usw.
+  
+  var userid = $('#userMenu').text();
+  var gewaehlte = $('.datei-gewaehlt');
+  var fname = $(gewaehlte[0]).text();
+  
+  var path = fm_get_path(userid);
+  
+  window.open(path + '/' + fname, '_blank');
 }
 
 function fm_del_files() {
@@ -493,43 +565,6 @@
   });
 }
 
-/*
-function fm_bcr_step2(dirs, dirList) {
-  if(dirs.length > 0) {
-    dirList.push(new BcrFile(rp + '/' + dirs[dirs.length-1], dirs[dirs.length-1]));
-    $.get('tpl-bcr2.txt', function(template) {
-      $('#bcnav').append(Mustache.render(template, dirList[dirList.length-1]));  
-      $('#bcnav').append($('#tpl-bcr3').html());
-      fm_bcr_end();
-    });
-    //template = $('#tpl-bcr2').html();
-    //Mustache.parse(template);   // optional, speeds up future uses
-    //$('#bcnav').append(Mustache.render(template, dirList[dirList.length-1]));        
-  } else {
-    $.get('tpl-bcr2.txt', function(template) {
-      $('#bcnav').append(Mustache.render(template, dirList[0]));
-      $('#bcnav').append($('#tpl-bcr3').html());
-      fm_bcr_end();
-    });
-    //template = $('#tpl-bcr2').html();
-    //Mustache.parse(template);   // optional, speeds up future uses
-    //$('#bcnav').append(Mustache.render(template, dirList[0]));        
-  }  
-}
-*/
-
-function fm_bcr_3() {
-  $.get('tpl-bcr3.txt', function(template) {
-    $('#bcnav').append(template);
-  });  
-}
-
-function fm_bcr_end() {
-  $('.breadcrumb-item').click(fm_bc_click);
-  $('#ansicht').click(fm_ansicht_umschalten);
-  fm_set_modus();
-}
-
 function fm_menu_datei_speichern() {
   //var fname = $('.datei-gewaehlt').text();
   var fname = openFileName;
@@ -596,10 +631,10 @@
 
 /* ---- codemirror editor handling -------- */
 
-function fm_code_edit(content) {
+function fm_code_edit(content, m) {
   cm = CodeMirror.fromTextArea(document.getElementById("editspace"), {
     lineNumbers: true,
-    mode: "xml",
+    mode: m,
     viewportMargin : Infinity,
     extraKeys: {
         "F9": function(cm) {

--
Gitblit v1.9.3