trabajando en interior

This commit is contained in:
Jaime Jiménez
2025-07-30 22:18:06 +02:00
parent 8b34d6dca9
commit eb0b5610d8
41 changed files with 1082 additions and 201 deletions

View File

@ -34,8 +34,8 @@
<th:block th:replace="~{theme/partials/vendor-scripts :: scripts}" />
<th:block layout:fragment="pagejs">
<div th:unless="${#authorization.expression('isAuthenticated()')}">
<script th:src="@{/assets/js/pages/imprimelibros/presupuestador/imagen-presupuesto.js}"></script>
<script th:src="@{/assets/js/pages/imprimelibros/presupuestador/presupuestador.js}"></script>
<script th:src="@{/assets/js/pages/imprimelibros/presupuestador/imagen-selector.js}"></script>
<script type="module" th:src="@{/assets/js/pages/imprimelibros/presupuestador/presupuestador.js}"></script>
</div>
<script th:inline="javascript">
window.languageBundle = /*[[${languageBundle}]]*/ {};

View File

@ -7,7 +7,7 @@
<th:block layout:fragment="pagetitle" />
<th:block th:replace="~{imprimelibros/partials/head-css :: head-css}" />
<link href="/assets/libs/sweetalert2/sweetalert2.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<link href="/assets/libs/select2/select2.min.css" rel="stylesheet" />
<th:block layout:fragment="pagecss" />
</head>
@ -28,9 +28,9 @@
<th:block layout:fragment="modal" />
<th:block th:replace="~{theme/partials/vendor-scripts :: scripts}" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="/assets/libs/jquery/jquery-3.6.0.min.js"></script>
<script src="/assets/libs/sweetalert2/sweetalert2.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script src="/assets/libs/select2/select2.min.js"></script>
<th:block layout:fragment="pagejs" />
<script th:src="@{/assets/js/app.js}"></script>
<script th:src="@{/assets/js/pages/imprimelibros/languageBundle.js}"></script>

View File

@ -22,7 +22,7 @@
<div class="ribbon-content mt-4">
<div class="row justify-content-center imagen-container-group">
<div id="tapa-blanda" class="image-container imagen-selector selected">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/tapa-blanda.jpg"
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/tapa-blanda.png"
alt="">
<label for="titulo" class="form-label" th:text="#{presupuesto.tapa-blanda}">
Tapa blanda
@ -31,7 +31,7 @@
<div id="tapa-dura" class="image-container imagen-selector">
<img class="image-presupuesto"
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-recto.jpg" alt="">
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-recto.png" alt="">
<label class="form-label" th:text="#{presupuesto.tapa-dura}">
Tapa dura
</label>
@ -39,7 +39,7 @@
<div id="tapa-dura-lomo-redondo" class="image-container imagen-selector">
<img class="image-presupuesto"
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-redondo.jpg" alt="">
src="/assets/images/imprimelibros/presupuestador/tapa-dura-lomo-redondo.png" alt="">
<label class="form-label" th:text="#{presupuesto.tapa-dura-lomo-redondo}">
Tapa dura lomo redondo
</label>

View File

