Skip to content
Snippets Groups Projects
Commit f205c3d7 authored by Thomas Schnaak's avatar Thomas Schnaak
Browse files

fix: fixed some errors with database

parent 3390c494
No related branches found
No related tags found
No related merge requests found
Showing
with 83 additions and 49 deletions
......@@ -7,16 +7,11 @@ import unipotsdam.gf.core.states.PhasesImpl;
import unipotsdam.gf.core.testsandbox.TestList;
import unipotsdam.gf.core.testsandbox.TestListInterface;
import unipotsdam.gf.interfaces.*;
import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
import unipotsdam.gf.modules.assessment.controller.service.PeerAssessmentDummy;
import unipotsdam.gf.modules.communication.service.CommunicationDummyService;
import unipotsdam.gf.modules.groupfinding.DummyGroupfinding;
import unipotsdam.gf.modules.journal.DummyJournalImpl;
import unipotsdam.gf.modules.journal.model.Journal;
import unipotsdam.gf.modules.journal.service.DummyJournalService;
import unipotsdam.gf.modules.peer2peerfeedback.DummyFeedback;
import unipotsdam.gf.modules.researchreport.DummyResearchReportManagement;
import unipotsdam.gf.modules.researchreport.ResearchReport;
import unipotsdam.gf.modules.researchreport.ResearchReportManagement;
public class GFApplicationBinder extends AbstractBinder {
......@@ -29,7 +24,6 @@ public class GFApplicationBinder extends AbstractBinder {
bind(CommunicationDummyService.class).to(ICommunication.class);
bind(ManagementImpl.class).to(Management.class);
bind(DummyFeedback.class).to(Feedback.class);
bind(DummyJournalImpl.class).to(IJournal.class);
bind(PeerAssessmentDummy.class).to(IPeerAssessment.class);
bind(PhasesImpl.class).to(IPhases.class);
bind(ManagementImpl.class).to(Management.class);
......
......@@ -7,7 +7,7 @@ public class GFDatabaseConfig {
public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
public static final String DB_URL = "jdbc:mysql://localhost";
// Database credentials
public static final String USER = "root2";
public static final String PASS = "voyager2";
public static final String USER = "root";
public static final String PASS = "";
public static final String DB_NAME = "fltrail";
}
package unipotsdam.gf.modules.journal.model;
import unipotsdam.gf.core.management.utils.Category;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.peer2peerfeedback.Category;
import java.util.Date;
import static unipotsdam.gf.core.management.utils.MarkdownUtils.convertMarkdownToHtml;
import static unipotsdam.gf.view.MarkdownUtils.convertMarkdownToHtml;
/**
* Model Class for the learnig journal of the e-portfolio
......
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import unipotsdam.gf.modules.journal.model.Journal;
import unipotsdam.gf.modules.journal.model.JournalFilter;
import java.util.ArrayList;
......
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.Journal;
import unipotsdam.gf.modules.journal.model.JournalFilter;
import unipotsdam.gf.modules.journal.util.JournalUtils;
import java.util.ArrayList;
......
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import unipotsdam.gf.modules.journal.model.Link;
import java.util.ArrayList;
......
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
import unipotsdam.gf.modules.journal.model.Link;
import unipotsdam.gf.modules.journal.util.JournalUtils;
import java.util.ArrayList;
......
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.ProjectDescription;
public interface ProjectDescriptionDAO {
void createDescription(ProjectDescription projectDescription);
void updateDescription(ProjectDescription projectDescription);
ProjectDescription getDescription(String projectDescription);
void deleteDescription(String projectDescription);
void closeDescription(String projectDescription);
ProjectDescription getDescription(StudentIdentifier projectDescription);
void deleteDescription(StudentIdentifier projectDescription);
void closeDescription(String projectDescriptionId);
}
package unipotsdam.gf.modules.journal.model;
package unipotsdam.gf.modules.journal.model.dao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.ProjectDescription;
import unipotsdam.gf.modules.journal.util.JournalUtils;
import unipotsdam.gf.modules.journal.view.ProjectDescriptionView;
import java.util.ArrayList;
import java.util.UUID;
public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
......@@ -50,14 +52,14 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
}
@Override
public ProjectDescription getDescription(String projectDescription) {
public ProjectDescription getDescription(StudentIdentifier studentIdentifier) {
// establish connection
MysqlConnect connection = new MysqlConnect();
connection.connect();
// build and execute request
String request = "SELECT * FROM projectdescription WHERE id = ?;";
VereinfachtesResultSet rs = connection.issueSelectStatement(request, projectDescription);
String request = "SELECT * FROM projectdescription WHERE author = ? AND project = ?;";
VereinfachtesResultSet rs = connection.issueSelectStatement(request, studentIdentifier.getStudentId(),studentIdentifier.getProjectId());
if (rs.next()) {
......@@ -78,14 +80,14 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
}
@Override
public void deleteDescription(String projectDescription) {
public void deleteDescription(StudentIdentifier studentIdentifier) {
// establish connection
MysqlConnect connection = new MysqlConnect();
connection.connect();
// build and execute request
String request = "DELETE FROM projectdescription WHERE id = ?;";
connection.issueInsertOrDeleteStatement(request, projectDescription);
String request = "DELETE FROM projectdescription WHERE WHERE author = ? AND project = ?;";
connection.issueInsertOrDeleteStatement(request, studentIdentifier.getStudentId(),studentIdentifier.getProjectId());
// close connection
connection.close();
......@@ -94,14 +96,14 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
}
@Override
public void closeDescription(String projectDescription) {
public void closeDescription(String id) {
// establish connection
MysqlConnect connection = new MysqlConnect();
connection.connect();
// build and execute request
String request = "UPDATE projectdescription SET open=? WHERE id = ?";
connection.issueUpdateStatement(request, false, projectDescription);
connection.issueUpdateStatement(request, false, id);
//close connection
connection.close();
......@@ -115,7 +117,7 @@ public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
String text = rs.getString("text");
String open = rs.getString("open");
return null;
return new ProjectDescription(id,author,text,project,new ArrayList<>(),new ArrayList<>(),timestamp);
}
}
......@@ -4,6 +4,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.*;
import unipotsdam.gf.modules.journal.model.dao.JournalDAO;
import unipotsdam.gf.modules.journal.model.dao.JournalDAOImpl;
import unipotsdam.gf.modules.journal.util.JournalUtils;
import java.util.ArrayList;
......
package unipotsdam.gf.modules.journal.service;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.*;
import unipotsdam.gf.modules.journal.model.dao.LinkDAO;
import unipotsdam.gf.modules.journal.model.dao.LinkDAOImpl;
import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAO;
import unipotsdam.gf.modules.journal.model.dao.ProjectDescriptionDAOImpl;
import java.util.Date;
public class ProjectDescriptionImpl implements ProjectDescriptionService {
......@@ -8,15 +15,23 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService {
LinkDAO linkDAO = new LinkDAOImpl();
@Override
public ProjectDescription getProject(String project) {
public ProjectDescription getProject(StudentIdentifier studentIdentifier) {
//if no description exists, create a new
if(descriptionDAO.getDescription(studentIdentifier)==null){
//TODO richtige Daten, standartwerte über config?
ProjectDescription description = new ProjectDescription("0", studentIdentifier.getStudentId(), "Hier soll ein Turtorialtext stehen", studentIdentifier.getProjectId(), null, null, new Date().getTime());
descriptionDAO.createDescription(description);
}
return descriptionDAO.getDescription(studentIdentifier);
return descriptionDAO.getDescription(project);
}
@Override
public void saveProjectText(String project, String text) {
public void saveProjectText(StudentIdentifier studentIdentifier, String text) {
ProjectDescription desc = getProject(project);
ProjectDescription desc = getProject(studentIdentifier);
desc.setDescription(text);
descriptionDAO.updateDescription(desc);
}
......@@ -33,7 +48,7 @@ public class ProjectDescriptionImpl implements ProjectDescriptionService {
}
@Override
public void closeDescription(String desc) {
descriptionDAO.closeDescription(desc);
public void closeDescription(String projectDescrID) {
descriptionDAO.closeDescription(projectDescrID);
}
}
package unipotsdam.gf.modules.journal.service;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.ProjectDescription;
/**
......@@ -9,13 +10,13 @@ import unipotsdam.gf.modules.journal.model.ProjectDescription;
public interface ProjectDescriptionService {
ProjectDescription getProject(String project);
ProjectDescription getProject(StudentIdentifier studentIdentifier);
void saveProjectText(String project, String text);
void saveProjectText(StudentIdentifier studentIdentifier, String text);
void addLink(String project, String link, String name);
void deleteLink(String link);
void closeDescription(String project);
void closeDescription(String projectDescriptionId);
}
......@@ -4,8 +4,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
import unipotsdam.gf.core.management.utils.Category;
import unipotsdam.gf.modules.journal.model.Visibility;
import unipotsdam.gf.modules.peer2peerfeedback.Category;
/**
* Utility class for Journal and Project description
......
......@@ -139,7 +139,7 @@ public class JournalView {
journalService.closeJournal(journal);
//TODO token
try {
URI location = new URI("../pages/eportfolio.jsp?token=test");
URI location = new URI("../pages/eportfolio.jsp?token=0");
log.debug("<<< closeJournal: redirect to " +location.toString());
return Response.temporaryRedirect(location).build();
......
......@@ -2,6 +2,7 @@ package unipotsdam.gf.modules.journal.view;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import unipotsdam.gf.modules.journal.model.ProjectDescription;
import unipotsdam.gf.modules.journal.service.ProjectDescriptionImpl;
import unipotsdam.gf.modules.journal.service.ProjectDescriptionService;
......@@ -27,11 +28,11 @@ public class ProjectDescriptionView {
//get Description
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("{project}")
public Response getProjectDescription(@PathParam("project") String project){
log.debug(">>> getProjectDescription: " + project);
@Path("{project}/{student}")
public Response getProjectDescription(@PathParam("project") String project, @PathParam("student") String student){
log.debug(">>> getProjectDescription: " + project + "/" + student);
ProjectDescription result = descriptionService.getProject(project);
ProjectDescription result = descriptionService.getProject(new StudentIdentifier(project,student));
log.debug(">>> getProjectDescription");
return Response.ok(result).build();
......@@ -45,11 +46,11 @@ public class ProjectDescriptionView {
public Response saveProjectText(@FormParam("student")String student,@FormParam("project")String project,@FormParam("text")String text){
log.debug(">>> saveText: " + text);
descriptionService.saveProjectText("0",text);
descriptionService.saveProjectText(new StudentIdentifier(project,student),text);
//TODO token
try {
URI location = new URI("../pages/eportfolio.jsp?token=test");
URI location = new URI("../pages/eportfolio.jsp?token=0");
log.debug("<<< saveText: redirect to " +location.toString());
return Response.temporaryRedirect(location).build();
......
......@@ -3,7 +3,7 @@
grid-gap: 10px;
grid-template-columns: 2fr 1fr 15%;
grid-template-areas:
"title edit group"
"edit edit group"
"text text links"
"text text ..."
;
......
//TODO Get student and project form context
$(document).ready(function() {
$('#editDescriptionLink').on('click', function () {
/*TODO getJournal*/
......@@ -11,10 +12,9 @@ $(document).ready(function() {
});
$.ajax({
url: "../rest/projectdescription/test"
url: "../rest/projectdescription/0"
}).then(function(data) {
console.log("desc: " + data);
$('.journal-description-title').append('<h2>' + data.name + '</h2>');
$('.journal-description-text').append(data.descriptionHTML);
for(var link in data.links){
$('.journal-description-links').append('<button class="btn btn-default btn-xs" onclick=\'linkLoeschen("'+link+'")\'> <i class="fa fa-trash" aria-hidden="true" ></i></button><a href=\' + data.links[link] + \'>' + link + '</a> <br/>');
......
......@@ -79,8 +79,7 @@
<div class="journal-form-editor">
<textarea id="editor" name="text" form="journalform">
</textarea>
<textarea id="editor" name="text" form="journalform"></textarea>
</div>
<div class="journal-form-buttons">
......
......@@ -51,8 +51,7 @@
<div class="description-form-container">
<div class ="description-form-editor">
<textarea id = "editor" name="text" form="descriptionform" >
</textarea>
<textarea id = "editor" name="text" form="descriptionform"></textarea>
</div>
<div class="description-form-buttons">
......
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