mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
Added tournament backups to the database and added pages to restore and create backups
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
<li><%= link_to "Full Screen Bout Board" , "/tournaments/#{@tournament.id}/up_matches?print=true" , target: :_blank %></li>
|
||||
<li><%= link_to "Deduct Team Points" , "/tournaments/#{@tournament.id}/teampointadjust" %></li>
|
||||
<li><%= link_to "View All Mat Assignment Rules", tournament_mat_assignment_rules_path(@tournament) %></li>
|
||||
<li><%= link_to 'Manage Backups', tournament_tournament_backups_path(@tournament) %></li>
|
||||
<li><%= link_to "Reset Bout Board", reset_bout_board_tournament_path(@tournament), method: :post, data: { confirm: "Are you sure you want to reset the bout board?" } %></li>
|
||||
<% if can? :destroy, @tournament %>
|
||||
<li><%= link_to "Tournament Delegation" , "/tournaments/#{@tournament.id}/delegate" %></li>
|
||||
|
||||
38
app/views/tournament_backups/index.html.erb
Normal file
38
app/views/tournament_backups/index.html.erb
Normal file
@@ -0,0 +1,38 @@
|
||||
<h3>Tournament Backups</h3>
|
||||
<p>You can click on the timestamp to view the backup text. You can manually store this anywhere you'd like and then paste it into the manual import field below.
|
||||
Doing this is risky, if the text is formatted incorrectly (like Microsoft Word changing the quotation marks), it will not import properly
|
||||
and will also delete all of your current data. It's best to use the create backup function.</p>
|
||||
<br>
|
||||
<table class="table table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Backup Created At</th>
|
||||
<th>Backup Reason</th>
|
||||
<th><%= link_to ' Create New Backup', tournament_tournament_backups_path(@tournament), method: :post, class: 'fas fa-plus'%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @tournament_backups.each do |backup| %>
|
||||
<tr>
|
||||
<td>
|
||||
<%= link_to backup.created_at.strftime('%Y-%m-%d %H:%M:%S'), tournament_tournament_backup_path(@tournament, backup, print: true), target: '_blank', class: 'text-decoration-none' %>
|
||||
</td>
|
||||
<td><%= backup.backup_reason.presence || 'No reason provided' %></td>
|
||||
<td>
|
||||
<%= link_to '', restore_tournament_tournament_backup_path(@tournament, backup), method: :post, data: { confirm: "This will restore the backup from #{backup.created_at.strftime('%Y-%m-%d %H:%M:%S')}. It will delete all current data from the tournament in order to restore the backup." }, class: 'fas fa-undo-alt text-warning', title: 'Restore Backup' %>
|
||||
<%= link_to '', tournament_tournament_backup_path(@tournament, backup), method: :delete, data: { confirm: 'Are you sure you want to delete this backup?' }, class: 'fas fa-trash-alt', title: 'Delete Backup' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<br><br>
|
||||
<h3>Import Manual Backup</h3>
|
||||
<p>Paste the backup text here. Note, if this is formatted wrong, you'll need to restore a backup from above to fix it and you'll see an error in your background jobs.</p>
|
||||
<%= form_for(:tournament, url: import_manual_tournament_tournament_backups_path(@tournament)) do |f| %>
|
||||
<div class="field">
|
||||
<%= f.label 'Import text' %><br>
|
||||
<%= f.text_area :import_text, cols: "30", rows: "20" %>
|
||||
</div>
|
||||
<%= submit_tag "Import", class: "btn btn-success", data: { confirm: 'Are you sure? This will delete everything for the current tournament and restore it with the backup text pasted below.' } %>
|
||||
<% end %>
|
||||
1
app/views/tournament_backups/show.html.erb
Normal file
1
app/views/tournament_backups/show.html.erb
Normal file
@@ -0,0 +1 @@
|
||||
<%= JSON.pretty_generate(JSON.parse(Base64.decode64(@tournament_backup.backup_data))) %>
|
||||
@@ -1,11 +0,0 @@
|
||||
<% if can? :manage, @tournament %>
|
||||
<br><br>
|
||||
<h3>Import Data</h3>
|
||||
<%= form_for(Tournament.new, url: import_url(@tournament)) do |f| %>
|
||||
<div class="field">
|
||||
<%= f.label 'Import text' %><br>
|
||||
<%= f.text_area :import_text, cols: "30", rows: "20" %>
|
||||
</div>
|
||||
<%= submit_tag "Import", :class=>"btn btn-success", data: { confirm: 'Are you sure? This will delete everything for the current tournament and restore it with the backup text pasted below.' }%>
|
||||
<% end %>
|
||||
<% end %>
|
||||
@@ -119,7 +119,7 @@
|
||||
</table>
|
||||
<% end %>
|
||||
<% if can? :manage, @tournament %>
|
||||
<br>
|
||||
<br><br>
|
||||
<h3>Background Jobs</h3>
|
||||
<p>This is a list of queued or running background jobs. Match generation, bracket advancement, team score calculation, etc.</p>
|
||||
<table class="table table-hover table-condensed">
|
||||
@@ -148,9 +148,4 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
<br>
|
||||
<br>
|
||||
<%= render 'import_form' %>
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
Reference in New Issue
Block a user