Commit Graph

811 Commits

Author SHA1 Message Date
6e4e376c91 Fix missing linter results caused by incorrect JS loop
Fixes CODEOCEAN-FRONTEND-69
2024-04-24 17:52:46 +02:00
88c6be88f1 Fix race condition on JavaScript initializer
Previously, ProgrammingGroups could have been undefined in rare cases. Therefore, we check whether the variable is properly defined before calling the method.

Fixes CODEOCEAN-FRONTEND-7D
2024-04-24 17:23:29 +02:00
e9941d8f47 Keep indention when displaying comments 2024-04-23 22:55:20 +02:00
dfa970664d Escape text passed in collection sorting
Previously, the ID and title of tips and exercises newly added to the list were gathered from the DOM. While we keep this mechanism, we ensure to escape the text before reusing it.
2024-03-28 19:05:55 +01:00
4f8d313da4 Use webpack to deliver newest ACE editor
With this commit, we change the delivery method for the ACE editor from manually copied files to using yarn and webpack. As a side-change, we also modify how the mode is selected through JavaScript instead of Ruby.

Through webpack, the `modePath`, `themePath`, and `workerPath` are automatically determined and working as expected.

Closes #250
2024-03-25 10:00:04 +01:00
942dbd20db Fix display of custom annotations in ACE Editor
With these changes, we no longer need our custom changes previously restored with 1013903.
2024-03-25 10:00:04 +01:00
e366ebd34c Resolve deprecation warnings for ACE Editor 1.32.6 2024-03-25 10:00:04 +01:00
117d3366ad fix kramdown using curved quotes and replace them with straight quotation marks 2024-03-14 17:03:00 +01:00
60dad19ea5 Rename .js.erb files .js
Since we switched to more I18n-JS and JsRoute functions with f5739a33 and 2f03061f, we don't have the need to use a template engine for those files any longer.
2024-01-19 11:06:40 +01:00
5b35ccdfe8 Reuse jQuery selector where possible 2024-01-19 11:06:40 +01:00
affeb2d3ba Remove obsolete user_id leftover in requestComments() 2024-01-19 11:06:40 +01:00
a9e1d491be Use safe comparison in JavaScript 2024-01-19 11:06:40 +01:00
9147482876 Use JsRoutes in .js.erb files 2024-01-19 11:06:40 +01:00
34aac83909 Use I18n-JS rather than rails-i18n in .js.erb files 2024-01-19 11:06:40 +01:00
d6c4df1bac Remove JavaScript debugger statement 2024-01-19 11:06:40 +01:00
43f93af575 Fix missing confirmation when deleting a user-generated file 2024-01-19 11:06:40 +01:00
bf0e6149da Remove obsolete context-type attribute for submissions
The value and function is no longer used.
2024-01-19 11:06:40 +01:00
6d62dfc3de Remove anchor replacement in active_file.filename
Previously, this replacement was required, but it is no longer (since we are not using some form of direct user-input).
2024-01-19 11:06:40 +01:00
21e0784af5 Rewrite createSubmissionCallback to use real forEach loop 2024-01-19 11:06:40 +01:00
e2c8156f0e Simplify forEach loops in JavaScript
See https://stackoverflow.com/a/9329476
2024-01-19 11:06:40 +01:00
17dd8b1267 Change syntax for routes with filename
Previously, the filename was URL-encoded, thus each / was replaced with %2F. This caused issues with some Apache2 configuration, smartly mingling with the URL to either encode it a second time (resulting in %252F) or decoding it (generating a real /). However, for authenticated file downloads with the JWT, we hardly require a byte-by-byte matching. With these changes, the URL parameter is no longer URL-encoded, so that Apache2 won't break our implementation any longer.

Further, we use this opportunity to get rid of the unnecessary .json extension for those filename routes, simplifying the routes generated and doing some further cleanup.
2024-01-19 11:06:40 +01:00
65212c4b4b Reduce file attributes in JSON for submission#show 2024-01-19 11:06:40 +01:00
293bb5d4ab Switch to proper, dynamic route for SortableJS elements 2023-12-14 00:31:41 +01:00
ef89b20986 Improve explanation for hidden feedback messages in tests 2023-12-08 20:25:02 +01:00
f393d8cb48 Sentry: Allow backend filtering for WebSocket connections without frontend 2023-12-02 23:30:03 +01:00
b4ee21a00d Reduce global JavaScript variables for Turtle
Fixes
2023-11-25 01:18:19 +01:00
0bd7c93d65 Allow clicking on checkboxes for batch update 2023-11-24 16:41:49 +01:00
175c8933f3 Automatically submit LTI grade on each score run
With this commit, we refactor the overall score handling of CodeOcean. Previously, "Score" and "Submit" were two distinct actions, requiring users to confirm the LTI transmission of their score (after assessing their submission). This yielded many questions and was unnecessary, since LTI parameters are no longer expiring after each use. Therefore, we can now transmit the current grade on each score run with the very same LTI parameters. As a consequence, the LTI consumer gets a more detailed history of the scores, enabling further analytical insights.

