Skip to content
Snippets Groups Projects
Commit ee981bcc authored by uhensler's avatar uhensler
Browse files

Merge OpenOLAT 11.5 to OpenOLAT 12.0 branch with 8cc0b2d7b4db8220b078c3019e322cf6d0445cad

parents 8834cd4b 1cd4adeb
No related branches found
No related tags found
No related merge requests found
......@@ -30,10 +30,11 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
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.util.FileUtils;
import org.olat.course.nodes.gta.ui.SubmitDocumentsController.SubmittedSolution;
/**
*
*
* Initial date: 27.02.2015<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
......@@ -43,11 +44,11 @@ public class DocumentUploadController extends FormBasicController {
private FileElement fileEl;
private final File fileToReplace;
private final SubmittedSolution solution;
public DocumentUploadController(UserRequest ureq, WindowControl wControl) {
this(ureq, wControl, null, null);
}
public DocumentUploadController(UserRequest ureq, WindowControl wControl, SubmittedSolution solution, File fileToReplace) {
super(ureq, wControl);
this.solution = solution;
......@@ -62,29 +63,29 @@ public class DocumentUploadController extends FormBasicController {
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
formLayout.setElementCssClass("o_sel_course_gta_upload_form");
fileEl = uifactory.addFileElement(getWindowControl(), "file", "solution.file", formLayout);
fileEl.setMandatory(true);
fileEl.addActionListener(FormEvent.ONCHANGE);
if(fileToReplace != null) {
fileEl.setInitialFile(fileToReplace);
}
FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonCont.setRootForm(mainForm);
formLayout.add(buttonCont);
uifactory.addFormSubmitButton("save", buttonCont);
uifactory.addFormCancelButton("cancel", buttonCont, ureq, getWindowControl());
}
public String getUploadedFilename() {
return fileEl.getUploadFileName();
}
public File getUploadedFile() {
return fileEl.getUploadFile();
}
@Override
protected void doDispose() {
//
......@@ -93,13 +94,16 @@ public class DocumentUploadController extends FormBasicController {
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
fileEl.clearError();
if(fileEl.getUploadFile() == null) {
fileEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
} else if (!FileUtils.validateFilename(fileEl.getUploadFileName())) {
fileEl.setErrorKey("error.file.invalid", null);
allOk = false;
}
return allOk & super.validateFormLogic(ureq);
}
......
......@@ -36,6 +36,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
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.util.FileUtils;
import org.olat.core.util.StringHelper;
import org.olat.core.util.vfs.VFSContainer;
import org.olat.core.util.vfs.VFSItem;
......@@ -44,32 +45,32 @@ import org.olat.course.nodes.gta.model.Solution;
/**
*
*
* Initial date: 24.02.2015<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class EditSolutionController extends FormBasicController {
private TextElement titleEl;
private FileElement fileEl;
private final boolean replaceFile;
private final Solution solution;
private final File solutionDir;
private final VFSContainer solutionContainer;
private final String filenameToReplace;
public EditSolutionController(UserRequest ureq, WindowControl wControl,
File solutionDir, VFSContainer solutionContainer) {
this(ureq, wControl, new Solution(), solutionDir, solutionContainer, false);
}
public EditSolutionController(UserRequest ureq, WindowControl wControl, Solution solution,
File solutionDir, VFSContainer solutionContainer) {
this(ureq, wControl, solution, solutionDir, solutionContainer, true);
}
private EditSolutionController(UserRequest ureq, WindowControl wControl,
Solution solution, File solutionDir, VFSContainer solutionContainer, boolean replaceFile) {
super(ureq, wControl);
......@@ -80,11 +81,11 @@ public class EditSolutionController extends FormBasicController {
this.solutionContainer = solutionContainer;
initForm(ureq);
}
public Solution getSolution() {
return solution;
}
public String getFilenameToReplace() {
return filenameToReplace;
}
......@@ -92,7 +93,7 @@ public class EditSolutionController extends FormBasicController {
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
formLayout.setElementCssClass("o_sel_course_gta_upload_solution_form");
String title = solution.getTitle() == null ? "" : solution.getTitle();
titleEl = uifactory.addTextElement("title", "solution.title", 128, title, formLayout);
titleEl.setElementCssClass("o_sel_course_gta_upload_solution_title");
......@@ -107,7 +108,7 @@ public class EditSolutionController extends FormBasicController {
fileEl.setInitialFile(currentFile);
}
}
FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonCont.setRootForm(mainForm);
formLayout.add(buttonCont);
......@@ -119,30 +120,33 @@ public class EditSolutionController extends FormBasicController {
protected void doDispose() {
//
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
titleEl.clearError();
if(!StringHelper.containsNonWhitespace(titleEl.getValue())) {
titleEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
}
fileEl.clearError();
if(fileEl.getInitialFile() == null && fileEl.getUploadFile() == null) {
fileEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
} else if (!FileUtils.validateFilename(fileEl.getUploadFileName())) {
fileEl.setErrorKey("error.file.invalid", null);
allOk = false;
}
return allOk & super.validateFormLogic(ureq);
}
@Override
protected void formOK(UserRequest ureq) {
solution.setTitle(titleEl.getValue());
if(fileEl.getUploadFile() != null) {
if(replaceFile && StringHelper.containsNonWhitespace(solution.getFilename())) {
File currentFile = new File(solutionDir, solution.getFilename());
......@@ -150,7 +154,7 @@ public class EditSolutionController extends FormBasicController {
currentFile.delete();
}
}
String filename = fileEl.getUploadFileName();
if(!replaceFile) {
File currentFile = new File(solutionDir, filename);
......@@ -158,14 +162,14 @@ public class EditSolutionController extends FormBasicController {
filename = VFSManager.rename(solutionContainer, filename);
}
}
solution.setFilename(filename);
try {
Path upload = fileEl.getUploadFile().toPath();
File newFile = new File(solutionDir, filename);
Files.move(upload, newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
VFSItem uploadedItem = solutionContainer.resolve(filename);
if(uploadedItem instanceof MetaTagged) {
MetaInfo metaInfo = ((MetaTagged)uploadedItem).getMetaInfo();
......@@ -176,7 +180,7 @@ public class EditSolutionController extends FormBasicController {
logError("", ex);
}
}
fireEvent(ureq, Event.DONE_EVENT);
}
......
......@@ -35,37 +35,38 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
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.util.FileUtils;
import org.olat.core.util.StringHelper;
import org.olat.course.nodes.gta.model.TaskDefinition;
/**
*
*
* Initial date: 24.02.2015<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class EditTaskController extends FormBasicController {
private TextElement titleEl, descriptionEl;
private FileElement fileEl;
private final boolean replaceFile;
private final TaskDefinition task;
private final File taskContainer;
private final String filenameToReplace;
private final List<TaskDefinition> currentDefinitions;
public EditTaskController(UserRequest ureq, WindowControl wControl, File taskContainer,
List<TaskDefinition> currentDefinitions) {
this(ureq, wControl, new TaskDefinition(), taskContainer, currentDefinitions, false);
}
public EditTaskController(UserRequest ureq, WindowControl wControl, TaskDefinition task, File taskContainer,
List<TaskDefinition> currentDefinitions) {
this(ureq, wControl, task, taskContainer, currentDefinitions, true);
}
public EditTaskController(UserRequest ureq, WindowControl wControl,
TaskDefinition task, File taskContainer,
List<TaskDefinition> currentDefinitions, boolean replaceFile) {
......@@ -77,11 +78,11 @@ public class EditTaskController extends FormBasicController {
this.currentDefinitions = currentDefinitions;
initForm(ureq);
}
public TaskDefinition getTask() {
return task;
}
public String getFilenameToReplace() {
return filenameToReplace;
}
......@@ -89,15 +90,15 @@ public class EditTaskController extends FormBasicController {
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
formLayout.setElementCssClass("o_sel_course_gta_upload_task_form");
String title = task.getTitle() == null ? "" : task.getTitle();
titleEl = uifactory.addTextElement("title", "task.title", 128, title, formLayout);
titleEl.setElementCssClass("o_sel_course_gta_upload_task_title");
titleEl.setMandatory(true);
String description = task.getDescription() == null ? "" : task.getDescription();
descriptionEl = uifactory.addTextAreaElement("descr", "task.description", 2048, 10, -1, true, description, formLayout);
fileEl = uifactory.addFileElement(getWindowControl(), "file", "task.file", formLayout);
fileEl.setMandatory(true);
fileEl.addActionListener(FormEvent.ONCHANGE);
......@@ -107,7 +108,7 @@ public class EditTaskController extends FormBasicController {
fileEl.setInitialFile(currentFile);
}
}
FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
buttonCont.setRootForm(mainForm);
formLayout.add(buttonCont);
......@@ -119,21 +120,24 @@ public class EditTaskController extends FormBasicController {
protected void doDispose() {
//
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
titleEl.clearError();
if(!StringHelper.containsNonWhitespace(titleEl.getValue())) {
titleEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
}
fileEl.clearError();
if(fileEl.getInitialFile() == null && fileEl.getUploadFile() == null) {
fileEl.setErrorKey("form.mandatory.hover", null);
allOk &= false;
} else if (!FileUtils.validateFilename(fileEl.getUploadFileName())) {
fileEl.setErrorKey("error.file.invalid", null);
allOk = false;
} else if(!replaceFile && fileEl.getUploadFile() != null) {
String filename = fileEl.getUploadFileName();
File target = new File(taskContainer, filename);
......@@ -152,7 +156,7 @@ public class EditTaskController extends FormBasicController {
}
}
}
return allOk & super.validateFormLogic(ureq);
}
......@@ -160,7 +164,7 @@ public class EditTaskController extends FormBasicController {
protected void formOK(UserRequest ureq) {
task.setTitle(titleEl.getValue());
task.setDescription(descriptionEl.getValue());
if(fileEl.getUploadFile() != null) {
if(replaceFile && StringHelper.containsNonWhitespace(task.getFilename())) {
int usage = 0;
......@@ -171,7 +175,7 @@ public class EditTaskController extends FormBasicController {
}
}
}
if(usage == 1) {
File currentFile = new File(taskContainer, task.getFilename());
if(currentFile.exists()) {
......@@ -179,7 +183,7 @@ public class EditTaskController extends FormBasicController {
}
}
}
String filename = fileEl.getUploadFileName();
task.setFilename(filename);
try {
......@@ -190,7 +194,7 @@ public class EditTaskController extends FormBasicController {
logError("", ex);
}
}
fireEvent(ureq, Event.DONE_EVENT);
}
......
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