diff --git a/src/main/java/org/olat/admin/user/delete/service/UserDeletionManager.java b/src/main/java/org/olat/admin/user/delete/service/UserDeletionManager.java index a32947d88555cae9681b8f761dab64bb58831959..720128443ad10a2aa133d03aa7ba350443309117 100644 --- a/src/main/java/org/olat/admin/user/delete/service/UserDeletionManager.java +++ b/src/main/java/org/olat/admin/user/delete/service/UserDeletionManager.java @@ -63,7 +63,7 @@ import org.olat.properties.Property; import org.olat.properties.PropertyManager; import org.olat.registration.RegistrationManager; import org.olat.registration.TemporaryKeyImpl; -import org.olat.repository.delete.service.DeletionModule; +import org.olat.repository.RepositoryDeletionModule; import org.olat.user.UserDataDeletable; import org.olat.user.UserManager; import org.olat.user.propertyhandlers.UserPropertyHandler; @@ -95,7 +95,7 @@ public class UserDeletionManager extends BasicManager { // Flag used in user-delete to indicate that all deletable managers are initialized private boolean managersInitialized = false; - private DeletionModule deletionModule; + private RepositoryDeletionModule deletionModule; private BaseSecurity securityManager; private MailManager mailManager; private GroupDAO groupDao; @@ -103,7 +103,7 @@ public class UserDeletionManager extends BasicManager { /** * [used by spring] */ - private UserDeletionManager(DeletionModule deletionModule) { + private UserDeletionManager(RepositoryDeletionModule deletionModule) { this.deletionModule = deletionModule; INSTANCE = this; } @@ -446,7 +446,7 @@ public class UserDeletionManager extends BasicManager { } private File getArchivFilePath(Identity identity) { - String archiveFilePath = deletionModule.getArchiveRootPath() + File.separator + USER_ARCHIVE_DIR + File.separator + DeletionModule.getArchiveDatePath() + String archiveFilePath = deletionModule.getArchiveRootPath() + File.separator + USER_ARCHIVE_DIR + File.separator + RepositoryDeletionModule.getArchiveDatePath() + File.separator + "del_identity_" + identity.getName(); File archiveIdentityRootDir = new File(archiveFilePath); if (!archiveIdentityRootDir.exists()) { diff --git a/src/main/java/org/olat/repository/delete/service/DeletionModule.java b/src/main/java/org/olat/repository/RepositoryDeletionModule.java similarity index 93% rename from src/main/java/org/olat/repository/delete/service/DeletionModule.java rename to src/main/java/org/olat/repository/RepositoryDeletionModule.java index 92512612a604e2287b3e3e84500408f9a06901b9..0a9e0de646d33f2ea1276100550f95e1dd55e22b 100644 --- a/src/main/java/org/olat/repository/delete/service/DeletionModule.java +++ b/src/main/java/org/olat/repository/RepositoryDeletionModule.java @@ -23,7 +23,7 @@ * under the Apache 2.0 license as the original file. */ -package org.olat.repository.delete.service; +package org.olat.repository; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -49,8 +49,8 @@ import org.springframework.stereotype.Service; * @author Christian Guretzki */ @Service("deletionModule") -public class DeletionModule extends AbstractSpringModule { - private static final OLog log = Tracing.createLoggerFor(DeletionModule.class); +public class RepositoryDeletionModule extends AbstractSpringModule { + private static final OLog log = Tracing.createLoggerFor(RepositoryDeletionModule.class); private static final String CONF_DELETE_EMAIL_RESPONSE_TO_USER_NAME = "deleteEmailResponseToUserName"; private static final String DEFAULT_ADMIN_USERNAME = "administrator"; @@ -68,7 +68,7 @@ public class DeletionModule extends AbstractSpringModule { private BaseSecurity baseSecurityManager; @Autowired - public DeletionModule(CoordinatorManager coordinatorManager) { + public RepositoryDeletionModule(CoordinatorManager coordinatorManager) { super(coordinatorManager); } diff --git a/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java b/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java deleted file mode 100644 index 072f27d4e8eb854ae3c00ed40130d0e0e845d753..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/ReadyToDeleteController.java +++ /dev/null @@ -1,189 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete; - -import java.util.List; - -import org.olat.core.CoreSpringFactory; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.link.Link; -import org.olat.core.gui.components.panel.Panel; -import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.DefaultColumnDescriptor; -import org.olat.core.gui.components.table.StaticColumnDescriptor; -import org.olat.core.gui.components.table.Table; -import org.olat.core.gui.components.table.TableController; -import org.olat.core.gui.components.table.TableEvent; -import org.olat.core.gui.components.table.TableGuiConfiguration; -import org.olat.core.gui.components.table.TableMultiSelectEvent; -import org.olat.core.gui.components.velocity.VelocityContainer; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; -import org.olat.core.gui.control.generic.modal.DialogBoxController; -import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory; -import org.olat.core.util.Util; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryManager; -import org.olat.repository.RepositoryService; -import org.olat.repository.delete.service.RepositoryDeletionManager; -import org.olat.repository.ui.RepositoryEntryTypeColumnDescriptor; - -/** - * Controller for 'Ready-to-delete' tab. - * - * @author Christian Guretzki - */ -public class ReadyToDeleteController extends BasicController { - - private static final String ACTION_SINGLESELECT_CHOOSE = "ssc"; - private static final String ACTION_MULTISELECT_CHOOSE = "msc"; - - private VelocityContainer myContent; - private Panel readyToDeletePanel; - private TableController tableCtr; - private RepositoryEntryDeleteTableModel redtm; - private Link feedbackBackLink; - private List<RepositoryEntry> readyToDeleteRepositoryEntries; - private DialogBoxController deleteConfirmController; - - private final RepositoryService repositoryService; - - /** - * @param ureq - * @param wControl - * @param cancelbutton - */ - public ReadyToDeleteController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl, Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale())); - - repositoryService = CoreSpringFactory.getImpl(RepositoryService.class); - - setTranslator( Util.createPackageTranslator(ReadyToDeleteController.class, getLocale(), getTranslator()) ); - myContent = createVelocityContainer("panel"); - - readyToDeletePanel = new Panel("readyToDeletePanel"); - readyToDeletePanel.addListener(this); - myContent.put("panel", readyToDeletePanel); - - initializeTableController(ureq); - - putInitialPanel(myContent); - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.components.Component, - * org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Component source, Event event) { - if (source == feedbackBackLink) { - initializeTableController(ureq); - } - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Controller source, Event event) { - if (source == tableCtr) { - if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { - TableEvent te = (TableEvent) event; - if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) { - int rowid = te.getRowId(); - repositoryService.setLastUsageNowFor(redtm.getObject(rowid) ); - updateRepositoryEntryList(); - } - } else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) { - TableMultiSelectEvent tmse = (TableMultiSelectEvent) event; - if (tmse.getAction().equals(ACTION_MULTISELECT_CHOOSE)) { - handleDeleteRepositoryEntriesEvent(ureq, tmse); - } - } - } else if (source == deleteConfirmController) { - if (DialogBoxUIFactory.isOkEvent(event)) { - RepositoryDeletionManager.getInstance().deleteRepositoryEntries(ureq, getWindowControl(), readyToDeleteRepositoryEntries); - showInfo("readyToDelete.deleted.msg"); - } - updateRepositoryEntryList(); - } - } - - private void handleDeleteRepositoryEntriesEvent(UserRequest ureq, TableMultiSelectEvent tmse) { - if (redtm.getObjects(tmse.getSelection()).size() != 0) { - readyToDeleteRepositoryEntries = redtm.getObjects(tmse.getSelection()); - deleteConfirmController = activateOkCancelDialog(ureq, null, translate("readyToDelete.delete.confirm"), deleteConfirmController); - } else { - showWarning("nothing.selected.msg"); - } - } - - private void initializeTableController(UserRequest ureq) { - TableGuiConfiguration tableConfig = new TableGuiConfiguration(); - tableConfig.setTableEmptyMessage(translate("error.no.repository.found")); - tableConfig.setShowAllLinkEnabled(false); - - removeAsListenerAndDispose(tableCtr); - tableCtr = new TableController(tableConfig, ureq, getWindowControl(), getTranslator()); - listenTo(tableCtr); - - tableCtr.addColumnDescriptor(new RepositoryEntryTypeColumnDescriptor("table.header.typeimg", 0,null, ureq.getLocale(), ColumnDescriptor.ALIGNMENT_LEFT)); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.displayname", 1, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.author", 2, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.lastusage", 3, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.deleteEmail", 4, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new StaticColumnDescriptor(ACTION_SINGLESELECT_CHOOSE, "table.header.action", myContent - .getTranslator().translate("action.activate"))); - - tableCtr.addMultiSelectAction("action.ready.to.delete", ACTION_MULTISELECT_CHOOSE); - - updateRepositoryEntryList(); - tableCtr.setMultiSelect(true); - - VelocityContainer readyToDeleteContent = createVelocityContainer("readyToDelete"); - readyToDeleteContent.put("readyToDelete", tableCtr.getInitialComponent()); - readyToDeleteContent.contextPut("header", translate("ready.to.delete.header", - Integer.toString(RepositoryDeletionManager.getInstance().getDeleteEmailDuration()) )); - readyToDeletePanel.setContent(readyToDeleteContent); - - } - - protected void updateRepositoryEntryList() { - List<RepositoryEntry> l = RepositoryDeletionManager.getInstance().getReprositoryEntriesReadyToDelete(RepositoryDeletionManager.getInstance().getDeleteEmailDuration()); - redtm = new RepositoryEntryDeleteTableModel(l); - tableCtr.setTableDataModel(redtm); - } - - /** - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ - protected void doDispose() { - // - } -} diff --git a/src/main/java/org/olat/repository/delete/RepositoryEntryDeleteTableModel.java b/src/main/java/org/olat/repository/delete/RepositoryEntryDeleteTableModel.java deleted file mode 100644 index 0c1e840df0c6af551648108908a1e9f80bc6868d..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/RepositoryEntryDeleteTableModel.java +++ /dev/null @@ -1,82 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete; - -import java.util.Date; -import java.util.List; - -import org.olat.commons.lifecycle.LifeCycleManager; -import org.olat.core.gui.components.table.DefaultTableDataModel; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.delete.service.RepositoryDeletionManager; - -/** - * The repository-entry table data model for repository deletion. - * - * @author Christian Guretzki - */ -public class RepositoryEntryDeleteTableModel extends DefaultTableDataModel<RepositoryEntry> { - - - /** - * @param objects - */ - public RepositoryEntryDeleteTableModel(List<RepositoryEntry> objects) { - super(objects); - } - - /** - * @see org.olat.core.gui.components.table.TableDataModel#getValueAt(int, int) - */ - public final Object getValueAt(int row, int col) { - RepositoryEntry repositoryEntry = getObject(row); - switch (col) { - case 0 : - //TODO:cg check data garbage in db, each repositoryEntry should have a ores => cleanup-code to remove this entries - return repositoryEntry; - case 1 : - String titel= repositoryEntry.getDisplayname(); - return (titel == null ? "n/a" : titel); - case 2 : - String author= repositoryEntry.getInitialAuthor(); - return (author == null ? "n/a" : author); - case 3 : - Date lastUsage= repositoryEntry.getStatistics().getLastUsage(); - return (lastUsage == null ? "n/a" : lastUsage); - case 4 : - Date deleteEmail= LifeCycleManager.createInstanceFor(repositoryEntry).lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION).getLcTimestamp(); - return (deleteEmail == null ? "n/a" : deleteEmail); - default : - return "error"; - } - } - /** - * @see org.olat.core.gui.components.table.TableDataModel#getColumnCount() - */ - public int getColumnCount() { - return 5; - } -} diff --git a/src/main/java/org/olat/repository/delete/SelectionController.java b/src/main/java/org/olat/repository/delete/SelectionController.java deleted file mode 100644 index 2a89de8f2e4f4218d30235f744676c15524d6536..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/SelectionController.java +++ /dev/null @@ -1,333 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete; - -import java.util.List; - -import org.apache.velocity.VelocityContext; -import org.olat.core.CoreSpringFactory; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.form.flexible.FormItemContainer; -import org.olat.core.gui.components.form.flexible.elements.IntegerElement; -import org.olat.core.gui.components.form.flexible.impl.FormBasicController; -import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; -import org.olat.core.gui.components.link.Link; -import org.olat.core.gui.components.link.LinkFactory; -import org.olat.core.gui.components.panel.Panel; -import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.DefaultColumnDescriptor; -import org.olat.core.gui.components.table.StaticColumnDescriptor; -import org.olat.core.gui.components.table.Table; -import org.olat.core.gui.components.table.TableController; -import org.olat.core.gui.components.table.TableEvent; -import org.olat.core.gui.components.table.TableGuiConfiguration; -import org.olat.core.gui.components.table.TableMultiSelectEvent; -import org.olat.core.gui.components.velocity.VelocityContainer; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; -import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; -import org.olat.core.gui.translator.Translator; -import org.olat.core.id.Identity; -import org.olat.core.id.UserConstants; -import org.olat.core.util.Util; -import org.olat.core.util.mail.MailNotificationEditController; -import org.olat.core.util.mail.MailTemplate; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryManager; -import org.olat.repository.RepositoryService; -import org.olat.repository.delete.service.RepositoryDeletionManager; -import org.olat.repository.ui.RepositoryEntryTypeColumnDescriptor; - -/** - * Controller for tab 'Learning-resource selection' - * - * @author Christian Guretzki - */ -public class SelectionController extends BasicController { - - private static final String ACTION_SINGLESELECT_CHOOSE = "ssc"; - private static final String ACTION_MULTISELECT_CHOOSE = "msc"; - private static final String KEY_EMAIL_SUBJECT = "delete.announcement.email.subject"; - private static final String KEY_EMAIL_BODY = "delete.announcement.email.body"; - - private VelocityContainer myContent; - private Panel deleteSelectionPanel; - private SelectionForm selectionForm; - private TableController tableCtr; - private RepositoryEntryDeleteTableModel redtm; - //private PackageTranslator pT; - private VelocityContainer selectionListContent; - private Link editParameterLink; - private MailNotificationEditController deleteRepositoryMailCtr; - private List<RepositoryEntry> selectedRepositoryEntries; - private CloseableModalController cmc; - - private final RepositoryService repositoryService; - - /** - * @param ureq - * @param wControl - * @param cancelbutton - */ - public SelectionController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl); - - repositoryService = CoreSpringFactory.getImpl(RepositoryService.class); - Translator fallback = Util.createPackageTranslator(RepositoryManager.class, getLocale()); - setTranslator(Util.createPackageTranslator(SelectionController.class, getLocale(), fallback)); - - myContent = createVelocityContainer("panel"); - deleteSelectionPanel = new Panel("deleteSelectionPanel"); - deleteSelectionPanel.addListener(this); - myContent.put("panel", deleteSelectionPanel); - initializeTableController(ureq); - initializeContent(); - - putInitialPanel(myContent); - } - - private void initializeContent() { - updateRepositoryEntryList(); - selectionListContent = createVelocityContainer("selectionlist"); - selectionListContent.put("repositorylist", tableCtr.getInitialComponent() ); - selectionListContent.contextPut("header", translate("selection.delete.header", - new String[] { Integer.toString(RepositoryDeletionManager.getInstance().getLastUsageDuration()) })); - editParameterLink = LinkFactory.createButtonXSmall("button.editParameter", selectionListContent, this); - deleteSelectionPanel.setContent(selectionListContent); - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.components.Component, - * org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Component source, Event event) { - if (source == editParameterLink) { - - removeAsListenerAndDispose(selectionForm); - selectionForm = new SelectionForm(ureq, getWindowControl()); - listenTo (selectionForm); - - removeAsListenerAndDispose(cmc); - cmc = new CloseableModalController( - getWindowControl(), translate("close"), selectionForm.getInitialComponent() - ); - listenTo(cmc); - - cmc.activate(); - } - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Controller source, Event event) { - if (source == tableCtr) { - if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { - TableEvent te = (TableEvent) event; - if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) { - int rowid = te.getRowId(); - repositoryService.setLastUsageNowFor( redtm.getObject(rowid) ); - updateRepositoryEntryList(); - } - } else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) { - TableMultiSelectEvent tmse = (TableMultiSelectEvent) event; - if (tmse.getAction().equals(ACTION_MULTISELECT_CHOOSE)) { - handleEmailButtonEvent(ureq, tmse); - } - } - initializeContent(); - } else if (source == deleteRepositoryMailCtr) { - if (event == Event.DONE_EVENT) { - String result = RepositoryDeletionManager.getInstance().sendDeleteEmailTo(selectedRepositoryEntries, deleteRepositoryMailCtr.getMailTemplate(), - deleteRepositoryMailCtr.isTemplateChanged(), KEY_EMAIL_SUBJECT, KEY_EMAIL_BODY, ureq.getIdentity(), getTranslator()); - cmc.deactivate(); - if(deleteRepositoryMailCtr.getMailTemplate() != null) { - // when mailtemplate is null, user decides to send no email => no status message - if (result.length() > 0 ) { - showWarning("delete.email.announcement.warning.header", result); - } else { - showInfo("selection.feedback.msg"); - } - } - initializeContent(); - } else if (event == Event.CANCELLED_EVENT) { - cmc.deactivate(); - } else { - throw new RuntimeException("unknown event ::" + event.getCommand()); - } - } else if (source == selectionForm) { - if (event == Event.DONE_EVENT) { - RepositoryDeletionManager.getInstance().setLastUsageDuration(selectionForm.getLastUsageDuration()); - RepositoryDeletionManager.getInstance().setDeleteEmailDuration(selectionForm.getDeleteEmailDuration()); - initializeContent(); - } else if (event == Event.CANCELLED_EVENT) { - fireEvent(ureq, event); - } - cmc.deactivate(); - } - } - - private void handleEmailButtonEvent(UserRequest ureq, TableMultiSelectEvent tmse) { - if (redtm.getObjects(tmse.getSelection()).size() != 0) { - selectedRepositoryEntries = redtm.getObjects(tmse.getSelection()); - - MailTemplate deleteMailTemplate = createMailTemplate(translate(KEY_EMAIL_SUBJECT), translate(KEY_EMAIL_BODY)); - deleteMailTemplate.addToContext("lastloginduration", Integer.toString(RepositoryDeletionManager.getInstance().getLastUsageDuration() )); - deleteMailTemplate.addToContext("durationdeleteemail", Integer.toString(RepositoryDeletionManager.getInstance().getDeleteEmailDuration() )); - - removeAsListenerAndDispose(deleteRepositoryMailCtr); - deleteRepositoryMailCtr = new MailNotificationEditController(getWindowControl(), ureq, deleteMailTemplate, true, false, true); - listenTo(deleteRepositoryMailCtr); - - removeAsListenerAndDispose(cmc); - cmc = new CloseableModalController( - getWindowControl(), translate("close"), - deleteRepositoryMailCtr.getInitialComponent() - ); - listenTo(cmc); - - cmc.activate(); - } else { - showWarning("nothing.selected.msg"); - } - } - - private void initializeTableController(UserRequest ureq) { - TableGuiConfiguration tableConfig = new TableGuiConfiguration(); - tableConfig.setTableEmptyMessage(translate("error.no.repository.found")); - - removeAsListenerAndDispose(tableCtr); - tableCtr = new TableController(tableConfig, ureq, getWindowControl(), getTranslator()); - listenTo (tableCtr); - - tableCtr.addColumnDescriptor(new RepositoryEntryTypeColumnDescriptor("table.header.typeimg", 0,null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT)); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.displayname", 1, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.author", 2, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.lastusage", 3, null, ureq.getLocale())); - tableCtr.addMultiSelectAction("action.delete.selection", ACTION_MULTISELECT_CHOOSE); - tableCtr.addColumnDescriptor(new StaticColumnDescriptor(ACTION_SINGLESELECT_CHOOSE, "table.header.action", myContent - .getTranslator().translate("action.activate"))); - tableCtr.setMultiSelect(true); - } - - /** - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ - protected void doDispose() { - // - } - - public void updateRepositoryEntryList() { - int duration = RepositoryDeletionManager.getInstance().getLastUsageDuration(); - List<RepositoryEntry> l = RepositoryDeletionManager.getInstance().getDeletableReprositoryEntries(duration); - redtm = new RepositoryEntryDeleteTableModel(l); - tableCtr.setTableDataModel(redtm); - } - - /** - * Create default template which fill in context 'firstname' , 'lastname' and 'username'. - * @param subject - * @param body - * @return - */ - private MailTemplate createMailTemplate(String subject, String body) { - return new MailTemplate(subject, body, null) { - @Override - public void putVariablesInMailContext(VelocityContext context, Identity identity) { - context.put("firstname", identity.getUser().getProperty(UserConstants.FIRSTNAME, null)); - context.put("lastname", identity.getUser().getProperty(UserConstants.LASTNAME, null)); - context.put("username", identity.getName()); - } - }; - } - -} - - -class SelectionForm extends FormBasicController { - - private IntegerElement lastUsageDuration; - private IntegerElement emailDuration; - - /** - * @param name - * @param cancelbutton - * @param isAdmin if true, no field must be filled in at all, otherwise - * validation takes place - */ - public SelectionForm(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl); - initForm (ureq); - } - - public int getDeleteEmailDuration() { - return emailDuration.getIntValue(); - } - - public int getLastUsageDuration() { - return lastUsageDuration.getIntValue(); - } - - - - @Override - protected void formOK(UserRequest ureq) { - fireEvent (ureq, Event.DONE_EVENT); - - } - - protected void formCancelled (UserRequest ureq) { - fireEvent (ureq, Event.CANCELLED_EVENT); - } - - @Override - protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - lastUsageDuration = uifactory.addIntegerElement("lastUsageDuration", "edit.parameter.form.lastusage.duration", RepositoryDeletionManager.getInstance().getLastUsageDuration(), formLayout); - emailDuration = uifactory.addIntegerElement("emailDuration", "edit.parameter.form.email.duration", RepositoryDeletionManager.getInstance().getDeleteEmailDuration(), formLayout); - - lastUsageDuration.setMinValueCheck(1, null); - emailDuration.setMinValueCheck(1, null); - - lastUsageDuration.setDisplaySize(3); - emailDuration.setDisplaySize(3); - - FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonGroupLayout", getTranslator()); - formLayout.add(buttonGroupLayout); - - uifactory.addFormSubmitButton("submit", "edit.parameter.form.submit", buttonGroupLayout); - uifactory.addFormCancelButton("cancel", buttonGroupLayout, ureq, getWindowControl()); - } - - @Override - protected void doDispose() { - // - } -} \ No newline at end of file diff --git a/src/main/java/org/olat/repository/delete/StatusController.java b/src/main/java/org/olat/repository/delete/StatusController.java deleted file mode 100644 index 0052f4f7354808f21a699a60a2cb0551c91ea11e..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/StatusController.java +++ /dev/null @@ -1,156 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete; - -import java.util.List; - -import org.olat.core.CoreSpringFactory; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; -import org.olat.core.gui.components.table.ColumnDescriptor; -import org.olat.core.gui.components.table.DefaultColumnDescriptor; -import org.olat.core.gui.components.table.StaticColumnDescriptor; -import org.olat.core.gui.components.table.Table; -import org.olat.core.gui.components.table.TableController; -import org.olat.core.gui.components.table.TableEvent; -import org.olat.core.gui.components.table.TableGuiConfiguration; -import org.olat.core.gui.components.velocity.VelocityContainer; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; -import org.olat.core.gui.translator.Translator; -import org.olat.core.util.Util; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryManager; -import org.olat.repository.RepositoryService; -import org.olat.repository.delete.service.RepositoryDeletionManager; -import org.olat.repository.ui.RepositoryEntryTypeColumnDescriptor; - -/** - * Controller for tab 'Learning-resource selection' - * - * @author Christian Guretzki - */ -public class StatusController extends BasicController { - - private static final String ACTION_SINGLESELECT_CHOOSE = "ssc"; - - private VelocityContainer myContent; - private Panel repositoryDeleteStatusPanel; - private TableController tableCtr; - private RepositoryEntryDeleteTableModel redtm; - - private final RepositoryService repositoryService; - - /** - * @param ureq - * @param wControl - * @param cancelbutton - */ - public StatusController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl); - - repositoryService = CoreSpringFactory.getImpl(RepositoryService.class); - - Translator fallback = Util.createPackageTranslator(RepositoryManager.class, getLocale()); - setTranslator(Util.createPackageTranslator(StatusController.class, getLocale(), fallback)); - myContent = createVelocityContainer("deletestatus"); - - repositoryDeleteStatusPanel = new Panel("repositoryDeleteStatusPanel"); - repositoryDeleteStatusPanel.addListener(this); - myContent.put("repositoryDeleteStatusPanel", repositoryDeleteStatusPanel); - myContent.contextPut("header", translate("status.delete.email.header", - new String [] { Integer.toString(RepositoryDeletionManager.getInstance().getDeleteEmailDuration()) })); - initializeTableController(ureq); - - putInitialPanel (myContent); - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.components.Component, - * org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Component source, Event event) { - // - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, - * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Controller source, Event event) { - if (source == tableCtr) { - if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) { - TableEvent te = (TableEvent) event; - if (te.getActionId().equals(ACTION_SINGLESELECT_CHOOSE)) { - int rowid = te.getRowId(); - repositoryService.setLastUsageNowFor( redtm.getObject(rowid) ); - updateRepositoryEntryList(); - } - } - } - } - - private void initializeTableController(UserRequest ureq) { - TableGuiConfiguration tableConfig = new TableGuiConfiguration(); - tableConfig.setTableEmptyMessage(translate("error.no.repository.found")); - - removeAsListenerAndDispose(tableCtr); - tableCtr = new TableController(tableConfig, ureq, getWindowControl(), getTranslator()); - listenTo(tableCtr); - tableCtr.addColumnDescriptor(new RepositoryEntryTypeColumnDescriptor("table.header.typeimg", 0,null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT)); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.displayname", 1, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.author", 2, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.lastusage", 3, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.deleteEmail", 4, null, ureq.getLocale())); - tableCtr.addColumnDescriptor(new StaticColumnDescriptor(ACTION_SINGLESELECT_CHOOSE, "table.header.action", myContent - .getTranslator().translate("action.activate"))); - - updateRepositoryEntryList(); - tableCtr.setMultiSelect(false); - repositoryDeleteStatusPanel.setContent(tableCtr.getInitialComponent()); - } - - protected void updateRepositoryEntryList() { - int duration = RepositoryDeletionManager.getInstance().getDeleteEmailDuration(); - List<RepositoryEntry> l = RepositoryDeletionManager.getInstance().getReprositoryEntriesInDeletionProcess(duration); - redtm = new RepositoryEntryDeleteTableModel(l); - tableCtr.setTableDataModel(redtm); - } - - /** - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ - protected void doDispose() { - // - } - -} - - diff --git a/src/main/java/org/olat/repository/delete/TabbedPaneController.java b/src/main/java/org/olat/repository/delete/TabbedPaneController.java deleted file mode 100644 index d3a7e81f3eeaebb50f3b722b9e5f481de7b0651e..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/TabbedPaneController.java +++ /dev/null @@ -1,164 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete; - -import org.olat.core.CoreSpringFactory; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.panel.Panel; -import org.olat.core.gui.components.tabbedpane.TabbedPane; -import org.olat.core.gui.components.tabbedpane.TabbedPaneChangedEvent; -import org.olat.core.gui.components.velocity.VelocityContainer; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.ControllerEventListener; -import org.olat.core.gui.control.Event; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.control.controller.BasicController; -import org.olat.core.gui.control.generic.messages.MessageUIFactory; -import org.olat.core.id.OLATResourceable; -import org.olat.core.util.WebappHelper; -import org.olat.core.util.coordinate.CoordinatorManager; -import org.olat.core.util.coordinate.LockResult; -import org.olat.core.util.resource.OresHelper; -import org.olat.user.UserManager; - -/** - * Learning-resource deletion tabbed pane controller. - * - * @author Christian Guretzki - */ -public class TabbedPaneController extends BasicController implements ControllerEventListener { - // NLS support - - private static final String NLS_ERROR_NOACCESS_TO_USER = "error.noaccess.to.user"; - - private VelocityContainer myContent; - - // controllers used in tabbed pane - private TabbedPane repositoryDeleteTabP; - private SelectionController selectionCtr; - private StatusController deleteStatusCtr; - private ReadyToDeleteController readyToDeleteCtr; - - private LockResult lock; - - /** - * Constructor that creates a back - link as default - * @param ureq - * @param wControl - * @param identity - */ - public TabbedPaneController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl); - - if ( ureq.getUserSession().getRoles().isOLATAdmin() ) { - // Acquire lock for hole delete-group workflow - OLATResourceable lockResourceable = OresHelper.createOLATResourceableTypeWithoutCheck(this.getClass().getName()); - lock = CoordinatorManager.getInstance().getCoordinator().getLocker().acquireLock(lockResourceable, ureq.getIdentity(), "deleteGroup"); - if (!lock.isSuccess()) { - String fullName = CoreSpringFactory.getImpl(UserManager.class).getUserDisplayName(lock.getOwner()); - String text = getTranslator().translate("error.deleteworkflow.locked.by", new String[]{ fullName }); - Controller uiInfoMsgCtrl = MessageUIFactory.createInfoMessage(ureq, wControl, null, text); - listenTo(uiInfoMsgCtrl);//register to let dispose on dispose of this controller - putInitialPanel(uiInfoMsgCtrl.getInitialComponent()); - return; - } - - myContent = createVelocityContainer("deleteTabbedPane"); - initTabbedPane(ureq); - putInitialPanel(myContent); - } else { - String supportAddr = WebappHelper.getMailConfig("mailSupport"); - showWarning(getTranslator().translate(NLS_ERROR_NOACCESS_TO_USER, new String[]{supportAddr}), null); - putInitialPanel(new Panel("empty")); - } - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.components.Component, org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Component source, Event event) { - if (event.getCommand().equals(TabbedPaneChangedEvent.TAB_CHANGED)) { - selectionCtr.updateRepositoryEntryList(); - deleteStatusCtr.updateRepositoryEntryList(); - readyToDeleteCtr.updateRepositoryEntryList(); - } - } - - /** - * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) - */ - public void event(UserRequest ureq, Controller source, Event event) { - // - } - - - /** - * Initialize the tabbed pane according to the users rights and the system - * configuration - * @param identity - * @param ureq - */ - private void initTabbedPane(UserRequest ureq) { - repositoryDeleteTabP = new TabbedPane("repositoryDeleteTabP", ureq.getLocale()); - repositoryDeleteTabP.addListener(this); - - selectionCtr = new SelectionController(ureq, getWindowControl()); - listenTo(selectionCtr); - repositoryDeleteTabP.addTab(translate("delete.workflow.tab.start.process"), selectionCtr.getInitialComponent()); - - deleteStatusCtr = new StatusController(ureq, getWindowControl()); - listenTo(deleteStatusCtr); - repositoryDeleteTabP.addTab(translate("delete.workflow.tab.status.email"), deleteStatusCtr.getInitialComponent()); - - readyToDeleteCtr = new ReadyToDeleteController(ureq, getWindowControl()); - listenTo(readyToDeleteCtr); - repositoryDeleteTabP.addTab(translate("delete.workflow.tab.select.delete"), readyToDeleteCtr.getInitialComponent()); - - myContent.put("repositoryDeleteTabP", repositoryDeleteTabP); - } - - - /** - * - * @see org.olat.core.gui.control.DefaultController#doDispose(boolean) - */ - protected void doDispose() { - //childcontrollers are registered with listenTo(..) and are disposed by basiccontroller! - releaseLock(); - } - - /** - * Releases the lock for this page if set - */ - private void releaseLock() { - if (lock != null) { - CoordinatorManager.getInstance().getCoordinator().getLocker().releaseLock(lock); - lock = null; - } - } - -} \ No newline at end of file diff --git a/src/main/java/org/olat/repository/delete/_content/deleteTabbedPane.html b/src/main/java/org/olat/repository/delete/_content/deleteTabbedPane.html deleted file mode 100644 index 9c4434d6cc6ba468b8bf7cd5a90637d5aa2276f1..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_content/deleteTabbedPane.html +++ /dev/null @@ -1 +0,0 @@ -$r.render("repositoryDeleteTabP") \ No newline at end of file diff --git a/src/main/java/org/olat/repository/delete/_content/deletestatus.html b/src/main/java/org/olat/repository/delete/_content/deletestatus.html deleted file mode 100644 index 6a1d58773648645e85138652cc65b464a98ce06c..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_content/deletestatus.html +++ /dev/null @@ -1,6 +0,0 @@ -<p> - $header -</p> -<p> - $r.render("repositoryDeleteStatusPanel") -</p> diff --git a/src/main/java/org/olat/repository/delete/_content/panel.html b/src/main/java/org/olat/repository/delete/_content/panel.html deleted file mode 100644 index 7bc773979dac6cd15797efaa596368fc0c9285c1..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_content/panel.html +++ /dev/null @@ -1 +0,0 @@ -$r.render("panel") diff --git a/src/main/java/org/olat/repository/delete/_content/readyToDelete.html b/src/main/java/org/olat/repository/delete/_content/readyToDelete.html deleted file mode 100644 index 360f5c13f749e1f98135b8d1578ab2c66fdf32e2..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_content/readyToDelete.html +++ /dev/null @@ -1,6 +0,0 @@ -<p> - $header -</p> -<p> - $r.render("readyToDelete") -</p> \ No newline at end of file diff --git a/src/main/java/org/olat/repository/delete/_content/selectionlist.html b/src/main/java/org/olat/repository/delete/_content/selectionlist.html deleted file mode 100644 index c5ef0dcd8c5346ef02cf51b316d09e4e6e19586a..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_content/selectionlist.html +++ /dev/null @@ -1,9 +0,0 @@ -<p> - $header -</p> -<p> - $r.render("button.editParameter") -</p> -<p> - $r.render("repositorylist") -</p> diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ar.properties deleted file mode 100644 index cdc7dcb84dbe311ca96e162ec98b414456e6d47a..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ar.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Sun Feb 21 11:34:03 CET 2010 -action.activate=\u062A\u0646\u0634\u064A\u0637 -action.delete.selection=\u0625\u0631\u0633\u0627\u0644 \u0628\u0631\u064A\u062F \u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0625\u0644\u0649 \u0627\u0644\u0645\u0624\u0644\u0641\u064A\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u064A\u0646 \u0644\u0625\u0639\u0644\u0627\u0645\u0647\u0645 \u0628\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631\u0647\u0645 \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u064A\u0629. -action.ready.to.delete=\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 -button.editParameter=\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0645\u0648\u0627\u0639\u064A\u062F -delete.announcement.email.body=\u064A\u0648\u0645\u060C \u0648\u0644\u0625\u064A\u0642\u0627\u0641 \u0647\u0630\u0627 \u0642\u0645 \u0641\u0642\u0637 \u0628\u062A\u0634\u063A\u064A\u0644 \u0647\u0630\u0647 $durationdeleteemail \u0634\u0647\u0631\u060C \u0648\u0628\u0627\u0644\u062A\u0627\u0644\u0649 \u0633\u064A\u062A\u0645 \u062D\u0630\u0641\u0647\u0627 \u0641\u0649 $lastloginduration \u0644\u0645 \u064A\u062A\u0645 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u062A\u0627\u0644\u064A\u0629 \u0645\u0646\u0630\r\n\u0627\u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u064A\u0629 \u0627\u0644\u0630\u0649 \u062A\u0631\u064A\u062F \u0627\u0633\u062A\u0645\u0631\u0627\u0631\u0647.\r\n\r\n\:\u0647\u0630\u0627 \u0628\u0634\u0623\u0646 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u062A\u0627\u0644\u064A\u0629\r\n\r\n$repositoryList -delete.announcement.email.subject=\u0627\u0646\u062A\u0628\u0627\u0647\: \u0633\u064A\u062A\u0645 \u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0641\u0649 \u0623\u0648\u0644\u0627\u062A -delete.email.announcement.warning.header=<br> \:\u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0644\u0644\u0645\u0624\u0644\u0641\u064A\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u064A\u0646 \u0644\u0625\u0639\u0644\u0627\u0645\u0647\u0645 \u0628\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u062A\u0627\u0644\u064A\u0629 -delete.workflow.tab.select.delete=\u062C\u0627\u0647\u0632 \u0644\u0644\u062D\u0630\u0641 -delete.workflow.tab.start.process=\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u063A\u064A\u0631 \u0646\u0634\u0637\u0629 -delete.workflow.tab.status.email=\u062A\u0645 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 -edit.parameter.form.email.duration=\u0644\u0645 \u064A\u062C\u064A\u0628 \u0627\u0644\u0645\u0624\u0644\u0641\u064A\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u064A\u0646 \u0639\u0644\u0649 \u0628\u0631\u064A\u062F\u0643 \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0641\u0649 \u063A\u0636\u0648\u0646\u061F (\u064A\u0648\u0645) -edit.parameter.form.lastusage.duration=\u0645\u0635\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u063A\u064A\u0631 \u0646\u0634\u0637 \u0645\u0646\u0630\u061F (\u0634\u0647\u0631) -edit.parameter.form.submit=\u062D\u0641\u0638 -edit.parameter.header=\u062A\u063A\u064A\u064A\u0631 \u0645\u0648\u0627\u0639\u064A\u062F \u0639\u0645\u0644\u064A\u0629 \u0627\u0644\u062D\u0630\u0641 -email.error.address=\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 {1} \u0644\u0644\u0645\u0633\u062A\u062E\u062F\u0645 {0} \u063A\u064A\u0631 \u0635\u062D\u064A\u062D. -email.error.send.failed=.{0} \u0644\u0627 \u064A\u0645\u0643\u0646 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 {1} \u0644\u0644\u0645\u0633\u062A\u062E\u062F\u0645 -error.deleteworkflow.locked.by=\u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0644\u0623\u0646 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 {0} \u064A\u0642\u0648\u0645 \u0627\u0644\u0622\u0646 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645\u0647\u0645\u060C \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0641\u0649 \u0648\u0642\u062A \u0644\u0627\u062D\u0642. -error.no.repository.found=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u0645\u0637\u0627\u0628\u0642\u0629. -nothing.selected.msg=\u0644\u0645 \u064A\u062A\u0645 \u062A\u062D\u062F\u064A\u062F \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645. -ready.to.delete.header=\u064A\u0645\u0643\u0646\u0643 \u0645\u0646\u0639 \u062D\u0630\u0641 <i>\u062A\u0646\u0634\u064A\u0637</i> \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u064A\u0645 \u0628\u0627\u0644\u0623\u0633\u0641\u0644 \u062C\u0627\u0647\u0632\u0629 \u0644\u0644\u062D\u0630\u0641\u060C \u0641\u0627\u0644\u0641\u062A\u0631\u0629 {0} \u064A\u0648\u0645 \u0645\u0646\u0630 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0642\u062F \u0627\u0646\u062A\u0647\u062A \u0628\u062F\u0648\u0646 \u0623\u0649 \u0631\u062F \u0641\u0639\u0644\u060C \u0648\u0645\u0646 \u062E\u0644\u0627\u0644 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649\r\n\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645. -readyToDelete.delete.confirm=\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0633\u064A\u062A\u0645 \u062D\u0641\u0638\u0647\u0627 \u0642\u0628\u0644 \u0627\u0644\u062D\u0630\u0641. -readyToDelete.deleted.msg=\u062A\u0645 \u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645. -selection.delete.header=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0628\u0627\u0644\u0623\u0633\u0641\u0644 \u0645\u0646\u0630 {0} \u0634\u0647\u0631\u060C \u0648\u064A\u0645\u0643\u0646\u0643 \u0625\u062E\u0637\u0627\u0631 \u0627\u0644\u0645\u0624\u0644\u0641\u064A\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u064A\u0646 \u0628\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649\u060C \u0648\u0645\u0646 \u062E\u0644\u0627\u0644 \u0627\u0644\u0646\u0642\u0631 \r\n\u064A\u0645\u0643\u0646\u0643 \u0645\u0646\u0639 \u0647\u0630\u0627 \u0627\u0644\u062D\u0630\u0641. <i>\u062A\u0646\u0634\u064A\u0637</i> \u0639\u0644\u0649 -selection.feedback.msg=\u062A\u0645 \u0625\u0631\u0633\u0627\u0644 \u0628\u0631\u064A\u062F \u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0625\u0644\u0649 \u0627\u0644\u0645\u0624\u0644\u0641\u064A\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u064A\u0646 \u0644\u0625\u0639\u0644\u0627\u0645\u0647\u0645 \u0628\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631\u0647\u0645 \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u064A\u0629. -status.delete.email.header=\u0627\u0644\u0645\u0624\u0644\u0641\u0648\u0646 \u0627\u0644\u0645\u0633\u0627\u0639\u062F\u0648\u0646 \u0644\u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u0645 \u0627\u0644\u062A\u0649 \u0630\u0643\u0631\u062A \u0628\u0627\u0644\u0623\u0633\u0641\u0644 \u062A\u0645 \u0625\u062E\u0637\u0627\u0631\u0647\u0645 \u0628\u062D\u0630\u0641 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u060C \u0648\u0627\u0644\u0641\u062A\u0631\u0629 {0} \u064A\u0648\u0645 \u0644\u0644\u0642\u064A\u0627\u0645 (\u0627\u0644\u0625\u062C\u0627\u0628\u0629 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 \u0623\u0648 \u062A\u0634\u063A\u064A\u0644 \u0645\u0635\u0627\u062F\u0631\u0647\u0645 \u0627\u0644\u062A\u0639\u0644\u064A\u0645\u064A\u0629) \u0628\u0631\u062F \u0627\u0644\u0641\u0639\u0644 \u0642\u062F \u0627\u0646\u062A\u0647\u062A. -table.header.action=\u062D\u062F\u062B -table.header.deleteEmail=\u062D\u0630\u0641 \u0627\u0644\u0628\u0631\u064A\u062F\u0627\u0644\u0627\u0644\u0643\u062A\u0631\u0648\u0646\u0649 diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_bg.properties deleted file mode 100644 index c5e9061a7cdce5602d8e24078f652f239d92a22a..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_bg.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Wed Jun 03 20:15:22 CEST 2009 -action.activate=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u0439\u0442\u0435 -action.delete.selection=\u0418\u0437\u043F\u0440\u0430\u0442\u0435\u0442\u0435 \u0438-\u043C\u0435\u0439\u043B \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0432\u0430\u0449 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u0437\u0430 \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u0437\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. -action.ready.to.delete=\u0418\u0437\u0442\u0440\u0438\u0439\u0442\u0435 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 -button.editParameter=\u041F\u0440\u043E\u043C\u0435\u043D\u0435\u0442\u0435 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0442\u0430 -delete.announcement.email.body=\u0421\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u043D\u0435 \u0441\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u043E\u0442 $lastloginduration \u043C\u0435\u0441\u0435\u0446\u0430 \u0438 \u0441\u044A\u043E\u0442\u0432\u0435\u0442\u043D\u043E \u0449\u0435 \u0431\u044A\u0434\u0430\u0442 \u0438\u0437\u0442\u0440\u0438\u0442\u0438 \u0441\u043B\u0435\u0434 $durationdeleteemail \u0434\u0435\u043D\u0430. \u0417\u0430 \u0434\u0430 \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u0442\u043E\u0432\u0430, \u043E\u0442\u0432\u043E\u0440\u0435\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0430, \u043E\u0442 \u043A\u043E\u0439\u0442\u043E \u0432\u0441\u0435 \u043E\u0449\u0435 \u0441\u0435 \u043D\u0443\u0436\u0434\u0430\u0435\u0442\u0435.\r\n\r\n\u0422\u043E\u0432\u0430 \u0441\u0435 \u043E\u0442\u043D\u0430\u0441\u044F \u0437\u0430 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438\:\r\n\r\n$repositoryList -delete.announcement.email.subject=\u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435\: \u0449\u0435 \u0431\u044A\u0434\u0430\u0442 \u0438\u0437\u0442\u0440\u0438\u0442\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0430 -delete.email.announcement.warning.header=\u0418-\u043C\u0430\u0439\u043B \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0432\u0430\u0449 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u0437\u0430 \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D \u043D\u0430 \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435\: <br> -delete.workflow.tab.select.delete=\u0413\u043E\u0442\u043E\u0432\u0438 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 -delete.workflow.tab.start.process=\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 -delete.workflow.tab.status.email=\u0418-\u043C\u0435\u0439\u043B\u044A\u0442 \u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D -edit.parameter.form.email.duration=\u0421\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u043D\u0435 \u043E\u0442\u0433\u043E\u0432\u0430\u0440\u044F\u0442 \u043D\u0430 \u0432\u0430\u0448\u0438\u044F \u0438-\u043C\u0435\u0439\u043B \u0432 \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0435\u043D\u0438\u0435 \u043D\u0430? (\u0434\u043D\u0438) -edit.parameter.form.lastusage.duration=\u0423\u0447\u0435\u0431\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0438 \u043E\u0442? (\u043C\u0435\u0441\u0435\u0446\u0438) -edit.parameter.form.submit=\u0417\u0430\u043F\u0430\u0437\u0435\u0442\u0435 -edit.parameter.header=\u041F\u0440\u043E\u043C\u0435\u043D\u0435\u0442\u0435 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0442\u0430 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 -email.error.address=\u0418-\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441\u044A\u0442 {1} \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B {0} \u0435 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D. -email.error.send.failed=\u0422\u043E\u0437\u0438 \u0438-\u043C\u0435\u0439\u043B \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u0438\u0437\u043F\u0440\u0430\u0442\u0435\u043D \u043D\u0430 \u0430\u0434\u0440\u0435\u0441 {1} \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B {0} . -error.deleteworkflow.locked.by=\u041D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0442\u0435\u0437\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438, \u0437\u0430\u0449\u043E\u0442\u043E \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B {0} \u0433\u0438 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u0432 \u043C\u043E\u043C\u0435\u043D\u0442\u0430. \u041C\u043E\u043B\u044F, \u043E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u043E\u0442\u043D\u043E\u0432\u043E \u043F\u043E-\u043A\u044A\u0441\u043D\u043E. -error.no.repository.found=\u041D\u0435 \u0441\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438, \u043A\u043E\u0438\u0442\u043E \u0434\u0430 \u043E\u0442\u0433\u043E\u0432\u0430\u0440\u044F\u0442 \u043D\u0430 \u043F\u043E\u0441\u043E\u0447\u0435\u043D\u0438\u044F \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439. -nothing.selected.msg=\u041D\u0435 \u0441\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. -ready.to.delete.header=\u0423\u0447\u0435\u0431\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0441\u0430 \u0433\u043E\u0442\u043E\u0432\u0438 \u0437\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435. \u041F\u0435\u0440\u0438\u043E\u0434\u044A\u0442 \u043E\u0442 {0} \u0434\u043D\u0438 \u043E\u0442 \u0438\u0437\u043F\u0440\u0430\u0449\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0438-\u043C\u0435\u0439\u043B \u0438\u0437\u0442\u0435\u0447\u0435 \u0431\u0435\u0437 \u0434\u0430 \u0438\u043C\u0430 \u043E\u0442\u0432\u0435\u0442\u043D\u0430 \u0440\u0435\u0430\u043A\u0446\u0438\u044F. \u0410\u043A\u043E \u043A\u043B\u0438\u043A\u043D\u0435\u0442\u0435 \u043D\u0430 <i>\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u0439\u0442\u0435</i> \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. -readyToDelete.delete.confirm=\u0418\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0449\u0435 \u0431\u044A\u0434\u0430\u0442 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u0438 \u043F\u0440\u0435\u0434\u0438 \u0442\u044F\u0445\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435. -readyToDelete.deleted.msg=\u0423\u0447\u0435\u0431\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0441\u0430 \u0438\u0437\u0442\u0440\u0438\u0442\u0438. -selection.delete.header=\u0423\u0447\u0435\u0431\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u043F\u043E-\u0434\u043E\u043B\u0443 \u043D\u0435 \u0441\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u043E\u0442 {0} \u043C\u0435\u0441\u0435\u0446\u0430. \u041C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u0443\u0432\u0435\u0434\u043E\u043C\u0438\u0442\u0435 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u043D\u0430 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0447\u0440\u0435\u0437 \u0438-\u043C\u0435\u0439\u043B \u0437\u0430 \u0442\u044F\u0445\u043D\u043E\u0442\u043E \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435. \u0410\u043A\u043E \u043A\u043B\u0438\u043A\u043D\u0435\u0442\u0435 \u043D\u0430 <i>\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u0430\u0439\u0442\u0435</i> \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u0442\u044F\u0445\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435. -selection.feedback.msg=\u0418\u0437\u043F\u0440\u0430\u0442\u0435\u043D \u0435 \u0438-\u043C\u0435\u0439\u043B, \u043A\u043E\u0439\u0442\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0432\u0430 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u043D\u0430 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0437\u0430 \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u0445\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. -status.delete.email.header=\u0421\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u0438\u0446\u0438\u0442\u0435 \u043D\u0430 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 \u0441\u043F\u043E\u043C\u0435\u043D\u0430\u0442\u0438 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0441\u0430 \u0443\u0432\u0435\u0434\u043E\u043C\u0435\u043D\u0438 \u0447\u0440\u0435\u0437 \u0438-\u043C\u0430\u0439\u043B \u0437\u0430 \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u0435\u0445\u043D\u0438\u0442\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. \u041F\u0435\u0440\u0438\u043E\u0434\u044A\u0442 \u043E\u0442 {0} \u0434\u043D\u0438 \u0437\u0430 \u043E\u0442\u0432\u0435\u0442\u043D\u0430 \u0440\u0435\u0430\u043A\u0446\u0438\u044F (\u043E\u0442\u0433\u043E\u0432\u043E\u0440 \u0447\u0440\u0435\u0437 \u0439-\u043C\u0435\u0439\u043B \u0438\u043B\u0438 \u043E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u043D\u0430 \u0442\u0435\u0445\u043D\u0438\u0442\u0435 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438) \u043D\u0435 \u0435 \u0438\u0437\u0442\u0435\u043A\u044A\u043B \u0432\u0441\u0435 \u043E\u0449\u0435. -table.header.action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 -table.header.deleteEmail=\u0418-\u043C\u0435\u0439\u043B \u0437\u0430 \u043F\u0435\u0440\u043C\u0430\u043D\u0435\u043D\u0442\u043D\u043E\u0442\u043E \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0443\u0447\u0435\u0431\u043D\u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438 diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_cs.properties deleted file mode 100644 index cd22efa64226b6f2bfdc6abb3662cf1a7e2f32c2..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_cs.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:14 CET 2009 -action.activate=Aktivace -action.delete.selection=Odeslat e-mail o hroz\u00EDc\u00EDm smaz\u00E1n\u00ED materi\u00E1l\u016F. -action.ready.to.delete=Delete selected learning resources -button.editParameter=Upravit podm\u00EDnky -delete.announcement.email.body=The following learning resources have not been used since $lastloginduration months and will therefore be deleted in $durationdeleteemail days. In order to prevent this just start the resource you still need or respond to $responseTo.\n\rThis concerns the learning resources\:\n\r$repositoryList -delete.announcement.email.subject=Attention\: learning resources are about to be deleted in OLAT -delete.email.announcement.warning.header=An e-mail notifying owners about the imminent deletion of resources could not be sent to the following\: <br> -delete.workflow.tab.select.delete=P\u0159ipraveno ke smaz\u00E1n\u00ED -delete.workflow.tab.start.process=Neaktivn\u00ED studijn\u00ED materi\u00E1ly -delete.workflow.tab.status.email=Odeslat e-mail -edit.parameter.form.email.duration=Vlastn\u00EDk nereagoval na e-mail? (dny) -edit.parameter.form.lastusage.duration=Studijn\u00ED materi\u00E1l je neaktivn\u00ED? (m\u011Bs\u00EDce) -edit.parameter.form.submit=Ulo\u017Eit -edit.parameter.header=Upravit podm\u00EDnky maz\u00E1n\u00ED -email.error.address=The e-mail address {1} of user {0} is not valid. -email.error.send.failed=This mail could not be sent to the address {1} of user {0} . -error.deleteworkflow.locked.by=Tyto studijn\u00ED materi\u00E1ly nem\u016F\u017Eete smazat, proto\u017Ee u\u017Eivatel {0} s nimi pr\u00E1v\u011B pracuje. Zkuste to pozd\u011Bji. -error.no.repository.found=\u017D\u00E1dn\u00E9 odpov\u00EDdaj\u00EDc\u00ED materi\u00E1ly nenalezeny. -nothing.selected.msg=No learning resources selected. -ready.to.delete.header=The learning resources below are ready to be deleted. The period of {0} days since sending an e-mail has expired without any reaction. By clicking <i>Activate</i> you can prevent the deletion of learning resources. -readyToDelete.delete.confirm=The selected learning resources will be archived before their deletion. -readyToDelete.deleted.msg=Learning resources deleted. -selection.delete.header=N\u00E1sleduj\u00EDc\u00ED studijn\u00ED materi\u00E1ly nebyly pou\u017E\u00EDv\u00E1ny po {0} m\u011Bs\u00EDc\u016F. P\u0159es e-mail m\u016F\u017Eete ozn\u00E1mit vlastn\u00EDk\u016Fm hroz\u00EDc\u00ED smaz\u00E1n\u00ED materi\u00E1l\u016F. Kliknut\u00EDm na <i>Aktivovat</i> m\u016F\u017Eete zabr\u00E1nit smaz\u00E1n\u00ED. -selection.feedback.msg=An e-mail was sent to the owners of learning resources notifying them about the imminent deletion of their resources. -status.delete.email.header=The owners of learning resources mentioned below have been notified via e-mail about the imminent deletion of their resources. The period of {0} days for a reaction (answer via e-mail or start of their learning resource) has not yet expired. -table.header.action=Akce -table.header.deleteEmail=E-mail on the imminent deletion of learning resources diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_de.properties deleted file mode 100644 index 4e19e0e525644c19b9d744b8e3262c44f69b98f3..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_de.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:04 CET 2009 -action.activate=Aktivieren -action.delete.selection=E-Mail mit L\u00F6schank\u00FCndigung an Besitzer senden -action.ready.to.delete=Selektierte Lernressourcen l\u00F6schen -button.editParameter=Fristen \u00E4ndern -delete.announcement.email.body=Die folgenden Lernressourcen sind seit $lastloginduration Monaten nicht mehr benutzt worden und werden daher in $durationdeleteemail Tagen gel\u00F6scht. Um dies zu verhindern, m\u00FCssen Sie die von Ihnen ben\u00F6tigte Lernressource starten.\n\rDies betrifft die Lernressourcen\:\n\r$repositoryList -delete.announcement.email.subject=Achtung\: Lernressourcen werden in OLAT gel\u00F6scht -delete.email.announcement.warning.header=Bei den folgenden Besitzern konnte die E-Mail mit der L\u00F6schank\u00FCndigung nicht verschickt werden \: <br> {0} -delete.workflow.tab.select.delete=Bereit zum L\u00F6schen -delete.workflow.tab.start.process=Inaktive Lernressourcen -delete.workflow.tab.status.email=E-Mail versendet -edit.parameter.form.email.duration=Besitzer reagieren nicht auf E-Mail innerhalb? (Tage) -edit.parameter.form.lastusage.duration=Lernressource ist inaktiv seit? (Monate) -edit.parameter.form.submit=Speichern -edit.parameter.header=Fristen im L\u00F6schprozess \u00E4ndern -email.error.address=Die E-Mail-Adresse {1} des Benutzers {0} ist nicht g\u00FCltig. -email.error.send.failed=Das Mail konnte nicht an die Adresse {1} des Benutzers {0} gesendet werden. -error.deleteworkflow.locked.by=Sie k\u00F6nnen zurzeit keine Lernressourcen l\u00F6schen, da der Benutzer {0} dies gerade ausf\u00FChrt. Versuchen Sie es sp\u00E4ter noch einmal. -error.no.repository.found=Es wurden keine entsprechenden Lernressourcen gefunden. -nothing.selected.msg=Es wurde keine Lernressource ausgew\u00E4hlt. -ready.to.delete.header=Untenstehende Lernressourcen sind bereit zum L\u00F6schen. Die Zeit von {0} Tagen seit Versand der E-Mail ist ohne Reaktion verstrichen. Mit <i>Aktivieren</i> verhindern Sie das L\u00F6schen der Lernressource. -readyToDelete.delete.confirm=Die ausgew\u00E4hlten Lernressourcen werden zuerst archiviert und anschliessend gel\u00F6scht. -readyToDelete.deleted.msg=Die Lernressourcen wurden gel\u00F6scht. -selection.delete.header=Untenstehende Lernressourcen sind seit {0} Monaten nicht mehr in Gebrauch. Via E-Mail informieren Sie die Besitzer der ausgew\u00E4hlten Lernressourcen \u00FCber das bevorstehende L\u00F6schen. Mit <i>Aktivieren</i> verhindern Sie das L\u00F6schen der Lernressource. -selection.feedback.msg=Den Besitzern der Lernressourcen wurde eine E-Mail mit der L\u00F6schank\u00FCndigung zugestellt. -status.delete.email.header=Die Besitzer der untenstehenden Lernressourcen sind per E-Mail \u00FCber das bevorstehende L\u00F6schen informiert worden. Die Zeit von {0} Tagen f\u00FCr eine Reaktion (Antwort auf E-Mail oder Start der Lernressource) ist noch nicht abgelaufen. -table.header.action=Aktion -table.header.deleteEmail=L\u00F6sch-E-Mail diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_el.properties deleted file mode 100644 index 4a1d53f452dd7ff9dc3afe4d7d7a4a2b777cfb0f..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_el.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:16 CET 2009 -action.activate=\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 -action.delete.selection=\u0391\u03C0\u03BF\u03C3\u03C4\u03BF\u03BB\u03AE e-mail \u03C0\u03BF\u03C5 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF \u03C4\u03BF\u03C5\u03C2 \u03BA\u03B1\u03C4\u03CC\u03C7\u03BF\u03C5\u03C2 \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03B5\u03C0\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03B7 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u03C4\u03C9\u03BD \u03C0\u03B7\u03B3\u03CE\u03BD \u03C4\u03BF\u03C5\u03C2. -action.ready.to.delete=Delete selected learning resources -button.editParameter=\u03A4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03CC\u03C1\u03C9\u03BD -delete.announcement.email.body=\u039F\u03B9 \u03B1\u03BA\u03CC\u03BB\u03BF\u03C5\u03B8\u03B5\u03C2 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B4\u03B5\u03BD \u03AD\u03C7\u03BF\u03C5\u03BD \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B7\u03B8\u03B5\u03AF \u03B5\u03B4\u03CE \u03BA\u03B1\u03B9 $lastloginduration \u03BC\u03AE\u03BD\u03B5\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03C5\u03BD\u03B5\u03C0\u03CE\u03C2 \u03B8\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03BF\u03CD\u03BD \u03C3\u03B5 $durationdeleteemail \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2. \u0393\u03B9\u03B1 \u03BD\u03B1 \u03C4\u03BF \u03B1\u03C0\u03BF\u03C6\u03CD\u03B3\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03CC, \u03B5\u03BA\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03C0\u03B7\u03B3\u03AE \u03C0\u03BF\u03C5 \u03C7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C3\u03C4\u03B5 \u03AE \u03B1\u03C0\u03B1\u03BD\u03C4\u03AE\u03C3\u03C4\u03B5 \u03C3\u03C4\u03BF $responseTo.\n\r\u0391\u03C5\u03C4\u03CC \u03B1\u03C6\u03BF\u03C1\u03AC \u03C4\u03B9\u03C2 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2\:\n\r$repositoryList -delete.announcement.email.subject=\u03A0\u03C1\u03BF\u03C3\u03BF\u03C7\u03AE\: \u03BF\u03B9 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03C4\u03BF\u03B9\u03BC\u03B5\u03C2 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03BF\u03CD\u03BD \u03B1\u03C0\u03CC \u03C4\u03BF OLAT -delete.email.announcement.warning.header=An e-mail notifying owners about the imminent deletion of resources could not be sent to the following\: <br> -delete.workflow.tab.select.delete=\u0388\u03C4\u03BF\u03B9\u03BC\u03BF \u03B3\u03B9\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE -delete.workflow.tab.start.process=\u0391\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03AD\u03C2 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 -delete.workflow.tab.status.email=\u03A4\u03BF E-mail \u03B5\u03C3\u03C4\u03AC\u03BB\u03B7 -edit.parameter.form.email.duration=\u039F\u03B9 \u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 \u03B4\u03B5\u03BD \u03B1\u03C0\u03B1\u03BD\u03C4\u03BF\u03CD\u03BD \u03C3\u03C4\u03BF e-mail \u03C3\u03B1\u03C2 \u03BC\u03AD\u03C3\u03B1 \u03C3\u03B5; (\u03B7\u03BC\u03AD\u03C1\u03B5\u03C2) -edit.parameter.form.lastusage.duration=\u0397 \u03C0\u03B7\u03B3\u03AE \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03AE \u03B5\u03B4\u03CE \u03BA\u03B1\u03B9; (\u03BC\u03AE\u03BD\u03B5\u03C2) -edit.parameter.form.submit=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 -edit.parameter.header=\u03A4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03AF\u03C3\u03B7 \u03CC\u03C1\u03C9\u03BD \u03BC\u03AD\u03C3\u03B1 \u03C3\u03C4\u03B7 \u03B4\u03B9\u03B1\u03B4\u03B9\u03BA\u03B1\u03C3\u03AF\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\u03C2 -email.error.address=The e-mail address {1} of user {0} is not valid. -email.error.send.failed=This mail could not be sent to the address {1} of user {0} . -error.deleteworkflow.locked.by=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03AD\u03C2 \u03C4\u03B9\u03C2 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B3\u03B9\u03B1\u03C4\u03AF \u03BF \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 {0} \u03C4\u03B9\u03C2 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7 \u03C3\u03C4\u03B9\u03B3\u03BC\u03AE. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03BE\u03B1\u03BD\u03B1\u03C0\u03C1\u03BF\u03C3\u03C0\u03B1\u03B8\u03AE\u03C3\u03C4\u03B5 \u03B1\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1. -error.no.repository.found=\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03B1\u03BD\u03C4\u03AF\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03C2 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2. -nothing.selected.msg=No learning resources selected. -ready.to.delete.header=The learning resources below are ready to be deleted. The period of {0} days since sending an e-mail has expired without any reaction. By clicking <i>Activate</i> you can prevent the deletion of learning resources. -readyToDelete.delete.confirm=The selected learning resources will be archived before their deletion. -readyToDelete.deleted.msg=Learning resources deleted. -selection.delete.header=\u039F\u03B9 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03C0\u03B7\u03B3\u03AD\u03C2 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B4\u03B5\u03BD \u03AD\u03C7\u03BF\u03C5\u03BD \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B7\u03B8\u03B5\u03AF \u03B5\u03B4\u03CE \u03BA\u03B1\u03B9 {0} \u03BC\u03AE\u03BD\u03B5\u03C2. \u039C\u03AD\u03C3\u03C9 e-mail \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF\u03C5\u03C2 \u03BA\u03B1\u03C4\u03CC\u03C7\u03BF\u03C5\u03C2 \u03C4\u03C9\u03BD \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03C9\u03BD \u03C0\u03B7\u03B3\u03CE\u03BD \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2 \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03B5\u03C0\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03B7 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u03C4\u03C9\u03BD \u03C0\u03B7\u03B3\u03CE\u03BD \u03C4\u03BF\u03C5\u03C2. \u039A\u03AC\u03BD\u03BF\u03BD\u03C4\u03B1\u03C2 \u03BA\u03BB\u03B9\u03BA \u03C3\u03C4\u03B7\u03BD <i>\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7</i> \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03C6\u03CD\u03B3\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03B4\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE. -selection.feedback.msg=An e-mail was sent to the owners of learning resources notifying them about the imminent deletion of their resources. -status.delete.email.header=The owners of learning resources mentioned below have been notified via e-mail about the imminent deletion of their resources. The period of {0} days for a reaction (answer via e-mail or start of their learning resource) has not yet expired. -table.header.action=\u0395\u03BD\u03AD\u03C1\u03B3\u03B5\u03B9\u03B1 -table.header.deleteEmail=E-mail on the imminent deletion of learning resources diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_en.properties deleted file mode 100644 index ee5a8c51ae12886d7d0dfa1cab3889656ad15c78..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_en.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Fri Jan 21 19:37:37 CET 2011 -action.activate=Activate -action.delete.selection=Send e-mail notifying owners about the imminent deletion of their resources. -action.ready.to.delete=Delete selected learning resources -button.editParameter=Modify terms -delete.announcement.email.body=The following learning resources have not been used since $lastloginduration months and will therefore be deleted in $durationdeleteemail days. In order to prevent this just start those resources you still need.\r\n\r\nThis concerns the following learning resources\:\r\n\r\n$repositoryList -delete.announcement.email.subject=Attention\: learning resources are about to be deleted in OLAT -delete.email.announcement.warning.header=An e-mail notifying owners about the imminent deletion of resources could not be sent to the following\: <br> {0} -delete.workflow.tab.select.delete=Ready to delete -delete.workflow.tab.start.process=Inactive learning resources -delete.workflow.tab.status.email=E-mail sent -edit.parameter.form.email.duration=Owners do not answer to your e-mail within? (days) -edit.parameter.form.lastusage.duration=Learning resource inactive since? (months) -edit.parameter.form.submit=Save -edit.parameter.header=Modify terms within the deletion process -email.error.address=The e-mail address {1} of user {0} is not valid. -email.error.send.failed=This mail could not be sent to the address {1} of user {0}. -error.deleteworkflow.locked.by=You cannot delete these learning resources because user {0} is using them at the moment. Please try again later. -error.no.repository.found=No corresponding learning resources found. -nothing.selected.msg=No learning resources selected. -ready.to.delete.header=The learning resources below are ready to be deleted. The period of {0} days since sending an e-mail has expired without any reaction. By clicking <i>Activate</i> you can prevent the deletion of learning resources. -readyToDelete.delete.confirm=The learning resources selected will be archived before their deletion. -readyToDelete.deleted.msg=Learning resources deleted. -selection.delete.header=The learning resources below have not been used since {0} months. Via e-mail you can notify the owners of selected learning resources about the imminent deletion of their resources. By clicking <i>Activate</i> you can prevent that deletion. -selection.feedback.msg=An e-mail was sent to owners of learning resources notifying them about the imminent deletion of their resources. -status.delete.email.header=The owners of learning resources mentioned below have been notified via e-mail about the imminent deletion of their resources. The period of {0} days for a reaction (answer via e-mail or start of their learning resource) has not yet expired. -table.header.action=Action -table.header.deleteEmail=E-mail on deletion of learning resources diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_es.properties deleted file mode 100644 index 0385adf59afeafbd699f3eaf2bf8eedb22af25a6..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_es.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:21 CET 2009 -action.activate=Activar -action.delete.selection=Mandar e-mail a los propietarios para informarlos que sus recursos ser\u00E1n borrado. -action.ready.to.delete=Borrar recursos did\u00E1cticos seleccionados -button.editParameter=Modificar par\u00E1metros -delete.announcement.email.body=Los siguientes recursos did\u00E1cticos no han sido usado desde $lastloginduration meses y ser\u00E1n borrado en $durationdeleteemail d\u00EDas. Para evitar eso simplemente tienes que abrir el recurso o mandar una respuesta a esto e-mail a $responseTo.\n\rSe trata del recurso did\u00E1ctico\:\n\r$repositoryList -delete.announcement.email.subject=Atenci\u00F3n\: Recurso did\u00E1ctico ser\u00E1 borrado en OLAT -delete.email.announcement.warning.header=El correo electr\u00F3nico de notificaci\u00F3n no pudo ser mandado a\: <br> -delete.workflow.tab.select.delete=Lista para borrar -delete.workflow.tab.start.process=Recursos did\u00E1cticos inactivos -delete.workflow.tab.status.email=E-mail mandado -edit.parameter.form.email.duration=\u00BFPropietarios no han mandado una respuesta dentro? (d\u00EDas) -edit.parameter.form.lastusage.duration=\u00BFRecurso did\u00E1ctico inactivo desde? (meses) -edit.parameter.form.submit=Guardar -edit.parameter.header=Modificar par\u00E1metros dentro del proceso de borrar -email.error.address=La direcci\u00F3n e-mail {1} del usuario {0} no esta valido. -email.error.send.failed=El correo electr\u00F3nico no pudo ser mandado a la direcci\u00F3n {1} del usuario {0} . -error.deleteworkflow.locked.by=No puedes borrar este recurso porque usuario {0} lo esta usando por el momento. Por favor intentarlo otra vez mas tarde. -error.no.repository.found=La b\u00FAsqueda no encontr\u00F3 recursos did\u00E1cticos. -nothing.selected.msg=No hay recursos did\u00E1cticos seleccionados. -ready.to.delete.header=Los recursos did\u00E1cticos listado abajo pueden ser borrado. El periodo de {0} dias para reaccionar ha expirado. Con un click <i>Activar</i> puedes prevenir la borradura del recurso did\u00E1ctico. -readyToDelete.delete.confirm=Los recursos did\u00E1cticos seleccionados ser\u00E1n archivado antes de ser borrado. -readyToDelete.deleted.msg=Recursos did\u00E1cticos borrado. -selection.delete.header=Los recursos did\u00E1cticos no han sido usado desde {0} meses. Puedes avisar los propietarios por e-mail que est\u00E9s recursos did\u00E1cticos van a ser borrado. Se puede evitar eso con un click <i>Activar</i>. -selection.feedback.msg=Los propietarios de los recursos did\u00E1cticos que ser\u00E1n borrado han sido notificado por correo electr\u00F3nico. -status.delete.email.header=Los propietarios de los recursos did\u00E1cticos listado abajo han sido notificado por correo electr\u00F3nico que sus recursos ser\u00E1n borrado. El periodo de {0} dias para reaccionar (mandar respuesta o abrir recurso) todav\u00EDa no ha expirado. -table.header.action=Acci\u00F3n -table.header.deleteEmail=E-mail de borradura diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_fr.properties deleted file mode 100644 index bc2c069f3cc998eedc69709bf53d640fe0023b17..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_fr.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Tue Dec 21 13:15:05 CET 2010 -action.activate=Activer -action.delete.selection=Envoyer e-mail avec annonce de la suppression au propri\u00E9taire -action.ready.to.delete=Supprimer la ressource didactique s\u00E9lectionn\u00E9e. -button.editParameter=Changer d\u00E9lais -delete.announcement.email.body=Les ressources didactiques suivantes ne sont plus utilis\u00E9es depuis $lastloginduration et seront donc supprim\u00E9es dans $durationdeleteemail jours. Pour \u00E9viter l'\u00E9limination, d\u00E9marrez la ressource didactique dont vous avez besoin.\r\n\r\nCeci concerne les ressources didactiques\:\r\n\r\n$repositoryList -delete.announcement.email.subject=Action\: ressource didactique sont effac\u00E9s dans OLAT. -delete.email.announcement.warning.header=Pour les propri\u00E9taires suivants, l'e-mail annon\u00E7ant la suppression des ressources n'a pas pu \u00EAtre envoy\u00E9\: <br> -delete.workflow.tab.select.delete=Pr\u00EAte \u00E0 \u00EAtre effac\u00E9e -delete.workflow.tab.start.process=Ressource didactique inactive -delete.workflow.tab.status.email=E-mail envoy\u00E9 -edit.parameter.form.email.duration=Propri\u00E9taires ne r\u00E9agissent \u00E0 l'e-mail dans les? (jours) -edit.parameter.form.lastusage.duration=Ressource didactique inactive depuis? (mois) -edit.parameter.form.submit=Enregistrer -edit.parameter.header=Changer d\u00E9lais dans le processus de suppression -email.error.address=L'adresse \u00E9lectronique {1} de l'utilisateur {0} n'est pas valable. -email.error.send.failed=L'e-mail n'a pas pu \u00EAtre envoy\u00E9 \u00E0 l'adresse {1} de l'utilisateur {0}. -error.deleteworkflow.locked.by=Vous ne pouvez pas effacer de ressource didactique pour l'instant, car l'utilisateur {0} y est occup\u00E9 pour le moment. Veuillez essayer plus tard SVP. -error.no.repository.found=Aucune ressource didactique correspondante n'a \u00E9t\u00E9 trouv\u00E9e. -nothing.selected.msg=Aucune ressource didactique n'a \u00E9t\u00E9 s\u00E9lectionn\u00E9e. -ready.to.delete.header=Les ressources didactiques ci-dessus sont pr\u00EAtes \u00E0 \u00EAtre effac\u00E9es. Le d\u00E9lai de {0} jours depuis l'envoi de l'e-mail est pass\u00E9 sans r\u00E9action. Avec <i>Activer</i> vous \u00E9vitez la suppression de la ressource didactique. -readyToDelete.delete.confirm=Les ressources didactiques s\u00E9lectionn\u00E9es sont d'abord archiv\u00E9es, ensuite supprim\u00E9es. -readyToDelete.deleted.msg=La ressource didactique a \u00E9t\u00E9 supprim\u00E9e. -selection.delete.header=Les ressources didactiques ne sont plus utilis\u00E9s depuis {0} mois. Par e-mail, vous informez les propri\u00E9taires de la ressource didactique s\u00E9lectionn\u00E9e sur la suppression prochaine. Avec <i>Activer</i> vous \u00E9vitez la suppression de la ressource didactique. -selection.feedback.msg=Un e-mail annon\u00E7ant la suppression a \u00E9t\u00E9 envoy\u00E9 aux propri\u00E9taires des ressources didactiques. -status.delete.email.header=Les propri\u00E9taires de la ressource didactique ci-dessous ont \u00E9t\u00E9 inform\u00E9s par e-mail sur la suppression prochaine. Le d\u00E9lai de {0} jours pour une r\u00E9action (r\u00E9ponse \u00E0 l'e-mail ou d\u00E9marrage de la ressource didactique) n'est pas encore \u00E9coul\u00E9. -table.header.action=Action -table.header.deleteEmail=E-mail de suppression diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_it.properties deleted file mode 100644 index 96756a493a5bf742a74f69a4c972a0f933c1cd70..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_it.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Tue Dec 21 18:54:36 CET 2010 -action.activate=Attivare -action.delete.selection=Inviare E-mail con avviso di eliminazione ai proprietari -action.ready.to.delete=Eliminare le risorse didattiche sottostanti -button.editParameter=Modificare scadenze -delete.announcement.email.body=Le risorse didattiche seguenti non sono state utilizzate da $lastloginduration mesi e vengono dunque eliminate tra $durationdeleteemail giorni. Pu\u00F2 impedire l'eliminazione avviando la risorsa didattica che Le occorre.\r\n\r\nCi\u00F2 concerne le risorse didattiche\:\r\n\r\n$repositoryList -delete.announcement.email.subject=Attenzione\: delle risorse didattiche vengono eliminate in OLAT -delete.email.announcement.warning.header=Non \u00E8 stato possibile inviare la e-mail con avviso di eliminazione agli utenti seguenti \: <br> -delete.workflow.tab.select.delete=Pronto per l'eliminazione -delete.workflow.tab.start.process=Risorse didattiche inattive -delete.workflow.tab.status.email=E-mail inviata -edit.parameter.form.email.duration=I proprietari non reagiscono alle e-mail entro? (giorni) -edit.parameter.form.lastusage.duration=La risorsa didattica \u00E8 inattiva da? (mesi) -edit.parameter.form.submit=Salvare -edit.parameter.header=Modificare scadenze nel processo di eliminazione -email.error.address=L'indirizzo e-mail {1} dell'utente {0} non \u00E8 valido. -email.error.send.failed=Non \u00E8 stato possibile inviare la e-mail all'indirizzo {1} dell'utente {0}. -error.deleteworkflow.locked.by=Attualmente non pu\u00F2 eliminare nessuna risorsa didattica, poich\u00E9 l'utente {0} sta compiendo la stessa azione. Riprovi pi\u00F9 tardi. -error.no.repository.found=Non \u00E8 stata trovata alcuna risorsa didattica rilevante. -nothing.selected.msg=Nessuna risorsa didattica \u00E8 stata selezionata. -ready.to.delete.header=Le risorse sottostanti sono pronte per l'eliminazione. Il periodo di {0} giorni dall'invio della e-mail \u00E8 trascorso senza reazioni. Mediante <i>Attivare</i> pu\u00F2 impedire l'eliminazione della risorsa didattica. -readyToDelete.delete.confirm=Le risorse didattiche selezionate vengono archiviate e successivamente eliminate. -readyToDelete.deleted.msg=Le risorse didattiche vengono eliminate. -selection.delete.header=Le risorse didattiche sottostanti non sono state utilizzate da {0} mesi. Informi via e-mail i proprietari delle risorse selezionate dell'eliminazione imminente. Mediante <i>Attivare</i> pu\u00F2 impedire l'eliminazione della risorsa didattica. -selection.feedback.msg=Una e-mail con avviso di eliminazione \u00E8 stata inviata ai proprietari della risorsa didattica. -status.delete.email.header=I proprietari delle risorse didattiche sottostanti sono stati informati dell'imminente eliminazione. Il periodo di {0} giorni per una reazione (risposta a e-mail o avvio della risorsa didattica) non \u00E8 ancora trascorso. -table.header.action=Azione -table.header.deleteEmail=E-mail di eliminazione diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_jp.properties deleted file mode 100644 index 2da3c38ff5888ce2597967f626c95b79cb2e9c3c..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_jp.properties +++ /dev/null @@ -1,26 +0,0 @@ -#Fri Nov 26 05:29:32 CET 2010 -action.activate=\u6709\u52B9\u5316 -action.delete.selection=\u307E\u3082\u306A\u304F\u524A\u9664\u3055\u308C\u308B\u30EA\u30BD\u30FC\u30B9\u306B\u95A2\u3057\u3066\u30AA\u30FC\u30CA\u30FC\u306B\u901A\u77E5\u30E1\u30FC\u30EB\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002 -action.ready.to.delete=\u9078\u629E\u3057\u305F\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u3092\u524A\u9664\u3059\u308B -delete.announcement.email.subject=\u6CE8\u610F\: OLAT\u306E\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u304C\u524A\u9664\u3055\u308C\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059\u3002 -delete.email.announcement.warning.header=\u307E\u3082\u306A\u304F\u524A\u9664\u3055\u308C\u308B\u30EA\u30BD\u30FC\u30B9\u306B\u95A2\u3059\u308B\u30AA\u30FC\u30CA\u30FC\u3078\u306E\u30E1\u30FC\u30EB\u901A\u77E5\u3092\u4E0B\u8A18\u306E\u5B9B\u5148\u306B\u9001\u4FE1\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\: <br /> -delete.workflow.tab.select.delete=\u524A\u9664\u6E96\u5099\u5B8C\u4E86 -delete.workflow.tab.start.process=\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306A\u3044\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9 -delete.workflow.tab.status.email=\u30E1\u30FC\u30EB\u9001\u4FE1\u6E08\u307F -edit.parameter.form.email.duration=\u3042\u306A\u305F\u306E\u30E1\u30FC\u30EB\u306B\u30AA\u30FC\u30CA\u30FC\u304C\u8FD4\u4FE1\u3057\u306A\u3044\u671F\u9593? (\u65E5) -edit.parameter.form.lastusage.duration=\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u304C\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u306A\u3044\u671F\u9593? (\u6708) -edit.parameter.form.submit=\u4FDD\u5B58 -edit.parameter.header=\u524A\u9664\u51E6\u7406\u307E\u3067\u306E\u671F\u9593\u3092\u4FEE\u6B63\u3059\u308B -email.error.address=\u30E6\u30FC\u30B6 {0} \u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 {1} \u304C\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 -email.error.send.failed=\u3053\u306E\u30E1\u30FC\u30EB\u306F\u3001\u30E6\u30FC\u30B6 {0} \u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 {1} \u306B\u9001\u4FE1\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -error.deleteworkflow.locked.by=\u73FE\u5728\u3001\u30E6\u30FC\u30B6 {0} \u304C\u4F7F\u7528\u3057\u3066\u3044\u308B\u305F\u3081\u3001\u3042\u306A\u305F\u306F\u3053\u308C\u3089\u306E\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002\u5F8C\u307B\u3069\u3001\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002 -error.no.repository.found=\u8A72\u5F53\u3059\u308B\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 -nothing.selected.msg=\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -ready.to.delete.header=\u4EE5\u4E0B\u306E\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306F\u3001\u524A\u9664\u6E96\u5099\u304C\u5B8C\u4E86\u3057\u3066\u3044\u307E\u3059\u3002{0} \u65E5\u9593\u306E\u7336\u4E88\u671F\u9593\u3092\u5931\u52B9\u3057\u3066\u3044\u307E\u3059\u3002\u300C\u30A2\u30AF\u30C6\u30A3\u30D6\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u3067\u3001\u3042\u306A\u305F\u306F\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306E\u524A\u9664\u3092\u56DE\u907F\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 -readyToDelete.delete.confirm=\u9078\u629E\u3055\u308C\u305F\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306F\u3001\u524A\u9664\u3059\u308B\u524D\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3059\u3002 -readyToDelete.deleted.msg=\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002 -selection.delete.header=\u4EE5\u4E0B\u306E\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306F\u3001{0} \u30F6\u6708\u9593\u3001\u5229\u7528\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u3042\u306A\u305F\u306F\u3001\u9078\u629E\u3057\u305F\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306E\u30AA\u30FC\u30CA\u30FC\u306B\u5BFE\u3057\u3066\u3001\u307E\u3082\u306A\u304F\u30EA\u30BD\u30FC\u30B9\u304C\u524A\u9664\u3055\u308C\u308B\u65E8\u3001\u30E1\u30FC\u30EB\u901A\u77E5\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\u300C\u6709\u52B9\u5316\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u3067\u3001\u3042\u306A\u305F\u306F\u3001\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306E\u524A\u9664\u3092\u56DE\u907F\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 -selection.feedback.msg=\u307E\u3082\u306A\u304F\u30EA\u30BD\u30FC\u30B9\u304C\u524A\u9664\u3055\u308C\u308B\u65E8\u3001\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306E\u30AA\u30FC\u30CA\u30FC\u306B\u901A\u77E5\u30E1\u30FC\u30EB\u304C\u9001\u4FE1\u3055\u308C\u307E\u3057\u305F\u3002 -status.delete.email.header=\u4EE5\u4E0B\u306E\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306E\u30AA\u30FC\u30CA\u30FC\u306B\u5BFE\u3057\u3066\u3001\u307E\u3082\u306A\u304F\u30EA\u30BD\u30FC\u30B9\u304C\u524A\u9664\u3055\u308C\u308B\u65E8\u3001\u30E1\u30FC\u30EB\u7D4C\u7531\u3067\u901A\u77E5\u3055\u308C\u307E\u3057\u305F\u3002{0} \u65E5\u306E\u53CD\u5FDC\u671F\u9593 (\u30E1\u30FC\u30EB\u3067\u8FD4\u7B54\u307E\u305F\u306F\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u3092\u958B\u59CB) \u306F\u3001\u307E\u3060\u6E80\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -table.header.action=\u64CD\u4F5C -table.header.deleteEmail=\u307E\u3082\u306A\u304F\u524A\u9664\u3055\u308C\u308B\u5B66\u7FD2\u30EA\u30BD\u30FC\u30B9\u306B\u95A2\u3057\u3066E\u30E1\u30FC\u30EB\u9001\u4FE1\u3059\u308B diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_nl_NL.properties deleted file mode 100644 index 4dac1c1804ec0b504973c1f56d7b19b6f1fd76ec..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_nl_NL.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Thu Sep 08 16:42:47 CEST 2011 -action.activate=Activeren -action.delete.selection=Verstuur een e-mail om te eigenaars te waarschuwen voor de naderende verwijdering van hun leermiddelen. -action.ready.to.delete=Verwijder de geselecteerde leermiddelen -button.editParameter=Voorwaarden aanpassen -delete.announcement.email.body=De volgende leermiddelen zijn niet meer gebruikt sinds $lastloginduration months en zullen daarom verwijderd worden binnen $durationdeleteemail dagen. Om dit te voorkomen moet u enkel de leermiddelen starten die u nog nodig heeft.\r\n\r\nHet betreft de volgende leermiddelen\:\r\n\r\n$repositoryList -delete.announcement.email.subject=Opgelet\: leermiddelen worden zo dadelijk verwijdert uit OLAT -delete.email.announcement.warning.header=Een e-mail die de gebruikers waarschuwt voor de naderende verwijdering van leermiddelen kon niet verzonden worden naar\: <br> {0} -delete.workflow.tab.select.delete=Klaar om de verwijderen -delete.workflow.tab.start.process=Inactieve leermiddelen -delete.workflow.tab.status.email=E-mail verzonden -edit.parameter.form.email.duration=Eigenaars beantwoorden uw mail niet binnen? (dagen) -edit.parameter.form.lastusage.duration=Leermiddelen inactief sinds? (maanden) -edit.parameter.form.submit=Opslaan -edit.parameter.header=Pas de voorwaarden binnen het verwijderingsproces aan -email.error.address=Het e-mailadres {1} van gebruiker {0} is niet geldig. -email.error.send.failed=Deze mail kon niet naar het adres {1} van gebruiker {0} gestuurd worden. -error.deleteworkflow.locked.by=U kunt dit leermiddel niet verwijderen omdat gebruiker {0} het op dit moment gebruikt. Gelieve het later opnieuw te proberen. -error.no.repository.found=Geen corresponderende leermiddelen gevonden. -nothing.selected.msg=Geen leermiddelen geselecteerd. -ready.to.delete.header=Het onderstaande leermiddel werd verwijderd. De periode van {0} dagen sinds het zenden van een e-mail is verstreken zonder einige reactie. Door te klikken op <i>Activeren</i> kunt u de verwijdering van het leermiddel voorkomen. -readyToDelete.delete.confirm=De geselecteerde leermiddelen zullen gearchiveerd worden v\u00F3\u00F3r hun verwijdering. -readyToDelete.deleted.msg=Leermiddelen verwijdert. -selection.delete.header=De onderstaande leermiddelen werden niet meer gebruikt sinds {0} maanden. Via e-mail kunt u de eigenaars van de geselecteerde leermiddelen verwittigen voor de naderende verwijdering van hun leermiddelen. Door te klikken op <i>Activeren</i> kunt u deze verwijdering voorkomen. -selection.feedback.msg=Er werd een e-mail gestuurd naar de eigenaars van leermiddelen die hen waarschuwt voor de naderende verwijdering van hun leermiddelen. -status.delete.email.header=De eigenaars van onderstaande leermiddelen werden via e-mail verwittigd voor de naderende verwijdering van hun leermiddelen. De periode van {0} dagen voor een reactie (antwoord via e-mail of het starten van hun leermiddelen) is nog niet verstreken. -table.header.action=Actie -table.header.deleteEmail=E-mail over de verwijdering van leermiddelen diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pl.properties deleted file mode 100644 index 7844ecc947d711635ede0b137ef1233f68a1fcdf..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pl.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:17 CET 2009 -action.activate=Aktywuj -action.delete.selection=Wy\u015Blij e-mail do w\u0142a\u015Bciciela o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia zasobu edukacyjnego. -action.ready.to.delete=Usu\u0144 wybrane zasoby edukacyjne -button.editParameter=Modyfikuj zasady -delete.announcement.email.body=Nast\u0119puj\u0105cy zas\u00F3b edukacyjny nie by\u0142 wykorzystywany od $lastloginduration miesi\u0119cy, dlatego zostanie usuni\u0119ty za $durationdeleteemail dni. Aby temu zapobiec, uruchom zas\u00F3b, kt\u00F3rego wci\u0105\u017C potrzebujesz lub skontaktuj si\u0119 z $responseTo.\n\rTa wiadomo\u015B\u0107 dotyczy zasobu\:\n\r$repositoryList -delete.announcement.email.subject=Uwaga, zasoby edukacyjne zostan\u0105 wkr\u00F3tce usuni\u0119te z OLAT. -delete.email.announcement.warning.header=Wiadomo\u015B\u0107 informuj\u0105ca w\u0142a\u015Bcicieli o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia ich zasob\u00F3w edukacyjnych nie mog\u0142a zosta\u0107 wys\u0142ana do nast\u0119puj\u0105cych os\u00F3b\: <br> {0} -delete.workflow.tab.select.delete=Do usuni\u0119cia -delete.workflow.tab.start.process=Nieaktywne zasoby -delete.workflow.tab.status.email=Powiadomienie e-mail -edit.parameter.form.email.duration=W\u0142a\u015Bciciel nie odpowiada na Tw\u00F3j e-mail od (dni) -edit.parameter.form.lastusage.duration=Zasoby edukacyjne nieaktywne od (miesi\u0105ce) -edit.parameter.form.submit=Zapisz -edit.parameter.header=Modyfikuj zasady usuwania. -email.error.address=Adres e-mail {1} u\u017Cytkownika {0} jest nieprawid\u0142owy. -email.error.send.failed=Wiadomo\u015B\u0107 nie mog\u0142a zosta\u0107 wys\u0142ana na adres {1} u\u017Cytkownika {0} . -error.deleteworkflow.locked.by=Nie mo\u017Cesz osun\u0105\u0107 tego zasobu edukacyjnego poniewa\u017C u\u017Cytkownik\: {0} w\u0142a\u015Bnie teraz go u\u017Cywa. Spr\u00F3buj p\u00F3\u017Aniej... -error.no.repository.found=Nie znaleziono odpowiednich zasob\u00F3w edukacyjnych. -nothing.selected.msg=Nie wybrano zasob\u00F3w edukacyjnych. -ready.to.delete.header=Poni\u017Csze zasoby edukacyjne s\u0105 gotowe do usuni\u0119cia. Przez okres {0} dni nie otrzymano odpowiedzi na powiadomienie. U\u017Cywaj\u0105c opcji <i>Aktywuj</i> mo\u017Cesz zapobiec usuni\u0119ciu zasobu edukacyjnego. -readyToDelete.delete.confirm=Wybrane zasoby edukacyjne zostan\u0105 zarchiwizowane przed usuni\u0119ciem. -readyToDelete.deleted.msg=Zasoby edukacyjne usuni\u0119te. -selection.delete.header=Poni\u017Csze zasoby edukacyjne nie by\u0142y wykorzystywane od {0} miesi\u0119cy. Poprzez e-mail mo\u017Cesz zawiadomi\u0107 w\u0142a\u015Bciciela o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia zasobu. Za pomoc\u0105 opcji <i>Aktywuj</i> mo\u017Cesz zapobiec usuni\u0119ciu. -selection.feedback.msg=Wiadomo\u015B\u0107 informuj\u0105ca o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia zasob\u00F3w edukacyjnych zosta\u0142a wys\u0142ana do ich w\u0142a\u015Bcicieli. -status.delete.email.header=Wymienieni poni\u017Cej w\u0142a\u015Bciciele zostali powiadomieni o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia ich zasob\u00F3w edukacyjnych. Okres {0} dni przeznaczony na reakcj\u0119 (odpowied\u017A przez e-mail lub uruchomienie zasobu edukacyjnego) jeszcze nie up\u0142yn\u0105\u0142. -table.header.action=Akcja -table.header.deleteEmail=E-mail o zbli\u017Caj\u0105cym si\u0119 terminie usuni\u0119cia zasob\u00F3w edukacyjnych. diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_BR.properties deleted file mode 100644 index d8622bcb15d98eef5588e9d7e7d8430ac6c88744..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_BR.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:00 CET 2009 -action.activate=Ativar -action.delete.selection=Enviar e-mail notificando os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de seus recursos. -action.ready.to.delete=Deletar os recursos did\u00E1ticos selecionados -button.editParameter=Modificar termos -delete.announcement.email.body=Os seguintes recursos did\u00E1ticos n\u00E3o s\u00E3o utilizados a $lastloginduration meses e ser\u00E3o deletados em $durationdeleteemail dias. Para prevenir a dele\u00E7\u00E3o inicie o recursos que necessita ou responda para $responseTo.\n\rReferentes os recursos did\u00E1ticos\:\n\r$repositoryList -delete.announcement.email.subject=Aten\u00E7\u00E3o\: recursos did\u00E1ticos ser\u00E3o deletados no OLAT -delete.email.announcement.warning.header=Um e-mail notificando os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de recursos did\u00E1ticosn\u00E3o p\u00F4de ser enviado para os seguintes\: <br> -delete.workflow.tab.select.delete=Pronto para deletar -delete.workflow.tab.start.process=Recursos did\u00E1ticos inativos -delete.workflow.tab.status.email=E-mail enviado -edit.parameter.form.email.duration=Propriet\u00E1rios n\u00E3o responderam e-mail a? (dias) -edit.parameter.form.lastusage.duration=Recurso did\u00E1tico inativo a? (meses) -edit.parameter.form.submit=Salvar -edit.parameter.header=Modificar termos no processo de dele\u00E7\u00E3o -email.error.address=O endere\u00E7o de e-mail {1} do usu\u00E1rio {0} n\u00E3o \u00E9 v\u00E1lido. -email.error.send.failed=Este e-mail n\u00E3o p\u00F4de ser enviado para o endere\u00E7o {1} do usu\u00E1rio {0} . -error.deleteworkflow.locked.by=Voc\u00EA n\u00E3o pode deletar estes recursos did\u00E1ticos porque o usu\u00E1rio {0} est\u00E1 usando-os no momento. Tente novamente mais tarde. -error.no.repository.found=Nenhum recurso did\u00E1tico encontrado. -nothing.selected.msg=Nenhum recurso did\u00E1tico selecionado. -ready.to.delete.header=Os recursos did\u00E1ticos abaixo est\u00E3o prontos para dele\u00E7\u00E3o. O per\u00EDodo de {0} dias desde o envio do e-mail expirou sem nenhum resposta. Clicando <i>Ativar</i> voc\u00EA pode prevenir a dele\u00E7\u00E3o dos recursos did\u00E1ticos. -readyToDelete.delete.confirm=Os recursos did\u00E1ticos selecionados ser\u00E3o arquivados antes da dele\u00E7\u00E3o. -readyToDelete.deleted.msg=Recursos did\u00E1ticos deletados. -selection.delete.header=Os recursos did\u00E1ticos abaixo n\u00E3o s\u00E3o usados a {0} meses. Via e-mail voc\u00EA pode notificar os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de seus recursos. Clicando <i>Ativar</i> voc\u00EA pode prevenir esta dele\u00E7\u00E3o. -selection.feedback.msg=Um e-mail foi enviado para os propriet\u00E1rios notificando-os sobre a eminente dele\u00E7\u00E3o de seus recursos. -status.delete.email.header=Os propriet\u00E1rios dos recursos did\u00E1ticos mencionados abaixo foram notificados via e-mail sobre a eminente dele\u00E7\u00E3o de seus recursos. O per\u00EDodo de {0} dias para resposta (resposta via e-mail ou inicializa\u00E7\u00E3o do recurso did\u00E1tico) ainda n\u00E3o expirou. -table.header.action=A\u00E7ao -table.header.deleteEmail=E-mail sobre eminente dele\u00E7\u00E3o de recursos did\u00E1ticos diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_PT.properties deleted file mode 100644 index b680da66448143b9818b0c276957c362451451f6..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_pt_PT.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:05 CET 2009 -action.activate=Ativar -action.delete.selection=Enviar e-mail notificando os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de seus recursos. -action.ready.to.delete=Deletar os recursos did\u00E1ticos selecionados -button.editParameter=Modificar termos -delete.announcement.email.body=Os seguintes recursos did\u00E1ticos n\u00E3o s\u00E3o utilizados a $lastloginduration meses e ser\u00E3o deletados em $durationdeleteemail dias. Para prevenir a dele\u00E7\u00E3o inicie o recursos que necessita ou responda para $responseTo.\n\rReferentes os recursos did\u00E1ticos\:\n\r$repositoryList -delete.announcement.email.subject=Aten\u00E7\u00E3o\: recursos did\u00E1ticos ser\u00E3o deletados no OLAT -delete.email.announcement.warning.header=Um e-mail notificando os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de recursos did\u00E1ticosn\u00E3o p\u00F4de ser enviado para os seguintes\: <br> -delete.workflow.tab.select.delete=Pronto para deletar -delete.workflow.tab.start.process=Recursos did\u00E1ticos inativos -delete.workflow.tab.status.email=E-mail enviado -edit.parameter.form.email.duration=Propriet\u00E1rios n\u00E3o responderam e-mail a? (dias) -edit.parameter.form.lastusage.duration=Recurso did\u00E1tico inativo a? (meses) -edit.parameter.form.submit=Salvar -edit.parameter.header=Modificar termos no processo de dele\u00E7\u00E3o -email.error.address=O endere\u00E7o de e-mail {1} do usu\u00E1rio {0} n\u00E3o \u00E9 v\u00E1lido. -email.error.send.failed=Este e-mail n\u00E3o p\u00F4de ser enviado para o endere\u00E7o {1} do usu\u00E1rio {0} . -error.deleteworkflow.locked.by=Voc\u00EA n\u00E3o pode deletar estes recursos did\u00E1ticos porque o usu\u00E1rio {0} est\u00E1 usando-os no momento. Tente novamente mais tarde. -error.no.repository.found=Nenhum recurso did\u00E1tico encontrado. -nothing.selected.msg=Nenhum recurso did\u00E1tico selecionado. -ready.to.delete.header=Os recursos did\u00E1ticos abaixo est\u00E3o prontos para dele\u00E7\u00E3o. O per\u00EDodo de {0} dias desde o envio do e-mail expirou sem nenhum resposta. Clicando <i>Ativar</i> voc\u00EA pode prevenir a dele\u00E7\u00E3o dos recursos did\u00E1ticos. -readyToDelete.delete.confirm=Os recursos did\u00E1ticos selecionados ser\u00E3o arquivados antes da dele\u00E7\u00E3o. -readyToDelete.deleted.msg=Recursos did\u00E1ticos deletados. -selection.delete.header=Os recursos did\u00E1ticos abaixo n\u00E3o s\u00E3o usados a {0} meses. Via e-mail voc\u00EA pode notificar os propriet\u00E1rios sobre a eminente dele\u00E7\u00E3o de seus recursos. Clicando <i>Ativar</i> voc\u00EA pode prevenir esta dele\u00E7\u00E3o. -selection.feedback.msg=Um e-mail foi enviado para os propriet\u00E1rios notificando-os sobre a eminente dele\u00E7\u00E3o de seus recursos. -status.delete.email.header=Os propriet\u00E1rios dos recursos did\u00E1ticos mencionados abaixo foram notificados via e-mail sobre a eminente dele\u00E7\u00E3o de seus recursos. O per\u00EDodo de {0} dias para resposta (resposta via e-mail ou inicializa\u00E7\u00E3o do recurso did\u00E1tico) ainda n\u00E3o expirou. -table.header.action=A\u00E7ao -table.header.deleteEmail=E-mail sobre eminente dele\u00E7\u00E3o de recursos did\u00E1ticos diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ru.properties deleted file mode 100644 index 27344adb3a4ce74cc73f83f3a228f0c1ca351be0..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_ru.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:20 CET 2009 -action.activate=\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C -action.delete.selection=\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0443 e-mail \u0441 \u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043C \u043E \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438. -action.ready.to.delete=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B -button.editParameter=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0440\u043E\u043A\u0438 -delete.announcement.email.body=\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043B\u0438\u0441\u044C \u0441\u043F\u0443\u0441\u0442\u044F $lastloginduration \u043C\u0435\u0441\u044F\u0446\u0435\u0432 \u0438 \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0447\u0435\u0440\u0435\u0437 $durationdeleteemail \u0434\u043D\u0435\u0439. \u0414\u043B\u044F \u0442\u043E\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435, \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043D\u0443\u0436\u043D\u044B\u0439 \u0412\u0430\u043C \u0443\u0447\u0435\u0431\u043D\u044B\u0439 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u0438\u043B\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u044C\u0442\u0435 e-mail \u043F\u043E \u0430\u0434\u0440\u0435\u0441\u0443 $responseTo.\n\r\u0422\u0435\u043C\u0430 - \u0443\u0447\u0435\u0431\u043D\u044B\u0439 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\:\n\r$repositoryList -delete.announcement.email.subject=\u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435\: \u0423\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u0443\u0434\u0430\u043B\u0435\u043D\u044B \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u044B OLAT -delete.email.announcement.warning.header=\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430\u043C \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C e-mail \u0441 \u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043C \u043E \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0438\u0445 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u044B\: <br> -delete.workflow.tab.select.delete=\u0413\u043E\u0442\u043E\u0432\u043E \u043A \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044E -delete.workflow.tab.start.process=\u041D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B -delete.workflow.tab.status.email=E-mail \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D -edit.parameter.form.email.duration=\u0412\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u044B \u043D\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u044E\u0442 \u043D\u0430 e-mail \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435? (\u0434\u043D\u0435\u0439) -edit.parameter.form.lastusage.duration=\u0423\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u0441\u043F\u0443\u0441\u0442\u044F? (\u043C\u0435\u0441\u044F\u0446\u0435\u0432) -edit.parameter.form.submit=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C -edit.parameter.header=\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0440\u043E\u043A\u0438 \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F -email.error.address=E-mail \u0430\u0434\u0440\u0435\u0441 {1} \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F {0} - \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u0435\u043D. -email.error.send.failed=\u041F\u043E \u0430\u0434\u0440\u0435\u0441\u0443 {1} \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F {0} \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0431\u044B\u043B\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C e-mail. -error.deleteworkflow.locked.by=\u0412\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B, \u0442\u0430\u043A \u043A\u0430\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C {0} \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0438\u0445 \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F. \u041F\u043E\u043F\u044B\u0442\u0430\u0439\u0442\u0435\u0441\u044C \u043F\u043E\u0437\u0436\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437. -error.no.repository.found=\u0421\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043D\u0435 \u0431\u044B\u043B\u043E \u043D\u0430\u0439\u0434\u0435\u043D\u043E. -nothing.selected.msg=\u041D\u0435 \u0431\u044B\u043B\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043E \u043D\u0438 \u043E\u0434\u043D\u043E\u0433\u043E \u0443\u0447\u0435\u0431\u043D\u043E\u0433\u043E \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0430. -ready.to.delete.header=\u041D\u0438\u0436\u0435\u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u0433\u043E\u0442\u043E\u0432\u044B \u043A \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044E. \u0417\u0430 \u043E\u0442\u0432\u0435\u0434\u0435\u043D\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0441\u0440\u043E\u043A\u043E\u043C {0} \u0434\u043D\u0435\u0439, \u0441\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 e-mail, \u043D\u0435 \u0431\u044B\u043B\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043D\u0438\u043A\u0430\u043A\u043E\u0439 \u043E\u0442\u0432\u0435\u0442\u043D\u043E\u0439 \u0440\u0435\u0430\u043A\u0446\u0438\u0438. \u0421 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043E\u043F\u0446\u0438\u0438 <i>\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C</i> \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0443\u0447\u0435\u0431\u043D\u043E\u0433\u043E \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0430. -readyToDelete.delete.confirm=\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u0431\u0443\u0434\u0443\u0442 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0442\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u044B. -readyToDelete.deleted.msg=\u0423\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u0431\u044B\u043B\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u044B. -selection.delete.header=\u041D\u0438\u0436\u0435\u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0443\u0447\u0435\u0431\u043D\u044B\u0435 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043B\u0438\u0441\u044C \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 {0} \u043C\u0435\u0441\u044F\u0446\u0435\u0432. \u041F\u043E e-mail \u0412\u044B \u0441\u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u043E\u0438\u043D\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0435\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043E \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438. \u0421 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u043E\u043F\u0446\u0438\u0438 <i>\u0410\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C</i> \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0443\u0447\u0435\u0431\u043D\u043E\u0433\u043E \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0430. -selection.feedback.msg=\u0412\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430\u043C \u044D\u0442\u0438\u0445 \u0433\u0440\u0443\u043F\u043F \u0431\u044B\u043B \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D e-mail \u0441 \u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043C \u043E \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432. -status.delete.email.header=\u0412\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u044B \u043D\u0438\u0436\u0435\u0441\u0442\u043E\u044F\u0449\u0438\u0445 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u0431\u044B\u043B\u0438 \u043F\u0440\u043E\u0438\u043D\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u043F\u043E e-mail \u043E \u043F\u0440\u0435\u0434\u0441\u0442\u043E\u044F\u0449\u0435\u043C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0438\u0445 \u0443\u0447\u0435\u0431\u043D\u044B\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043C\u044B. \u0421\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 e-mail, \u0432\u0440\u0435\u043C\u044F \u0441\u0440\u043E\u043A\u043E\u043C {0} \u0434\u043D\u0435\u0439, \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0435 \u043D\u0430 \u043E\u0442\u0432\u0435\u0442\u043D\u0443\u044E \u0440\u0435\u0430\u043A\u0446\u0438\u044E (\u043E\u0442\u0432\u0435\u0442 \u043D\u0430 e-mail \u0438\u043B\u0438 \u0432\u044B\u0437\u043E\u0432 \u0443\u0447\u0435\u0431\u043D\u043E\u0433\u043E \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0430), \u0435\u0449\u0451 \u043D\u0435 \u0438\u0437\u0431\u0435\u0436\u0430\u043B\u043E. -table.header.action=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F -table.header.deleteEmail=E-mail \u043E\u0431 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_sq.properties deleted file mode 100644 index 28224b049490f20445cb05f4e518cc0f071c80c9..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_sq.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Mar 02 09:54:12 CET 2009 -action.activate=Activate -action.delete.selection=Send e-mail notifying owners about the imminent deletion of their resources. -action.ready.to.delete=Delete selected learning resources -button.editParameter=Modify terms -delete.announcement.email.body=The following learning resources have not been used since $lastloginduration months and will therefore be deleted in $durationdeleteemail days. In order to prevent this just start the resource you still need or respond to $responseTo.\n\rThis concerns the learning resources\:\n\r$repositoryList -delete.announcement.email.subject=Attention\: learning resources are about to be deleted in OLAT -delete.email.announcement.warning.header=An e-mail notifying owners about the imminent deletion of resources could not be sent to the following\: <br> -delete.workflow.tab.select.delete=Ready to delete -delete.workflow.tab.start.process=Inactive learning resources -delete.workflow.tab.status.email=E-mail sent -edit.parameter.form.email.duration=Owners do not answer to your e-mail within? (days) -edit.parameter.form.lastusage.duration=Learning resource inactive since? (months) -edit.parameter.form.submit=Save -edit.parameter.header=Modify terms within the deletion process -email.error.address=The e-mail address {1} of user {0} is not valid. -email.error.send.failed=This mail could not be sent to the address {1} of user {0} . -error.deleteworkflow.locked.by=You cannot delete these learning resources because user {0} is using them at the moment. Please try again later. -error.no.repository.found=No corresponding learning resources found. -nothing.selected.msg=No learning resources selected. -ready.to.delete.header=The learning resources below are ready to be deleted. The period of {0} days since sending an e-mail has expired without any reaction. By clicking <i>Activate</i> you can prevent the deletion of learning resources. -readyToDelete.delete.confirm=The selected learning resources will be archived before their deletion. -readyToDelete.deleted.msg=Learning resources deleted. -selection.delete.header=The learning resources below have not been used since {0} months. Via e-mail you can notify the owners of selected learning resources about the imminent deletion of their resources. By clicking <i>Activate</i> you can prevent that deletion. -selection.feedback.msg=An e-mail was sent to the owners of learning resources notifying them about the imminent deletion of their resources. -status.delete.email.header=The owners of learning resources mentioned below have been notified via e-mail about the imminent deletion of their resources. The period of {0} days for a reaction (answer via e-mail or start of their learning resource) has not yet expired. -table.header.action=Action -table.header.deleteEmail=E-mail on the imminent deletion of learning resources diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_CN.properties deleted file mode 100644 index e410b2327a4feadb657ecb66e7f9308d68d093ce..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_CN.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Jun 28 07:33:01 CEST 2010 -action.activate=\u6FC0\u6D3B -action.delete.selection=\u53D1\u9001\u7535\u5B50\u90AE\u4EF6\u901A\u77E5\u8D44\u6E90\u62E5\u6709\u8005\u9A6C\u4E0A\u8981\u5220\u9664\u4ED6\u4EEC\u7684\u8D44\u6E90\u3002 -action.ready.to.delete=\u5220\u9664\u9009\u62E9\u7684\u5B66\u4E60\u8D44\u6E90 -button.editParameter=\u4FEE\u6539\u65F6\u9650 -delete.announcement.email.body=\u4E0B\u9762\u7684\u5B66\u4E60\u8D44\u6E90\u5DF2\u7ECF\u4ECE\u4E0A\u6B21\u767B\u5165\u8D77$lastloginduration\u4E2A\u6708\u4E4B\u5185\u5C31\u6CA1\u88AB\u4F7F\u7528\u8FC7\uFF0C\u56E0\u6B64\u5728$durationdeleteemail\u5929\u4E4B\u5185\u5C06\u8981\u5220\u9664\u3002\u53EA\u8981\u5F00\u59CB\u4F7F\u7528\u60A8\u9700\u8981\u7684\u5B66\u4E60\u8D44\u6E90\uFF0C\u60A8\u5C31\u80FD\u963B\u6B62\u6B64\u4E8B\u7684\u53D1\u751F\u3002\r\n\r\n\u4EE5\u4E0B\u5B66\u4E60\u8D44\u6E90\u662F\u8981\u88AB\u5220\u9664\u7684\r\n$repositoryList -delete.announcement.email.subject=\u6CE8\u610F\uFF1A\u5C06\u8981\u5220\u9664OLAT\u4E2D\u7684\u5B66\u4E60\u8D44\u6E90 -delete.email.announcement.warning.header=\u5173\u4E8E\u7ACB\u5373\u5220\u9664\u62E5\u6709\u8005\u8D44\u6E90\u7684\u7535\u5B50\u90AE\u4EF6\u901A\u77E5\u4E0D\u80FD\u53D1\u9001\u5230\u4EE5\u4E0B\u5730\u5740\:<br> -delete.workflow.tab.select.delete=\u5373\u5C06\u5220\u9664\u7684\u8D44\u6E90 -delete.workflow.tab.start.process=\u65E0\u4EBA\u4F7F\u7528\u7684\u8D44\u6E90 -delete.workflow.tab.status.email=\u5DF2\u53D1\u7535\u5B50\u90AE\u4EF6\u901A\u77E5\u5220\u9664\u7684\u8D44\u6E90 -edit.parameter.form.email.duration=\u8D44\u6E90\u62E5\u6709\u8005\u56DE\u590D\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\u65F6\u9650\uFF08\u5929\uFF09 -edit.parameter.form.lastusage.duration=\u5B66\u4E60\u8D44\u6E90\u5931\u6D3B\u65F6\u9650\uFF08\u6708\uFF09 -edit.parameter.form.submit=\u4FDD\u5B58 -edit.parameter.header=\u5728\u5220\u9664\u8FC7\u7A0B\u4E2D\u4FEE\u6539\u6761\u76EE -email.error.address=\u7528\u6237{0}\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740{1}\u65E0\u6548\u3002 -email.error.send.failed=\u8FD9\u4E2A\u90AE\u4EF6\u4E0D\u80FD\u53D1\u9001\u5230\u7528\u6237{0}\u7684\u5730\u5740{1} -error.deleteworkflow.locked.by=\u7531\u4E8E\u7528\u6237{0}\u6B64\u523B\u6B63\u5728\u4F7F\u7528,\u6240\u4EE5\u60A8\u4E0D\u80FD\u5220\u9664\u5B66\u4E60\u8D44\u6E90\u3002\u8BF7\u8FC7\u4E00\u4F1A\u518D\u8BD5\u3002 -error.no.repository.found=\u6CA1\u6709\u53D1\u73B0\u7B26\u5408\u5220\u9664\u89C4\u5219\u7684\u5B66\u4E60\u8D44\u6E90\u3002 -nothing.selected.msg=\u6CA1\u6709\u9009\u62E9\u5B66\u4E60\u8D44\u6E90\u3002 -ready.to.delete.header=\u5982\u4E0B\u63D0\u5230\u7684\u5B66\u4E60\u8D44\u6E90\u5373\u5C06\u5220\u9664\u3002\u81EA\u4ECE\u53D1\u9001\u7535\u5B50\u90AE\u4EF6\u540E\u5DF2\u7ECF\u8FC7\u4E86{0}\u5929\uFF0C\u5374\u6CA1\u6709\u6536\u5230\u4EFB\u4F55\u56DE\u97F3\u3002\u70B9\u51FB<i>\u6FC0\u6D3B</i> \u60A8\u53EF\u4EE5\u963B\u6B62\u5220\u9664\u5B66\u4E60\u8D44\u6E90\u3002 -readyToDelete.delete.confirm=\u5220\u9664\u4E4B\u524D\uFF0C\u6240\u9009\u62E9\u7684\u5B66\u4E60\u8D44\u6E90\u4F1A\u88AB\u4FDD\u5B58\u3002 -readyToDelete.deleted.msg=\u5B66\u4E60\u8D44\u6E90\u5DF2\u5220\u9664\u3002 -selection.delete.header=\u5982\u4E0B\u63D0\u5230\u7684\u5B66\u4E60\u8D44\u6E90\u5DF2\u7ECF{0}\u4E2A\u6708\u65E0\u4EBA\u4F7F\u7528\u3002\u60A8\u53EF\u4EE5\u4F7F\u7528\u7535\u5B50\u90AE\u4EF6\u901A\u77E5\u8BE5\u8D44\u6E90\u62E5\u6709\u8005\u5373\u5C06\u5220\u9664\u4ED6\u4EEC\u7684\u8D44\u6E90\u3002\u70B9\u51FB<i>\u6FC0\u6D3B</i>\uFF0C\u60A8\u5C31\u80FD\u963B\u6B62\u6B64\u6B21\u5220\u9664\u3002 -selection.feedback.msg=\u5DF2\u7ECF\u5411\u5B66\u4E60\u8D44\u6E90\u7684\u6240\u6709\u8005\u53D1\u9001\u5373\u5C06\u5220\u9664\u5176\u8D44\u6E90\u7684\u7535\u5B50\u90AE\u4EF6\u3002 -status.delete.email.header=\u5DF2\u901A\u8FC7\u7535\u5B50\u90AE\u4EF6\u901A\u77E5\u5982\u4E0B\u63D0\u5230\u7684\u5B66\u4E60\u8D44\u6E90\u7684\u6240\u6709\u8005\uFF0C\u5176\u8D44\u6E90\u5373\u5C06\u88AB\u5220\u9664\u3002\u6B64\u6D88\u606F\u8FD8\u6709{0}\u5929\u8FC7\u671F(\u901A\u8FC7\u56DE\u590D\u7535\u5B50\u90AE\u4EF6\u6216\u5F00\u59CB\u4F7F\u7528\u6B64\u8D44\u6E90\u5373\u53EF\u6FC0\u6D3B\u8D44\u6E90)\u3002 -table.header.action=\u6267\u884C -table.header.deleteEmail=\u5173\u4E8E\u7ACB\u5373\u5220\u9664\u5B66\u4E60\u8D44\u6E90\u7684\u7535\u5B50\u90AE\u4EF6 diff --git a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_TW.properties deleted file mode 100644 index e892a01a0965aad0d397cfb9aa84d41a3a9483c6..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/_i18n/LocalStrings_zh_TW.properties +++ /dev/null @@ -1,28 +0,0 @@ -#Mon Jan 18 16:33:17 CET 2010 -action.activate=\u555F\u52D5 -action.delete.selection=\u767C\u9001\u96FB\u5B50\u90F5\u4EF6\u901A\u77E5\u64C1\u6709\u8005\u95DC\u65BC\u4ED6\u5011\u7684\u8CC7\u6E90\u5373\u5C07\u88AB\u522A\u9664\u3002 -action.ready.to.delete=\u522A\u9664\u9078\u53D6\u7684\u5B78\u7FD2\u8CC7\u6E90 -button.editParameter=\u4FEE\u6539\u671F\u9650 -delete.announcement.email.body=\u4E0B\u5217\u7684\u5B78\u7FD2\u8CC7\u6E90\u672A\u88AB\u4F7F\u7528\u5DF2\u9054 $lastloginduration \u6708\u56E0\u6B64\u5C07\u65BC $durationdeleteemail \u65E5\u5167\u88AB\u522A\u9664\u3002\u70BA\u4E86\u907F\u514D\u6B64\u4E8B\u53EA\u8981\u555F\u52D5\u60A8\u4ECD\u7136\u9700\u8981\u7684\u8CC7\u6E90\u6216\u56DE\u8986\u5230 $responseTo\u3002\n\r\u9019\u95DC\u4FC2\u5230\u9019\u4E9B\u5B78\u7FD2\u8CC7\u6E90\uFF1A\n\r$repositoryList -delete.announcement.email.subject=\u6CE8\u610F\uFF1A\u5B78\u7FD2\u8CC7\u6E90\u5373\u5C07\u5728 OLAT \u4E2D\u88AB\u522A\u9664 -delete.email.announcement.warning.header=\u901A\u77E5\u64C1\u6709\u8005\u95DC\u65BC\u5373\u5C07\u522A\u9664\u8CC7\u6E90\u7684\u96FB\u5B50\u90F5\u4EF6\u7121\u6CD5\u767C\u9001\u7D66\u4E0B\u5217\u6536\u4EF6\u4EBA\uFF1A <br> -delete.workflow.tab.select.delete=\u53EF\u4EE5\u522A\u4E86 -delete.workflow.tab.start.process=\u4E0D\u6D3B\u52D5\u7684\u5B78\u7FD2\u8CC7\u6E90 -delete.workflow.tab.status.email=\u96FB\u5B50\u90F5\u4EF6\u5DF2\u767C\u9001 -edit.parameter.form.email.duration=\u64C1\u6709\u8005\u4E0D\u56DE\u8986\u60A8\u7684\u96FB\u5B50\u90F5\u4EF6\u8D85\u904E\uFF1F (\u5929) -edit.parameter.form.lastusage.duration=\u5B78\u7FD2\u8CC7\u6E90\u4E0D\u6D3B\u52D5\u5DF2\u9054\uFF1F (\u6708) -edit.parameter.form.submit=\u5132\u5B58 -edit.parameter.header=\u4FEE\u6539\u522A\u9664\u6D41\u7A0B\u7684\u671F\u9650 -email.error.address=\u4F7F\u7528\u8005 {0} \u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740 {1} \u662F\u7121\u6548\u7684\u3002 -email.error.send.failed=\u9019\u500B\u90F5\u4EF6\u7121\u6CD5\u767C\u9001\u5230\u4F7F\u7528\u8005 {0} \u7684\u96FB\u5B50\u90F5\u4EF6\u5730\u5740 {1}\u3002 -error.deleteworkflow.locked.by=\u60A8\u7121\u6CD5\u522A\u9664\u9019\u4E9B\u5B78\u7FD2\u8CC7\u6E90\u56E0\u70BA\u4F7F\u7528\u8005 {0} \u6B64\u523B\u6B63\u5728\u4F7F\u7528\u5B83\u5011\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 -error.no.repository.found=\u627E\u4E0D\u5230\u76F8\u7B26\u7684\u5B78\u7FD2\u8CC7\u6E90\u3002 -nothing.selected.msg=\u6C92\u6709\u5B78\u7FD2\u8CC7\u6E90\u88AB\u9078\u53D6\u3002 -ready.to.delete.header=\u5E95\u4E0B\u7684\u5B78\u7FD2\u8CC7\u6E90\u5DF2\u6E96\u5099\u8981\u88AB\u522A\u9664\u3002\u81EA\u9001\u51FA\u96FB\u5B50\u90F5\u4EF6\u8D77\u7684 {0} \u5929\u671F\u9593\u5DF2\u904E\u4F46\u6C92\u6709\u4EFB\u4F55\u53CD\u61C9\u3002\u6309\u4E0B <i>\u555F\u7528</i> \u60A8\u53EF\u4EE5\u907F\u514D\u5B78\u7FD2\u8CC7\u6E90\u7684\u522A\u9664\u3002 -readyToDelete.delete.confirm=\u9078\u53D6\u7684\u5B78\u7FD2\u8CC7\u6E90\u5C07\u5728\u5B83\u5011\u88AB\u522A\u9664\u524D\u5099\u4EFD\u8D77\u4F86\u3002 -readyToDelete.deleted.msg=\u5B78\u7FD2\u8CC7\u6E90\u5DF2\u522A\u9664\u3002 -selection.delete.header=\u5E95\u4E0B\u7684\u5B78\u7FD2\u8CC7\u6E90\u4E0D\u518D\u88AB\u4F7F\u7528\u5DF2\u9054 {0} \u500B\u6708\u3002\u60A8\u53EF\u4EE5\u900F\u904E\u96FB\u5B50\u90F5\u4EF6\u901A\u77E5\u9078\u53D6\u7684\u5B78\u7FD2\u8CC7\u6E90\u7684\u64C1\u6709\u8005\u6709\u95DC\u4ED6\u5011\u7684\u8CC7\u6E90\u5373\u5C07\u88AB\u522A\u9664\u7684\u8A0A\u606F\u3002\u6309\u4E0B <i>\u555F\u52D5</i> \u60A8\u53EF\u4EE5\u907F\u514D\u9019\u6A23\u7684\u522A\u9664\u3002 -selection.feedback.msg=\u96FB\u5B50\u90F5\u4EF6\u88AB\u767C\u9001\u5230\u5B78\u7FD2\u8CC7\u6E90\u7684\u64C1\u6709\u8005\u4EE5\u901A\u77E5\u4ED6\u5011\u95DC\u65BC\u4ED6\u5011\u7684\u8CC7\u6E90\u5373\u5C07\u88AB\u522A\u9664\u3002 -status.delete.email.header=\u4E0B\u5217\u5B78\u7FD2\u8CC7\u6E90\u7684\u64C1\u6709\u8005\u5DF2\u88AB\u96FB\u5B50\u90F5\u4EF6\u901A\u77E5\u6709\u95DC\u4ED6\u5011\u7684\u8CC7\u6E90\u5373\u5C07\u88AB\u522A\u9664\u3002 {0} \u5929\u7684\u53CD\u61C9\u671F\u9593 (\u900F\u904E\u56DE\u8986\u96FB\u5B50\u90F5\u4EF6\u6216\u555F\u52D5\u4ED6\u5011\u7684\u5B78\u7FD2\u8CC7\u6E90) \u5C1A\u672A\u903E\u671F\u3002 -table.header.action=\u52D5\u4F5C -table.header.deleteEmail=\u95DC\u65BC\u5B78\u7FD2\u8CC7\u6E90\u5373\u5C07\u88AB\u522A\u9664\u7684\u96FB\u5B50\u90F5\u4EF6 diff --git a/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java b/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java deleted file mode 100644 index 895cb9f020a25bd366bca251dfb5b38f41b6dd25..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/repository/delete/service/RepositoryDeletionManager.java +++ /dev/null @@ -1,433 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <p> -* Licensed under the Apache License, Version 2.0 (the "License"); <br> -* you may not use this file except in compliance with the License.<br> -* You may obtain a copy of the License at -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <p> -* Unless required by applicable law or agreed to in writing,<br> -* software distributed under the License is distributed on an "AS IS" BASIS, <br> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> -* See the License for the specific language governing permissions and <br> -* limitations under the License. -* <p> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -*/ - -package org.olat.repository.delete.service; - -import java.io.File; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import org.olat.basesecurity.GroupRoles; -import org.olat.commons.lifecycle.LifeCycleManager; -import org.olat.core.commons.persistence.DBFactory; -import org.olat.core.commons.persistence.DBQuery; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.gui.translator.Translator; -import org.olat.core.id.Identity; -import org.olat.core.id.UserConstants; -import org.olat.core.manager.BasicManager; -import org.olat.core.util.Util; -import org.olat.core.util.i18n.I18nManager; -import org.olat.core.util.mail.MailBundle; -import org.olat.core.util.mail.MailManager; -import org.olat.core.util.mail.MailTemplate; -import org.olat.core.util.mail.MailerResult; -import org.olat.properties.Property; -import org.olat.properties.PropertyManager; -import org.olat.repository.ErrorList; -import org.olat.repository.RepositoryEntry; -import org.olat.repository.RepositoryManager; -import org.olat.repository.RepositoryService; -import org.olat.repository.delete.SelectionController; -import org.olat.repository.handlers.RepositoryHandler; -import org.olat.repository.handlers.RepositoryHandlerFactory; -import org.olat.resource.OLATResourceManager; -import org.olat.resource.references.ReferenceManager; -import org.olat.user.UserDataDeletable; -import org.olat.user.UserManager; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - - -/** - * Initial Date: Mar 31, 2004 - * - * @author Mike Stock - * - * Comment: - * - */ -@Service("repositoryDeletionManager") -public class RepositoryDeletionManager extends BasicManager implements UserDataDeletable { - - private static final String REPOSITORY_ARCHIVE_DIR = "archive_deleted_resources"; - - private static final String PROPERTY_CATEGORY = "RepositoryDeletion"; - private static final String LAST_USAGE_DURATION_PROPERTY_NAME = "LastUsageDuration"; - private static final int DEFAULT_LAST_USAGE_DURATION = 24; - private static final String DELETE_EMAIL_DURATION_PROPERTY_NAME = "DeleteEmailDuration"; - private static final int DEFAULT_DELETE_EMAIL_DURATION = 30; - - private static RepositoryDeletionManager INSTANCE; - - public static final String SEND_DELETE_EMAIL_ACTION = "sendDeleteEmail"; - private static final String REPOSITORY_DELETED_ACTION = "respositoryEntryDeleted"; - - private final DeletionModule deletionModule; - - @Autowired - private MailManager mailManager; - @Autowired - private RepositoryService repositoryService; - - @Autowired - public RepositoryDeletionManager(DeletionModule deletionModule) { - this.deletionModule = deletionModule; - INSTANCE = this; - } - - /** - * @return Singleton. - */ - public static RepositoryDeletionManager getInstance() { - return INSTANCE; - } - - ////////////////// - // USER_DELETION - ////////////////// - /** - * Remove identity as owner and initial author. Used in user-deletion. - * If there is no other owner and/or author, the olat-administrator (defined in olat.properties) will be added as owner. - * - * @see org.olat.user.UserDataDeletable#deleteUserData(org.olat.core.id.Identity) - */ - public void deleteUserData(Identity identity, String newDeletedUserName) { - // Remove as owner - List<RepositoryEntry> repoEntries = RepositoryManager.getInstance().queryByOwner(identity, new String[] {}/*no type limit*/); - for (Iterator<RepositoryEntry> iter = repoEntries.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - - repositoryService.removeRole(identity, repositoryEntry, GroupRoles.owner.name()); - if (repositoryService.countMembers(repositoryEntry, GroupRoles.owner.name()) == 0 ) { - // This group has no owner anymore => add OLAT-Admin as owner - repositoryService.addRole(deletionModule.getAdminUserIdentity(), repositoryEntry, GroupRoles.owner.name()); - logInfo("Delete user-data, add Administrator-identity as owner of repositoryEntry=" + repositoryEntry.getDisplayname()); - } - } - // Remove as initial author - repoEntries = RepositoryManager.getInstance().queryByInitialAuthor(identity.getName()); - for (Iterator<RepositoryEntry> iter = repoEntries.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - repositoryEntry.setInitialAuthor(deletionModule.getAdminUserIdentity().getName()); - logInfo("Delete user-data, add Administrator-identity as initial-author of repositoryEntry=" + repositoryEntry.getDisplayname()); - } - logDebug("All owner and initial-author entries in repository deleted for identity=" + identity); - } - - - ////////////////////// - // REPOSITORY_DELETION - ////////////////////// - public void setLastUsageDuration(int lastUsageDuration) { - setProperty(LAST_USAGE_DURATION_PROPERTY_NAME, lastUsageDuration); - } - - public void setDeleteEmailDuration(int deleteEmailDuration) { - setProperty(DELETE_EMAIL_DURATION_PROPERTY_NAME, deleteEmailDuration); - } - - public int getLastUsageDuration() { - return getPropertyByName(LAST_USAGE_DURATION_PROPERTY_NAME, DEFAULT_LAST_USAGE_DURATION); - } - - public int getDeleteEmailDuration() { - return getPropertyByName(DELETE_EMAIL_DURATION_PROPERTY_NAME, DEFAULT_DELETE_EMAIL_DURATION); - } - - public String sendDeleteEmailTo(List<RepositoryEntry> selectedRepositoryEntries, MailTemplate mailTemplate, boolean isTemplateChanged, String key_email_subject, - String key_email_body, Identity sender, Translator pT) { - StringBuilder buf = new StringBuilder(); - if (mailTemplate != null) { - Map<Identity, List<RepositoryEntry>> identityRepositoryList = collectRepositoryEntriesForIdentities(selectedRepositoryEntries); - // loop over identity list and send email - for (Iterator<Identity> iterator = identityRepositoryList.keySet().iterator(); iterator.hasNext();) { - String result = sendEmailToIdentity(iterator.next(), identityRepositoryList, mailTemplate, isTemplateChanged, key_email_subject, - key_email_body, sender, pT); - if (result != null) { - buf.append(result).append("\n"); - } - } - } else { - // no template => User decides to sending no delete-email, mark only in lifecycle table 'sendEmail' - for (Iterator<RepositoryEntry> iter = selectedRepositoryEntries.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - logAudit("Repository-Deletion: Move in 'Email sent' section without sending email, repositoryEntry=" + repositoryEntry ); - markSendEmailEvent(repositoryEntry); - } - } - return buf.toString(); - } - - - /** - * Loop over all repository-entries and collect repository-entries with the same owner identites - * @param repositoryList - * @return HashMap with Identity as key elements, List of RepositoryEntry as objects - */ - private Map<Identity, List<RepositoryEntry>> collectRepositoryEntriesForIdentities(List<RepositoryEntry> repositoryList) { - Map<Identity, List<RepositoryEntry>> identityRepositoryList = new HashMap<Identity, List<RepositoryEntry>>(); - for (Iterator<RepositoryEntry> iter = repositoryList.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - - // Build owner group, list of identities - List<Identity> ownerIdentities = repositoryService.getMembers(repositoryEntry, GroupRoles.owner.name()); - if(ownerIdentities.isEmpty()) { - logInfo("collectRepositoryEntriesForIdentities: ownerGroup is null, add adminUserIdentity as owner repositoryEntry=" + repositoryEntry.getDisplayname() + " repositoryEntry.key=" + repositoryEntry.getKey()); - // Add admin user - ownerIdentities = new ArrayList<Identity>(); - ownerIdentities.add(deletionModule.getAdminUserIdentity()); - } - // Loop over owner to collect all repository-entry for each user - for (Iterator<Identity> iterator = ownerIdentities.iterator(); iterator.hasNext();) { - Identity identity = iterator.next(); - if (identityRepositoryList.containsKey(identity) ) { - List<RepositoryEntry> repositoriesOfIdentity = identityRepositoryList.get(identity); - repositoriesOfIdentity.add(repositoryEntry); - } else { - List<RepositoryEntry> repositoriesOfIdentity = new ArrayList<RepositoryEntry>(); - repositoriesOfIdentity.add(repositoryEntry); - identityRepositoryList.put(identity, repositoriesOfIdentity); - } - } - - } - return identityRepositoryList; - } - - - private String sendEmailToIdentity(Identity identity, Map<Identity, List<RepositoryEntry>> identityRepositoryList, MailTemplate template, - boolean isTemplateChanged, String keyEmailSubject, String keyEmailBody, Identity sender, Translator pT) { - template.addToContext("responseTo", deletionModule.getEmailResponseTo()); - if (!isTemplateChanged) { - // Email template has NOT changed => take translated version of subject and body text - Locale locale = I18nManager.getInstance().getLocaleOrDefault(identity.getUser().getPreferences().getLanguage()); - Translator identityTranslator = Util.createPackageTranslator(SelectionController.class, locale); - template.setSubjectTemplate(identityTranslator.translate(keyEmailSubject)); - template.setBodyTemplate(identityTranslator.translate(keyEmailBody)); - } - // loop over all repositoriesOfIdentity to build email message - StringBuilder buf = new StringBuilder(); - for (Iterator<RepositoryEntry> repoIterator = identityRepositoryList.get(identity).iterator(); repoIterator.hasNext();) { - RepositoryEntry repositoryEntry = repoIterator.next(); - buf.append("\n ").append( repositoryEntry.getDisplayname() ).append(" / ").append(trimDescription(repositoryEntry.getDescription(), 60)); - } - template.addToContext("repositoryList", buf.toString()); - template.putVariablesInMailContext(template.getContext(), identity); - logDebug(" Try to send Delete-email to identity=" + identity.getName() + " with email=" + identity.getUser().getProperty(UserConstants.EMAIL, null)); - - - MailerResult result = new MailerResult(); - MailBundle bundle = mailManager.makeMailBundle(null, identity, template, sender, null, result); - result.append(mailManager.sendMessage(bundle)); - if(template.getCpfrom()) { - MailBundle ccBundle = mailManager.makeMailBundle(null, sender, template, sender, null, result); - result.append(mailManager.sendMessage(ccBundle)); - } - - if (result.getReturnCode() == MailerResult.OK) { - // Email sended ok => set deleteEmailDate - for (Iterator<RepositoryEntry> repoIterator = identityRepositoryList.get(identity).iterator(); repoIterator.hasNext();) { - RepositoryEntry repositoryEntry = repoIterator.next(); - logAudit("Repository-Deletion: Delete-email for repositoryEntry=" + repositoryEntry + "send to identity=" + identity.getName()); - markSendEmailEvent(repositoryEntry); - } - return null; // Send ok => return null - } else { - String fullname = UserManager.getInstance().getUserDisplayName(identity); - return pT.translate("email.error.send.failed", new String[] { identity.getUser().getProperty(UserConstants.EMAIL, null), fullname } ); - } - } - - private void markSendEmailEvent(RepositoryEntry repositoryEntry) { - //repositoryEntry = (RepositoryEntry)DBFactory.getInstance().loadObject(repositoryEntry); - LifeCycleManager.createInstanceFor(repositoryEntry).markTimestampFor(SEND_DELETE_EMAIL_ACTION); - //DBFactory.getInstance().updateObject(repositoryEntry); - } - - - private String trimDescription(String description, int maxlength) { - if (description.length() > (maxlength) ) { - return description.substring(0,maxlength-3) + "..."; - } - return description; - } - - - public List<RepositoryEntry> getDeletableReprositoryEntries(int lastLoginDuration) { - Calendar lastUsageLimit = Calendar.getInstance(); - lastUsageLimit.add(Calendar.MONTH, - lastLoginDuration); - logDebug("lastLoginLimit=" + lastUsageLimit); - - // 1. get all ReprositoryEntries with lastusage > x - String query = "select re from org.olat.repository.RepositoryEntry as re " - + " where (re.lastUsage = null or re.lastUsage < :lastUsage)" - + " and re.olatResource != null "; - DBQuery dbq = DBFactory.getInstance().createQuery(query); - dbq.setDate("lastUsage", lastUsageLimit.getTime()); - List reprositoryEntries = dbq.list(); - // 2. get all ReprositoryEntries in deletion-process (email send) - query = "select re from org.olat.repository.RepositoryEntry as re" - + " , org.olat.commons.lifecycle.LifeCycleEntry as le" - + " where re.key = le.persistentRef " - + " and re.olatResource != null " - + " and le.persistentTypeName ='" + RepositoryEntry.class.getName() + "'" - + " and le.action ='" + SEND_DELETE_EMAIL_ACTION + "' "; - dbq = DBFactory.getInstance().createQuery(query); - List groupsInProcess = dbq.list(); - // 3. Remove all ReprositoryEntries in deletion-process from all unused-ReprositoryEntries - reprositoryEntries.removeAll(groupsInProcess); - return filterRepositoryWithReferences(reprositoryEntries); - } - - - private List<RepositoryEntry> filterRepositoryWithReferences(List<RepositoryEntry> repositoryList) { - logDebug("filterRepositoryWithReferences repositoryList.size=" + repositoryList.size()); - List<RepositoryEntry> filteredList = new ArrayList<RepositoryEntry>(); - int loopCounter = 0; - for (Iterator<RepositoryEntry> iter = repositoryList.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - logDebug("filterRepositoryWithReferences repositoryEntry=" + repositoryEntry); - logDebug("filterRepositoryWithReferences repositoryEntry.getOlatResource()=" + repositoryEntry.getOlatResource()); - if (OLATResourceManager.getInstance().findResourceable(repositoryEntry.getOlatResource()) != null) { - if ( ReferenceManager.getInstance().getReferencesTo(repositoryEntry.getOlatResource()).size() == 0 ) { - filteredList.add(repositoryEntry); - logDebug("filterRepositoryWithReferences add to filteredList repositoryEntry=" + repositoryEntry); - } else { - // repositoryEntry has references, can not be deleted - logDebug("filterRepositoryWithReferences Do NOT add to filteredList repositoryEntry=" + repositoryEntry); - if (LifeCycleManager.createInstanceFor(repositoryEntry).hasLifeCycleEntry(SEND_DELETE_EMAIL_ACTION)) { - LifeCycleManager.createInstanceFor(repositoryEntry).deleteTimestampFor(SEND_DELETE_EMAIL_ACTION); - logInfo("filterRepositoryWithReferences: found repositoryEntry with references, remove from deletion-process repositoryEntry=" + repositoryEntry); - } - } - } else { - logError("filterRepositoryWithReferences, could NOT found Resourceable for repositoryEntry=" + repositoryEntry, null); - } - if (loopCounter++ % 100 == 0) { - DBFactory.getInstance().intermediateCommit(); - } - } - logDebug("filterRepositoryWithReferences filteredList.size=" + filteredList.size()); - return filteredList; - } - - public List<RepositoryEntry> getReprositoryEntriesInDeletionProcess(int deleteEmailDuration) { - Calendar deleteEmailLimit = Calendar.getInstance(); - deleteEmailLimit.add(Calendar.DAY_OF_MONTH, - (deleteEmailDuration - 1)); - logDebug("deleteEmailLimit=" + deleteEmailLimit); - String queryStr = "select re from org.olat.repository.RepositoryEntry as re" - + " , org.olat.commons.lifecycle.LifeCycleEntry as le" - + " where re.key = le.persistentRef " - + " and re.olatResource != null " - + " and le.persistentTypeName ='" + RepositoryEntry.class.getName() + "'" - + " and le.action ='" + SEND_DELETE_EMAIL_ACTION + "' and le.lcTimestamp >= :deleteEmailDate "; - DBQuery dbq = DBFactory.getInstance().createQuery(queryStr); - dbq.setDate("deleteEmailDate", deleteEmailLimit.getTime()); - return filterRepositoryWithReferences(dbq.list()); - } - - public List<RepositoryEntry> getReprositoryEntriesReadyToDelete(int deleteEmailDuration) { - Calendar deleteEmailLimit = Calendar.getInstance(); - deleteEmailLimit.add(Calendar.DAY_OF_MONTH, - (deleteEmailDuration - 1)); - logDebug("deleteEmailLimit=" + deleteEmailLimit); - String queryStr = "select re from org.olat.repository.RepositoryEntry as re" - + " , org.olat.commons.lifecycle.LifeCycleEntry as le" - + " where re.key = le.persistentRef " - + " and re.olatResource != null " - + " and le.persistentTypeName ='" + RepositoryEntry.class.getName() + "'" - + " and le.action ='" + SEND_DELETE_EMAIL_ACTION + "' and le.lcTimestamp < :deleteEmailDate "; - DBQuery dbq = DBFactory.getInstance().createQuery(queryStr); - dbq.setDate("deleteEmailDate", deleteEmailLimit.getTime()); - return filterRepositoryWithReferences(dbq.list()); - } - - public void deleteRepositoryEntries(UserRequest ureq, WindowControl wControl, List<RepositoryEntry> repositoryEntryList) { - for (Iterator<RepositoryEntry> iter = repositoryEntryList.iterator(); iter.hasNext();) { - RepositoryEntry repositoryEntry = iter.next(); - RepositoryHandler repositoryHandler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(repositoryEntry); - File archiveDir = new File(getArchivFilePath()); - if (!archiveDir.exists()) { - archiveDir.mkdirs(); - } - String archiveFileName = repositoryHandler.archive(ureq.getIdentity(), getArchivFilePath(), repositoryEntry); - logAudit("Repository-Deletion: archived repositoryEntry=" + repositoryEntry + " , archive-file-name=" + archiveFileName); - ErrorList errors = repositoryService.delete(repositoryEntry, ureq.getIdentity(), ureq.getUserSession().getRoles(), ureq.getLocale()); - if(errors.hasErrors()) { - wControl.setError(errors.getFirstError()); - } - LifeCycleManager.createInstanceFor(repositoryEntry).deleteTimestampFor(SEND_DELETE_EMAIL_ACTION); - LifeCycleManager.createInstanceFor(repositoryEntry).markTimestampFor(REPOSITORY_DELETED_ACTION, createLifeCycleLogDataFor(repositoryEntry)); - logAudit("Repository-Deletion: deleted repositoryEntry=" + repositoryEntry); - DBFactory.getInstance().intermediateCommit(); - } - } - - private String createLifeCycleLogDataFor(RepositoryEntry repositoryEntry) { - StringBuilder buf = new StringBuilder(); - buf.append("<repositoryentry>"); - buf.append("<name>").append(repositoryEntry.getDisplayname()).append("</name>"); - buf.append("<description>").append(trimDescription(repositoryEntry.getDescription(),60)).append("</description>"); - buf.append("<resid>").append(repositoryEntry.getOlatResource().getResourceableId()).append("</resid>"); - buf.append("<initialauthor>").append(repositoryEntry.getInitialAuthor()).append("</initialauthor>"); - buf.append("</repositoryentry>"); - return buf.toString(); - } - - private String getArchivFilePath() { - return deletionModule.getArchiveRootPath() + File.separator + REPOSITORY_ARCHIVE_DIR + File.separator + DeletionModule.getArchiveDatePath(); - } - - ////////////////// - // Private Methods - ////////////////// - private int getPropertyByName(String name, int defaultValue) { - List<Property> properties = PropertyManager.getInstance().findProperties(null, null, null, PROPERTY_CATEGORY, name); - if (properties.size() == 0) { - return defaultValue; - } else { - return properties.get(0).getLongValue().intValue(); - } - } - - private void setProperty(String propertyName, int value) { - List<Property> properties = PropertyManager.getInstance().findProperties(null, null, null, PROPERTY_CATEGORY, propertyName); - Property property = null; - if (properties.size() == 0) { - property = PropertyManager.getInstance().createPropertyInstance(null, null, null, PROPERTY_CATEGORY, propertyName, null, new Long(value), null, null); - } else { - property = properties.get(0); - property.setLongValue( new Long(value) ); - } - PropertyManager.getInstance().saveProperty(property); - } - -} \ No newline at end of file diff --git a/src/main/java/org/olat/repository/manager/RepositoryDeletionManager.java b/src/main/java/org/olat/repository/manager/RepositoryDeletionManager.java new file mode 100644 index 0000000000000000000000000000000000000000..d5c7873ba84e0c69717459dc1d51253f5cfa5c2e --- /dev/null +++ b/src/main/java/org/olat/repository/manager/RepositoryDeletionManager.java @@ -0,0 +1,101 @@ +/** +* OLAT - Online Learning and Training<br> +* http://www.olat.org +* <p> +* Licensed under the Apache License, Version 2.0 (the "License"); <br> +* you may not use this file except in compliance with the License.<br> +* You may obtain a copy of the License at +* <p> +* http://www.apache.org/licenses/LICENSE-2.0 +* <p> +* Unless required by applicable law or agreed to in writing,<br> +* software distributed under the License is distributed on an "AS IS" BASIS, <br> +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> +* See the License for the specific language governing permissions and <br> +* limitations under the License. +* <p> +* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> +* University of Zurich, Switzerland. +* <hr> +* <a href="http://www.openolat.org"> +* OpenOLAT - Online Learning and Training</a><br> +* This file has been modified by the OpenOLAT community. Changes are licensed +* under the Apache 2.0 license as the original file. +*/ + +package org.olat.repository.manager; + +import java.util.Iterator; +import java.util.List; + +import org.olat.basesecurity.GroupRoles; +import org.olat.core.id.Identity; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; +import org.olat.core.util.mail.MailManager; +import org.olat.repository.RepositoryDeletionModule; +import org.olat.repository.RepositoryEntry; +import org.olat.repository.RepositoryManager; +import org.olat.repository.RepositoryService; +import org.olat.user.UserDataDeletable; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * Initial Date: Mar 31, 2004 + * + * @author Mike Stock + * + * Comment: + * + */ +@Service("repositoryDeletionManager") +public class RepositoryDeletionManager implements UserDataDeletable { + + private static final OLog log = Tracing.createLoggerFor(RepositoryDeletionManager.class); + + public static final String SEND_DELETE_EMAIL_ACTION = "sendDeleteEmail"; + + private final RepositoryDeletionModule deletionModule; + + @Autowired + private MailManager mailManager; + @Autowired + private RepositoryService repositoryService; + + @Autowired + public RepositoryDeletionManager(RepositoryDeletionModule deletionModule) { + this.deletionModule = deletionModule; + } + + /** + * Remove identity as owner and initial author. Used in user-deletion. + * If there is no other owner and/or author, the olat-administrator (defined in olat.properties) will be added as owner. + * + * @see org.olat.user.UserDataDeletable#deleteUserData(org.olat.core.id.Identity) + */ + @Override + public void deleteUserData(Identity identity, String newDeletedUserName) { + // Remove as owner + List<RepositoryEntry> repoEntries = RepositoryManager.getInstance().queryByOwner(identity, new String[] {}/*no type limit*/); + for (Iterator<RepositoryEntry> iter = repoEntries.iterator(); iter.hasNext();) { + RepositoryEntry repositoryEntry = iter.next(); + + repositoryService.removeRole(identity, repositoryEntry, GroupRoles.owner.name()); + if (repositoryService.countMembers(repositoryEntry, GroupRoles.owner.name()) == 0 ) { + // This group has no owner anymore => add OLAT-Admin as owner + repositoryService.addRole(deletionModule.getAdminUserIdentity(), repositoryEntry, GroupRoles.owner.name()); + log.info("Delete user-data, add Administrator-identity as owner of repositoryEntry=" + repositoryEntry.getDisplayname()); + } + } + // Remove as initial author + repoEntries = RepositoryManager.getInstance().queryByInitialAuthor(identity.getName()); + for (Iterator<RepositoryEntry> iter = repoEntries.iterator(); iter.hasNext();) { + RepositoryEntry repositoryEntry = iter.next(); + repositoryEntry.setInitialAuthor(deletionModule.getAdminUserIdentity().getName()); + log.info("Delete user-data, add Administrator-identity as initial-author of repositoryEntry=" + repositoryEntry.getDisplayname()); + } + log.debug("All owner and initial-author entries in repository deleted for identity=" + identity); + } +} \ No newline at end of file