diff options
author | Rafal Szczesniak <mimir@samba.org> | 2007-04-24 08:36:41 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:51:34 -0500 |
commit | 5d2daefcf27eeb8fa74b90a0cdf91932ce58e16e (patch) | |
tree | 6340e09bd4517e844fea2ee98598f0beef189c93 /webapps | |
parent | 6d69e67dfdd68edbf682936d4c50562095039034 (diff) | |
download | samba-5d2daefcf27eeb8fa74b90a0cdf91932ce58e16e.tar.gz samba-5d2daefcf27eeb8fa74b90a0cdf91932ce58e16e.tar.bz2 samba-5d2daefcf27eeb8fa74b90a0cdf91932ce58e16e.zip |
r22499: UsrCtx should be created within UsersView. Tree widget just
opens it and passes the domain name(s) to operate on (selectable
via combo box).
rafal
(This used to be commit c438284adf17faff2cd76d14c9de252e995166bd)
Diffstat (limited to 'webapps')
-rw-r--r-- | webapps/swat/source/class/swat/module/netmgr/Fsm.js | 39 | ||||
-rw-r--r-- | webapps/swat/source/class/swat/module/netmgr/Gui.js | 22 | ||||
-rw-r--r-- | webapps/swat/source/class/swat/module/netmgr/UsersView.js | 47 |
3 files changed, 90 insertions, 18 deletions
diff --git a/webapps/swat/source/class/swat/module/netmgr/Fsm.js b/webapps/swat/source/class/swat/module/netmgr/Fsm.js index 70f84904ef..c2e499a18f 100644 --- a/webapps/swat/source/class/swat/module/netmgr/Fsm.js +++ b/webapps/swat/source/class/swat/module/netmgr/Fsm.js @@ -73,6 +73,13 @@ qx.Proto.buildFsm = function(module) "Transition_Idle_to_Idle_via_tree_selection_changed" }, + "changeSelected": + { + // this one is dispatched from UsersView widget + "domainName": + "Transition_Idle_to_AwaitRpcResult_via_domainName_changed" + }, + "changeNetCtx" : { "swat.module.netmgr.Gui" : @@ -120,7 +127,7 @@ qx.Proto.buildFsm = function(module) var trans = new qx.util.fsm.Transition( "Transition_Idle_to_Idle_via_tree_selection_changed", { - "nextState" : "State_AwaitRpcResult", + "nextState" : "State_Idle", "ontransition" : function(fsm, event) { @@ -135,15 +142,14 @@ qx.Proto.buildFsm = function(module) { module.setNetCtx(parentNode.netCtx); } - + + var domainName = parentNode.label; var nodeName = selectedNode.label; - var callName = undefined; // rpc call name - var callArgs = [ gui.getNetCtx() ]; // NetContex goes first switch (nodeName) { case "Users": - callName = "UserMgr"; + gui.openUserManager(module, domainName); break; case "Groups": @@ -155,14 +161,26 @@ qx.Proto.buildFsm = function(module) default: alert("Undefined call selected for node=['" + nodeName + "']"); } + } + + }); - // Bail out if no appropriate call name has been found - if (callName == undefined) return; + // Add the new transition + state.addTransition(trans); - var req = _this.callRpc(fsm, "samba.ejsnet", callName, callArgs); + var trans = new qx.util.fsm.Transition( + "Transition_Idle_to_AwaitRpcResult_via_domainName_changed", + { + "nextState" : "State_AwaitRpcResult", + + "ontransition" : function(fsm, event) + { + var domainName = fsm.getObject("domainName").getValue(); + var netCtxId = swat.module.netmgr.Gui.getInstance().getNetCtx(); + + var req = _this.callRpc(fsm, "samba.ejsnet", "UserMgr", [ netCtxId, domainName ]); req.setUserData("requestType", "UserMgr"); } - }); // Add the new transition @@ -175,7 +193,8 @@ qx.Proto.buildFsm = function(module) "ontransition" : function(fsm, event) { - var netCtxId = 0; + var netCtxId = swat.module.netmgr.Gui.getInstance().getNetCtx(); + var req = _this.callRpc(fsm, "samba.ejsnet", "NetContextCreds", [ netCtxId ]); req.setUserData("requestType", "NetContextCreds"); } diff --git a/webapps/swat/source/class/swat/module/netmgr/Gui.js b/webapps/swat/source/class/swat/module/netmgr/Gui.js index 8e92f4753d..8f9f664a74 100644 --- a/webapps/swat/source/class/swat/module/netmgr/Gui.js +++ b/webapps/swat/source/class/swat/module/netmgr/Gui.js @@ -213,6 +213,20 @@ qx.Proto.getParentNode = function(module, node) }; +qx.Proto.openUserManager = function(module, domainName) +{ + // Remove existing panel if there is any + if (this._panel.getChildrenLength() > 0) + { + this._panel.removeAll(); + } + + // Create user view, pass the context and the view to the panel + var view = new swat.module.netmgr.UsersView(module.fsm, domainName); + this._panel.add(view); +}; + + qx.Proto._addHostNode = function(module, rpcRequest, local) { var fsm = module.fsm; @@ -260,14 +274,8 @@ qx.Proto._updateNetContextCreds = function(module, rpcRequest) qx.Proto._initUserManager = function(module, rpcRequest) { - // Get obtained UsrCtx handle + // Get obtained usrCtx handle var usrCtx = rpcRequest.getUserData("result").data; - - // Create user view and pass the context - var view = new swat.module.netmgr.UsersView(module.fsm); - view.setUsrCtx(usrCtx); - - this._panel.add(view); }; diff --git a/webapps/swat/source/class/swat/module/netmgr/UsersView.js b/webapps/swat/source/class/swat/module/netmgr/UsersView.js index b1b16b61bd..2e87a27b4b 100644 --- a/webapps/swat/source/class/swat/module/netmgr/UsersView.js +++ b/webapps/swat/source/class/swat/module/netmgr/UsersView.js @@ -11,7 +11,7 @@ * Users View */ qx.OO.defineClass("swat.module.netmgr.UsersView", qx.ui.layout.HorizontalBoxLayout, -function(fsm) +function(fsm, domainName) { qx.ui.layout.HorizontalBoxLayout.call(this); @@ -38,6 +38,39 @@ function(fsm) var cmbDomain = new qx.ui.form.ComboBox(); cmbDomain.setEditable(false); + // there's always BUILTIN domain so add it to the list + var item = new qx.ui.form.ListItem("BUILTIN"); + cmbDomain.add(item); + + var selectedItem = undefined; + + // Simply add the domain name if it is passed as a string + if (typeof(domainName) == "string") + { + item = new qx.ui.form.ListItem(domainName); + cmbDomain.add(item); + + selectedItem = item; + } + else // if it's not a string we assume it is a list of strings + { + for (var s in domainName) + { + item = new qx.ui.form.ListItem(s); + cmbDomain.add(s); + } + + selectedItem = new qx.ui.form.ListItem(domainName[0]); + } + + // Add event handling + cmbDomain.addEventListener("changeSelected", fsm.eventListener, fsm); + fsm.addObject("domainName", cmbDomain); + + // Set default selection and dispatch the respective event to initialise the view + cmbDomain.setSelected(selectedItem); + cmbDomain.dispatchEvent(new qx.event.type.Event("changeSelected"), true); + // Create an empty list view with sample column this._columns = { username : { label: "Username", width: 150, type: "text" }}; this._items = []; @@ -60,3 +93,15 @@ function(fsm) // UsrMgr context is required for any operation on user accounts qx.OO.addProperty({ name : "usrCtx", type : "number" }); + + +qx.Proto.refreshView = function() +{ +} + + +qx.Proto._initUserManager = function(module, rpcRequest) +{ + // Get obtained UsrCtx handle + var usrCtx = rpcRequest.getUserData("result").data; +}; |