]> source.dussan.org Git - nextcloud-server.git/commitdiff
apps can now add their own forms to the Personal page
authorRobin Appelman <icewind1991@gmail.com>
Mon, 8 Aug 2011 21:32:54 +0000 (23:32 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Mon, 8 Aug 2011 21:46:52 +0000 (23:46 +0200)
apps/user_openid/appinfo/app.php
apps/user_openid/js/settings.js [new file with mode: 0644]
apps/user_openid/settings.php [new file with mode: 0644]
apps/user_openid/templates/settings.php [new file with mode: 0644]
lib/app.php
settings/index.php
settings/js/main.js
settings/templates/index.php

index 93b178ac7063fd94f6ba5e310f74de00bf04e1af..3cdf2664e8168b1d566f44688f217703dac0201c 100644 (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
diff --git a/apps/user_openid/js/settings.js b/apps/user_openid/js/settings.js
new file mode 100644 (file)
index 0000000..b85ce2d
--- /dev/null
@@ -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 (file)
index 0000000..d85eaeb
--- /dev/null
@@ -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 (file)
index 0000000..fff1eff
--- /dev/null
@@ -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
index 51e86c847ddeeb98a106bf6e1e5a29a858022fc8..f1363c8af5ad321430359f731f535562ceb5e079 100644 (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';
+       }
 }
index 12f48f23838c18d75a7ca31b8d3915339c4a7c36..60cfd19c3fde2dd525e2e9ce92d869375ae2043a 100644 (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();
 
index e6ca30d0ce4c5d96119fbe01f45d87b035e69ca7..f6b7eeb7584817bab2d53f74c9d6930c88f7ba46 100644 (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();
index 6e68cfa148cee16dfda1143374728c4962722136..0b5a14626fe420c71805c52f4630dc315943818f 100644 (file)
        </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;
+};?>