summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2013-04-12 17:25:24 +0200
committerPetr Vobornik <pvoborni@redhat.com>2013-05-06 16:22:25 +0200
commit1d802d12a476ca6918a8d325ed6b29d5103f0c94 (patch)
treef970a65a5aed1ddf2f6522ccad1ae27fb9d8e81c
parent952234ef79e1431773d3f3f35d71a7a12a229d5f (diff)
downloadfreeipa-1d802d12a476ca6918a8d325ed6b29d5103f0c94.tar.gz
freeipa-1d802d12a476ca6918a8d325ed6b29d5103f0c94.tar.xz
freeipa-1d802d12a476ca6918a8d325ed6b29d5103f0c94.zip
Builder: allow to use custom factory/ctor when using type
https://fedorahosted.org/freeipa/ticket/3235
-rw-r--r--install/ui/src/freeipa/_base/Builder.js13
1 files changed, 4 insertions, 9 deletions
diff --git a/install/ui/src/freeipa/_base/Builder.js b/install/ui/src/freeipa/_base/Builder.js
index bcd607158..464a2c09d 100644
--- a/install/ui/src/freeipa/_base/Builder.js
+++ b/install/ui/src/freeipa/_base/Builder.js
@@ -158,15 +158,7 @@ define(['dojo/_base/declare',
delete s.$pre_ops;
delete s.$post_ops;
- if (c) {
- cs.ctor = c;
- cs.spec = s;
- }
- else if (f) {
- cs.factory = f;
- cs.spec = s;
- }
- else if (t) {
+ if (t) {
cs = this._query_registry(t);
if (cs.spec && m) {
lang.mixin(cs.spec, s);
@@ -177,6 +169,9 @@ define(['dojo/_base/declare',
cs.spec = s;
}
+ if (c) cs.ctor = c;
+ if (f) cs.factory = f;
+
cs.pre_ops = cs.pre_ops || [];
cs.post_ops = cs.post_ops || [];
if (pre) cs.pre_ops.push.call(cs.pre_ops, pre);