Statistics
660
3
0
228d
Badges
Requirements

Komponenty pro Nette formuláře

Build Status

Instalace

Přidáme balíček webchemistry-form-controls do bower.json a nainstalujeme. Přilinkujeme ještě tyto extenze, které se stáhnou společně s tímto balíčkem: EasyAutocomplete, jquery.tagsinput, datetimepicker, jquery.inputmask, jquery

Nainstalujeme komponenty do formulářu

class MyForms extends Nette\Application\UI\Forms {
    
    use WebChemistry\Forms\Controls\TForm;
}

můžeme přidat i extension, která usnadní nastavení jednotlivých komponent

extensions:
    formControls: WebChemistry\Forms\DI\FormControlsExtension

Date

$form->addDate('date', 'Datum');

$form->addDate('dateTwo', 'Datum')
        ->setFormat('D.M.Y');

Editor

$form->addEditor('editor', 'Editor');

Mask

$form->addMask('mask', 'Mask')
     ->setMask('+999 999 999 999');

Recaptcha

$form->addRecaptcha('recaptcha', 'Antispam');

Suggestion


class MyPresenter extends Nette\Application\UI\Presenter {
    use WebChemistry\Forms\Traits\TSuggestion;
}
$form->addSuggestion('suggestion', 'Suggestion', function ($query) {
    // return array
});

Tags

$form->addTags('tags', 'Tags');

Upload control

$form->addPreviewUpload('upload', 'Upload', 'path/to/upload/dir');

Vypnutí překladu u CheckboxList, RadioList, SelectBox, MultiSelectBox

$form->addCheckboxList('checkboxList', NULL, ['myItem'])
	->setTranslate(FALSE);

Client-side

Po načtení všech potřebných souborů spustíme inicializace:

WebChemistry.FormsControls.init();

V případě, že chceme po nette.ajaxu přidělit všem novým inputům pluginy, zavoláme registrační funkci:

WebChemistry.FormsControls.registerNetteAjaxEvent();

Pro nastavení jednotlivých komponent slouží funkce addSettings, která se musí volat před init funkcí:

WebChemistry.FormsControls.addSettings({
    date: {
        enable: false
    }
});

WebChemistry.FormsControls.init();

WebChemistry.FormsControls.addSettings(); // Vyhodí v konzoli chybu, protože toto volání je zbytečné

Potřebujeme-li přidat novým inputům pluginy, zavoláme funkci update:

WebChemistry.FormsControls.update();

Nové komponenty nebo přepsání stávající? Není problém:

WebChemistry.FormsControls.addControl('name', {
    // Celou základní kostru máte v client/examples/control.sekeleton.js
    // Příklady nalezneta u již hotových komponent client/components/*.js
});

Nastavení pro jednotlivé komponenty

Všechny možná nastavení najdete ve zdrojovém kódu komponenty ve složce client/components/*.js. Nastavení potom probíhá velice jednoduše (př. date input jiny selector): jméno komponenty, naleznete na předposledním řádku (první parameter funkce addControl).

WebChemistry.FormsControls.addSettings({
    date: {
        selector: 'input.myNewSelector'
    }
});

Is this addon outdated? Did you find an issue? Please report it.

Componette Componette admin@componette.com