5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-22 10:46:22 +00:00

usar la dirección completa del sitio en todos lados

esto abre la puerta a que podamos tener sitios fuera del dominio
sutty.nl
This commit is contained in:
f 2019-09-24 19:50:20 -03:00
parent fc597a0570
commit c5e9b003c7
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D
11 changed files with 45 additions and 50 deletions

View file

@ -3,9 +3,9 @@
# Alojamiento local, solo genera el sitio, con lo que no necesita hacer # Alojamiento local, solo genera el sitio, con lo que no necesita hacer
# nada más # nada más
class DeployLocal < Deploy class DeployLocal < Deploy
store :values, accessors: %i[fqdn destination], coder: JSON store :values, accessors: %i[destination], coder: JSON
before_create :fqdn!, :destination! before_create :destination!
before_destroy :remove_destination! before_destroy :remove_destination!
# Realizamos la construcción del sitio usando Jekyll y un entorno # Realizamos la construcción del sitio usando Jekyll y un entorno
@ -73,12 +73,8 @@ class DeployLocal < Deploy
run "bundle exec jekyll build --destination \"#{escaped_destination}\"" run "bundle exec jekyll build --destination \"#{escaped_destination}\""
end end
def fqdn!
self.fqdn ||= "#{site.name}.#{Site.domain}"
end
def destination! def destination!
self.destination ||= File.join(Rails.root, '_deploy', fqdn) self.destination ||= File.join(Rails.root, '_deploy', site.hostname)
end end
# no debería haber espacios ni caracteres especiales, pero por si # no debería haber espacios ni caracteres especiales, pero por si

View file

@ -6,9 +6,9 @@ require 'zip'
# #
# TODO: Firmar con minisign # TODO: Firmar con minisign
class DeployZip < Deploy class DeployZip < Deploy
store :values, accessors: %i[fqdn destination file path], coder: JSON store :values, accessors: %i[destination file path], coder: JSON
before_create :fqdn!, :destination! before_create :destination!
before_create :file!, :path! before_create :file!, :path!
# Una vez que el sitio está generado, tomar todos los archivos y # Una vez que el sitio está generado, tomar todos los archivos y
@ -46,18 +46,12 @@ class DeployZip < Deploy
private private
# Copiamos de DeployLocal para no cargar todos los métodos de
# compilación...
def fqdn!
self.fqdn ||= "#{site.name}.#{Site.domain}"
end
def destination! def destination!
self.destination ||= File.join(Rails.root, '_deploy', fqdn) self.destination ||= File.join(Rails.root, '_deploy', site.hostname)
end end
def file! def file!
self.file ||= "#{fqdn}.zip" self.file ||= "#{site.hostname}.zip"
end end
def path! def path!

View file

@ -61,10 +61,11 @@ class Site < ApplicationRecord
end end
def hostname def hostname
if name.ends_with? '.' sub = name || I18n.t('deploys.deploy_local.ejemplo')
name.gsub(/\.\Z/, '') if sub.ends_with? '.'
sub.gsub(/\.\Z/, '')
else else
"#{name}.#{Site.domain}" "#{sub}.#{Site.domain}"
end end
end end

View file

@ -1,6 +1,6 @@
%h1= t('.hi') %h1= t('.hi')
= sanitize_markdown t('.explanation', fqdn: @deploy_local.fqdn), = sanitize_markdown t('.explanation', fqdn: @deploy_local.site.hostname),
tags: %w[p a strong em] tags: %w[p a strong em]
%table %table

View file

@ -1,6 +1,6 @@
= "# #{t('.hi')}" = "# #{t('.hi')}"
\ \
= t('.explanation', fqdn: @deploy_local.fqdn) = t('.explanation', fqdn: @deploy_local.site.hostname)
\ \
= Terminal::Table.new do |table| = Terminal::Table.new do |table|
- table << [t('.th.type'), t('.th.status')] - table << [t('.th.type'), t('.th.status')]

View file

@ -6,9 +6,7 @@
.row .row
.col .col
%h3= t('.title') %h3= t('.title')
- name = site.name || t('.ejemplo') = sanitize_markdown t('.help', fqdn: deploy.object.site.hostname),
= sanitize_markdown t('.help',
fqdn: deploy.object.fqdn || "#{name}.#{Site.domain}"),
tags: %w[p strong em a] tags: %w[p strong em a]
= deploy.hidden_field :type = deploy.hidden_field :type

View file

@ -16,6 +16,6 @@
-# TODO: secar la generación de URLs -# TODO: secar la generación de URLs
- name = site.name || t('.ejemplo') - name = site.name || t('.ejemplo')
= sanitize_markdown t('.help', = sanitize_markdown t('.help',
fqdn: deploy.object.fqdn || "#{name}.#{Site.domain}", fqdn: deploy.object.site.hostname,
file: deploy.object.file || "#{name}.zip"), file: deploy.object.file || "#{name}.zip"),
tags: %w[p strong em a] tags: %w[p strong em a]

