From fc5ce952f44d471e98bee9eda8fe5715e7dc2769 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 16 Aug 2012 14:31:25 +0200 Subject: [PATCH] OO-291: fix the permission to manage, merge, configure a batch of groups, fix the permission in the configuration wizard for quota and course assignment, remove unused i18n keys, remove unused velocity templates, fix payment method not displayed in booking. fix booking of group with waiting list, fix red screen booking a group --- .../gui/components/tabbedpane/TabbedPane.java | 6 +-- .../manager/BusinessGroupRelationDAO.java | 18 +++++++++ .../manager/BusinessGroupServiceImpl.java | 27 ++++++++++--- .../ui/edit/BusinessGroupAreasController.java | 23 ++++++++--- .../ui/edit/BusinessGroupEditController.java | 6 +++ .../BusinessGroupEditResourceController.java | 17 +++----- .../group/ui/edit/_content/tab_bgAreas.html | 2 +- .../AbstractBusinessGroupListController.java | 39 +++++++++++++++---- .../main/BusinessGroupTableModelWithType.java | 34 ++++++++++++++++ .../olat/group/ui/main/_content/buddy.html | 6 --- .../olat/group/ui/main/_content/learning.html | 6 --- .../olat/group/ui/main/_content/right.html | 6 --- .../ui/main/_i18n/LocalStrings_ar.properties | 4 -- .../ui/main/_i18n/LocalStrings_bg.properties | 4 -- .../ui/main/_i18n/LocalStrings_cs.properties | 2 - .../ui/main/_i18n/LocalStrings_da.properties | 4 -- .../ui/main/_i18n/LocalStrings_de.properties | 15 +++---- .../ui/main/_i18n/LocalStrings_el.properties | 4 -- .../ui/main/_i18n/LocalStrings_en.properties | 5 +-- .../ui/main/_i18n/LocalStrings_es.properties | 4 -- .../ui/main/_i18n/LocalStrings_fa.properties | 4 -- .../ui/main/_i18n/LocalStrings_fr.properties | 5 +-- .../ui/main/_i18n/LocalStrings_it.properties | 4 -- .../ui/main/_i18n/LocalStrings_jp.properties | 3 -- .../ui/main/_i18n/LocalStrings_lt.properties | 4 -- .../main/_i18n/LocalStrings_nl_NL.properties | 4 -- .../ui/main/_i18n/LocalStrings_pl.properties | 4 -- .../main/_i18n/LocalStrings_pt_BR.properties | 4 -- .../main/_i18n/LocalStrings_pt_PT.properties | 4 -- .../ui/main/_i18n/LocalStrings_ru.properties | 4 -- .../ui/main/_i18n/LocalStrings_sq.properties | 4 -- .../main/_i18n/LocalStrings_zh_CN.properties | 4 -- .../main/_i18n/LocalStrings_zh_TW.properties | 4 -- .../run/BusinessGroupMainRunController.java | 26 +++++++++++++ .../olat/group/ui/run/_content/waiting.html | 4 ++ .../ui/run/_i18n/LocalStrings_de.properties | 1 + .../group/ui/wizard/BGConfigToolsStep.java | 17 ++++++-- .../wizard/BGConfigToolsStepController.java | 19 +++++---- .../olat/repository/RepositoryTableModel.java | 5 +++ .../manager/ACFrontendManager.java | 22 +++++------ .../accesscontrol/model/AccessMethod.java | 2 + .../accesscontrol/model/FreeAccessMethod.java | 5 +++ .../model/TokenAccessMethod.java | 5 +++ .../provider/paypal/PaypalAccessHandler.java | 2 +- .../paypal/model/PaypalAccessMethod.java | 5 +++ .../ui/AccessMethodRenderer.java | 6 +-- .../accesscontrol/ui/OrdersDataModel.java | 15 +++++-- 47 files changed, 251 insertions(+), 167 deletions(-) delete mode 100644 src/main/java/org/olat/group/ui/main/_content/buddy.html delete mode 100644 src/main/java/org/olat/group/ui/main/_content/learning.html delete mode 100644 src/main/java/org/olat/group/ui/main/_content/right.html create mode 100644 src/main/java/org/olat/group/ui/run/_content/waiting.html diff --git a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java index 947247ab2f7..03465af175d 100644 --- a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java +++ b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPane.java @@ -59,8 +59,8 @@ public class TabbedPane extends Container implements Activateable2 { */ protected static final String PARAM_PANE_ID = "taid"; - private List tabbedPanes = new ArrayList(4); - private List displayNames = new ArrayList(4); + private List<Component> tabbedPanes = new ArrayList<Component>(4); + private List<String> displayNames = new ArrayList<String>(4); private BitSet disabledPanes = new BitSet(4); private int selectedPane = -1; @@ -188,7 +188,7 @@ public class TabbedPane extends Container implements Activateable2 { * * @return int */ - protected int getSelectedPane() { + public int getSelectedPane() { return selectedPane; } diff --git a/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java b/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java index 6650446a861..09655959d32 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java @@ -277,6 +277,24 @@ public class BusinessGroupRelationDAO { return query.getResultList(); } + public List<BGResourceRelation> findRelations(Collection<Long> groupKeys, int firstResult, int maxResults) { + if(groupKeys == null || groupKeys.isEmpty()) { + return Collections.emptyList(); + } + + StringBuilder sb = new StringBuilder(); + sb.append("select rel from ").append(BGResourceRelation.class.getName()).append(" as rel ") + .append(" where rel.group.key in (:groupKeys)"); + + TypedQuery<BGResourceRelation> query = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), BGResourceRelation.class); + query.setFirstResult(firstResult); + if(maxResults > 0) { + query.setMaxResults(maxResults); + } + query.setParameter("groupKeys", groupKeys); + return query.getResultList(); + } + private boolean and(StringBuilder sb, boolean and) { if(and) sb.append(" and "); else sb.append(" where "); diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java index 6fb6478cd32..914c511e147 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java @@ -76,6 +76,7 @@ import org.olat.group.area.BGArea; import org.olat.group.area.BGAreaManager; import org.olat.group.model.AddToGroupsEvent; import org.olat.group.model.BGRepositoryEntryRelation; +import org.olat.group.model.BGResourceRelation; import org.olat.group.model.BusinessGroupEnvironment; import org.olat.group.model.DisplayMembers; import org.olat.group.model.MembershipModification; @@ -206,8 +207,8 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD BusinessGroup bg = loadBusinessGroup(group); bg.setName(name); bg.setDescription(description); - bg.setMaxParticipants(minParticipants); - bg.setMinParticipants(maxParticipants); + bg.setMaxParticipants(maxParticipants); + bg.setMinParticipants(minParticipants); bg.setLastUsage(new Date(System.currentTimeMillis())); return businessGroupDAO.merge(bg); } @@ -223,8 +224,8 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD BusinessGroup bg = loadBusinessGroup(group); bg.setName(name); bg.setDescription(description); - bg.setMaxParticipants(minParticipants); - bg.setMinParticipants(maxParticipants); + bg.setMaxParticipants(maxParticipants); + bg.setMinParticipants(minParticipants); bg.setWaitingListEnabled(waitingList); if (waitingList != null && waitingList.booleanValue() && bg.getWaitingGroup() == null) { // Waitinglist is enabled but not created => Create waitingGroup @@ -1216,9 +1217,25 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD public void addResourcesTo(List<BusinessGroup> groups, List<OLATResource> resources) { if(groups == null || groups.isEmpty()) return; if(resources == null || resources.isEmpty()) return; + + List<Long> groupKeys = new ArrayList<Long>(); + for(BusinessGroup group:groups) { + groupKeys.add(group.getKey()); + } + + //check for duplicate entries + List<BGResourceRelation> relations = businessGroupRelationDAO.findRelations(groupKeys, 0, -1); for(BusinessGroup group:groups) { for(OLATResource resource:resources) { - addResourceTo(group, resource); + boolean relationExists = false; + for(BGResourceRelation relation:relations) { + if(relation.getGroup().equals(group) && relation.getResource().equals(resource)) { + relationExists = true; + } + } + if(!relationExists) { + addResourceTo(group, resource); + } } } } diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupAreasController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupAreasController.java index c32a61f40d4..0afd504df31 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupAreasController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupAreasController.java @@ -32,6 +32,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; @@ -54,40 +55,46 @@ public class BusinessGroupAreasController extends FormBasicController { private final BusinessGroupService businessGroupService; public BusinessGroupAreasController(UserRequest ureq, WindowControl wControl, BusinessGroup businessGroup) { - super(ureq, wControl); + super(ureq, wControl, "tab_bgAreas"); this.businessGroup = businessGroup; areaManager = CoreSpringFactory.getImpl(BGAreaManager.class); businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class); initForm(ureq); - updateBusinessGroup(businessGroup); + updateBusinessGroup(ureq, businessGroup); } @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - setFormTitle("fieldset.legend.areas"); - setFormContextHelp("org.olat.group.ui.edit", "grp-select-area.html", "help.hover.bgArea"); + // } - private void updateBusinessGroup(BusinessGroup businessGroup) { + private void updateBusinessGroup(UserRequest ureq, BusinessGroup businessGroup) { this.businessGroup = businessGroup; for(FormItem item: flc.getFormComponents().values()) { flc.remove(item); } + FormLayoutContainer choiceContainer = FormLayoutContainer.createDefaultFormLayout("areasChoice", getTranslator()); + choiceContainer.setRootForm(mainForm); + flc.add(choiceContainer); + + boolean hasAreas = false; List<BGArea> selectedAreas = areaManager.findBGAreasOfBusinessGroup(businessGroup); List<RepositoryEntry> entries = businessGroupService.findRepositoryEntries(Collections.singletonList(businessGroup), 0, -1); for(RepositoryEntry entry:entries) { List<BGArea> areas = areaManager.findBGAreasInContext(entry.getOlatResource()); if(areas.isEmpty()) continue; + + hasAreas |= true; String[] keys = new String[areas.size()]; String[] values = new String[areas.size()]; for(int i=areas.size(); i-->0; ) { keys[i] = areas.get(i).getKey().toString(); values[i] = areas.get(i).getName(); } - MultipleSelectionElement el = uifactory.addCheckboxesVertical("repo_" + entry.getKey(), null, flc, keys, values, null, 1); + MultipleSelectionElement el = uifactory.addCheckboxesVertical("repo_" + entry.getKey(), null, choiceContainer, keys, values, null, 1); el.setLabel(entry.getDisplayname(), null, false); el.showLabel(true); el.setUserObject(entry.getOlatResource()); @@ -102,6 +109,10 @@ public class BusinessGroupAreasController extends FormBasicController { } } } + + flc.contextPut("noAreasFound", new Boolean(!hasAreas)); + boolean isAdmin = (ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager()); + flc.contextPut("noAreasFound", new Boolean(isAdmin)); } @Override diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java index bba1b084943..dc465c1f203 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditController.java @@ -181,6 +181,8 @@ public class BusinessGroupEditController extends BasicController implements Cont hasResources = businessGroupService.hasResources(currBusinessGroup); tabAccessCtrl = getAccessController(ureq); + + int currentSelectedPane = tabbedPane.getSelectedPane(); tabbedPane.removeAll(); editDetailsController.setAllowWaitingList(tabAccessCtrl == null || !tabAccessCtrl.isPaymentMethodInUse()); @@ -208,6 +210,10 @@ public class BusinessGroupEditController extends BasicController implements Cont if(tabAccessCtrl != null) { tabbedPane.addTab(translate("group.edit.tab.accesscontrol"), tabAccessCtrl.getInitialComponent()); } + + if(currentSelectedPane > 0) { + tabbedPane.setSelectedPane(currentSelectedPane); + } } /** diff --git a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java index 0e7c19b2691..9f1604c1083 100644 --- a/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java +++ b/src/main/java/org/olat/group/ui/edit/BusinessGroupEditResourceController.java @@ -29,7 +29,6 @@ import java.util.Collections; import java.util.List; import org.olat.core.CoreSpringFactory; -import org.olat.core.commons.persistence.PersistenceHelper; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.link.Link; @@ -74,7 +73,6 @@ public class BusinessGroupEditResourceController extends BasicController impleme private TableController resourcesCtr; private RepositoryTableModel repoTableModel; - private List<RepositoryEntry> repoTableModelEntries; private ReferencableEntriesSearchController repoSearchCtr; private CloseableModalController cmc; private DialogBoxController confirmRemoveResource; @@ -102,7 +100,7 @@ public class BusinessGroupEditResourceController extends BasicController impleme listenTo(resourcesCtr); repoTableModel = new RepositoryTableModel(resourceTrans); - repoTableModelEntries = businessGroupService.findRepositoryEntries(Collections.singletonList(group), 0, -1); + List<RepositoryEntry> repoTableModelEntries = businessGroupService.findRepositoryEntries(Collections.singletonList(group), 0, -1); repoTableModel.setObjects(repoTableModelEntries); repoTableModel.addColumnDescriptors(resourcesCtr, translate("resources.remove"), false); resourcesCtr.setTableDataModel(repoTableModel); @@ -143,13 +141,10 @@ public class BusinessGroupEditResourceController extends BasicController impleme RepositoryEntry re = repoSearchCtr.getSelectedEntry(); removeAsListenerAndDispose(repoSearchCtr); cmc.deactivate(); - if (re != null && !repoTableModelEntries.contains(re)) { + if (re != null && !repoTableModel.getObjects().contains(re)) { // check if already in model - boolean alreadyAssociated = PersistenceHelper.listContainsObjectByKey(repoTableModelEntries, re); - if (!alreadyAssociated) { - doAddRepositoryEntry(re); - fireEvent(ureq, Event.CHANGED_EVENT); - } + doAddRepositoryEntry(re); + fireEvent(ureq, Event.CHANGED_EVENT); } } } else if (source == resourcesCtr) { @@ -175,13 +170,13 @@ public class BusinessGroupEditResourceController extends BasicController impleme private void doRemoveResource(RepositoryEntry entry) { businessGroupService.removeResourceFrom(group, entry.getOlatResource()); - repoTableModelEntries.remove(entry); + repoTableModel.getObjects().remove(entry); resourcesCtr.modelChanged(); } private void doAddRepositoryEntry(RepositoryEntry entry) { businessGroupService.addResourceTo(group, entry.getOlatResource()); - repoTableModelEntries.add(entry); + repoTableModel.addObject(entry); resourcesCtr.modelChanged(); } diff --git a/src/main/java/org/olat/group/ui/edit/_content/tab_bgAreas.html b/src/main/java/org/olat/group/ui/edit/_content/tab_bgAreas.html index afe05e50b89..d5c36cc8d8e 100644 --- a/src/main/java/org/olat/group/ui/edit/_content/tab_bgAreas.html +++ b/src/main/java/org/olat/group/ui/edit/_content/tab_bgAreas.html @@ -1,6 +1,6 @@ <fieldset> <legend>$r.translate("fieldset.legend.areas")</legend> - $r.contextHelpWithWrapper("org.olat.group.ui.edit","grp-${type}-select-area.html","help.hover.bgArea-${type}") + $r.contextHelpWithWrapper("org.olat.group.ui.edit","grp-select-area.html","help.hover.bgArea") #if ($noAreasFound) #if ($isGmAdmin) $r.translate("areachoice.no.areas.admin") diff --git a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java index e4319e39e54..ce580ab9ec1 100644 --- a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java @@ -430,7 +430,7 @@ abstract class AbstractBusinessGroupListController extends BasicController imple removeAsListenerAndDispose(businessGroupWizard); if(items == null || items.isEmpty()) return; - List<BusinessGroup> groups = toBusinessGroups(items); + List<BusinessGroup> groups = toBusinessGroups(ureq, items, false); boolean enableCoursesCopy = businessGroupService.hasResources(groups); boolean enableAreasCopy = areaManager.countBGAreasOfBusinessGroups(groups) > 0; @@ -489,9 +489,16 @@ abstract class AbstractBusinessGroupListController extends BasicController imple removeAsListenerAndDispose(businessGroupWizard); if(selectedItems == null || selectedItems.isEmpty()) return; - final List<BusinessGroup> groups = toBusinessGroups(selectedItems); + final List<BusinessGroup> groups = toBusinessGroups(ureq, selectedItems, true); + if(groups.isEmpty()) { + showWarning("msg.alleastone.editable.group"); + return; + } + + boolean isAuthor = ureq.getUserSession().getRoles().isAuthor() + || ureq.getUserSession().getRoles().isInstitutionalResourceManager(); - Step start = new BGConfigToolsStep(ureq); + Step start = new BGConfigToolsStep(ureq, isAuthor); StepRunnerCallback finish = new StepRunnerCallback() { @Override public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) { @@ -535,7 +542,7 @@ abstract class AbstractBusinessGroupListController extends BasicController imple removeAsListenerAndDispose(businessGroupWizard); if(selectedItems == null || selectedItems.isEmpty()) return; - List<BusinessGroup> groups = toBusinessGroups(selectedItems); + List<BusinessGroup> groups = toBusinessGroups(ureq, selectedItems, false); Step start = new BGEmailSelectReceiversStep(ureq, groups); StepRunnerCallback finish = new StepRunnerCallback() { @@ -561,7 +568,11 @@ abstract class AbstractBusinessGroupListController extends BasicController imple removeAsListenerAndDispose(userManagementController); if(selectedItems == null || selectedItems.isEmpty()) return; - List<BusinessGroup> groups = toBusinessGroups(selectedItems); + List<BusinessGroup> groups = toBusinessGroups(ureq, selectedItems, true); + if(groups.isEmpty()) { + showWarning("msg.alleastone.editable.group"); + return; + } userManagementController = new BGUserManagementController(ureq, getWindowControl(), groups); listenTo(userManagementController); @@ -598,7 +609,11 @@ abstract class AbstractBusinessGroupListController extends BasicController imple removeAsListenerAndDispose(businessGroupWizard); if(selectedItems == null || selectedItems.isEmpty()) return; - final List<BusinessGroup> groups = toBusinessGroups(selectedItems); + final List<BusinessGroup> groups = toBusinessGroups(ureq, selectedItems, true); + if(groups.isEmpty()) { + showWarning("msg.alleastone.editable.group"); + return; + } Step start = new BGMergeStep(ureq, groups); StepRunnerCallback finish = new StepRunnerCallback() { @@ -624,7 +639,12 @@ abstract class AbstractBusinessGroupListController extends BasicController imple */ private void confirmDelete(UserRequest ureq, List<BGTableItem> selectedItems) { StringBuilder names = new StringBuilder(); - List<BusinessGroup> groups = toBusinessGroups(selectedItems); + List<BusinessGroup> groups = toBusinessGroups(ureq, selectedItems, true); + if(groups.isEmpty()) { + showWarning("msg.alleastone.editable.group"); + return; + } + for(BusinessGroup group:groups) { if(names.length() > 0) names.append(", "); names.append(group.getName()); @@ -638,11 +658,14 @@ abstract class AbstractBusinessGroupListController extends BasicController imple listenTo(cmc); } - private List<BusinessGroup> toBusinessGroups(List<BGTableItem> items) { + private List<BusinessGroup> toBusinessGroups(UserRequest ureq, List<BGTableItem> items, boolean editableOnly) { List<Long> groupKeys = new ArrayList<Long>(); for(BGTableItem item:items) { groupKeys.add(item.getBusinessGroupKey()); } + if(editableOnly) { + groupListModel.filterEditableGroupKeys(ureq, groupKeys); + } List<BusinessGroup> groups = businessGroupService.loadBusinessGroups(groupKeys); return groups; } diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java index ea7158024c7..57ed01a3b20 100644 --- a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java +++ b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java @@ -26,10 +26,12 @@ package org.olat.group.ui.main; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringEscapeUtils; +import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.table.DefaultTableDataModel; import org.olat.core.gui.translator.Translator; import org.olat.core.util.Formatter; @@ -137,6 +139,38 @@ public class BusinessGroupTableModelWithType extends DefaultTableDataModel<BGTab public Object createCopyWithEmptyList() { return new BusinessGroupTableModelWithType(trans, columnCount); } + + public boolean filterEditableGroups(UserRequest ureq, List<BusinessGroup> groups) { + if(ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager()) { + return false; + } + + int countBefore = groups.size(); + for(Iterator<BusinessGroup> it=groups.iterator(); it.hasNext(); ) { + BusinessGroup group = it.next(); + BusinessGroupMembership membership = memberships.get(group.getKey()); + if(membership == null || membership.getOwnerGroupKey() == null) { + it.remove(); + } + } + return groups.size() != countBefore; + } + + public boolean filterEditableGroupKeys(UserRequest ureq, List<Long> groupKeys) { + if(ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager()) { + return false; + } + + int countBefore = groupKeys.size(); + for(Iterator<Long> it=groupKeys.iterator(); it.hasNext(); ) { + Long groupKey = it.next(); + BusinessGroupMembership membership = memberships.get(groupKey); + if(membership == null || membership.getOwnerGroupKey() == null) { + it.remove(); + } + } + return groupKeys.size() != countBefore; + } /** * @param owned diff --git a/src/main/java/org/olat/group/ui/main/_content/buddy.html b/src/main/java/org/olat/group/ui/main/_content/buddy.html deleted file mode 100644 index 272b3179ba6..00000000000 --- a/src/main/java/org/olat/group/ui/main/_content/buddy.html +++ /dev/null @@ -1,6 +0,0 @@ -<h4 class="b_with_small_icon_left b_group_icon"> - $r.translate("buddy.header") -</h4> -$r.translate("buddy.intro") -<p /> -$r.render("groupList") diff --git a/src/main/java/org/olat/group/ui/main/_content/learning.html b/src/main/java/org/olat/group/ui/main/_content/learning.html deleted file mode 100644 index ac865efc291..00000000000 --- a/src/main/java/org/olat/group/ui/main/_content/learning.html +++ /dev/null @@ -1,6 +0,0 @@ -<h4 class="b_with_small_icon_left b_group_icon"> - $r.translate("learning.header") -</h4> -$r.translate("learning.intro") -<p /> -$r.render("groupList") diff --git a/src/main/java/org/olat/group/ui/main/_content/right.html b/src/main/java/org/olat/group/ui/main/_content/right.html deleted file mode 100644 index e39699d1bcc..00000000000 --- a/src/main/java/org/olat/group/ui/main/_content/right.html +++ /dev/null @@ -1,6 +0,0 @@ -<h4 class="b_with_small_icon_left b_group_icon"> - $r.translate("right.header") -</h4> -$r.translate("right.intro") -<p /> -$r.render("groupList") diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ar.properties index 2eadb9e246c..dd922137265 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ar.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ar.properties @@ -1,6 +1,4 @@ #Sun Feb 21 18:55:04 CET 2010 -buddy.header=\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u0645\u0634\u0631\u0648\u0639 -buddy.intro=\u0641\u0649 \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629 \u062A\u0648\u062C\u062F \u0643\u0644 \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u0627\u0644\u062A\u0649 \u062A\u0634\u0627\u0631\u0643 \u0641\u064A\u0647\u0627. create.form.title=\u0625\u0646\u0634\u0627\u0621 \u0645\u062C\u0645\u0648\u0639\u0629 \u0645\u0634\u0631\u0648\u0639 \u062C\u062F\u064A\u062F\u0629 dialog.modal.bg.delete.text=<p>\u0647\u0644 \u062A\u0631\u064A\u062F \u0641\u0639\u0644\u0627\u064B \u062D\u0630\u0641 \u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639"{0}"\u061F dialog.modal.bg.leave.text=<p>\u0647\u0644 \u062A\u0631\u064A\u062F \u0641\u0639\u0644\u0627\u064B \u062A\u0631\u0643 \u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061F <br>\u060C\u0625\u0630\u0627 \u0642\u0645\u062A \u0628\u062A\u0631\u0643 \u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 "{0}" \u0641\u0625\u0646\u0647 \u0644\u0646 \u064A\u0643\u0648\u0646 \u0644\u062F\u064A\u0643 \u0635\u0644\u0627\u062D\u064A\u0629 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0645\u0648\u0627\u062F \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 @@ -16,8 +14,6 @@ menu.index=\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A menu.index.alt=\u0627\u0639\u0645\u0644 \u0645\u0639 \u0645\u062C\u0645\u0648\u0639\u0627\u062A\u0643 menu.learninggroups=\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062A\u0639\u0644\u064A\u0645 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0649 menu.learninggroups.alt=\u0627\u0639\u0645\u0644 \u0645\u0639 \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062A\u0639\u0644\u064A\u0645 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643 -menu.rightgroups=\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062D\u0642\u0648\u0642 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0649 -menu.rightgroups.alt=\u0627\u0639\u0645\u0644 \u0645\u0639 \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062D\u0642\u0648\u0642 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643 msg.atleastone=\u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0647\u0646\u0627\u0643 \u0645\u0624\u0644\u0641 \u0645\u0633\u0627\u0639\u062F \u0648\u0627\u062D\u062F\u0627\u064B \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644 \u0641\u0649 \u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639. right.header=\u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062D\u0642\u0648\u0642 right.intro=\u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629 \u062A\u0648\u0636\u062D \u0643\u0644 \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u062D\u0642\u0648\u0642 \u0627\u0644\u062A\u0649 \u062A\u0634\u0627\u0631\u0643 \u0641\u064A\u0647\u0627. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_bg.properties index 1420b4fbbd5..e52f016a321 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_bg.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_bg.properties @@ -1,6 +1,4 @@ #Mon May 25 18:34:12 CEST 2009 -buddy.header=\u0413\u0440\u0443\u043F\u0438 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438 -buddy.intro=\u0422\u043E\u0437\u0438 \u0441\u043F\u0438\u0441\u044A\u043A \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0433\u0440\u0443\u043F\u0438 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438, \u0432 \u043A\u043E\u0438\u0442\u043E \u0443\u0447\u0430\u0441\u0442\u0432\u0430\u0442\u0435. create.form.title=\u0421\u044A\u0437\u0434\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u0430 \u0433\u0440\u0443\u043F\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438 dialog.modal.bg.delete.text=\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0433\u0440\u0443\u043F\u0430\u0442\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438 "{0}" ?<p> dialog.modal.bg.leave.text=\u0410\u043A\u043E \u043D\u0430\u043F\u0443\u0441\u043D\u0435\u0442\u0435 \u0433\u0440\u0443\u043F\u0430\u0442\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438 "{0}", \u0432\u0438\u0435 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0438\u043C\u0430\u0442\u0435 \u043F\u043E\u0432\u0435\u0447\u0435 \u0434\u043E\u0441\u0442\u044A\u043F. <br>\u041D\u0430\u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u0438 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u043D\u0430\u043F\u0443\u0441\u043D\u0435\u0442\u0435 \u0442\u0430\u0437\u0438 \u0433\u0440\u0443\u043F\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438?<p> @@ -16,8 +14,6 @@ menu.index=\u0413\u0440\u0443\u043F\u0438 menu.index.alt=\u0420\u0430\u0431\u043E\u0442\u0435\u0442\u0435 \u0441 \u0432\u0430\u0448\u0438\u0442\u0435 \u0433\u0440\u0443\u043F\u0438 menu.learninggroups=\u041C\u043E\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u0433\u0440\u0443\u043F\u0438 menu.learninggroups.alt=\u0420\u0430\u0431\u043E\u0442\u0435\u0442\u0435 \u0441 \u0432\u0430\u0448\u0438\u0442\u0435 \u043B\u0438\u0447\u043D\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u0433\u0440\u0443\u043F\u0438 -menu.rightgroups=\u041C\u043E\u0438\u0442\u0435 \u0433\u0440\u0443\u043F\u0438 \u0441\u044A\u0441 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u043D\u0438 \u043F\u0440\u0430\u0432\u0430 -menu.rightgroups.alt=\u0420\u0430\u0431\u043E\u0442\u0435\u0442\u0435 \u0441 \u0432\u0430\u0448\u0438\u0442\u0435 \u043B\u0438\u0447\u043D\u0438 \u0433\u0440\u0443\u043F\u0438 \u0441\u044A\u0441 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u043D\u0438 \u043F\u0440\u0430\u0432\u0430 msg.atleastone=\u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0438\u043C\u0430 \u043F\u043E\u043D\u0435 \u0435\u0434\u0438\u043D \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u043A \u0432 \u0442\u0430\u0437\u0438 \u0433\u0440\u0443\u043F\u0430 \u043F\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0438. right.header=\u0413\u0440\u0443\u043F\u0438 \u0441\u044A\u0441 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u043D\u0438 \u043F\u0440\u0430\u0432\u0430 right.intro=\u0422\u043E\u0437\u0438 \u0441\u043F\u0438\u0441\u044A\u043A \u043F\u043E\u043A\u0430\u0437\u0432\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0433\u0440\u0443\u043F\u0438 \u0441\u044A\u0441 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u043D\u0438 \u043F\u0440\u0430\u0432\u0430, \u0432 \u043A\u043E\u0438\u0442\u043E \u0443\u0447\u0430\u0441\u0442\u0432\u0430\u0442\u0435. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_cs.properties index f5e334dced0..3bd202c19ec 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_cs.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_cs.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:14 CET 2009 -buddy.header=Projektov\u00E9 skupiny -buddy.intro=Seznam v\u0161ech projektov\u00FDch skupin, ve kter\u00FDch jste za\u0159azen create.form.title=Vytvo\u0159it novou projektovou skupinu dialog.modal.bg.delete.text=Opravdu chcete smazat projektovou skupinu "{0}" ?<p> dialog.modal.bg.leave.text=Pokud opust\u00EDte projektovou skupinu "{0}" ji\u017E do n\u00ED nebudete m\u00EDt p\u0159\u00EDstup. <br>Opravdu chcete tuto skupinu opustit?<p> diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_da.properties index 8897a67d128..842a0216659 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_da.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_da.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:09 CET 2009 -buddy.header=Projektgrupper -buddy.intro=Den f\u00F8lgende liste viser alle projektgrupper du er medlem af. create.form.title=Opret ny projektgruppe dialog.modal.bg.delete.text=Er du sikker p\u00E5 du vil slette denne projektgruppe "{0}" ?<p> dialog.modal.bg.leave.text=Hvis du forlader projektgruppen "{0}" vil du ikke l\u00E6ngere have adgang. <br>Er du sikker p\u00E5 du vil forlade denne projektgruppe @@ -15,8 +13,6 @@ menu.index=Grupper menu.index.alt=Arbejd med dine grupper menu.learninggroups=Mine l\u00E6ringsgrupper menu.learninggroups.alt=Arbejd med dine personlige l\u00E6ringsgrupper -menu.rightgroups=Mine rettighedsgrupper -menu.rightgroups.alt=Arbejd med dine personlige rettighedsgrupper msg.atleastone=Der skal v\u00E6re mindst en ejer i denne projektgruppe. right.header=Rettighedsgrupper right.intro=Den f\u00F8lgende liste viser alle rettighedsgrupper du er medlem af. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties index 3c2a97a88a2..d1de97ec856 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:04 CET 2009 -buddy.header=Arbeitsgruppen -buddy.intro=In der untenstehenden Liste finden Sie alle Arbeitsgruppen, an denen Sie teilnehmen. create.form.title=Neue Arbeitsgruppe erstellen create.group=Gruppe erstellen create.group.description=Erzeugen Sie eine neue Gruppe mit der unten stehenden Schaltfläche. Als Besitzer dieser Gruppe können Sie danach die Gruppenwerkzeuge freischalten, Benutzer hinzufügen oder die Gruppe veröffentlichen. @@ -27,11 +25,10 @@ menu.learninggroups=Meine Lerngruppen menu.learninggroups.alt=Arbeiten Sie mit Ihren Lerngruppen menu.groups=Meine Gruppen menu.groups.alt=Arbeiten Sie mit Ihren Gruppen -menu.rightgroups=Meine Rechtegruppen -menu.rightgroups.alt=Arbeiten Sie mit Ihren Rechtegruppen menu.opengroups=Ver\u00F6ffentlichte Gruppen menu.opengroups.alt=Arbeitsgruppen in die \u00F6ffentlich sind und an denen ich teilnehmen kann. msg.atleastone=Es muss mindestens ein Besitzer in der Arbeitsgruppe eingetragen sein. +msg.alleastone.editable.group=Sie m\u00FCssen mindestens eine Gruppe wählen, die Sie besitzen. right.header=Rechtegruppen right.intro=In dieser Liste finden Sie alle Rechtegruppen, an denen Sie teilnehmen. open.header=Öffentliche Gruppen @@ -104,11 +101,11 @@ users.group=Benutzer verwalten notification.mail.added.body=*** Das ist eine automatisch generierte Nachricht. Bitte antworten Sie nicht auf diese Nachricht *** \n\nSie wurden von {0} {1} ({3}) in eine Arbeitsgruppe eingeladen\: \n\nGruppenname\: $groupname\nBeschreibung\: $groupdescription\n\nSind Sie damit nicht einverstanden, so k\u00F6nnen Sie sich aus der Arbeitsgruppe wieder austragen. notification.mail.added.self.body=*** Das ist eine automatisch generierte Nachricht. Bitte antworten Sie nicht auf diese Nachricht *** \n\n Sie haben in OLAT eine Arbeitsgruppe eröffnet\: \n\nGruppenname\: $groupname\nBeschreibung\: $groupdescription\n\nSie k\u00F6nnen die Gruppe jederzeit wieder löschen. -notification.mail.added.self.subject=OLAT-Arbeitsgruppe $groupname -notification.mail.added.subject=OLAT-Arbeitsgruppe $groupname +notification.mail.added.self.subject=Gruppe $groupname +notification.mail.added.subject=Gruppe $groupname notification.mail.deleted.body=*** Das ist eine automatisch generierte Nachricht. Bitte antworten Sie nicht auf diese Nachricht *** \n\n Sie wurden von {0} {1} ({3}) aus der Arbeitsgruppe ausgetragen, da sie gel\u00F6scht wurde\: \n\nGruppenname\: $groupname\nBeschreibung\: $groupdescription\n\nBei Fragen kontaktieren Sie bitte {0} {1} ({2}). -notification.mail.deleted.subject=OLAT-Arbeitsgruppe $groupname\: Die Gruppe wurde gel\u00F6scht +notification.mail.deleted.subject=Gruppe $groupname\: Die Gruppe wurde gel\u00F6scht notification.mail.removed.body=*** Das ist eine automatisch generierte Nachricht. Bitte antworten Sie nicht auf diese Nachricht *** \n\nSie wurden von {0} {1} ({3}) aus der Arbeitsgruppe ausgetragen\: \n\nGruppenname\: $groupname\nBeschreibung\: $groupdescription\n\nBei Fragen kontaktieren Sie bitte {0} {1} ({2}). notification.mail.removed.self.body=*** Das ist eine automatisch generierte Nachricht. Bitte antworten Sie nicht auf diese Nachricht *** \n\n Sie haben sich soeben aus der Arbeitsgruppe ausgetragen\: \n\nGruppenname\: $groupname\nBeschreibung\: $groupdescription\n\n -notification.mail.removed.self.subject=OLAT-Arbeitsgruppe $groupname\: Sie haben sich ausgetragen. -notification.mail.removed.subject=OLAT-Arbeitsgruppe $groupname\: Sie wurden ausgetragen. +notification.mail.removed.self.subject=Gruppe $groupname\: Sie haben sich ausgetragen. +notification.mail.removed.subject=Gruppe $groupname\: Sie wurden ausgetragen. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_el.properties index 6b6bb92a14a..02b90871db7 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_el.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_el.properties @@ -1,6 +1,4 @@ #Mon Sep 13 14:12:18 CEST 2010 -buddy.header=\u039F\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 -buddy.intro=\u0397 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03BB\u03AF\u03C3\u03C4\u03B1 \u03C0\u03B1\u03C1\u03BF\u03C5\u03C3\u03B9\u03AC\u03B6\u03B5\u03B9 \u03CC\u03BB\u03B5\u03C2 \u03C4\u03B9\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C3\u03C4\u03B9\u03C2 \u03BF\u03C0\u03BF\u03AF\u03B5\u03C2 \u03C3\u03C5\u03BC\u03BC\u03B5\u03C4\u03AD\u03C7\u03B5\u03C4\u03B5. create.form.title=\u0394\u03B7\u03BC\u03B9\u03BF\u03C1\u03B3\u03AF\u03B1 \u03BD\u03AD\u03B1\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B1\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 dialog.modal.bg.delete.text=\u0395\u03AF\u03C3\u03C4\u03B5 \u03C3\u03AF\u03B3\u03BF\u03C5\u03C1\u03BF\u03B9 \u03CC\u03C4\u03B9 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 "{0}" ?<p> dialog.modal.bg.leave.text=\u0395\u03AC\u03BD \u03B5\u03B3\u03BA\u03B1\u03C4\u03B1\u03BB\u03B5\u03AF\u03C8\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 "{0}" \u03B4\u03B5\u03BD \u03B8\u03B1 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03C0\u03BB\u03AD\u03BF\u03BD \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7. <br>\u0395\u03AF\u03C3\u03C4\u03B5 \u03C3\u03AF\u03B3\u03BF\u03C5\u03C1\u03BF\u03B9 \u03CC\u03C4\u03B9 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B5\u03B3\u03BA\u03B1\u03C4\u03B1\u03BB\u03B5\u03AF\u03C8\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2?<p> @@ -16,8 +14,6 @@ menu.index=\u039F\u03BC\u03AC\u03B4\u03B5\u03C2 menu.index.alt=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03B5 \u03C4\u03B9\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03C3\u03B1\u03C2 menu.learninggroups=\u039F\u03B9 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03AE\u03C2 \u03BC\u03BF\u03C5 menu.learninggroups.alt=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03B5 \u03C4\u03B9\u03C2 \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03AD\u03C2 \u03C3\u03B1\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 -menu.rightgroups=\u039F\u03B9 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B4\u03B9\u03BA\u03B1\u03B9\u03C9\u03BC\u03AC\u03C4\u03C9\u03BD \u03BC\u03BF\u03C5 -menu.rightgroups.alt=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03B5 \u03C4\u03B9\u03C2 \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03AD\u03C2 \u03C3\u03B1\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B4\u03B9\u03BA\u03B1\u03B9\u03C9\u03BC\u03AC\u03C4\u03C9\u03BD msg.atleastone=\u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C4\u03BF\u03C5\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF\u03BD \u03AD\u03BD\u03B1\u03C2 \u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03C2 \u03C3\u03C4\u03B7\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2. right.header=\u039F\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B4\u03B9\u03BA\u03B1\u03B9\u03C9\u03BC\u03AC\u03C4\u03C9\u03BD right.intro=\u0397 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03BB\u03AF\u03C3\u03C4\u03B1 \u03C0\u03B1\u03C1\u03BF\u03C5\u03C3\u03B9\u03AC\u03B6\u03B5\u03B9 \u03CC\u03BB\u03B5\u03C2 \u03C4\u03B9\u03C2 \u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 \u03B4\u03B9\u03BA\u03B1\u03B9\u03C9\u03BC\u03AC\u03C4\u03C9\u03BD \u03C3\u03C4\u03B9\u03C2 \u03BF\u03C0\u03BF\u03AF\u03B5\u03C2 \u03C3\u03C5\u03BC\u03BC\u03B5\u03C4\u03AD\u03C7\u03B5\u03C4\u03B5. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties index 20091206e37..3914f6ce5d6 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties @@ -1,6 +1,4 @@ #Wed Aug 15 14:23:55 CEST 2012 -buddy.header=Groups -buddy.intro=The following list shows all groups you participate in. cif.coursetitle=Course title cif.description=Description cif.displayname=Name @@ -37,10 +35,9 @@ menu.learninggroups=My learning groups menu.learninggroups.alt=Work with your personal groups menu.opengroups=Published groups menu.opengroups.alt=Groups that are published and bookable. -menu.rightgroups=My right groups -menu.rightgroups.alt=Work with your personal right groups merge.group=Merge msg.atleastone=There must be at least one owner in this group. +msg.alleastone.editable.group=You must select at least one group you own. notification.mail.added.body=*** This is an automated message. Please do not reply *** \r\n\r\nYou were invited to a group by {0} {1} ({3})\: \r\n\r\nGroup name\: $groupname\r\nDescription\: $groupdescription\r\n\r\nIf you do not agree, you can sign out from this group. notification.mail.added.self.body=*** This is an automated message. Please do not reply *** \r\n\r\nYou have created a group in OLAT\: \r\n\r\nGroup name\: $groupname\r\nDescription\: $groupdescription\r\n\r\nYou can delete this group anytime. notification.mail.added.self.subject=Group $groupname diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_es.properties index 3596594b9d3..407a8b2a1c8 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_es.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_es.properties @@ -1,6 +1,4 @@ #Wed Mar 04 19:19:37 CET 2009 -buddy.header=Grupos de colaboraci\u00F3n -buddy.intro=La lista siguiente muestra todos los grupos de colaboraci\u00F3n en los que participas. create.form.title=Crear un nuevo grupo de colaboraci\u00F3n dialog.modal.bg.delete.text=\u00BFEst\u00E1s seguro de querer eliminar el grupo de colaboraci\u00F3n "{0}"?<p> dialog.modal.bg.leave.text=Si abandonas el grupo de colaboraci\u00F3n "{0}" no volver\u00E1s a tener acceso. <br>\u00BFEst\u00E1s seguro de querer abandonar este grupo de colaboraci\u00F3n?<p> @@ -16,8 +14,6 @@ menu.index=Grupos menu.index.alt=Trabaja con tus grupos menu.learninggroups=Mis grupos de estudios menu.learninggroups.alt=Trabaja con tus grupos de estudios personales -menu.rightgroups=Mis grupos de permisos -menu.rightgroups.alt=Trabaja con tus permisos de grupo personales msg.atleastone=Al menos debe haber un propietario en el grupo de colaboraci\u00F3n. right.header=Grupos de permisos right.intro=La lista siguiente muestra todos los grupos de permisos en los que participas. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fa.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fa.properties index e5dd10d577d..7f39a30a294 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fa.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fa.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:13 CET 2009 -buddy.header=\u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC -buddy.intro=\u0644\u064A\u0633\u062A \u067E\u0627\u064A\u064A\u0646 \u062A\u0645\u0627\u0645\u064A \u06AF\u0631\u0648\u0647 \u0647\u0627\u064A\u064A \u06A9\u0627\u0631\u06CC \u0631\u0627 \u06A9\u0647 \u062F\u0631 \u0622\u0646 \u0645\u0634\u0627\u0631\u06A9\u062A \u062F\u0627\u0634\u062A\u0647 \u0627\u064A\u062F \u0646\u0645\u0627\u064A\u0634 \u0645\u064A \u062F\u0647\u062F create.form.title=\u0627\u06CC\u062C\u0627\u062F \u06CC\u06A9 \u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC \u062C\u062F\u06CC\u062F dialog.modal.bg.delete.text=\u0627\u06CC\u0627 \u0634\u0645\u0627 \u0648\u0627\u0642\u0639\u0627 \u0645\u06CC\u062E\u0648\u0627\u0647\u06CC\u062F \u0627\u06CC\u0646 \u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC \u0631\u0627 \u062D\u0630\u0641 \u06A9\u0646\u06CC\u062F "{0}"\u0621 ?<p> dialog.modal.bg.leave.text=\u0627\u06AF\u0631 \u0634\u0645\u0627 \u0645\u06CC \u062E\u0648\u0627\u0647\u06CC\u062F \u0627\u06CC\u0646 \u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC \u0631\u0627 \u062A\u0631\u06A9 \u06A9\u0646\u06CC\u062F "{0}" \u062F\u0633\u062A\u0631\u0633\u06CC \u0634\u0645\u0627 \u0627\u0632 \u0627\u06CC\u0646 \u0628\u0647 \u0628\u0639\u062F \u0645\u0633\u062F\u0648\u062F \u0645\u06CC\u0634\u0648\u062F <br>\u0627\u06CC\u0627 \u0634\u0645\u0627 \u0648\u0627\u0642\u0639\u0627 \u0645\u06CC\u062E\u0648\u0627\u0647\u06CC\u062F \u0628\u0631\u0627\u06CC \u0645\u062F\u062A \u0637\u0648\u0644\u0627\u0646\u06CC \u0627\u06CC\u0646 \u067E\u0631\u0648\u0698\u0647 \u0631\u0627 \u062A\u0631\u06A9 \u06A9\u0646\u06CC\u062F?<p> @@ -15,8 +13,6 @@ menu.index=\u06AF\u0631\u0648\u0647 \u0647\u0627 menu.index.alt=\u0641\u0639\u0627\u0644\u06CC\u062A \u062F\u0631 \u0627\u06CC\u0646 \u06AF\u0631\u0648\u0647 menu.learninggroups=\u06AF\u0631\u0648\u0647 \u0622\u0645\u0648\u0632\u0634\u06CC \u0645\u0646 menu.learninggroups.alt=\u0641\u0639\u0627\u0644\u06CC\u062A \u062F\u0631 \u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC \u0634\u062E\u0635\u06CC \u0634\u0645\u0627 -menu.rightgroups=\u0631\u0627\u06CC\u062A \u06AF\u0631\u0648\u0647 \u0634\u062E\u0635\u06CC -menu.rightgroups.alt=\u0641\u0639\u0627\u0644\u06CC\u062A \u062F\u0631 \u0631\u0627\u06CC\u062A \u06AF\u0631\u0648\u0647 \u0634\u062E\u0635\u06CC \u0634\u0645\u0627 msg.atleastone=\u0634\u0645\u0627 \u062D\u062F\u0627\u0642\u0644 \u0628\u0627\u06CC\u062F \u062F\u0631 \u0627\u06CC\u0646 \u06AF\u0631\u0648\u0647 \u06A9\u0627\u0631\u06CC \u0645\u0634\u0627\u0631\u06A9\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u06CC\u062F right.header=\u06AF\u0631\u0648\u0647\u0647\u0627\u06CC \u062F\u0631\u0633\u062A right.intro=\u0644\u064A\u0633\u062A \u067E\u0627\u064A\u064A\u0646 \u062A\u0645\u0627\u0645\u064A \u0631\u0627\u064A\u062A \u06AF\u0631\u0648\u0647 \u0647\u0627\u064A\u064A \u0631\u0627 \u06A9\u0647 \u062F\u0631 \u0622\u0646 \u0645\u0634\u0627\u0631\u06A9\u062A \u062F\u0627\u0634\u062A\u0647 \u0627\u064A\u062F \u0646\u0645\u0627\u064A\u0634 \u0645\u064A \u062F\u0647\u062F diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties index add3547140e..0f71c7ac3b4 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties @@ -1,6 +1,4 @@ #Thu Aug 09 15:23:28 CEST 2012 -buddy.header=Groupes de travail -buddy.intro=Dans la liste ci-dessus, vous trouvez tous les groupes de travail dont vous faites partie. cif.coursetitle=Titre du cours cif.description=Description cif.displayname=Nom @@ -37,10 +35,9 @@ menu.learninggroups=Mes groupes d'\u00E9tude menu.learninggroups.alt=Travaillez avec vos groupes d'\u00E9tude menu.opengroups=Groupes publi\u00E9s menu.opengroups.alt=Les groupes qui ont \u00E9t\u00E9 publi\u00E9s et auxquels je peux prendre part. -menu.rightgroups=Mes groupes de droits -menu.rightgroups.alt=Travaillez avec vos groupes de droits merge.group=R\u00E9unir msg.atleastone=Il faut qu'au moins un propri\u00E9taire fasse partie du groupe de travail. +msg.alleastone.editable.group=Vous devez choisir au moins un groupe dont vous êtes propriétaire, notification.mail.added.body=*** Ceci est un message g\u00E9n\u00E9r\u00E9 de mani\u00E8re automatique. Veuillez, SVP., ne pas r\u00E9pondre \u00E0 ce message. *** \r\n\r\nVous avez \u00E9t\u00E9 invit\u00E9(e) par {0} {1} ({3}) dans un groupe de travail \: \r\n\r\nNom du groupe\: $groupname\r\nDescription\: $groupdescription\r\n\r\nSi vous ne y donnez pas votre accord, vous pouvez vous d\u00E9sinscrire du groupe de travail. notification.mail.added.self.body=*** Ceci est un message g\u00E9n\u00E9r\u00E9 de mani\u00E8re automatique. Veuillez, SVP., ne pas r\u00E9pondre \u00E0 ce message *** \n\n Vous avez cr\u00E9\u00E9 un groupe de travail dans OLAT \:\n\nNom du groupe\: $groupname\nDescription\: $groupdescription\n\nVous pourrez annuler ce groupe \u00E0 tout moment. notification.mail.added.self.subject=Groupe de travail OLAT $groupname diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_it.properties index b9c76685ce3..00d8c243a36 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_it.properties @@ -1,6 +1,4 @@ #Fri Aug 27 14:54:05 CEST 2010 -buddy.header=Gruppi di lavoro -buddy.intro=Nella lista sottostante trova tutti i gruppi di lavoro a cui partecipa. create.form.title=Creare un nuovo gruppo di lavoro dialog.modal.bg.delete.text=Vuole veramente eliminare il gruppo di lavoro "{0}"?<p> dialog.modal.bg.leave.text=Se abbandona ora il gruppo di lavoro "{0}" non potr\u00E0 pi\u00F9 accedervi. <br> Vuole veramente abbandonare il gruppo di lavoro?<p> @@ -16,8 +14,6 @@ menu.index=Gruppi menu.index.alt=Lavori con i Suoi gruppi. menu.learninggroups=I miei gruppi di studio menu.learninggroups.alt=Lavori con i Suoi gruppi di studio. -menu.rightgroups=I miei gruppi con diritti -menu.rightgroups.alt=Lavori con i Suoi gruppi con diritti. msg.atleastone=Nel gruppo di lavoro deve essere registrato almeno una/un proprietaria/o. right.header=Gruppi con diritti right.intro=In questa lista trova tutti i gruppi con diritti a cui partecipa. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_jp.properties index 4db71d626ae..d151d67dad6 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_jp.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_jp.properties @@ -1,6 +1,4 @@ #Thu Jul 15 06:20:46 CEST 2010 -buddy.header=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7 -buddy.intro=\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u3067\u306F\u3001\u3042\u306A\u305F\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7\u3059\u3079\u3066\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002 create.form.title=\u65B0\u3057\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7\u3092\u4F5C\u6210\u3059\u308B dialog.modal.bg.leave.text=\u3042\u306A\u305F\u304C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7\u300C{0}\u300D\u3092\u96E2\u308C\u305F\u5834\u5408\u3001\u3053\u308C\u4EE5\u4E0A\u3001\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002<br />\u672C\u5F53\u306B\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7\u304B\u3089\u96E2\u308C\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B? index.header=\u30B0\u30EB\u30FC\u30D7 @@ -12,7 +10,6 @@ learning.intro=\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u3067\u306F\u3001\u3042\u306 menu.buddygroups=\u30DE\u30A4\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B0\u30EB\u30FC\u30D7 menu.index=\u30B0\u30EB\u30FC\u30D7 menu.learninggroups=\u30DE\u30A4\u5B66\u7FD2\u30B0\u30EB\u30FC\u30D7 -menu.rightgroups=\u30DE\u30A4\u6A29\u5229\u30B0\u30EB\u30FC\u30D7 right.header=\u6A29\u5229\u30B0\u30EB\u30FC\u30D7 right.intro=\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u3067\u306F\u3001\u3042\u306A\u305F\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u3001\u3059\u3079\u3066\u306E\u6A29\u5229\u30B0\u30EB\u30FC\u30D7\u304C\u8868\u793A\u3055\u308C\u3066\u3044\u307E\u3059\u3002 table.header.bgname=\u540D\u79F0 diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_lt.properties index 9e3104dc10d..43ce0ffb9e7 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_lt.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_lt.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:02 CET 2009 -buddy.header=Projekt\u0173 grup\u0117s -buddy.intro=\u0160is s\u0105ra\u0161as parodo visas projekt\u0173 grupes, kuriose j\u016Bs dalyvaujate. create.form.title=Sukurti nauj\u0105 projekto grup\u0119 dialog.modal.bg.delete.text=Ar j\u016Bs tikrai norite pa\u0161alinti grup\u0119 "{0}" ?<p> dialog.modal.bg.leave.text=Jeigu j\u016Bs paliekate projekto grup\u0119 "{0}", j\u016Bs daugiau netur\u0117site pri\u0117jimo. <br>Ar j\u016Bs tikrai norite palikti \u0161i\u0105 projekto grup\u0119?<p> @@ -15,8 +13,6 @@ menu.index=Grup\u0117s menu.index.alt=Dirbti su savo grup\u0117mis menu.learninggroups=Mano mokymo grup\u0117s menu.learninggroups.alt=Dirbti su mano asmenin\u0117mis mokymo grup\u0117mis -menu.rightgroups=Mano teisi\u0173 grup\u0117s -menu.rightgroups.alt=Dirbti su mano asmenin\u0117mis teisi\u0173 grup\u0117mis msg.atleastone=Turi b\u016Bti ma\u017Eiausiai vienas savininkas \u0161ioje projekto grup\u0117je. right.header=Teisi\u0173 grup\u0117s right.intro=\u0160is s\u0105ra\u0161as parodo visas teisi\u0173 grupes, kuriose j\u016Bs dalyvaujate. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_nl_NL.properties index c1ffd972028..f179ec89a88 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_nl_NL.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_nl_NL.properties @@ -1,6 +1,4 @@ #Thu Sep 08 16:42:45 CEST 2011 -buddy.header=Projectgroepen -buddy.intro=De volgende lijst toont alle projectgroepen waaraan u deelneemt. create.form.title=Maak een nieuwe projectgroep aan dialog.modal.bg.delete.text=Weet u zeker dat u de projectgroep "{0}" ?<p> wilt verwijderen? dialog.modal.bg.leave.text=Als u de projectgroep "{0}" verlaat, zal u niet langer toegang hebben. <br>Weet u zeker dat u deze projectgroep wilt verlaten?<p> @@ -16,8 +14,6 @@ menu.index=Groepen menu.index.alt=Werk met jouw groepen menu.learninggroups=Mijn leergroepen menu.learninggroups.alt=Werk met jouw persoonlijke leergroepen -menu.rightgroups=Mijn rechtgroepen -menu.rightgroups.alt=Werk met jouw persoonlijke rechtgroepen msg.atleastone=Er moet minstens een eigenaar zijn in deze werkgroep. right.header=Rechtgroepen right.intro=Volgende link toont alle rechtgroepen waaraan je deelneemt. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pl.properties index ed416e389bf..ccb7f1490ad 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pl.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pl.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:17 CET 2009 -buddy.header=Grupy projektu -buddy.intro=Poni\u017Csza lista pokazuje wszystkie grupy projektu, w kt\u00F3rych uczestniczysz. create.form.title=Utw\u00F3rz now\u0105 grup\u0119 projektu dialog.modal.bg.delete.text=Czy na pewno chcesz usn\u0105\u0107 grup\u0119 projektu "{0}" ?<p> dialog.modal.bg.leave.text=Je\u015Bli opu\u015Bcisz grup\u0119 projektu "{0}" nie b\u0119dziesz mia\u0142 do niej dost\u0119pu. <br>Czy jeste\u015B pewien?<p> @@ -18,8 +16,6 @@ menu.learninggroups=Moje grupy edukacyjne menu.learninggroups.alt=Pracuj ze swoimi grupami edukacyjnymi menu.opengroups=Grupy "opublikowane" menu.opengroups.alt=Grupy projektu, kt\u00F3re s\u0105 opublikowane i mo\u017Cna si\u0119 do nich zapisywa\u0107 -menu.rightgroups=Moje grupy uprawnie\u0144 -menu.rightgroups.alt=Pracuj ze swoimi grupami uprawnie\u0144 msg.atleastone=W grupie projektu musi by\u0107 co najmniej jeden w\u0142a\u015Bciciel. right.header=Grupy uprawnie\u0144 right.intro=Poni\u017Csza lista pokazuje wszystkie grupy uprawnie\u0144, w kt\u00F3rych uczestniczysz. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties index 1b47295f8ac..67efaaf3f6b 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties @@ -1,6 +1,4 @@ #Tue Apr 03 15:05:18 CEST 2012 -buddy.header=Grupos de projeto -buddy.intro=A seguinte lista mostra todos os grupos de projeto que voc\u00EA participa. cif.description=Descri\u00E7\u00E3o cif.displayname=Nome cif.error.allempty=Por favor, preencha pelo menos um campo de formul\u00E1rio. @@ -25,8 +23,6 @@ menu.learninggroups=Meus grupos de estudo menu.learninggroups.alt=Trabalhar com seus grupos de estudo pessoais menu.opengroups=Grupos publicados menu.opengroups.alt=Grupos de projetos que s\u00E3o publicados e reservados. -menu.rightgroups=Meus grupos de direitos -menu.rightgroups.alt=Trabalhar com seus grupos de direitos pessoais msg.atleastone=Deve haver no m\u00EDnimo um propriet\u00E1rio neste grupo de projeto. open.header=Grupos de projetos p\u00FAblicos open.intro=Nesta lista voc\u00EA encontrar\u00E1 todos os grupos de projetos publicados que voc\u00EA pode participar diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_PT.properties index 4c0680f8c62..e37f71a3647 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_PT.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_PT.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:05 CET 2009 -buddy.header=Grupos de projeto -buddy.intro=A seguinte lista mostra todos os grupos de projeto que voc\u00EA participa. create.form.title=Criar novo grupo de projeto dialog.modal.bg.delete.text=Voc\u00EA realmente quer apagar o grupo de projeto "{0}" ?<p> dialog.modal.bg.leave.text=Se voc\u00EA deixar o grupo de projeto "{0}" voc\u00EA n\u00E3o ter\u00E1 acesso. <br>Voc\u00EA realmente quer deixar este grupo de projeto?<p> @@ -15,8 +13,6 @@ menu.index=Grupos menu.index.alt=Trabalhar com seus grupos menu.learninggroups=Meus grupos de estudo menu.learninggroups.alt=Trabalhar com seus grupos de estudo pessoais -menu.rightgroups=Meus grupos de direitos -menu.rightgroups.alt=Trabalhar com seus grupos de direitos pessoais msg.atleastone=Deve haver no m\u00EDnimo um propriet\u00E1rio neste grupo de projeto. right.header=Grupos de direitos right.intro=A seguinte lista mostra todos os grupos de direitos que voc\u00EA participa. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ru.properties index 76f591b8a95..c3cc76c2a14 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ru.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_ru.properties @@ -1,6 +1,4 @@ #Thu Sep 24 00:32:55 CEST 2009 -buddy.header=\u0420\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B -buddy.intro=\u0412 \u043D\u0438\u0436\u0435\u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C \u0441\u043F\u0438\u0441\u043A\u0435 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0432\u0441\u0435 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u0432 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0432\u044B \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442\u0435. create.form.title=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443 dialog.modal.bg.delete.text=\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443 "{0}"?<p> dialog.modal.bg.leave.text=\u0415\u0441\u043B\u0438 \u0412\u044B \u043F\u043E\u043A\u0438\u043D\u0435\u0442\u0435 \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443 "{0}", \u0442\u043E \u0443 \u0412\u0430\u0441 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u043D\u0435\u0439. <br> \u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u043A\u0438\u043D\u0443\u0442\u044C \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443?<p> @@ -16,8 +14,6 @@ menu.index=\u0413\u0440\u0443\u043F\u043F\u044B menu.index.alt=\u0420\u0430\u0431\u043E\u0442\u0430 \u0441 \u0412\u0430\u0448\u0438\u043C\u0438 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u0438 menu.learninggroups=\u041C\u043E\u0438 \u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F menu.learninggroups.alt=\u0420\u0430\u0431\u043E\u0442\u0430 \u0441 \u0412\u0430\u0448\u0438\u043C\u0438 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u0438 \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F -menu.rightgroups=\u041C\u043E\u0438 \u0433\u0440\u0443\u043F\u043F\u044B \u043F\u0440\u0430\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 -menu.rightgroups.alt=\u0420\u0430\u0431\u043E\u0442\u0430 \u0441 \u0412\u0430\u0448\u0438\u043C\u0438 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u0438 \u043F\u0440\u0430\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 msg.atleastone=\u041F\u043E \u043A\u0440\u0430\u0439\u043D\u0435\u0439 \u043C\u0435\u0440\u0435 \u043E\u0434\u0438\u043D \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0437\u0430\u043D\u0435\u0441\u0451\u043D \u0432 \u0440\u0430\u0431\u043E\u0447\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443. right.header=\u0413\u0440\u0443\u043F\u043F\u044B \u043F\u0440\u0430\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 right.intro=\u0412 \u043D\u0438\u0436\u0435\u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C \u0441\u043F\u0438\u0441\u043A\u0435 \u043D\u0430\u0445\u043E\u0434\u044F\u0442\u0441\u044F \u0432\u0441\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u043F\u0440\u0430\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0432\u044B \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442\u0435. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_sq.properties index ade8deda500..54309def1e7 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_sq.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_sq.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:11 CET 2009 -buddy.header=Grupet e projekteve -buddy.intro=Lista n\u00EB vijim shfaq t\u00EB gjitha grupet e projektit q\u00EB ju i p\u00EBrkisnit. create.form.title=Krijo grup t\u00EB ri t\u00EB m\u00EBsimit dialog.modal.bg.delete.text=A doni me t\u00EB v\u00EBrtet\u00EB t\u00EB fshini grupin e projektit "{0}" ?<p> dialog.modal.bg.leave.text=N\u00EBse ju e braktisni grupin e projektit "{0}" ju m\u00EB nuk do t\u00EB keni qasje n\u00EB t\u00EB. <br>A doni me t\u00EB v\u00EBrtet\u00EB ta braktisni k\u00EBt\u00EB grup t\u00EB projektit?<p> @@ -15,8 +13,6 @@ menu.index=Grupet menu.index.alt=Puna me grupet tuaja menu.learninggroups=Grupe e mia t\u00EB m\u00EBsimit menu.learninggroups.alt=Puno me grupet tuaja personale t\u00EB m\u00EBsimit -menu.rightgroups=Grupet e mia t\u00EB t\u00EB drejtave -menu.rightgroups.alt=Puna me grupet personale t\u00EB t\u00EB drejtave msg.atleastone=Duhet t\u00EB ket\u00EB t\u00EB pakt\u00EBn nj\u00EB pronar n\u00EB grup projekti. right.header=Grupet e t\u00EB t\u00EB drejtave right.intro=Lisa n\u00EB vijim shfaq t\u00EB gjitha grupet e t\u00EB drejtave n\u00EB t\u00EB cilat ju i p\u00EBrkisni. diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_CN.properties index 17b70020325..3915f79f4ff 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_CN.properties @@ -1,6 +1,4 @@ #Tue Dec 01 18:46:08 CET 2009 -buddy.header=\u9879\u76EE\u7EC4 -buddy.intro=\u4E0B\u8868\u662F\u6240\u6709\u4F60\u53C2\u52A0\u7684\u9879\u76EE\u7EC4 create.form.title=\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\u7EC4 dialog.modal.bg.delete.text=\u4F60\u771F\u7684\u60F3\u8981\u5220\u9664\u9879\u76EE\u7EC4"{0}" \uFF1F<p> dialog.modal.bg.leave.text=\u5982\u679C\u4F60\u79BB\u5F00\u9879\u76EE\u7EC4"{0}"\uFF0C\u4F60\u5C06\u5931\u53BB\u8BBF\u95EE\u6743\u9650\u3002<br>\u4F60\u786E\u5B9A\u8981\u79BB\u5F00\u8BE5\u9879\u76EE\u7EC4\u5417\uFF1F<p> @@ -16,8 +14,6 @@ menu.index=\u7FA4\u7EC4 menu.index.alt=\u5C0F\u7EC4\u534F\u4F5C menu.learninggroups=\u6211\u7684\u5B66\u4E60\u7EC4 menu.learninggroups.alt=\u4E0E\u4F60\u7684\u5B66\u4E60\u7EC4\u6210\u5458\u534F\u4F5C -menu.rightgroups=\u6211\u7684\u6743\u9650\u7EC4 -menu.rightgroups.alt=\u4E0E\u4F60\u7684\u6743\u9650\u7EC4\u6210\u5458\u534F\u4F5C msg.atleastone=\u8BE5\u9879\u76EE\u7EC4\u4E2D\u81F3\u5C11\u8981\u6709\u4E00\u4E2A\u6240\u6709\u8005\u3002 right.header=\u6743\u9650\u7EC4 right.intro=\u4E0B\u8868\u662F\u6240\u6709\u4F60\u53C2\u52A0\u7684\u6743\u9650\u7EC4 diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_TW.properties index 0e865caa45b..2ef6d253886 100644 --- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_TW.properties +++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_zh_TW.properties @@ -1,6 +1,4 @@ #Mon Mar 02 09:54:06 CET 2009 -buddy.header=\u5C08\u6848\u7FA4\u7D44 -buddy.intro=\u4E0B\u5217\u7684\u6E05\u55AE\u986F\u793A\u6240\u6709\u60A8\u53C3\u8207\u7684\u5C08\u6848\u7FA4\u7D44\u3002 create.form.title=\u5EFA\u7ACB\u4E00\u500B\u65B0\u5C08\u6848\u7FA4\u7D44 dialog.modal.bg.delete.text=\u60A8\u771F\u7684\u8981\u522A\u9664\u5C08\u6848\u7FA4\u7D44 "{0}" \u55CE\uFF1F<p> dialog.modal.bg.leave.text=\u5982\u679C\u60A8\u9000\u51FA\u5C08\u6848\u7FA4\u7D44 "{0}" \u60A8\u5C07\u7121\u6CD5\u518D\u5B58\u53D6\u3002 <br>\u60A8\u771F\u7684\u8981\u9000\u51FA\u9019\u500B\u5C08\u6848\u7FA4\u7D44\u55CE\uFF1F<p> @@ -16,8 +14,6 @@ menu.index=\u7FA4\u7D44 menu.index.alt=\u8207\u60A8\u7684\u7FA4\u7D44\u5DE5\u4F5C menu.learninggroups=\u6211\u7684\u5B78\u7FD2\u7FA4\u7D44 menu.learninggroups.alt=\u8207\u60A8\u7684\u500B\u4EBA\u5B78\u7FD2\u7FA4\u7D44\u5DE5\u4F5C -menu.rightgroups=\u6211\u7684\u6B0A\u9650\u7FA4\u7D44 -menu.rightgroups.alt=\u8207\u60A8\u7684\u500B\u4EBA\u6B0A\u9650\u7FA4\u7D44\u5DE5\u4F5C msg.atleastone=\u9019\u500B\u5C08\u6848\u7FA4\u7D44\u81F3\u5C11\u8981\u6709\u4E00\u540D\u64C1\u6709\u8005\u3002 right.header=\u6B0A\u9650\u7FA4\u7D44 right.intro=\u4E0B\u5217\u7684\u6E05\u55AE\u986F\u793A\u6240\u6709\u60A8\u53C3\u8207\u7684\u6B0A\u9650\u7FA4\u7D44\u3002 diff --git a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java index 85062ab7bf5..85defdff7b1 100644 --- a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java +++ b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java @@ -78,6 +78,7 @@ import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent; import org.olat.core.util.resource.OresHelper; import org.olat.course.nodes.iq.AssessmentEvent; import org.olat.group.BusinessGroup; +import org.olat.group.BusinessGroupMembership; import org.olat.group.BusinessGroupService; import org.olat.group.GroupLoggingAction; import org.olat.group.model.DisplayMembers; @@ -232,6 +233,19 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im putInitialPanel(columnLayoutCtr.getInitialComponent()); return; } + + + List<BusinessGroupMembership> memberships = businessGroupService.getBusinessGroupMembership(getIdentity(), Collections.singletonList(bGroup.getKey())); + if(isOnWaitinglist(memberships)) { + VelocityContainer vc = createVelocityContainer("waiting"); + vc.contextPut("name", bGroup.getName()); + columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), null, null, vc, "grouprun"); + listenTo(columnLayoutCtr); // cleanup on dispose + putInitialPanel(columnLayoutCtr.getInitialComponent()); + return; + } + + addLoggingResourceable(LoggingResourceable.wrap(businessGroup)); ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OPEN, getClass()); @@ -306,6 +320,18 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im return; } } + + private boolean isOnWaitinglist(List<BusinessGroupMembership> memberships) { + boolean waiting = false; + for(BusinessGroupMembership membership:memberships) { + if(membership.getOwnerGroupKey() != null || membership.getParticipantGroupKey() != null) { + return false; + } else if (membership.getWaitingGroupKey() != null) { + waiting = true; + } + } + return waiting; + } private void exposeGroupDetailsToVC(BusinessGroup currBusinessGroup) { main.contextPut("BuddyGroup", currBusinessGroup); diff --git a/src/main/java/org/olat/group/ui/run/_content/waiting.html b/src/main/java/org/olat/group/ui/run/_content/waiting.html new file mode 100644 index 00000000000..f3857c669df --- /dev/null +++ b/src/main/java/org/olat/group/ui/run/_content/waiting.html @@ -0,0 +1,4 @@ +<h4 class="b_with_small_icon_left b_group_icon"> + $name +</h4> +$r.translate("group.on.waitinglist") \ No newline at end of file diff --git a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_de.properties index 8cce2553a63..1d962d5c143 100644 --- a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_de.properties @@ -2,6 +2,7 @@ businessgroup.contact.bodytext=\n\n---\nGehe direkt zur Gruppe {0} \: "{1}" businessgroup.contact.subject={0} \: group.deleted=$org.olat.group.ui\:group.deleted +group.on.waitinglist=Sie sind auf dem Waiting List. Ein bisschen Geduld! groupchat.not.available=$org.olat.instantMessaging.groupchat\:groupchat.not.available grouprun.configurationchanged=Die Konfiguration dieser Gruppe wurde ver\u00E4ndert. Die Gruppe wurde neu gestartet. grouprun.details.description=Beschreibung diff --git a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStep.java b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStep.java index 447779b5483..cac267d3c75 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStep.java +++ b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStep.java @@ -32,17 +32,28 @@ import org.olat.core.gui.control.generic.wizard.StepsRunContext; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ public class BGConfigToolsStep extends BasicStep { + + private final boolean isAuthor; - public BGConfigToolsStep(UserRequest ureq) { + public BGConfigToolsStep(UserRequest ureq, boolean isAuthor) { super(ureq); + this.isAuthor = isAuthor; - setNextStep(new BGConfigResourcesStep(ureq)); + if(isAuthor) { + setNextStep(new BGConfigResourcesStep(ureq)); + } else { + setNextStep(NOSTEP); + } setI18nTitleAndDescr("config.tools.title", "config.tools.desc"); } @Override public PrevNextFinishConfig getInitialPrevNextFinishConfig() { - return new PrevNextFinishConfig(false, true, true); + if(isAuthor) { + return new PrevNextFinishConfig(false, true, true); + } else { + return new PrevNextFinishConfig(false, false, true); + } } @Override diff --git a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java index dbb1c942c4f..85e189bc96e 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGConfigToolsStepController.java @@ -107,11 +107,13 @@ public class BGConfigToolsStepController extends StepFormBasicController { config.configContainer.add("folder", config.folderCtrl.getInitialFormItem()); config.folderCtrl.getInitialFormItem().setVisible(false); - //add quota configuration - Quota quota = quotaManager.createQuota(null, null, null); - config.quotaCtrl = new BGConfigQuotaController(ureq, getWindowControl(), quota); - config.configContainer.add("quota", config.quotaCtrl.getInitialFormItem()); - config.quotaCtrl.getInitialFormItem().setVisible(false); + //add quota configuration for admin only + if(ureq.getUserSession().getRoles().isOLATAdmin()) { + Quota quota = quotaManager.createQuota(null, null, null); + config.quotaCtrl = new BGConfigQuotaController(ureq, getWindowControl(), quota); + config.configContainer.add("quota", config.quotaCtrl.getInitialFormItem()); + config.quotaCtrl.getInitialFormItem().setVisible(false); + } } selectEl.setUserObject(config); @@ -158,8 +160,11 @@ public class BGConfigToolsStepController extends StepFormBasicController { configuration.setCalendarAccess(config.calendarCtrl.getCalendarAccess()); } else if (tool.equals(CollaborationTools.TOOL_FOLDER)) { configuration.setFolderAccess(config.folderCtrl.getFolderAccess()); - Quota quota = quotaManager.createQuota(null, config.quotaCtrl.getQuotaKB(), config.quotaCtrl.getULLimit()); - configuration.setQuota(quota); + //only admin are allowed to configure quota + if(ureq.getUserSession().getRoles().isOLATAdmin() && config.quotaCtrl != null) { + Quota quota = quotaManager.createQuota(null, config.quotaCtrl.getQuotaKB(), config.quotaCtrl.getULLimit()); + configuration.setQuota(quota); + } } } } diff --git a/src/main/java/org/olat/repository/RepositoryTableModel.java b/src/main/java/org/olat/repository/RepositoryTableModel.java index e009cb8404c..0ef10dda24a 100644 --- a/src/main/java/org/olat/repository/RepositoryTableModel.java +++ b/src/main/java/org/olat/repository/RepositoryTableModel.java @@ -180,6 +180,11 @@ public class RepositoryTableModel extends DefaultTableDataModel<RepositoryEntry> repoEntriesWithOffer.put(withOffer.getResource().getKey(), withOffer); } } + + public void removeObject(RepositoryEntry object) { + getObjects().remove(object); + repoEntriesWithOffer.remove(object.getOlatResource().getKey()); + } /** * Get displayname of a repository entry. If repository entry a course diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java index e99292d812a..eba4bb1efde 100644 --- a/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java +++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACFrontendManager.java @@ -384,23 +384,21 @@ public class ACFrontendManager extends BasicManager implements ACService { public Boolean execute() { ResourceReservation reservation = reservationDao.loadReservation(identity, group.getResource()); - if(group.getWaitingListEnabled() != null && group.getWaitingListEnabled().booleanValue()) { + if(reservation != null + || (group.getMaxParticipants() == null || group.getMaxParticipants().intValue() <=0) + || (group.getMaxParticipants() != null && (group.getMaxParticipants().intValue() > + (countReservations(group.getResource()) + securityManager.countIdentitiesOfSecurityGroup(group.getPartipiciantGroup()))))) { + if(!securityManager.isIdentityInSecurityGroup(identity, group.getPartipiciantGroup())) { + securityManager.addIdentityToSecurityGroup(identity, group.getPartipiciantGroup()); + } + } else if(group.getWaitingListEnabled() != null && group.getWaitingListEnabled().booleanValue()) { if(!securityManager.isIdentityInSecurityGroup(identity, group.getWaitingGroup())) { securityManager.addIdentityToSecurityGroup(identity, group.getWaitingGroup()); } } else { - if(reservation != null - || (group.getMaxParticipants() == null && group.getMaxParticipants().intValue() <=0) - || (group.getMaxParticipants() != null && (group.getMaxParticipants().intValue() > - (countReservations(group.getResource()) + securityManager.countIdentitiesOfSecurityGroup(group.getPartipiciantGroup()))))) { - if(!securityManager.isIdentityInSecurityGroup(identity, group.getPartipiciantGroup())) { - securityManager.addIdentityToSecurityGroup(identity, group.getPartipiciantGroup()); - } - } else { - return Boolean.FALSE; - } + return Boolean.FALSE; } - + if(reservation != null) { reservationDao.deleteReservation(reservation); } diff --git a/src/main/java/org/olat/resource/accesscontrol/model/AccessMethod.java b/src/main/java/org/olat/resource/accesscontrol/model/AccessMethod.java index 14e14b205db..18c2cd8b750 100644 --- a/src/main/java/org/olat/resource/accesscontrol/model/AccessMethod.java +++ b/src/main/java/org/olat/resource/accesscontrol/model/AccessMethod.java @@ -45,6 +45,8 @@ public interface AccessMethod { public String getType(); public boolean isNeedUserInteraction(); + + public boolean isPaymentMethod(); public String getMethodCssClass(); } diff --git a/src/main/java/org/olat/resource/accesscontrol/model/FreeAccessMethod.java b/src/main/java/org/olat/resource/accesscontrol/model/FreeAccessMethod.java index 59a25337fed..2a654576dc9 100644 --- a/src/main/java/org/olat/resource/accesscontrol/model/FreeAccessMethod.java +++ b/src/main/java/org/olat/resource/accesscontrol/model/FreeAccessMethod.java @@ -50,6 +50,11 @@ public class FreeAccessMethod extends AbstractAccessMethod { public boolean isNeedUserInteraction() { return false; } + + @Override + public boolean isPaymentMethod() { + return false; + } @Override public int hashCode() { diff --git a/src/main/java/org/olat/resource/accesscontrol/model/TokenAccessMethod.java b/src/main/java/org/olat/resource/accesscontrol/model/TokenAccessMethod.java index 53b14576980..935d19b02ec 100644 --- a/src/main/java/org/olat/resource/accesscontrol/model/TokenAccessMethod.java +++ b/src/main/java/org/olat/resource/accesscontrol/model/TokenAccessMethod.java @@ -50,6 +50,11 @@ public class TokenAccessMethod extends AbstractAccessMethod { public boolean isNeedUserInteraction() { return true; } + + @Override + public boolean isPaymentMethod() { + return false; + } @Override public int hashCode() { diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalAccessHandler.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalAccessHandler.java index 447f87cf9e8..078745f9548 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalAccessHandler.java +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalAccessHandler.java @@ -59,7 +59,7 @@ import org.olat.resource.accesscontrol.ui.FormController; public class PaypalAccessHandler implements AccessMethodHandler { public static final String METHOD_TYPE = "paypal.method"; - public static final String METHOD_CSS_CLASS = "fx_access_method_paypal"; + public static final String METHOD_CSS_CLASS = "b_access_method_paypal"; @Override public boolean isPaymentMethod() { diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/model/PaypalAccessMethod.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/model/PaypalAccessMethod.java index fb6df08919e..74ff2304b1e 100644 --- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/model/PaypalAccessMethod.java +++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/model/PaypalAccessMethod.java @@ -51,6 +51,11 @@ public class PaypalAccessMethod extends AbstractAccessMethod { public boolean isNeedUserInteraction() { return true; } + + @Override + public boolean isPaymentMethod() { + return true; + } @Override public int hashCode() { diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessMethodRenderer.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessMethodRenderer.java index 87ed5b8b29f..60a007e1d0a 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessMethodRenderer.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessMethodRenderer.java @@ -19,8 +19,8 @@ */ package org.olat.resource.accesscontrol.ui; +import java.util.Collection; import java.util.HashSet; -import java.util.List; import java.util.Locale; import java.util.Set; @@ -55,9 +55,9 @@ public class AccessMethodRenderer implements CustomCellRenderer { AccessTransaction transaction = (AccessTransaction)val; Set<String> uniqueType = new HashSet<String>(3); render(sb, transaction, uniqueType, locale); - } else if (val instanceof List) { + } else if (val instanceof Collection) { @SuppressWarnings("unchecked") - List<AccessTransaction> transactions = (List<AccessTransaction>)val; + Collection<AccessTransaction> transactions = (Collection<AccessTransaction>)val; Set<String> uniqueType = new HashSet<String>((transactions.size() * 2) + 1); for(AccessTransaction transaction : transactions) { render(sb, transaction, uniqueType, locale); diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersDataModel.java b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersDataModel.java index c3c7d7faeb0..ed728b3670a 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersDataModel.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersDataModel.java @@ -21,6 +21,7 @@ package org.olat.resource.accesscontrol.ui; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Locale; @@ -81,9 +82,17 @@ public class OrdersDataModel implements TableDataModel<OrderTableItem> { return order.getTransactions(); } case total: { - String total = PriceFormat.fullFormat(order.getOrder().getTotal()); - if(StringHelper.containsNonWhitespace(total)) { - return total; + boolean paymentMethod = false; + Collection<AccessTransaction> transactions = order.getTransactions(); + for(AccessTransaction transaction:transactions) { + paymentMethod |= transaction.getMethod().isPaymentMethod(); + } + + if(paymentMethod) { + String total = PriceFormat.fullFormat(order.getOrder().getTotal()); + if(StringHelper.containsNonWhitespace(total)) { + return total; + } } return "-"; } -- GitLab