From 7b38e5d7c73cb29a5b57bb36b9f22ce2672cb325 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 8 Aug 2011 23:32:54 +0200 Subject: [PATCH] apps can now add their own forms to the Personal page --- apps/user_openid/appinfo/app.php | 2 ++ apps/user_openid/js/settings.js | 12 +++++++ apps/user_openid/settings.php | 10 ++++++ apps/user_openid/templates/settings.php | 6 ++++ lib/app.php | 47 +++++++++++++++++++++++++ settings/index.php | 8 ++--- settings/js/main.js | 11 ------ settings/templates/index.php | 14 +++----- 8 files changed, 85 insertions(+), 25 deletions(-) create mode 100644 apps/user_openid/js/settings.js create mode 100644 apps/user_openid/settings.php create mode 100644 apps/user_openid/templates/settings.php diff --git a/apps/user_openid/appinfo/app.php b/apps/user_openid/appinfo/app.php index 93b178ac70..3cdf2664e8 100644 --- a/apps/user_openid/appinfo/app.php +++ b/apps/user_openid/appinfo/app.php @@ -19,6 +19,8 @@ if(strpos($_SERVER["REQUEST_URI"],'?') and !strpos($_SERVER["REQUEST_URI"],'=')) OC_Util::addHeader('link',array('rel'=>'openid.server', 'href'=>$urlBase.OC_Helper::linkTo( "user_openid", "user.php" ).'/'.$userName)); OC_Util::addHeader('link',array('rel'=>'openid.delegate', 'href'=>$urlBase.OC_Helper::linkTo( "user_openid", "user.php" ).'/'.$userName)); +OC_APP::registerPersonal('user_openid','settings'); + require_once 'apps/user_openid/user_openid.php'; //active the openid backend diff --git a/apps/user_openid/js/settings.js b/apps/user_openid/js/settings.js new file mode 100644 index 0000000000..b85ce2d352 --- /dev/null +++ b/apps/user_openid/js/settings.js @@ -0,0 +1,12 @@ +$(document).ready(function(){ + $('#openidform input').blur(function(event){ + event.preventDefault(); + var post = $( "#openidform" ).serialize(); + $.post( 'ajax/openid.php', post, function(data){ + if( data.status == "success" ){ + }else{ + alert('error while setting OpenID'); + } + }); + }); +}); diff --git a/apps/user_openid/settings.php b/apps/user_openid/settings.php new file mode 100644 index 0000000000..d85eaebb5e --- /dev/null +++ b/apps/user_openid/settings.php @@ -0,0 +1,10 @@ +assign('identity',$identity); + +OC_Util::addScript('user_openid','settings'); + +return $tmpl->fetchPage(); +?> \ No newline at end of file diff --git a/apps/user_openid/templates/settings.php b/apps/user_openid/templates/settings.php new file mode 100644 index 0000000000..fff1eff09e --- /dev/null +++ b/apps/user_openid/templates/settings.php @@ -0,0 +1,6 @@ +
+
+ t( 'OpenID' );?> + +
+
\ No newline at end of file diff --git a/lib/app.php b/lib/app.php index 51e86c847d..f1363c8af5 100644 --- a/lib/app.php +++ b/lib/app.php @@ -31,6 +31,9 @@ class OC_App{ static private $apps = array(); static private $activeapp = ''; static private $navigation = array(); + static private $settingsForms = array(); + static private $adminForms = array(); + static private $personalForms = array(); /** * @brief loads all apps @@ -284,4 +287,48 @@ class OC_App{ return $topFolder; } } + + + /** + * get the forms for either settings, admin or personal + */ + public static function getForms($type){ + $forms=array(); + switch($type){ + case 'settings': + $source=self::$settingsForms; + break; + case 'admin': + $source=self::$adminForms; + break; + case 'personal': + $source=self::$personalForms; + break; + } + foreach($source as $form){ + $forms[]=include $form; + } + return $forms; + } + + /** + * register a settings form to be shown + */ + public static function registerSettings($app,$page){ + self::$settingsForms[]='apps/'.$app.'/'.$page.'.php'; + } + + /** + * register an admin form to be shown + */ + public static function registerAdmin($app,$page){ + self::$adminForms[]='apps/'.$app.'/'.$page.'.php'; + } + + /** + * register a personal form to be shown + */ + public static function registerPersonal($app,$page){ + self::$personalForms[]='apps/'.$app.'/'.$page.'.php'; + } } diff --git a/settings/index.php b/settings/index.php index 12f48f2383..60cfd19c3f 100644 --- a/settings/index.php +++ b/settings/index.php @@ -29,10 +29,10 @@ $tmpl->assign('usage',OC_Helper::humanFileSize($used)); $tmpl->assign('total_space',OC_Helper::humanFileSize($total)); $tmpl->assign('usage_relative',$relative); $tmpl->assign('languages',$languages); -$tmpl->assign('hasopenid',OC_App::isEnabled( 'user_openid' )); -if(OC_App::isEnabled( 'user_openid' )){ - $identity=OC_Preferences::getValue(OC_User::getUser(),'user_openid','identity',''); - $tmpl->assign('identity',$identity); + +$forms=OC_App::getForms('personal'); +foreach($forms as $form){ + $tmpl->append('forms',$form); } $tmpl->printPage(); diff --git a/settings/js/main.js b/settings/js/main.js index e6ca30d0ce..f6b7eeb758 100644 --- a/settings/js/main.js +++ b/settings/js/main.js @@ -19,17 +19,6 @@ $(document).ready(function(){ return false; }); - $('#openidform').submit(function(event){ - event.preventDefault(); - var post = $( "#openidform" ).serialize(); - $.post( 'ajax/openid.php', post, function(data){ - if( data.status == "success" ){ - }else{ - alert('error while setting OpenID'); - } - }); - }); - $("#languageinput").change( function(){ // Serialize the data var post = $( "#languageinput" ).serialize(); diff --git a/settings/templates/index.php b/settings/templates/index.php index 6e68cfa148..0b5a14626f 100644 --- a/settings/templates/index.php +++ b/settings/templates/index.php @@ -18,16 +18,6 @@ - -
-
- t( 'OpenID' );?> - -

-
-
- -
t( 'Language' );?> @@ -39,3 +29,7 @@
+ +