fix: cerrar la integracion 0.9.5 — recursos que faltaban y regresiones
Una revision a fondo del arbol contra 0.9.5 saco varios fallos, unos heredados y
otros que introdujo la propia integracion. Verificados uno a uno antes de tocar.
Recursos referenciados que no existian (los introduje al adoptar vistas de 0.9.5
que los usan, mientras la rama los habia borrado):
- Los cuatro temas *-SNH.css. settings_view ofrece Dark, Clear, Matrix y Purple,
pero solo estaba OasisMobile: elegir cualquiera daba 404 y la app se quedaba sin
estilos. Ahora los cuatro responden 200.
- pdf.min.mjs, pdf.worker.min.mjs y pdf-viewer.js, referenciados desde seis vistas.
Regresiones revertidas a 0.9.5 verbatim en catorce ficheros. Las de fondo:
- larp_model perdio getGoverningPeriodId, que backend.js llama: el anuncio de
gobierno no salia nunca, con el TypeError tragado por un catch.
- courts_view y search_view tenian selected: false, que hyperscript SI serializa
como atributo y HTML interpreta como seleccionado. La forma de upstream, el
spread condicional, es la correcta.
- pm_model perdio includeDeleted, projects_model la validacion de deadline pasado,
jobs_model el desempate por timestamp, middleware el flag de debug HTTP.
forum_view pasa a 0.9.5 conservando el filtro hot. Esto arregla un fallo activo: la
vista de la rama declaraba un cuarto parametro topic y backend.js llama con cinco
argumentos, asi que al abrir una respuesta el %clave del hilo se colaba como tema y
el hilo salia VACIO. Upstream pasa los mismos cinco argumentos a una firma de tres y
JS los ignora, que es lo correcto.
chats_view pasa a 0.9.5 y se implementa replyTo de verdad. Estaba muerto de punta a
punta: backend.js no leia ctx.query.replyTo ni pasaba el cuarto argumento a
sendMessage, asi que ningun mensaje llegaba a tener replyTo y la cita no se
renderizaba jamas. Ahora la cadena esta completa —modelo, GET, POST y vista— con
indice msgById armado antes de mezclar con las encuestas, y sin gate de movil:
responder a un mensaje no es una funcion de movil.
aria-label: encontrada la causa. No es que hyperaxe lo ignore, es que hyperscript
solo asigna como propiedad y html-element solo serializa atributos de su tabla, en
la que aria-* no esta; data-* si tiene rama propia, por eso las tablas responsive
funcionaban. Se arregla con el escape hatch attrs:{}, sin tocar node_modules.
prepare.sh copia README.md y falla si no esta: backend.js lo lee con readFileSync
sin try/catch, de modo que sin el fichero el backend muere con ENOENT al arrancar.
Verificado con la app en marcha: 17 rutas OK, los cuatro recursos que faltaban
sirviendo 200, aria-label emitido en el HTML, e interfaz intacta (10 categorias,
50 modulos, 7 accesos rapidos, 0 etiquetas vacias).
This commit is contained in:
parent
7459644a73
commit
c3a1c841e6
27 changed files with 1994 additions and 220 deletions
364
src/client/assets/themes/Dark-SNH.css
Normal file
364
src/client/assets/themes/Dark-SNH.css
Normal file
|
|
@ -0,0 +1,364 @@
|
|||
body {
|
||||
background-color: #121212;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
header, footer {
|
||||
background-color: #1F1F1F;
|
||||
}
|
||||
|
||||
.sidebar-left, .sidebar-right {
|
||||
background-color: #1A1A1A;
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
.main-column {
|
||||
background-color: #1C1C1C;
|
||||
}
|
||||
|
||||
button, input[type="submit"], input[type="button"] {
|
||||
background-color: #444;
|
||||
color: #FFD700;
|
||||
border: 1px solid #444;
|
||||
}
|
||||
|
||||
button:hover, input[type="submit"]:hover, input[type="button"]:hover {
|
||||
background-color: #333;
|
||||
border-color: #666;
|
||||
}
|
||||
|
||||
input, textarea, select {
|
||||
background-color: #333;
|
||||
color: #FFD700;
|
||||
border: 1px solid #555;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #FFDD44;
|
||||
}
|
||||
|
||||
table {
|
||||
background-color: #222;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
table th {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
table tr:nth-child(even) {
|
||||
background-color: #2A2A2A;
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
color: #FFDD44;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.profile {
|
||||
background-color: #222;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.profile .name {
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
border: 3px solid #FFD700;
|
||||
}
|
||||
|
||||
article, section {
|
||||
background-color: #1C1C1C;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.article img {
|
||||
border: 3px solid #FFD700;
|
||||
}
|
||||
|
||||
.post-preview img {
|
||||
border: 3px solid #FFD700;
|
||||
}
|
||||
|
||||
.post-preview .image-container {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
div {
|
||||
background-color: #1A1A1A;
|
||||
border: 1px solid #333;
|
||||
}
|
||||
|
||||
div .header-content {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #444;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: #222;
|
||||
}
|
||||
|
||||
.action-container {
|
||||
background-color: #1A1A1A;
|
||||
border: 1px solid #333;
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #1F1F1F;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
footer a {
|
||||
background-color: #444;
|
||||
color: #FFD700;
|
||||
text-align: center;
|
||||
padding: 8px 16px;
|
||||
border-radius: 5px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
background-color: #333;
|
||||
color: #FFDD44;
|
||||
}
|
||||
|
||||
.card {
|
||||
border-radius: 16px;
|
||||
padding: 0px 24px 10px 24px;
|
||||
margin-bottom: 16px;
|
||||
color: #FFD600;
|
||||
font-family: inherit;
|
||||
box-shadow: 0 2px 20px 0 #FFD60024;
|
||||
}
|
||||
|
||||
.card-section {
|
||||
border:none;
|
||||
padding: 10px 0 0 16px;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-bottom: 0px;
|
||||
margin-top: 8px;
|
||||
padding-top: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.card-label {
|
||||
color: #ffa300;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1.5px;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
margin-top: 6px;
|
||||
font-weight: 500;
|
||||
color: #ff9900;
|
||||
font-size: 1.07em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
background: none;
|
||||
border: none;
|
||||
padding-top: 0;
|
||||
margin-bottom: 6;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
margin-top: 0;
|
||||
margin-bottom: 4;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.card-field {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.card-tags {
|
||||
margin: 5px 0 3px 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 9px;
|
||||
}
|
||||
|
||||
.card-tags a.tag-link {
|
||||
text-decoration: none;
|
||||
color: #181818;
|
||||
background: #FFD600;
|
||||
padding: 5px 13px 4px 13px;
|
||||
border-radius: 7px;
|
||||
font-size: .98em;
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.card-tags a.tag-link:hover {
|
||||
background: #ffe86a;
|
||||
color: #111;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.user-link {
|
||||
background-color: #FFA500;
|
||||
color: #000;
|
||||
padding: 8px 16px;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
border: 2px solid transparent;
|
||||
transition: background-color 0.3s, color 0.3s, border-color 0.3s;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
a.user-link:hover {
|
||||
background-color: #FFD700;
|
||||
border-color: #FFD700;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a.user-link:focus {
|
||||
background-color: #007B9F;
|
||||
border-color: #007B9F;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.date-link {
|
||||
background-color: #444;
|
||||
color: #FFD600;
|
||||
padding: 8px 16px;
|
||||
border-radius: 5px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.date-link:hover {
|
||||
background-color: #555;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.activitySpreadInhabitant2 {
|
||||
background-color: #007B9F;
|
||||
color: #fff;
|
||||
padding: 8px 16px;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
|
||||
.activityVotePost {
|
||||
background-color: #557d3b;
|
||||
color: #fff;
|
||||
padding: 8px 16px;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
|
||||
.update-banner {
|
||||
background-color: #1a1400;
|
||||
border-bottom-color: #3a2e00;
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.update-banner-link {
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.oasis-footer-center a {
|
||||
color: #FFA500;
|
||||
}
|
||||
|
||||
.oasis-footer-center a:hover {
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
.snh-invite-code {
|
||||
color: #FFA500 !important;
|
||||
}
|
||||
|
||||
/* Blockexplorer */
|
||||
.stats-kpi-label { color: #ffa300 !important; }
|
||||
.stats-kpi-value { color: #FFD700 !important; }
|
||||
.carbon-bar-note, .carbon-bar-formula { color: #FFD700 !important; }
|
||||
.graphos-node-label { fill: #ddd !important; }
|
||||
.graphos-node-label-me { fill: #ffa500 !important; }
|
||||
.graphos-legend { color: #ddd !important; }
|
||||
.blockchain-view { background-color: #191b20 !important; color: #FFD700 !important; }
|
||||
.block { background: #23242a !important; }
|
||||
.block:hover { box-shadow: 0 8px 32px rgba(35,40,50,0.18) !important; }
|
||||
.blockchain-card-label, .block-info-table .card-label, .pm-info-table .card-label, .block-content-label { color: #ffa300 !important; }
|
||||
.blockchain-card-value, .block-info-table .card-value, .pm-info-table .card-value, .block-timestamp, .json-content { color: #FFD700 !important; }
|
||||
.block-content-preview, .block-content { background: #222326 !important; color: #FFD700 !important; }
|
||||
.block-author { color: #FFD700 !important; background: rgba(255,163,0,0.08) !important; }
|
||||
.block-author:hover { color: #FFDD44 !important; }
|
||||
.block-url { color: #FFD700 !important; }
|
||||
.block-row--details .block-url { background: #1f2023 !important; }
|
||||
.block-row--details .block-url:hover { background: #292b36 !important; color: #ffa300 !important; }
|
||||
.btn-singleview { background: #1e1f23 !important; color: #ffa300 !important; }
|
||||
.btn-singleview:hover { background: #2d2e34 !important; color: #FFD700 !important; }
|
||||
.btn-spread-on, .content-actions .btn-pin-on { background: #ffa300 !important; color: #000000 !important; }
|
||||
.btn-spread-on:hover, .content-actions .btn-pin-on:hover { background: #ffb733 !important; color: #000000 !important; }
|
||||
.btn-back { background: #21232b !important; color: #ffa300 !important; }
|
||||
.btn-back:hover { background: #292b36 !important; color: #FFD700 !important; }
|
||||
.block-info-table td, .pm-info-table td { border-color: #444 !important; }
|
||||
.block-diagram { border-color: #555 !important; background: #191b20 !important; }
|
||||
.block-diagram-ruler { color: #ffa300 !important; background: #111 !important; border-bottom-color: #555 !important; }
|
||||
.block-diagram-ruler span { color: #ffa300 !important; }
|
||||
.block-diagram-cell { border-color: #555 !important; background: #1e1f23 !important; }
|
||||
.bd-label { color: #ffa300 !important; }
|
||||
.bd-value { color: #FFD700 !important; }
|
||||
|
||||
/* Tribes */
|
||||
.tribe-card { background: #23242a !important; border-color: #444 !important; }
|
||||
.tribe-card:hover { border-color: #ffa300 !important; }
|
||||
.tribe-card-description { color: #cfd3e1 !important; }
|
||||
.tribe-info-table td { border-color: #444 !important; }
|
||||
.tribe-info-label { color: #ffa300 !important; background: #1e1f23 !important; }
|
||||
.tribe-info-value { color: #FFD700 !important; background: #1e1f23 !important; }
|
||||
.tribe-info-empty { color: #9aa3b2 !important; }
|
||||
.tribe-card-members { border-color: #444 !important; background: #1e1f23 !important; }
|
||||
.tribe-members-count { color: #ffa300 !important; }
|
||||
.tribe-card-actions { border-color: #444 !important; background: #1e1f23 !important; }
|
||||
.tribe-action-btn { border-color: #ffa300 !important; color: #ffa300 !important; }
|
||||
.tribe-action-btn:hover { background: #ffa300 !important; color: #000 !important; }
|
||||
.tribe-subtribe-link { background: #191b20 !important; border-color: #444 !important; color: #ffa300 !important; }
|
||||
.tribe-thumb-link { border-color: #444 !important; }
|
||||
.tribe-thumb-link:hover { border-color: #ffa300 !important; }
|
||||
.tribe-subtribe-link:hover { background: #333 !important; }
|
||||
.tribe-parent-image { border-color: #ffa300 !important; }
|
||||
.tribe-parent-box { background: #1e1f23 !important; }
|
||||
Loading…
Add table
Add a link
Reference in a new issue