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 |  136 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 115 insertions(+), 21 deletions(-)

diff --git a/web/ui/ui.js b/web/ui/ui.js
index 47ca193..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();
@@ -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');
   });
@@ -46,9 +49,99 @@
     $('#modal_ok').attr('onclick','').unbind('click');
   });
   $('#logout').click(fm_logout);  
-  fm_get_login();
+  fm_get_login(); // nach Ermittlung der Benutzerkennung wird TinyMCE initialisert
   fm_get_list('');
   fm_init_uploader();
+  //fm_dok_editor_init('');
+  /*window.onresize = function() {
+    fm_resize_editor();
+  };*/
+}
+
+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;
+      ed.theme.resizeTo('100%', myHeight);  // sets the dimensions of the editable area
+    } 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 
+ * Basisverzeichnisses dienen kann
+ * 
+ * Pruefen: Kann man das vor jedem Editor-Aufruf machen oder aber 
+ * Teile wie z.B. das Basisverzeichnis spaeter wieder aendern?
+ * 
+ * @param {String} uid  die userid die auf das Basisverzeichnis verweist
+ * @returns {undefined}
+ */
+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 +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 + "/",
     /*autoresize_bottom_margin : 1,*/
     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 ----------*/
@@ -190,12 +275,6 @@
 }
 
 function fm_menu_neues_dokument() {
-  /*
-  fm_filectls_hide();
-  $("#mce-editor").show();
-  fm_resizeEditor();
-  openEditor = 'dok';
-  */
   fm_dok_edit('');
 }
 
@@ -290,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';  
 }
 
@@ -311,7 +390,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);
   });  
 }
 
@@ -352,6 +433,19 @@
   
 }
 
+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() {
   var gewaehlte = $('.datei-gewaehlt');
   //console.log('anzahl: ' + gewaehlte.length);

--
Gitblit v1.9.3