For users, the previous "Submit" button got replaced with a notification that is shown as soon as the full score got reached. Then, learners can decide to "finalize" their work on the given exercise, which will initiate a redirect to a follow-up action (as defined in the RedirectBehavior). This RedirectBehavior has also been unified and simplified for better readability.

As part of this refactoring, we rephrased the notifications and UX workflow of a) the LTI transmission, b) the finalization of an exercise (measured by reaching the full score) and c) the deadline handling (on time, within grace period, too late). Those information are now separately shown, potentially resulting in multiple notifications. As a side effect, they are much better maintainable, and the LTI transmission is more decoupled from this notification handling.
2023-11-23 14:42:10 +01:00
c9ed9bd0cf Fix batch update for exercises
This fixes a regression from 8a055a0d
2023-11-20 22:33:58 +01:00
e03e67a1a5 Only return height and width for Turtle if canvas is present
Fixes CODEOCEAN-FRONTEND-4P
2023-11-17 14:59:49 +01:00
3d5f55f8ed Only apply Turtle update if canvas is present
Fixes CODEOCEAN-FRONTEND-4T
2023-11-17 14:59:49 +01:00
ce6470cd72 Carefully check for tooltip in Run-Stop button group
Fixes CODEOCEAN-FRONTEND-5C
2023-11-17 14:59:49 +01:00
c18aadaf61 Don't throw an exception without turtle canvas
Fixes CODEOCEAN-FRONTEND-59
2023-11-17 14:59:49 +01:00
35a65e4744 Check for element before attempting to show spinner
Fixes CODEOCEAN-FRONTEND-57
2023-11-17 14:59:49 +01:00
d2b2deaf98 Use var for window-wide variables
Otherwise, Turbolinks might cause an issue...

Fixes CODEOCEAN-FRONTEND-H
2023-11-05 23:43:32 +01:00
8fc5123bae Exclusively lock Runners during code executions
Previously, the same runner could be used multiple times with different submissions simultaneously. This, however, yielded errors, for example when one submission time oud (causing the running to be deleted) while another submission was still executed.

Admin actions, such as the shell, can be still executed regardless of any other code execution.

Fixes CODEOCEAN-HG
Fixes openHPI/poseidon#423
2023-10-31 12:35:24 +01:00
442337a22b Fix file listing and download for admin shell
`node.parents` is not returning the parent nodes in a fixed order. Hence, we cannot use it but must travers the tree ourselves.
2023-10-31 00:39:06 +01:00
7af648a966 Specify ANIMATION_DURATION as const 2023-10-13 00:14:19 +02:00
99bd46af1a Align project files with CodeHarbor
Since both projects are developed together and by the same team, we also want to have the same code structure and utility methods available in both projects. Therefore, this commit changes many files, but without a functional change.
2023-10-11 00:18:33 +02:00
a93ae6117a Ignore missing screen for TurtlebatchCommand
Fixes CODEOCEAN-FRONTEND-47
2023-09-26 00:25:19 +02:00
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
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
937a0d7d4d Disallow learners from clicking any button while redirecting after submit
Fixes CODEOCEAN-FRONTEND-3M
2023-09-20 00:35:18 +02:00
9a6d590a80 Fix missing Sentry settings for JS initializer
Fixes CODEOCEAN-FRONTEND-2W
2023-09-20 00:35:18 +02:00
6f3b72d207 Fix missing Sentry span for WebSocket close
Fixes CODEOCEAN-FRONTEND-3C
2023-09-20 00:35:18 +02:00
2200fa427e Gracely handle missing editor_for_file
Fixes CODEOCEAN-FRONTEND-3H
2023-09-20 00:35:18 +02:00
d224a099e0 Return if editor is not defined
Fixes CODEOCEAN-FRONTEND-3A
2023-09-19 22:32:14 +02:00
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
bea2e02fa5 Show Pair Programming modal for new Programming Groups 2023-09-13 04:33:31 +02:00
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