Ir al contenido
Otras versiones

Cargando…

Instalación

Siga estos pasos para instalar y configurar la aplicación Remote Signature en OpenKM v8.1:

  • Detenga Tomcat
  • Descargue la aplicación desde el centro de descargas de OpenKM
  • Esta aplicación necesita compartir la base de datos con OpenKM, así que no necesita crear una nueva
  • Copie el fichero remote-signature.properties en Tomcat y modifique los parámetros de configuración
# OpenKM Hibernate configuration values
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/remote-signature?useUnicode=true&characterEncoding=UTF8
spring.datasource.username=openkm
spring.datasource.password=openkm
# JPA
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB103Dialect
# Base URL
base.url=http://localhost:8080/remote-signature
# OpenKM
openkm.url.preview=http://localhost:8080/openkm
openkm.url=http://localhost:8080/openkm
# OpenKM anonymous user
openkm.anonymous.user=okmAdmin
openkm.anonymous.password=admin
# OpenKM admin user
openkm.admin.user=okmAdmin
openkm.admin.password=admin
# Language
languages=es-ES#Español,en-GB#English
default.language=en-GB
  • Inicie Tomcat
  • Inicie sesión en OpenKM
  • Vaya a Administration > Utilities > Database query y ejecute las siguientes sentencias SQL para crear las propiedades de configuración necesarias:
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject.es-ES', 'string', 'Un documento requiere de su firma');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject.en-GB', 'string', 'This document needs to be signed');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body.en-GB', 'html', '<p>You have a pending document to be signed <a href="${docURL}">${docName}</a></p>');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body.es-ES', 'html', '<p>Tiene un documento pendiente de firmar <a href="${docURL}">${docName}</a></p>');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-signed.es-ES', 'string', 'El documento se ha firmado');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-signed.es-ES', 'html', '<p>El documento <a href="${docURL}">${docName}</a> se ha firmado </p>');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-signed.en-GB', 'string', 'The document has been signed');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-signed.en-GB', 'html', '<p>The document <a href="${docURL}">${docName}</a> has been signed </p>');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-verify.es-ES', 'string', 'Remote Signature: Código de verificación');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-verify.es-ES', 'html', '<p>Su pin de verificación para el documento ${docName} es ${pin}</p>');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-verify.en-GB', 'string', 'Remote Signature: Verification pin');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-verify.en-GB', 'html', '<p>Your verification pin for the document ${docName} is ${pin} </p>');
  • Establezca las propiedades de configuración según su uso:

    • rs.subject.es-ES: Asunto del correo de solicitud de firma (español).
    • rs.subject.en-GB: Asunto del correo de solicitud de firma (inglés).
    • rs.body.es-ES: Cuerpo del correo de solicitud de firma (español).
    • rs.body.en-GB: Cuerpo del correo de solicitud de firma (inglés).
    • rs.subject-signed.es-ES: Asunto del correo de confirmación de firma (español).
    • rs.subject-signed.en-GB: Asunto del correo de confirmación de firma (inglés).
    • rs.body-signed.es-ES: Cuerpo del correo de confirmación de firma (español).
    • rs.body-signed.en-GB: Cuerpo del correo de confirmación de firma (inglés).
    • rs.subject-verify.es-ES: Asunto del correo de verificación por PIN (español).
    • rs.subject-verify.en-GB: Asunto del correo de verificación por PIN (inglés).
    • rs.body-verify.es-ES: Cuerpo del correo de verificación por PIN (español).
    • rs.body-verify.en-GB: Cuerpo del correo de verificación por PIN (inglés).
  • Una vez configurada la aplicación, puede iniciar sesión en http://server.ip:8080/remote-signature usando la cuenta de administrador por defecto o un usuario con el rol ROLE_REMOTE_SIGNATURE

Parámetro Descripción
rs.subject.es-ES Asunto del correo de solicitud de firma (español)
rs.subject.en-GB Asunto del correo de solicitud de firma (inglés)
rs.body.es-ES Cuerpo del correo de solicitud de firma (español)
rs.body.en-GB Cuerpo del correo de solicitud de firma (inglés)
rs.subject-signed.es-ES Asunto del correo de confirmación de firma (español)
rs.subject-signed.en-GB Asunto del correo de confirmación de firma (inglés)
rs.body-signed.es-ES Cuerpo del correo de confirmación de firma (español)
rs.body-signed.en-GB Cuerpo del correo de confirmación de firma (inglés)
rs.subject-verify.es-ES Asunto del correo de verificación por PIN (español)
rs.body-verify.es-ES Cuerpo del correo de verificación por PIN (español)
rs.subject-verify.en-GB Asunto del correo de verificación por PIN (inglés)
rs.body-verify.en-GB Cuerpo del correo de verificación por PIN (inglés)
rs.subject-error.es-ES Asunto del correo de notificación de error (español)
rs.subject-error.en-GB Asunto del correo de notificación de error (inglés)
rs.body-error.es-ES Cuerpo del correo de notificación de error (español)
rs.body-error.en-GB Cuerpo del correo de notificación de error (inglés)

Parámetros de configuración que se pueden usar en el cuerpo

