mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 06:37:56 -04:00
Fixed file saving issue.
This commit is contained in:
parent
02d7b1a1fc
commit
32ce0d3c6e
3 changed files with 59 additions and 14 deletions
40
apps/files_texteditor/ajax/loadfile.php
Normal file
40
apps/files_texteditor/ajax/loadfile.php
Normal file
|
|
@ -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();
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue