Merge branch 'dev/formas_libro' into 'dev/presupuestos3'

Dev/formas libro

See merge request jjimenez/safekat!74
This commit is contained in:
Ignacio Martinez Navajas
2023-11-14 12:04:35 +00:00
8 changed files with 11270 additions and 25 deletions

View File

@ -21,6 +21,12 @@ class Js_loader extends BaseController
}
function previsualizador_js()
{
$this->response->setHeader('Content-Type', 'text/javascript');
return view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js');
}
}

View File

@ -1,24 +0,0 @@
<?php
namespace App\Controllers\Presupuestos;
use App\Controllers\BaseController;
class Js_loader extends BaseController
{
function __construct()
{
}
function comparadorCosidoTapablanda_js()
{
$this->load->view('themes/backend/vuexy/form/presupuestos/cosidotapablanda/comparador.js');
$this->output->set_content_type('text/javascript');
}
}

View File

@ -157,6 +157,10 @@ return [
'comentariosSafekat' => 'Comentarios Safekat',
'comentariosPresupuesto' => 'Comentarios Presupuesto',
'comentariosProduccion' => 'Comentarios Produccion',
'preview' => 'Previsualización de configuraciones',
'previewMaquina' => 'Configuración de máquina',
'previewCubierta' => 'Configuración de cubierta',
'previewPortada' => 'Configuración de portada',
'resumen' => 'Resumen del presupuesto',
'confirmar' => 'Confirmar presupuesto',

View File

@ -0,0 +1,381 @@
<div class="accordion mt-3" id="accordionPreview">
<div class="card accordion-item active">
<h2 class="accordion-header" id="headingOne">
<button type="button" class="accordion-button" data-bs-toggle="collapse"
data-bs-target="#accordionPreviewTip" aria-expanded="false"
aria-controls="accordionPreviewTip">
<h4><?= lang("Presupuestos.preview") ?></h4>
</button>
</h2>
<div id="accordionPreviewTip" class="accordion-collapse collapse show"
data-bs-parent="#accordionPreview">
<div class="accordion-body">
<div class="nav-align-top mb-4">
<ul class="nav nav-pills mb-3" role="tablist">
<li id="tab-preview-maquina" class="nav-item">
<button
type="button"
class="nav-link active"
role="tab"
data-bs-toggle="tab"
data-bs-target="#preview-maquina"
aria-controls="preview-maquina"
aria-selected="true">
<?= lang("Presupuestos.previewMaquina") ?>
</button>
</li>
<li id="tab-preview-cubierta" class="nav-item">
<button
type="button"
class="nav-link"
role="tab"
data-bs-toggle="tab"
data-bs-target="#preview-cubierta"
aria-controls="preview-cubierta"
aria-selected="false">
<?= lang("Presupuestos.previewCubierta") ?>
</button>
</li>
<li id="tab-preview-portada" class="nav-item">
<button
type="button"
class="nav-link"
role="tab"
data-bs-toggle="tab"
data-bs-target="#preview-portada"
aria-controls="preview-portada"
aria-selected="false">
<?= lang("Presupuestos.previewPortada") ?>
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="preview-maquina" role="tabpanel">
<div class="row">
<div class="col-3">
<div class="p-4 mb-3 pb-3" >
<!-- Configuraciones -->
<h6>Configuración del papel: Rotativa</h6>
<div class="row g-3 mb-3">
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel
generico
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel de
compra
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Máquina
</button>
</div>
</a>
</div>
</div>
<hr class="mx-n4"/>
<!-- Detalles del presupuesto -->
<h6>Detalles del trabajo</h6>
<dl class="row mb-0">
<dt class="col-6 fw-normal">Gramaje:</dt>
<dd class="col-6 text-left">TBD</dd>
<dt class="col-sm-6 fw-normal">Mano:</dt>
<dd class="col-sm-6 text-success text-left">TBD</dd>
<dt class="col-6 fw-normal">Máquina:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Máquina impresión:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Libro:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Formas:</dt>
<dd class="col-6 text-left">TBD</dd>
</dl>
</div>
</div>
<div class="col-9">
<div class="p-4 mb-3 pb-3">
<!-- Configuraciones -->
<h6>Posición de formas</h6>
<div id="shape-container">
<div id="draw-maquina" class="draw-shapes"></div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="preview-cubierta" role="tabpanel">
<div class="row">
<div class="col-3">
<div class="p-4 mb-3 pb-3" >
<!-- Configuraciones -->
<h6>Configuración del papel: Cubierta</h6>
<div class="row g-3 mb-3">
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel
generico
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel de
compra
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Máquina
</button>
</div>
</a>
</div>
</div>
<hr class="mx-n4"/>
<!-- Detalles del presupuesto -->
<h6>Detalles del trabajo</h6>
<dl class="row mb-0">
<dt class="col-6 fw-normal">Gramaje:</dt>
<dd class="col-6 text-left">TBD</dd>
<dt class="col-sm-6 fw-normal">Mano:</dt>
<dd class="col-sm-6 text-success text-left">TBD</dd>
<dt class="col-6 fw-normal">Máquina:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Máquina impresión:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Libro:</dt>
<dd class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Formas:</dt>
<dd class="col-6 text-left">TBD</dd>
</dl>
</div>
</div>
<div class="col-9">
<div class="p-4 mb-3 pb-3">
<!-- Configuraciones -->
<h6>Posición de formas</h6>
<div id="shape-container" >
<div id="draw-cubierta" class="draw-shapes"></div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="preview-portada" role="tabpanel">
<div class="row">
<div class="col-3">
<div class="p-4 mb-3 pb-3" >
<!-- Configuraciones -->
<h6>Configuración de portada</h6>
<div class="row g-3 mb-3">
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel
generico
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Papel de
compra
</button>
</div>
</a>
</div>
<div class="col-12">
<a href="#">
<div class="d-grid">
<button type="button" class="btn btn-label-primary">Máquina
</button>
</div>
</a>
</div>
</div>
<hr class="mx-n4"/>
<!-- Detalles del presupuesto -->
<h6>Detalles del trabajo</h6>
<dl class="row mb-0">
<dt class="col-6 fw-normal">Libro:</dt>
<dd id='prevLibro' class="col-6 text-left">TBDxTBD</dd>
<dt class="col-6 fw-normal">Lomo:</dt>
<dd id='prevLomo' class="col-6 text-left">TBD</dd>
<dt class="col-6 fw-normal">Solapas:</dt>
<dd id='prevSolapas' class="col-6 text-left">TBD</dd>
</dl>
</div>
</div>
<div class="col-9">
<div class="p-4 mb-3 pb-3">
<!-- Configuraciones -->
<h6>Posición de formas</h6>
<div id="shape-container">
<div id="draw-portada" class="draw-shapes"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div> <!-- //.accordion-body -->
</div> <!-- //.accordion-collapse -->
</div> <!-- //.accordion-item -->
</div> <!-- //.accordion -->
<!------------------------------------------------------->
<!-- Código JS comportamiento ?????. -->
<!------------------------------------------------------->
<?= $this->section("additionalInlineJs") ?>
$('#tab-preview-cubierta').on( "click", function() {
var cubiertaObjeto = {
anchoMaquina: 487,
altoMaquina: 330,
anchoImpresion: 475,
altoImpresion: 310,
anchoLibro:170,
altoLibro:240,
solapas:45,
lomo:25};
previewCubierta(cubiertaObjeto);
} );
$('#tab-preview-portada').on( "click", function() {
var portadaObjeto = {
anchoLibro:170,
altoLibro:240,
solapas:45,
lomo:25};
previewPortada(portadaObjeto);
} );
var elem = document.getElementById('draw-maquina');
var twoMaquina = new Two({fitted: true}).appendTo(elem);
var origin = new Two.Vector(twoMaquina.width/2, twoMaquina.height/2);
var sizeX = 148;
var sizeY = 98;
var AIx = 355;
var AIy = 250;
var styles = {
size: 14,
family: 'Lato'
};
//var texts = [];
var areaMaquina = twoMaquina.makeRectangle(origin.x, origin.y, 360, 255);
areaMaquina.stroke = 'black';
areaMaquina.linewidth = 1;
var areaImpresion = twoMaquina.makeRectangle(origin.x, origin.y, AIx, AIy);
areaImpresion.stroke = 'red';
areaImpresion.linewidth = 1;
var forma1 = twoMaquina.makeRectangle(origin.x - (AIx/4), origin.y - (AIy/4), sizeX, sizeY);
forma1.stroke = 'blue';
forma1.fill = 'blue';
forma1.linewidth = 1;
var forma2 = twoMaquina.makeRectangle(origin.x + (AIx/4), origin.y - (AIy/4), sizeX, sizeY);
forma2.stroke = 'grey';
forma2.fill = 'grey';
forma2.linewidth = 1;
var forma3 = twoMaquina.makeRectangle(origin.x - (AIx/4), origin.y + (AIy/4), sizeX, sizeY);
forma3.stroke = 'blue';
forma3.fill = 'blue';
forma3.linewidth = 1;
var forma4 = twoMaquina.makeRectangle(origin.x + (AIx/4), origin.y + (AIy/4), sizeX, sizeY);
forma4.stroke = 'grey';
forma4.fill = 'grey';
forma4.linewidth = 1;
var arrowX = twoMaquina.makeArrow(origin.x -200, origin.y, origin.x+200, origin.y, 0);
arrowX.stroke = 'green';
arrowX.dashes = [5, 5];
arrowX.linewidth = 1;
var arrowY = twoMaquina.makeArrow(origin.x, origin.y-200, origin.x, origin.y+200, 0);
arrowY.stroke = 'pink';
arrowY.dashes = [5, 5];
arrowY.linewidth = 2;
//group = twoMaquina.makeGroup(areaMaquina, areaImpresion, ...texts);
//group.position.set(twoMaquina.width / 2, twoMaquina.height / 2);
//group.center();
twoMaquina.update();
<?= $this->endSection() ?>

View File

@ -0,0 +1,108 @@
// Global parameters
var _offsetSolapas = 2; // millimeters
var styles = {
size: 13,
family: 'Public Sans',
}
function previewCubierta(cubiertaObj) {
// Local parameters
let fullBookWith = ((2 * cubiertaObj.anchoLibro) + (2 * (cubiertaObj.solapas + _offsetSolapas)) + cubiertaObj.lomo);
// Clear the canvas element
$('#draw-cubierta').empty();
// Get the element for placing the graphical elements
var divCubierta = document.getElementById('draw-cubierta');
var _previewCubierta = new Two({fitted: true}).appendTo(divCubierta);
// Calculate the center of the canvas element
var origenCubierta = new Two.Vector(_previewCubierta.width / 2, _previewCubierta.height / 2);
var areaMaquinaCubierta = _previewCubierta.makeRectangle(
origenCubierta.x,
origenCubierta.y,
cubiertaObj.anchoMaquina,
cubiertaObj.altoMaquina);
areaMaquinaCubierta.stroke = 'black';
areaMaquinaCubierta.linewidth = 1;
var areaImpresionCubierta = _previewCubierta.makeRectangle(
origenCubierta.x,
origenCubierta.y,
cubiertaObj.anchoImpresion,
cubiertaObj.altoImpresion);
areaImpresionCubierta.stroke = 'red';
areaImpresionCubierta.linewidth = 1;
var formaCubierta = _previewCubierta.makeRectangle(
origenCubierta.x,
origenCubierta.y,
fullBookWith,
cubiertaObj.altoLibro);
formaCubierta.stroke = '#6997D3';
formaCubierta.fill = '#6997D3';
formaCubierta.linewidth = 1;
// Texts
_previewCubierta.makeText(cubiertaObj.altoLibro, origenCubierta.x + (fullBookWith/2 -25), origenCubierta.y, styles);
_previewCubierta.makeText(fullBookWith, origenCubierta.x, origenCubierta.y + (cubiertaObj.altoLibro/2-15) , styles);
_previewCubierta.update();
// Update preview info fields
$('#prevLibro').text(cubiertaObj.anchoLibro + "X" + cubiertaObj.altoLibro );
$('#prevLomo').text(cubiertaObj.lomo);
$('#prevSolapas').text(cubiertaObj.solapas);
}
function previewPortada(portadaObj) {
// Clear the canvas element
$('#draw-portada').empty();
// Get the element for placing the graphical elements
var divPortada = document.getElementById('draw-portada');
var _previewPortada = new Two({fitted: true}).appendTo(divPortada);
// Calculate the center of the canvas element
var origenPortada = new Two.Vector(_previewPortada.width / 2, _previewPortada.height / 2);
var solapas = _previewPortada.makeRectangle(
origenPortada.x,
origenPortada.y,
((2 * portadaObj.anchoLibro) + (2 * (portadaObj.solapas + _offsetSolapas)) + portadaObj.lomo),
portadaObj.altoLibro);
solapas.stroke = '#5FD2B5';
solapas.fill = '#5FD2B5';
solapas.linewidth = 1;
var libro = _previewPortada.makeRectangle(
origenPortada.x,
origenPortada.y,
((2 * portadaObj.anchoLibro) + portadaObj.lomo),
portadaObj.altoLibro);
libro.stroke = '#6997D3';
libro.fill = '#6997D3';
libro.linewidth = 1;
var lomo = _previewPortada.makeRectangle(
origenPortada.x,
origenPortada.y,
portadaObj.lomo,
portadaObj.altoLibro);
lomo.stroke = '#8171D4';
lomo.fill = '#8171D4';
lomo.linewidth = 1;
_previewPortada.update();
// Update preview info fields
$('#prevLibro').text(portadaObj.anchoLibro + "X" + portadaObj.altoLibro );
$('#prevLomo').text(portadaObj.lomo);
$('#prevSolapas').text(portadaObj.solapas);
}

View File

@ -89,4 +89,10 @@ table.dataTable.table-hover>tbody>tr.selected:hover>* {
width: 100%;
height: 25px;
margin-top: 6px;
}
}
div.draw-shapes {
width: 95%;
height: 500px;
margin: 2.5% auto;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long