From 391e064e67eaab5fb63ed568946af97b6a243fdd Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 23 Aug 2011 01:40:13 +0200 Subject: [PATCH] allow apps to register form for the settings and admin pages --- apps/user_ldap/appinfo/app.php | 2 ++ apps/user_ldap/settings.php | 14 ++------------ lib/app.php | 8 +++++++- settings/admin.php | 27 +++++++++++++++++++++++++++ settings/apps.php | 1 + settings/help.php | 5 +++++ settings/js/apps.js | 6 ++++++ settings/js/personal.js | 6 ++++++ settings/js/users.js | 6 ++++++ settings/languageCodes.php | 8 +++++++- settings/personal.php | 7 ++++++- settings/settings.php | 23 +++++++++++++++++++++++ settings/templates/admin.php | 9 +++++++++ settings/templates/apps.php | 6 ++++++ settings/templates/help.php | 6 ++++++ settings/templates/personal.php | 6 ++++++ settings/templates/settings.php | 9 +++++++++ settings/templates/users.php | 7 ++++++- settings/users.php | 24 ++++-------------------- 19 files changed, 144 insertions(+), 36 deletions(-) create mode 100644 settings/admin.php create mode 100644 settings/settings.php create mode 100644 settings/templates/admin.php create mode 100644 settings/templates/settings.php diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index a6fca41501..7906241f79 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -23,6 +23,8 @@ require_once('apps/user_ldap/user_ldap.php'); +OC_APP::registerAdmin('user_ldap','settings'); + // define LDAP_DEFAULT_PORT define("OC_USER_BACKEND_LDAP_DEFAULT_PORT", 389); diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index 696b95c37e..8dbd3c0462 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -20,14 +20,6 @@ * License along with this library. If not, see . * */ - -require_once('../../lib/base.php'); - -if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){ - header( "Location: ".OC_Helper::linkTo( '', "index.php" )); - exit(); -} - $params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_password', 'ldap_base', 'ldap_filter'); foreach($params as $param){ @@ -35,11 +27,9 @@ foreach($params as $param){ OC_Appconfig::setValue('user_ldap', $param, $_POST[$param]); } } -OC_App::setActiveNavigationEntry( "user_ldap_settings" ); - // fill template -$tmpl = new OC_Template( 'user_ldap', 'settings', 'admin' ); +$tmpl = new OC_Template( 'user_ldap', 'settings'); foreach($params as $param){ $value = OC_Appconfig::getValue('user_ldap', $param,''); $tmpl->assign($param, $value); @@ -48,4 +38,4 @@ foreach($params as $param){ // ldap_port has a default value $tmpl->assign( 'ldap_port', OC_Appconfig::getValue('user_ldap', 'ldap_port', OC_USER_BACKEND_LDAP_DEFAULT_PORT)); -$tmpl->printPage(); +return $tmpl->fetchPage(); diff --git a/lib/app.php b/lib/app.php index 2bbc160b26..61ea081c6f 100644 --- a/lib/app.php +++ b/lib/app.php @@ -208,8 +208,14 @@ class OC_App{ ); $settings=array( array( "id" => "help", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "help.php" ), "name" => $l->t("Help"), "icon" => OC_Helper::imagePath( "settings", "help.svg" )), - array( "id" => "settings", "order" => 1, "href" => OC_Helper::linkTo( "settings", "personal.php" ), "name" => $l->t("Personal"), "icon" => OC_Helper::imagePath( "settings", "personal.svg" )) + array( "id" => "personal", "order" => 1, "href" => OC_Helper::linkTo( "settings", "personal.php" ), "name" => $l->t("Personal"), "icon" => OC_Helper::imagePath( "settings", "personal.svg" )) ); + if(count(self::$settingsForms)>0){ + $settings[]=array( "id" => "settings", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "settings.php" ), "name" => $l->t("Settings"), "icon" => OC_Helper::imagePath( "settings", "settings.svg" )); + } + if(count(self::$adminForms)>0){ + $admin[]=array( "id" => "admin", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "admin.php" ), "name" => $l->t("Admin"), "icon" => OC_Helper::imagePath( "settings", "admin.svg" )); + } if( OC_Group::inGroup( $_SESSION["user_id"], "admin" )){ $settings=array_merge($admin,$settings); } diff --git a/settings/admin.php b/settings/admin.php new file mode 100644 index 0000000000..15559a150e --- /dev/null +++ b/settings/admin.php @@ -0,0 +1,27 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + +require_once('../lib/base.php'); +if( !OC_User::isLoggedIn()){ + header( "Location: ".OC_Helper::linkTo( "", "index.php" )); + exit(); +} +if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){ + header( "Location: ".OC_Helper::linkTo( '', "index.php" )); + exit(); +} + +OC_Util::addStyle( "settings", "settings" ); +OC_App::setActiveNavigationEntry( "admin" ); + +$tmpl = new OC_Template( 'settings', 'admin', 'user'); +$forms=OC_App::getForms('admin'); +$tmpl->assign('forms',array()); +foreach($forms as $form){ + $tmpl->append('forms',$form); +} +$tmpl->printPage(); \ No newline at end of file diff --git a/settings/apps.php b/settings/apps.php index 05da425976..d5aafd628e 100644 --- a/settings/apps.php +++ b/settings/apps.php @@ -57,6 +57,7 @@ if(is_array($catagoryNames)){ 'active'=>false, 'description'=>$app['description'], 'author'=>$app['personid'], + 'licence'=>$app['license'], ); } } diff --git a/settings/help.php b/settings/help.php index 39dd83acc7..f8a2f9b8bf 100644 --- a/settings/help.php +++ b/settings/help.php @@ -1,4 +1,9 @@ + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + $(document).ready(function(){ $('#leftcontent li').each(function(index,li){ var app=$.parseJSON($(this).children('span').text()); diff --git a/settings/js/personal.js b/settings/js/personal.js index d16917d539..b814d436e7 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -1,3 +1,9 @@ +/** + * Copyright (c) 2011, Robin Appelman + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + $(document).ready(function(){ $("#passwordbutton").click( function(){ // Serialize the data diff --git a/settings/js/users.js b/settings/js/users.js index 0570263d30..c60fb32c40 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -1,3 +1,9 @@ +/** + * Copyright (c) 2011, Robin Appelman + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + $(document).ready(function(){ function applyMultiplySelect(element){ var checked=[]; diff --git a/settings/languageCodes.php b/settings/languageCodes.php index 5a6c734cfa..088ba5f29c 100644 --- a/settings/languageCodes.php +++ b/settings/languageCodes.php @@ -1,4 +1,10 @@ - + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + +return array( 'ab'=>'Abkhazian', 'aa'=>'Afar', 'af'=>'Afrikaans', diff --git a/settings/personal.php b/settings/personal.php index a31042bb53..e6d2d44db7 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -1,4 +1,9 @@ + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ require_once('../lib/base.php'); if( !OC_User::isLoggedIn()){ @@ -9,7 +14,7 @@ if( !OC_User::isLoggedIn()){ // Highlight navigation entry OC_Util::addScript( "settings", "personal" ); OC_Util::addStyle( "settings", "settings" ); -OC_App::setActiveNavigationEntry( "settings" ); +OC_App::setActiveNavigationEntry( "personal" ); // calculate the disc space $used=OC_Filesystem::filesize('/'); diff --git a/settings/settings.php b/settings/settings.php new file mode 100644 index 0000000000..724cf63aaf --- /dev/null +++ b/settings/settings.php @@ -0,0 +1,23 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + +require_once('../lib/base.php'); +if( !OC_User::isLoggedIn()){ + header( "Location: ".OC_Helper::linkTo( "", "index.php" )); + exit(); +} + +OC_Util::addStyle( "settings", "settings" ); +OC_App::setActiveNavigationEntry( "settings" ); + +$tmpl = new OC_Template( 'settings', 'settings', 'user'); +$forms=OC_App::getForms('settings'); +$tmpl->assign('forms',array()); +foreach($forms as $form){ + $tmpl->append('forms',$form); +} +$tmpl->printPage(); \ No newline at end of file diff --git a/settings/templates/admin.php b/settings/templates/admin.php new file mode 100644 index 0000000000..98acd541e3 --- /dev/null +++ b/settings/templates/admin.php @@ -0,0 +1,9 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */?> + + \ No newline at end of file diff --git a/settings/templates/apps.php b/settings/templates/apps.php index d420b6ad0b..d8f3fb5e4f 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -1,3 +1,9 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */?> + diff --git a/settings/templates/help.php b/settings/templates/help.php index 8e54493764..4e3cdd7b90 100644 --- a/settings/templates/help.php +++ b/settings/templates/help.php @@ -1,3 +1,9 @@ + +
t( 'Ask a question' ); ?> + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */?> +

t('You use');?> t('of the available');?>

diff --git a/settings/templates/settings.php b/settings/templates/settings.php new file mode 100644 index 0000000000..98acd541e3 --- /dev/null +++ b/settings/templates/settings.php @@ -0,0 +1,9 @@ + + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */?> + + \ No newline at end of file diff --git a/settings/templates/users.php b/settings/templates/users.php index 244f363293..a97774cea0 100644 --- a/settings/templates/users.php +++ b/settings/templates/users.php @@ -1,4 +1,9 @@ - + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + $allGroups=array(); foreach($_["groups"] as $group) { $allGroups[]=$group['name']; diff --git a/settings/users.php b/settings/users.php index 8bf64e16ff..5aae4ce43e 100644 --- a/settings/users.php +++ b/settings/users.php @@ -1,25 +1,9 @@ . -* -*/ + * Copyright (c) 2011, Robin Appelman + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ require_once('../lib/base.php'); if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){