mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-13 08:55:44 +01:00
implement basic form to import repositories
This commit is contained in:
@@ -34,6 +34,11 @@ Sonia.repository.ImportWindow = Ext.extend(Ext.Window,{
|
|||||||
|
|
||||||
// TODO i18n
|
// TODO i18n
|
||||||
titleText: 'Import Repositories',
|
titleText: 'Import Repositories',
|
||||||
|
okText: 'Ok',
|
||||||
|
cancelText: 'Cancel',
|
||||||
|
|
||||||
|
// cache
|
||||||
|
importForm: null,
|
||||||
|
|
||||||
initComponent: function(){
|
initComponent: function(){
|
||||||
var config = {
|
var config = {
|
||||||
@@ -46,10 +51,111 @@ Sonia.repository.ImportWindow = Ext.extend(Ext.Window,{
|
|||||||
border: false,
|
border: false,
|
||||||
modal: true,
|
modal: true,
|
||||||
title: this.titleText,
|
title: this.titleText,
|
||||||
items: []
|
items: [{
|
||||||
|
id: 'importRepositoryForm',
|
||||||
|
frame: true,
|
||||||
|
xtype: 'form',
|
||||||
|
defaultType: 'checkbox'
|
||||||
|
}],
|
||||||
|
buttons: [{
|
||||||
|
id: 'startRepositoryImportButton',
|
||||||
|
text: this.okText,
|
||||||
|
formBind: true,
|
||||||
|
scope: this,
|
||||||
|
handler: this.importRepositories
|
||||||
|
},{
|
||||||
|
text: this.cancelText,
|
||||||
|
scope: this,
|
||||||
|
handler: this.close
|
||||||
|
}],
|
||||||
|
listeners: {
|
||||||
|
afterrender: {
|
||||||
|
fn: this.readImportableTypes,
|
||||||
|
scope: this
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ext.apply(this, Ext.apply(this.initialConfig, config));
|
Ext.apply(this, Ext.apply(this.initialConfig, config));
|
||||||
Sonia.repository.ImportWindow.superclass.initComponent.apply(this, arguments);
|
Sonia.repository.ImportWindow.superclass.initComponent.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
readImportableTypes: function(){
|
||||||
|
if (debug){
|
||||||
|
console.debug('read importable types');
|
||||||
|
}
|
||||||
|
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url: restUrl + 'import/repositories.json',
|
||||||
|
method: 'GET',
|
||||||
|
scope: this,
|
||||||
|
success: function(response){
|
||||||
|
var obj = Ext.decode(response.responseText);
|
||||||
|
this.renderTypeCheckboxes(obj);
|
||||||
|
this.doLayout();
|
||||||
|
},
|
||||||
|
failure: function(result){
|
||||||
|
main.handleFailure(
|
||||||
|
result.status,
|
||||||
|
this.errorTitleText,
|
||||||
|
this.errorMsgText
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
renderTypeCheckboxes: function(types){
|
||||||
|
Ext.each(types, function(type){
|
||||||
|
this.renderCheckbox(type);
|
||||||
|
}, this);
|
||||||
|
},
|
||||||
|
|
||||||
|
getImportForm: function(){
|
||||||
|
if (!this.importForm){
|
||||||
|
this.importForm = Ext.getCmp('importRepositoryForm');
|
||||||
|
}
|
||||||
|
return this.importForm;
|
||||||
|
},
|
||||||
|
|
||||||
|
renderCheckbox: function(type){
|
||||||
|
this.getImportForm().add({
|
||||||
|
xtype: 'checkbox',
|
||||||
|
name: 'type',
|
||||||
|
fieldLabel: type.displayName,
|
||||||
|
inputValue: type.name
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
importRepositories: function(){
|
||||||
|
if (debug){
|
||||||
|
console.debug('start import of repositories');
|
||||||
|
}
|
||||||
|
var form = this.getImportForm().getForm();
|
||||||
|
var values = form.getValues().type;
|
||||||
|
Ext.each(values, function(value){
|
||||||
|
this.importRepositoriesOfType(value);
|
||||||
|
}, this);
|
||||||
|
},
|
||||||
|
|
||||||
|
importRepositoriesOfType: function(type){
|
||||||
|
if (debug){
|
||||||
|
console.debug('start import of ' + type + ' repositories');
|
||||||
|
}
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url: restUrl + 'import/repositories/' + type + '.json',
|
||||||
|
method: 'POST',
|
||||||
|
scope: this,
|
||||||
|
success: function(response){
|
||||||
|
var obj = Ext.decode(response.responseText);
|
||||||
|
},
|
||||||
|
failure: function(result){
|
||||||
|
main.handleFailure(
|
||||||
|
result.status,
|
||||||
|
this.errorTitleText,
|
||||||
|
this.errorMsgText
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user