Changeset 5545
- Timestamp:
- 08/08/14 14:35:42 (10 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/Application.properties
r5544 r5545 26 26 change! 27 27 collections.publishwarningsconfirm: WARNING: The collection "${name}" does not \ 28 meet all recommended criteria. The following warnings apply:\n {0}\n\ 29 Would you still like to publish the collection? 30 28 meet all recommended criteria for published collection!\n\n\ 29 The following warning(s) apply:\n{0}\n\ 30 Publication of the collection in its current state is not recommended. Would \ 31 you still like to publish the collection? -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/dialog/ConfirmationDialog.java
r930 r5545 90 90 91 91 @Override 92 protected ContentcreateContent(String id) {92 protected Panel createContent(String id) { 93 93 Content content = new Content(id); 94 content.add(new AttributeAppender("class", 95 new Model<String>("confirmationDialog"), " ")); 94 content.add(new AttributeAppender("class", getCssClass(), " ")); 96 95 return content; 96 } 97 98 protected Model<String> getCssClass() { 99 return Model.of("confirmationDialog"); 97 100 } 98 101 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowseEditableCollectionsPanel.java
r5544 r5545 224 224 public void showDialogue(AjaxRequestTarget target, IModel<VirtualCollection> vc, List<String> warnings) { 225 225 this.vcId = vc.getObject().getId(); 226 StringBuilder sb = new StringBuilder(); 227 for (String warning : warnings) { 228 sb.append(" -").append(warning).append("\n"); 229 } 226 230 super.show(target, 227 new StringResourceModel("collections.publishwarningsconfirm", vc, new Object[]{warnings})); 231 new StringResourceModel("collections.publishwarningsconfirm", vc, new Object[]{sb})); 232 } 233 234 @Override 235 protected Model<String> getCssClass() { 236 return Model.of("longConfirmationDialog"); 228 237 } 229 238 … … 319 328 editPublishedDialog = new EditPublishedCollectionDialog("editPublishedCollectionDialog", table); 320 329 add(editPublishedDialog); 321 330 322 331 confirmPublishCollectionDialog = new ConfirmPublishCollectionDialog("confirmPublishCollectionDialog", table); 323 332 add(confirmPublishCollectionDialog); -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/service/impl/ReferenceValidator.java
r5536 r5545 54 54 return validatable.isValid(); 55 55 } 56 57 public static boolean isPid(CharSequence uri) { 58 return HANDLE_PATTERN.matcher(uri).matches(); 59 } 56 60 57 61 } -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/service/impl/VirtualCollectionPrePublicationValidator.java
r5544 r5545 18 18 19 19 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryUsageException; 20 import eu.clarin.cmdi.virtualcollectionregistry.model.Resource; 20 21 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; 21 22 import eu.clarin.cmdi.virtualcollectionregistry.service.VirtualCollectionValidator; 23 import java.util.ArrayList; 24 import java.util.List; 25 import org.apache.wicket.util.string.Strings; 22 26 import org.springframework.beans.factory.annotation.Qualifier; 23 27 import org.springframework.stereotype.Service; … … 25 29 /** 26 30 * A virtual collection validator performing "soft" validation that should occur 27 * before publication. 31 * before publication. Validated collections are <em>assumed</em> to be valid 32 * according to the 'minimal' validator applied on creation and update of the 33 * collection. 28 34 * 29 35 * @author twagoo … … 32 38 @Qualifier("publication-soft") 33 39 public class VirtualCollectionPrePublicationValidator implements VirtualCollectionValidator { 34 40 35 41 @Override 36 42 public void validate(VirtualCollection vc) throws VirtualCollectionRegistryUsageException { 37 // throw new VirtualCollectionRegistryUsageException("Test", Arrays.asList("First warning", "Second warning", "Third warning")); 43 final List<String> warnings = new ArrayList<>(); 44 45 switch (vc.getType()) { 46 case EXTENSIONAL: 47 validateResources(vc, warnings); 48 break; 49 case INTENSIONAL: 50 validateGeneratedBy(vc, warnings); 51 break; 52 } 53 54 if (Strings.isEmpty(vc.getDescription())) { 55 warnings.add("The collection has no description"); 56 } 57 58 if (vc.getPurpose() == null) { 59 warnings.add("The purpose has not been specified"); 60 } 61 62 if (vc.getPurpose() == VirtualCollection.Purpose.FUTURE_USE) { 63 warnings.add("The reproducibility of the collection has been marked 'future use'"); 64 } 65 66 if (vc.getReproducibility() == null) { 67 warnings.add("The degree of reproducibility has not been specified"); 68 } 69 70 if (vc.getCreators().isEmpty()) { 71 warnings.add("No creators have been specified for the collection"); 72 } 73 74 if (!warnings.isEmpty()) { 75 throw new VirtualCollectionRegistryUsageException("Collection is not fit for publication", warnings); 76 } 38 77 } 39 78 79 private void validateResources(VirtualCollection vc, List<String> warnings) { 80 int nonPidCount = 0; 81 for (Resource resource : vc.getResources()) { 82 if (!ReferenceValidator.isPid(resource.getRef())) { 83 nonPidCount++; 84 } 85 } 86 if (nonPidCount == 0) { 87 return; 88 } 89 90 if (nonPidCount == 1) { 91 warnings.add(String.format("One resource is not referenced through a persistent identifier", nonPidCount)); 92 } else { 93 warnings.add(String.format("%d resources are not referenced through a persistent identifier", nonPidCount)); 94 } 95 } 96 97 private void validateGeneratedBy(VirtualCollection vc, List<String> warnings) { 98 final String queryUri = vc.getGeneratedBy().getURI(); 99 if (!ReferenceValidator.isPid(queryUri)) { 100 warnings.add("The query URI is not a persistent identifer"); 101 } 102 } 103 40 104 } -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css
r5532 r5545 550 550 } 551 551 552 div.modalDialog div.modalDialogContent p { 553 margin: 1em; 554 } 555 552 556 div.modalDialog div.modalDialogButtons { 553 557 border-top: 1px solid #BBBBBB; … … 559 563 div.confirmationDialog { 560 564 text-align: center; 565 } 566 567 div.longConfirmationDialog { 568 text-align: left; 561 569 } 562 570
Note: See TracChangeset
for help on using the changeset viewer.