mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-12 16:38:48 +00:00
añadida carga de datos de cache en formularios
This commit is contained in:
@ -1,26 +1,49 @@
|
||||
spring.application.name=erp
|
||||
logging.level.org.springframework.security=DEBUG
|
||||
|
||||
#
|
||||
# Logging
|
||||
#
|
||||
logging.level.org.springframework.security=DEBUG
|
||||
logging.level.root=WARN
|
||||
logging.level.org.springframework=ERROR
|
||||
|
||||
#debug JPA / Hibernate
|
||||
#spring.jpa.show-sql=true
|
||||
#logging.level.org.hibernate.SQL=DEBUG
|
||||
#logging.level.org.hibernate.orm.jdbc.bind=TRACE
|
||||
#spring.jpa.properties.hibernate.format_sql=true
|
||||
|
||||
|
||||
#
|
||||
# Database Configuration
|
||||
#
|
||||
spring.datasource.url=jdbc:mysql://localhost:3309/imprimelibros
|
||||
#spring.datasource.url=jdbc:mysql://127.0.0.1:3309/imprimelibros?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Europe/Madrid&characterEncoding=utf8
|
||||
spring.datasource.username=imprimelibros_user
|
||||
spring.datasource.password=om91irrDctd
|
||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||||
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
spring.jpa.show-sql=true
|
||||
|
||||
|
||||
#
|
||||
# Safekat API Configuration
|
||||
#
|
||||
safekat.api.url=http://localhost:8000/
|
||||
#safekat.api.url=https://erp-dev.safekat.es/
|
||||
safekat.api.email=imnavajas@coit.es
|
||||
safekat.api.password=Safekat2024
|
||||
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
spring.jpa.show-sql=true
|
||||
|
||||
#
|
||||
# Debug JPA / Hibernate
|
||||
#
|
||||
#spring.jpa.show-sql=true
|
||||
#logging.level.org.hibernate.SQL=DEBUG
|
||||
#logging.level.org.hibernate.orm.jdbc.bind=TRACE
|
||||
#spring.jpa.properties.hibernate.format_sql=true
|
||||
|
||||
|
||||
#
|
||||
# Resource chain
|
||||
# Activa el resource chain y versionado por contenido
|
||||
#
|
||||
spring.web.resources.chain.enabled=true
|
||||
spring.web.resources.chain.strategy.content.enabled=true
|
||||
spring.web.resources.chain.strategy.content.paths=/assets/**
|
||||
|
||||
|
||||
@ -59,6 +59,38 @@ class PresupuestoCliente {
|
||||
acabado: 0
|
||||
}
|
||||
},
|
||||
servicios: {
|
||||
servicios: [],
|
||||
datosMarcaPaginas: {
|
||||
marcapaginas_tirada: 100,
|
||||
tamanio_maquetacion: '_50x140_',
|
||||
caras_impresion: 'una_cara',
|
||||
papel_marcapaginas: 'cartulina_grafica',
|
||||
gramaje_marcapaginas: 300,
|
||||
acabado_marcapaginas: 'ninguno',
|
||||
resultado: {
|
||||
precio_unitario: 0,
|
||||
precio_total: 0
|
||||
}
|
||||
},
|
||||
datosMaquetacion: {
|
||||
num_caracteres: 200000,
|
||||
formato_maquetacion: 'A5',
|
||||
cuerpo_texto: 'medium',
|
||||
num_columnas: 1,
|
||||
num_tablas: 0,
|
||||
num_fotos: 0,
|
||||
correccion_ortotipografica: false,
|
||||
texto_mecanografiado: false,
|
||||
disenio_portada: false,
|
||||
epub: false,
|
||||
resultado: {
|
||||
num_paginas_estimadas: 0,
|
||||
precio_pagina_estimado: 0,
|
||||
precio: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
selectedTirada: null,
|
||||
}
|
||||
|
||||
@ -236,8 +268,9 @@ class PresupuestoCliente {
|
||||
contenedor.append(label);
|
||||
}
|
||||
|
||||
|
||||
/******************************
|
||||
* END OF DATOS GENERALES
|
||||
* DATOS GENERALES
|
||||
******************************/
|
||||
#initDatosGenerales() {
|
||||
|
||||
@ -1087,7 +1120,7 @@ class PresupuestoCliente {
|
||||
|
||||
const tipoCubierta = $('.tapa-cubierta.selected').attr('id') || 'tapaBlanda';
|
||||
const solapas = $('.solapas-cubierta.selected').id == 'sin-solapas' ? 0 : 1 || 0;
|
||||
const tamanioSolapas = $('#tamanio-solapas-cubierta').val() || '80';
|
||||
const tamanioSolapasCubierta = $('#tamanio-solapas-cubierta').val() || '80';
|
||||
const cubiertaCaras = parseInt(this.carasImpresionCubierta.val()) || 2;
|
||||
const guardasPapelId = parseInt($('#papel-guardas option:selected').data('papel-id')) || 3;
|
||||
const guardasGramaje = parseInt($('#papel-guardas option:selected').data('gramaje')) || 170;
|
||||
@ -1111,7 +1144,7 @@ class PresupuestoCliente {
|
||||
return {
|
||||
tipoCubierta: tipoCubierta,
|
||||
solapas: solapas,
|
||||
tamanioSolapas: tamanioSolapas,
|
||||
tamanioSolapasCubierta: tamanioSolapasCubierta,
|
||||
cubiertaCaras: cubiertaCaras,
|
||||
guardasPapelId: guardasPapelId,
|
||||
guardasGramaje: guardasGramaje,
|
||||
@ -1142,7 +1175,7 @@ class PresupuestoCliente {
|
||||
|
||||
this.formData.cubierta.tipoCubierta = data.tipoCubierta;
|
||||
this.formData.cubierta.solapas = data.solapas;
|
||||
this.formData.cubierta.tamanioSolapas = data.tamanioSolapas;
|
||||
this.formData.cubierta.tamanioSolapasCubierta = data.tamanioSolapasCubierta;
|
||||
this.formData.cubierta.cubiertaCaras = data.cubiertaCaras;
|
||||
this.formData.cubierta.guardasPapelId = data.guardasPapelId;
|
||||
this.formData.cubierta.guardasGramaje = data.guardasGramaje;
|
||||
@ -1219,7 +1252,7 @@ class PresupuestoCliente {
|
||||
$(`.solapas-cubierta#con-solapas`).addClass('selected');
|
||||
this.divSolapasCubierta.removeClass('d-none');
|
||||
this.carasImpresionCubierta.val(this.formData.cubierta.cubiertaCaras);
|
||||
this.tamanioSolapasCubierta.val(this.formData.cubierta.tamanioSolapas);
|
||||
this.tamanioSolapasCubierta.val(this.formData.cubierta.tamanioSolapasCubierta);
|
||||
}
|
||||
|
||||
this.carasImpresionCubierta.val(this.formData.cubierta.cubiertaCaras);
|
||||
@ -1361,6 +1394,7 @@ class PresupuestoCliente {
|
||||
// Eventos para el resumen
|
||||
$(document).on('change', '.service-checkbox', (e) => {
|
||||
Summary.updateExtras();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -3,10 +3,12 @@ import { formateaMoneda } from "../utils.js";
|
||||
|
||||
|
||||
$(document).on('change', '#maquetacion', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
if ($('#maquetacion').is(':checked')) {
|
||||
$.get("/presupuesto/public/maquetacion/form", function (data) {
|
||||
$("#maquetacionModalBody").html(data);
|
||||
loadMaquetacionData();
|
||||
$("#maquetacionModal").modal("show");
|
||||
});
|
||||
} else {
|
||||
@ -18,7 +20,9 @@ $(document).on('change', '#maquetacion', function (e) {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on("submit", "#maquetacionForm", function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
const $form = $(this);
|
||||
@ -34,16 +38,15 @@ $(document).on("submit", "#maquetacionForm", function (e) {
|
||||
const modal = bootstrap.Modal.getInstance(modalEl) || new bootstrap.Modal(modalEl);
|
||||
modal.hide();
|
||||
|
||||
|
||||
const resumenHtml = `
|
||||
<div class="text-start">
|
||||
<p>${json.language.num_paginas_estimadas || 'Páginas calculadas'}: ${json.numPaginasEstimadas ?? "-"}</p>
|
||||
<p>${json.language.precio_por_pagina_estimado || 'Precio por página estimado'}: ${formateaMoneda(json.precioPaginaEstimado) || "-"}</p>
|
||||
<hr class="my-2">
|
||||
${json.precio ?
|
||||
`<h3 class="mb-0"><strong>Precio:</strong> ${formateaMoneda(json.precio)}</h3>` : ""}
|
||||
</div>
|
||||
`;
|
||||
<div class="text-start">
|
||||
<p>${json.language.num_paginas_estimadas || 'Páginas calculadas'}: ${json.numPaginasEstimadas ?? "-"}</p>
|
||||
<p>${json.language.precio_por_pagina_estimado || 'Precio por página estimado'}: ${formateaMoneda(json.precioPaginaEstimado) || "-"}</p>
|
||||
<hr class="my-2">
|
||||
${json.precio ?
|
||||
`<h3 class="mb-0"><strong>Precio:</strong> ${formateaMoneda(json.precio)}</h3>` : ""}
|
||||
</div>
|
||||
`;
|
||||
|
||||
Swal.fire({
|
||||
title: json.language.presupuesto_maquetacion || 'Presupuesto Maquetación',
|
||||
@ -66,6 +69,13 @@ $(document).on("submit", "#maquetacionForm", function (e) {
|
||||
$('label[for="maquetacion"] .service-price')
|
||||
.text(formateaMoneda(json.precio));
|
||||
Summary.updateExtras();
|
||||
|
||||
// guardamos los datos del formulario en sessionStorage
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMaquetacion.resultado.num_paginas_estimadas = json.numPaginasEstimadas;
|
||||
stored.servicios.datosMaquetacion.resultado.precio_pagina_estimado = json.precioPaginaEstimado;
|
||||
stored.servicios.datosMaquetacion.resultado.precio = json.precio;
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
else {
|
||||
const calcularStr = $('#div-extras').data('language-calcular');
|
||||
@ -108,3 +118,43 @@ $(document).on('hidden.bs.modal', '#maquetacionModal', function () {
|
||||
$('label[for="maquetacion"] .service-price').text(calcularStr);
|
||||
});
|
||||
|
||||
|
||||
$(document).on('change', '.maquetacion-item', () => {
|
||||
|
||||
saveMaquetacionData();
|
||||
});
|
||||
|
||||
|
||||
function loadMaquetacionData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData")).servicios.datosMaquetacion;
|
||||
$('#num-caracteres').val(stored.num_caracteres);
|
||||
$('#formato-maquetacion').val(stored.formato_maquetacion);
|
||||
$('#cuerpo-texto').val(stored.cuerpo_texto);
|
||||
$('#num-columnas').val(stored.num_columnas);
|
||||
$('#num-tablas').val(stored.num_tablas);
|
||||
$('#num-fotos').val(stored.num_fotos);
|
||||
$('#correccion-ortotipografica').prop('checked', stored.correccion_ortotipografica);
|
||||
$('#texto-mecanografiado').prop('checked', stored.texto_mecanografiado);
|
||||
$('#disenio-portada').prop('checked', stored.disenio_portada);
|
||||
$('#epub').prop('checked', stored.epub);
|
||||
}
|
||||
|
||||
|
||||
function saveMaquetacionData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMaquetacion.num_caracteres = parseInt($('#num-caracteres').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.formato_maquetacion = $('#formato-maquetacion').val() || 'A5';
|
||||
stored.servicios.datosMaquetacion.cuerpo_texto = $('#cuerpo-texto').val() || 'medium';
|
||||
stored.servicios.datosMaquetacion.num_columnas = parseInt($('#num-columnas').val()) || 1;
|
||||
stored.servicios.datosMaquetacion.num_tablas = parseInt($('#num-tablas').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.num_fotos = parseInt($('#num-fotos').val()) || 0;
|
||||
stored.servicios.datosMaquetacion.correccion_ortotipografica = $('#correccion-ortotipografica').is(':checked');
|
||||
stored.servicios
|
||||
.datosMaquetacion.texto_mecanografiado = $('#texto-mecanografiado').is(':checked');
|
||||
stored.servicios.datosMaquetacion.disenio_portada = $('#disenio-portada').is(':checked');
|
||||
stored.servicios.datosMaquetacion.epub = $('#epub').is(':checked');
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@ $(document).on('change', '#marcapaginas', function (e) {
|
||||
$.get("/presupuesto/public/marcapaginas/form", function (data) {
|
||||
$("#marcapaginasModalBody").html(data);
|
||||
|
||||
loadMarcapaginasData();
|
||||
|
||||
// init marcapaginas form
|
||||
filtrarAcabados();
|
||||
$("#marcapaginasModal").modal("show");
|
||||
@ -65,6 +67,12 @@ $(document).on("submit", "#marcapaginasForm", function (e) {
|
||||
$('label[for="marcapaginas"] .service-price')
|
||||
.text(formateaMoneda(json.precio_total));
|
||||
Summary.updateExtras();
|
||||
|
||||
// guardamos los datos del formulario en sessionStorage
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMarcapaginas.resultado.precio_unitario = json.precio_unidad;
|
||||
stored.servicios.datosMarcapaginas.resultado.precio_total = json.precio_total;
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
else {
|
||||
const calcularStr = $('#div-extras').data('language-calcular');
|
||||
@ -139,5 +147,37 @@ function filtrarAcabados() {
|
||||
}
|
||||
|
||||
|
||||
$(document).on('change', '.marcapaginas-item', () => {
|
||||
|
||||
saveMarcapaginasData();
|
||||
});
|
||||
|
||||
|
||||
function loadMarcapaginasData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData")).servicios.datosMarcapaginas;
|
||||
$('#marcapaginas-tirada').val(stored.marcapaginas_tirada);
|
||||
$('#tamanio-maquetacion').val(stored.tamanio_maquetacion);
|
||||
$('#caras-impresion').val(stored.caras_impresion);
|
||||
$('#papel-marcapaginas').val(stored.papel_marcapaginas);
|
||||
$('#gramaje-marcapaginas').val(stored.gramaje_marcapaginas);
|
||||
$('#num-fotos').val(stored.num_fotos);
|
||||
$('#acabado-marcapaginas').prop('checked', stored.acabado_marcapaginas);
|
||||
}
|
||||
|
||||
|
||||
function saveMarcapaginasData() {
|
||||
|
||||
const stored = JSON.parse(sessionStorage.getItem("formData"));
|
||||
stored.servicios.datosMarcapaginas.marcapaginas_tirada = parseInt($('#marcapaginas-tirada').val()) || 100;
|
||||
stored.servicios.datosMarcapaginas.tamanio_maquetacion = $('#tamanio-maquetacion').val() || '_50x140_';
|
||||
stored.servicios.datosMarcapaginas.caras_impresion = $('#caras-impresion').val() || 'una_cara';
|
||||
stored.servicios.datosMarcapaginas.papel_marcapaginas = $('#papel-marcapaginas').val() || 'cartulina_grafica';
|
||||
stored.servicios.datosMarcapaginas.gramaje_marcapaginas = parseInt($('#gramaje-marcapaginas').val()) || 300;
|
||||
stored.servicios.datosMarcapaginas.num_fotos = parseInt($('#num-fotos').val()) || 0;
|
||||
stored.servicios.datosMarcapaginas.acabado_marcapaginas = $('#acabado-marcapaginas').val() || 'ninguno';
|
||||
sessionStorage.setItem("formData", JSON.stringify(stored));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
<form id="maquetacionForm" novalidate th:action="@{/presupuesto/public/maquetacion}" th:object="${presupuestoMaquetacion}" method="get">
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.num-caracteres}" for="num-caracteres">Número de caracteres</label>
|
||||
<input type="number" class="form-control" id="num-caracteres" th:field="*{numCaracteres}" min="1" required>
|
||||
<input type="number" class="form-control maquetacion-item" id="num-caracteres" th:field="*{numCaracteres}" min="1" required>
|
||||
<div class="invalid-feedback"></div>
|
||||
<label th:text="#{presupuesto.maquetacion.num-caracteres-descripcion}" class="form-text text-muted"></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.formato}" for="formato-maquetacion">Formato</label>
|
||||
<select class="form-control" id="formato-maquetacion" th:field="*{formato}" required>
|
||||
<select class="form-control maquetacion-item" id="formato-maquetacion" th:field="*{formato}" required>
|
||||
<option value="A5" selected>A5</option>
|
||||
<option value="_17x24_">170x240 mm</option>
|
||||
<option value="A4">A4</option>
|
||||
@ -17,52 +17,52 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.cuerpo-texto}" for="cuerpo-texto">Cuerpo de texto</label>
|
||||
<select class="form-control" id="cuerpo-texto" th:field="*{cuerpoTexto}" required>
|
||||
<select class="form-control maquetacion-item" id="cuerpo-texto" th:field="*{cuerpoTexto}" required>
|
||||
<option th:text="#{presupuesto.maquetacion.cuerpo-texto-pequeño}" value="small"></option>
|
||||
<option th:text="#{presupuesto.maquetacion.cuerpo-texto-medio}" value="medium" selected>Medio (12pt)
|
||||
</option>
|
||||
<option th:text="#{presupuesto.maquetacion.cuerpo-texto-grande}" value="large">Grande</option>
|
||||
<option th:text="#{presupuesto.maquetacion.cuerpo-texto-grande}" value="big">Grande</option>
|
||||
</select>
|
||||
<label th:text="#{presupuesto.maquetacion.cuerpo-texto-descripcion}" class="form-text text-muted"></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.num-columnas}" for="num-columnas">Número de columnas</label>
|
||||
<input type="number" class="form-control" id="num-columnas" th:field="*{numColumnas}" min="1" required>
|
||||
<input type="number" class="form-control maquetacion-item" id="num-columnas" th:field="*{numColumnas}" min="1" required>
|
||||
<div class="invalid-feedback"></div>
|
||||
<label th:text="#{presupuesto.maquetacion.num-columnas-descripcion}" class="form-text text-muted"></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.num-tablas}" for="num-tablas">Número de tablas</label>
|
||||
<input type="number" class="form-control" id="num-tablas" th:field="*{numTablas}" min="0" required>
|
||||
<input type="number" class="form-control maquetacion-item" id="num-tablas" th:field="*{numTablas}" min="0" required>
|
||||
<div class="invalid-feedback"></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:text="#{presupuesto.maquetacion.num-fotos}" for="num-fotos">Número de fotos</label>
|
||||
<input type="number" class="form-control" id="num-fotos" th:field="*{numFotos}" min="0" required>
|
||||
<input type="number" class="form-control maquetacion-item" id="num-fotos" th:field="*{numFotos}" min="0" required>
|
||||
<div class="invalid-feedback"></div>
|
||||
</div>
|
||||
<div class="form-check form-switch form-switch-custom mb-3 mt-3">
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary"
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary maquetacion-item"
|
||||
id="correccion-ortotipografica" name="correccion-ortotipografica"
|
||||
th:field="*{correccionOrtotipografica}">
|
||||
<label class="form-check-label" for="correccion-ortotipografica">Corrección ortotipográfica</label>
|
||||
</div>
|
||||
<div class="form-check form-switch form-switch-custom mb-3">
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary"
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary maquetacion-item"
|
||||
id="texto-mecanografiado" name="texto-mecanografiado" th:field="*{textoMecanografiado}">
|
||||
<label for="texto-mecanografiado" class="form-check-label" th:text="#{presupuesto.maquetacion.texto-mecanografiado}">
|
||||
Texto mecanografiado
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check form-switch form-switch-custom mb-3">
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary" id="disenio-portada"
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary maquetacion-item" id="disenio-portada"
|
||||
name="disenio-portada" th:field="*{disenioPortada}">
|
||||
<label for="disenio-portada" class="form-check-label" th:text="#{presupuesto.maquetacion.diseno-portada}">
|
||||
Diseño de portada
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-check form-switch form-switch-custom">
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary" id="epub" name="epub"
|
||||
<input type="checkbox" class="form-check-input form-switch-custom-primary maquetacion-item" id="epub" name="epub"
|
||||
th:field="*{epub}">
|
||||
<label for="epub" class="form-check-label" th:text="#{presupuesto.maquetacion.epub}">ePub</label>
|
||||
</div>
|
||||
|
||||
@ -2,12 +2,12 @@
|
||||
<form id="marcapaginasForm" novalidate th:action="@{/presupuesto/public/marcapaginas}" th:object="${presupuestoMarcapaginas}" method="get">
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.tirada}" for="marcapaginas-tirada">Tirada</label>
|
||||
<input type="number" class="form-control" id="marcapaginas-tirada" th:field="*{unidades}" min="100" required>
|
||||
<input type="number" class="form-control marcapaginas-item" id="marcapaginas-tirada" th:field="*{unidades}" min="100" required>
|
||||
<div class="invalid-feedback"></div>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.marcapaginas.tamanio}" for="tamanio-maquetacion">Tamaño</label>
|
||||
<select class="form-control" id="tamanio-maquetacion" th:field="*{tamanio}" required>
|
||||
<select class="form-control marcapaginas-item" id="tamanio-maquetacion" th:field="*{tamanio}" required>
|
||||
<option value="_50x140_" selected>50x140 mm</option>
|
||||
<option value="_50x170_">50x170 mm</option>
|
||||
<option value="_50x210_">50x210 mm</option>
|
||||
@ -15,28 +15,28 @@
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.marcapaginas.caras-impresion}" for="caras-impresion">Caras impresión</label>
|
||||
<select class="form-control" id="caras-impresion" th:field="*{carasImpresion}" required>
|
||||
<select class="form-control marcapaginas-item" id="caras-impresion" th:field="*{carasImpresion}" required>
|
||||
<option th:text="#{presupuesto.marcapaginas.caras-impresion-1}" value="una_cara">Una cara</option>
|
||||
<option th:text="#{presupuesto.marcapaginas.caras-impresion-2}" value="dos_caras" selected>Dos caras</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.marcapaginas.papel}" for="papel-marcapaginas">Papel marcapáginas</label>
|
||||
<select class="form-control" id="papel-marcapaginas" th:field="*{papel}" required>
|
||||
<select class="form-control marcapaginas-item" id="papel-marcapaginas" th:field="*{papel}" required>
|
||||
<option th:text="#{presupuesto.marcapaginas.papel.cartulina-grafica}" value="cartulina_grafica">Cartulina gráfica</option>
|
||||
<option th:text="#{presupuesto.marcapaginas.papel.estucado-mate}" value="estucado_mate" selected>Estucado mate</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.marcapaginas.gramaje}" for="gramaje-marcapaginas">Gramaje marcapáginas</label>
|
||||
<select class="form-control" id="gramaje-marcapaginas" th:field="*{gramaje}" required>
|
||||
<select class="form-control marcapaginas-item" id="gramaje-marcapaginas" th:field="*{gramaje}" required>
|
||||
<option value="300" selected>300</option>
|
||||
<option value="350">350</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mb-3">
|
||||
<label th:text="#{presupuesto.marcapaginas.acabado}" for="acabado-marcapaginas">Acabado marcapáginas</label>
|
||||
<select class="form-control" id="acabado-marcapaginas" th:field="*{acabado}" required>
|
||||
<select class="form-control marcapaginas-item" id="acabado-marcapaginas" th:field="*{acabado}" required>
|
||||
<option class="marcapaginas-1cara marcapaginas-2caras" value="ninguno" th:text="#{presupuesto.marcapaginas.acabado.ninguno}" selected>Sin acabado</option>
|
||||
<option class="marcapaginas-1cara" value="plastificado_brillo_1c" th:text="#{presupuesto.marcapaginas.acabado.plastificado-brillo-1c}">Plastificado brillo</option>
|
||||
<option class="marcapaginas-1cara" value="plastificado_mate_1c" th:text="#{presupuesto.marcapaginas.acabado.plastificado-mate-1c}">Plastificado mate</option>
|
||||
|
||||
Reference in New Issue
Block a user