fixed checkIfDatasetExists (validation is performed by taking into account the user's selected organization)
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/widgets/ckan-metadata-publisher-widget@147132 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
fa8d07ec3c
commit
b13612460a
|
@ -66,7 +66,7 @@ public interface CKanPublisherService extends RemoteService {
|
||||||
* @param title
|
* @param title
|
||||||
* @return true if it exists, false otherwise
|
* @return true if it exists, false otherwise
|
||||||
*/
|
*/
|
||||||
boolean datasetIdAlreadyExists(String title);
|
boolean datasetIdAlreadyExists(String title, String orgName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the list of groups the user can choose to associate this product with.
|
* Retrieve the list of groups the user can choose to associate this product with.
|
||||||
|
|
|
@ -66,7 +66,7 @@ public interface CKanPublisherServiceAsync {
|
||||||
* @param title
|
* @param title
|
||||||
* @return true if it exists, false otherwise
|
* @return true if it exists, false otherwise
|
||||||
*/
|
*/
|
||||||
void datasetIdAlreadyExists(String title, AsyncCallback<Boolean> callback);
|
void datasetIdAlreadyExists(String title, String orgName, AsyncCallback<Boolean> callback);
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * Return a tree object representing the whole folder hierarchy
|
// * Return a tree object representing the whole folder hierarchy
|
||||||
|
|
|
@ -761,8 +761,7 @@ public class CreateDatasetForm extends Composite{
|
||||||
actionsAfterOnContinue();
|
actionsAfterOnContinue();
|
||||||
else{
|
else{
|
||||||
alertOnContinue("Checking if a item with such title already exists, please wait...", AlertType.INFO);
|
alertOnContinue("Checking if a item with such title already exists, please wait...", AlertType.INFO);
|
||||||
|
ckanServices.datasetIdAlreadyExists(titleTextBox.getText(), organizationsListbox.getSelectedItemText(), new AsyncCallback<Boolean>() {
|
||||||
ckanServices.datasetIdAlreadyExists(titleTextBox.getText(), new AsyncCallback<Boolean>() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Boolean result) {
|
public void onSuccess(Boolean result) {
|
||||||
|
|
|
@ -282,10 +282,9 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C
|
||||||
@Override
|
@Override
|
||||||
public DatasetBean createCKanDataset(DatasetBean toCreate) throws Exception{
|
public DatasetBean createCKanDataset(DatasetBean toCreate) throws Exception{
|
||||||
|
|
||||||
|
try{
|
||||||
logger.debug("Request for creating a dataset with these information " + toCreate);
|
logger.debug("Request for creating a dataset with these information " + toCreate);
|
||||||
|
|
||||||
String userName = GenericUtils.getCurrentUser(getThreadLocalRequest()).getUsername();
|
String userName = GenericUtils.getCurrentUser(getThreadLocalRequest()).getUsername();
|
||||||
|
|
||||||
String title = toCreate.getTitle();
|
String title = toCreate.getTitle();
|
||||||
String organizationNameOrId = toCreate.getSelectedOrganization();
|
String organizationNameOrId = toCreate.getSelectedOrganization();
|
||||||
String author = toCreate.getAuthorFullName();
|
String author = toCreate.getAuthorFullName();
|
||||||
|
@ -375,7 +374,13 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C
|
||||||
logger.error("Failed to create the dataset");
|
logger.error("Failed to create the dataset");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error("Error while creating item ", e);
|
||||||
|
throw new Exception(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -466,14 +471,13 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean datasetIdAlreadyExists(String title) {
|
public boolean datasetIdAlreadyExists(String title, String orgName) {
|
||||||
|
|
||||||
if(title == null || title.isEmpty())
|
if(title == null || title.isEmpty())
|
||||||
return true; // it's an error somehow
|
return true; // it's an error somehow
|
||||||
try{
|
try{
|
||||||
String scope = GenericUtils.getScopeFromClientUrl(getThreadLocalRequest());
|
String scopeFromOrgName = getScopeFromOrgName(orgName);
|
||||||
String idFromTitle = UtilMethods.fromProductTitleToName(title);
|
String idFromTitle = UtilMethods.fromProductTitleToName(title);
|
||||||
return getCatalogue(scope).existProductWithNameOrId(idFromTitle);
|
return getCatalogue(scopeFromOrgName).existProductWithNameOrId(idFromTitle);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
logger.error("Unable to check if such a dataset id already exists", e);
|
logger.error("Unable to check if such a dataset id already exists", e);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue