diff options
author | Jakob Sack <kde@jakobsack.de> | 2011-03-03 23:08:54 +0100 |
---|---|---|
committer | Jakob Sack <kde@jakobsack.de> | 2011-03-03 23:08:54 +0100 |
commit | f042e85d412fb323e5d3bb3e70d9d4ffa00a7907 (patch) | |
tree | 8561c3483d381d4cc5f54ca42a3f27a470e4c564 /files | |
parent | f7f957abb92e5ce359d7eafa136406822fee0a51 (diff) | |
download | nextcloud-server-f042e85d412fb323e5d3bb3e70d9d4ffa00a7907.tar.gz nextcloud-server-f042e85d412fb323e5d3bb3e70d9d4ffa00a7907.zip |
Beginning of some ajax features and an admin page for files
Diffstat (limited to 'files')
-rw-r--r-- | files/admin.php | 39 | ||||
-rw-r--r-- | files/ajax/delete.php | 27 | ||||
-rw-r--r-- | files/ajax/list.php | 36 | ||||
-rw-r--r-- | files/ajax/rename.php | 28 | ||||
-rw-r--r-- | files/download.php | 45 | ||||
-rw-r--r-- | files/settings.php | 64 | ||||
-rw-r--r-- | files/templates/admin.php | 19 |
7 files changed, 258 insertions, 0 deletions
diff --git a/files/admin.php b/files/admin.php new file mode 100644 index 00000000000..4c442c4b111 --- /dev/null +++ b/files/admin.php @@ -0,0 +1,39 @@ +<?php + +/** +* ownCloud - ajax frontend +* +* @author Robin Appelman +* @copyright 2010 Robin Appelman icewind1991@gmail.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'); +oc_require( 'template.php' ); + +// Check if we are a user +if( !OC_USER::isLoggedIn() || !OC_USER::ingroup( $_SESSION['username'], 'admin' )){ + header( "Location: ".OC_HELPER::linkTo( "index.php" )); + exit(); +} + +// return template +$tmpl = new OC_TEMPLATE( "files", "admin", "admin" ); +$tmpl->printPage(); + +?> diff --git a/files/ajax/delete.php b/files/ajax/delete.php new file mode 100644 index 00000000000..113476f0254 --- /dev/null +++ b/files/ajax/delete.php @@ -0,0 +1,27 @@ +<?php + +// Init owncloud +require_once('../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +// Get data +$dir = $_GET["dir"]; +$file = $_GET["file"]; + +// Delete +if( OC_FILES::delete( $dir, $file )){ + echo json_encode( array( "status" => "success", "data" => array( "dir" => $dir, "file" => $file ))); +} +else{ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to delete file" ))); +} + +?> diff --git a/files/ajax/list.php b/files/ajax/list.php new file mode 100644 index 00000000000..4694f842832 --- /dev/null +++ b/files/ajax/list.php @@ -0,0 +1,36 @@ +<?php + +// Init owncloud +require_once('../../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" ))); + exit(); +} + +// Load the files +$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; + +$files = array(); +foreach( OC_FILES::getdirectorycontent( $dir ) as $i ){ + $i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] ); + $files[] = $i; +} + +// Make breadcrumb +$breadcrumb = array(); +$pathtohere = "/"; +foreach( explode( "/", $dir ) as $i ){ + if( $i != "" ){ + $pathtohere .= "$i/"; + $breadcrumb[] = array( "dir" => $pathtohere, "name" => $i ); + } +} + +echo json_encode( array( "status" => "success", "data" => array( "files" => $files, "breadcrumb" => $breadcrumb ))); + +?> diff --git a/files/ajax/rename.php b/files/ajax/rename.php new file mode 100644 index 00000000000..86cb7944a88 --- /dev/null +++ b/files/ajax/rename.php @@ -0,0 +1,28 @@ +<?php + +// Init owncloud +require_once('../lib/base.php'); + +// We send json data +header( "Content-Type: application/jsonrequest" ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + echo json_encode( array( "status" => "error", "data" => "Authentication error" )); + exit(); +} + +// Get data +$dir = $_GET["dir"]; +$file = $_GET["file"]; +$newname = $_GET["newname"]; + +// Delete +if( OC_FILES::move( $dir, $file, $dir, $newname )) { + echo json_encode( array( "status" => "success", "data" => array( "dir" => $dir, "file" => $file, "newname" => $newname ))); +} +else{ + echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to rename file" ))); +} + +?> diff --git a/files/download.php b/files/download.php new file mode 100644 index 00000000000..d6d39c82126 --- /dev/null +++ b/files/download.php @@ -0,0 +1,45 @@ +<?php + +/** +* ownCloud - ajax frontend +* +* @author Robin Appelman +* @copyright 2010 Robin Appelman icewind1991@gmail.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'); +oc_require( 'template.php' ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + header( "Location: ".OC_HELPER::linkTo( "index.php" )); + exit(); +} + +$filename = $_GET["file"]; + +$ftype=OC_FILESYSTEM::getMimeType( $filename ); + +header('Content-Type:'.$ftype); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +header('Content-Length: '.OC_FILESYSTEM::filesize($filename)); + +OC_FILESYSTEM::readfile( $filename ); +?> diff --git a/files/settings.php b/files/settings.php new file mode 100644 index 00000000000..25a9f0297dc --- /dev/null +++ b/files/settings.php @@ -0,0 +1,64 @@ +<?php + +/** +* ownCloud - ajax frontend +* +* @author Robin Appelman +* @copyright 2010 Robin Appelman icewind1991@gmail.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'); +oc_require( 'template.php' ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + header( "Location: ".OC_HELPER::linkTo( "index.php" )); + exit(); +} + +// Load the files we need +OC_UTIL::addStyle( "files", "files" ); +OC_UTIL::addScript( "files", "files" ); + +// Load the files +$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; + +$files = array(); +foreach( OC_FILES::getdirectorycontent( $dir ) as $i ){ + $i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] ); + $files[] = $i; +} + +// Make breadcrumb +$breadcrumb = array(); +$pathtohere = "/"; +foreach( explode( "/", $dir ) as $i ){ + if( $i != "" ){ + $pathtohere .= "$i/"; + $breadcrumb[] = array( "dir" => $pathtohere, "name" => $i ); + } +} + +// return template +$tmpl = new OC_TEMPLATE( "files", "index", "user" ); +$tmpl->assign( "files", $files ); +$tmpl->assign( "breadcrumb", $breadcrumb ); +$tmpl->printPage(); + +?> diff --git a/files/templates/admin.php b/files/templates/admin.php new file mode 100644 index 00000000000..811b48af027 --- /dev/null +++ b/files/templates/admin.php @@ -0,0 +1,19 @@ +<?php +/* + * Template for files admin page + */ +?> +<h1>Admin</h1> + +<form> + <input type="checkbox" /> Allow public folders<br> + + (if public is enabled)<br> + <input type="radio" name="sharingaim" checked="checked" /> separated from webdav storage<br> + <input type="radio" name="sharingaim" /> let the user decide<br> + <input type="radio" name="sharingaim" /> folder "/public" in webdav storage<br> + (endif)<br> + + <input type="checkbox" /> Allow downloading shared files<br> + <input type="checkbox" /> Allow uploading in shared directory<br> +</form> |