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
# nada más
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!
# 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}\""
end
def fqdn!
self.fqdn ||= "#{site.name}.#{Site.domain}"
end
def destination!
self.destination ||= File.join(Rails.root, '_deploy', fqdn)
self.destination ||= File.join(Rails.root, '_deploy', site.hostname)
end
# no debería haber espacios ni caracteres especiales, pero por si

View file

@ -6,9 +6,9 @@ require 'zip'
#
# TODO: Firmar con minisign
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!
# Una vez que el sitio está generado, tomar todos los archivos y
@ -46,18 +46,12 @@ class DeployZip < Deploy
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!
self.destination ||= File.join(Rails.root, '_deploy', fqdn)
self.destination ||= File.join(Rails.root, '_deploy', site.hostname)
end
def file!
self.file ||= "#{fqdn}.zip"
self.file ||= "#{site.hostname}.zip"
end
def path!

View file

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

View file

@ -1,6 +1,6 @@
%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]
%table

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
= form_for site, html: { class: form_class(site) } do |f|
.form-group
%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
No puede empezar ni terminar con guiones

View file

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

View file

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

View file

@ -37,27 +37,28 @@ es:
es: Castellano
en: Inglés
seconds: '%{seconds} segundos'
deploy_mailer:
deployed:
subject: "[Sutty] El sitio %{site} ha sido generado"
hi: "¡Hola!"
explanation: |
Este correo es para notificarte que Sutty ha generado tu sitio y
ya está disponible en la dirección <https://%{fqdn}>.
mailers:
deploy_mailer:
deployed:
subject: "[Sutty] El sitio %{site} ha sido generado"
hi: "¡Hola!"
explanation: |
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.
th:
type: Tipo
status: Estado
deploy_local:
title: Generar el sitio
success: ¡Éxito!
error: Hubo un error
deploy_zip:
title: Generar archivo ZIP
success: Disponible para descargar
error: Hubo un error
help: Por cualquier duda, responde este correo para contactarte con nosotres.
A continuación encontrarás el detalle de lo que hicimos.
th:
type: Tipo
status: Estado
deploy_local:
title: Generar el sitio
success: ¡Éxito!
error: Hubo un error
deploy_zip:
title: Generar archivo ZIP
success: Disponible para descargar
error: Hubo un error
help: Por cualquier duda, responde este correo para contactarte con nosotres.
activerecord:
models:
usuarie: Usuarie
@ -237,6 +238,7 @@ es:
title: 'Sitios'
pull: 'Actualizar'
help: 'Este es el listado de sitios que puedes editar'
visit: 'Visitar el sitio'
repository:
config: 'Cambios en la configuración'
actions: 'Acciones'
@ -261,7 +263,7 @@ es:
title: Hay errores y no pudimos guardar tus cambios :(
help: Por favor, busca los campos marcados como inválidos para resolverlos
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.'
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.'