apps can now add their own forms to the Personal page

This commit is contained in:
Robin Appelman 2011-08-08 23:32:54 +02:00
parent 82d2c45e14
commit 7b38e5d7c7
8 changed files with 85 additions and 25 deletions

View File

@ -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

View File

@ -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');
}
});
});
});

View File

@ -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();
?>

View File

@ -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>

View File

@ -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';
}
}

View File

@ -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();

View File

@ -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();

View File

@ -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;
};?>