j-ListForm
Configuración:
autofocus {String/Boolean}enfoca el primer elemento de entrada,stringsignifica un selector personalizado (predeterminado:false)empty {String}texto de lista vacía (predeterminado:---)default {Boolean}realiza el métodoDEFAULT()para el alcance del formulario (predeterminado:true)- El control
required {Boolean}será "requerido" (predeterminado:false) enter {Boolean}permite usarentercomo envío (predeterminado:false)disabled {Boolean}desactiva el control (por defecto:false)formclass {String}una clase personalizada para contenedor de formularioitemclass {String}una clase personalizada para contenedor de artículoscreate {String}un enlace a una funciónfunction(empty_object, callback(DEFAULT_ITEM_OBJECT), arr)(el valornullomite la creación)submit {String}un enlace a una funciónfunction(form_data, callback(NEW_DATA), arr, item_ref_in_items)(el valornullomite la actualización)update {String}un enlace a una funciónfunction(form_data, callback(NEW_DATA), arr, item_ref_in_items)(el valornullomite la actualización)remove {String}un enlace a una funciónfunction(remove_item, callback(really_remove?), arr)selector {String}un selector jQuery para plantilla personalizada (fuera del componente). Funciona comocustom templateen data-bindingfootertop {Boolean}mueve el pie de página en la parte superior del componente (predeterminado:false)move {String}un enlace a una funciónfunction(items)newbie {String}un nombre de propiedad para cada elemento nuevo (siempre contendrá el valortrue)plugin {String}un nombre de complemento personalizado dentro del componente (predeterminado:component.ID)invalidform {Boolean}deshabilita el componentej-Validatesij-ListFormestá en modo de edición (predeterminado:false)- NUEVO:
delay {Number}retraso inicial para mostrar detalles (predeterminado:1000ms)
El componente debe tener definidas 3 plantillas incluidas en <script type="text/html">:
1primero - con una plantilla Tangular para renderizar el elemento2segundo: un formulario con componentes (el formulario se envolverá en un ámbito aislado)- Pie de página
3- un pie de página con botón para el artículocreate
Es bueno saberlo:
El componente observa un evento de clic en todos los botones con el atributo name:
name="submit"realiza el envío/guardado de datos en el modelo.name="update"realiza el envío/guardado de datos en el modelo.name="remove"elimina el elemento actual del modelo.name="cancel"cancela la ediciónname="create"crea un formulario vacíoformcontiene la claseui-listform-newal crear un nuevo elemento
Botones de listado:
name="remove"elimina el elementoname="up"mueve el elemento hacia arribaname="down"mueve el elemento hacia abajo
Métodos:
- NUEVO:
component.add()abre un formulario para crear un registro
Úselo con <ui-component name="listform">. Cuando el componente aún no está cargado, jComponent lo descarga en el primer uso desde la dirección en DEF.fallback (el CDN Componentator de forma predeterminada). Autor: Peter Širka. Fuente: repositorio de componentes Componentator, licencia MIT.
<style>
.ui-listform-item { height: 26px; line-height: 26px; overflow: hidden; padding: 0 5px; }
button { background-color: white; border-radius: 2px; border: 1px solid #E0E0E0; font-size: 12px; height: 28px; line-height: 27px; padding: 0 10px; }
button i { margin-right: 5px; }
button:disabled { color: gray; background-color: #F8F8F8; }
.ui-dark button { background-color: #303030; border-color: #454545; }
.ui-dark button:disabled { background-color: #252525; color: #404040; }
</style>
<div style="width:400px">
<ui-component name="listform" path="users" config="autofocus:1">
<!-- LIST RENDERING -->
<script type="text/html">
<div>
<div class="pull-right">
<button name="up"><i class="ti ti-arrow-up"></i></button>
<button name="down"><i class="ti ti-arrow-down"></i></button>
<button name="remove"><i class="ti ti-remove"></i></button>
</div>
{{ name }}
</div>
</script>
<!-- FORM RENDERING -->
<script type="text/html">
<div class="padding">
<ui-component name="input" path="?.name" config="required:1" default="''" class="m">Name</ui-component>
<ui-component name="validate" path="?">
<button name="submit"><i class="ti ti-save"></i>Save</button>
<button name="remove">Remove</button>
<button name="cancel">Cancel</button>
</ui-component>
</div>
</script>
<!-- FOOTER -->
<script type="text/html">
<div style="margin-top:10px"><button name="create"><i class="ti ti-plus-circle green"></i>Create new</button></div>
</script>
</ui-component>
<hr />
<ui-bind path="users" config="text:STRINGIFY(value)" style="font-family:monospace" class="block"></ui-bind>
</div>
<script>
var users = [{ name: 'Total.js' }, { name: 'Flow' }, { name: 'jComponent' }];
</script>