~ubuntu-branches/ubuntu/saucy/mumble-django/saucy-proposed

« back to all changes in this revision

Viewing changes to pyweb/mumble/static/mumble/js/usereditor.js

  • Committer: Package Import Robot
  • Author(s): Michael Ziegler
  • Date: 2013-05-19 18:06:11 UTC
  • mfrom: (1.2.6)
  • Revision ID: package-import@ubuntu.com-20130519180611-flqpsk20fu2t6hq4
Tags: 2.9-1
* New upstream release.
* Drop DM-Upload-Allowed as it isn't used any longer.
* Update VCS-{SVN,Browser} tags.
* Update Django dependency to 1.5.
* Remove template patch for django-registration 0.8 (applied upstream).
* Remove the hunk that adds MessageMiddleware to settings.py (applied
  upstream).
* Disable the registration app for now (incompatible to Django 1.5).
* Remove dependency to python-simplejson.
* Adapt apache config to staticfiles change.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// kate: space-indent on; indent-width 2; replace-tabs on;
 
2
 
 
3
Ext.namespace('Ext.ux');
 
4
 
 
5
Ext.ux.UserEditorPanel = function( config ){
 
6
  Ext.apply( this, config );
 
7
 
 
8
  userRecord = Ext.data.Record.create([
 
9
    { name: 'id',       type: 'int'    },
 
10
    { name: 'name',     type: 'string' },
 
11
    { name: 'password', type: 'string' },
 
12
    { name: 'owner',    type: 'int'    },
 
13
    { name: 'admin',    type: 'bool'   },
 
14
    { name: 'delete',   type: 'bool'   }
 
15
    ]);
 
16
 
 
17
  userAdminStore = new Ext.data.DirectStore({
 
18
    baseParams: { server: this.server, resync: false },
 
19
    directFn: MumbleUserAdmin.users,
 
20
    fields:   userRecord,
 
21
    paramOrder: ['server', 'resync'],
 
22
    autoLoad: true,
 
23
    remoteSort: false
 
24
    });
 
25
 
 
26
  adminColumn = new Ext.grid.CheckColumn({
 
27
    header:    gettext("Admin on root channel"),
 
28
    dataIndex: 'admin',
 
29
    width:     50
 
30
    });
 
31
 
 
32
  deleteColumn = new Ext.grid.CheckColumn({
 
33
    header:    gettext("Delete"),
 
34
    dataIndex: 'delete',
 
35
    width:     50
 
36
    });
 
37
 
 
38
  ownerCombo = new Ext.form.ComboBox({
 
39
    name:           'owner',
 
40
    hiddenName:     'owner_id',
 
41
    forceSelection: true,
 
42
    triggerAction:  'all',
 
43
    valueField:     'uid',
 
44
    displayField:   'uname',
 
45
    store: new Ext.data.DirectStore({
 
46
      directFn: MumbleUserAdmin.djangousers,
 
47
      fields:   [ 'uid', 'uname' ],
 
48
      autoLoad: true
 
49
      })
 
50
    });
 
51
 
 
52
  Ext.applyIf( this, {
 
53
    title:  gettext("User List"),
 
54
    store:  userAdminStore,
 
55
    viewConfig: { forceFit: true },
 
56
 
 
57
    cm: new Ext.grid.ColumnModel( [ {
 
58
        header:    gettext("name"),
 
59
        dataIndex: 'name',
 
60
        sortable:  true,
 
61
        editor:    new Ext.form.TextField({
 
62
          allowBlank: false
 
63
          })
 
64
      }, {
 
65
        header:    gettext("Account owner"),
 
66
        dataIndex: 'owner',
 
67
        editor:    ownerCombo,
 
68
        sortable:  true,
 
69
        renderer:  function( value ){
 
70
          if( value == '' ) return '';
 
71
          items = ownerCombo.store.data.items;
 
72
          for( i = 0; i < items.length; i++ )
 
73
            if( items[i].data.uid == value )
 
74
              return items[i].data.uname;
 
75
          }
 
76
      }, adminColumn, {
 
77
        header:    gettext("Change password"),
 
78
        dataIndex: 'password',
 
79
        editor: new Ext.form.TextField({
 
80
          inputType: 'password'
 
81
          }),
 
82
        renderer: function( value ){
 
83
          ret = '';
 
84
          for( i = 0; i < value.length; i++ )
 
85
            ret += '*';
 
86
          return ret;
 
87
          }
 
88
      }, deleteColumn ] ),
 
89
 
 
90
    buttons:   [{
 
91
        text:     gettext("Add"),
 
92
        handler : function(){
 
93
          userAdminStore.add( new userRecord( {
 
94
            id:       -1,
 
95
            name:     gettext('New User'),
 
96
            admin:    false,
 
97
            owner:    '',
 
98
            password: '',
 
99
            'delete': false
 
100
          } ) );
 
101
        }
 
102
      }, {
 
103
        text:     gettext("Save"),
 
104
        scope: this,
 
105
        handler : function(){
 
106
          var data = [];
 
107
          for( i = 0; i < userAdminStore.data.items.length; i++ ){
 
108
            var rec = userAdminStore.data.items[i];
 
109
            if( rec.dirty ){
 
110
              data.push(rec.data);
 
111
            }
 
112
          }
 
113
          MumbleUserAdmin.update( this.server, data, function(provider, response){
 
114
            if( response.result.success ){
 
115
              for( i = 0; i < userAdminStore.data.items.length; i++ ){
 
116
                rec = userAdminStore.data.items[i];
 
117
                if( rec.data['delete'] == true )
 
118
                  userAdminStore.remove( rec );
 
119
                else if( rec.dirty ){
 
120
                  rec.commit();
 
121
                }
 
122
              }
 
123
            }
 
124
            else{
 
125
              Ext.Msg.show({
 
126
                title: gettext("Submit error"),
 
127
                msg:   gettext("Unable to save."),
 
128
                icon:  Ext.MessageBox.ERROR,
 
129
                buttons: Ext.MessageBox.OK
 
130
                });
 
131
            }
 
132
          });
 
133
        }
 
134
      }, {
 
135
        text:    gettext("Refresh"),
 
136
        handler: function(){
 
137
          userAdminStore.reload({
 
138
            params: { 'resync': false }
 
139
          });
 
140
        }
 
141
      }, {
 
142
        text:    gettext("Resync with Murmur"),
 
143
        handler: function(){
 
144
          userAdminStore.reload({
 
145
            params: { 'resync': true }
 
146
          });
 
147
        }
 
148
      }],
 
149
    plugins: [ adminColumn, deleteColumn ]
 
150
  });
 
151
  Ext.ux.UserEditorPanel.superclass.constructor.call( this );
 
152
};
 
153
 
 
154
Ext.extend( Ext.ux.UserEditorPanel, Ext.grid.EditorGridPanel, {
 
155
} );
 
156
 
 
157
Ext.reg( 'userEditorPanel', Ext.ux.UserEditorPanel );