ForgeKomponenty
sk

Komponenty

j-ListForm

jComponent 20 · jcomponent@20 component Príklad načítaný s jComponent 20

Konfigurácia:

  • autofocus {String/Boolean} zaostrí prvý vstupný prvok, string znamená vlastný volič (predvolené: false)
  • Text prázdneho zoznamu empty {String} (predvolené: ---)
  • default {Boolean} vykoná metódu DEFAULT() pre rozsah formulára (predvolené: true)
  • Bude "vyžadované" ovládanie required {Boolean} (predvolené: false)
  • enter {Boolean} umožňuje použiť enter ako odoslanie (predvolené: false)
  • disabled {Boolean} deaktivuje ovládanie (predvolené: false)
  • formclass {String} vlastná trieda pre kontajner formulárov
  • itemclass {String} vlastná trieda pre kontajner položiek
  • create {String} prepojenie na funkciu function(empty_object, callback(DEFAULT_ITEM_OBJECT), arr) (hodnota null preskočí vytváranie)
  • submit {String} prepojenie na funkciu function(form_data, callback(NEW_DATA), arr, item_ref_in_items) (hodnota null preskočí aktualizáciu)
  • update {String} prepojenie na funkciu function(form_data, callback(NEW_DATA), arr, item_ref_in_items) (hodnota null preskočí aktualizáciu)
  • remove {String} prepojenie na funkciu function(remove_item, callback(really_remove?), arr)
  • selector {String} selektor jQuery pre vlastnú šablónu (mimo komponentu). Funguje ako custom template v data-binding
  • footertop {Boolean} presunie pätu v hornej časti komponentu (predvolené: false)
  • move {String} prepojenie na funkciu function(items)
  • newbie {String} názov vlastnosti pre každú novú položku (vždy bude obsahovať hodnotu true)
  • plugin {String} vlastný názov doplnku vo vnútri komponentu (predvolené: component.ID)
  • invalidform {Boolean} deaktivuje komponent j-Validate, ak je j-ListForm v režime úprav (predvolené: false)
  • NEW: delay {Number} počiatočné oneskorenie zobrazenia detailov (predvolené: 1000 ms)

Komponent musí mať definované 3 šablóny zabalené v <script type="text/html">:

  • Najprv 1 - so šablónou Tangular na vykreslenie položky
  • 2 druhý - formulár s komponentmi (formulár bude zabalený v izolovanom rozsahu)
  • päta 3 - päta s tlačidlom pre položku create

Dobré vedieť:

Komponent sleduje udalosť kliknutia na všetkých tlačidlách s atribútom name:

  • name="submit" vykoná odoslanie/uloženie údajov do modelu
  • name="update" vykoná odoslanie/uloženie údajov do modelu
  • name="remove" odstráni aktuálnu položku z modelu
  • name="cancel" ruší úpravu
  • name="create" vytvorí prázdny formulár
  • form obsahuje triedu ui-listform-new pri vytváraní novej položky

Tlačidlá zoznamu:

  • name="remove" odstráni položku
  • name="up" presunie položku nahor
  • name="down" presunie položku nadol

Metódy:

  • NOVINKA: component.add() otvorí formulár na vytvorenie záznamu

Použite ho so <ui-component name="listform">. Keď komponent ešte nie je načítaný, jComponent ho stiahne pri prvom použití z adresy v DEF.fallback (predvolene CDN Componentator). Autor: Peter Širka. Zdroj: úložisko komponentov Componentator, licencia MIT.

example.html
<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>