From 305573a68785ff329bc0f3c9b28ba738bcb58e46 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Mon, 27 Feb 2017 06:47:42 +0000
Subject: [PATCH] Einbau TinyMCE in Arbeit

---
 web/ui/index.html   |   11 ++-
 web/ui/stile.css    |   10 +++
 web/ui/tpl-bcr3.txt |    4 +
 web/ui/mce.css      |   20 ++++++
 web/ui/ui.js        |  125 +++++++++++++++++++++++++++++++++++++++--
 5 files changed, 159 insertions(+), 11 deletions(-)

diff --git a/web/ui/index.html b/web/ui/index.html
index d74367b..e8960be 100644
--- a/web/ui/index.html
+++ b/web/ui/index.html
@@ -25,7 +25,7 @@
             <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Datei</a>
             <div class="dropdown-menu">
               <a id="newTextFile" class="dropdown-item" href="#">Neuer Text..</a>
-              <a class="dropdown-item disabled" href="#">Neues Dokument..</a>
+              <a id="newDoc" class="dropdown-item" href="#">Neues Dokument..</a>
               <a id="newFolder" class="dropdown-item" href="#">Neuer Ordner..</a>
               <div class="dropdown-divider"></div>
               <a id="editTextFile" class="dropdown-item" href="#">&Ouml;ffnen als Text</a>
@@ -93,8 +93,13 @@
         </div>
         </div>
         <!-- Codemirror Ende -->
+        <!-- TinyMCE Start -->
+        <div id="mce-editor">
+          <textarea class="text-editor" id="text-editspace"></textarea>
+        </div>        
+        <!-- TinyMCE Ende -->
         <!-- Breadcrumb Start -->
-        <div class="zentrum-bc pl-3 pr-3">
+        <div id="zentrum_bc" class="zentrum-bc pl-3 pr-3">
           <nav class="breadcrumb" id="bcnav"></nav>             
         </div>
         <!-- Breadcrumb Ende -->
@@ -163,7 +168,7 @@
     <script src="/jslib/codemirror/mode/htmlmixed/htmlmixed.js"></script>
     
     <script src="/jslib/codemirror/addon/display/fullscreen.js"></script>
-    
+    <script src="/jslib/tinymce/tinymce.min.js"></script>
     <script src="/jslib/bootstrap/js/bootstrap.min.js"></script>
     <script src="/jslib/mustache/mustache.min.js"></script>
     <script src="ui.js"></script>
diff --git a/web/ui/mce.css b/web/ui/mce.css
new file mode 100644
index 0000000..f6bb673
--- /dev/null
+++ b/web/ui/mce.css
@@ -0,0 +1,20 @@
+/*
+    Dateiverwaltung - File management in your browser
+    Copyright (C) 2017 Ulrich Hilger, http://uhilger.de
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+body {font-size: 12pt;}
\ No newline at end of file
diff --git a/web/ui/stile.css b/web/ui/stile.css
index dfae8bb..8f704e5 100644
--- a/web/ui/stile.css
+++ b/web/ui/stile.css
@@ -37,6 +37,16 @@
   height: 100%;
 }
 
+/* Stile MCE-Editor */
+
+.mce-editor {
+  width: 100%;
+  height: 100%;  
+}
+.text-editor {
+  width: 100%;
+  height: 100%;
+}
 
 /* Stile Listenansicht */
 
diff --git a/web/ui/tpl-bcr3.txt b/web/ui/tpl-bcr3.txt
new file mode 100644
index 0000000..edd8f44
--- /dev/null
+++ b/web/ui/tpl-bcr3.txt
@@ -0,0 +1,4 @@
+<div id="ansicht" class="pull-right align-middle">
+  <i class="fa fa-th-list"></i>
+</div>              
+
diff --git a/web/ui/ui.js b/web/ui/ui.js
index e20c80b..db82e7a 100644
--- a/web/ui/ui.js
+++ b/web/ui/ui.js
@@ -20,12 +20,16 @@
 var pfad = '';
 var modus = 'kacheln';
 var openFileName = '';
