summaryrefslogtreecommitdiff
path: root/webapps/swat
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/swat')
-rw-r--r--webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js4
-rw-r--r--webapps/swat/source/class/swat/module/ldbbrowse/Gui.js72
2 files changed, 53 insertions, 23 deletions
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js b/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js
index 6d436f4aa7..b28a3eb168 100644
--- a/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js
+++ b/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js
@@ -78,7 +78,7 @@ qx.Proto.buildFsm = function(module)
"events" :
{
- // If the search button is activated, issue a seacrh request
+ // If the search button is activated, issue a search request
"execute" :
{
"search" :
@@ -200,7 +200,7 @@ qx.Proto.buildFsm = function(module)
if (parent == tree)
{
// ... then we want the defaultNamingContext, ...
- attributes = [ "defaultNamingContext" ];
+ attributes = [ "defaultNamingContext", "namingContexts" ];
// ... and we want only base scope
scope = "base";
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js b/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js
index 3f9cda0053..38f8314bb4 100644
--- a/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js
+++ b/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js
@@ -510,33 +510,63 @@ qx.Proto._displayTreeOpenResults = function(module, rpcRequest)
return;
}
- for (var i = 0; i < result.length; i++)
- {
- var name;
-
- child = result[i];
+ // base object, add naming contexts to the root
+ if ((result.length == 1) &&
+ ((result[0]["dn"] == "") ||
+ (result[0]["dn"].toLowerCase() == "cn=rootdse"))) {
+
+ defnc = result[0]["defaultNamingContext"];
+
+ // Build a tree row for the defaultNamingContext
+ if (defnc) {
+ trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard(defnc);
+ // This row is a "folder" (it can have children)
+ t = new qx.ui.treefullcontrol.TreeFolder(trs);
+ t.setAlwaysShowPlusMinusSymbol(true);
+
+ // Add this row to its parent
+ parent.add(t);
+ }
- // Determine name for new tree row. If first level, use entire
- // DN. Otherwise, strip off first additional component.
- if (attributes == "defaultNamingContext")
- {
- name = child["defaultNamingContext"];
+ var ncs = result[0]["namingContexts"];
+
+ // If it's multi-valued (type is an array) we have other naming contexts to show
+ if (typeof(ncs) == "object") {
+
+ for (var i = 0; i < ncs.length; i++) {
+ if (ncs[i] != defnc) { //skip default naming context
+ trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard(ncs[i]);
+ // This row is a "folder" (it can have children)
+ t = new qx.ui.treefullcontrol.TreeFolder(trs);
+ t.setAlwaysShowPlusMinusSymbol(true);
+
+ // Add this row to its parent
+ parent.add(t);
+ }
+ }
}
- else
+ }
+ else {
+
+ for (var i = 0; i < result.length; i++)
{
- //FIXME: must check for escapes, as ',' is also a valid value, not only a separator
+ var name;
+
+ child = result[i];
+
name = child["dn"].split(",")[0];
+
+ // Build a standard tree row
+ trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard(name);
+
+ // This row is a "folder" (it can have children)
+ t = new qx.ui.treefullcontrol.TreeFolder(trs);
+ t.setAlwaysShowPlusMinusSymbol(true);
+
+ // Add this row to its parent
+ parent.add(t);
}
- // Build a standard tree row
- trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard(name);
-
- // This row is a "folder" (it can have children)
- t = new qx.ui.treefullcontrol.TreeFolder(trs);
- t.setAlwaysShowPlusMinusSymbol(true);
-
- // Add this row to its parent
- parent.add(t);
}
};