]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fixed file saving issue.
authorTom Needham <needham.thomas@gmail.com>
Mon, 3 Oct 2011 22:28:47 +0000 (23:28 +0100)
committerTom Needham <needham.thomas@gmail.com>
Mon, 3 Oct 2011 22:28:47 +0000 (23:28 +0100)
apps/files_texteditor/ajax/loadfile.php [new file with mode: 0644]
apps/files_texteditor/ajax/savefile.php
apps/files_texteditor/js/editor.js

diff --git a/apps/files_texteditor/ajax/loadfile.php b/apps/files_texteditor/ajax/loadfile.php
new file mode 100644 (file)
index 0000000..b06b0fa
--- /dev/null
@@ -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
index da3599b96c657c22c69a2b3d2922ff11160e4f35..f1a2bafc12b71fe2049b3b1d0798d60831656359 100644 (file)
@@ -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
index d4c5bca51f2acd619aa3149b599bf84c7eaa886d..e9ed6720beaf7c13979c5e744010f74940c555c3 100644 (file)
@@ -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);