Ext.define('Console.view.admin.USERList',{
extend: 'Console.lib.BaseGrid',
alias: 'widget.admin_user_list',
store: 'USERs',
requires:['Console.view.admin.USERWindow'],
cls:'center-panel',
title:'Users',
searchable: false,
columns: [{
header: 'Name',
dataIndex: 'name',
hideable: false,
flex: 0.75
}, {
header: 'Status',
dataIndex: 'state',
hideable: false,
flex: 0.5
}],
enable_item_buttons: function() {
var tbar = this.dockedItems.items[1];
tbar.items.each(function(item) {
if (item.disabled) {
item.enable();
}
});
},
disable_item_buttons: function() {
},
initComponent: function() {
this.tbar_cfg = ['->',{
text: 'Add User',
scope: this,
handler: function(b, e) {
this.load_user();
}
},
{
text: 'Delete',
itemId: 'user-delete',
disabled: true,
handler: function(b, e) {
var selection = this.getSelectionModel().getSelection()[0];
if (selection) {
Ext.Msg.confirm(this._t('Delete User'), this._t('Delete this User'), function(button) {
if (button === 'yes') {
this.store.remove(selection);
this.store.sync({
success: function() {
this.fireEvent('deleted', selection);
},
scope: this
});
}
}, this);
}
},
scope: this
} ,
{
text: 'Generate',
// save - selected.items[0].data.name
itemId: 'user-regenerate',
disabled: true,
handler: function(b, e) {
_this = this;
var selected = this.getSelectionModel().selected;
_this.regenerate_user();
},
scope: this
}];
this.callParent(arguments);
this.on('render',function(){
this.store.load();
}, this);
this.on('itemdblclick', this.load_user, this);
this.on('select', this.enable_buttons, this);
},
load_user: function(e,row){
var w = Ext.create('Console.view.admin.USERWindow', {record: row});
var list = this;
w.on('saadded', function(data) {
list.refresh_store();
if (data.updated) {
Ext.Msg.alert('Updated User Name', data.name);
} else {
Ext.Msg.alert('Registration Id', data.registration_id);
}
});
w.show();
},
regenerate_user: function(e, row) {
var _this = this;
selected = this.getSelectionModel().selected.items[0].data;
var values = {id:selected.id, name: selected.name, state:selected.state };
// var selected = this.getSelectionModel().selected;
var app = Console.model.USER.create(values);
// app.proxy = app.proxy + "®enerate=1";
app.proxy.extraParams = {
regenerate: '1'
}
this.store.load();
var f = this;
app.save({
success: function(record, raw) {
try {
var data = raw.response.responseText;
data = JSON.parse(data);
} catch (e) {
console.error(r);
}
// f.fireEvent("saadded", data);
Ext.Msg.alert('Registration Id', data.registration_id);
},
failure: function() {
b.enable();
Ext.Msg.alert('Error', this._t('Unable to re-register USER, try again'));
}
});
},
enable_buttons: function(selmodel, record) {
var tbar = this.query('toolbar')[0];
var del = tbar.query('button[itemId=user-delete]')[0];
var reg = tbar.query('button[itemId=user-regenerate]')[0];
del.enable();
reg.enable();
}
});