From fef48f05f5f50f6a35560a2bf89d126314ce6192 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 29 Nov 2012 16:44:01 +0100 Subject: [PATCH] OO-190: show an implicite release rule for course's maps which say the map is released for coaches --- .../ui/structel/EPMultipleMapController.java | 2 +- .../ui/structel/EPShareListController.java | 70 ++++++++++++++----- .../ui/structel/_content/sharePolicy.html | 28 +++++--- .../structel/_i18n/LocalStrings_de.properties | 1 + .../structel/_i18n/LocalStrings_en.properties | 1 + .../structel/_i18n/LocalStrings_fr.properties | 1 + 6 files changed, 75 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java b/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java index 8b44f661155..49cdec7a750 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java +++ b/src/main/java/org/olat/portfolio/ui/structel/EPMultipleMapController.java @@ -261,7 +261,7 @@ public class EPMultipleMapController extends BasicController implements Activate shareLink.setCustomEnabledLinkCSS("b_with_small_icon_left b_share_icon"); shareLink.setUserObject(map); boolean shared = ePFMgr.isMapShared(map); - if(shared) { + if(shared || (map instanceof EPStructuredMap && ((EPStructuredMap)map).getTargetResource() != null)) { shareLink.setCustomDisplayText(translate("map.share.shared")); } } diff --git a/src/main/java/org/olat/portfolio/ui/structel/EPShareListController.java b/src/main/java/org/olat/portfolio/ui/structel/EPShareListController.java index 8a50d76b669..b616b7c7907 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/EPShareListController.java +++ b/src/main/java/org/olat/portfolio/ui/structel/EPShareListController.java @@ -74,6 +74,7 @@ import org.olat.group.model.SearchBusinessGroupParams; import org.olat.portfolio.manager.EPFrontendManager; import org.olat.portfolio.manager.EPMapPolicy; import org.olat.portfolio.manager.EPMapPolicy.Type; +import org.olat.portfolio.model.structel.EPStructuredMap; import org.olat.portfolio.model.structel.PortfolioStructure; import org.olat.portfolio.model.structel.PortfolioStructureMap; import org.olat.user.UserManager; @@ -112,6 +113,11 @@ public class EPShareListController extends FormBasicController { for(int i=targetKeys.length; i-->0; ) { targetValues[i] = translate("map.share.to." + targetKeys[i]); } + + if(map instanceof EPStructuredMap && ((EPStructuredMap)map).getTargetResource() != null) { + policyWrappers.add(new TutorPolicyWrapper()); + } + for(EPMapPolicy policy:ePFMgr.getMapPolicies(map)) { policyWrappers.add(new PolicyWrapper(policy)); } @@ -483,26 +489,31 @@ public class EPShareListController extends FormBasicController { } } - DateChooser fromChooser = uifactory.addDateChooser("map.share.from." + cmpName, "map.share.from", "", container); - fromChooser.setDate(policyWrapper.getFrom()); - fromChooser.setValidDateCheck("map.share.date.invalid"); - policyWrapper.setFromChooser(fromChooser); - DateChooser toChooser = uifactory.addDateChooser("map.share.to." + cmpName, "map.share.to", "", container); - toChooser.setDate(policyWrapper.getTo()); - toChooser.setValidDateCheck("map.share.date.invalid"); - policyWrapper.setToChooser(toChooser); - - FormLink addLink = uifactory.addFormLink("map.share.policy.add." + cmpName, "map.share.policy.add", null, container, Link.BUTTON_SMALL); - addLink.setUserObject(policyWrapper); - FormLink removeLink = uifactory.addFormLink("map.share.policy.delete." + cmpName, "map.share.policy.delete", null, container, Link.BUTTON_SMALL); - removeLink.setUserObject(policyWrapper); - if (!policyWrapper.getType().equals(EPMapPolicy.Type.allusers)){ - FormLink inviteLink = uifactory.addFormLink("map.share.policy.invite." + cmpName, "map.share.policy.invite", null, container, Link.BUTTON_XSMALL); - inviteLink.setUserObject(policyWrapper); - inviteLink.setEnabled(!policyWrapper.isInvitationSend()); + if(policyWrapper instanceof TutorPolicyWrapper) { + String text = translate("map.share.with.tutor"); + uifactory.addStaticTextElement("map.share.text." + cmpName, text, container); + } else { + DateChooser fromChooser = uifactory.addDateChooser("map.share.from." + cmpName, "map.share.from", "", container); + fromChooser.setDate(policyWrapper.getFrom()); + fromChooser.setValidDateCheck("map.share.date.invalid"); + policyWrapper.setFromChooser(fromChooser); + DateChooser toChooser = uifactory.addDateChooser("map.share.to." + cmpName, "map.share.to", "", container); + toChooser.setDate(policyWrapper.getTo()); + toChooser.setValidDateCheck("map.share.date.invalid"); + policyWrapper.setToChooser(toChooser); + + FormLink addLink = uifactory.addFormLink("map.share.policy.add." + cmpName, "map.share.policy.add", null, container, Link.BUTTON_SMALL); + addLink.setUserObject(policyWrapper); + FormLink removeLink = uifactory.addFormLink("map.share.policy.delete." + cmpName, "map.share.policy.delete", null, container, Link.BUTTON_SMALL); + removeLink.setUserObject(policyWrapper); + if (!policyWrapper.getType().equals(EPMapPolicy.Type.allusers)){ + FormLink inviteLink = uifactory.addFormLink("map.share.policy.invite." + cmpName, "map.share.policy.invite", null, container, Link.BUTTON_XSMALL); + inviteLink.setUserObject(policyWrapper); + inviteLink.setEnabled(!policyWrapper.isInvitationSend()); + } + StaticTextElement genErrorPanel = uifactory.addStaticTextElement("errorpanel." + cmpName, "", container); + genErrorPanel.setUserObject(policyWrapper); } - StaticTextElement genErrorPanel = uifactory.addStaticTextElement("errorpanel." + cmpName, "", container); - genErrorPanel.setUserObject(policyWrapper); policyWrapper.setComponentName(cmpName); @@ -625,6 +636,27 @@ public class EPShareListController extends FormBasicController { } } + public class TutorPolicyWrapper extends PolicyWrapper { + + @Override + public Date getTo() { + return null; + } + + @Override + public DateChooser getFromChooser() { + return null; + } + + @Override + public String calc(String cmpName) { + if("map.share.target".equals(cmpName) || "map.share.with".equals(cmpName) ) { + return "xxx"; + } + return super.calc(cmpName); + } + } + public class PolicyWrapper { private EPMapPolicy mapPolicy; private String componentName; diff --git a/src/main/java/org/olat/portfolio/ui/structel/_content/sharePolicy.html b/src/main/java/org/olat/portfolio/ui/structel/_content/sharePolicy.html index 15ce2d3f1e5..fb7a3c55bef 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_content/sharePolicy.html +++ b/src/main/java/org/olat/portfolio/ui/structel/_content/sharePolicy.html @@ -1,22 +1,34 @@ <div class="b_eportfolio_share_policy_wrapper policytype_$wrapper.getType() b_clearfix"> <div class="b_float_right"> - $r.render($wrapper.calc("map.share.policy.add")) - $r.render($wrapper.calc("map.share.policy.delete")) + #if($r.available($wrapper.calc("map.share.policy.add"))) $r.render($wrapper.calc("map.share.policy.add")) #end + #if($r.available($wrapper.calc("map.share.policy.delete"))) $r.render($wrapper.calc("map.share.policy.delete")) #end #if($r.available($wrapper.calc("map.share.policy.invite"))) <br/><br/>$r.render($wrapper.calc("map.share.policy.invite")) #end </div> + <div class="b_eportfolio_share_policy"> - $r.render($wrapper.calc("map.share.target")) + #if($r.available($wrapper.calc("map.share.text"))) + <p>$r.render($wrapper.calc("map.share.text"))</p> + #end + #if($r.available($wrapper.calc("map.share.target"))) + $r.render($wrapper.calc("map.share.target")) + #end #if($r.available($wrapper.calc("map.share.with"))) <div class="b_eportfolio_share_with"> $r.render($wrapper.calc("map.share.with")) </div> #end <br/> - <div class="b_ep_share_date"><span>$r.translate("map.share.from")</span></div> - $r.render($wrapper.calc("map.share.from")) - <div class="b_ep_share_date"><span>$r.translate("map.share.to")</span></div> - $r.render($wrapper.calc("map.share.to")) - <br/><div class="b_form_error_msg">$r.render($wrapper.calc("errorpanel"))</div> + #if($r.available($wrapper.calc("map.share.from"))) + <div class="b_ep_share_date"><span>$r.translate("map.share.from")</span></div> + $r.render($wrapper.calc("map.share.from")) + #end + #if($r.available($wrapper.calc("map.share.to"))) + <div class="b_ep_share_date"><span>$r.translate("map.share.to")</span></div> + $r.render($wrapper.calc("map.share.to")) + #end + #if($r.available($wrapper.calc("errorpanel"))) + <br/><div class="b_form_error_msg">$r.render($wrapper.calc("errorpanel"))</div> + #end </div> </div> diff --git a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties index e56dc4c5145..a5902ad35a5 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_de.properties @@ -85,6 +85,7 @@ map.share.with.mail.error=Bitte geben Sie eine g map.share.with.mail.error.olatUser=Diese E-Mailadresse wird bereits von einem OLAT-Benutzer verwendet. map.share.with.link=URL map.share.with.allOlatUsers=Für alle OLAT-Benutzer freigegeben +map.share.with.tutor=Für Ihren Betreuer freigegeben map.share.empty.warn=Dieses Feld muss ausgefüllt werden. map.share.invitation.mail.subject=Einladung zu einer freigegebenen Sammelmappe map.share.invitation.mail.list=Eingeladene Personen diff --git a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties index 2a7fddceab8..3993b8b2f3b 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_en.properties @@ -84,6 +84,7 @@ map.share.to.invitation=Release invitation map.share.to.user=User map.share.to.user.hint=Click here to select user map.share.with.allOlatUsers=Release for all OLAT users +map.share.with.tutor=Release for your coach map.share.with.firstName=First name map.share.with.lastName=Last name map.share.with.link=URL diff --git a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_fr.properties index b4933c9e756..90d269bd2e0 100644 --- a/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/portfolio/ui/structel/_i18n/LocalStrings_fr.properties @@ -84,6 +84,7 @@ map.share.to.invitation=Invitation partage map.share.to.user=Utilisateur map.share.to.user.hint=Cliquez ici pour s\u00E9lectionner des utilisateurs map.share.with.allOlatUsers=Partag\u00E9 pour tous les utilisateurs OLAT +map.share.with.tutor=Partag\u00E9 avec votre coach map.share.with.firstName=Pr\u00E9nom map.share.with.lastName=Nom map.share.with.link=URL -- GitLab