mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-22 15:36:22 +00:00
Merge branch 'rails' of 0xacab.org:sutty/sutty into panel.testing.sutty.nl
This commit is contained in:
commit
943237bfa3
9 changed files with 38 additions and 10 deletions
|
@ -22,6 +22,12 @@ class SitesController < ApplicationController
|
|||
render('sites/status', layout: false) if stale? site
|
||||
end
|
||||
|
||||
def button
|
||||
authorize site
|
||||
|
||||
render('sites/build', layout: false)
|
||||
end
|
||||
|
||||
# No tenemos propiedades de un sitio aún, así que vamos al listado de
|
||||
# artículos
|
||||
def show
|
||||
|
|
7
app/javascript/etc/htmx_abort.js
Normal file
7
app/javascript/etc/htmx_abort.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
// Cancela las peticiones pendientes de htmx para todos los elementos al
|
||||
// cambiar de página.
|
||||
document.addEventListener("turbolinks:click", () => {
|
||||
for (const hx of document.querySelectorAll("[hx-get]")) {
|
||||
window.htmx.trigger(hx, "htmx:abort");
|
||||
}
|
||||
});
|
|
@ -6,3 +6,4 @@ import './timezone'
|
|||
import './turbolinks-anchors'
|
||||
import './validation'
|
||||
import './new_editor'
|
||||
import './htmx_abort'
|
||||
|
|
|
@ -9,9 +9,16 @@ try {
|
|||
host: window.env.PANEL_URL
|
||||
});
|
||||
|
||||
const ignoredErrors = ["htmx:afterRequest", "htmx:sendAbort"];
|
||||
|
||||
console.originalError = console.error;
|
||||
console.error = (...e) => {
|
||||
window.airbrake.notify(e.join(" "));
|
||||
const msg = e.join(" ");
|
||||
|
||||
if (!ignoredErrors.some(x => msg.includes(x))) {
|
||||
window.airbrake.notify(e.join(" "));
|
||||
}
|
||||
|
||||
return console.originalError(...e);
|
||||
};
|
||||
} catch(e) {
|
||||
|
|
|
@ -61,6 +61,10 @@ class SitePolicy
|
|||
show? && usuarie?
|
||||
end
|
||||
|
||||
def button?
|
||||
show?
|
||||
end
|
||||
|
||||
def enqueue?
|
||||
build?
|
||||
end
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
- if policy(site).build?
|
||||
= form_tag site_enqueue_path(site),
|
||||
method: :post,
|
||||
class: 'form-inline inline' do
|
||||
= submit_tag site.enqueued? ? t('sites.enqueued') : t('sites.enqueue'),
|
||||
class: "btn btn-secondary #{local_assigns[:class]}",
|
||||
title: site.enqueued? ? t('help.sites.enqueued') : t('help.sites.enqueue'),
|
||||
data: { disable_with: t('sites.enqueued') },
|
||||
disabled: site.enqueued?
|
||||
%div{ 'hx-get': site_button_path(site, class: local_assigns[:class]), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' }
|
||||
= form_tag site_enqueue_path(site),
|
||||
method: :post,
|
||||
class: 'form-inline inline' do
|
||||
= submit_tag site.enqueued? ? t('sites.enqueued') : t('sites.enqueue'),
|
||||
class: "btn btn-secondary #{local_assigns[:class]}",
|
||||
title: site.enqueued? ? t('help.sites.enqueued') : t('help.sites.enqueue'),
|
||||
data: { disable_with: t('sites.enqueued') },
|
||||
disabled: !site.waiting?
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
- message = t('.available')
|
||||
- link = true
|
||||
|
||||
-# TODO: Calcular cada cuanto sería óptimo recargar
|
||||
-# TODO: Calcular cada cuánto sería óptimo recargar
|
||||
%div{ 'hx-get': site_status_path(site), 'hx-trigger': 'every 10s', 'hx-swap': 'outerHTML' }
|
||||
= render 'bootstrap/alert' do
|
||||
= link_to_if link, message.html_safe, site_build_stats_path(site), class: 'alert-link'
|
||||
|
|
1
app/views/sites/build.haml
Normal file
1
app/views/sites/build.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= render 'sites/build', site: @site, class: params.permit(:class)[:class]
|
|
@ -53,6 +53,7 @@ Rails.application.routes.draw do
|
|||
post 'pull', to: 'sites#merge'
|
||||
|
||||
get 'status', to: 'sites#status'
|
||||
get 'button', to: 'sites#button'
|
||||
|
||||
# Gestionar usuaries
|
||||
get 'usuaries/invite', to: 'usuaries#invite'
|
||||
|
|
Loading…
Reference in a new issue