From 2e05bd69f5b39f449f7e7475d81c27ee2b1f946a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 22 Feb 2012 22:16:33 +0100 Subject: [PATCH] add javascript bindings for OC_AppConfig --- core/ajax/appconfig.php | 35 ++++++++++++++++++++++++++ core/js/config.js | 55 +++++++++++++++++++++++++++++++++++++++++ lib/base.php | 1 + 3 files changed, 91 insertions(+) create mode 100644 core/ajax/appconfig.php create mode 100644 core/js/config.js diff --git a/core/ajax/appconfig.php b/core/ajax/appconfig.php new file mode 100644 index 00000000000..50984ac32b9 --- /dev/null +++ b/core/ajax/appconfig.php @@ -0,0 +1,35 @@ + + * 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 index 00000000000..500fe072a64 --- /dev/null +++ b/core/js/config.js @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2011, Robin Appelman + * 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 diff --git a/lib/base.php b/lib/base.php index 94e4907fed2..652b1f11bad 100644 --- a/lib/base.php +++ b/lib/base.php @@ -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" ); -- 2.39.5