+var ed;
+var t;
 
 function fm_init() {
+  $("#mce-editor").hide();
   $('.codeeditor-space').hide();
   $('.code-editor-container').hide();
   //$('.ost').attr('flex-basis', 0);
   $('#newTextFile').on('click', fm_menu_neue_textdatei);
+  $('#newDoc').on('click', fm_menu_neues_dokument);
   $('#newFolder').on('click', fm_get_new_folder);
   $('#editTextFile').on('click', fm_get_file_content);
   $('#saveFile').on('click', fm_menu_datei_speichern);
@@ -40,6 +44,82 @@
   fm_get_login();
   fm_get_list('');
   fm_init_uploader();
+  
+  /*
+   * Konfiguration TinyMCE
+   */
+  tinymce.init({
+    content_css : "mce.css",
+    selector: "textarea",
+    statusbar: false,
+    menubar: false,
+    plugins: 'autoresize advlist charmap code image link lists media print preview save table textcolor',
+    toolbar: 'undo redo | styleselect | outdent indent',
+    /*
+    menu: {
+      file: {title: 'File', items: 'savevers | exit'},
+      edit: {title: 'Edit', items: 'undo redo | cut copy paste pastetext | selectall'},
+      view: {title: 'View', items: 'visualaid | code | link image media | template hr'},
+    },
+    */
+    resize: true,
+    width: "100%",
+    height: '100%',
+    autoresize_bottom_margin : 1,
+    setup: function (editor) {
+      ed = editor;
+      //self.ed = editor;
+      /*
+      editor.addMenuItem('fileinfo', {
+        text: 'Toggle file info',
+        onclick: function () {
+          editor.insertContent('Toggle file info');
+          toggleFileInfo();
+        }
+      });
+      editor.addMenuItem('savevers', {
+        text: 'Speichern',
+        onclick: function () {
+          self.notizSpeichern();
+        }
+      });
+      editor.addMenuItem('exit', {
+        text: 'Exit',
+        onclick: function () {
+          self.editorBeenden();
+        }
+      });
+      */
+    }
+  });
+}
+
+function resizeEditor(myHeight) {
+  window.console.log('resizeEditor');
+  var myEditor = ed;
+  if (myEditor) {
+    try {
+      /*
+      if (!myHeight) {
+        var targetHeight = window.innerHeight; // Change this to the height of your wrapper element
+        var mce_bars_height = 0;
+        $('.mce-toolbar, .mce-statusbar, .mce-menubar').each(function () {
+          mce_bars_height += $(this).height();
+        });
+        window.console.log('mce bars height total: ' + mce_bars_height);
+        myHeight = targetHeight - mce_bars_height - 8;  // the extra 8 is for margin added between the toolbars
+      }
+      */
+      var myHeight = $('.zentrum').height() - $('.nord').height();
+      window.console.log('resizeEditor: ', myHeight);
+      myEditor.theme.resizeTo('100%', myHeight);  // sets the dimensions of the editable area
+    } catch (err) {
+    }
+  }
+}
+
+window.onresize = function() {
+    resizeEditor();
 }
 
 /* ----- Uploader Anfang ----------*/
@@ -142,14 +222,29 @@
   fm_text_edit('Neue Datei');
 }
 
+function fm_menu_neues_dokument() {
+  fm_filectls_hide();
+  $("#mce-editor").show();
+  resizeEditor();
+  /*
+  var ht = $(window).innerHeight() - 20;
+  window.clearTimeout(t);
+  t = window.setTimeout(function () {
+    $('.mce-editor').height(ht - 100);
+  }, 200);
+  */
+}
+
 function fm_menu_datei_schliessen() {
   $('.codeeditor-space').hide();
   $('.code-editor-container').hide();
-  cm.toTextArea();
-  $('#bcnav').show();
-  $('#dateien').show();
+  $("#mce-editor").hide();
+  if(cm !== undefined) {
+    cm.toTextArea();
+  }
   openFileName = '';
   fm_get_list(pfad);
+  fm_filectls_show();
 }
 
 function fm_dateiwahl(ev) {
@@ -221,13 +316,21 @@
 }
 
 function fm_text_edit(content) {
-  $('#bcnav').hide();
-  $('#dateien').hide();
+  fm_filectls_hide();
   $('.codeeditor-space').show();
   $('.code-editor-container').show();
   fm_code_edit(content);  
 }
 
+function fm_filectls_hide() {
+  $('#zentrum_bc').hide();
+  $('#dateien').hide();
+}
+
+function fm_filectls_show() {
+  $('#zentrum_bc').show();
+  $('#dateien').show();  
+}
 /* ----- API Calls ------------- */
 
 function fm_get_login() {
@@ -371,7 +474,7 @@
             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_3();
               fm_bcr_end();
             });
             //template = $('#tpl-bcr2').html();
@@ -380,7 +483,7 @@
           } else {
             $.get('tpl-bcr2.txt', function(template) {
               $('#bcnav').append(Mustache.render(template, dirList[0]));
-              $('#bcnav').append($('#tpl-bcr3').html());
+              fm_bcr_3();
               fm_bcr_end();
             });
             //template = $('#tpl-bcr2').html();
@@ -418,7 +521,7 @@
       pfad = '';
       $.get('tpl-bcr2.txt', function(template) {
         $('#bcnav').append(Mustache.render(template, dirList[0]));
-        $('#bcnav').append($('#tpl-bcr3').html());
+        fm_bcr_3();
         fm_bcr_end();
       });
       //template = $('#tpl-bcr2').html();
@@ -457,6 +560,12 @@
 }
 */
 
+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);

--
Gitblit v1.9.3