diff --git a/admin/appinfo/app.php b/admin/appinfo/app.php
index 9e39a05244..2426adc9f8 100644
--- a/admin/appinfo/app.php
+++ b/admin/appinfo/app.php
@@ -1,14 +1,10 @@
1, "id" => "admin", "name" => "Administration" ));
-if( OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' ))
-{
- OC_APP::addNavigationEntry( array( "id" => "admin_index", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "index.php" ), "icon" => OC_HELPER::imagePath( "admin", "navicon.png" ), "name" => "Administration" ));
-}
-OC_APP::addAdminPage( array( "id" => "core_basic", "order" => 1, "href" => OC_HELPER::linkTo( "admin", "basic.php" ), "name" => "Basic Settings" ));
-OC_APP::addAdminPage( array( "id" => "core_system", "order" => 2, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" => "System settings" ));
-OC_APP::addAdminPage( array( "id" => "core_users", "order" => 3, "href" => OC_HELPER::linkTo( "admin", "users.php" ), "name" => "Users" ));
-OC_APP::addAdminPage( array( "id" => "core_apps", "order" => 4, "href" => OC_HELPER::linkTo( "admin", "apps.php" ), "name" => "Apps" ));
-OC_APP::addAdminPage( array( "id" => "core_plugins", "order" => 5, "href" => OC_HELPER::linkTo( "admin", "plugins.php" ), "name" => "Plugins" ));
+
+OC_APP::addAdminPage( array( "id" => "core_system", "order" => 2, "href" => OC_HELPER::linkTo( "admin", "system.php" ), "name" => "System settings", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_users", "order" => 3, "href" => OC_HELPER::linkTo( "admin", "users.php" ), "name" => "Users", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_apps", "order" => 4, "href" => OC_HELPER::linkTo( "admin", "apps.php" ), "name" => "Apps", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
+OC_APP::addAdminPage( array( "id" => "core_plugins", "order" => 5, "href" => OC_HELPER::linkTo( "admin", "plugins.php" ), "name" => "Plugins", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
?>
diff --git a/admin/apps.php b/admin/apps.php
index cd686fadf1..dc7b51bb82 100644
--- a/admin/apps.php
+++ b/admin/apps.php
@@ -24,14 +24,14 @@
require_once('../lib/base.php');
require( 'template.php' );
if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
- header( "Location: ".OC_HELPER::linkTo( "index.php" ));
+ header( "Location: ".OC_HELPER::linkTo( "", "index.php" ));
exit();
}
// Load the files we need
-OC_UTIL::addStyle( "files", "files" );
-OC_UTIL::addScript( "files", "files" );
+//OC_UTIL::addStyle( "", "files" );
+//OC_UTIL::addScript( "", "files" );
$categories=OC_OCSCLIENT::getCategories();
@@ -39,7 +39,8 @@ $apps=OC_OCSCLIENT::getApplications($categories);
// return template
-$tmpl = new OC_TEMPLATE( "files", "index", "user" );
+$tmpl = new OC_TEMPLATE( "admin", "apps", "admin" );
+
$tmpl->assign( "categories", $categories );
$tmpl->assign( "apps", $apps );
$tmpl->printPage();
@@ -47,3 +48,4 @@ $tmpl->printPage();
?>
+
diff --git a/admin/index.php b/admin/index.php
index 2446ebc50a..80e70d13f9 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -24,7 +24,7 @@
require_once('../lib/base.php');
require( 'template.php' );
if( !OC_USER::isLoggedIn() || !OC_GROUP::inGroup( $_SESSION['user_id'], 'admin' )){
- header( "Location: ".OC_HELPER::linkTo( "index.php" ));
+ header( "Location: ".OC_HELPER::linkTo( "","index.php" ));
exit();
}
diff --git a/admin/js/users.js b/admin/js/users.js
new file mode 100644
index 0000000000..6d59a2efb7
--- /dev/null
+++ b/admin/js/users.js
@@ -0,0 +1,101 @@
+$(document).ready(function(){
+ // Dialog for adding users
+ $( "#adduser-form" ).dialog({
+ autoOpen: false,
+ height: 300,
+ width: 350,
+ modal: true,
+ buttons: {
+ "Create an account": function() {
+ $( this ).dialog( "close" );
+ },
+ Cancel: function() {
+ $( this ).dialog( "close" );
+ }
+ },
+ close: function() {
+ allFields.val( "" ).removeClass( "ui-state-error" );
+ }
+ });
+
+ $( "#adduser-button" )
+ .click(function() {
+ $( "#adduser-form" ).dialog( "open" );
+ return false;
+ });
+
+ // Dialog for adding users
+ $( "#edituser-form" ).dialog({
+ autoOpen: false,
+ height: 300,
+ width: 350,
+ modal: true,
+ buttons: {
+ "Edit password": function() {
+ $( this ).dialog( "close" );
+ },
+ Cancel: function() {
+ $( this ).dialog( "close" );
+ }
+ },
+ close: function() {
+ allFields.val( "" ).removeClass( "ui-state-error" );
+ }
+ });
+
+ $( ".edituser-button" )
+ .click(function() {
+ $( "#edituser-form" ).dialog( "open" );
+ return false;
+ });
+
+ // Dialog for adding users
+ $( "#removeuser-form" ).dialog({
+ autoOpen: false,
+ height: 300,
+ width: 350,
+ modal: true,
+ buttons: {
+ "Remove user": function() {
+ $( this ).dialog( "close" );
+ },
+ Cancel: function() {
+ $( this ).dialog( "close" );
+ }
+ },
+ close: function() {
+ allFields.val( "" ).removeClass( "ui-state-error" );
+ }
+ });
+
+ $( ".removeuser-button" )
+ .click(function() {
+ $( "#removeuser-form" ).dialog( "open" );
+ return false;
+ });
+
+ // Dialog for adding users
+ $( "#removegroup-form" ).dialog({
+ autoOpen: false,
+ height: 300,
+ width: 350,
+ modal: true,
+ buttons: {
+ "Remove group": function() {
+ $( this ).dialog( "close" );
+ },
+ Cancel: function() {
+ $( this ).dialog( "close" );
+ }
+ },
+ close: function() {
+ allFields.val( "" ).removeClass( "ui-state-error" );
+ }
+ });
+
+ $( ".removegroup-button" )
+ .click(function() {
+ $( "#removegroup-form" ).dialog( "open" );
+ return false;
+ });
+} );
diff --git a/css/styles.css b/css/styles.css
index 4fc5a39b8c..d6e5ea8fcc 100644
--- a/css/styles.css
+++ b/css/styles.css
@@ -633,3 +633,18 @@ p.actions a.delete
border: 1px solid #CCC;
text-align: right;
}
+
+li.error{
+ list-style:none;
+ width: 640px;
+ margin: 4em auto;
+ padding: 1em 1em 1em 4em;
+ background-color: #FEE;
+ background-image: url(../img/task-attention.png);
+ background-position: 0.8em 0.8em;
+ background-repeat: no-repeat;
+ border: 1px solid #CCC;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+}
\ No newline at end of file
diff --git a/files/appinfo/app.php b/files/appinfo/app.php
index a3532e805d..eff45cbe6e 100644
--- a/files/appinfo/app.php
+++ b/files/appinfo/app.php
@@ -3,6 +3,6 @@
OC_APP::register( array( "order" => 2, "id" => "files", "name" => "Files" ));
OC_APP::addNavigationEntry( array( "id" => "files_index", "order" => 1, "href" => OC_HELPER::linkTo( "files", "index.php" ), "icon" => OC_HELPER::imagePath( "files", "navicon.png" ), "name" => "Files" ));
-OC_APP::addAdminPage( array( "order" => 1, "href" => OC_HELPER::linkTo( "files", "admin.php" ), "name" => "Files" ));
+OC_APP::addSettingsPage( array( "order" => 1, "href" => OC_HELPER::linkTo( "files", "admin.php" ), "name" => "Files" ));
?>
diff --git a/help/appinfo/app.php b/help/appinfo/app.php
new file mode 100644
index 0000000000..661b554f41
--- /dev/null
+++ b/help/appinfo/app.php
@@ -0,0 +1,5 @@
+ "help", "name" => "Help" ));
+
+?>
diff --git a/help/index.php b/help/index.php
new file mode 100644
index 0000000000..dafbd05cf3
--- /dev/null
+++ b/help/index.php
@@ -0,0 +1,34 @@
+assign( "settings", $settings );
+$tmpl->printPage();
+
+?>
diff --git a/help/templates/index.php b/help/templates/index.php
new file mode 100644
index 0000000000..945969d88c
--- /dev/null
+++ b/help/templates/index.php
@@ -0,0 +1,8 @@
+
+
Help
+
+Help.
\ No newline at end of file
diff --git a/img/layout/back.png b/img/layout/back.png
new file mode 100644
index 0000000000..a2d5c84133
Binary files /dev/null and b/img/layout/back.png differ
diff --git a/img/layout/help.png b/img/layout/help.png
new file mode 100644
index 0000000000..a2d5c84133
Binary files /dev/null and b/img/layout/help.png differ
diff --git a/img/layout/logout.png b/img/layout/logout.png
new file mode 100644
index 0000000000..a2d5c84133
Binary files /dev/null and b/img/layout/logout.png differ
diff --git a/img/layout/settings.png b/img/layout/settings.png
new file mode 100644
index 0000000000..a2d5c84133
Binary files /dev/null and b/img/layout/settings.png differ
diff --git a/lib/app.php b/lib/app.php
index 9f1ce6f104..5db3e047fd 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -34,7 +34,6 @@ class OC_APP{
static private $settingspages = array();
static private $navigation = array();
static private $subnavigation = array();
- static private $personalmenu = array();
/**
* @brief loads all apps
@@ -53,7 +52,7 @@ class OC_APP{
}
// Our very own core apps are hardcoded
- foreach( array( "admin", "files", "log", "settings" ) as $app ){
+ foreach( array( "admin", "files", "log", "help", "settings" ) as $app ){
require( "$app/appinfo/app.php" );
}
@@ -165,31 +164,20 @@ class OC_APP{
* property from all other entries. The templates can use this for
* highlighting the current position of the user.
*/
- public static function activateNavigationEntry( $id ){
+ public static function setActiveNavigationEntry( $id ){
self::$activeapp = $id;
return true;
}
/**
- * @brief adds an entry to the personal menu
- * @param $data array containing the data
- * @returns true/false
+ * @brief gets the active Menu entry
+ * @returns id or empty string
*
- * This function adds a new entry to the personal menu visible to users
- * only. $data is an associative array.
- * The following keys are required:
- * - id: unique id for this entry ("logout")
- * - href: link to the page
- * - name: Human readable name ("Logout")
- *
- * The following keys are optional:
- * - order: integer, that influences the position of your application in
- * the personal menu. Lower values come first.
+ * This function returns the id of the active navigation entry (set by
+ * setActiveNavigationEntry
*/
- public static function addPersonalMenuEntry( $data ){
- // TODO: write function
- OC_APP::$personalmenu[] = $data;
- return true;
+ public static function getActiveNavigationEntry(){
+ return self::$activeapp;
}
/**
@@ -255,18 +243,6 @@ class OC_APP{
return OC_APP::$navigation;
}
- /**
- * @brief Returns the personal menu
- * @returns associative array
- *
- * This function returns an array containing all personal menu entries
- * added. The entries are sorted by the key "order" ascending.
- */
- public static function getPersonalMenu(){
- // TODO: write function
- return OC_APP::$personalmenu;
- }
-
/**
* @brief Returns the admin pages
* @returns associative array
diff --git a/lib/base.php b/lib/base.php
index 31d4142900..9ecf7db077 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -85,6 +85,7 @@ require_once('log.php');
require_once('user.php');
require_once('group.php');
require_once('ocs.php');
+require_once('ocsclient.php');
require_once('connect.php');
require_once('remotestorage.php');
require_once('plugin.php');
@@ -104,7 +105,6 @@ if(!$error and !$RUNTIME_NOSETUPFS ){
}
// Add the stuff we need always
-OC_APP::addPersonalMenuEntry( array( "order" => 1000, "href" => OC_HELPER::linkTo( "", "index.php?logout=1" ), "name" => "Logout" ));
OC_UTIL::addScript( "jquery-1.5.min" );
OC_UTIL::addScript( "jquery-ui-1.8.10.custom.min" );
OC_UTIL::addScript( "js" );
@@ -223,7 +223,7 @@ class OC_UTIL {
/**
* check if the current server configuration is suitable for ownCloud
- * @return array with error messages
+ * @return array arrays with error messages and hints
*/
public static function checkServer(){
global $SERVERROOT;
@@ -233,14 +233,26 @@ class OC_UTIL {
$CONFIG_BACKUPDIRECTORY = OC_CONFIG::getValue( "backupdirectory", "$SERVERROOT/backup" );
$CONFIG_INSTALLED = OC_CONFIG::getValue( "installed", false );
$errors=array();
-
+
//check for database drivers
if(!is_callable('sqlite_open') and !is_callable('mysql_connect')){
- $errors[]='No database drivers (sqlite or mysql) installed.
';
+ $errors[]=array('error'=>'No database drivers (sqlite or mysql) installed.
','hint'=>'');//TODO: sane hint
}
$CONFIG_DBTYPE = OC_CONFIG::getValue( "dbtype", "sqlite" );
$CONFIG_DBNAME = OC_CONFIG::getValue( "dbname", "owncloud" );
+ //try to get the username the httpd server runs on, used in hints
+ $stat=stat($_SERVER['DOCUMENT_ROOT']);
+ if(is_callable('posix_getpwuid')){
+ $serverUser=posix_getpwuid($stat['uid']);
+ $serverUser='\''.$serverUser['name'].'\'';
+ }else{
+ $serverUser='\'www-data\' for ubuntu/debian';//TODO: try to detect the distro and give a guess based on that
+ }
+
+ //common hint for all file permissons error messages
+ $permissionsHint="Permissions can usually be fixed by setting the owner of the directory to the user the web server runs as ($serverUser)";
+
//check for correct file permissions
if(!stristr(PHP_OS, 'WIN')){
if($CONFIG_DBTYPE=='sqlite'){
@@ -252,7 +264,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($file)),-3);
if(substr($prems,2,1)!='0'){
- $errors[]='SQLite database file ('.$file.') is readable from the web
';
+ $errors[]=array('error'=>'SQLite database file ('.$file.') is readable from the web
','hint'=>$permissionsHint);
}
}
}
@@ -263,7 +275,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($CONFIG_DATADIRECTORY_ROOT)),-3);
if(substr($prems,2,1)!='0'){
- $errors[]='Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web
';
+ $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') is readable from the web
','hint'=>$permissionsHint);
}
}
if( OC_CONFIG::getValue( "enablebackup", false )){
@@ -273,7 +285,7 @@ class OC_UTIL {
clearstatcache();
$prems=substr(decoct(fileperms($CONFIG_BACKUPDIRECTORY)),-3);
if(substr($prems,2,1)!='0'){
- $errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web
';
+ $errors[]=array('error'=>'Data directory ('.$CONFIG_BACKUPDIRECTORY.') is readable from the web
','hint'=>$permissionsHint);
}
}
}
@@ -281,11 +293,11 @@ class OC_UTIL {
//TODO: premisions checks for windows hosts
}
if(!is_writable($CONFIG_DATADIRECTORY_ROOT)){
- $errors[]='Data directory ('.$CONFIG_BACKUPDIRECTORY.') not writable by ownCloud
';
+ $errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY_ROOT.') not writable by ownCloud
','hint'=>$permissionsHint);
}
-
+
//TODO: check for php modules
-
+
return $errors;
}
}
diff --git a/lib/template.php b/lib/template.php
index c36b1e7a36..0e1c268efa 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -190,11 +190,24 @@ class OC_TEMPLATE{
{
$page = new OC_TEMPLATE( "core", "layout.user" );
// Add menu data
+
+ // Add navigation entry
+ $page->assign( "navigation", OC_APP::getNavigation());
}
elseif( $this->renderas == "admin" )
{
$page = new OC_TEMPLATE( "core", "layout.admin" );
// Add menu data
+ $navigation = array();
+ if( OC_GROUP::inGroup( $_SESSION["user_id"], "admin" )){
+ foreach( OC_APP::getAdminPages() as $i ){
+ $navigation[] = $i;
+ }
+ }
+ foreach( OC_APP::getSettingsPages() as $i ){
+ $navigation[] = $i;
+ }
+ $page->assign( "navigation", $navigation );
}
else
{
@@ -210,10 +223,6 @@ class OC_TEMPLATE{
$page->append( "cssfiles", "$WEBROOT/$style.css" );
}
- // Add navigation entry and personal menu
- $page->assign( "navigation", OC_APP::getNavigation());
- $page->assign( "personalmenu", OC_APP::getPersonalMenu());
-
// Add css files and js files
$page->assign( "content", $data );
return $page->fetchPage();
diff --git a/log/appinfo/app.php b/log/appinfo/app.php
index d3e848e960..fd53d1ec22 100644
--- a/log/appinfo/app.php
+++ b/log/appinfo/app.php
@@ -1,6 +1,6 @@
1, "id" => "log", "name" => "Log" ));
-OC_APP::addPersonalMenuEntry( array( "order" => 2, "href" => OC_HELPER::linkTo( "log", "index.php" ), "name" => "Log" ));
+OC_APP::addSettingsPage( array( "order" => 2, "href" => OC_HELPER::linkTo( "log", "index.php" ), "name" => "Log", "icon" => OC_HELPER::imagePath( "admin", "navicon.png" )));
?>
diff --git a/log/index.php b/log/index.php
index a401a38fa1..23194f18a6 100644
--- a/log/index.php
+++ b/log/index.php
@@ -37,7 +37,7 @@ foreach( $logs as &$i ){
$i["action"] = OC_LOG::$TYPE[$i['type']];
}
-$tmpl = new OC_TEMPLATE( "log", "index", "user" );
+$tmpl = new OC_TEMPLATE( "log", "index", "admin" );
$tmpl->assign( "logs", $logs );
$tmpl->printPage();
diff --git a/plugins/blacklist.txt b/plugins/blacklist.txt
index 08c79e5e75..e113a39d0b 100644
--- a/plugins/blacklist.txt
+++ b/plugins/blacklist.txt
@@ -2,3 +2,4 @@ audioplayer
ldap
test
textviewer
+publiclink
diff --git a/settings/appinfo/app.php b/settings/appinfo/app.php
index a781389303..5f78b83dc2 100644
--- a/settings/appinfo/app.php
+++ b/settings/appinfo/app.php
@@ -1,6 +1,5 @@
"settings", "name" => "Settings" ));
-OC_APP::addPersonalMenuEntry( array( "order" => 1, "href" => OC_HELPER::linkTo( "settings", "index.php" ), "name" => "Settings" ));
?>
diff --git a/settings/img/information.png b/settings/img/information.png
new file mode 100644
index 0000000000..cbabb0e54a
Binary files /dev/null and b/settings/img/information.png differ
diff --git a/settings/index.php b/settings/index.php
index 85e4281c91..31db326f6b 100644
--- a/settings/index.php
+++ b/settings/index.php
@@ -7,27 +7,8 @@ if( !OC_USER::isLoggedIn()){
exit();
}
-$settings = array();
-// Do the work ...
-if( $_POST["submit"] )
-{
- if( $_POST["newpassword"] != $_POST["newpasswordconfirm"] ){
- // Say "Passwords not equal"
- }
- else{
- if( OC_USER::checkPassword( $_SESSION["username"], $_POST["password"] )){
- // Set password
- OC_USER::setPassord( $_SESSION["username"], $_POST["newpassword"] );
- }
- else{
- // Say "old password bad"
- }
- }
-}
-
-$tmpl = new OC_TEMPLATE( "settings", "index", "user" );
-$tmpl->assign( "settings", $settings );
+$tmpl = new OC_TEMPLATE( "settings", "index", "admin" );
$tmpl->printPage();
?>
diff --git a/settings/templates/index.php b/settings/templates/index.php
index 20410e06d1..106d313c01 100644
--- a/settings/templates/index.php
+++ b/settings/templates/index.php
@@ -5,20 +5,4 @@
?>
Settings
-
+Welcome to the settings! Bla bla bla
\ No newline at end of file
diff --git a/templates/error.php b/templates/error.php
index e8f56d63bd..5b71c1ef75 100644
--- a/templates/error.php
+++ b/templates/error.php
@@ -5,10 +5,12 @@
?>
" alt="ownCloud" />
-
diff --git a/templates/layout.admin.php b/templates/layout.admin.php
index 85eba13827..ea352a0fb7 100644
--- a/templates/layout.admin.php
+++ b/templates/layout.admin.php
@@ -22,20 +22,20 @@
" title="" id="owncloud">" alt="ownCloud" />
diff --git a/templates/layout.user.php b/templates/layout.user.php
index 9fc4f97e1d..be14cc0fc0 100644
--- a/templates/layout.user.php
+++ b/templates/layout.user.php
@@ -22,12 +22,12 @@
" title="" id="owncloud">" alt="ownCloud" />