summaryrefslogtreecommitdiffstats
path: root/files
diff options
context:
space:
mode:
authorJakob Sack <kde@jakobsack.de>2011-03-03 23:08:54 +0100
committerJakob Sack <kde@jakobsack.de>2011-03-03 23:08:54 +0100
commitf042e85d412fb323e5d3bb3e70d9d4ffa00a7907 (patch)
tree8561c3483d381d4cc5f54ca42a3f27a470e4c564 /files
parentf7f957abb92e5ce359d7eafa136406822fee0a51 (diff)
downloadnextcloud-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.php39
-rw-r--r--files/ajax/delete.php27
-rw-r--r--files/ajax/list.php36
-rw-r--r--files/ajax/rename.php28
-rw-r--r--files/download.php45
-rw-r--r--files/settings.php64
-rw-r--r--files/templates/admin.php19
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>