2014-02-26 17:56:12 +01:00
//TODO: These can be fetched from the server data, but requires some string parsing to get right
$ ( document ). ready ( function () {
APP_DATA . plugins . backend [ 'file' ] = {
hasssl : false ,
2014-02-27 13:25:24 +01:00
hideserverandport : true ,
2014-02-27 23:28:22 +01:00
optionalauth : true ,
2014-02-27 13:25:24 +01:00
serverpathlabel : 'Path or UNC' ,
2014-02-27 23:28:22 +01:00
setup : function ( dlg , div ) {
2014-02-26 17:56:12 +01:00
//$('#server-path').watermark('/my/data');
//div.text('Awesome plugin stuff');
},
2014-02-27 23:28:22 +01:00
cleanup : function ( dlg , div ) {
2014-02-26 17:56:12 +01:00
}
}
2014-02-27 13:25:24 +01:00
APP_DATA . plugins . backend [ 'webdav' ] = {
defaultport : 80 ,
defaultportssl : 443
}
APP_DATA . plugins . backend [ 'cloudfiles' ] = {
defaultport : 80 ,
defaultportssl : 443
}
APP_DATA . plugins . backend [ 'ftp' ] = {
defaultport : 21 ,
2014-02-27 23:28:22 +01:00
defaultportssl : 443 ,
optionalpassword : true
2014-02-27 13:25:24 +01:00
}
APP_DATA . plugins . backend [ 'ssh' ] = {
defaultport : 22 ,
2014-02-27 23:28:22 +01:00
optionalauth : true ,
2014-02-27 13:25:24 +01:00
hasssl : false
}
APP_DATA . plugins . backend [ 'skydrive' ] = {
hideserverandport : true
}
APP_DATA . plugins . backend [ 'googledocs' ] = {
hideserverandport : true
}
2014-02-26 17:56:12 +01:00
APP_DATA . plugins . backend [ 's3' ] = {
2014-03-05 16:45:51 +01:00
PLUGIN_S3_HOSTS : {
'Amazon S3' : 's3.amazonaws.com' ,
'Hosteurope' : 'cs.hosteurope.de' ,
'Dunkel' : 'dcs.dunkel.de' ,
'DreamHost' : 'objects.dreamhost.com'
},
//Updated list: http://docs.amazonwebservices.com/general/latest/gr/rande.html#s3_region
PLUGIN_S3_LOCATIONS : {
'(default)' : '' ,
'Europe (EU, Ireland)' : 'EU' ,
'US East (Northern Virginia)' : 'us-east-1' ,
'US West (Northen California)' : 'us-west-1' ,
'US West (Oregon)' : 'us-west-2' ,
'Asia Pacific (Singapore)' : 'ap-southeast-1' ,
'Asia Pacific (Sydney)' : 'ap-southeast-2' ,
'Asia Pacific (Tokyo)' : 'ap-northeast-1' ,
'South America (Sao Paulo)' : 'sa-east-1'
},
PLUGIN_S3_SERVER_LOCATIONS : {
'EU' : 's3-eu-west-1.amazonaws.com' ,
'eu-west-1' : 's3-eu-west-1.amazonaws.com' ,
'us-east-1' : 's3.amazonaws.com' ,
'us-west-1' : 's3-us-west-1.amazonaws.com' ,
'us-west-2' : 's3-us-west-2.amazonaws.com' ,
'ap-southeast-1' : 's3-ap-southeast-1.amazonaws.com' ,
'ap-southeast-2' : 's3-ap-southeast-2.amazonaws.com' ,
'ap-northeast-1' : 's3-ap-northeast-1.amazonaws.com' ,
'sa-east-1' : 's3-sa-east-1.amazonaws.com'
},
PLUGIN_S3_LINK : 'https://portal.aws.amazon.com/gp/aws/developer/registration/index.html' ,
2014-02-26 17:56:12 +01:00
hasssl : true ,
hideserverandport : true ,
usernamelabel : 'AWS Access ID' ,
passwordlabel : 'AWS Secret Key' ,
usernamewatermark : 'AWS Access ID' ,
passwordwatermark : 'AWS Secret Key' ,
2014-02-27 23:28:22 +01:00
serverdrop_field : null ,
bucket_field : null ,
2014-02-26 17:56:12 +01:00
2014-02-27 23:28:22 +01:00
setup : function ( dlg , div ) {
2014-02-26 17:56:12 +01:00
$ ( '#server-path-label' ). hide ();
$ ( '#server-path' ). hide ();
2014-02-27 23:28:22 +01:00
var serverdrop = EDIT_URI . createFieldset ({ label : 'S3 servername' , name : 's3-server' , after : $ ( '#server-path' ), watermark : 'Click for a list of providers' });
var bucketfield = EDIT_URI . createFieldset ({ label : 'S3 Bucket name' , name : 's3-bucket' , after : $ ( '#server-username-and-password' ), title : 'Use / to access subfolders in the bucket' , watermark : 'Enter bucket name' });
var regiondrop = EDIT_URI . createFieldset ({ label : 'Bucket create region' , name : 's3-region' , before : $ ( '#server-options-label' ), watermark : 'Click for a list of regions' , title : 'Note that region is only used when creating buckets' });
var rrscheck = EDIT_URI . createFieldset ({ 'label' : 'Use RRS' , name : 's3-rrs' , type : 'checkbox' , before : $ ( '#server-options-label' ), title : 'Reduced Redundancy Storage is cheaper, but less reliable' });
2014-03-05 16:45:51 +01:00
var signuplink = EDIT_URI . createFieldset ({ 'label' : ' ' , href : this . PLUGIN_S3_LINK , type : 'link' , before : bucketfield . outer , 'title' : 'Click here for the sign up page' });
2014-02-26 17:56:12 +01:00
signuplink . outer . css ( 'margin-bottom' , '10px' );
var servers = [];
2014-03-05 16:45:51 +01:00
for ( var k in this . PLUGIN_S3_HOSTS )
servers . push ({ label : k + ' (' + this . PLUGIN_S3_HOSTS [ k ] + ')' , value : this . PLUGIN_S3_HOSTS [ k ]});
2014-02-26 17:56:12 +01:00
var buckets = [];
2014-03-05 16:45:51 +01:00
for ( var k in this . PLUGIN_S3_LOCATIONS )
buckets . push ({ label : k , value : this . PLUGIN_S3_LOCATIONS [ k ]});
2014-02-26 17:56:12 +01:00
regiondrop . field . autocomplete ({
minLength : 0 ,
source : buckets ,
});
serverdrop . field . autocomplete ({
minLength : 0 ,
source : servers ,
});
serverdrop . field . click ( function () {
serverdrop . field . autocomplete ( 'search' , '' );
});
regiondrop . field . click ( function () {
regiondrop . field . autocomplete ( 'search' , '' );
});
2014-02-27 23:28:22 +01:00
this . serverdrop_field = serverdrop . field ;
this . bucket_field = bucketfield . field ;
2014-02-26 17:56:12 +01:00
},
2014-03-03 13:15:26 +01:00
2014-02-27 23:28:22 +01:00
cleanup : function ( dlg , div ) {
2014-02-26 17:56:12 +01:00
$ ( '#server-path-label' ). show ();
$ ( '#server-path' ). show ();
2014-02-27 23:28:22 +01:00
this . serverdrop_field = null ;
this . bucket_field = null ;
},
2014-03-03 12:02:29 +01:00
2014-02-27 23:28:22 +01:00
validate : function ( dlg , values ) {
if ( ! EDIT_URI . validate_input ( values , true ))
return ;
2014-03-03 13:15:26 +01:00
if ( values [ '--s3-server-name' ] == '' )
2014-02-27 23:28:22 +01:00
return EDIT_URI . validation_error ( this . serverdrop_field , 'You must fill in or select the S3 server to use' );
if ( values [ 's3-bucket' ] == '' )
return EDIT_URI . validation_error ( this . bucket_field , 'You must enter a S3 bucket name' );
2014-03-03 13:15:26 +01:00
if ( values [ 'server-name' ]. toLowerCase () != values [ 'server-name' ]) {
2014-02-27 23:28:22 +01:00
if ( ! confirm ( 'The bucket name must be all lower case, convert automatically?' )) {
this . bucket_field . focus ();
return false ;
}
2014-03-03 13:15:26 +01:00
values [ 'server-name' ] = values [ 'server-name' ]. toLowerCase ();
this . bucket_field . val ( values [ 'server-name' ]);
2014-02-27 23:28:22 +01:00
}
2014-03-03 13:15:26 +01:00
if ( values [ 'server-name' ]. indexOf ( values [ '--auth-username' ]. toLowerCase ()) != 0 ) {
2014-02-27 23:28:22 +01:00
if ( confirm ( 'The bucket name should start with your username, append automatically?' )) {
2014-03-03 13:15:26 +01:00
values [ 'server-name' ] = values [ '--auth-username' ]. toLowerCase () + '-' + values [ 'server-name' ];
this . bucket_field . val ( values [ 'server-name' ]);
2014-02-27 23:28:22 +01:00
}
}
return true ;
},
2014-03-01 16:20:28 +01:00
2014-03-03 12:02:29 +01:00
fill_form_map : {
2014-03-03 13:15:26 +01:00
'server-name' : 's3-bucket' ,
2014-03-03 12:02:29 +01:00
'--s3-server-name' : 's3-server' ,
'--s3-use-rrs' : 's3-rrs' ,
'--s3-location-constraint' : 's3-region'
},
2014-03-01 16:20:28 +01:00
2014-03-03 12:02:29 +01:00
fill_dict_map : {
2014-03-03 13:15:26 +01:00
's3-bucket' : 'server-name' ,
2014-03-03 12:02:29 +01:00
's3-server' : '--s3-server-name' ,
's3-rrs' : '--s3-use-rrs' ,
's3-region' : '--s3-location-constraint'
2014-02-26 17:56:12 +01:00
}
}
});