Skip to content

Commit 63926bf

Browse files
committed
Offer an option to fix directories and links when renaming a course.
Also fix the logic both here and when archiving a course for the possible combinations of the directories, links, and database needing repair. With the previous logic if the directories were good, but the database tables and links both needed repair, then the button said "Attempt to upgrade directories and links". However, in actuality if that button were used, the server would both repair links and repair database tables. Now, anytime the database tables need repair the button says "Upgrade Course Tables" regardless of the state of the directories and links. This is not ideal since directories or links might also be repaired in this case, but the important thing to show is the database repair which is more important than directories and vastly more important than links.
1 parent 354134e commit 63926bf

3 files changed

Lines changed: 35 additions & 23 deletions

File tree

lib/WeBWorK/ContentGenerator/CourseAdmin.pm

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,9 @@ sub rename_course_confirm ($c) {
532532
($tables_ok, $dbStatus) = $CIchecker->checkCourseTables($rename_oldCourseID);
533533
}
534534

535-
# Check directories and links
535+
# Update and check directories and links.
536+
my $dir_update_messages = $c->param('upgrade_course_tables') ? updateCourseDirectories($ce2) : [];
537+
my $link_update_messages = $c->param('upgrade_course_tables') ? updateCourseLinks($ce2) : [];
536538
my ($directories_ok, $directory_report) = checkCourseDirectories($ce2);
537539
my ($links_ok, $link_report) = checkCourseLinks($ce2);
538540

@@ -543,8 +545,10 @@ sub rename_course_confirm ($c) {
543545
dbStatus => $dbStatus,
544546
directory_report => $directory_report,
545547
directories_ok => $directories_ok,
548+
dir_update_messages => $dir_update_messages,
546549
link_report => $link_report,
547550
links_ok => $links_ok,
551+
link_update_messages => $link_update_messages,
548552
rename_oldCourseTitle => $rename_oldCourseTitle,
549553
change_course_title_str => $change_course_title_str,
550554
rename_oldCourseInstitution => $rename_oldCourseInstitution,

templates/ContentGenerator/CourseAdmin/archive_course_confirm.html.ep

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -134,21 +134,18 @@
134134
% }
135135
<%= submit_button maketext('Archive'), name => 'confirm_archive_course', class => 'btn btn-primary' =%>
136136
</div>
137-
% } elsif ($directories_ok && $links_ok) {
138-
<div class="d-flex justify-content-center gap-2">
139-
<%= submit_button maketext(q{Don't Archive}),
140-
name => 'decline_archive_course', class => 'btn btn-primary' =%>
141-
<%= submit_button maketext('Upgrade Course Tables'),
142-
name => 'upgrade_course_tables', class => 'btn btn-primary' =%>
143-
</div>
144137
% } else {
145-
<div class="text-center alert alert-danger p-1 mb-2">
146-
<%= maketext('Directory and/or link structure needs to be repaired manually before archiving.') =%>
147-
</div>
138+
% if (!$directories_ok || !$links_ok) {
139+
<div class="text-center alert alert-danger p-1 mb-2">
140+
<%= maketext('Directory and/or link structure needs to be repaired manually before archiving.') =%>
141+
</div>
142+
% }
148143
<div class="d-flex justify-content-center gap-2">
149144
<%= submit_button maketext(q{Don't Archive}),
150145
name => 'decline_archive_course', class => 'btn btn-primary' =%>
151-
<%= submit_button maketext('Attempt to upgrade directories and links'),
146+
<%= submit_button $all_tables_ok
147+
? maketext('Attempt to upgrade directories and links')
148+
: maketext('Upgrade Course Tables'),
152149
name => 'upgrade_course_tables', class => 'btn btn-primary' =%>
153150
</div>
154151
% }

templates/ContentGenerator/CourseAdmin/rename_course_confirm.html.ep

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@
6262
<li><%= $_->[0] %>: <span class="<%= $_->[2] ? 'text-success' : 'text-danger' %>"><%= $_->[1] %></span></li>
6363
% }
6464
</ul>
65+
<ul>
66+
% for (@$dir_update_messages) {
67+
<li><span class="<%= $_->[1] ? 'text-success' : 'text-danger' %>"><%= $_->[0] %></span></li>
68+
% }
69+
</ul>
6570
% if ($directories_ok) {
6671
<p class="text-success"><%= maketext('Directory structure is ok') %></p>
6772
% } else {
@@ -76,6 +81,11 @@
7681
<li><%= $_->[0] %>: <span class="<%= $_->[3] ? 'text-success' : 'text-danger' %>"><%= $_->[2] %></span></li>
7782
% }
7883
</ul>
84+
<ul>
85+
% for (@$link_update_messages) {
86+
<li><span class="<%= $_->[1] ? 'text-success' : 'text-danger' %>"><%= $_->[0] %></span></li>
87+
% }
88+
</ul>
7989
% if ($links_ok) {
8090
<p class="text-success"><%= maketext('Link structure is ok') %></p>
8191
% } else {
@@ -106,24 +116,25 @@
106116
<div class="mb-3"><%= $change_course_institution_str %></div>
107117
% }
108118
<div class="d-flex justify-content-center gap-2">
109-
<%= submit_button maketext(q{Don't rename}),
119+
<%= submit_button maketext(q{Don't Rename}),
110120
name => 'decline_rename_course', class => 'btn btn-primary' =%>
111121
<%= submit_button maketext('Rename'),
112122
name => 'confirm_rename_course', class => 'btn btn-primary' =%>
113123
</div>
114124
</div>
115-
% } elsif ($directories_ok && $links_ok) {
125+
% } else {
126+
% if (!$directories_ok || !$links_ok) {
127+
<div class="text-center alert alert-danger p-1 mb-2">
128+
<%= maketext('Directory and/or link structure needs to be repaired manually before archiving.') =%>
129+
</div>
130+
% }
116131
<div class="d-flex justify-content-center gap-2">
117-
<%= submit_button maketext(q{Don't rename}), name => 'decline_rename_course', class => 'btn btn-primary' =%>
118-
<%= submit_button maketext('Upgrade Course Tables'),
132+
<%= submit_button maketext(q{Don't Rename}),
133+
name => 'decline_rename_course', class => 'btn btn-primary' =%>
134+
<%= submit_button $all_tables_ok
135+
? maketext('Attempt to upgrade directories and links')
136+
: maketext('Upgrade Course Tables'),
119137
name => 'upgrade_course_tables', class => 'btn btn-primary' =%>
120138
</div>
121-
% } else {
122-
<div class="text-center alert alert-danger p-1 mb-2">
123-
<%= maketext('Directory and/or link structure needs to be repaired manually before renaming.') =%>
124-
</div>
125-
<div class="text-center">
126-
<%= submit_button maketext(q{Don't rename}), name => 'decline_rename_course', class => 'btn btn-primary' =%>
127-
</div>
128139
% }
129140
<% end =%>

0 commit comments

Comments
 (0)