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

-
-

- New password: - -

-

- Confirm new password: - -

-

- Old password: - -

-

- -

-
+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" />
- - + " title="">"> + " title="">"> + " title="">"> + " title="">">
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" />
- - + + " title="">"> + + " title="">"> + " title="">"> + ?logout=true" title="">">