diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/Field.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/Field.java index 6d4aecbae..a6705fdad 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/Field.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/Field.java @@ -24,6 +24,7 @@ public class Field { MONIKERS_VIA_VCLASS, CHILD_VCLASSES, CHILD_VCLASSES_WITH_PARENT, + VCLASSGROUP, FILE, UNDEFINED, DATETIME, @@ -216,7 +217,9 @@ public class Field { } else if ("CHILD_VCLASSES".equalsIgnoreCase(s)) { setOptionsType(Field.OptionsType.CHILD_VCLASSES); } else if ("CHILD_VCLASSES_WITH_PARENT".equalsIgnoreCase(s)) { - setOptionsType(Field.OptionsType.CHILD_VCLASSES_WITH_PARENT); + setOptionsType(Field.OptionsType.CHILD_VCLASSES_WITH_PARENT); + } else if ("VCLASSGROUP".equalsIgnoreCase(s)) { + setOptionsType(Field.OptionsType.VCLASSGROUP); } else if ("FILE".equalsIgnoreCase(s)) { setOptionsType(Field.OptionsType.FILE); } else if ("DATE".equalsIgnoreCase(s)) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/SelectListGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/SelectListGenerator.java index 922bdf92a..13598ea23 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/SelectListGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/SelectListGenerator.java @@ -22,9 +22,11 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement; import edu.cornell.mannlib.vitro.webapp.beans.VClass; +import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyStatementDao; import edu.cornell.mannlib.vitro.webapp.dao.VClassDao; +import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; public class SelectListGenerator { @@ -235,6 +237,7 @@ public class SelectListGenerator { } } break; + case CHILD_VCLASSES: //so we have a vclass URI vclassUri = field.getObjectClassUri(); if (vclassUri==null || vclassUri.equals("")){ @@ -295,6 +298,57 @@ public class SelectListGenerator { } break; + case VCLASSGROUP: + + String classGroupUri = field.getObjectClassUri(); // we're overloading this property to specify the classgroup + if (classGroupUri==null || classGroupUri.equals("")){ + log.error("no classGroupUri found for field \""+fieldName+"\" in SelectListGenerator.getOptions() when OptionsType VCLASSGROUP specified"); + } else { + // first test to see whether there's a default "leave blank" value specified with the literal options + String defaultOption=null; + if ((defaultOption=getDefaultOption(field))!=null) { + optionsMap.put(LEFT_BLANK, defaultOption); + } + // now populate the options + if( wDaoFact == null ) log.error("could not get WebappDaoFactory from request in SelectListGenerator.getOptions()."); + + VClassGroupDao vcgd = wDaoFact.getVClassGroupDao(); + + // Need to call this method to populate the classgroups - otherwise the classgroup class list is empty + List vClassGroups = vcgd.getPublicGroupsWithVClasses(); + + if (vClassGroups == null) { + log.error("No class groups found, so only default value from field's literalOptions will be used."); + } else { + VClassGroup vClassGroup = null; + for (Object o : vClassGroups) { + VClassGroup vcg = (VClassGroup) o; + if (vcg.getURI().equals(classGroupUri)) { + vClassGroup = vcg; + break; + } + } + if (vClassGroup == null) { + log.error("No class group with uri " + classGroupUri + "found, so only default value from field's literalOptions will be used."); + } else { + List vClassList = vClassGroup.getVitroClassList(); + + if( vClassList == null || vClassList.size()==0 ) { + log.debug("No classes in class group " + classGroupUri + " found in the model, so only default value from field's literalOptions will be used" ); + } else { + for( VClass vClass : vClassList ) { + String vClassUri = vClass.getURI(); + if( vClass != null && !OWL.Nothing.getURI().equals(vClassUri)) { + optionsMap.put(vClassUri,vClass.getName().trim()); + ++optionsCount; + } + } + } + } + } + } + break; + case UNDEFINED : log.error("optionsType \"UNDEFINED\" for Field \""+fieldName+"\" in SelectListGenerator.getOptions()"); break; diff --git a/webapp/web/js/imageUpload/validateUpload.js b/webapp/web/js/imageUpload/validateUpload.js index 30b64ccce..d769d201a 100644 --- a/webapp/web/js/imageUpload/validateUpload.js +++ b/webapp/web/js/imageUpload/validateUpload.js @@ -1,23 +1,9 @@ /* $This file is distributed under the terms of the license in /doc/license.txt$ */ -function validate_upload_file(form_passed) { - - var msg=""; +function validate_upload_file(form_passed){ - if (form_passed.datafile.value == "") msg += "Please browse and select a photo\n"; - - - if (msg == "") { - - document.form_upload_image.submit(); - - - } else{ - - alert(msg); - return false; - - } - - -} \ No newline at end of file + if (form_passed.datafile.value == "") { + alert ("Please browse and select a photo"); + return false; + } +}