Sección titulada «Parámetros de configuración que se pueden usar en el cuerpo»

Los siguientes parámetros de notificación se pueden usar en los mensajes del cuerpo del correo:

Parámetro Descripción
${docURL} Enlace al documento que se va a firmar
${docName} Nombre del documento que se va a firmar
${pin} Código PIN de verificación

Vaya a Administration > Roles > New Role. Establezca el parámetro ID como ROLE_REMOTE_SIGNATURE y active la casilla Active.

Vaya a Administration > Utilities > Database query. Seleccione la opción JDBC en la parte inferior derecha, copie el script SQL correspondiente y haga clic en el botón Execute.

DELETE FROM OKM_TRANSLATION WHERE TR_LANGUAGE='en-GB' and TR_MODULE='rs';
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'send.emails', 'Send e-mails', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'emails.sent', 'E-mails sent', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'home', 'Home', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'admin', 'Admin', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'logout', 'Logout', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'login', 'Login', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'sign', 'Sign', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'undo', 'Undo', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'clear', 'Clear', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'document.signed', 'Document signed successfully!', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.signature', 'There is no signature', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'take.home', 'Take me home.', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.exist', 'This page does not exist.', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.lost', 'You are lost.', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'signature.needed', 'This document needs to be signed', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'title', 'Remote Signature', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'close', 'Close', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'document.is.signed', '"<strong>{name}</strong>" has already been signed', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'error.occurred', 'An error has occurred', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'back', 'Back', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'next', 'Next', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'enter.pin', 'Enter pin', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'enter.valid.pin', 'Please enter a 6-digit pin.', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'submit', 'Submit', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'request', 'Request pin', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'pin.sent', 'Requested pin sent!', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'invalid.pin', 'Invalid Pin!', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.pdf.subject', 'Document cannot be signed - Invalid format', 'en-GB');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.pdf.body', 'The document "<strong>${docName}</strong>" cannot be signed because it is not a PDF file. Please convert the document to PDF format and try again.', 'en-GB');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-error.en-GB', 'string', 'Error signing a document');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-error.en-GB', 'html', '<p>Error in the process of signing the document document <a href="${docURL}">${docName}</a></p>');
DELETE FROM OKM_TRANSLATION WHERE TR_LANGUAGE='es-ES' and TR_MODULE='rs';
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'send.emails', 'Enviar correos', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'emails.sent', 'Correos enviados', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'home', 'Inicio', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'admin', 'Administración', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'logout', 'Salir', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'login', 'Login', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'sign', 'Firma', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'undo', 'Deshacer', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'clear', 'Limpiar', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'document.signed', 'Documento firmado correctamente', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.signature', 'Es necesario dibujar la firma', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'take.home', 'Llévame al inicio', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.exist', 'Esta página no existe.', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.lost', 'Usted está perdido', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'signature.needed', 'Un documento requiere de su firma', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'title', 'Remote Signature', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'close', 'Cerrar', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'document.is.signed', '"<strong>{name}</strong>" ya ha sido firmado', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'error.occurred', 'Se ha producido un error', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'back', 'Atrás', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'next', 'Siguiente', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'enter.pin', 'Introducir pin', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'enter.valid.pin', 'Por favor introduzca un numero de 6 cifras', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'submit', 'Enviar', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'request', 'Solicitar código', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'request.sent', 'El código de verificación ha sido enviado!', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'invalid.pin', 'Pin incorrecto!', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.pdf.subject', 'El documento no se puede firmar - Formato inválido', 'es-ES');
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs', 'no.pdf.body', 'El documento "<strong>${docName}</strong>" no se puede firmar porque no es un archivo PDF. Por favor, convierta el documento a formato PDF e inténtelo de nuevo.', 'es-ES');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.subject-error.es-ES', 'string', 'Error firmando un documento');
INSERT INTO OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) VALUES ('rs.body-error.es-ES', 'html', '<p>Error en el proceso de firmar el documento <a href="${docURL}">${docName}</a></p>');

Si tiene varios módulos de remote signature configurados para trabajar con su instancia de OpenKM, puede configurar traducciones distintas para cada tenant.

Establezca un nuevo nombre de módulo de traducciones en openkm.properties:

translation.module=rs2

Registre las traducciones renombrando el módulo, como se muestra en el siguiente ejemplo:

-- Take the original translations and update the module from rs to rsX
DELETE FROM OKM_TRANSLATION WHERE TR_LANGUAGE='en-GB' and TR_MODULE='rs2';
INSERT INTO OKM_TRANSLATION (TR_MODULE, TR_KEY, TR_TEXT, TR_LANGUAGE) VALUES ('rs2', 'send.emails', 'Send e-mails', 'en-GB');
...

Para configurar la dirección de remitente de los correos salientes, modifique el parámetro de configuración mail-from en su fichero openkm.properties con una cuenta de correo existente.

mail.from=sample@example.com

Habilitar la extensión de estampado (stamp)

Sección titulada «Habilitar la extensión de estampado (stamp)»

