svn commit: samba r17759 - in branches/SOC/sree/ui: .
sree at samba.org
sree at samba.org
Wed Aug 23 19:33:44 GMT 2006
Author: sree
Date: 2006-08-23 19:33:44 +0000 (Wed, 23 Aug 2006)
New Revision: 17759
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17759
Log:
Add callback so that information in users list can be refreshed in place.
Make rename, new user, properties window, and delete use the callback.
Make context-menu available even when there are no users in list.
Fix bug in usermgmt.js, user_rename(), where unixName was renamed along with name.
Modified:
branches/SOC/sree/ui/newuser.js
branches/SOC/sree/ui/userbrowser.js
branches/SOC/sree/ui/userprop.js
Changeset:
Modified: branches/SOC/sree/ui/newuser.js
===================================================================
--- branches/SOC/sree/ui/newuser.js 2006-08-23 17:10:35 UTC (rev 17758)
+++ branches/SOC/sree/ui/newuser.js 2006-08-23 19:33:44 UTC (rev 17759)
@@ -4,7 +4,7 @@
*/
function __create_user(txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword,
- chkChangePassword, chkAccountFlags, w1)
+ chkChangePassword, chkAccountFlags, w1, updcallback)
{
var flags = 0;
var otherflags = 0;
@@ -25,7 +25,15 @@
function(rval) {
if(rval)
{
- //do ui callback
+ var obj = new Object();
+
+ obj.username = txtUsername.getValue();
+ obj.fullname = txtFullname.getValue();
+ obj.description = txtDescription.getValue();
+ obj.unixname = txtUnixname.getValue();
+
+ updcallback(null, obj, 'new');
+
w1.close();
}
else
@@ -51,7 +59,7 @@
}
// creates the dialog
-function NewUserDialog()
+function NewUserDialog(updcallback)
{
var w1 = new QxWindow("New User");
with(w1)
@@ -173,7 +181,8 @@
if(__validate_form(txtBoxes, txtPassword, txtConfirmPassword))
{
__create_user(txtUsername, txtUnixname, txtFullname, txtDescription, txtPassword,
- chkChangePassword, [chkNoChangePassword, chkNoPasswordExpire, chkAccountDisabled], w1);
+ chkChangePassword, [chkNoChangePassword, chkNoPasswordExpire, chkAccountDisabled],
+ w1, updcallback);
}
});
Modified: branches/SOC/sree/ui/userbrowser.js
===================================================================
--- branches/SOC/sree/ui/userbrowser.js 2006-08-23 17:10:35 UTC (rev 17758)
+++ branches/SOC/sree/ui/userbrowser.js 2006-08-23 19:33:44 UTC (rev 17759)
@@ -98,7 +98,7 @@
return w;
}
-function __create_rename_dialog(username)
+function __create_rename_dialog(username, updcallback, item)
{
var w = new QxWindow("Rename user " + username);
with (w)
@@ -143,8 +143,10 @@
function(result) {
if(result)
{
- //TODO: ui refresh
+ var o = new Object();
+ o.username = txtUsername.getValue();
w.close();
+ updcallback(item, o, 'update');
}
else
window.alert("Unable to rename user");
@@ -171,11 +173,6 @@
function __load_users(lv, list)
{
-/* // DEBUG
- list = {0: {'sAMAccountName' : 'sree', 'displayName' : 'Sreepathi Pai',
- 'unixName' : 'sree2', 'description' : 'who left his computer behind'}, length: 1};
- // END DEBUG */
-
var ld = lv.getData();
for(var i = 0; i < list.length; i++)
@@ -232,13 +229,50 @@
setHeight(440);
setBackgroundColor("white");
getPane().getManager().setMultiSelection(false);
+ setSortBy("username");
}
- var m2 = new QxMenu;
+ function __update_lv_inplace(item, props, action)
+ {
+ var proplist = ['username', 'unixname', 'fullname', 'description'];
+ if(action == 'delete')
+ {
+ var data;
+ data = lv.getData();
+ var ndx = data.indexOf(item);
+ data.splice(ndx, 1);
+ if(ndx >= data.length) ndx = data.length - 1;
+ if(ndx >= 0) lv.getPane().getManager().setSelectedItem(data[ndx]);
+ }
+ else if(action == 'new')
+ {
+ var item = new Object();
+
+ for(var i = 0; i < proplist.length; i++)
+ {
+ item[proplist[i]] = new Object();
+ item[proplist[i]].text = props[proplist[i]];
+ }
+
+ lv.getData().push(item);
+ lv.getPane().getManager().setSelectedItem(item);
+ }
+ else if(action == 'update')
+ {
+ for(var i = 0; i < proplist.length; i++)
+ if(props[proplist[i]]) item[proplist[i]].text = props[proplist[i]];
+ }
+
+ lv.updateSort();
+ lv.updateContent();
+ }
+
+
+ var m2 = new QxMenu;
var q0 = new QxCommand();
q0.addEventListener("execute", function(e) {
- if(UserPropertiesDialog)
+ if(NewUserDialog)
{
if(w1.newuserdialog && (w1.newuserdialog.getVisibility() == true))
{
@@ -248,7 +282,7 @@
else
w1.newuserdialog = null;
- var nu = NewUserDialog();
+ var nu = NewUserDialog(__update_lv_inplace);
__center_window_in_parent(w1, nu);
d.add(nu);
@@ -291,7 +325,7 @@
else
user.renamedialog = null;
- var ren = __create_rename_dialog(user.username.text);
+ var ren = __create_rename_dialog(user.username.text, __update_lv_inplace, user);
__center_window_in_parent(w1, ren);
d.add(ren);
@@ -307,13 +341,7 @@
server_call_url("/user_manager/usermgmt.esp", 'user_delete',
function(result) {
if(result)
- {
- lv.getData().length = 0;
- lv.update();
-
- server_call_url("/user_manager/usermgmt.esp", 'user_get_all',
- function(list) { __load_users(lv, list);}, attrs);
- }
+ __update_lv_inplace(user, null, 'delete');
else
window.alert("Could not delete user!");
}, user.username.text);
@@ -344,7 +372,8 @@
{
if(user_data)
{
- var prop = UserPropertiesDialog(user.username.text, user_data);
+ var prop = UserPropertiesDialog(user.username.text, user_data,
+ __update_lv_inplace, user);
__center_window_in_parent(w1, prop);
d.add(prop);
@@ -385,19 +414,18 @@
if(e.getButton() == QxConst.BUTTON_RIGHT)
{
var item = this.getListViewTarget(e);
- if(item)
+ if (m2.isSeeable())
+ m2.hide();
+ else
{
- if (m2.isSeeable())
- {
- m2.hide();
- }
- else
- {
- m2.setLeft(e.getPageX());
- m2.setTop(e.getPageY());
+ m2.setLeft(e.getPageX());
+ m2.setTop(e.getPageY());
- m2.show();
- }
+ var itemDependent = [mb2_01, mb2_02, mb2_03, mb2_04];
+ for(var i = 0; i < itemDependent.length; i++)
+ itemDependent[i].setEnabled(item != null);
+
+ m2.show();
};
e.setPropagationStopped(true);
Modified: branches/SOC/sree/ui/userprop.js
===================================================================
--- branches/SOC/sree/ui/userprop.js 2006-08-23 17:10:35 UTC (rev 17758)
+++ branches/SOC/sree/ui/userprop.js 2006-08-23 19:33:44 UTC (rev 17759)
@@ -437,7 +437,7 @@
tv.getPane().add(pp);
}
-function UserPropertiesDialog(username, user_data)
+function UserPropertiesDialog(username, user_data, updcallback, listitem)
{
var w1 = new QxWindow(username + " Properties");
with(w1)
@@ -500,6 +500,7 @@
function (result) {
if(result)
{
+ updcallback(listitem, props.general, 'update');
if(close) w1.close();
}
else
More information about the samba-cvs
mailing list