From: Tom Needham Date: Mon, 3 Oct 2011 21:59:40 +0000 (+0100) Subject: Added breadcrumb and control bar. X-Git-Tag: v3.0~123 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=02d7b1a1fc8f4bf62bfb973acfa0ee19ffa469ff;p=nextcloud-server.git Added breadcrumb and control bar. --- 02d7b1a1fc8f4bf62bfb973acfa0ee19ffa469ff diff --cc apps/files_texteditor/css/style.css index cfad02100ab,00000000000..3555119dffc mode 100644,000000..100644 --- a/apps/files_texteditor/css/style.css +++ b/apps/files_texteditor/css/style.css @@@ -1,16 -1,0 +1,22 @@@ +#editor{ + position: absoloute; + height: 0; + width: 0; + top: 41px; + left: 160px; + z-index: -1; +} +#editorwrapper{ + position: absoloute; + height: 0; + width: 0; + top: 41px; + left: 160px; + display: none; +} ++#editorbar{ ++ margin-left: auto; ++ margin-right: 10px; ++ display: block; ++ width: 300px; ++} diff --cc apps/files_texteditor/js/editor.js index b912b448586,00000000000..d4c5bca51f2 mode 100644,000000..100644 --- a/apps/files_texteditor/js/editor.js +++ b/apps/files_texteditor/js/editor.js @@@ -1,130 -1,0 +1,161 @@@ +function setEditorSize(){ + // Sets the size of the text editor window. - $('#editor').css('height', $(window).height()-90); - $('#editor').css('width', $(window).width()-180); ++ $('#editor').css('height', $(window).height()-81); ++ $('#editor').css('width', $(window).width()-160); + $('#editor').css('padding-top', '40px'); +} + +function getFileExtension(file){ + var parts=file.split('.'); + return parts[parts.length-1]; +} + +function setSyntaxMode(ext){ + // Loads the syntax mode files and tells the editor + var filetype = new Array() + // Todo finish these + filetype["php"] = "php"; + filetype["html"] = "html"; + filetype["rb"] = "ruby"; + filetype["css"] = "css"; + filetype["pl"] = "perl"; + filetype["py"] = "python"; + filetype["xml"] = "xml"; + filetype["js"] = "javascript"; + + if(filetype[ext]!=null){ + // Then it must be in the array, so load the custom syntax mode + // Set the syntax mode + OC.addScript('files_texteditor','aceeditor/mode-'+filetype[ext], function(){ + var SyntaxMode = require("ace/mode/"+filetype[ext]).Mode; + window.aceEditor.getSession().setMode(new SyntaxMode()); + }); + } +} + - function showControlBar(){ ++function showControlBar(filename){ + // Loads the control bar at the top. - $('.actions,#file_action_panel').fadeOut('slow', function(){ ++ $('.actions,#file_action_panel').fadeOut('slow').promise().done(function() { + // Load the new toolbar. - var html = '
'; ++ var html = '
'; + if($('#editorbar').length==0){ - $('#controls').append(html).fadeIn('slow'); ++ $('#controls').append(html); ++ $('#editorbar').fadeIn('slow'); + } - bindControlEvents(); ++ var breadcrumbhtml = '
'+filename+'
'; ++ $('.actions').before(breadcrumbhtml); + }); +} - ++ +function bindControlEvents(){ - $('#editor_save').bind('click', function() { - $(this).val('Saving...'); ++ $("#editor_save").live('click',function() { ++ doFileSave(); ++ }); ++ ++ $('#editor_close').live('click',function() { ++ hideFileEditor(); ++ }); ++ ++ $(document).bind('keydown', 'Ctrl+s', doFileSave); ++} ++ ++function editorIsShown(){ ++ if($('#editor').length!=0){ ++ return true; ++ } else { ++ return false; ++ } ++} ++ ++function doFileSave(){ ++ if(editorIsShown()){ ++ $('#editor_save').val(t('files_texteditor','Saving')+'...'); + var filecontents = window.aceEditor.getSession().getValue(); + var dir = $('#editor').attr('data-dir'); - var file = $('#editor').attr('data-file'); ++ var file = $('#editor').attr('data-filename'); + $.post('http://cloud.tomneedham.com/apps/files_texteditor/ajax/savefile.php', { filecontents: filecontents, file: file, dir: dir },function(jsondata){ ++ + if(jsondata.status == 'failure'){ + var answer = confirm(jsondata.data.message); + if(answer){ + $.post(OC.filePath('apps','files_texteditor','ajax','savefile.php'),{ filecontents: filecontents, file: file, dir: dir, force: 'true' },function(jsondata){ + if(jsondata.status =='success'){ - $('#editor_save').val('Save'); ++ $('#editor_save').val(t('files_texteditor','Save')); + $('#editor_save').effect("highlight", {color:'#4BFF8D'}, 3000); + } + else { + // Save error + alert(jsondata.data.message); + } + }, 'json'); + } + else { + // Don't save! + $('#editor_save').effect("highlight", {color:'#FF5757'}, 3000); - $('#editor_save').val('Save'); ++ $('#editor_save').val(t('files_texteditor','Save')); + } + } + else if(jsondata.status == 'success'){ + // Success - $('#editor_save').val('Save'); ++ $('#editor_save').val(t('files_texteditor','Save')); + $('#editor_save').effect("highlight", {color:'#4BFF8D'}, 3000); + } + }, 'json'); - // TODO give focus back to the editor - // window.aceEditor.focus(); - }); - - $('#editor_close').bind('click', function() { - hideFileEditor(); - }); - } ++ giveEditorFocus(); ++ } else { ++ return; ++ } ++}; ++ ++function giveEditorFocus(){ ++ window.aceEditor.focus(); ++}; + +function showFileEditor(dir,filename){ + // Loads the file editor and display it. + var data = $.ajax({ + url: OC.filePath('files','ajax','download.php')+'?files='+encodeURIComponent(filename)+'&dir='+encodeURIComponent(dir), + complete: function(data){ + var data = data.responseText; + // Initialise the editor - showControlBar(); ++ showControlBar(filename); + $('table').fadeOut('slow', function() { + $('#editor').html(data); + // encodeURIComponenet? + $('#editor').attr('data-dir', dir); + $('#editor').attr('data-filename', filename); + window.aceEditor = ace.edit("editor"); + aceEditor.setShowPrintMargin(false); + setSyntaxMode(getFileExtension(filename)); + OC.addScript('files_texteditor','aceeditor/theme-clouds', function(){ + window.aceEditor.setTheme("ace/theme/clouds"); + }); - showControlBar(); + }); ++ bindControlEvents(); + // End success + } + // End ajax + }); + setEditorSize(); +} + +function hideFileEditor(){ ++ // Fade out controls + $('#editorbar').fadeOut('slow'); ++ // Fade out breadcrumb ++ $('.actions').prev().fadeOut('slow'); ++ // Fade out editor + $('#editor').fadeOut('slow', function(){ - $('#editorbar').html(''); - $('#editor').html(''); ++ $('#editorbar').remove(); ++ $('#editor').remove(); ++ $('.actions').prev().remove(); ++ var editorhtml = '
'; ++ $('table').after(editorhtml); + $('.actions,#file_access_panel').fadeIn('slow'); + $('table').fadeIn('slow'); + }); +} + +$(window).resize(function() { + setEditorSize(); +}); diff --cc files/templates/part.breadcrumb.php index 9a265a9c1ea,9a265a9c1ea..63242dd326c --- a/files/templates/part.breadcrumb.php +++ b/files/templates/part.breadcrumb.php @@@ -2,4 -2,4 +2,4 @@@
")'> ">
-- ++