summaryrefslogtreecommitdiffstats
path: root/install/static/ipa.js
diff options
context:
space:
mode:
authorPavel Zuna <pzuna@redhat.com>2010-08-17 14:26:36 -0400
committerAdam Young <ayoung@redhat.com>2010-08-17 14:26:36 -0400
commit6b63ab1c3240e41dd77ef2df312618f3e9cf0097 (patch)
treeeefe5dddf301c3996a30d38cb8cd108cd96bca7d /install/static/ipa.js
parent2f4f9054aac8bef83272d690a4868653a3a5bd0d (diff)
downloadfreeipa.git-6b63ab1c3240e41dd77ef2df312618f3e9cf0097.tar.gz
freeipa.git-6b63ab1c3240e41dd77ef2df312618f3e9cf0097.tar.xz
freeipa.git-6b63ab1c3240e41dd77ef2df312618f3e9cf0097.zip
Clean ipa.js and make it load plugin meta-data over JSON-RPC.
What it means? Well, first I removed some development control variables from ipa.js. Namely useSampleData and sizelimit. I moved useSampleData to the top of index.xhtml. This way we won't forget about it when we don't need it anymore. sizelimit has nothing to do in ipa.js and be hardcoded for ALL commands! Some don't have this parameter and could fail. Since ipa_init now loads meta-data over JSON-RPC, we need to wait for it to finish its job. That's why I put a second parameter to ipa_init: on_win. ipa_init will call on_win when all data is loaded properly and we can start building the page.
Diffstat (limited to 'install/static/ipa.js')
-rw-r--r--install/static/ipa.js63
1 files changed, 32 insertions, 31 deletions
diff --git a/install/static/ipa.js b/install/static/ipa.js
index 8fba8fb4..d1f9fe59 100644
--- a/install/static/ipa.js
+++ b/install/static/ipa.js
@@ -18,17 +18,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
-
-//the develop.js file that follows will set this to true.
-//that file should only exist in the source file system
-//and should not get deployed to the web server
-var useSampleData = false;
-
-
-//Maximum number of records to return on any query.
-var sizelimit=100;
-
/* IPA JSON-RPC helper */
/* JSON-RPC ID counter */
@@ -37,11 +26,35 @@ var ipa_jsonrpc_id = 0;
/* IPA objects data in JSON format */
var ipa_objs = {};
+var _ipa_init_on_win_callback = null;
/* initialize the IPA JSON-RPC helper
* arguments:
* url - JSON-RPC URL to use (optional) */
-function ipa_init(url)
+function ipa_init(url, on_win)
{
+ if (!url)
+ url = '/ipa/json';
+
+ _ipa_init_on_win_callback = on_win;
+
+ var options = {
+ url: url,
+ type: 'POST',
+ contentType: 'application/json',
+ dataType: 'json',
+ processData: false,
+ };
+
+ $.ajaxSetup(options);
+
+ ipa_cmd('json_metadata', [], {}, _ipa_load_objs);
+}
+
+function _ipa_load_objs(data, textStatus, xhr)
+{
+ ipa_objs = data.result.result;
+ if (_ipa_init_on_win_callback)
+ _ipa_init_on_win_callback(data, textStatus, xhr);
}
/* call an IPA command over JSON-RPC
@@ -58,31 +71,19 @@ function ipa_cmd(name, args, options, win_callback, fail_callback, objname)
if (objname)
name = objname + '_' + name;
- options.sizelimit = sizelimit;
-
var data = {
method: name,
params: [args, options],
id: id,
};
- var jsonUrl = '/ipa/json';
- if (useSampleData){
- jsonUrl = sampleData;
- }
- $.ajax({
- beforeSend: function(xhrObj){
- xhrObj.setRequestHeader("Content-Type","application/json");
- xhrObj.setRequestHeader("Accept","application/json");
- },
- type: "POST",
- url: jsonUrl,
- processData: false,
- data: JSON.stringify(data),
- dataType: "json",
- success: win_callback,
- error: fail_callback,
- });
+ var request = {
+ data: JSON.stringify(data),
+ success: win_callback,
+ error: fail_callback,
+ };
+
+ $.ajax(request);
return (id);
}