mirror of
https://github.com/samba-team/samba.git
synced 2025-03-08 04:58:40 +03:00
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)
This commit is contained in:
parent
6d69e67dfd
commit
5d2daefcf2
@ -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,18 +161,30 @@ 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;
|
||||
|
||||
var req = _this.callRpc(fsm, "samba.ejsnet", callName, callArgs);
|
||||
req.setUserData("requestType", "UserMgr");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Add the new transition
|
||||
state.addTransition(trans);
|
||||
|
||||
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
|
||||
state.addTransition(trans);
|
||||
|
||||
var trans = new qx.util.fsm.Transition(
|
||||
"Transition_Idle_to_AwaitRpcResult_via_netCtx_changed",
|
||||
@ -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");
|
||||
}
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user