summaryrefslogtreecommitdiffstats
path: root/apps/files/ajax/autocomplete.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/ajax/autocomplete.php')
-rw-r--r--apps/files/ajax/autocomplete.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/apps/files/ajax/autocomplete.php b/apps/files/ajax/autocomplete.php
new file mode 100644
index 00000000000..8cdb6188a02
--- /dev/null
+++ b/apps/files/ajax/autocomplete.php
@@ -0,0 +1,56 @@
+<?php
+//provide auto completion of paths for use with jquer ui autocomplete
+
+
+// Init owncloud
+
+
+OC_JSON::checkLoggedIn();
+
+// Get data
+$query = $_GET['term'];
+$dirOnly=(isset($_GET['dironly']))?($_GET['dironly']=='true'):false;
+
+if($query[0]!='/'){
+ $query='/'.$query;
+}
+
+if(substr($query,-1,1)=='/'){
+ $base=$query;
+}else{
+ $base=dirname($query);
+}
+
+$query=substr($query,strlen($base));
+
+if($base!='/'){
+ $query=substr($query,1);
+}
+$queryLen=strlen($query);
+$query=strtolower($query);
+
+// echo "$base - $query";
+
+$files=array();
+
+if(OC_Filesystem::file_exists($base) and OC_Filesystem::is_dir($base)){
+ $dh = OC_Filesystem::opendir($base);
+ if($dh){
+ if(substr($base,-1,1)!='/'){
+ $base=$base.'/';
+ }
+ while (($file = readdir($dh)) !== false) {
+ if ($file != "." && $file != ".."){
+ if(substr(strtolower($file),0,$queryLen)==$query){
+ $item=$base.$file;
+ if((!$dirOnly or OC_Filesystem::is_dir($item))){
+ $files[]=(object)array('id'=>$item,'label'=>$item,'name'=>$item);
+ }
+ }
+ }
+ }
+ }
+}
+OC_JSON::encodedPrint($files);
+
+?>