Index: scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.html =================================================================== --- scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.html (revision 88026) +++ scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.html (working copy) @@ -74,18 +74,13 @@

-

- -

+

+ +
+

@@ -95,7 +90,6 @@

- Index: scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.java =================================================================== --- scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.java (revision 88026) +++ scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.java (working copy) @@ -28,9 +28,11 @@ import org.adl.validator.contentpackage.LaunchData; import org.apache.wicket.PageParameters; import org.apache.wicket.ResourceReference; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; import org.apache.wicket.extensions.yui.calendar.DateTimeField; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.ChoiceRenderer; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; @@ -189,7 +191,7 @@ public Object getDisplayValue(Object object) { Integer n = (Integer) object; - if (n.intValue() == -1) + if (n == -1) return unlimitedMessage; return object; @@ -226,7 +228,7 @@ // @NOTE this is a hack that allows us to change the destination we // are redirected to after form submission depending on where we come from // I'm sure there's a more reliable way to do this is Wicket but it's not trivial to figure it out. - if((null != params) && (params.getBoolean("no-toolbar"))) { + if(params.getBoolean("no-toolbar")) { pageSubmit = DisplayDesignatedPackage.class; pageCancel = DisplayDesignatedPackage.class; } else { @@ -273,9 +275,9 @@ List tryList = new LinkedList(); - tryList.add(Integer.valueOf(-1)); + tryList.add(-1); for (int i = 1; i <= 10; i++) { - tryList.add(Integer.valueOf(i)); + tryList.add(i); } this.unlimitedMessage = getLocalizer().getString("unlimited", this); @@ -298,21 +300,34 @@ ListView scos; form.add(scos = new ListView("scos", gradebookSetup.getAssessments()) { - /** - * serialVersionUID - */ private static final long serialVersionUID = 965550162166385688L; @Override - protected void populateItem(ListItem item) { + protected void populateItem(final ListItem item) { Label label = new Label("itemTitle", new PropertyModel(item.getModelObject(), "itemTitle")); item.add(label); -// TextField numberOffPoints = new TextField("numberOffPoints", new PropertyModel(item.getModelObject(), "numberOffPoints")); -// item.add(numberOffPoints); - CheckBox synchronizeSCOWithGradebook = new CheckBox("synchronizeSCOWithGradebook", new PropertyModel(item.getModelObject(), "synchronizeSCOWithGradebook")); - item.add(synchronizeSCOWithGradebook); + final WebMarkupContainer verifySyncWithGradebook = new WebMarkupContainer( "verifySyncWithGradebook" ); + verifySyncWithGradebook.setOutputMarkupId( true ); + verifySyncWithGradebook.setOutputMarkupPlaceholderTag( true ); + verifySyncWithGradebook.setVisible( false ); + item.add( verifySyncWithGradebook ); + AjaxCheckBox synchronizeSCOWithGradebook = new AjaxCheckBox("synchronizeSCOWithGradebook", new PropertyModel(item.getModelObject(), "synchronizeSCOWithGradebook") ) + { + @Override + protected void onUpdate( AjaxRequestTarget target ) + { + AssessmentSetup as = (AssessmentSetup) item.getModelObject(); + String assessmentExternalId = getAssessmentExternalId( gradebookSetup, as ); + boolean hasGradebookSync = gradebookExternalAssessmentService.isExternalAssignmentDefined( getContext(), assessmentExternalId ); + boolean isChecked = this.getModelObject(); + verifySyncWithGradebook.setVisible( hasGradebookSync && !isChecked ); + target.addComponent( verifySyncWithGradebook ); } + }; + + item.add(synchronizeSCOWithGradebook); + } }); scos.setVisible(gradebookSetup.isGradebookDefined() && !gradebookSetup.getAssessments().isEmpty()); @@ -320,7 +335,7 @@ add(form); } - protected GradebookSetup getAssessmentSetup(ContentPackage contentPackage) { + private GradebookSetup getAssessmentSetup(ContentPackage contentPackage) { final GradebookSetup gradebookSetup = new GradebookSetup(); String context = getContext(); boolean isGradebookDefined = gradebookExternalAssessmentService.isGradebookDefined(context); @@ -334,17 +349,8 @@ String assessmentExternalId = getAssessmentExternalId(gradebookSetup, as); boolean has = gradebookExternalAssessmentService.isExternalAssignmentDefined(getContext(), assessmentExternalId); as.setsynchronizeSCOWithGradebook(has); - if (has) { -// Assignment assignment = gradebookService.getAssignment(context, as.getItemTitle()); -// as.setNumberOffPoints(assignment.getPoints()); } } - // SeqActivityTree actTreePrototype = (SeqActivityTree) - // contentPackageManifest.getActTreePrototype(); - // SeqActivity root = actTreePrototype.getRoot(); - // List children = root.getChildren(false); - - } return gradebookSetup; } @@ -359,7 +365,7 @@ return PAGE_ICON; } - public static String getAssessmentExternalId(final GradebookSetup gradebook, AssessmentSetup assessment) { + private static String getAssessmentExternalId(final GradebookSetup gradebook, AssessmentSetup assessment) { String assessmentExternalId = "" + gradebook.getContentPackageId() + ":" + assessment.getLaunchData().getItemIdentifier(); return assessmentExternalId; } Index: scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.properties =================================================================== --- scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.properties (revision 88026) +++ scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageConfigurationPage.properties (working copy) @@ -15,3 +15,5 @@ page.title = Configure Learning Content Package unlimited = Unlimited + +verify.synchronizeWithGradebook = Are you sure you want to remove the following learning module? All grades associated with this sub-module will be deleted. Index: scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.java =================================================================== --- scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.java (revision 88026) +++ scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.java (working copy) @@ -138,7 +138,7 @@ { for( AssessmentSetup assessmentSetup : gradebookSetup.getAssessments() ) { - String assessmentExternalID = PackageConfigurationPage.getAssessmentExternalId( gradebookSetup, assessmentSetup ); + String assessmentExternalID = getAssessmentExternalId( gradebookSetup, assessmentSetup ); boolean on = assessmentSetup.issynchronizeSCOWithGradebook(); boolean has = gradebookExternalAssessmentService.isExternalAssignmentDefined( context, assessmentExternalID ); if( has && on ) @@ -180,7 +180,7 @@ List assessments = gradebookSetup.getAssessments(); for( AssessmentSetup as : assessments ) { - String assessmentExternalId = PackageConfigurationPage.getAssessmentExternalId( gradebookSetup, as ); + String assessmentExternalId = getAssessmentExternalId( gradebookSetup, as ); boolean has = gradebookExternalAssessmentService.isExternalAssignmentDefined( context, assessmentExternalId ); as.setsynchronizeSCOWithGradebook( has ); } @@ -194,5 +194,10 @@ Placement placement = toolManager.getCurrentPlacement(); return placement.getContext(); } + + private String getAssessmentExternalId(final GradebookSetup gradebook, AssessmentSetup assessment) { + String assessmentExternalId = "" + gradebook.getContentPackageId() + ":" + assessment.getLaunchData().getItemIdentifier(); + return assessmentExternalId; } + } } Index: scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.properties =================================================================== --- scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.properties (revision 88026) +++ scorm-tool/src/java/org/sakaiproject/scorm/ui/console/pages/PackageRemovePage.properties (working copy) @@ -1,7 +1,7 @@ page.title = Remove Module page.submit = Remove page.cancel = Cancel -verify.remove = Are you sure you want to remove the following learning module? +verify.remove = Are you sure you want to remove the following learning module? All grades associated with this module will be deleted. exception.remove = Content package has been deleted, but some underlying resources \ may not have been fully cleaned up.