summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/_base
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2013-04-11 16:42:11 +0200
committerPetr Vobornik <pvoborni@redhat.com>2013-05-06 16:22:24 +0200
commit0dc4b133fb0795b9c55f8a9fc95b55bc4df7ebf2 (patch)
treedc2d84162fa70ffff2b5ae4eed0b2f1896faf2a8 /install/ui/src/freeipa/_base
parent9dc8e26b735c7ad6b9ed2277a95c8745edfc7f40 (diff)
downloadfreeipa-0dc4b133fb0795b9c55f8a9fc95b55bc4df7ebf2.tar.gz
freeipa-0dc4b133fb0795b9c55f8a9fc95b55bc4df7ebf2.tar.xz
freeipa-0dc4b133fb0795b9c55f8a9fc95b55bc4df7ebf2.zip
Builder: return object when it's already built
https://fedorahosted.org/freeipa/ticket/3235
Diffstat (limited to 'install/ui/src/freeipa/_base')
-rw-r--r--install/ui/src/freeipa/_base/Builder.js1
-rw-r--r--install/ui/src/freeipa/_base/construct.js20
2 files changed, 19 insertions, 2 deletions
diff --git a/install/ui/src/freeipa/_base/Builder.js b/install/ui/src/freeipa/_base/Builder.js
index 0eb76c4a7..d01f86f17 100644
--- a/install/ui/src/freeipa/_base/Builder.js
+++ b/install/ui/src/freeipa/_base/Builder.js
@@ -84,6 +84,7 @@ define(['dojo/_base/declare',
var f,c;
if (spec === undefined || spec === null) return null;
+ if (!construct.is_spec(spec)) return spec;
context = context || {};
diff --git a/install/ui/src/freeipa/_base/construct.js b/install/ui/src/freeipa/_base/construct.js
index bc017ad66..e44c66b1e 100644
--- a/install/ui/src/freeipa/_base/construct.js
+++ b/install/ui/src/freeipa/_base/construct.js
@@ -34,12 +34,28 @@ define(['dojo/_base/declare',
*/
is_ctor: function(obj) {
- // TODO: Find better method. Check by extend might not be very
- // reliable.
return typeof obj === 'function' && typeof obj.extend === 'function';
},
/**
+ * Finds out if object is a spec object.
+ *
+ * Object is not a spec object when any of following applies:
+ * * has __fw_obj === true
+ * * has isInstanceOf function - basically tells if it's a instance of
+ * dojo-based class
+ *
+ */
+ is_spec: function(obj) {
+ var ret = false;
+ if (typeof obj === 'object') {
+ ret = obj.__fw_obj === true ||
+ typeof obj.isInstanceOf === 'function';
+ }
+ return !ret;
+ },
+
+ /**
* Creates copy of construction specification
*
* It makes sure that pre_ops, post_ops and spec are new Arrays/Object