2011-08-23 07:40:22 +02:00
Ext . define ( 'PVE.storage.NFSScan' , {
extend : 'Ext.form.field.ComboBox' ,
alias : 'widget.pveNFSScan' ,
queryParam : 'server' ,
doRawQuery : function ( ) {
} ,
onTriggerClick : function ( ) {
var me = this ;
if ( ! me . queryCaching || me . lastQuery !== me . nfsServer ) {
me . store . removeAll ( ) ;
}
me . allQuery = me . nfsServer ;
me . callParent ( ) ;
} ,
setServer : function ( server ) {
var me = this ;
me . nfsServer = server ;
} ,
initComponent : function ( ) {
var me = this ;
if ( ! me . nodename ) {
me . nodename = 'localhost' ;
}
var store = Ext . create ( 'Ext.data.Store' , {
fields : [ 'path' , 'options' ] ,
proxy : {
type : 'pve' ,
url : '/api2/json/nodes/' + me . nodename + '/scan/nfs'
}
} ) ;
Ext . apply ( me , {
store : store ,
valueField : 'path' ,
displayField : 'path' ,
matchFieldWidth : false ,
listConfig : {
loadingText : 'Scanning...' ,
width : 350
}
} ) ;
me . callParent ( ) ;
}
} ) ;
Ext . define ( 'PVE.storage.NFSInputPanel' , {
extend : 'PVE.panel.InputPanel' ,
onGetValues : function ( values ) {
var me = this ;
if ( me . create ) {
values . type = 'nfs' ;
2011-12-23 11:28:04 +01:00
// hack: for now we always create nvf v3
// fixme: make this configurable
values . options = 'vers=3' ;
2011-08-23 07:40:22 +02:00
} else {
delete values . storage ;
}
values . disable = values . enable ? 0 : 1 ;
delete values . enable ;
return values ;
} ,
initComponent : function ( ) {
var me = this ;
me . column1 = [
{
xtype : me . create ? 'textfield' : 'displayfield' ,
name : 'storage' ,
height : 22 , // hack: set same height as text fields
value : me . storageId || '' ,
2011-11-25 12:42:37 +01:00
fieldLabel : 'ID' ,
2011-08-23 07:40:22 +02:00
vtype : 'StorageId' ,
allowBlank : false
} ,
{
xtype : me . create ? 'textfield' : 'displayfield' ,
height : 22 , // hack: set same height as text fields
name : 'server' ,
value : '' ,
2011-11-25 12:42:37 +01:00
fieldLabel : gettext ( 'Server' ) ,
2011-08-23 07:40:22 +02:00
allowBlank : false ,
listeners : {
change : function ( f , value ) {
if ( me . create ) {
var exportField = me . down ( 'field[name=export]' ) ;
exportField . setServer ( value ) ;
exportField . setValue ( '' ) ;
}
}
}
} ,
{
xtype : me . create ? 'pveNFSScan' : 'displayfield' ,
height : 22 , // hack: set same height as text fields
name : 'export' ,
value : '' ,
fieldLabel : 'Export' ,
allowBlank : false
} ,
{
xtype : 'pveContentTypeSelector' ,
name : 'content' ,
value : 'images' ,
2011-10-20 09:29:36 +02:00
multiSelect : true ,
2011-12-08 11:18:16 +01:00
fieldLabel : gettext ( 'Content' ) ,
2011-08-23 07:40:22 +02:00
allowBlank : false
}
] ;
me . column2 = [
{
xtype : 'PVE.form.NodeSelector' ,
name : 'nodes' ,
2011-11-25 12:42:37 +01:00
fieldLabel : gettext ( 'Nodes' ) ,
emptyText : gettext ( 'All' ) + ' (' +
gettext ( 'No restrictions' ) + ')' ,
2011-08-23 07:40:22 +02:00
multiSelect : true ,
autoSelect : false
} ,
{
xtype : 'pvecheckbox' ,
name : 'enable' ,
checked : true ,
uncheckedValue : 0 ,
2011-11-25 12:42:37 +01:00
fieldLabel : gettext ( 'Enable' )
2011-08-23 07:40:22 +02:00
}
] ;
me . callParent ( ) ;
}
} ) ;
Ext . define ( 'PVE.storage.NFSEdit' , {
extend : 'PVE.window.Edit' ,
initComponent : function ( ) {
var me = this ;
me . create = ! me . storageId ;
if ( me . create ) {
me . url = '/api2/extjs/storage' ;
me . method = 'POST' ;
} else {
me . url = '/api2/extjs/storage/' + me . storageId ;
me . method = 'PUT' ;
}
var ipanel = Ext . create ( 'PVE.storage.NFSInputPanel' , {
create : me . create ,
storageId : me . storageId
} ) ;
2012-01-12 09:15:34 +01:00
Ext . apply ( me , {
subject : 'NFS share' ,
isAdd : true ,
items : [ ipanel ]
} ) ;
2011-08-23 07:40:22 +02:00
me . callParent ( ) ;
if ( ! me . create ) {
me . load ( {
success : function ( response , options ) {
var values = response . result . data ;
var ctypes = values . content || '' ;
2011-10-20 09:29:36 +02:00
values . content = ctypes . split ( ',' ) ;
2011-08-23 07:40:22 +02:00
if ( values . nodes ) {
values . nodes = values . nodes . split ( ',' ) ;
}
values . enable = values . disable ? 0 : 1 ;
ipanel . setValues ( values ) ;
}
} ) ;
}
}
} ) ;