diff --git a/admin/apps.php b/admin/apps.php
index b433fe0875bdbf8692228cdc9b830871669dfb6f..bff3089dc5e839f1a79280299cc0b8b878565d66 100644
--- a/admin/apps.php
+++ b/admin/apps.php
@@ -29,8 +29,7 @@ if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin'
 }
 
 // Load the files we need
-//OC_UTIL::addStyle( "", "files" );
-//OC_UTIL::addScript( "", "files" );
+OC_UTIL::addStyle( "admin", "apps" );
 
 
 if(isset($_GET['id']))  $id=$_GET['id']; else $id=0;
@@ -41,7 +40,9 @@ $categories=OC_OCSCLIENT::getCategories();
 if($id==0) {
 
         if($cat==0){
-		$apps=OC_OCSCLIENT::getApplications($categories);
+		$numcats=array();
+		foreach($categories as $key=>$value) $numcats[]=$key;
+		$apps=OC_OCSCLIENT::getApplications($numcats);
 	}else{
 		$apps=OC_OCSCLIENT::getApplications($cat);
 	}
@@ -59,6 +60,7 @@ if($id==0) {
 	$app=OC_OCSCLIENT::getApplication($id);
 
 	$tmpl = new OC_TEMPLATE( "admin", "app", "admin" );
+	$tmpl->assign( "categories", $categories );
 	$tmpl->assign( "app", $app );
 	$tmpl->printPage();
 	unset($tmpl);
diff --git a/admin/css/apps.css b/admin/css/apps.css
new file mode 100644
index 0000000000000000000000000000000000000000..68bd9cf63d3a511e2a9ebb12e0de26368b7ac785
--- /dev/null
+++ b/admin/css/apps.css
@@ -0,0 +1,42 @@
+/* APPS TABLE */
+
+table td.date
+{
+    width: 5em;
+    padding: 0.5em 1em;
+    text-align: right;
+}
+
+.preview 
+{
+    padding: 3px;
+    text-align: left;
+}
+
+table td.date
+{
+    width: 11em;
+    color: #555555;
+}
+
+table td.selection, table th.selection, table td.fileaction
+{
+    width: 2em;
+    text-align: center;
+}
+
+table td.name a
+{
+    padding: 6px;
+    text-decoration: none;
+    color: #555555;
+}
+
+.type 
+{
+    padding: 6px;
+    text-decoration: none;
+    color: #888888;
+    font-size: 0.8em;
+}
+
diff --git a/admin/templates/apps.php b/admin/templates/apps.php
index 2f58477581503ddbd2101619e5d50cf23d98a204..36a7cd53029bb1a043d8242a65c482cc72fa7a32 100644
--- a/admin/templates/apps.php
+++ b/admin/templates/apps.php
@@ -12,16 +12,14 @@
 			<th></th>
 			<th>Name</th>
 			<th>Modified</th>
-			<th></th>
 		</tr>
 	</thead>
 	<tbody>
 		<?php foreach($_["apps"] as $app): ?>
 			<tr>
-				<td width="1"><?php if($app["preview"] <> "") { echo('<a href=""><img border="0" src="'.$app["preview"].'" /></a>'); } ?> </a></td>
-				<td class="filename"><a href="" title=""><?php echo $app["name"]; ?></a></td>
+				<td width="1"><?php if($app["preview"] <> "") { echo('<a href="'.OC_HELPER::linkTo( "admin", "apps.php" ).'?id='.$app['id'].'"><img class="preview" border="0" src="'.$app["preview"].'" /></a>'); } ?> </a></td>
+				<td class="name"><a href="<?php echo(OC_HELPER::linkTo( "admin", "apps.php" ).'?id='.$app['id']); ?>" title=""><?php echo $app["name"]; ?></a><br /><?php  echo('<span class="type">'.$app['typename'].'</span>'); ?></td>
 				<td class="date"><?php echo OC_UTIL::formatdate($app["changed"]); ?></td>
-				<td class="fileaction"><a href="" title=""><img src="images/drop-arrow.png" alt="+" /></a></td>
 			</tr>
 		<?php endforeach; ?>
 	</tbody>
diff --git a/files/ajax/upload.php b/files/ajax/upload.php
new file mode 100644
index 0000000000000000000000000000000000000000..b3facf967237205edb53b937c979b94f3074bcc8
--- /dev/null
+++ b/files/ajax/upload.php
@@ -0,0 +1,32 @@
+<?php
+
+// Init owncloud
+require_once('../../lib/base.php');
+
+// We send json data
+// header( "Content-Type: application/json" );
+// Firefox and Konqueror tries to download application/json for me.  --Arthur
+header( "Content-Type: text/plain" );
+
+// Check if we are a user
+if( !OC_USER::isLoggedIn()){
+	echo json_encode( array( "status" => "error", "data" => "Authentication error" ));
+	exit();
+}
+
+$fileName=$_FILES['file']['name'];
+$source=$_FILES['file']['tmp_name'];
+$dir = $_POST['dir'];
+if(!empty($dir)) $dir .= '/';
+$target='/' . stripslashes($dir) . $fileName;
+if(isset($_SESSION['username'])
+and $_SESSION['username'] and strpos($dir,'..') === false){
+	if(OC_FILESYSTEM::fromTmpFile($source,$target)){
+		echo json_encode(array( "status" => "success"));
+		exit();
+	}
+}
+
+echo json_encode(array( "status" => "error"));
+
+?>
diff --git a/lib/ocsclient.php b/lib/ocsclient.php
index d9ce11d537e7ea48476672dfd6a6bc265b275a8d..921bd5489a208341fd4946f2836b96f8edc2c9f2 100644
--- a/lib/ocsclient.php
+++ b/lib/ocsclient.php
@@ -37,16 +37,13 @@ class OC_OCSCLIENT{
 	public static function getCategories(){
 		$url='http://api.opendesktop.org/v1/content/categories';
 	
-		$cats=array();
 		$xml=file_get_contents($url);
 		$data=simplexml_load_string($xml);
 	
 		$tmp=$data->data->category;
+		$cats=array();
 		for($i = 0; $i < count($tmp); $i++) {
-			$cat=array();
-			$cat['id']=$tmp[$i]->id;
-			$cat['name']=$tmp[$i]->name;
-			$cats[]=$cat;
+			$cats[$i]=$tmp[$i]->name;
 		}
 		return $cats;
 	}
@@ -58,8 +55,12 @@ class OC_OCSCLIENT{
 	 * This function returns a list of all the applications on the OCS server
 	 */
 	public static function getApplications($categories){
-		$categoriesstring=implode('x',$categories);
-		$url='http://api.opendesktop.org/v1/content/data?categories='.$ocscategories['ids'].'&sortmode=new&page=0&pagesize=10';
+                if(is_array($categories)) {
+			$categoriesstring=implode('x',$categories);
+		}else{
+			$categoriesstring=$categories;
+		}
+		$url='http://api.opendesktop.org/v1/content/data?categories='.urlencode($categoriesstring).'&sortmode=new&page=0&pagesize=10';
 	
 		$apps=array();
 		$xml=file_get_contents($url);
@@ -70,7 +71,8 @@ class OC_OCSCLIENT{
 			$app=array();
 			$app['id']=$tmp[$i]->id;
 			$app['name']=$tmp[$i]->name;
-			$app['type']=$tmp[$i]->type;
+			$app['type']=$tmp[$i]->typeid;
+			$app['typename']=$tmp[$i]->typename;
 			$app['personid']=$tmp[$i]->personid;
 			$app['detailpage']=$tmp[$i]->detailpage;
 			$app['preview']=$tmp[$i]->smallpreviewpic1;
@@ -82,5 +84,38 @@ class OC_OCSCLIENT{
 		return $apps;
 	}
 
+
+        /**
+         * @brief Get an the applications from the OCS server
+         * @returns array with application data
+         *
+         * This function returns an  applications from the OCS server
+         */
+        public static function getApplication($id){
+                $url='http://api.opendesktop.org/v1/content/data/'.urlencode($id);
+
+                $xml=file_get_contents($url);
+                $data=simplexml_load_string($xml);
+
+                $tmp=$data->data->content;
+                $app=array();
+                $app['id']=$tmp->id;
+                $app['name']=$tmp->name;
+                $app['type']=$tmp->typeid;
+                $app['typename']=$tmp->typename;
+                $app['personid']=$tmp->personid;
+                $app['detailpage']=$tmp->detailpage;
+                $app['preview1']=$tmp->smallpreviewpic1;
+                $app['preview2']=$tmp->smallpreviewpic2;
+                $app['preview3']=$tmp->smallpreviewpic3;
+                $app['changed']=strtotime($tmp->changed);
+                $app['description']=$tmp->description;
+
+                return $app;
+        }
+
+
+
+
 }
 ?>