| | |
| | | var cm; |
| | | var pfad = ''; |
| | | var modus = 'kacheln'; |
| | | var openFileName = ''; |
| | | |
| | | function fm_init() { |
| | | $('.codeeditor-space').hide(); |
| | | $('.code-editor-container').hide(); |
| | | $('#newTextFile').on('click', fm_menu_neue_textdatei); |
| | | $('#newFolder').on('click', fm_get_new_folder); |
| | | $('#editTextFile').on('click', fm_get_file_content); |
| | | $('#saveFile').on('click', fm_menu_datei_speichern); |
| | | $('#saveFileAs').on('click', fm_menu_datei_speichern_unter); |
| | | $('#closeFile').on('click', fm_menu_datei_schliessen); |
| | | $('#myModal').on('hidden.bs.modal', function (e) { |
| | | $('#saveModal').on('hidden.bs.modal', function (e) { |
| | | $('#modal_ok').attr('onclick','').unbind('click'); |
| | | }); |
| | | $('#logout').click(fm_logout); |
| | | fm_get_login(); |
| | | fm_get_list(''); |
| | | } |
| | | |
| | | function fm_ansicht_umschalten() { |
| | | if($('#ansicht').children(0).hasClass('fa-th-list')) { |
| | | $('#ansicht').children(0).addClass('fa-th-large'); |
| | | $('#ansicht').children(0).removeClass('fa-th-list'); |
| | | modus = 'liste'; |
| | | } else { |
| | | $('#ansicht').children(0).addClass('fa-th-list'); |
| | | $('#ansicht').children(0).removeClass('fa-th-large'); |
| | | modus = 'kacheln'; |
| | | } |
| | | fm_get_list(pfad); |
| | | } |
| | | |
| | | function fm_set_modus() { |
| | | if(modus == 'kacheln') { |
| | | $('#ansicht').children(0).addClass('fa-th-list'); |
| | | $('#ansicht').children(0).removeClass('fa-th-large'); |
| | | } else { |
| | | $('#ansicht').children(0).addClass('fa-th-large'); |
| | | $('#ansicht').children(0).removeClass('fa-th-list'); |
| | | } |
| | | } |
| | | |
| | | function fm_menu_neue_textdatei() { |
| | | $('#dateiansicht').hide(); |
| | | $('.codeeditor-space').show(); |
| | | $('.code-editor-container').show(); |
| | | fm_code_edit('Test'); |
| | | fm_text_edit('Neue Datei'); |
| | | } |
| | | |
| | | function fm_menu_datei_schliessen() { |
| | | $('.codeeditor-space').hide(); |
| | | $('.code-editor-container').hide(); |
| | | cm.toTextArea(); |
| | | $('#dateiansicht').show(); |
| | | $('#bcnav').show(); |
| | | $('#dateien').show(); |
| | | openFileName = ''; |
| | | fm_get_list(pfad); |
| | | } |
| | | |
| | | function fm_dateiwahl() { |
| | | var elem = this; |
| | | if(modus == 'kacheln') { |
| | | if($(elem).children(0).hasClass('fa-folder')) { |
| | | var ordner = $(elem).text().trim(); |
| | | if(pfad.length > 0) { |
| | | pfad = pfad + '/' + ordner; |
| | | } else { |
| | | pfad = ordner; |
| | | } |
| | | fm_get_list(pfad); |
| | | } else if($(elem).children(0).hasClass('fa-file')) { |
| | | $('.datei-gewaehlt').removeClass('datei-gewaehlt'); |
| | | $(elem).children(0).addClass('datei-gewaehlt'); |
| | | } else { |
| | | //console.log('kein folder oder file...'); |
| | | } |
| | | } else { |
| | | if($(elem).find('.datei-elem').children(0).hasClass('fa-file-o')) { |
| | | $('.table-info').removeClass('table-info'); |
| | | $(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; |
| | | } else { |
| | | pfad = ordner; |
| | | } |
| | | fm_get_list(pfad); |
| | | } |
| | | } |
| | | } |
| | | |
| | | function fm_bc_click() { |
| | | var elem = this; |
| | | var bcPfad = $(elem).attr('rpath'); |
| | | if(bcPfad !== undefined) { |
| | | pfad = bcPfad; |
| | | fm_get_list(bcPfad); |
| | | } else { |
| | | pfad = ''; |
| | | fm_get_list(''); |
| | | } |
| | | } |
| | | |
| | | function fm_text_edit(content) { |
| | | $('#bcnav').hide(); |
| | | $('#dateien').hide(); |
| | | $('.codeeditor-space').show(); |
| | | $('.code-editor-container').show(); |
| | | fm_code_edit(content); |
| | | } |
| | | |
| | | /* ----- API Calls ------------- */ |
| | | |
| | | function fm_get_login() { |
| | | var m = '?c=de.uhilger.um.pub.SessionManager&m=getSessionUser'; |
| | | var u = '../../um/pub' + m; |
| | | fm_get(u, "json", function(resp) { |
| | | $('#userMenu').text(resp.UserData.firstName); |
| | | var m = '?c=de.uhilger.filecms.pub.SessionManager&m=getSessionUser'; |
| | | var u = '../pub' + m; |
| | | fm_get(u, "text", function(resp) { |
| | | $('#userMenu').text(resp); |
| | | }); |
| | | } |
| | | |
| | | function fm_menu_datei_speichern() { |
| | | |
| | | function fm_get_new_folder() { |
| | | $('#modal_ok').click(function() { |
| | | // hier speichern |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=saveTextFile'; |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=newFolder&p=' + pfad + '&p=' + $('#dateiname').val(); |
| | | var u = '../svc' + m; |
| | | fm_post(u, {p1: '', p2: $('#dateiname').val(), p3: cm.getValue()}, function(resp) { |
| | | |
| | | fm_get(u, "json", function(resp) { |
| | | fm_get_list(pfad); |
| | | }); |
| | | }); |
| | | $('.modal-title').text('Neuer Ordner'); |
| | | $('#dialogfrage').text("Name?"); |
| | | $('#dateiname').val(''); |
| | | $('#dateiname').attr('placeholder', 'Ordnername'); |
| | | $('#saveModal').modal({ |
| | | keyboard: false, |
| | | show: true |
| | | }); |
| | | |
| | | |
| | | // FileRef saveTextFile(String relPath, String fileName, String contents) |
| | | |
| | | |
| | | /* |
| | | var t = new Template(-2, $('#filename').val(), self.cm.getValue(), 3); |
| | | var u = '../api/tr/?c=de.uhilger.webbox.api.ContentApi&m=newTemplate'; |
| | | self.post(u, {p: self.serialise(t)}, function (resp) { |
| | | self.isnew = false; |
| | | self.editid = resp.Template.id; |
| | | $('#contlist').append(self.buildContListItem(3, resp.Template.name, resp.Template.id)); |
| | | $('#templateeditor').addClass('hidden'); |
| | | } |
| | | |
| | | function fm_get_file_content() { |
| | | var fname = $('.datei-gewaehlt').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); |
| | | }); |
| | | */ |
| | | |
| | | } |
| | | |
| | | function fm_render_list(fl) { |
| | | if(modus == 'kacheln') { |
| | | // Kachelansicht |
| | | var template = $('#tpl-kacheln').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('.datei-zeile').attr('onclick','').unbind('click'); |
| | | $('#dateien').empty(); |
| | | $('#dateien').html(Mustache.render(template, fl)); |
| | | $('.figure').click(fm_dateiwahl); |
| | | } else { |
| | | // Listenansicht |
| | | var template = $('#tpl-liste').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('.figure').attr('onclick','').unbind('click'); |
| | | $('#dateien').empty(); |
| | | $('#dateien').html(Mustache.render(template, fl)); |
| | | $('.datei-zeile').click(fm_dateiwahl); |
| | | } |
| | | } |
| | | |
| | | // http://localhost:8079/file-cms/svc?c=de.uhilger.filecms.api.FileMgr&f=JSONNICE&m=list&p= |
| | | function fm_get_list(relPfad) { |
| | | $('#ansicht').attr('onclick','').unbind('click'); |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=list&p=' + relPfad; |
| | | var u = '../svc' + m; |
| | | fm_get(u, "json", function(resp) { |
| | | |
| | | if(resp.List[0].FileRef !== undefined) { |
| | | var files = new Array(); |
| | | if(resp.List[0].FileRef instanceof Array) { |
| | | for(var i = 0; i < resp.List[0].FileRef.length; i++) { |
| | | files.push(new FileRef(resp.List[0].FileRef[i])); |
| | | } |
| | | } else { |
| | | files.push(new FileRef(resp.List[0].FileRef)); |
| | | } |
| | | var fl = new FileList(files); |
| | | fm_render_list(fl); |
| | | } else { |
| | | $('#dateien').empty(); |
| | | } |
| | | |
| | | // Breadcrumb-Ansicht |
| | | var template; |
| | | $('.breadcrumb-item').attr('onclick','').unbind('click'); |
| | | $('#bcnav').empty(); |
| | | var dirList = new Array(); |
| | | var rp = ''; |
| | | //console.log("'" + relPfad + "'"); |
| | | var dirs = relPfad.split('/'); |
| | | //console.log(dirs.length); |
| | | dirList.push(new BcrFile(rp, 'Home')); |
| | | if(relPfad.length > 0) { |
| | | for(var i = 0; i < dirs.length - 1; i++) { |
| | | if(rp.length > 0 ) { |
| | | dirList.push(new BcrFile(rp + '/' + dirs[i], dirs[i])); |
| | | rp = rp + '/' + dirs[i]; |
| | | } else { |
| | | dirList.push(new BcrFile(dirs[i], dirs[i])); |
| | | rp = dirs[i]; |
| | | } |
| | | } |
| | | var bl = new BcrFiles(dirList); |
| | | |
| | | if(dirList.length > 0) { |
| | | template = $('#tpl-bcr').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('#bcnav').html(Mustache.render(template, bl)); |
| | | } |
| | | |
| | | if(dirs.length > 0) { |
| | | dirList.push(new BcrFile(rp + '/' + dirs[dirs.length-1], dirs[dirs.length-1])); |
| | | template = $('#tpl-bcr2').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('#bcnav').append(Mustache.render(template, dirList[dirList.length-1])); |
| | | } else { |
| | | template = $('#tpl-bcr2').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('#bcnav').append(Mustache.render(template, dirList[0])); |
| | | } |
| | | |
| | | $('#bcnav').append($('#tpl-bcr3').html()); |
| | | } else { |
| | | pfad = ''; |
| | | template = $('#tpl-bcr2').html(); |
| | | Mustache.parse(template); // optional, speeds up future uses |
| | | $('#bcnav').append(Mustache.render(template, dirList[0])); |
| | | $('#bcnav').append($('#tpl-bcr3').html()); |
| | | } |
| | | $('.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; |
| | | if(fname !== undefined && fname !== '') { |
| | | fm_save_file(fname); |
| | | } else { |
| | | fm_menu_datei_speichern_unter(); |
| | | } |
| | | } |
| | | |
| | | function fm_save_file(saveFileName) { |
| | | 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) { |
| | | openFileName = saveFileName; |
| | | }); |
| | | } |
| | | |
| | | function fm_menu_datei_speichern_unter() { |
| | | |
| | | $('#modal_ok').click(function() { |
| | | // hier speichern |
| | | fm_save_file($('#dateiname').val()); |
| | | /* |
| | | var m = '?c=de.uhilger.filecms.api.FileMgr&m=saveTextFile'; |
| | | var u = '../svc' + m; |
| | | fm_post(u, {p1: pfad, p2: $('#dateiname').val(), p3: cm.getValue()}, function(resp) { |
| | | |
| | | }); |
| | | */ |
| | | }); |
| | | $('.modal-title').text('Datei speichern'); |
| | | $('#dialogfrage').text("Dateiname?"); |
| | | |
| | | var fname = $('.datei-gewaehlt').text(); |
| | | if(fname !== undefined) { |
| | | $('#dateiname').val(fname); |
| | | } else { |
| | | $('#dateiname').val(''); |
| | | } |
| | | $('#dateiname').attr('placeholder', 'Dateiname'); |
| | | $('#saveModal').modal({ |
| | | keyboard: false, |
| | | show: true |
| | | }); |
| | | } |
| | | |
| | | function fm_logout() { |
| | |
| | | /* ---- codemirror editor handling -------- */ |
| | | |
| | | function fm_code_edit(content) { |
| | | //var windowHeight = $(window).height(); |
| | | //$("editspace").empty(); |
| | | //self.cm.toTextArea(); |
| | | |
| | | cm = CodeMirror.fromTextArea(document.getElementById("editspace"), { |
| | | lineNumbers: true, |
| | | mode: "xml", |
| | |
| | | return '{"' + obj.constructor.name + '":' + JSON.stringify(obj) + '}'; |
| | | } |
| | | |
| | | /* ----- Objekte ----- */ |
| | | |
| | | function FileList(fl) { |
| | | this.files = fl; |
| | | } |
| | | |
| | | function FileRef(obj) { |
| | | var self = this; |
| | | this.fr = obj; |
| | | |
| | | this.typeClass = function() { |
| | | if(modus == 'kacheln') { |
| | | if(self.fr.isDirectory) { |
| | | return 'fa-folder'; |
| | | } else { |
| | | return 'fa-file'; |
| | | } |
| | | } else { |
| | | if(self.fr.isDirectory) { |
| | | return 'fa-folder'; |
| | | } else { |
| | | return 'fa-file-o'; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | this.fileName = function() { |
| | | var namen = self.fr.absolutePath.split('/'); |
| | | if(namen.length > 0) { |
| | | return namen[namen.length - 1]; |
| | | } else { |
| | | return self.fr.absolutePath; |
| | | } |
| | | }; |
| | | } |
| | | |
| | | function BcrFiles(fl) { |
| | | this.files = fl; |
| | | } |
| | | |
| | | function BcrFile(rp, n) { |
| | | this.relPath = rp; |
| | | this.fName = n; |
| | | } |