]> source.dussan.org Git - nextcloud-server.git/commitdiff
add javascript bindings for OC_AppConfig
authorRobin Appelman <icewind@owncloud.com>
Wed, 22 Feb 2012 21:16:33 +0000 (22:16 +0100)
committerRobin Appelman <icewind@owncloud.com>
Wed, 22 Feb 2012 21:20:11 +0000 (22:20 +0100)
core/ajax/appconfig.php [new file with mode: 0644]
core/js/config.js [new file with mode: 0644]
lib/base.php

diff --git a/core/ajax/appconfig.php b/core/ajax/appconfig.php
new file mode 100644 (file)
index 0000000..50984ac
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com>
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+
+require_once ("../../lib/base.php");
+OC_JSON::checkLoggedIn();
+$action=isset($_POST['action'])?$_POST['action']:$_GET['action'];
+$result=false;
+switch($action){
+       case 'getValue':
+               $result=OC_Appconfig::getValue($_GET['app'],$_GET['key'],$_GET['default']);
+               break;
+       case 'setValue':
+               $result=OC_Appconfig::setValue($_POST['app'],$_POST['key'],$_POST['value']);
+               break;
+       case 'getApps':
+               $result=OC_Appconfig::getApps();
+               break;
+       case 'getKeys':
+               $result=OC_Appconfig::getKeys($_GET['app']);
+               break;
+       case 'hasKey':
+               $result=OC_Appconfig::hasKey($_GET['app'],$_GET['key']);
+               break;
+       case 'deleteKey':
+               $result=OC_Appconfig::deleteKey($_POST['app'],$_POST['key']);
+               break;
+       case 'deleteApp':
+               $result=OC_Appconfig::deleteApp($_POST['app']);
+               break;
+}
+OC_JSON::success(array('data'=>$result));
diff --git a/core/js/config.js b/core/js/config.js
new file mode 100644 (file)
index 0000000..500fe07
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com>
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+
+OC.AppConfig={
+       url:OC.filePath('core','ajax','appconfig.php'),
+       getCall:function(action,data,callback){
+               data.action=action;
+               $.getJSON(OC.AppConfig.url,data,function(result){
+                       if(result.status='success'){
+                               if(callback){
+                                       callback(result.data);
+                               }
+                       }
+               });
+       },
+       postCall:function(action,data,callback){
+               data.action=action;
+               $.post(OC.AppConfig.url,data,function(result){
+                       if(result.status='success'){
+                               if(callback){
+                                       callback(result.data);
+                               }
+                       }
+               },'json');
+       },
+       getValue:function(app,key,defaultValue,callback){
+               if(typeof defaultValue=='function'){
+                       callback=defaultValue;
+                       defaultValue=null;
+               }
+               OC.AppConfig.getCall('getValue',{app:app,key:key,default:defaultValue},callback);
+       },
+       setValue:function(app,key,value){
+               OC.AppConfig.postCall('setValue',{app:app,key:key,value:value});
+       },
+       getApps:function(callback){
+               OC.AppConfig.getCall('getApps',{},callback);
+       },
+       getKeys:function(app,callback){
+               OC.AppConfig.getCall('getKeys',{app:app},callback);
+       },
+       hasKey:function(app,key,callback){
+               OC.AppConfig.getCall('hasKey',{app:app,key:key},callback);
+       },
+       deleteKey:function(app,key){
+               OC.AppConfig.postCall('deleteKey',{app:app,key:key});
+       },
+       deleteApp:function(app){
+               OC.AppConfig.postCall('deleteApp',{app:app});
+       },
+}
+//TODO OC.Preferences
index 94e4907fed29f3c830106229db58c4e57061f64f..652b1f11bad43909f6be8b6043985dc93d60e2f7 100644 (file)
@@ -205,6 +205,7 @@ class OC{
                OC_Util::addScript( "jquery-tipsy" );
                OC_Util::addScript( "js" );
                OC_Util::addScript( "eventsource" );
+               OC_Util::addScript( "config" );
                //OC_Util::addScript( "multiselect" );
                OC_Util::addScript('search','result');
                OC_Util::addStyle( "styles" );