Skip to content
Snippets Groups Projects
Commit cb46ae0c authored by User expired's avatar User expired
Browse files

Merge remote-tracking branch 'upstream/OpenOLAT_14.0' into OpenOLAT_14.0.uibk

parents 061967f7 585420a7
No related branches found
No related tags found
No related merge requests found
......@@ -104,7 +104,7 @@ public class BCCourseNode extends AbstractAccessableCourseNode {
@Override
public TabbableController createEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, ICourse course, UserCourseEnvironment euce) {
updateModuleConfigDefaults(false);
BCCourseNodeEditController childTabCntrllr = new BCCourseNodeEditController(this, course, ureq, wControl, euce);
BCCourseNodeEditController childTabCntrllr = new BCCourseNodeEditController(this, course, ureq, wControl, stackPanel, euce);
CourseNode chosenNode = course.getEditorTreeModel().getCourseNode(euce.getCourseEditorEnv().getCurrentCourseNodeId());
return new NodeEditController(ureq, wControl, course.getEditorTreeModel(), course, chosenNode, euce, childTabCntrllr);
}
......
......@@ -31,13 +31,14 @@ 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.link.LinkFactory;
import org.olat.core.gui.components.stack.BreadcrumbPanel;
import org.olat.core.gui.components.stack.PopEvent;
import org.olat.core.gui.components.tabbedpane.TabbedPane;
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.generic.closablewrapper.CloseableModalController;
import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
import org.olat.core.util.vfs.Quota;
import org.olat.core.util.vfs.QuotaManager;
......@@ -78,12 +79,14 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
private Link vfButton;
private TabbedPane myTabbedPane;
private VelocityContainer accessabiliryContent, folderContent;
private final BreadcrumbPanel stackPanel;
private final VelocityContainer folderContent;
private final VelocityContainer accessabiliryContent;
private CloseableModalController cmc;
private FolderRunController folderCtrl;
private BCCourseNodeEditForm folderPathChoose;
private ConditionEditController uploaderCondContr, downloaderCondContr;
private ConditionEditController uploaderCondContr;
private ConditionEditController downloaderCondContr;
@Autowired
......@@ -97,13 +100,15 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
* @param ureq
* @param wControl
*/
public BCCourseNodeEditController(BCCourseNode bcNode, ICourse course, UserRequest ureq, WindowControl wControl,
public BCCourseNodeEditController(BCCourseNode bcNode, ICourse course, UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel,
UserCourseEnvironment euce) {
super(ureq,wControl);
//o_clusterOK by guido: inside course editor its save to have a reference to the course
this.course = course;
this.bcNode = bcNode;
myTabbedPane = null;
this.stackPanel = stackPanel;
stackPanel.addListener(this);
accessabiliryContent = createVelocityContainer("edit");
......@@ -141,8 +146,15 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
@Override
public void event(UserRequest ureq, Component source, Event event) {
if (source == vfButton){
if (source == vfButton) {
doOpenFolder(ureq);
} else if(source == stackPanel) {
if(event instanceof PopEvent) {
PopEvent pe = (PopEvent)event;
if(pe.getController() == folderCtrl) {
cleanUp();
}
}
}
}
......@@ -181,11 +193,10 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
if(namedContainer == null) {
showWarning("warning.no.linkedfolder");
} else {
removeAsListenerAndDispose(folderCtrl);
folderCtrl = new FolderRunController(namedContainer, false, ureq, getWindowControl());
listenTo(folderCtrl);
cmc = new CloseableModalController(getWindowControl(), translate("close"), folderCtrl.getInitialComponent());
listenTo(cmc);
cmc.activate();
stackPanel.pushController("Preview", folderCtrl);
}
}
......@@ -219,21 +230,14 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
accessabiliryContent.contextPut("uploadable", true);
}
fireEvent(urequest, event);
} else if(cmc == source) {
cleanUp();
}
}
private void cleanUp() {
removeAsListenerAndDispose(folderCtrl);
removeAsListenerAndDispose(cmc);
folderCtrl = null;
cmc = null;
}
/**
* @see org.olat.core.gui.control.generic.tabbable.TabbableDefaultController#addTabs(org.olat.core.gui.components.TabbedPane)
*/
@Override
public void addTabs(TabbedPane tabbedPane) {
myTabbedPane = tabbedPane;
......@@ -243,7 +247,9 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
@Override
protected void doDispose() {
//
if(stackPanel != null) {
stackPanel.removeListener(this);
}
}
@Override
......
......@@ -313,7 +313,7 @@ public class ScoreAccounting {
lifecycle.getValidTo();//
}
return lifecycle;
} catch (LazyInitializationException e) {
} catch (LazyInitializationException | NullPointerException e) {
//OO-2667: only seen in 1 instance but as it's a critical place, secure the system
RepositoryEntry reloadedEntry = CoreSpringFactory.getImpl(RepositoryService.class)
.loadByKey(cgm.getCourseEntry().getKey());
......
......@@ -197,7 +197,7 @@ cmd.forward=Weiter
cmd.import.ressource=Importieren
cmd.import.url.ressource=Importieren URL
cmd.import.ressource.desc=W\u00E4hlen Sie eine Lernressource f\u00FCr den Import\:<ul><li>OpenOlat Formate\: Kurs, Ressourcenordner, Glossar, Wiki, Podcast, Blog, Portfoliovorlage</li><li>Videos\: MP4</li><li>Standardformate\: IMS Content Packaging, IMS QTI Test oder Fragebogen, SCORM 1.2</li><li>Dateien\: beliebig</li></ul>
cmd.import.ressource.url.desc=Tragen Sie eine URL f\u00FCr den Import ein\:<ul><li>Videos\: MP4, Youttube, Vimeo, Panopto</li><li>Blog oder Podcast</li></ul>
cmd.import.ressource.url.desc=Tragen Sie eine URL f\u00FCr den Import ein\:<ul><li>Videos\: MP4, Youtube, Vimeo, Panopto</li><li>Blog oder Podcast</li></ul>
comments=Kommentar
confirmation.no.toolHelp=Aktion abbrechen.
confirmation.yes.toolHelp=Lernressource l\u00F6schen.
......
......@@ -196,7 +196,7 @@ cmd.finish=Fermer l'assistant
cmd.forward=Continuer
cmd.import.ressource=Importer
cmd.import.ressource.desc=Choisissez une ressource didactique \u00E0 importer\:<ul><li>Formats OpenOlat\: Cours, le dossier de fichiers, glossaire, wiki, podcasts, blogues, mod\u00E8le portfolio</li><li>Vid\u00E9os\: MP4</li><li>Formats standards\: IMS Content Packaging, test ou questionnaire IMS QTI, SCORM 1.2</li><li>Fichiers\: quelconque</ li> </ ul>
cmd.import.ressource.url.desc=Entrez un lien / URL pour importer\: <ul><li>des vid\u00E9os\: MP4, Youttube, Vimeo, Panopto</li><li>des blog ou des podcast</li></ul>
cmd.import.ressource.url.desc=Entrez un lien / URL pour importer\: <ul><li>des vid\u00E9os\: MP4, Youtube, Vimeo, Panopto</li><li>des blog ou des podcast</li></ul>
cmd.import.url.ressource=Importer une URL
comments=Commentaires
confirmation.no.toolHelp=Annuler l'op\u00E9ration
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment