summaryrefslogtreecommitdiffstats
path: root/install
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
parent2f4f9054aac8bef83272d690a4868653a3a5bd0d (diff)
downloadfreeipa-6b63ab1c3240e41dd77ef2df312618f3e9cf0097.tar.gz
freeipa-6b63ab1c3240e41dd77ef2df312618f3e9cf0097.tar.xz
freeipa-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')
-rw-r--r--install/static/index.xhtml17
-rw-r--r--install/static/ipa.js63
2 files changed, 46 insertions, 34 deletions
diff --git a/install/static/index.xhtml b/install/static/index.xhtml
index b22a5bacc..e94e6d18e 100644
--- a/install/static/index.xhtml
+++ b/install/static/index.xhtml
@@ -7,6 +7,14 @@
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
+
+ <script type="text/javascript">
+ /* 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;
+ </script>
+
<script type="text/javascript" src="ipa.js" />
<script type="text/javascript" src="pageparams.js" />
@@ -25,7 +33,10 @@
<script type="text/javascript">
$(document).ready(function(){
- buildNavigation();
+ if (useSampleData)
+ ipa_init(sampleData, buildNavigation);
+ else
+ ipa_init(null, buildNavigation);
});
</script>
@@ -49,8 +60,8 @@
</div>
<div id="search" style="visibility:hidden">
- <div id="searchControls" class="searchControls" >
- <span id="filter" class="filter" >
+ <div class="searchControls" >
+ <span class="filter" >
<input id="queryFilter" type="text"/>
<input id="query" type="submit" value="find" />
<input id="new" type="submit" value="new" />
diff --git a/install/static/ipa.js b/install/static/ipa.js
index 8fba8fb4c..d1f9fe59c 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);
}