diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java index ff270f7b46d23457b3742b15596a296d9a99179e..972fffd8d5bb466aca534bc0e0682a2cdbbccf8b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/database/mysql/VereinfachtesResultSet.java @@ -11,6 +11,30 @@ public class VereinfachtesResultSet { private ResultSet resultSet; + /** + * creates a more verbose error message that actually tells you whats wrong + * @param columnLabel + * @return + */ + private String errorMessage(String columnLabel){ + return String.format( + "error in VereinfachtesResultSet: Spalte %s konnte nicht gefunden werden", + columnLabel + ); + } + + /** + * creates a more verbose error message that actually tells you whats wrong + * @param columnIndex + * @return + */ + private String errorMessage(int columnIndex){ + return String.format( + "error in VereinfachtesResultSet: Zeile %d konnte nicht gefunden werden", + columnIndex + ); + } + public VereinfachtesResultSet(ResultSet resultset) { if (resultset == null) { throw new Error("kein Resultset"); @@ -34,7 +58,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } public float getFloat(int columnIndex) { @@ -43,7 +67,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } public double getDouble(int columnIndex) { @@ -52,7 +76,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } @@ -62,7 +86,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } @@ -72,7 +96,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } public Timestamp getTimestamp(String columnLabel) { @@ -81,7 +105,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } @@ -91,7 +115,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public boolean getBoolean(String columnLabel) { @@ -100,7 +124,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public int getInt(String columnLabel) { @@ -109,7 +133,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public long getLong(String columnLabel) { @@ -118,7 +142,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public float getFloat(String columnLabel) { @@ -127,7 +151,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public double getDouble(String columnLabel) { @@ -136,7 +160,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public ResultSetMetaData getMetaData() { @@ -154,7 +178,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnIndex)); } public Object getObject(String columnLabel) { @@ -163,7 +187,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public int findColumn(String columnLabel) { @@ -172,7 +196,7 @@ public class VereinfachtesResultSet { } catch (SQLException ex) { System.err.println(ex.getMessage()); } - throw new Error("error in VereinfachtesResultSet"); + throw new Error(errorMessage(columnLabel)); } public boolean isBeforeFirst() { diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js b/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js index 96130eb0a3e13aefa384e29a4eda8129f32faf4d..7a5dba5aafdd669caacaef14fc31b945f8665016 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/createJournal.js @@ -10,6 +10,10 @@ function getQueryVariable(variable) } $(document).ready(function() { + $('#backLink').on('click', function(){ + location.href="eportfolio.jsp?token="+getUserTokenFromUrl(); + }); + var journalID = getQueryVariable("journal"); console.log(journalID); if(journalID){ diff --git a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js index 1969dcd03c16d28d19b42958c122f8d8d0425689..658ed766e9a605fa961f40420cebbfeeeee51e4d 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js @@ -1,6 +1,15 @@ //TODO Get student and project form context $(document).ready(function() { + $('#editDescriptionLink').on('click', function(){ + /*TODO getJournal*/ + location.href="editDescription.jsp?project=0&token="+getUserTokenFromUrl(); + }); + + $('#createJournalLink').on('click', function(){ + location.href="createJournal.jsp?token="+getUserTokenFromUrl(); + }); + $.ajax({ url: "../rest/projectdescription/0" }).then(function(data) { @@ -64,7 +73,7 @@ function loadJournals(data) { data[journal].category + '</div>' + '<div class="journal-edit" align="right">' + - '<a class="btn btn-default btn-sm" href="createJournal.jsp?token=test&journal=' + data[journal].id + '"><i class="fa fa-pencil"></i> Bearbeiten</a>' + + '<a class="btn btn-default btn-sm" href="createJournal.jsp?token='+getUserTokenFromUrl()+'&journal=' + data[journal].id + '"><i class="fa fa-pencil"></i> Bearbeiten</a>' + '<a class="btn btn-default btn-sm" data-toggle="modal" data-target="#closeJournalModal"><i class="fa fa-check-square" aria-hidden="true"></i>Abschließen</a>' + '</div>' + '<div class="journal-text">' + diff --git a/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js b/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js index b6f6a893ac478a012bb160ea8854b0d38f38a46f..77eeb04452f089e8369c9b75875eaa3ee2fe4b8b 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/editDescription.js @@ -1,4 +1,8 @@ $(document).ready(function() { + $('#backLink').on('click', function(){ + location.href="eportfolio.jsp?token="+getUserTokenFromUrl(); + }); + $.ajax({ url: "../rest/projectdescription/0" }).then(function(data) { diff --git a/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp b/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp index 1edabf9631499d60bb0966743de7bdcbecc6a19a..ac3da978546d0d608c6fcd1d99595ce45592035f 100644 --- a/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/createJournal.jsp @@ -13,6 +13,7 @@ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> + <script src="../assets/js/utility.js"></script> <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css"> <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css"> @@ -82,7 +83,7 @@ <div class="journal-form-buttons"> <input class="btn btn-default btn-sm" type="submit"> - <a class="btn btn-default btn-sm" href="eportfolio.jsp?token=test"> Zurück </a> + <a id="backLink" class="btn btn-default btn-sm"> Zurück </a> </div> </div> diff --git a/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp b/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp index 664220c7710c7890eb7d2ef947206ee27030e80a..1113922a4f20be7a8a92d2d5689be1ded6c64c08 100644 --- a/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/editDescription.jsp @@ -13,6 +13,7 @@ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.js"></script> + <script src="../assets/js/utility.js"></script> <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css"> <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css"> @@ -56,7 +57,7 @@ <div class="description-form-buttons"> <input class="btn btn-default btn-sm" type="submit"> - <a class="btn btn-default btn-sm" href="eportfolio.jsp?token=test">Zurück</a> + <a id="backLink" class="btn btn-default btn-sm">Zurück</a> </div> </div> diff --git a/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp index 08e452126196eb62a4588ecf857858073fef91bc..9b8c7327608fa000855677daa9af7c1e62a1619e 100644 --- a/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/eportfolio.jsp @@ -9,13 +9,15 @@ <title>E-Portfolio</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/styles.css"> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> - <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css"> <link rel="stylesheet" href="../assets/css/Community-ChatComments.css"> <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css"> <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css"> <link rel="stylesheet" href="../assets/css/e-portfolio.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> + <script src="../assets/js/utility.js"></script> + </head> <body> @@ -51,7 +53,7 @@ <div class="journal-description-title"> </div> <div class="journal-description-edit" align="right"> - <a class="btn btn-default btn-sm" href="editDescription.jsp?project=0&token=test"> + <a id="editDescriptionLink" class="btn btn-default btn-sm"> <i class="fa fa-pencil"></i> Bearbeiten</a> <a class="btn btn-default btn-sm" data-toggle="modal" data-target="#closeDescriptionModal"><i class="fa fa-check-square" aria-hidden="true"></i>Abschließen</a> @@ -70,14 +72,14 @@ </div> <div id="journal-container" class="tab-pane fade"> - <h2>Lernatagebuch</h2> + <h2>Lerntagebuch</h2> <div class="input-group"> <select id="journalfilter" class="form-control" style="width:auto;" onchange="filterJournals()"> <option value="ALL">Alle</option> <option value="OWN">Eigene</option> </select> - <a class="btn btn-default btn-sm" href="createJournal.jsp?token=test">Neu</a> + <a id="createJournalLink"class="btn btn-default btn-sm" >Neu</a> </div> <div class="journal"> </div> diff --git a/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql b/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql new file mode 100644 index 0000000000000000000000000000000000000000..334349f1461a71d36467eb5d032ede7b88c2bfb7 --- /dev/null +++ b/gemeinsamforschen/src/scripts/dbschema/setup_gamification.sql @@ -0,0 +1,58 @@ +-- This script initializes tables to be used for gamification + +CREATE DATABASE IF NOT EXISTS `fltrail` + DEFAULT CHARACTER SET utf8 + COLLATE utf8_general_ci; +USE `fltrail`; + +---- events +-- events can be +-- * writing a comment +-- * taking a quiz +-- * creating a quiz +-- * adding a part of the journal +-- * completing the journal +-- * doing peer assessment (actively and passively) +CREATE TABLE if not exists events +( + eventId varchar(400) NOT NULL, + eventType varchar(400) NOT NULL, + studentId varchar(400) NOT NULL, + projectId varchar(400) NOT NULL, + title varchar(400) NOT NULL, + description varchar(400) NOT NULL +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; + +---- tasks +-- a task is something a student is obliged to do, such as +-- * uploading parts of the journal +-- * completing the journal +-- * giving at least one feedback to another student +-- * absolving peer assessment + +CREATE TABLE if not exists tasks +( + taskId varchar(400) NOT NULL, + taskType varchar(400) NOT NULL, + projectId varchar(400) NOT NULL, + title varchar(400) NOT NULL, + description varchar(400) NOT NULL, + state varchar(400) NOT NULL -- should be "open" or "closed" +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; + +--- achievements +CREATE TABLE if not exists achievements +( + author varchar(400) NOT NULL, + projectId varchar(400) NOT NULL, + question varchar(400) NOT NULL, + mcType varchar(400) NOT NULL, + answer varchar(400) NOT NULL, + correct tinyint(1) NOT NULL +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8;