summaryrefslogtreecommitdiffstats
path: root/install/ui/ipa.js
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2011-05-23 10:39:09 -0400
committerAdam Young <ayoung@redhat.com>2011-05-23 13:31:23 -0400
commit03303390031ae88c9df3a0e14d85550884bb1740 (patch)
tree5f4fa206c61b909657d760de902d5f7bb136c25f /install/ui/ipa.js
parent0238cb845a724969990be3c8a45ef572296b5de1 (diff)
downloadfreeipa-03303390031ae88c9df3a0e14d85550884bb1740.tar.gz
freeipa-03303390031ae88c9df3a0e14d85550884bb1740.tar.xz
freeipa-03303390031ae88c9df3a0e14d85550884bb1740.zip
create entities on demand.
fixed changes from code review Fixed unit tests for entity on demand changes.
Diffstat (limited to 'install/ui/ipa.js')
-rw-r--r--install/ui/ipa.js31
1 files changed, 14 insertions, 17 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 8f11b92df..13c894fa6 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -131,31 +131,28 @@ var IPA = ( function () {
};
that.get_entity = function(name) {
- return that.entities.get(name);
- };
-
- that.add_entity = function(entity) {
- that.entities.put(entity.name, entity);
- };
-
- that.remove_entity = function(name) {
- that.entities.remove(name);
- };
-
- that.start_entities = function() {
- var factory;
- var name;
- for (name in that.entity_factories) {
- factory = that.entity_factories[name];
+ var entity = that.entities.get(name);
+ if (!entity){
+ var factory = that.entity_factories[name];
try {
- var entity = factory();
+ entity = factory();
that.add_entity(entity);
entity.init();
} catch (e) {
/*exceptions thrown by builder just mean that entities
are not to be registered. */
+ return null;
}
}
+ return entity;
+ };
+
+ that.add_entity = function(entity) {
+ that.entities.put(entity.name, entity);
+ };
+
+ that.remove_entity = function(name) {
+ that.entities.remove(name);
};
that.test_dirty = function(){