- Jul 02, 2017
-
-
Daniel Gerhardt authored
Scheduling was disabled unintentionally with the config migration in commit 2ecbfec8. Annotations are added as a replacement for <task:annotation-driven />.
-
- Jun 22, 2017
-
-
- May 24, 2017
-
-
Daniel Gerhardt authored
Since we do not use a SecurityFilter, the previously visited page is not saved in the session.
-
Daniel Gerhardt authored
This improves/fixes compatibility with third-party OAuth APIs.
-
Daniel Gerhardt authored
Consistently prioritize the `api.path` setting before falling back to `servletContext.getContextPath()`.
-
- May 08, 2017
-
-
This should massively reduce the time needed for session creation. Additionally, the `Transactional` annotation has been removed because it did not have any effect in this case.
-
- May 07, 2017
-
-
Daniel Gerhardt authored
Log level for DB logging was overriden by the fallbacki value in some cases.
-
Daniel Gerhardt authored
-
- May 03, 2017
-
-
Daniel Gerhardt authored
-
- May 02, 2017
-
-
Daniel Gerhardt authored
-
- May 01, 2017
-
-
Daniel Gerhardt authored
There should not be any Servlet container around which does not support JSON by default. The backend does not have an AppCache manifest so a mapping is not needed here either.
-
Daniel Gerhardt authored
Since error handlers use JSON for responses there is no need for HTML error pages anymore.
-
Daniel Gerhardt authored
API v3: * Media type: application/vnd.de.thm.arsnova.v3+json * Serializes date as strings conforming to ISO 8601. API v2: * Media type: application/vnd.de.thm.arsnova.v2+json * Serializes dates as timestamps including nanoseconds. An indentation setting has been added: `api.indent-response-body:false`.
-
- Apr 30, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Apr 26, 2017
-
-
Daniel Gerhardt authored
Add messages to exceptions and slightly refactor exception handling.
-
Daniel Gerhardt authored
Exceptions are now always passed to the logger. The logger decides based on configuration whether and how they are logged. Logging messages were adjusted for consistency.
-
Daniel Gerhardt authored
-
- Apr 25, 2017
-
-
Daniel Gerhardt authored
Execption messages in API responses is disabled by default because they can contain sensitive data. The config property `api.expose-exception-messages` has been added and is described in the developer documentation.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Error responses now expose exception details.
-
Daniel Gerhardt authored
Exeption handling was broken by 56fe085e (GH-27).
-
Daniel Gerhardt authored
-
- Apr 21, 2017
-
-
Daniel Gerhardt authored
All former features of NovaView have been merged into CouchDB4J so it is no longer needed.
-
- Apr 17, 2017
-
-
Daniel Gerhardt authored
-
- Apr 16, 2017
-
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * user/ - user/by_creation_for_inactive: (activationKey) creation => _rev * user/inactive_by_creation: (activationKey) creation => _rev - doc_by_username: username => doc * user/all: username => doc
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * comment/ - by_sessionid: sessionId => _rev * interposed_question/count_by_session: sessionId => doc - by_sessionid_creator_read: sessionId, creator, read => _rev * interposed_question/count_by_session_reading_for_creator, sessionId, creator, 'read' | 'unread' => doc - by_sessionid_read: sessionId, read => _rev * interposed_question/count_by_session_reading: sessionId, 'read' | 'unread' => doc - doc_by_sessionid_creator_timestamp: sessionId, creator, timestamp => doc * interposed_question/by_session_and_creator: sessionId, creator, timestamp => doc - doc_by_sessionid_timestamp: sessionId, timestamp => doc * interposed_question/by_session_full: sessionId, timestamp => doc * interposed_question/by_session: sessionId => subject, timestamp, _rev, read, creator
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * answer/ - by_questionid: questionId => _rev * answer/cleanup: questionId => _id - by_questionid_piround_text_subject: questionId, piRound, abstention, answerText, answerSubject, successfulFreeTextAnswer => _rev * skill_question/count_all_answers_by_question: questionId, answerText, answerSubject, successfulFreeTextAnswer => 1 * skill_question/count_answers_by_question_and_piround: questionId, piRount, answerText => 1 * skill_question/count_abstention_answers_by_question: (abstention) questionId => doc * skill_question/count_total_answers_by_question: questionId => doc * skill_question/count_total_answers_by_question_and_piround: questionId, piRount => 1 - by_sessionid: sessionId => _rev * skill_question/count_answers_by_session: sessionId => doc - by_sessionid_variant: sessionId, variant => _rev * skill_question/count_answers_by_session_and_question_variant: sessionId, questionVariant => doc - by_user_sessionid: user, sessionId => _rev * answer/by_user: user, sessionId => questionId - doc_by_questionid_timestamp: questionId, timestamp => doc * skill_question/freetext_answers_full: questionId, timestamp => doc - doc_by_questionid_user_piround: questionId, user, piRound => doc * answer/by_question_and_user_and_piround: questionId, user, piRound => doc - doc_by_user_sessionid: user, sessionId => doc * answer/by_user_and_session_full: user, sessionId => doc - questionid_by_user_sessionid_variant: user, sessionId, questionVariant => questionId * answer/by_user: user, sessionId => questionId * answer/variant_by_user: user, sessionId, questionVariant => questionId - questionid_piround_by_user_sessionid_variant: user, sessionId, questionVariant => questionId, piRound * answer/variant_by_user_and_piround: user, sessionId, questionVariant => questionId, piRound
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * content/ - by_sessionid: sessionId => _rev * skill_question/count_by_session: sessionId => doc - by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => _rev * skill_question/by_session_only_id_for_all: (active == 1) sessionId => null * skill_question/flashcard_count_by_session: (questionVariant == "flashcard") sessionId => doc * skill_question/lecture_question_count_by_session: (questionVariant == 'lecture') sessionId => doc * skill_question/lecture_question_ids_by_session_and_subject: (questionVariant == 'lecture') sessionId, subject => _id * skill_question/lecture_question_ids_by_session_for_all: (questionVariant == "flashcard" && active == 1) doc.sessionId, doc.subject, doc.text => {} * skill_question/lecture_question_subjects_by_session: (questionVariant == 'lecture') sessionId => subject * skill_question/preparation_question_count_by_session: (questionVariant == 'preparation') sessionId => doc * skill_question/preparation_question_ids_by_session_and_subject: (questionVariant == 'preparation') sessionId, subject => _id * skill_question/preparation_question_ids_by_session_for_all: (questionVariant == 'preparation' && active == 1) sessionId, subject, text => {} * skill_question/preparation_question_subjects_by_session (questionVariant == "preparation") sessionId => subject - doc_by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => doc * skill_question/by_session: sessionId, subject => doc * skill_question/by_session_for_all_full: (active == 1) sessionId, subject, text => doc * skill_question/by_session_sorted_by_subject_and_text: sessionID, subject, text => doc * skill_question/flashcard_by_session: (questionVariant == 'flashcard') sessionId, subject, text => doc * skill_question/flashcard_by_session_for_all: (questionVariant == "flashcard" && active == 1) sessionId, subject, text => doc * skill_question/lecture_question_by_session: (questionVariant == 'lecture') sessionId, subject, text => doc * skill_question/lecture_question_by_session_for_all: (questionVariant == 'lecture' && active == 1) sessionId, subject, text => doc * skill_question/preparation_question_by_session: (questionVariant == 'preparation') sessionId, subject, text => doc * skill_question/preparation_question_by_session_for_all: (questionVariant == 'preparation' && doc.active == 1) sessionId, subject, text => doc The following views have been removed: * skill_question/questions_by_ids: _id => doc (use all_docs)
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * motd/ - by_motdkey: motdkey => _rev * motd/by_keyword: motdkey => doc - doc_by_audience_for_global: (audience != 'session') audience => doc * motd/admin: (audience != 'session') 1 => doc * motd/for_tutors: (audience == 'tutors' || audience == 'loggedIn') 1 => doc - 2 backend requests * motd/for_all: (audience == 'all') 1 => doc * motd/for_loggedin: (audience == 'loggedIn') 1 => doc * motd/for_students: (audience == 'students' || audience == 'loggedIn') 1 => doc - 2 backend requests - doc_by_sessionkey: (audience == 'session') sessionkey => doc * motd/by_sessionkey: (audience == 'session') sessionkey => doc * motdlist/ - doc_by_username: username => doc * motd/list_by_username: username => doc The following views have been removed: * motd/all: 1 => doc (never used)
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * session/ - by_courseid: (courseId && sessionType != 'public_pool') courseId => _rev (include_docs) * session/by_courseid: (courseId && sessionType != 'public_pool') courseId => doc - by_keyword: keyword => _rev (include_docs) * session/by_keyword => doc - by_lastactivity_for_guests: (sessionType != 'public_pool' && creator.indexOf('Guest') == 0) lastOwnerActivity || creationTime => _rev * session/by_last_activity_for_guests: (sessionType != 'public_pool' && creator.indexOf('Guest') == 0) lastOwnerActivity || creationTime => _rev - partial_by_ppsubject_name_for_publicpool: (sessionType == 'public_pool') ppSubject, name => partial doc * session/public_pool_by_subject: (sessionType == 'public_pool') ppSubject, name => partial doc - partial_by_sessiontype_crea...
-
- Apr 11, 2017
-
-
Daniel Gerhardt authored
Readd an empty constructor for deserialization with Jackson. It was accidentally removed a part of a code clean up in commit 685695a6.
-
- Mar 28, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Mar 27, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Additionally, removed unused empty constructor
-