Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 7 additions & 12 deletions .github/workflows/check-formats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,17 @@ on:

jobs:
perltidy:
name: Check Perl file formatting with perltidy
name: Check file formatting with perltidy and prettier
runs-on: ubuntu-24.04
container:
image: perl:5.38
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install dependencies
run: cpanm -n Perl::Tidy@20260204
- name: Run perltidy
run: |
sudo apt-get update && sudo apt-get install -y libmojolicious-perl cpanminus
sudo cpanm -n Perl::Tidy@20260204

- name: Check Perl file formatting with perltidy
shell: bash
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
Expand All @@ -42,17 +43,11 @@ jobs:
git diff --exit-code
fi

prettier:
name: Check JavaScript, style, and HTML file formatting with prettier
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Node
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Install Dependencies
run: cd htdocs && npm ci --ignore-scripts
- name: Check formatting with prettier
- name: Check JavaScript, style, and HTML file formatting with prettier
run: cd htdocs && npm run prettier-check
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"printWidth": 120,
"semi": true,
"singleQuote": true,
"trailingComma": "none"
"trailingComma": "none",
"plugins": ["@openwebwork/prettier-plugin-mojolicious-html-template"]
}
14 changes: 14 additions & 0 deletions htdocs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions htdocs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"scripts": {
"generate-assets": "node generate-assets",
"prepare": "npm run generate-assets",
"prettier-format": "prettier --ignore-path=../.gitignore --write \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\"",
"prettier-check": "prettier --ignore-path=../.gitignore --check \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\""
"prettier-format": "prettier --ignore-path=../.gitignore --write \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\" \"../templates/**/*.html.ep\"",
"prettier-check": "prettier --ignore-path=../.gitignore --check \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\" \"../templates/**/*.html.ep\""
},
"repository": {
"type": "git",
Expand All @@ -27,6 +27,7 @@
"sortablejs": "^1.15.7"
},
"devDependencies": {
"@openwebwork/prettier-plugin-mojolicious-html-template": "^0.0.1",
"autoprefixer": "^10.5.4",
"chokidar": "^5.0.0",
"cssnano": "^8.0.2",
Expand All @@ -51,5 +52,10 @@
"allowScripts": {
"@parcel/watcher": false,
"iframe-resizer": false
},
"overrides": {
"@awmottaz/prettier-plugin-void-html": {
"prettier": "^3.9.5"
}
}
}
9 changes: 4 additions & 5 deletions templates/AchievementEvaluator/cheevoMessage.html.ep
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
<div class="cheevo-toast toast hide" role ="alert" aria-live="polite" aria-atomic="true">
<div class="cheevo-toast toast hide" role="alert" aria-live="polite" aria-atomic="true">
<div class="toast-body d-flex align-items-center">
<%= image $ce->{server_root_url} . (
$achievement->{icon}
<%= image $ce->{server_root_url}
. ($achievement->{icon}
? "$ce->{courseURLs}{achievements}/$achievement->{icon}"
: "$ce->{webworkURLs}{htdocs}/images/defaulticon.png"
),
: "$ce->{webworkURLs}{htdocs}/images/defaulticon.png"),
alt => 'Achievement Icon' =%>
<div class="cheevopopuptext">
% if ($achievement->category eq 'level') {
Expand Down
19 changes: 13 additions & 6 deletions templates/ContentGenerator/Achievements/achievement_badges.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,18 @@
% }
% $previousCategory = $achievement->category;
%
% my $userAchievement = $userAchievements->{$achievement->achievement_id};
<div class="d-flex justify-content-start align-items-center mb-3 mx-4 <%=
$userAchievement->earned ? 'unlocked' : 'locked' %>">
% my $userAchievement = $userAchievements->{ $achievement->achievement_id };
<div
class="d-flex justify-content-start align-items-center mb-3 mx-4 <%=
$userAchievement->earned ? 'unlocked' : 'locked'
%>"
>
<div>
<%= image $achievement->{icon}
? "$ce->{courseURLs}{achievements}/$achievement->{icon}"
: "$ce->{webworkURLs}{htdocs}/images/defaulticon.png",
width => 50,
alt => $userAchievement->earned ? 'Achievement Earned' : 'Achievement Unearned' =%>
alt => $userAchievement->earned ? 'Achievement Earned' : 'Achievement Unearned' =%>
</div>
<div class="ms-3">
<h3 class="fs-5 mb-1 fw-bold"><%= $achievement->name %></h3>
Expand All @@ -27,8 +30,12 @@
% if ($achievement->max_counter && !$userAchievement->earned) {
% my $percentage = int(100 * ($userAchievement->counter || 0) / $achievement->max_counter);
% $percentage = 100 if $percentage > 100;
<div class="cheevoouterbar mt-1" title="<%= maketext('[_1]% Complete', $percentage) %>"
aria-label="<%= maketext('[_1]% Complete', $percentage) %>" role="figure">
<div
class="cheevoouterbar mt-1"
title="<%= maketext('[_1]% Complete', $percentage) %>"
aria-label="<%= maketext('[_1]% Complete', $percentage) %>"
role="figure"
>
<div class="cheevoinnerbar" style="width:<%= $percentage %>%;"></div>
</div>
% }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@
<%= maketext(
'Achievement rewards can be used to modify assignments. To use a reward, go to the assignment you '
. 'wish to apply the reward to, then click the "Use Achievement Reward" button. You currently have '
. 'access to the following rewards:'
) %>
. 'access to the following rewards:') %>
</p>
<dl class="mx-4">
% for my $item (@{ $c->{achievementItems} }) {
<dt>
<%= $item->remaining_title($c) %>
</dt>
<dd class="ms-3 mb-2"><%= maketext(@{ $item->description }) %></dd>
% }
% for my $item (@{ $c->{achievementItems} }) {
<dt>
<%= $item->remaining_title($c) %>
</dt>
<dd class="ms-3 mb-2"><%= maketext(@{ $item->description }) %></dd>
% }
</dl>
% } else {
<p><%= maketext(q{You don't have any rewards!}) %></p>
Expand Down
8 changes: 6 additions & 2 deletions templates/ContentGenerator/Achievements/cheevobigbox.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@
<div>
<h1><%= $achievement->name %></h1>
% if ($c->{globalData}->next_level_points) {
<div class="levelouterbar" title="<%= maketext('[_1]% Complete', $level_percentage) %>"
aria-label="<%= maketext('[_1]% Complete', $level_percentage) %>" role="figure">
<div
class="levelouterbar"
title="<%= maketext('[_1]% Complete', $level_percentage) %>"
aria-label="<%= maketext('[_1]% Complete', $level_percentage) %>"
role="figure"
>
<div class="levelinnerbar" style="width:<%= $level_percentage %>%"></div>
</div>
<div><strong><%= maketext('Level Progress:') %></strong> <%= "$level_progress/$level_goal" %></div>
Expand Down
12 changes: 9 additions & 3 deletions templates/ContentGenerator/AchievementsLeaderboard.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,15 @@
% }
<td>
% for my $badge (@$badges) {
<button class="btn btn-sm btn-link help-popup p-0" type="button" tabindex="0"
data-bs-placement="top" data-bs-toggle="popover" data-bs-html="true"
data-bs-content="<strong><%= $badge->{name} %></strong><br><%= $badge->{description} %>">
<button
class="btn btn-sm btn-link help-popup p-0"
type="button"
tabindex="0"
data-bs-placement="top"
data-bs-toggle="popover"
data-bs-html="true"
data-bs-content="<strong><%= $badge->{name} %></strong><br><%= $badge->{description} %>"
>
<%= image $badge->{icon}
? "$ce->{courseURLs}{achievements}/$badge->{icon}"
: "$ce->{webworkURLs}{htdocs}/images/defaulticon.png",
Expand Down
9 changes: 4 additions & 5 deletions templates/ContentGenerator/Base/admin_links.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,17 @@
% }
<li class="list-group-item nav-item"><%= $makelink->('instructor_job_manager') %></li>
<li class="list-group-item nav-item">
<%= $makelink->(
'instructor_file_manager',
systemlink_params => { pwd => '.', unpack => 0, autodelete => 0 }
) %>
<%= $makelink->('instructor_file_manager',
systemlink_params => { pwd => '.', unpack => 0, autodelete => 0 }) %>
</li>
<li class="list-group-item nav-item">
<%= $c->helpMacro('admin_links', { label => maketext('Help'), class => 'nav-link' }) =%>
</li>
% if ($ce->{webworkURLs}{webwork2BugReporter} && $authz->hasPermissions($userID, 'report_bugs')) {
<li class="list-group-item nav-item">
<%= link_to maketext('Report bugs') => $ce->{webworkURLs}{webwork2BugReporter},
target => 'bug_report', class => 'nav-link' =%>
target => 'bug_report',
class => 'nav-link' =%>
</li>
% }
% }
Expand Down
8 changes: 3 additions & 5 deletions templates/ContentGenerator/Base/error_output.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@
<h2><%= maketext('WeBWorK Error') %></h2>
% }
<p>
<%= maketext(
'WeBWorK has encountered a software error. If you are a student, report this error message to your '
. 'instructor to have it corrected. If you are a instructor, please consult the error output below for '
. 'more information.'
) %>
<%= maketext('WeBWorK has encountered a software error. If you are a student, report this error message to your '
. 'instructor to have it corrected. If you are a instructor, please consult the error output below for '
. 'more information.') %>
</p>
<h3><%= maketext('Error messages') %></h3>
<div class="error-output"><%== $error %></div>
Expand Down
3 changes: 2 additions & 1 deletion templates/ContentGenerator/Base/feedback_macro_email.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
<%= hidden_field $key => $value =%>
% }
<%= submit_button maketext($ce->{feedback_button_name}) || maketext('Email instructor'),
name => 'feedbackForm', class => 'btn btn-primary' =%>
name => 'feedbackForm',
class => 'btn btn-primary' =%>
% end
19 changes: 12 additions & 7 deletions templates/ContentGenerator/Base/feedback_macro_form.html.ep
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,23 @@
% while (my ($key, $value) = each %$params) {
% if ($key eq 'pg_object') {
<%= hidden_field $key => encode_base64(
Encode::encode(
'UTF-8',
$value->{body_text}
. ($value->{result}{msg} ? tag('p', tag('b', 'Note: ') . tag('i', $value->{result}{msg})) : '')
),
''
Encode::encode(
'UTF-8',
$value->{body_text}
. (
$value->{result}{msg}
? tag('p', tag('b', 'Note: ') . tag('i', $value->{result}{msg}))
: ''
)
),
''
) =%>
% } else {
<%= hidden_field $key => $value =%>
% }
% }
%
<%= submit_button maketext($ce->{feedback_button_name}) || maketext('Email instructor'),
name => 'feedbackForm', class => 'btn btn-primary' =%>
name => 'feedbackForm',
class => 'btn btn-primary' =%>
<% end =%>
Loading