From ee4d087e72ab9a91baf0681a5d4ee6582ba4fd37 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Sun, 17 Apr 2011 15:59:06 +0200 Subject: [PATCH] don't reload the whole page after file upload --- files/ajax/list.php | 37 ++++++++++++++++++++++++++----------- files/index.php | 11 ++++++++--- files/js/files.js | 24 +++++++++++++++++++++++- files/templates/index.php | 17 +++-------------- 4 files changed, 60 insertions(+), 29 deletions(-) diff --git a/files/ajax/list.php b/files/ajax/list.php index 4694f842832..ef43e72fcae 100644 --- a/files/ajax/list.php +++ b/files/ajax/list.php @@ -2,6 +2,7 @@ // Init owncloud require_once('../../lib/base.php'); +require_once('../../lib/template.php'); // We send json data header( "Content-Type: application/jsonrequest" ); @@ -14,23 +15,37 @@ if( !OC_USER::isLoggedIn()){ // Load the files $dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; +$doBreadcrumb = isset( $_GET['breadcrumb'] ) ? true : false; +$data = array(); +// Make breadcrumb +if($doBreadcrumb){ + $breadcrumb = array(); + $pathtohere = "/"; + foreach( explode( "/", $dir ) as $i ){ + if( $i != "" ){ + $pathtohere .= "$i/"; + $breadcrumb[] = array( "dir" => $pathtohere, "name" => $i ); + } + } + + $breadcrumbNav = new OC_TEMPLATE( "files", "part.breadcrumb", "" ); + $breadcrumbNav->assign( "breadcrumb", $breadcrumb ); + + $data['breadcrumb'] = $breadcrumbNav->fetchPage(); +} + +// make filelist $files = array(); foreach( OC_FILES::getdirectorycontent( $dir ) as $i ){ - $i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] ); + $i["date"] = OC_UTIL::formatDate($i["mtime"] ); $files[] = $i; } -// Make breadcrumb -$breadcrumb = array(); -$pathtohere = "/"; -foreach( explode( "/", $dir ) as $i ){ - if( $i != "" ){ - $pathtohere .= "$i/"; - $breadcrumb[] = array( "dir" => $pathtohere, "name" => $i ); - } -} +$list = new OC_TEMPLATE( "files", "part.list", "" ); +$list->assign( "files", $files ); +$data = array('files' => $list->fetchPage()); -echo json_encode( array( "status" => "success", "data" => array( "files" => $files, "breadcrumb" => $breadcrumb ))); +echo json_encode( array( "status" => "success", "data" => $data)); ?> diff --git a/files/index.php b/files/index.php index e07e80aabb5..28743f77fca 100644 --- a/files/index.php +++ b/files/index.php @@ -55,10 +55,15 @@ foreach( explode( "/", $dir ) as $i ){ } } -// return template +// make breadcrumb und filelist markup +$list = new OC_TEMPLATE( "files", "part.list", "" ); +$list->assign( "files", $files ); +$breadcrumbNav = new OC_TEMPLATE( "files", "part.breadcrumb", "" ); +$breadcrumbNav->assign( "breadcrumb", $breadcrumb ); + $tmpl = new OC_TEMPLATE( "files", "index", "user" ); -$tmpl->assign( "files", $files ); -$tmpl->assign( "breadcrumb", $breadcrumb ); +$tmpl->assign( "fileList", $list->fetchPage() ); +$tmpl->assign( "breadcrumb", $breadcrumbNav->fetchPage() ); $tmpl->assign( 'dir', $dir); $tmpl->assign( 'uploadMaxFilesize', OC_HELPER::computerFileSize(ini_get('upload_max_filesize'))); $tmpl->printPage(); diff --git a/files/js/files.js b/files/js/files.js index 9eeeb7f6bfd..44506763032 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -55,6 +55,28 @@ function uploadFinished() { if(result.status == "error") { alert('An error occcured, upload failed.\nError code: ' + result.data.error); } else { - location.href = 'index.php?dir=' + $('#dir').val(); + dir = $('#dir').val(); + $.ajax({ + url: 'ajax/list.php', + data: "dir="+dir, + complete: refreshContents + }); } } + +function refreshContents(data) { + result = eval("("+data.responseText+");"); + if(typeof(result.data.breadcrumb) != 'undefined'){ + updateBreadcrumb(result.data.breadcrumb); + } + updateFileList(result.data.files); + $('#file_upload_button').click(); +} + +function updateBreadcrumb(breadcrumbHtml) { + $('p.nav').empty().html(breadcrumbHtml); +} + +function updateFileList(fileListHtml) { + $('#fileList').empty().html(fileListHtml); +} diff --git a/files/templates/index.php b/files/templates/index.php index 40113c9fe0c..5277441b535 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -17,10 +17,7 @@ name="file_upload_target" src=""> @@ -33,16 +30,8 @@ name="file_upload_target" src=""> - - - - - - - - - - + +
)" href="" title="">+