From 0c1d5b5d2d3b026d1f358eae35726c6a25748115 Mon Sep 17 00:00:00 2001
From: Ulrich <undisclosed>
Date: Mon, 27 Feb 2017 15:26:54 +0000
Subject: [PATCH] Verzeichnisse fuer TinyMCE berichtigt, Resize fuer TinyMCE berichtigt

---
 web/ui/ui.js |  105 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 84 insertions(+), 21 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index 19e032b..7457f22 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();
@@ -47,16 +49,32 @@
     $('#modal_ok').attr('onclick','').unbind('click');
   });
   $('#logout').click(fm_logout);  
-  fm_get_login(dokEditorInit); // nach Ermittlung der Benutzerkennung wird TinyMCE initialisert
+  fm_get_login(); // nach Ermittlung der Benutzerkennung wird TinyMCE initialisert
   fm_get_list('');
   fm_init_uploader();
-  
-  window.onresize = function() {
-    fm_resizeEditor();
-  };
+  //fm_dok_editor_init('');
+  /*window.onresize = function() {
+    fm_resize_editor();
+  };*/
 }
 
-function fm_resizeEditor() {
+function fm_resize_editor() {
+  
+  window.clearTimeout(tmo);
+  tmo = window.setTimeout(function () {
+    //$('.mce-edit-area').height(ht - 100);
+
+    try {
+      var myHeight = $('.zentrum').height() - $('.nord').height() - 4;
+      ed.theme.resizeTo('100%', myHeight);  // sets the dimensions of the editable area
+    } catch (err) {
+    }
+  
+  
+  }, 200);
+  
+  
+  /*
   if (ed) {
     try {
       var myHeight = $('.zentrum').height() - $('.nord').height() - 4;
@@ -64,8 +82,40 @@
     } catch (err) {
     }
   }
+  */
 }
 
+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;
+}
 /*
  * Initialisierung von TinyMCE als separate Funktion, damit 
  * die Benutzerkennung nach deren Ermittlung als Teil des 
@@ -74,12 +124,24 @@
  * Pruefen: Kann man das vor jedem Editor-Aufruf machen oder aber 
  * Teile wie z.B. das Basisverzeichnis spaeter wieder aendern?
  * 
- * @param {type} userid  die userid die auf das Basisverzeichnis verweist
+ * @param {String} uid  die userid die auf das Basisverzeichnis verweist
  * @returns {undefined}
  */
-function dokEditorInit(userid) {
+function fm_dok_editor_init(uid) {
+  var base = fm_get_path(uid);
+  //console.log("calling tinymce.init with base: " + base + "/");
   
-  var base = "/data/" + userid + "/";
+  /*
+   * 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
@@ -98,15 +160,18 @@
       view: {title: 'View', items: 'visualaid | code | link image media | template hr'},
     },
     */
-    /*resize: 'both',*/
+    resize: 'both',
     width: "100%",
     height: '100%',
-    document_base_url : base,
+    document_base_url : base + "/",
     /*autoresize_bottom_margin : 1,*/
     setup: function (editor) {
       ed = editor;
     }
   });
+  
+  $(window).on('resize', fm_resize_editor);
+  fm_resize_editor();
 }
 
 /* ----- Uploader Anfang ----------*/
@@ -210,12 +275,6 @@
 }
 
 function fm_menu_neues_dokument() {
-  /*
-  fm_filectls_hide();
-  $("#mce-editor").show();
-  fm_resizeEditor();
-  openEditor = 'dok';
-  */
   fm_dok_edit('');
 }
 
@@ -310,9 +369,9 @@
 
 function fm_dok_edit(content) {
   fm_filectls_hide();
+  fm_dok_editor_init(userid);
   $("#mce-editor").show();
   ed.setContent(content);
-  fm_resizeEditor();
   openEditor = 'dok';  
 }
 
@@ -327,12 +386,13 @@
 }
 /* ----- API Calls ------------- */
 
-function fm_get_login(callback) {
+function fm_get_login() {
   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);
-    callback(resp);
+    //fm_dok_editor_init(resp);
   });  
 }
 
@@ -380,7 +440,10 @@
   var userid = $('#userMenu').text();
   var gewaehlte = $('.datei-gewaehlt');
   var fname = $(gewaehlte[0]).text();
-  window.open("/data/" + userid + '/' + fname, '_blank');
+  
+  var path = fm_get_path(userid);
+  
+  window.open(path + '/' + fname, '_blank');
 }
 
 function fm_del_files() {

--
Gitblit v1.9.3