aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/user_openid/appinfo/app.php2
-rw-r--r--apps/user_openid/js/settings.js12
-rw-r--r--apps/user_openid/settings.php10
-rw-r--r--apps/user_openid/templates/settings.php6
-rw-r--r--lib/app.php47
-rw-r--r--settings/index.php8
-rw-r--r--settings/js/main.js11
-rw-r--r--settings/templates/index.php14
8 files changed, 85 insertions, 25 deletions
diff --git a/apps/user_openid/appinfo/app.php b/apps/user_openid/appinfo/app.php
index 93b178ac706..3cdf2664e81 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 00000000000..b85ce2d3522
--- /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 00000000000..d85eaebb5ee
--- /dev/null
+++ b/apps/user_openid/settings.php
@@ -0,0 +1,10 @@
+<?php
+
+$tmpl = new OC_Template( 'user_openid', 'settings');
+$identity=OC_Preferences::getValue(OC_User::getUser(),'user_openid','identity','');
+$tmpl->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 00000000000..fff1eff09e0
--- /dev/null
+++ b/apps/user_openid/templates/settings.php
@@ -0,0 +1,6 @@
+<form id="openidform">
+ <fieldset>
+ <legend><?php echo $l->t( 'OpenID' );?></legend>
+ <input type="text" name='identity' id='identity' value="<?php echo $_['identity']; ?>" placeholder="OpenID for <?php echo OC_User::getUser();?>" />
+ </fieldset>
+</form> \ No newline at end of file
diff --git a/lib/app.php b/lib/app.php
index 51e86c847dd..f1363c8af5a 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 12f48f23838..60cfd19c3fd 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 e6ca30d0ce4..f6b7eeb7584 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 6e68cfa148c..0b5a14626fe 100644
--- a/settings/templates/index.php
+++ b/settings/templates/index.php
@@ -18,16 +18,6 @@
</fieldset>
</form>
-<?php if($_['hasopenid']):?>
- <form id="openidform">
- <fieldset>
- <legend><?php echo $l->t( 'OpenID' );?></legend>
- <input type="text" name='identity' id='identity' value="<?php echo $_['identity']; ?>" placeholder="OpenID for <?php echo OC_User::getUser();?>" />
- <input type="submit" value="Save" /></p>
- </fieldset>
- </form>
-<?php endif;?>
-
<form id="languageform">
<fieldset>
<legend><?php echo $l->t( 'Language' );?></legend>
@@ -39,3 +29,7 @@
</select>
</fieldset>
</form>
+
+<?php foreach($_['forms'] as $form){
+ echo $form;
+};?>