Source: http://docs.consumoteca.com/documents/preview/289
Timestamp: 2020-04-05 10:25:35+00:00

Document:
Contrato de Alquiler para Pisos Air BNB Gratis - Genera Documentos Online - DOCXPRESSO
D. nombre1, mayor de edad,
con DNI. DNI,
y con domicilio en la ciudad de ciudad, C/ calle.
D. nombre2, mayor de edad,
con DNI DNI
y con domicilio a efecto de notificaciones en la ciudad de ciudad, C/ calle.
D. nombre1 en su propio nombre y derecho, como parte arrendadora.
D. nombre2 igualmente en su propio nombre y derecho, como parte arrendataria.
Reconociéndose ambas partes capacidad legal suficiente para el otorgamiento del presente contrato de arrendamiento de uso distinto a vivienda de forma temporal entre las fecha_mes_inicio y el fecha_mes_fin.
Que la parte arrendadora es propietaria en pleno dominio de la vivienda ubicada en la C/ calle_vivienda de la ciudad de ciudad_vivienda, de metros_cuadradosmetros cuadrados de superficie divididos en numero_habitaciones habitaciones, numero_cuartos_de_bano cuartos de baño y cocina, cuya superficie y composición así como demás características son perfectamente conocidas por los intervinientes.
SEGUNDO.- Que interesando a la parte arrendataria tomar en arrendamiento la vivienda descrita en el expositivo primero (en adelante, “el inmueble”) y, estando la parte arrendadora interesada en arrendárselo, ésta lo ofrece y aquella lo acepta, y ambas partes convienen en celebrar el presente contrato de arrendamiento de uso distinto a vivienda regido por las siguientes.
La parte arrendataria se obliga a utilizar el inmueble arrendado como vivienda temporal, durante el plazo de duración pactado, por motivo de visita temporal a la ciudad, no pudiéndose variar dicho uso sin consentimiento escrito de la parte arrendadora. El incumplimiento de este precepto será motivo de resolución del contrato. Por tanto, la vivienda objeto de este contrato no tendrá en ningún caso la finalidad de vivienda permanente del arrendatario, por lo que el destino del contrato es para uso distinto a vivienda.
ESTADO. El arrendatario declara recibir el inmueble en un buen estado de uso y conservación y se compromete a devolverlo en el mismo estado a la conclusión de la relación contractual.
DURACIÓN. El presente contrato se acuerda por la temporada comprendida entre el fecha_mes_inicio y el fecha_mes_fin.
El arrendatario deberá abonar al arrendador una indemnización igual a numero_meses meses de renta en caso de que pretenda o ejerza unilateralmente la finalización del contrato, independientemente de otras responsabilidades en que incurra por estas acciones.
RENTA. El arrendatario abonará al arrendador, en concepto de renta, la cantidad de importe_euros_renta_mensual euros mensuales, dentro de los cinco primeros días de cada mes, mediante ingreso o transferencia bancaria en el número de cuenta numero_cuenta_bancaria, debiendo enviar justificante de la misma dentro de ese mismo plazo al arrendador a la cuenta de correo electrónico direccion_correo_electronico_arrendador.
El incumplimiento de la obligación de pago o notificación del justificante del pago en el periodo fijado será motivo de resolución del contrato, dando derecho al arrendador a solicitar el desahucio, siendo por cuenta del arrendatario los gastos que estas acciones originen. Se hace entrega en este acto del primer mes de renta, sirviendo este documento como la más eficaz carta de pago.
CESIÓN Y SUBARRIENDO. Con expresa renuncia a lo dispuesto en el artículo 32 de la LAU., el arrendatario se obliga a no subarrendar, en todo o en parte, ni ceder o traspasar el inmueble arrendado sin el consentimiento expreso y escrito del arrendador. El incumplimiento de esta cláusula será causa de resolución del contrato.
DERECHO DE ADQUISICIÓN PREFERENTE. Con expresa renuncia de las partes a lo dispuesto en el artículo 31 de la LAU., se acuerda que en caso de venta del inmueble arrendado no tendrá el arrendatario derecho de adquisición preferente sobre el mismo. El arrendador comunicará al arrendatario con treinta días de antelación a la fecha de formalización del contrato de compraventa su intención de vender el inmueble.
OBRAS. Las pequeñas reparaciones que exija el desgaste por el uso ordinario del inmueble serán de cargo del arrendatario. No podrá realizar la parte arrendataria ningún otro tipo de obra o modificación en el inmueble o edificio al que pertenece sin el consentimiento expreso de la parte arrendadora.
GASTOS GENERALES. Los gastos de comunidad serán de cuenta de la parte del arrendador.
CLAUSULA DE PENALIZACIÓN EXPRESA. La parte arrendataria hará entrega de las llaves del inmueble en la fecha de finalización del presente contrato. De realizar la entrega más tarde, el arrendatario abonará al arrendador la cantidad de importe_euros euros por cada día de retraso en la puesta a disposición de las llaves de la vivienda, en concepto de cláusula penal, además de todos los gastos que directos e indirectos que dicho retraso generen de cara a la recuperación de la vivienda.
NORMAS DE CONVIVENCIA. La parte arrendataria se someterá durante toda la vigencia del contrato a las normas de la comunidad de propietarios, especialmente las relativas a la convivencia. Se prohíbe expresamente la estancia de cualquier tipo de animal en la vivienda.
FIANZA A la firma de este contrato el arrendatario hace entrega al arrendador en concepto de fianza de la cantidad de importe_euros_fianza euros en metálico.
INCUMPLIMIENTO DE OBLIGACIONES. El incumplimiento por cualquiera de las partes de las obligaciones resultantes del contrato dará derecho a la parte que hubiere cumplido las suyas a exigir el cumplimiento de la obligación o a promover la resolución del contrato de acuerdo con lo dispuesto en el artículo 1.124 del Código Civil.
DOMICILIO A EFECTO DE NOTIFICACIONES. Las partes fijan como método de comunicación el email para las comunicaciones derivadas de la relación contractual el que figura para cada uno de ellos en el encabezamiento del contrato. Deberán notificarse mutuamente una parte a la otra cualquier cambio que se produzca en este sentido.
LEGISLACIÓN APLICABLE. La presente relación se regirá por el siguiente orden de prelación: de forma imperativa por los títulos I y IV de la Ley 29/1.994, de 24 de Noviembre, de Arrendamientos Urbanos (LAU); por las normas del presente contrato y en su defecto por las normas del título III LAU; y supletoriamente por lo dispuesto en el Código Civil.
SUMISIÓN. Los contratantes se someten expresamente a los Juzgados y Tribunales de la ciudad en la que se encuentra ubicado el inmueble, para todas aquellas cuestiones litigiosas que pudieran derivarse del mismo. Y con el carácter expresado en la intervención, firman el presente contrato por duplicado en el lugar y fecha indicados.
').appendTo(sel); sel.val(other); sel.parent().find('span.h5p_varspan').text(other); sel.webuiPopover('destroy'); sel.click(function(){ if($(this).val() != ''){ $(this).next().find('span:first').html($(this).val()); } if(data.global){ $('select[data-reference="' + data.name+ '"]').val($(this).val()); $('select[data-reference="' + data.name+ '"]').next().find('span:first').html($(this).val()); } }); } else { toastr.error('Debe incluir un valor no vacío.', 'Aviso'); } } $(document).ready(function(){ $(window).scroll(function() { if ( $(window).scrollTop() > 240 ) { $('#goTop').fadeIn('slow'); } else { $('#goTop').fadeOut('slow'); } }); $('#goTop').click(function() { $('body, html').animate({scrollTop: 0}, 500); return false; }); //Preset saveModal values //preselect the first available format $("#saveModal").find('input[type="radio"]:first').prop('checked', true); skipOutputModal = false; //special case of preview version $('#gobacktoHistory').click(function(){ window.location.href=decodeURIComponent(''); }); // set a variable to hold a reference to the current active //text area var currentTextArea = null; //parse GET query var query = $.parseQuery(); var progressTimer = 2000; serverData = false; local = localStorage.getItem("preview_289"); localTime = localStorage.getItem("previewTime_289"); if (local !== null && !serverData) { $('#loadLocalData').click(function(){ retrieveLocalData(); }); $('#localModal').modal('show'); } if (serverData) { $('#serverModal').modal('show'); } var loadedData = 'false'; var preparsedServerData = $('
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"fecha","label":"fecha","tip":"fecha","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"nombre1","label":"nombre1","tip":"nombre1","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"DNI","label":"DNI","tip":"DNI","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"calle","label":"calle","tip":"calle","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"email1","label":"email1","tip":"email1","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"nombre2","label":"nombre2","tip":"nombre2","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"fecha_mes_inicio","label":"fecha_mes_inicio","tip":"fecha_mes_inicio","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"fecha_mes_fin","label":"fecha_mes_fin","tip":"fecha_mes_fin","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"calle_vivienda","label":"calle_vivienda","tip":"calle_vivienda","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"ciudad_vivienda","label":"ciudad_vivienda","tip":"ciudad_vivienda","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"metros_cuadrados","label":"metros_cuadrados","tip":"metros_cuadrados","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"numero_habitaciones","label":"numero_habitaciones","tip":"numero_habitaciones","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"numero_cuartos_de_bano","label":"numero_cuartos_de_bano","tip":"numero_cuartos_de_bano","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6636},{"name":"numero_meses","label":"numero_meses","tip":"numero_meses","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"importe_euros_renta_mensual","label":"importe_euros_renta_mensual","tip":"importe_euros_renta_mensual","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"numero_cuenta_bancaria","label":"numero_cuenta_bancaria","tip":"numero_cuenta_bancaria","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"direccion_correo_electronico_arrendador","label":"direccion_correo_electronico_arrendador","tip":"direccion_correo_electronico_arrendador","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"importe_euros","label":"importe_euros","tip":"importe_euros","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"importe_euros_fianza","label":"importe_euros_fianza","tip":"importe_euros_fianza","comment":"
","type":"text","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"firma-arrendador","label":"firma-arrendador","tip":"firma-arrendador","comment":"
","type":"image","source":"picture","format":"preserveWidth","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702},{"name":"firma-arrendatario","label":"firma-arrendatario","tip":"firma-arrendatario","comment":"
","type":"image","source":"picture","format":"preserveWidth","options":"","list":"","rpc":"","global":true,"choice":"dropdown","editable":true,"richText":true,"validation":"none","exp":"","regex":"","addTo":[],"timestamp":1467381445.6702}],"groups":[],"signatures":[],"special":[],"rpcs":{},"settings":{"numberFormat":".,","outputFormat":["odt","pdf","doc","docx","doc-legacy","rtf"],"outputComments":0,"timestamp":1467381399.4904}}'; docxpressoData = JSON.parse(json); console.log(docxpressoData); numData = docxpressoData.data.length; numGroups = docxpressoData.groups.length; console.log(numGroups); numSpecial = docxpressoData.special.length; //get the number format as an array preformat = docxpressoData.settings.numberFormat; window.format = preformat.split(''); //we need to retrieve the default values for validation in case we //load some server data ref = '{"ciudad":"ciudad","fecha":"fecha","nombre1":"nombre1","DNI":"DNI","calle":"calle","email1":"email1","nombre2":"nombre2","fecha_mes_inicio":"fecha_mes_inicio","fecha_mes_fin":"fecha_mes_fin","calle_vivienda":"calle_vivienda","ciudad_vivienda":"ciudad_vivienda","metros_cuadrados":"metros_cuadrados","numero_habitaciones":"numero_habitaciones","numero_cuartos_de_bano":"numero_cuartos_de_bano","numero_meses":"numero_meses","importe_euros_renta_mensual":"importe_euros_renta_mensual","numero_cuenta_bancaria":"numero_cuenta_bancaria","direccion_correo_electronico_arrendador":"direccion_correo_electronico_arrendador","importe_euros":"importe_euros","importe_euros_fianza":"importe_euros_fianza","firma-arrendador":"firma-arrendador","firma-arrendatario":"firma-arrendatario"}'; refData = JSON.parse(ref); var dxoGroups = {}; var dxoSpecial = {}; //we first need to parse block dependencies for (j = 0; j < numGroups; j++) { dataGroup = docxpressoData.groups[j]; if (dataGroup.toggleWith !== null) { if (typeof window.dependencies[dataGroup.toggleWith] == 'undefined') { window.dependencies[dataGroup.toggleWith] = {}; window.dependencies[dataGroup.toggleWith][dataGroup.groupId] = dataGroup.toggleValues; } else { window.dependencies[dataGroup.toggleWith][dataGroup.groupId] = dataGroup.toggleValues; } } } delete dataGroup; //generate dxoGroups for the data parsing for (j = 0; j < numGroups; j++) { dxoGroups[docxpressoData.groups[j].groupId] = docxpressoData.groups[j]; console.log('***dxoGroups***'); console.log(dxoGroups); } //parse now the general data $.each(docxpressoData.data, function(index) { dxo[docxpressoData.data[index].name] = docxpressoData.data[index]; var decorate = true; if (window.prefix != '') { //check if the variable name starts with window.prefix + '_' var varname = docxpressoData.data[index].name; var blockPrefix = window.prefix + '_'; if (varname.indexOf(blockPrefix) != 0) { decorate = false; dxo[docxpressoData.data[index].name]['editable'] = false; } } if (docxpressoData.data[index].type == 'text') { decorateTextVar(docxpressoData.data[index], 'text', decorate); } else if (docxpressoData.data[index].type == 'multilineText') { decorateTextVar(docxpressoData.data[index], 'multilineText', decorate); } else if (docxpressoData.data[index].type == 'textarea') { decorateTextVar(docxpressoData.data[index], 'textarea', decorate); } else if (docxpressoData.data[index].type == 'date') { decorateDateVar(docxpressoData.data[index], decorate); } else if (docxpressoData.data[index].type == 'options') { decorateOptionsVar(docxpressoData.data[index], decorate); } else if (docxpressoData.data[index].type == 'list') { decorateListVar(docxpressoData.data[index], 'list', decorate); } else if (docxpressoData.data[index].type == 'rpc') { decorateListVar(docxpressoData.data[index], 'rpc', decorate); } else if (docxpressoData.data[index].type == 'image') { decorateImageVar(docxpressoData.data[index], decorate); } }); //parse Groups for (j = 0; j < numGroups; j++) { if (docxpressoData.groups[j].type == 'table') { decorateTable(docxpressoData.groups[j].groupId, docxpressoData.groups[j].active); } else if (docxpressoData.groups[j].type == 'list') { decorateList(docxpressoData.groups[j].groupId, docxpressoData.groups[j].active); } else if (docxpressoData.groups[j].type == 'block') { decorateBlock(docxpressoData.groups[j]); } } //populate "remote dropdowns" remoteProcedureCallsDropdowns(); //decorate multiselects $('select[multiple]').multiselect({ onChange: function(option, checked, select) { reference = $(this)[0]['$select'].data('reference'); window.multiselects[reference] = $('select[data-reference="' + reference + '"]').val(); } }); //remove the first selected value in multiselects $('select[multiple]').each(function(){ var label = decodeURI($(this).data('label')); $(this).multiselect('deselect', label); $(this).next().find('input[value="' + label + '"]').prop('disabled', true); }); for (j = 0; j < numSpecial; j++) { if (typeof dxoSpecial[docxpressoData.special[j].name] == 'undefined') { decorateSpecial(docxpressoData.special[j]); dxoSpecial[docxpressoData.special[j].name] = docxpressoData.special[j]; } } //Text variables function decorateTextVar (data, type, decorate) { span = $('span.h5p_varspan[data-name="' + data.name + '"]'); span.each(function(){ if (data.validation == 'email'){ if (window.emails.indexOf(data.name) < 0){ window.emails.push(data.name); } } if (data.editable && decorate) { if (data.global) { $(this).attr('data-global', '1'); } if (typeof data.value !== 'undefined') { $(this).html(decodeDXO(data.value)); } else { $(this).html(decodeDXO(data.label)); } spanParent = $(this).parents('span.spanWrapper:first'); //enforce original span CSS props parentTag = $(spanParent).parent(); parentTagName = $(parentTag).prop('tagName'); if (parentTagName.toLowerCase() == 'span') { var classes = $(parentTag).attr('class'); if (typeof classes == 'string' && classes != '') { $(span).attr('class', classes + ' h5p_varspan'); } } if (type == 'textarea') { $('
').text().trim() != ''){ $(helper).prependTo(page); } $('.h5p-help').css('top', y - 75).show(); }); $('span.spanWrapperSpecial').mouseleave(function(){ $('#h5p-tooltip-wrapper').hide(); $('.h5p-help').remove(); }); $('span.spanWrapperSpecial').click(function(){ $('#h5p-tooltip-wrapper').hide(); }); //RICH TEXT EDITOR $('*[data-proc]').click(function(){ cmd = $(this).data('proc'); if (typeof $(this).data('value') !== 'undefined') { value = $(this).data('value'); } else { value = null; } document.execCommand(cmd, false, value); }); //ATTACHMENTS $('.loadFile').click(function(){ $('input[name="' + $(this).attr('data-file') + '"]').click(); }); $('input.fileAttached').change(function(){ name = $(this).attr('name'); $('small[data-file="' + name + '"]').html($(this)[0].files[0].name); window.attachments[name]['file'] = $(this)[0].files[0].name; }); $('#saveContinue').click(function(){ $("#attachmentModal").modal('hide'); if (skipOutputModal == true){ $('#saveAndDownload').click(); } else { $("#saveModal").modal('show'); } }); //FORM $('.i-checks').iCheck({ checkboxClass: 'icheckbox_square-green', radioClass: 'iradio_square-green' }); $('#cancel').click(function(){ $("#cancelModal").modal('show'); }); $('#cancelGo').click(function(){ window.warning = false; //window.location.href = 'http://docs.consumoteca.com/documents/show/289'; window.history.back(); }); $('#process').click(function(){ window.location.href = 'http://docs.consumoteca.com/documents/process/289'; }); $('#attachPane').click(function(){ openAttachmentPad(); }); //parsing the HTML $('#validate').click(function(){ validateModal(true, true); }); //check if the required data has been included and if it is valid or function validata() { var totalFields = 0; var validations = {}; var attachs = {}; var filled = {}; var valid = {}; //check for attachments checkAttachments(); for (var file in window.attachments) { if (window.attachments.hasOwnProperty(file)){ if (window.attachments[file]['active']){ if (typeof window.attachments[file]['file'] !== 'undefined' && window.attachments[file]['file'] != ''){ attachs[file] = true; } else { attachs[file] = false; } } } } //check for variables for (j = 0; j < numData; j++) { filled[docxpressoData.data[j].name] = []; valid[docxpressoData.data[j].name] = []; if ( docxpressoData.data[j].editable && (docxpressoData.data[j].type == 'options' && (typeof docxpressoData.data[j].choice !== 'undefined' && docxpressoData.data[j].choice == 'radio'))) { input = $('input[type="radio"][data-name="' + docxpressoData.data[j].name + '"]'); var counter = 0; if (input.length > 0) { if (inactiveFieldset($(this))) { return true; } radioValue = $("input:radio[name ='" + docxpressoData.data[j].name + "']:checked").val(); if (typeof radioValue !== 'undefined' && radioValue != '' ) { filled[docxpressoData.data[j].name][counter] = true; //then the value is automatically valid valid[docxpressoData.data[j].name][counter] = true; } else { filled[docxpressoData.data[j].name][counter] = false; } } counter++; } else if ( docxpressoData.data[j].editable && (docxpressoData.data[j].type == 'options' && (typeof docxpressoData.data[j].choice !== 'undefined' && docxpressoData.data[j].choice == 'checkbox'))) { input = $('input[type="checkbox"][data-name="' + docxpressoData.data[j].name + '"]'); var counter = 0; //The checkboxes may preserve their default value because they do not need to be checked filled[docxpressoData.data[j].name][counter] = true; var value = ''; input.each(function(){ if ($(this).is(':checked')){ value += $(this).val() + ';' } }); var validVar = isValid(value, decodeURI(docxpressoData.data[j].regex)); if (validVar) { valid[docxpressoData.data[j].name][counter] = true; } else { valid[docxpressoData.data[j].name][counter] = false; } counter++; } else if (docxpressoData.data[j].editable && docxpressoData.data[j].type != 'bookmark' && docxpressoData.data[j].type != 'image') { span = $('span.h5p_varspan[data-name="' + docxpressoData.data[j].name + '"]'); var counter = 0; span.each(function(){ if (inactiveFieldset($(this))) { return true; } //we need a little hack for compatibility with some MAC systems that do not //properly update data comming from a dropdown for unknown reasons if (docxpressoData.data[j].type == 'list' || docxpressoData.data[j].type == 'options' || docxpressoData.data[j].type == 'rpc') { var dropval = $(this).parents('p:first').find('select[data-list="' + docxpressoData.data[j].name + '"]').val(); if ($(this).html() != dropval) { //console.log(docxpressoData.data[j].name + ': enforce updating to ' + dropval); $(this).html(dropval); } else { //console.log('no upgrading necessary'); } } //exclude the case where validation is set explicitely to none if(docxpressoData.data[j].validation == 'novalidation') { filled[docxpressoData.data[j].name][counter] = true; valid[docxpressoData.data[j].name][counter] = true; } else { if ($(this).html() == decodeDXO(refData[docxpressoData.data[j].name]) ) { filled[docxpressoData.data[j].name][counter] = false; } else { filled[docxpressoData.data[j].name][counter] = true; } var validVar = isValid($(this).html(), decodeURI(docxpressoData.data[j].regex)); if (validVar) { valid[docxpressoData.data[j].name][counter] = true; } else { valid[docxpressoData.data[j].name][counter] = false; } } counter++; }); } else if (docxpressoData.data[j].editable && docxpressoData.data[j].type == 'image') { img = $('img[data-image="' + docxpressoData.data[j].name + '"]'); var counter = 0; img.each(function(){ if (inactiveFieldset($(this))) { return true; } if($(this).attr('src') == window.originalImages[docxpressoData.data[j].name][counter] ){ filled[docxpressoData.data[j].name][counter] = false; } else { filled[docxpressoData.data[j].name][counter] = true; } if($(this).attr('src').substring(0,10) == 'data:image'){ valid[docxpressoData.data[j].name][counter] = true; } else { valid[docxpressoData.data[j].name][counter] = false; } counter++; }) } } validations.filled = filled; validations.valid = valid; validations.attachs = attachs; return validations; } function inactiveFieldset (node) { var fsparent = node.parents('div.h5p_wrappingdiv, table[data-type]:first, div[data-type]:first'); var skip = false; fsparent.each(function(){ if ($(this).css('display') == 'none') { skip = true; } }); return skip; } function isValid(val, regex) { str = val.trim(); str = $('
' } else { attHTML = ''; } $('#validation-pad').html(valHTML + attHTML + attachHTML); $('#validation-pad button').click(function(){ if($(this).attr('data-valtype') == 'list' || $(this).attr('data-valtype') == 'options' || $(this).attr('data-valtype') == 'rpc'){ selStr = 'select[data-list="' + $(this).attr('data-valname') + '"]:eq(' + $(this).attr('data-num') + ')'; selStr += ', input[data-list="' + $(this).attr('data-valname') + '"]:eq(' + $(this).attr('data-num') + ')'; selector = $(selStr); } else if($(this).attr('data-pad') == 'open'){ $("#validateModal").modal('hide'); openAttachmentPad(); return; } else if($(this).attr('data-valtype') != 'image'){ selector = $('.h5p_varspan[data-name="' + $(this).attr('data-valname') + '"]:eq(' + $(this).attr('data-num') + ')'); } else { selector = $('img[data-image="' + $(this).attr('data-valname') + '"]:eq(' + $(this).attr('data-num') + ')'); } //when there are tabs things get a little more complex because //we need to "show" the correct tab first if (typeof docxpressoData['settings']['tabs'] !== 'undefined' && docxpressoData['settings']['tabs'] == 1) { section = selector.parents('section:first'); num = section.attr('data-order'); //trigger a click on the corresponding tab $('a[data-order="' + num + '"]').click(); } $("#validateModal").modal('hide'); $.scrollTo(selector, 500, {offset: -80}); //flash the variable that should be edited again originalBColor = selector.css('background-color'); originalColor = selector.css('color'); selector.css('background-color', '#ffff99') .css('color', '#b70000') .fadeOut('slow').fadeIn('slow') .fadeOut('fast').fadeIn('fast') .fadeOut('fast').fadeIn('fast') .fadeOut('fast').fadeIn('fast', function(){ selector.css('background-color', originalBColor); selector.css('color', originalColor); }); }); console.log('**********validations**********'); console.log(totalFields); console.log(emptyFields); console.log(validated); console.log('********************'); if (totalFields > 0){ var percentage = parseInt(100* (totalFields - emptyFields)/totalFields); } else { var percentage = 100; } $('#percentComp').val(percentage); $('#validated').val(validated); if (open) { $("#validateModal").modal('show'); } } function parseBlocks(node) { var blocks = {}; var step = function(node, blocks) { var counter = 0; var currentBlock = ''; do { if (node.nodeType == 1){ if (node.getAttribute('data-type')){ if (node.getAttribute('data-h5p') != currentBlock) { currentBlock = node.getAttribute('data-h5p'); counter= 0; } blocks[node.getAttribute('data-h5p') + '::' + counter] = {}; if(node.hasChildNodes()){ step(node.firstChild, blocks[node.getAttribute('data-h5p') + '::' + counter]); } counter++; } else if (node.hasChildNodes()){ step(node.firstChild, blocks); } } } while (node = node.nextSibling); } step(node, blocks); return blocks; } function parseVars() { var vars = {}; for (j = 0; j < numData; j++) { if (docxpressoData.data[j].type == 'options' && (docxpressoData.data[j].choice == 'radio' || docxpressoData.data[j].choice == 'checkbox')) { vars[docxpressoData.data[j].name] = []; choice = $('input[data-list="' + docxpressoData.data[j].name + '"]'); choice.each(function(){ if ($(this).is(':checked')) { vars[docxpressoData.data[j].name].push(encodeDXO($(this).val())); } else { vars[docxpressoData.data[j].name].push(''); } }); } else if (docxpressoData.data[j].type == 'options' && docxpressoData.data[j].choice == 'multipleSelect') { vars[docxpressoData.data[j].name] = []; span.each(function(){ vars[docxpressoData.data[j].name].push(window.multiselects[docxpressoData.data[j].name]); }); } else if (docxpressoData.data[j].type != 'bookmark' && docxpressoData.data[j].type != 'image') { vars[docxpressoData.data[j].name] = []; span = $('span.h5p_varspan[data-name="' + docxpressoData.data[j].name + '"]'); span.each(function(){ if (docxpressoData.data[j].validation == 'email' || docxpressoData.data[j].validation == 'URL') { var newLink = linkDressUp ($(this).html(), docxpressoData.data[j].validation); vars[docxpressoData.data[j].name].push(encodeDXO(newLink)); } else { vars[docxpressoData.data[j].name].push(encodeDXO($(this).html())); } //console.log(docxpressoData.data[j].name + ': ' + $(this).html()); }); } else if (docxpressoData.data[j].type == 'image') { vars[docxpressoData.data[j].name] = []; img = $('img[data-image="' + docxpressoData.data[j].name + '"]'); img.each(function(){ vars[docxpressoData.data[j].name].push($(this).attr('src')); if (typeof window.imageSize[docxpressoData.data[j].name] !== 'undefined') { dxo[docxpressoData.data[j].name]['width'] = window.imageSize[docxpressoData.data[j].name]['width']; } else { dxo[docxpressoData.data[j].name]['width'] = $('img[data-image="' + docxpressoData.data[j].name + '"]').css('width'); } if (typeof window.imageSize[docxpressoData.data[j].name] !== 'undefined') { dxo[docxpressoData.data[j].name]['height'] = window.imageSize[docxpressoData.data[j].name]['height']; } else { dxo[docxpressoData.data[j].name]['height'] = $('img[data-image="' + docxpressoData.data[j].name + '"]').css('height'); } }) } } return vars; } function parseSpecialVars() { var svars = {}; for (j = 0; j < numSpecial; j++) { svars[docxpressoData.special[j].name] = []; span = $('span.h5p_varspecial[data-name="' + docxpressoData.special[j].name + '"]'); span.each(function(){ svars[docxpressoData.special[j].name].push(encodeDXO($(this).html())); }); } return svars; } function checkAttachments() { counter = 0; if (typeof docxpressoData.attachments !== 'undefined' && typeof docxpressoData.attachments.files !== 'undefined' ) { numAttachments = docxpressoData.attachments.files.length; for (j = 0; j < numAttachments; j++) { name = docxpressoData.attachments['files'][j]['name']; counter += verifyAttachment(name, j); } } return counter; } function verifyAttachment(name, j){ count = 0; if (typeof window.attachments[name] == 'undefined' ){ window.attachments[name] = {}; } if(docxpressoData.attachments['files'][j]['dependsOn'] == ''){ count++; window.attachments[name]['active'] = true; $('div.attachedFile[data-file="' + name + '"]').show(); $('div.attachedFile[data-file="' + name + '"]').next('div.hr-line-dashed').show(); $('input[name="' + name + '"]').prop('disabled', false); } else { //get the variable value dependsOn = docxpressoData.attachments['files'][j]['dependsOn']; value = docxpressoData.attachments['files'][j]['value']; var tmp = value.split(';'); //console.log('valores a comprobar') //console.log(tmp); vars= []; if (dxo[dependsOn].type == 'options' && (dxo[dependsOn].choice == 'radio' || dxo[dependsOn].choice == 'checkbox')) { choice = $('input[data-list="' + dependsOn + '"]'); choice.each(function(){ if ($(this).is(':checked')) { vars.push($(this).val()); } }); } else { span = $('span.h5p_varspan[data-name="' + dependsOn + '"]'); span.each(function(){ vars.push(encodeDXO($(this).html())); }); } varLen = vars.length; found = false; for (var n = 0; n < varLen; n++) { if (tmp.indexOf(vars[n].trim()) > -1 || tmp.indexOf(encodeURI(vars[n].trim())) > -1){ found = true; } } if (found){ count++; window.attachments[name]['active'] = true; $('div.attachedFile[data-file="' + name + '"]').show(); $('div.attachedFile[data-file="' + name + '"]').next('div.hr-line-dashed').show(); $('input[name="' + name + '"]').prop('disabled', false); } else { window.attachments[name]['active'] = false; //hide and disable this attachment $('div.attachedFile[data-file="' + name + '"]').hide(); $('div.attachedFile[data-file="' + name + '"]').next('div.hr-line-dashed').hide(); $('input[name="' + name + '"]').prop('disabled', true); } } return count; } function openAttachmentPad () { attachmentsNumber = checkAttachments(); if (attachmentsNumber > 0){ $('#saveContinue').hide(); $("#attachmentModal").modal('show'); } else { toastr.error('No hay archivos adjuntos asociados a este documento.', 'Aviso'); } } $('#download').click(function(){ attachmentsNumber = checkAttachments(); if (attachmentsNumber > 0) { $('#saveContinue').show(); $("#attachmentModal").modal('show'); } else { if (skipOutputModal == true){ $('#saveAndDownload').click(); } else { $("#saveModal").modal('show'); } } }); $('#continueLater').click(function(){ $("#saveContinueModal").modal('show'); }); $('#emailLinkValue').keyup(function(){ if ($(this).val() != '') { $('#emailLink').iCheck('check'); } }); $('#submitContinueLater').click(function(){ //check if we should send a link by email if($('#emailLink').prop('checked')){ var email = $('#emailLinkValue').val(); var valid_email = function(email) { return /^.+@.+\..+$/.test(email); } if (valid_email(email)) { $('#email').val(email); } else { //inform the user toastr.error('El email no es válido.', 'Aviso'); return; } } else { $('#email').val(''); } //check if data should be saved locally if($('#localdata').prop('checked')){ saveLocally(); }; $("#saveContinueModal").modal('hide'); $('#download').click(); }); $('#saveAndDownload').click(function(){ $("#saveModal").modal('hide'); var validations; var repair = false validations = validata(); //check if a variable does not validate for (prop in validations.filled) { //first check that the variable is editable if (dxo[prop]['editable']){ if (validations.filled.hasOwnProperty(prop)){ if (dxo[prop]['global'] || validations.filled[prop].length == 1) { if ((typeof validations.filled[prop][0] !== 'undefined' && !validations.filled[prop][0]) || (typeof validations.valid[prop][0] !== 'undefined' && !validations.valid[prop][0])){ repair = true; } } else { var len = validations.filled[prop].length; for(var j=0; j < len; j++) { if ((typeof validations.filled[prop][j] !== 'undefined' && !validations.filled[prop][j]) || (typeof validations.valid[prop][j] !== 'undefined' && !validations.valid[prop][j])){ repair = true; } } } } } } //look for empty attachments //console.log('attachments'); //console.log(window.attachments); for (var file in window.attachments) { if (window.attachments.hasOwnProperty(file)){ if (window.attachments[file]['active']){ //console.log(window.attachments[file]['file']); if (typeof window.attachments[file]['file'] === 'undefined' || window.attachments[file]['file'] == ''){ repair = true; } } } } //SIGNATURES if (repair) { validateModal(false, true); } else { validateModal(false, false); saveAndDownload(); } }); function parseData() { docxpressoData.blocks = parseBlocks(document.body); docxpressoData.varValues = parseVars(); docxpressoData.specialVarValues = parseSpecialVars(); docxpressoData.dependencies = window.dependencies; //also send the blocks that should be removed for simplicity var remove = []; $('div[data-type="block"]').each(function(){ if ($(this).css('display') == 'none') { remove.push($(this).attr('data-h5p')); } }); $('table[data-type="table"]').each(function(){ if ($(this).css('display') == 'none') { remove.push($(this).attr('data-h5p')); } }); docxpressoData.remove = remove; } function saveAndDownload() { parseData() $( "form" ).submit(); } $( "form" ).submit(function( event ) { $('#uploadingModal').modal('show'); //fake motion progress bar var bar = 10; progressBar = setInterval(function() { if (bar > 99) { clearInterval(progressBar); } else { bar++; $('#uploadVar').css('width', bar + '%'); } }, progressTimer/50); $('#docFormat').val($('input[name=format]:checked').val()); $('#comments').val($('.summernoteComments').code()); json = JSON.stringify(docxpressoData); console.log('sent:'); console.log(docxpressoData); //take care of simple quotes json = json.replace(/\'/g, "'"); $('#data').val(json); warning = false; return; }); //save to local and recover $('#localStorage').click(function(){ saveLocally(); }); $('#retrieveLocalData').click(function(){ retrieveLocalData(); }); $('#removeLocalData').click(function(){ removeLocalData(); }); function saveLocally () { parseData(); json = JSON.stringify(docxpressoData); //store with local storage localStorage.setItem("preview_289", json); localStorage.setItem("previewTime_289", new Date().getTime()); } function removeLocalData () { localStorage.removeItem("preview_289"); localStorage.removeItem("previewTime_289"); toastr.success('Los metadatos salvados localmente han sido eliminados.', 'Datos locales eliminados'); } function retrieveLocalData () { raw = localStorage.getItem("preview_289"); storedTime = localStorage.getItem("previewTime_289"); if (raw !== null) { destroyListeners(); data = JSON.parse(localStorage.getItem("preview_289")); //clone the blocks cloneBlocks(data.blocks); //replace variables replaceVars(data.varValues, false); //replace spacial variables replaceVars(data.specialVarValues, true); refreshListeners(); } else { toastr.error('No hay datos locales asociados a este documento', 'Aviso'); } } function cloneBlocks(blocks, node){ if (typeof node === 'undefined') { node = $('body'); } if (typeof blocks !== 'undefined') { var childBlocks = []; //run over the childs for (block in blocks) { if (blocks.hasOwnProperty(block)){ var temp = block.split('::'); var blockName = temp[0]; if (typeof childBlocks[blockName] === 'undefined') { childBlocks[blockName] = 1; } else { childBlocks[blockName]++; } } } for (child in childBlocks) { toClone = node.find('*[data-h5p ="{{' + child + '}}"] , *[data-h5p="' + child + '"]'); //remove precloned objects toClone.each(function(index){ if (index > 0) { $(this).remove(); } }); //start the cloning for (var n = 0; n < childBlocks[child]-1; n++) { toClone.eq(0).clone(true, true).insertBefore(toClone.eq(0)); } } //run over the childs for (block in blocks) { if (blocks.hasOwnProperty(block)){ var subBlocks = blocks[block]; var subBlockCount = Object.keys(subBlocks).length; if (subBlockCount > 0) { var nTemp = block.split('::'); var bName = nTemp[0]; var order = nTemp[1] var newNode = node.find('*[data-h5p ="{{' + bName + '}}"] , *[data-h5p="' + bName + '"]').eq(order); cloneBlocks(subBlocks, newNode); } } } } } function replaceVars (data, special) { for (name in data) { if (data.hasOwnProperty(name)){ var len = data[name].length; if (special) { var selector = $('span.h5p_varspecial[data-name="' + name + '"]'); for (var k = 0; k < len; k++) { selector.eq(k).html(decodeDXO(data[name][k])); } } else { //let us protect the case where only var values are //sent assuming they are standard text variables //by default if (typeof dxo[name] !== 'undefined' && typeof dxo[name]['type'] !== 'undefined') { var type = dxo[name]['type']; if (type == 'options' && typeof dxo[name]['choice'] !== 'undefined' ) { var choice = dxo[name]['choice']; } else { var choice = 'dropdown'; } } else { var type = 'unknown'; } if (type == 'image') { var selector = $('img[data-image="' + name + '"]'); for (var k = 0; k < len; k++) { selector.eq(k).attr('src', data[name][k]); } } else if (type == 'list' || (type == 'options' && choice == 'dropdown') || type == 'rpc') { var selector = $('select[data-list="' + name + '"]'); for (var k = 0; k < len; k++) { if (decodeDXO(data[name][k]) != '') { selector.eq(k).val(decodeDXO(data[name][k])); } } //we also have to update the associated span var selector = $('span.h5p_varspan[data-name="' + name + '"]'); for (var k = 0; k < len; k++) { selector.eq(k).html(decodeDXO(data[name][k])); //update block visibility if (typeof window.dependencies[name] !== 'undefined') { modifyBlockVisibility(name, decodeDXO(data[name][k])); } } } else if(type == 'options' && choice == 'multipleSelect') { var selector = $('select[data-list="' + name + '"]'); for (var k = 0; k < len; k++) { selector.eq(k).val(data[name][0]); selector.multiselect('refresh'); window.multiselects[name] = data[name][0]; } } else if(type == 'options' && choice != 'dropdown') { var selector = $('input[data-list="' + name + '"]'); for (var k = 0; k < len; k++) { if (decodeDXO(data[name][k]) != '') { selector.eq(k).prop("checked", true); } else { selector.eq(k).prop("checked", false); } } } else { var selector = $('span.h5p_varspan[data-name="' + name + '"]'); for (var k = 0; k < len; k++) { //if the value has been left empty load the label if (data[name][k] != '') { selector.eq(k).html(decodeDXO(data[name][k])); } else { selector.eq(k).html(decodeDXO(dxo[name]['label'])); } } } } } } window.localDataLoaded = true; } function loadSingleVarFromLocal(name) { var raw = localStorage.getItem("preview_289"); if (raw !== null) { destroyListeners(); var data = JSON.parse(localStorage.getItem("preview_289")); var vals = {}; vals[name] = data.varValues[name]; //replace variables replaceVars(vals, false); refreshListeners(); } } //load server data if any if (serverData) { //fake motion progress bar var bar = 38; progressBar = setInterval(function() { if (bar > 98) { clearInterval(progressBar); } else { bar++; $('#loadVar').css('width', bar + '%'); } }, progressTimer/80); //clone the blocks if (typeof dataToLoadFromServer.blocks != 'undefined' ) { cloneBlocks(dataToLoadFromServer.blocks); } //replace variables if (typeof dataToLoadFromServer.varValues != 'undefined' ) { replaceVars(dataToLoadFromServer.varValues, false); } //replace spacial variables if (typeof dataToLoadFromServer.specialVarValues != 'undefined' ) { replaceVars(dataToLoadFromServer.specialVarValues, true); } //close modal setTimeout(function(){ $('#serverModal').modal('hide'); }, progressTimer); } }); function preparseWYSIWYG (varspan, HTMLdata) { //get the font styles var color = varspan.css('color'); var family = varspan.css('font-family'); var size = varspan.css('font-size'); varspan.html(HTMLdata); varspan.find('p, li').each(function(){ var styleArray = $(this).attr('style'); if (typeof styleArray === 'undefined') { styleArray = []; } var styles = {}; var prop = ''; var numStyles = styleArray.length; for (var j = 0; j < numStyles; j++) { prop = styleArray[j].split(':'); styles[$.trim(prop[0].replace('-',''))] = $.trim(prop[1]); } if( typeof styles.color === 'undefined') { $(this).css('color', color); } if( typeof styles.fontsize === 'undefined') { $(this).css('font-size', size); } if( typeof styles.fontfamily === 'undefined') { $(this).css('font-family', family); } }); } function linkDressUp(linkable, type) { var linkedData = linkable; str = $('

References: resolución 
 resolución 
 artículo 32
 resolución 
 artículo 31
 resolución 
 artículo 1