summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_texteditor/js/editor.js59
1 files changed, 46 insertions, 13 deletions
diff --git a/apps/files_texteditor/js/editor.js b/apps/files_texteditor/js/editor.js
index fd93ac5a7a8..828839cbc92 100644
--- a/apps/files_texteditor/js/editor.js
+++ b/apps/files_texteditor/js/editor.js
@@ -77,8 +77,10 @@ function updateSessionFileHash(path){
"json");
}
+var editor_is_saving = false;
function doFileSave(){
if(is_editor_shown){
+ editor_is_saving = true;
$('#editor_save').after('<img id="saving_icon" src="'+OC.filePath('core','img','loading.gif')+'"></img>');
var filecontents = window.aceEditor.getSession().getValue();
var dir = $('#editor').attr('data-dir');
@@ -93,7 +95,10 @@ function doFileSave(){
$('#saving_icon').remove();
$('#editor_save').after('<p id="save_result" style="float: left">Saved!</p>')
setTimeout(function() {
- $('#save_result').remove();
+ $('#save_result').fadeOut('slow',function(){
+ $(this).remove();
+ editor_is_saving = false;
+ });
}, 2000);
}
else {
@@ -101,7 +106,10 @@ function doFileSave(){
$('#saving_icon').remove();
$('#editor_save').after('<p id="save_result" style="float: left">Failed!</p>');
setTimeout(function() {
- $('#save_result').fadeOut('slow',function(){ $(this).remove(); });
+ $('#save_result').fadeOut('slow',function(){
+ $(this).remove();
+ editor_is_saving = false;
+ });
}, 2000);
}
}, 'json');
@@ -112,7 +120,10 @@ function doFileSave(){
// Temporary measure until we get a tick icon
$('#editor_save').after('<p id="save_result" style="float: left">Saved!</p>');
setTimeout(function() {
- $('#save_result').fadeOut('slow',function(){ $(this).remove(); });
+ $('#save_result').fadeOut('slow',function(){
+ $(this).remove();
+ editor_is_saving = false;
+ });
}, 2000);
}
}
@@ -122,21 +133,17 @@ function doFileSave(){
// Temporary measure until we get a tick icon
$('#editor_save').after('<p id="save_result" style="float: left">Saved!</p>');
setTimeout(function() {
- $('#save_result').fadeOut('slow',function(){ $(this).remove(); });
+ $('#save_result').fadeOut('slow',function(){
+ $(this).remove();
+ editor_is_saving = false;
+ });
}, 2000);
}
}, 'json');
- giveEditorFocus();
- } else {
- $('#editor').data('editor','false');
- return;
+ window.aceEditor.focus();
}
};
-function giveEditorFocus(){
- window.aceEditor.focus();
-};
-
function showFileEditor(dir,filename){
if(!is_editor_shown){
// Loads the file editor and display it.
@@ -190,9 +197,31 @@ function hideFileEditor(){
}
}
+// Keyboard Shortcuts
+var ctrlBtn = false;
+
+function checkForCtrlKey(e){
+ if(e.which == 17 || e.which == 91) ctrlBtn=false;
+ }
+
+function checkForSaveKeyPress(e){
+ if(!editor_is_saving){
+ if(e.which == 17 || e.which == 91) ctrlBtn=true;
+ if(e.which == 83 && ctrlBtn == true) {
+ e.preventDefault();
+ doFileSave();
+ return false;
+ }
+ } else {
+ e.preventDefault();
+ }
+}
+
+// Sets the correct size of the editor window
$(window).resize(function() {
setEditorSize();
});
+
var is_editor_shown = false;
$(document).ready(function(){
@@ -220,4 +249,8 @@ $(document).ready(function(){
}
// Binds the file save and close editor events to the buttons
bindControlEvents();
-});
+
+ // Binds the save keyboard shortcut events
+ $(document).unbind('keyup').bind('keyup',checkForCtrlKey).unbind('keydown').bind('keydown',checkForSaveKeyPress);
+
+ });