View file

@ -1,7 +1,7 @@
= form_for site, html: { class: form_class(site) } do |f| = form_for site, html: { class: form_class(site) } do |f|
.form-group .form-group
%h2= f.label :name %h2= f.label :name
%p.lead= t('.help.name') %p.lead= sanitize_markdown t('.help.name'), tags: %w[strong]
-# -#
El dominio contiene letras y números El dominio contiene letras y números
No puede empezar ni terminar con guiones No puede empezar ni terminar con guiones

View file

@ -16,10 +16,12 @@
%td %td
%h2 %h2
- if policy(site).show? - if policy(site).show?
= link_to site.name, site_path(site) = link_to site.title, site_path(site)
- else - else
= site.name = site.title
%p.lead= site.description
%br %br
= link_to t('.visit'), site.url, class: 'btn'
- if current_usuarie.rol_for_site(site).temporal - if current_usuarie.rol_for_site(site).temporal
= button_to t('sites.invitations.accept'), = button_to t('sites.invitations.accept'),
site_usuaries_accept_invitation_path(site), site_usuaries_accept_invitation_path(site),

View file

@ -233,6 +233,8 @@ en:
index: index:
title: 'Sites' title: 'Sites'
pull: 'Upgrade' pull: 'Upgrade'
help: 'This is the list of sites you can edit'
visit: 'Visitar el sitio'
repository: repository:
config: 'Changes in config' config: 'Changes in config'
actions: 'Actions' actions: 'Actions'

View file

@ -37,27 +37,28 @@ es:
es: Castellano es: Castellano
en: Inglés en: Inglés
seconds: '%{seconds} segundos' seconds: '%{seconds} segundos'
deploy_mailer: mailers:
deployed: deploy_mailer:
subject: "[Sutty] El sitio %{site} ha sido generado" deployed:
hi: "¡Hola!" subject: "[Sutty] El sitio %{site} ha sido generado"
explanation: | hi: "¡Hola!"
Este correo es para notificarte que Sutty ha generado tu sitio y explanation: |
ya está disponible en la dirección <https://%{fqdn}>. Este correo es para notificarte que Sutty ha generado tu sitio y
ya está disponible en la dirección <https://%{fqdn}>.
A continuación encontrarás el detalle de lo que hicimos. A continuación encontrarás el detalle de lo que hicimos.
th: th:
type: Tipo type: Tipo
status: Estado status: Estado
deploy_local: deploy_local:
title: Generar el sitio title: Generar el sitio
success: ¡Éxito! success: ¡Éxito!
error: Hubo un error error: Hubo un error
deploy_zip: deploy_zip:
title: Generar archivo ZIP title: Generar archivo ZIP
success: Disponible para descargar success: Disponible para descargar
error: Hubo un error error: Hubo un error
help: Por cualquier duda, responde este correo para contactarte con nosotres. help: Por cualquier duda, responde este correo para contactarte con nosotres.
activerecord: activerecord:
models: models:
usuarie: Usuarie usuarie: Usuarie
@ -237,6 +238,7 @@ es:
title: 'Sitios' title: 'Sitios'
pull: 'Actualizar' pull: 'Actualizar'
help: 'Este es el listado de sitios que puedes editar' help: 'Este es el listado de sitios que puedes editar'
visit: 'Visitar el sitio'
repository: repository:
config: 'Cambios en la configuración' config: 'Cambios en la configuración'
actions: 'Acciones' actions: 'Acciones'
@ -261,7 +263,7 @@ es:
title: Hay errores y no pudimos guardar tus cambios :( title: Hay errores y no pudimos guardar tus cambios :(
help: Por favor, busca los campos marcados como inválidos para resolverlos help: Por favor, busca los campos marcados como inválidos para resolverlos
help: help:
name: 'El nombre de tu sitio que formará parte de la dirección (ejemplo.sutty.nl). Solo puede contener letras minúsculas, números y guiones.' name: 'El nombre de tu sitio que formará parte de la dirección (**ejemplo**.sutty.nl). Solo puede contener letras minúsculas, números y guiones.'
title: 'El título de tu sitio puede ser lo que quieras.' title: 'El título de tu sitio puede ser lo que quieras.'
description: 'La descripción del sitio, que saldrá en buscadores. Entre 50 y 160 caracteres.' description: 'La descripción del sitio, que saldrá en buscadores. Entre 50 y 160 caracteres.'
design: 'Elegí el diseño que va a tener tu sitio aquí. Podés cambiarlo luego. De tanto en tanto vamos sumando diseños nuevos.' design: 'Elegí el diseño que va a tener tu sitio aquí. Podés cambiarlo luego. De tanto en tanto vamos sumando diseños nuevos.'