Asegúrese de que la extensión de estampado esté habilitada en su instancia de OpenKM. Para instrucciones sobre cómo habilitar extensiones, consulte Enable extensions

  • Cree las imágenes de estampado que se usarán para estampar las firmas en los documentos. El ID de cada estampado corresponderá a los valores de las opciones del parámetro okp:remote_signature.location. Use el fichero dummy.png como plantilla de imagen.
  • Los siguientes ejemplos muestran cómo configurar las ubicaciones de estampado:
    • NorthEast Location
      • Image: dummy.png
      • Expr. X: PAGE_WIDTH
      • Expr. Y: PAGE_HEIGHT
    • North Location
      • Image: dummy.png
      • Expr. X: PAGE_CENTER - IMAGE_WIDTH / 2
      • Expr. Y: PAGE_HEIGHT
    • NorthWest Location
      • Image: dummy.png
      • Expr. X: 0
      • Expr. Y: PAGE_HEIGHT
    • East Location
      • Image: dummy.png
      • Expr. X: PAGE_WIDTH
      • Expr. Y: PAGE_MIDDLE - IMAGE_HEIGHT / 2
    • Center Location
      • Image: dummy.png
      • Expr. X: PAGE_CENTER - IMAGE_WIDTH / 2
      • Expr. Y: PAGE_MIDDLE - IMAGE_HEIGHT / 2
    • West Location
      • Image: dummy.png
      • Expr. X: 0
      • Expr. Y: PAGE_MIDDLE - IMAGE_HEIGHT / 2
    • SouthEast Location
      • Image: dummy.png
      • Expr. X: PAGE_WIDTH
      • Expr. Y: 0
    • South Location
      • Image: dummy.png
      • Expr. X: PAGE_CENTER - IMAGE_WIDTH / 2
      • Expr. Y: 0
    • SouthWest Location
      • Image: dummy.png
      • Expr. X: 0
      • Expr. Y: 0

Se pueden añadir campos de metadatos de tipo input para recopilar información adicional de los usuarios al firmar documentos. Estos campos input deben añadirse al final del grupo de metadatos. A continuación se muestra un ejemplo de dos campos de metadatos de texto:

<input label="DNI" type="text" name="okp:remote_signature.dni" readonly="true" />
<input label="Name" type="text" name="okp:remote_signature.name" readonly="true" />

Además, debe añadir una opción en el elemento select Extra por cada campo input creado, usando el nombre del input seguido del orden de visualización deseado como valor. Ejemplo:

<select label="Extra" name="okp:remote_signature.extra" type="multiple">
<option label="DNI" value="okp:remote_signature.dni.1"/>
<option label="Name" value="okp:remote_signature.name.2"/>
</select>

Cree un nuevo grupo de metadatos y asígnelo a los documentos PDF que requieran firma.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN"
"http://www.openkm.com/dtd/property-groups-3.10.dtd">
<property-groups>
<property-group label="Remote Signature" name="okg:remote_signature">
<select label="Status" name="okp:remote_signature.status" type="simple" readonly="true">
<option label="Pending to send" value="pendingToSend" selected="true"/>
<option label="Pending to sign" value="pendingToSign"/>
<option label="Signed" value="signed" />
<option label="Error" value="error" />
</select>
<input label="Mail to notify" type="text" name="okp:remote_signature.mail">
<validator type="req"/>
</input>
<checkbox label="Request Pin" name="okp:remote_signature.pin" />
<select label="Sign Location" name="okp:remote_signature.location" type="simple">
<option label="NorthWest" value="1"/>
<option label="North" value="2"/>
<option label="NorthEast" value="3" />
<option label="West" value="4"/>
<option label="Center" value="5"/>
<option label="East" value="6" />
<option label="SouthWest" value="7"/>
<option label="South" value="8"/>
<option label="SouthEast" value="9" />
<validator type="req"/>
</select>
<select label="Language" name="okp:remote_signature.lang" type="simple">
<option label="English" value="en-GB"/>
<option label="Español" value="es-ES"/>
<validator type="req"/>
</select>
<select label="Extra" name="okp:remote_signature.extra" type="multiple">
<option label="DNI" value="okp:remote_signature.dni.1"/>
<option label="Name" value="okp:remote_signature.name.2"/>
<option label="Checkbox" value="okp:remote_signature.checkbox.3"/>
<option label="Select" value="okp:remote_signature.select.4"/>
<option label="Select Multiple" value="okp:remote_signature.select_multiple.2"/>
</select>
<input label="DNI" type="text" name="okp:remote_signature.dni" readonly="true" />
<input label="Name" type="text" name="okp:remote_signature.name" readonly="true" />
<input label="Page" type="text" name="okp:remote_signature.page" />
<input label="Send Date" type="date" name="okp:remote_signature.send_date" timeFormat="hm" readonly="true"/>
<input label="Sign Date" type="date" name="okp:remote_signature.sign_date" timeFormat="hm" readonly="true"/>
<input label="Signature Device IP" type="text" name="okp:remote_signature.ip" readonly="true"/>
<textarea label="Error Message" name="okp:remote_signature.error_message" width="200px" readonly="true" dbColumnSize="512"/>
</property-group>
</property-groups>