Browse Source

wrap up all views for the user admin thingy into the MumbleUserAdmin object and fix saving

Natenom/support-murmur-13-1446181288462
Michael Ziegler 15 years ago
parent
commit
1727c353ba
  1. 25
      htdocs/js/usereditor.js
  2. 24
      pyweb/mumble/views.py

25
htdocs/js/usereditor.js

@ -16,7 +16,7 @@ Ext.ux.UserEditorPanel = function( config ){
userAdminStore = new Ext.data.DirectStore({
baseParams: { server: this.server },
directFn: Mumble.users,
directFn: MumbleUserAdmin.users,
fields: userRecord,
autoLoad: true,
remoteSort: false
@ -42,7 +42,7 @@ Ext.ux.UserEditorPanel = function( config ){
valueField: 'uid',
displayField: 'uname',
store: new Ext.data.DirectStore({
directFn: Mumble.djangousers,
directFn: MumbleUserAdmin.djangousers,
fields: [ 'uid', 'uname' ],
autoLoad: true
})
@ -86,7 +86,7 @@ Ext.ux.UserEditorPanel = function( config ){
}
}, deleteColumn ] ),
tbar: [{
buttons: [{
text: gettext("Add"),
handler : function(){
userAdminStore.add( new userRecord( {
@ -101,18 +101,15 @@ Ext.ux.UserEditorPanel = function( config ){
}, {
text: gettext("Save"),
handler : function(){
data = [];
var data = [];
for( i = 0; i < userAdminStore.data.items.length; i++ ){
rec = userAdminStore.data.items[i];
var rec = userAdminStore.data.items[i];
if( rec.dirty ){
data.push(rec.data);
}
}
var conn = new Ext.data.Connection();
conn.request( {
url: userAdminStore.url,
params: { data: Ext.encode( data ) },
success: function(){
MumbleUserAdmin.update( data, function(provider, response){
if( response.result.success ){
for( i = 0; i < userAdminStore.data.items.length; i++ ){
rec = userAdminStore.data.items[i];
if( rec.data['delete'] == true )
@ -122,6 +119,14 @@ Ext.ux.UserEditorPanel = function( config ){
}
}
}
else{
Ext.Msg.show({
title: gettext("Submit error"),
msg: gettext("Unable to save."),
icon: Ext.MessageBox.ERROR,
buttons: Ext.MessageBox.OK
});
}
});
}
}, {

24
pyweb/mumble/views.py

@ -216,7 +216,7 @@ def log( request, server, start, limit, filter ):
], 'success': True }
@EXT_DIRECT_PROVIDER.register_method( "Mumble" )
@EXT_DIRECT_PROVIDER.register_method( "MumbleUserAdmin" )
def users( request, server ):
""" Create a list of MumbleUsers for a given server serialized as a JSON object.
@ -247,7 +247,7 @@ def users( request, server ):
return users
@EXT_DIRECT_PROVIDER.register_method( "Mumble" )
@EXT_DIRECT_PROVIDER.register_method( "MumbleUserAdmin" )
def djangousers( request ):
""" Return a list of all Django users' names and IDs. """
@ -260,6 +260,26 @@ def djangousers( request ):
return users
@EXT_DIRECT_PROVIDER.register_method( "MumbleUserAdmin" )
def update( request, data ):
for record in data:
if record['id'] == -1:
if record['delete']:
continue
mu = MumbleUser( server=srv )
else:
mu = MumbleUser.objects.get( id=record['id'] )
if record['delete']:
mu.delete()
continue
mu.name = record['name']
mu.password = record['password']
if record['owner']:
mu.owner = User.objects.get( id=int(record['owner']) )
mu.save()
mu.aclAdmin = record['admin']
return { 'success': True }
@login_required
@csrf_exempt

Loading…
Cancel
Save