Sebastian Serth
26ea69eba8
Require pair programming for a given set of exercises
2023-09-25 17:29:40 +02:00
Sebastian Serth
e5678483cc
Prevent duplicated 'pp_work_alone' events.
...
* Ensure only one `pp_work_alone` event is stored.
* Disable Turbolinks for Programming Groups Work Alone, so that the implement page is requested normally. Otherwise, Turbolinks would load the page first, just to notice that it needs to reload the page afterwards to include Highlight.js for the tips.
2023-09-23 20:45:49 +02:00
Sebastian Serth
47dd4cf4f7
Further check for programming group and add custom logging
...
Fixes CODEOCEAN-V2
2023-09-22 16:54:54 +02:00
Sebastian Serth
40aa50f772
Fix Pair Programming status for automatically matched learners
2023-09-21 18:55:24 +02:00
Sebastian Serth
bd1090be31
Store whether learners were manually invited to a programming group
2023-09-21 18:55:24 +02:00
Sebastian Serth
dd78c18b87
Only identify users as working alone without an active programming group
2023-09-21 18:55:23 +02:00
Kira Grammel
9f837412c7
Add waiting room to create programming groups ( #1919 )
...
Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de >
2023-09-21 15:07:10 +02:00
Sebastian Serth
1dfc306e76
Refactor passing of parameters for LaExerciseChannel
2023-09-21 11:56:35 +02:00
Sebastian Serth
8cfb9d22c1
Use Ruby interval for where query
2023-09-21 11:27:12 +02:00
Sebastian Serth
b77c98b03f
Add missing has_many associations for Users
2023-09-21 11:27:12 +02:00
Sebastian Serth
06cde49901
Keep var
for global ProgrammingGroups object
...
Otherwise, Turbolinks might cause some nasty redefinition errors.
Fixes CODEOCEAN-FRONTEND-3W
Fixes CODEOCEAN-FRONTEND-3X
2023-09-20 23:56:13 +02:00
Sebastian Serth
69cc0f3c25
Retry storing LTI data on invalid record
...
We might receive a `RecordInvalid` error, if one part (such as the external user) is already assigned (not unique). Hence, we just retry.
Fixes CODEOCEAN-TZ
2023-09-20 23:53:35 +02:00
Sebastian Serth
bd97c18a6c
Add Sentry context for ActionCable
2023-09-20 23:45:12 +02:00
Sebastian Serth
8d04eacd35
Check for active programming group and session ID before unsubscribing
...
Fixes CODEOCEAN-VJ
2023-09-20 23:45:12 +02:00
Sebastian Serth
1bd0cd9a56
Require programming group for streaming the editor
...
Potentially fixes CODEOCEAN-V2
2023-09-20 23:31:54 +02:00
Sebastian Serth
f49d1c6a7b
Catch EOFError when sending LTI scores
...
Fixes CODEOCEAN-VN
Fixes CODEOCEAN-VP
2023-09-20 23:19:48 +02:00
Sebastian Serth
937a0d7d4d
Disallow learners from clicking any button while redirecting after submit
...
Fixes CODEOCEAN-FRONTEND-3M
2023-09-20 00:35:18 +02:00
Sebastian Serth
9a6d590a80
Fix missing Sentry settings for JS initializer
...
Fixes CODEOCEAN-FRONTEND-2W
2023-09-20 00:35:18 +02:00
Sebastian Serth
6f3b72d207
Fix missing Sentry span for WebSocket close
...
Fixes CODEOCEAN-FRONTEND-3C
2023-09-20 00:35:18 +02:00
Sebastian Serth
2200fa427e
Gracely handle missing editor_for_file
...
Fixes CODEOCEAN-FRONTEND-3H
2023-09-20 00:35:18 +02:00
kiragrammel
d224a099e0
Return if editor is not defined
...
Fixes CODEOCEAN-FRONTEND-3A
2023-09-19 22:32:14 +02:00
kiragrammel
51fc44c2da
Allow empty lines for current_content event
...
Fixes CODEOCEAN-VR
2023-09-19 22:32:14 +02:00
Kira Grammel
8a5dc7abc0
Forward person when a programming group is created with them
...
Further, we remove the "check invitation" button and extract some methods to our new ProgrammingGroups object in JavaScript.
Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de >
2023-09-19 20:14:33 +00:00
Sebastian Serth
9848c900c3
Fix incorrect label and form association.
...
This change is required for a better accessibility compatibility.
2023-09-19 15:43:02 +02:00
Sebastian Serth
652f3fefcb
Transform data privacy link from locales to view
...
Amends #1899
2023-09-19 15:38:25 +02:00
Sebastian Serth
1102db9f02
Fix wrong validation of main file count
...
Previously, we were always issuing a database query, so that only those files already stored in the database were counted.
2023-09-16 16:19:31 +02:00
kiragrammel
49e3fa6176
Add events for current_content and connection_status
2023-09-13 17:50:19 +02:00
kiragrammel
5ae306997b
Remove pair programming session text from status bar
2023-09-13 17:50:19 +02:00
kiragrammel
65bf7b6e98
Add user name to etherpad pp feedback
2023-09-13 17:50:19 +02:00
Sebastian Serth
22bdb71ecc
Fix message after subscription confirmation for Async adapter
...
Amends 2c46ad2c
2023-09-13 17:28:14 +02:00
Sebastian Serth
07458f4e2a
Fix incomplete Pair Programming Feedbacks
2023-09-13 09:59:31 +02:00
Sebastian Serth
b8f8d9dc60
Fix large spacing for solo programmers on /implement
2023-09-13 04:36:16 +02:00
Sebastian Serth
bea2e02fa5
Show Pair Programming modal for new Programming Groups
2023-09-13 04:33:31 +02:00
Sebastian Serth
2c46ad2c25
Wait for subscription confirmation before broadcasting
2023-09-13 04:17:36 +02:00
kiragrammel
410d2f79d3
Show link instead of Etherpad for new programming groups in Safari
2023-09-13 01:21:59 +02:00
Sebastian Serth
60656443e2
Update ACE Editor to version 1.2.9
...
The new ACE editor introduces full support for emojis (and, thereby, UTF-16 characters with high- and low-surrogates). Hence, we can remove our custom fix.
Further, this update will allow emojis to be used in pair programming sessions.
2023-09-12 18:54:04 +02:00
Sebastian Serth
13bd68d760
Fix consumer in page context of programming group
2023-09-12 18:48:59 +02:00
kiragrammel
f37ba34389
Synchronize resetCode for pair programming
2023-09-12 18:47:06 +02:00
Sebastian Serth
cc90861bd5
Generate Session ID on server for synchronized editor
...
This change allows us to use the session ID immediately for the connection_change and connection_status methods. Hence, we can identify different browser sessions of the same user.
2023-09-12 18:47:06 +02:00
kiragrammel
914adeed42
Insert text written after last autosave in pp session
2023-09-12 18:47:06 +02:00
kiragrammel
6e0dc9d7bc
Replaces compareDeltaObjects with editor.curOp
2023-09-12 18:47:06 +02:00
Sebastian Serth
735a74901f
Update ACE Editor to version 1.2.0
...
Previously, we were at an ACE editor published between 1.1.8 and 1.1.9. This caused multiple issues and was especially a problem for the upcoming pair programming feature. Further, updating ace is a long-time priority, see https://github.com/openHPI/codeocean/issues/250 .
Now, we are not yet updating to the latest version, but rather to the next minor version. This already contains breaking changes, and we are currently interested to keep the number of changes as low as possible. Further updating ACE might be still a future task.
The new ACE version 1.2.0 is taken from this tag: https://github.com/ajaxorg/ace-builds/releases/tag/v1.2.0 .
We are using the src build (not minified, not in the noconflict version), since the same was used before as well.
Further, we need to change our migration for storing editor events. Since the table is not yet used (in production), we also update the enum.
2023-09-12 16:41:33 +02:00
kiragrammel
a7fa9b5b04
Improve layout for programming groups
2023-09-11 14:43:00 +02:00
kiragrammel
5da871a0e9
Add info modal for pair programming
2023-09-11 14:43:00 +02:00
kiragrammel
883169121c
Provide current-contributor application-wide
...
* This change allows us to reuse the current user in multiple places.
2023-09-11 14:43:00 +02:00
Sebastian Serth
c29256aa81
Fix Rubocop offenses
2023-09-11 14:10:16 +02:00
Sebastian Serth
5f99e7ee54
Store Session ID for Event::SynchronizedEditor
2023-09-08 11:48:53 +02:00
kiragrammel
02e50e9921
Correct connection status if user used multiple windows
2023-09-08 11:48:53 +02:00
kiragrammel
930d532fb6
Add third question in pp exercise feedback
2023-09-08 11:48:53 +02:00
Sebastian Serth
b43441f85e
Set lastDeltaObject per file
...
* This change will potentially resolve a race condition that could occur when the same change was simultaneously performed in two different files.
2023-09-08 11:48:53 +02:00