diff options
-rw-r--r-- | apps/files_texteditor/ajax/loadfile.php | 40 | ||||
-rw-r--r-- | apps/files_texteditor/ajax/savefile.php | 21 | ||||
-rw-r--r-- | apps/files_texteditor/js/editor.js | 12 |
3 files changed, 59 insertions, 14 deletions
diff --git a/apps/files_texteditor/ajax/loadfile.php b/apps/files_texteditor/ajax/loadfile.php new file mode 100644 index 00000000000..b06b0fa83d2 --- /dev/null +++ b/apps/files_texteditor/ajax/loadfile.php @@ -0,0 +1,40 @@ +<?php +/** + * ownCloud - files_texteditor + * + * @author Tom Needham + * @copyright 2011 Tom Needham contact@tomneedham.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library 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 library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +// Init owncloud +require_once('../../../lib/base.php'); + + +// Check if we are a user +OC_JSON::checkLoggedIn(); + +// Set the session key for the file we are about to edit. +$path = isset($_GET['path']) ? $_GET['path'] : false; + +if($path){ + $sessionname = md5('oc_file_hash_'.$path); + $filecontents = OC_Filesystem::file_get_contents($path); + OC_Filesystem::update_session_file_hash($sessionname,sha1(htmlspecialchars($filecontents))); + OC_JSON::success(); +} else { + OC_JSON::error(); +}
\ No newline at end of file diff --git a/apps/files_texteditor/ajax/savefile.php b/apps/files_texteditor/ajax/savefile.php index da3599b96c6..f1a2bafc12b 100644 --- a/apps/files_texteditor/ajax/savefile.php +++ b/apps/files_texteditor/ajax/savefile.php @@ -1,6 +1,6 @@ <?php /** - * ownCloud - Editor + * ownCloud - files_texteditor * * @author Tom Needham * @copyright 2011 Tom Needham contact@tomneedham.com @@ -32,15 +32,15 @@ $filecontents = htmlspecialchars_decode($_POST['filecontents']); $file = $_POST['file']; $dir = $_POST['dir']; $path = $dir.'/'.$file; -//$force = isset($_POST['force']) ? $_POST['force'] : false; -//$sessionname = md5('oc_file_hash_'.$path); +$force = isset($_POST['force']) ? $_POST['force'] : false; +$sessionname = sha1('oc_file_hash_'.$path); function do_save($path,$filecontents){ - //$sessionname = md5('oc_file_hash_'.$path); - //OC_Filesystem::update_session_file_hash($sessionname,md5(htmlspecialchars($filecontents))); + $sessionname = md5('oc_file_hash_'.$path); + OC_Filesystem::update_session_file_hash($sessionname,sha1(htmlspecialchars($filecontents))); OC_Filesystem::file_put_contents($path, $filecontents); } -/* + // Check if file modified whilst editing? if(isset($_SESSION[$sessionname])){ if(!empty($_SESSION[$sessionname])){ @@ -65,14 +65,9 @@ if(isset($_SESSION[$sessionname])){ do_save($path,$filecontents); OC_JSON::success(); } - - -} + } } else { // No session value set for soem reason, just save the file. do_save($path,$filecontents); OC_JSON::success(); -} -*/ -do_save($path,$filecontents); -OC_JSON::success();
\ No newline at end of file +}
\ No newline at end of file diff --git a/apps/files_texteditor/js/editor.js b/apps/files_texteditor/js/editor.js index d4c5bca51f2..e9ed6720bea 100644 --- a/apps/files_texteditor/js/editor.js +++ b/apps/files_texteditor/js/editor.js @@ -67,13 +67,22 @@ function editorIsShown(){ } } +function updateSessionFileHash(path){ + $.get(OC.filePath('apps','files_texteditor','ajax','loadfile.php'), + { path: path }, + function(jsondata){ + if(jsondata.status=='failure'){ + alert('Failed to update session file hash.'); + } + }, "json");} + 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-filename'); - $.post('http://cloud.tomneedham.com/apps/files_texteditor/ajax/savefile.php', { filecontents: filecontents, file: file, dir: dir },function(jsondata){ + $.post(OC.filePath('apps','files_texteditor','ajax','savefile.php'), { filecontents: filecontents, file: file, dir: dir },function(jsondata){ if(jsondata.status == 'failure'){ var answer = confirm(jsondata.data.message); @@ -118,6 +127,7 @@ function showFileEditor(dir,filename){ complete: function(data){ var data = data.responseText; // Initialise the editor + updateSessionFileHash(dir+'/'+filename); showControlBar(filename); $('table').fadeOut('slow', function() { $('#editor').html(data); |