| | |
| | | var pfad = ''; |
| | | var modus = 'kacheln'; |
| | | var openFileName = ''; |
| | | var ed; |
| | | var openEditor; |
| | | |
| | | 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); |
| | | $('#viewFile').on('click', fm_view_file); |
| | | $('#editTextFile').on('click', function() { |
| | | fm_get_file_content('text'); |
| | | }); |
| | | $('#editDocFile').on('click', function() { |
| | | fm_get_file_content('dok'); |
| | | }); |
| | | $('#saveFile').on('click', fm_menu_datei_speichern); |
| | | $('#saveFileAs').on('click', fm_menu_datei_speichern_unter); |
| | | $('#closeFile').on('click', fm_menu_datei_schliessen); |
| | | $('#m-del').on('click', fm_menu_delete); |
| | | $('#m-test').on('click', fm_menu_test); |
| | | $('#saveModal').on('hidden.bs.modal', function (e) { |
| | | $('#modal_ok').attr('onclick','').unbind('click'); |
| | | }); |
| | | $('#logout').click(fm_logout); |
| | | fm_get_login(); |
| | | fm_get_login(dokEditorInit); // nach Ermittlung der Benutzerkennung wird TinyMCE initialisert |
| | | fm_get_list(''); |
| | | fm_init_uploader(); |
| | | |
| | | 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) { |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 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 {type} userid die userid die auf das Basisverzeichnis verweist |
| | | * @returns {undefined} |
| | | */ |
| | | function dokEditorInit(userid) { |
| | | |
| | | var base = "/data/" + userid + "/"; |
| | | |
| | | /* |
| | | * Konfiguration TinyMCE |
| | | */ |
| | | tinymce.init({ |
| | | content_css : "mce.css", |
| | | selector: "textarea.text-editor", |
| | | statusbar: false, |
| | | menubar: false, |
| | | plugins: 'advlist charmap code image link lists media print preview save table textcolor', |
| | | toolbar: 'undo redo | styleselect | image | link unlink | bullist numlist | outdent indent | code', |
| | | /* |
| | | 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: 'both',*/ |
| | | width: "100%", |
| | | height: '100%', |
| | | document_base_url : base, |
| | | /*autoresize_bottom_margin : 1,*/ |
| | | setup: function (editor) { |
| | | ed = editor; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* ----- Uploader Anfang ----------*/ |
| | |
| | | |
| | | /* ----- Uploader Ende --------------- */ |
| | | |
| | | function fm_menu_delete() { |
| | | $('#confirmOk').click(function() { |
| | | // hier loeschen |
| | | fm_del_files(); |
| | | }); |
| | | $('#confirmModalTitle').text("Löschen"); |
| | | $('#confirmModalBody').text("Wirklich löschen?"); |
| | | |
| | | /*var fname = $('.datei-gewaehlt').text(); |
| | | if(fname !== undefined) { |
| | | $('#dateiname').val(fname); |
| | | } else { |
| | | $('#dateiname').val(''); |
| | | }*/ |
| | | //$('#dateiname').attr('placeholder', 'Dateiname'); |
| | | $('#confirmModal').modal({ |
| | | keyboard: false, |
| | | show: true |
| | | }); |
| | | } |
| | | |
| | | function fm_menu_test() { |
| | | var w = $('.ost').width(); |
| | | console.log('.ost.width: ' + w); |
| | | if(w == 0) { |
| | | $('.ost').width('20%'); |
| | | $('.ost').text('Hallo Welt!'); |
| | |
| | | fm_text_edit('Neue Datei'); |
| | | } |
| | | |
| | | function fm_menu_neues_dokument() { |
| | | /* |
| | | fm_filectls_hide(); |
| | | $("#mce-editor").show(); |
| | | fm_resizeEditor(); |
| | | openEditor = 'dok'; |
| | | */ |
| | | fm_dok_edit(''); |
| | | } |
| | | |
| | | 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 = ''; |
| | | openEditor = ''; |
| | | fm_get_list(pfad); |
| | | fm_filectls_show(); |
| | | } |
| | | |
| | | function fm_dateiwahl(ev) { |
| | | var elem = this; |
| | | //console.log('dateiwahl nach click, event shift: ' + ev.shiftKey + ", event ctrl: " + ev.ctrlKey); |
| | | if(modus == 'kacheln') { |
| | | // Kacheln |
| | | if($(elem).children(0).hasClass('fa-folder')) { |
| | | var ordner = $(elem).text().trim(); |
| | | if(pfad.length > 0) { |
| | | pfad = pfad + '/' + ordner; |
| | | if(/*ev.shiftKey || */ ev.ctrlKey) { |
| | | $(elem).find('.dateiname').addClass('datei-gewaehlt'); |
| | | } else { |
| | | pfad = ordner; |
| | | var ordner = $(elem).text().trim(); |
| | | if(pfad.length > 0) { |
| | | pfad = pfad + '/' + ordner; |
| | | } else { |
| | | pfad = ordner; |
| | | } |
| | | fm_get_list(pfad); |
| | | } |
| | | fm_get_list(pfad); |
| | | } else if($(elem).children(0).hasClass('fa-file')) { |
| | | if(/*ev.shiftKey || */ ev.ctrlKey) { |
| | | // mehrere Dateien sollen gewaehlt werden |
| | | } else { |
| | | $('.datei-gewaehlt').removeClass('datei-gewaehlt'); |
| | | } |
| | | $(elem).children(0).addClass('datei-gewaehlt'); |
| | | $(elem).find('.dateiname').addClass('datei-gewaehlt'); |
| | | } else { |
| | | //console.log('kein folder oder file...'); |
| | | } |
| | | } else { |
| | | // Liste |
| | | if($(elem).find('.datei-elem').children(0).hasClass('fa-file-o')) { |
| | | // Datei |
| | | if(/*ev.shiftKey || */ ev.ctrlKey) { |
| | | // mehrere Dateien sollen gewaehlt werden |
| | | } else { |
| | | $('.table-info').removeClass('table-info'); |
| | | $('.datei-gewaehlt').removeClass('datei-gewaehlt'); |
| | | } |
| | | $(elem).addClass('table-info'); |
| | | $('.datei-gewaehlt').removeClass('datei-gewaehlt'); |
| | | $(elem).find('.dateiname').addClass('datei-gewaehlt'); |
| | | } else { |
| | | var ordner = $(elem).find('.dateiname').text(); |
| | | if(pfad.length > 0) { |
| | | pfad = pfad + '/' + ordner; |
| | | // Ordner |
| | | if(/*ev.shiftKey || */ ev.ctrlKey) { |
| | | $(elem).children(0).addClass('datei-gewaehlt'); |
| | | } else { |
| | | pfad = ordner; |
| | | var ordner = $(elem).find('.dateiname').text(); |
| | | if(pfad.length > 0) { |
| | | pfad = pfad + '/' + ordner; |
| | | } else { |
| | | pfad = ordner; |
| | | } |
| | | fm_get_list(pfad); |
| | | } |
| | | fm_get_list(pfad); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | function fm_text_edit(content) { |
| | | $('#bcnav').hide(); |
| | | $('#dateien').hide(); |
| | | fm_filectls_hide(); |
| | | $('.codeeditor-space').show(); |
| | | $('.code-editor-container').show(); |
| | | fm_code_edit(content); |
| | | openEditor = 'text'; |
| | | } |
| | | |
| | | function fm_dok_edit(content) { |
| | | fm_filectls_hide(); |
| | | $("#mce-editor").show(); |
| | | ed.setContent(content); |
| | | fm_resizeEditor(); |
| | | openEditor = 'dok'; |
| | | } |
| | | |
| | | function fm_filectls_hide() { |
| | | $('#zentrum_bc').hide(); |
| | | $('#dateien').hide(); |
| | | } |
| | | |
| | | function fm_filectls_show() { |
| | | $('#zentrum_bc').show(); |
| | | $('#dateien').show(); |
| | | } |
| | | /* ----- API Calls ------------- */ |
| | | |
| | | function fm_get_login() { |
| | | function fm_get_login(callback) { |
| | | var m = '?c=de.uhilger.filecms.pub.SessionManager&m=getSessionUser'; |
| | | var u = '../pub' + m; |
| | | fm_get(u, "text", function(resp) { |
| | | $('#userMenu').text(resp); |
| | | callback(resp); |
| | | }); |
| | | } |
| | | |
| | |
| | | fm_get_list(pfad); |
| | | }); |
| | | }); |
| | | $('.modal-title').text('Neuer Ordner'); |
| | | $('#saveModalTitle').text('Neuer Ordner'); |
| | | $('#dialogfrage').text("Name?"); |
| | | $('#dateiname').val(''); |
| | | $('#dateiname').attr('placeholder', 'Ordnername'); |
| | |
| | | }); |
| | | } |
| | | |
| | | function fm_get_file_content() { |
| | | var fname = $('.datei-gewaehlt').text(); |
| | | function fm_get_file_content(typ) { |
| | | var gewaehlte = $('.datei-gewaehlt'); |
| | | //var fname = $(gewaehlte).find('.dateiname').text(); |
| | | |
| | | var fname = $(gewaehlte[0]).text(); |
| | | openFileName = fname; |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=getCode&p=' + pfad + '&p=' + fname; |
| | | var u = '../svc' + m; |
| | | fm_get(u, "text", function(resp) { |
| | | fm_text_edit(resp); |
| | | if(typ == 'text') { |
| | | fm_text_edit(resp); |
| | | } 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(); |
| | | window.open("/data/" + userid + '/' + fname, '_blank'); |
| | | } |
| | | |
| | | function fm_del_files() { |
| | | var gewaehlte = $('.datei-gewaehlt'); |
| | | //console.log('anzahl: ' + gewaehlte.length); |
| | | var fnames = new Array(); |
| | | var i = 0; |
| | | while(i < gewaehlte.length) { |
| | | var str = { "java.lang.String": $(gewaehlte[i]).text()}; |
| | | fnames.push(str); |
| | | //console.log('loeschen ' + pfad + ' ' + $(gewaehlte[i]).text()); |
| | | //i += 2; |
| | | i++; |
| | | } |
| | | |
| | | var liste = '{"List":' + JSON.stringify(fnames) + '}'; |
| | | // 'liste' enthaelt: |
| | | // {"List":[{"java.lang.String":"test3.txt"},{"java.lang.String":"Test1.txt"},{"java.lang.String":"Test2.txt"}]} |
| | | // und wird auf dem Server zu einer List[ArrayList<String>] bei der jede ArrayList<String> nur ein Element hat |
| | | |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=deleteFiles&p=' + pfad + '&p=' + encodeURIComponent(liste); |
| | | var u = '../svc' + m; |
| | | fm_get(u, "text", function(resp) { |
| | | // console.log('deleteFiles gab folgendes zurueck: ' + resp); |
| | | fm_get_list(pfad); |
| | | }); |
| | | |
| | | } |
| | |
| | | $('#dateien').html(Mustache.render(template, fl)); |
| | | $('.datei-zeile').click(fm_dateiwahl); |
| | | } |
| | | /* |
| | | if(modus == 'kacheln') { |
| | | // Kachelansicht |
| | | $.get('tpl-kacheln.txt', function(template) { |
| | | $('#dateien').empty(); |
| | | $('#dateien').html(Mustache.render(template, fl)); |
| | | $('.figure').click(fm_dateiwahl); |
| | | }); |
| | | $('.datei-zeile').attr('onclick','').unbind('click'); |
| | | } else { |
| | | // Listenansicht |
| | | $.get('tpl-liste.txt', function(template) { |
| | | $('#dateien').empty(); |
| | | $('#dateien').html(Mustache.render(template, fl)); |
| | | $('.datei-zeile').click(fm_dateiwahl); |
| | | }); |
| | | $('.figure').attr('onclick','').unbind('click'); |
| | | } |
| | | */ |
| | | } |
| | | |
| | | // http://localhost:8079/file-cms/svc?c=de.uhilger.filecms.api.FileMgr&f=JSONNICE&m=list&p= |
| | |
| | | } |
| | | } |
| | | var bl = new BcrFiles(dirList); |
| | | |
| | | |
| | | if(dirList.length > 0) { |
| | | template = $('#tpl-bcr').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | |
| | | $('.breadcrumb-item').click(fm_bc_click); |
| | | $('#ansicht').click(fm_ansicht_umschalten); |
| | | fm_set_modus(); |
| | | }); |
| | | } |
| | | |
| | | /* |
| | | 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() { |
| | |
| | | } |
| | | |
| | | function fm_save_file(saveFileName) { |
| | | var content; |
| | | if(openEditor === 'text') { |
| | | content = cm.getValue(); |
| | | } else { |
| | | content = ed.getContent(); |
| | | } |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=saveTextFile'; |
| | | var u = '../svc' + m; |
| | | fm_post(u, {p1: pfad, p2: saveFileName, p3: cm.getValue()}, function(resp) { |
| | | fm_post(u, {p1: pfad, p2: saveFileName, p3: content}, function(resp) { |
| | | openFileName = saveFileName; |
| | | }); |
| | | } |
| | |
| | | }); |
| | | */ |
| | | }); |
| | | $('.modal-title').text('Datei speichern'); |
| | | $('#saveModalTitle').text('Datei speichern'); |
| | | $('#dialogfrage').text("Dateiname?"); |
| | | |
| | | var fname = $('.datei-gewaehlt').text(); |
| | |
| | | this.typeClass = function() { |
| | | if(modus == 'kacheln') { |
| | | if(self.fr.isDirectory) { |
| | | return 'fa-folder'; |
| | | return 'fa-folder ordner'; |
| | | } else { |
| | | return 'fa-file'; |
| | | return 'fa-file datei'; |
| | | } |
| | | } else { |
| | | if(self.fr.isDirectory) { |
| | | return 'fa-folder'; |
| | | return 'fa-folder ordner'; |
| | | } else { |
| | | return 'fa-file-o'; |
| | | return 'fa-file-o datei'; |
| | | } |
| | | } |
| | | }; |