@ -1,4 +1,4 @@
<div>
<div id="content-datos-generales" class="animate-fadeInUpBounce">
<!-- Ribbon Shape -->
<div class="card ribbon-box border shadow-none mb-lg-0 material-shadow">
<div class="card-body">
@ -23,7 +23,7 @@
<div class="mb-3">
<label for="titulo" class="form-label" th:text="#{presupuesto.titulo}">
>Título*</label>
<input type="text" class="form-control" id="titulo" placeholder="" value="">
<input type="text" class="form-control datos-generales-data" id="titulo" placeholder="" value="">
</div>
</div>
</div>
@ -32,13 +32,13 @@
<div class="col-sm-6">
<div class="mb-3">
<label for="autor" class="form-label" th:text="#{presupuesto.autor}">Autor</label>
<input type="text" class="form-control" id="autor" value="">
<input type="text" class="form-control datos-generales-data" id="autor" value="">
</div>
</div>
<div class="col-sm-6">
<div class="mb-3">
<label for="isbn" class="form-label" th:text="#{presupuesto.isbn}">ISBN</label>
<input type="text" class="form-control" id="isbn" value="">
<input type="text" class="form-control datos-generales-data" id="isbn" value="">
</div>
</div>
</div>
@ -47,19 +47,19 @@
<div class="row">
<div class="col-sm-3 mb-1">
<label for="tirada1" class="form-label" th:text="#{presupuesto.tirada1}">Tirada 1*</label>
<input type="number" class="form-control" id="tirada1" placeholder="" value="10">
<input type="number" class="form-control datos-generales-data" id="tirada1" placeholder="" value="10">
</div>
<div class="col-sm-3 mb-1">
<label for="tirada2" class="form-label" th:text="#{presupuesto.tirada2}">Tirada 2</label>
<input type="number" class="form-control" id="tirada2" placeholder="" value="">
<input type="number" class="form-control datos-generales-data" id="tirada2" placeholder="" value="">
</div>
<div class="col-sm-3 mb-1">
<label for="tirada3" class="form-label" th:text="#{presupuesto.tirada3}">Tirada 3</label>
<input type="number" class="form-control" id="tirada3" placeholder="" value="">
<input type="number" class="form-control datos-generales-data" id="tirada3" placeholder="" value="">
</div>
<div class="col-sm-3 mb-1">
<label for="tirada4" class="form-label" th:text="#{presupuesto.tirada4}">Tirada 4</label>
<input type="number" class="form-control" id="tirada4" placeholder="" value="">
<input type="number" class="form-control datos-generales-data" id="tirada4" placeholder="" value="">
</div>
</div>
<p class="text-muted" th:text="#{presupuesto.tiradasPODnoPOD(${pod})}">
@ -68,46 +68,65 @@
</div>
<div class="row justify-content-center">
<div class="col-sm-4">
<div class="mb-3">
<label for="formato" class="form-label" th:text="#{presupuesto.formato}">Formato</label>
<select class="form-select select2" id="formato">
<optgroup th:label="#{presupuesto.orientacion.vertical}">
<option value="148x210">148x210 (A5)</option>
<option value="115x170">115x170</option>
<option value="210x297">210x297 (A4)</option>
</optgroup>
<optgroup th:label="#{presupuesto.orientacion.cuadrado}">
<option value="210x210">210x210</option>
<option value="230x230">230x230</option>
</optgroup>
<optgroup th:label="#{presupuesto.orientacion.apaisado}">
<option value="210x148">210x148 (A5)</option>
<option value="240x170">240x170</option>
<option value="297x210">297x210 (A4)</option>
</optgroup>
</select>
<div class="col-sm-8">
</div>
<div class="mb-3">
<div class="form-check form-switch form-switch-custom form-switch-primary mb-3">
<input type="checkbox" class="form-check-input form-switch-custom-primary"
id="formato-personalizado" name="formato-personalizado">
<label for="formato-personalizado" class="form-label"
th:text="#{presupuesto.formato-personalizado}">Formato
Personalizado</label>
<div class="row justify-content-center">
<div class="col-sm-4 mb-3 div-formato">
<label for="formato" class="form-label" th:text="#{presupuesto.formato}">Formato</label>
<select class="form-select select2 datos-generales-data" id="formato">
<optgroup th:label="#{presupuesto.orientacion.vertical}">
<option data-ancho="148" data-alto="210" value="148x210">148x210 (A5)</option>
<option data-ancho="120" data-alto="170" value="120x170">120x170</option>
<option data-ancho="210" data-alto="297" value="210x297">210x297 (A4)</option>
</optgroup>
<optgroup th:label="#{presupuesto.orientacion.cuadrado}">
<option data-ancho="210" data-alto="210" value="210x210">210x210</option>
<option data-ancho="230" data-alto="230" value="230x230">230x230</option>
</optgroup>
<optgroup th:label="#{presupuesto.orientacion.apaisado}">
<option data-ancho="210" data-alto="148" value="210x148">210x148 (A5)</option>
<option data-ancho="240" data-alto="170" value="240x170">240x170</option>
<option data-ancho="297" data-alto="210" value="297x210">297x210 (A4)</option>
</optgroup>
</select>
</div>
</div>
<div class="row justify-content-center div-formato-personalizado d-none">
<div class="col-3 col-sm-3 mb-1">
<label for="ancho" class="form-label" th:text="#{presupuesto.ancho}">Ancho (mm)</label>
<input type="number" class="form-control datos-generales-data" id="ancho" name="ancho" value="210"
th:attr="min=${ancho_alto_min}, max=${ancho_alto_max}">
</div>
<div class="col-3 col-sm-3 mb-1">
<label for="alto" class="form-label" th:text="#{presupuesto.alto}">Alto (mm)</label>
<input type="number" class="form-control datos-generales-data" id="alto" name="alto" value="297"
th:attr="min=${ancho_alto_min}, max=${ancho_alto_max}">
</div>
</div>
<div class="row justify-content-center mb-3">
<div class="col-sm-4 d-flex justify-content-center">
<div class="form-check form-switch form-switch-custom form-switch-primary mb-3">
<input type="checkbox" class="form-check-input form-switch-custom-primary datos-generales-data"
id="formato-personalizado" name="formato-personalizado">
<label for="formato-personalizado" class="form-label"
th:text="#{presupuesto.formato-personalizado}">
Formato Personalizado
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center mb-2">
<div class="col-sm-2">
<label for="paginas-negro" class="form-label" th:text="#{presupuesto.paginas-negro}">Páginas
Negro</label>
<input type="number" step="2" class="form-control" id="paginas-negro" name="paginas-negro"
value="0">
<input type="number" step="2" class="form-control paginas datos-generales-data" id="paginas-negro"
name="paginas-negro" value="0">
<div class="form-text" th:text="#{presupuesto.siempre-pares}">
Siempre deben ser pares</div>
</div>
@ -119,8 +138,8 @@
<div class="col-sm-2">
<label for="paginas-color" class="form-label" th:text="#{presupuesto.paginas-color}">Páginas
Color</label>
<input type="number" step="2" class="form-control" id="paginas-color" name="paginas-color"
value="32">
<input type="number" step="2" class="form-control paginas datos-generales-data" id="paginas-color"
name="paginas-color" value="32">
<div class="form-text" th:text="#{presupuesto.siempre-pares}">
Siempre deben ser pares</div>
</div>
@ -135,6 +154,21 @@
<input disabled class="form-control" id="paginas" name="paginas" value="32">
</div>
</div>
<div id="div-posicion-paginas-color" class="row justify-content-center">
<div class="col-sm-9">
<label for="posicionPaginasColor" class="form-label" th:text="#{presupuesto.paginas-posicion}">
Posición páginas color
</label>
<input class="form-control datos-generales-data" id="posicionPaginasColor" value="">
<div class="form-text">
<p th:text="#{presupuesto.paginas-posicion-descripcion}">
Intruzca la posición separada por comas. Ej: 3,5,7 ó 4-10,20,155
</p>
</div>
</div>
</div>
</div>
</div>
@ -152,56 +186,53 @@
<div class="ribbon-content mt-4">
<div class="px-2">
<div class="row justify-content-center imagen-container-group">
<div class="d-flex flex-wrap justify-content-center gap-3 imagen-container-group">
<!-- Opción: Fresado -->
<div class="col-12 col-sm-6 col-md-4 d-flex justify-content-center mb-4">
<div class="image-container imagen-selector selected" id="fresado">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/fresado.png"
alt="Fresado" />
<div class="form-text text-center" th:text="#{presupuesto.fresado-descripcion}">
Fresado (a partir de 32 páginas)</div>
</div>
<div class="tipo-libro image-container imagen-selector selected datos-generales-data" id="fresado">
<input type="radio" name="tipoEncuadernacion" value="fresado" hidden>
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/fresado.png"
alt="Fresado" />
<div class="form-text text-center" th:text="#{presupuesto.fresado-descripcion}">
Fresado (a partir de 32 páginas)</div>
</div>
<!-- Opción: Cosido -->
<div class="col-12 col-sm-6 col-md-4 d-flex justify-content-center mb-4">
<div class="image-container imagen-selector" id="cosido">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/cosido.png"
alt="Cosido" />
<div class="form-text text-center" th:text="#{presupuesto.cosido-descripcion}">
Cosido (a partir de 32 páginas)</div>
</div>
<div class="tipo-libro image-container imagen-selector datos-generales-data" id="cosido">
<input type="radio" name="tipoEncuadernacion" value="cosido" hidden>
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/cosido.png"
alt="Cosido" />
<div class="form-text text-center" th:text="#{presupuesto.cosido-descripcion}">
Cosido (a partir de 32 páginas)</div>
</div>
<!-- Opción: Grapado -->
<div class="col-12 col-sm-6 col-md-4 d-flex justify-content-center mb-4">
<div class="image-container imagen-selector" id="grapado">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/grapado.png"
alt="Grapado" />
<div class="form-text text-center" th:text="#{presupuesto.grapado-descripcion}">
Grapado (entre 12 y 40 páginas)</div>
</div>
<div class="tipo-libro image-container imagen-selector datos-generales-data" id="grapado">
<input type="radio" name="tipoEncuadernacion" value="grapado" hidden>
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/grapado.png"
alt="Grapado" />
<div class="form-text text-center" th:text="#{presupuesto.grapado-descripcion}">
Grapado (entre 12 y 40 páginas)</div>
</div>
<!-- Opción: Espiral -->
<div class="col-12 col-sm-6 col-md-4 d-flex justify-content-center mb-4">
<div class="image-container imagen-selector" id="espiral">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/espiral.png"
alt="Espiral" />
<div class="form-text text-center" th:text="#{presupuesto.espiral-descripcion}">
Espiral (a partir de 20 páginas)</div>
</div>
<div class="tipo-libro image-container imagen-selector datos-generales-data" id="espiral">
<input type="radio" name="tipoEncuadernacion" value="espiral" hidden>
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/espiral.png"
alt="Espiral" />
<div class="form-text text-center" th:text="#{presupuesto.espiral-descripcion}">
Espiral (a partir de 20 páginas)</div>
</div>
<!-- Opción: Wire-O -->
<div class="col-12 col-sm-6 col-md-4 d-flex justify-content-center mb-4">
<div class="image-container imagen-selector" id="wireo">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/wire-o.png"
alt="Wire-O" />
<div class="form-text text-center" th:text="#{presupuesto.wire-o-descripcion}">
Wire-O (a partir de 20 páginas)</div>
</div>
<div class="tipo-libro image-container imagen-selector datos-generales-data" id="wireo">
<input type="radio" name="tipoEncuadernacion" value="wireo" hidden>
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/wire-o.png"
alt="Wire-O" />
<div class="form-text text-center" th:text="#{presupuesto.wire-o-descripcion}">
Wire-O (a partir de 20 páginas)</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
<div>
<div id="content-interior">
<!-- Ribbon Shape -->
<div class="card ribbon-box border shadow-none mb-lg-0 material-shadow">
<div class="card-body">
@ -9,38 +9,8 @@
</div>
<div class="ribbon-content mt-4">
<div class="row justify-content-center imagen-container-group">
<div id="negroEstandar" class="image-container imagen-selector selected">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/blancoYnegro.png"
alt="Negro">
<label for="titulo" class="form-label" th:text="#{presupuesto.blanco-negro}">
Blanco y Negro
</label>
</div>
<div id="negroPremium" class="image-container imagen-selector">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/negroFoto.png"
alt="NegroPremium">
<label class="form-label" th:text="#{presupuesto.blanco-negro-premium}">
Blanco y Negro Premium
</label>
</div>
<div id="colorEstandar" class="image-container imagen-selector">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/color.png"
alt="Color">
<label class="form-label" th:text="#{presupuesto.color}">
Color
</label>
</div>
<div id="colorPremium" class="image-container imagen-selector">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/colorFoto.png"
alt="ColorPremium">
<label class="form-label" th:text="#{presupuesto.color-premium}">
Color Premium
</label>
</div>
<div id="div-opciones-color" class="row justify-content-center imagen-container-group">
</div>
</div>
</div>
@ -56,7 +26,8 @@
<div class="ribbon-content mt-4">
<div class="row justify-content-center imagen-container-group">
<div id="div-papel-interior" class="row justify-content-center imagen-container-group">
<div id="offset-blanco" data-sk-id="3" class="image-container imagen-selector selected">
<img class="image-presupuesto" src="/assets/images/imprimelibros/presupuestador/offset-blanco.png"
alt="">