* feat: add an error column to the data update script * feat: save the error to the error field * feat: save the error when the script fails * feat: show the script error on the data update script page * chore: pass the error to mark_as_failed instead of having its own function * refactor: use presence * test: ensure that we test an error case of a data update script * chore: rename errorneous to failing * test: update some specs, working on the others * chore: update tests now that there are two files * chore: change error from a string to a text to allow for more char * feat: order the data update scripts by the latest script that ran * feat: when the script has succeeded reset error to nil * feat: create a model function that will allow the script to be force run * chore: oops remove the functions form the worker to the model so it can be re-used * feat: create an endpoint that will call the model method force run when we hit the api by clicking the button * feat: ensure that the we add an ajax call that calls the controller endpoint * chore: remove newline * refactor: change to a more Restful route * refactor: use Stimulus * fix: move the code from the model back into the worker so that we can reuse it in the controller * feat:call the worker in the force_run action and create a show route * feat: very first draft of using a polling mechanism on the show method after we kickoff the sidekiq job (still need to error handle) * chore: some syntax changes and unused variables * fix: call the method correctly with the paramters * feat: do some error handling * feat: error handing on the frontend * chore: use e instead of err * refactor: just pass the id instead of the whole script * chore: remove the button * fix: allow the id to be passed * feat: handle errors better * feat: limit the filename column width * refactor: use a common function to set the banner error * test: add a test fro rerun button * test: v1 of the data update script request * test: write some specs for the js controller * Update app/controllers/admin/data_update_scripts_controller.rb Co-authored-by: Michael Kohl <me@citizen428.net> * tests: update the data worker spec * chore: clean up the js controller and its tests * chore: remove whitespaces * chore: swap the functions based on the controller * chore: updates to the UI * chore: remove the standard error catch * chore: update the alert and error messages * chore: remove test for error handling for sidekiq run Co-authored-by: Michael Kohl <me@citizen428.net>
40 lines
1.7 KiB
Text
40 lines
1.7 KiB
Text
<div data-controller="data-update-script" class="crayons-card p-6 grid gap-6">
|
|
<div class="alert hidden data-update-script__alert">
|
|
<div id="data-update-script__error"></div>
|
|
</div>
|
|
<table class="crayons-table">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">ID</th>
|
|
<th scope="col">Filename</th>
|
|
<th scope="col">Created at</th>
|
|
<th scope="col">Run at</th>
|
|
<th scope="col" class="whitespace-nowrap">Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="crayons-card">
|
|
<% @data_update_scripts.each do |script| %>
|
|
<tr class="<%= 'alert-danger' if script.status == 'failed' %>" id="data_update_script_<%= script.id %>_row">
|
|
<td id="data_update_script_<%= script.id %>" class="whitespace-nowrap"><%= script.id %></td>
|
|
<td class="data_update_script__filename">
|
|
<%= script.file_name %>
|
|
<% if script.status == "failed" %>
|
|
<button class="ml-2" id="data_update_script_<%= script.id %>_button"
|
|
data-action="click->data-update-script#forceRun" data-value="<%= script.id %>" type="button" className="crayons-btn crayons-btn--secondary">
|
|
Re-run
|
|
</button>
|
|
<% end %>
|
|
</td>
|
|
<td><%= script.created_at %></td>
|
|
<td id="data_update_script_<%= script.id %>_run_at" class="whitespace-nowrap"><%= script.run_at %></td>
|
|
<td id="data_update_script_<%= script.id %>_status" class="data_update_script__status justify-content-center">
|
|
<%= script.status %>
|
|
<% if script.error.present? %>
|
|
<div id="data_update_script_<%= script.id %>_error" class="fs-xs"><%= script.error %></div>
|
|
<% end %>
|
|
</td>
|
|
</tr>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</div>
|