jQuery-FileUpload, snadný upload souborů
- dkoleckar
- Člen | 10
Zdravím, přešel jsem z verze 1.2 na 2 a háže mi to error:
User Deprecated
Replace deprecated Nette\Object with trait Nette\SmartObject in C:\xampp\htdocs\tvonfire\vendor\jzechy\jquery-fileupload\src\Template\JavascriptBuilder.php:16
Takto vypadá můj Upload Model:
<?php
namespace App\Model;
use Nette\SmartObject;
use Nette\Utils\FileSystem;
use Zet\FileUpload\Model;
class UploadFilesRepository implements \Zet\FileUpload\Model\IUploadModel {
use SmartObject;
/**
* Zpracování požadavku o smazání souboru.
* @param $uploaded Hodnota navrácená funkcí save.
*/
public function remove($uploaded) {
}
/**
* Zpracování přejmenování souboru.
* @param $upload Hodnota navrácená funkcí save.
* @param $newName Nové jméno souboru.
* @return mixed Vlastní návratová hodnota.
*/
public function rename($upload, $newName) {
Nette\Utils\FileSystem::rename($upload,"../upload_files/".$newName);
}
/**
* Uložení nahraného souboru.
* @param \Nette\Http\FileUpload $file
* @param array $params Pole vlastních hodnot.
* @return mixed Vlastní navrátová hodnota.
*/
public function save(\Nette\Http\FileUpload $file, array $params = []) {
$file->move("../upload_files/".$file->getSanitizedName());
return $file->getSanitizedName();
}
}
Nevíte někdo co s tím. Budu rád za každou pomoc
- dkoleckar
- Člen | 10
Ještě dotaz, jaké všechny js (jquery,boostrap) a css includy tento doplněk potřebuje? Uploader se mi normálně zobrazí ale po vybrání souboru se nic neděje… + konzole js mi hlásí Renderer is not defined, ikdyž mám v configu renderer: Zet\FileUpload\Template\Renderer\Bootstrap4Renderer. Což by mu nemělo ani vadit když výchozí bere ten HTML5 renderer…
Díky
Editoval dkoleckar (26. 2. 2018 20:55)
- dkoleckar
- Člen | 10
Ano, můj layout.latte: Záleží nějak na pořadí vložených scriptů? V main.js mám akorát $.nette.init();
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="description" content="neco">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!--CSS -->
<link href="{$basePath}/bootstrap.min.css" rel="stylesheet">
<link href="{$basePath}/style.css" rel="stylesheet">
<link href="{$basePath}/signin.css" rel="stylesheet">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<!--JS -->
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="{$basePath}/js/jquery.ui.widget.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/main.js"></script>
<script src="https://nette.github.io/resources/js/netteForms.min.js"></script>
<script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
<script src="https://npmcdn.com/bootstrap@4.0.0-alpha.5/dist/js/bootstrap.min.js"></script>
{\Zet\FileUpload\FileUploadControl::getHead($basePath)}
{\Zet\FileUpload\FileUploadControl::getScripts($basePath)}
<title>{ifset title}{include title|stripHtml} | {/ifset}Nazev</title>
</head>
<body>
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
{include content}
<div class="container">
<footer>
<p>© Company 2017</p>
</footer>
</div>
</body>
</html>
- dkoleckar
- Člen | 10
Které skripty máš na mysli? Komponentu jsem stahnul pomocí composeru takže všechny soubory jsou aktuální. Dokonce jsem z tvého dema stáhnul jquery.ui.widget.js, jquery.min.js takže bych to měl mít stejné. Jenže pořád mi konzole háže ReferenceError: Renderer is not defined. Je to fakt zvláštní, protože předtím (verze 1.2) mi běžela v klidu.
- duskohu
- Člen | 778
Ahoj skusam sa pouzit novu verziu a mam problem:
config
fileUpload:
maxFiles: 200
fileFilter: Zet\FileUpload\Filter\ImageFilter
uploadModel: NasExt\Framework\FileUpload\UploadModel
form
/** @var FileUploadControl $upload */
$upload = $form->addFileUpload('files');
$upload->setRenderer(Bootstrap3Renderer::class);
a v sablone:
{input files}
Lenze mi to nadava:
add:433 Uncaught ReferenceError: Renderer is not defined
at add:433
at HTMLDocument.ready (functions.js:24)
Robim nieco zle?
Editoval duskohu (18. 6. 2018 17:01)
- duskohu
- Člen | 778
iguana007 napsal(a):
V sablone nevidim neco jako:
{block header} {\Zet\FileUpload\FileUploadControl::getHead($basePath)} {/block} {block footer} {\Zet\FileUpload\FileUploadControl::getScripts($basePath)} {/block}
Mam to v layoute:
{\Zet\FileUpload\FileUploadControl::getHead($basePath)}
{\Zet\FileUpload\FileUploadControl::getScripts($basePath)}
- cafesk8
- Člen | 103
Zdravím,
ad 1) Vypadá to, že tento plugin nepodporuje live-form-validation.js, tzn. že když procházím formulář pomocí TAB a přejedu přes povinné pole uploadu fotografii tak mi to nevyhodí hlášku, že musím nějaké soubory nahrát. Nemáte někdo zkušenost jak toto vyřešit?
ad 2) Když ve formuláři přes upload nahraju fotografie a potom dám odeslat formulář (přes ajax), tak pokud neprojde validací a je v něm nějaká chyba, tak se mi všechny soubory, které jsem před odesláním nahrál zase smažou a musím je nahrát znovu. Nevíte někdo co s tím?
Díky
- cafesk8
- Člen | 103
Zdravím,
jaká je podpora setRequired u tohoto prvku? Pokud nedám pole pro upload jako povinné, tak mi vše funguje přesně jak má. V momentě kdy přidám setRequired tak se mi nikdy nezavolá onSuccess, z formuláře se mi nahrané fotografie ztratí a pod controllem se mi vypíše hláška, že musím nahrát alespoň 1 fotografii.
presenter
protected function createComponentNewVozidloForm() {
$form = new Nette\Application\UI\Form;
$form->setRenderer(new \AlesWita\FormRenderer\BootstrapV4Renderer);
$form->getElementPrototype()->class = 'ajax';
$form->addProtection('Vypršel časový limit, odešlete formulář znovu');
$form->addFileUpload('Fotografie', 5)
->setRequired('Musíte vložit alespoň 1 fotografii');
$form->addText('nv_jmeno', 'Jméno')
->addRule(Form::MIN_LENGTH, 'Jméno se musí skládat ze 4 až 20 libovolných znaků.', 4)
->addRule(Form::MAX_LENGTH, 'Jméno se musí skládat ze 4 až 20 libovolných znaků.',20)
->setAttribute('placeholder', 'Jan Novák')
->setRequired('Zadejte prosím Vaše jméno.');
$form->addSubmit('nv_submit', 'Přidat');
$form->onSubmit[] = [$this,'handleZkontrolujForm'];
$form->onSuccess[] = [$this,'handleNewWhatever'];
return $form;
}
public function handleZkontrolujForm(Form $form) {
if ($this->isAjax()) {
$this->redrawControl('formSnippet');
}
}
public function handleNewWhatever(Form $form) {
$hodnoty = $form->getValues();
$this->flashMessage('Váš záznam byl úspěšně vložen.','success');
$form->reset();
if ($this->isAjax()) {
$this->redrawControl('formSnippet');
$this->redrawControl('flashes');
}
}
latte
{snippet flashes}
<div n:if="$flashes" class="float-alerts">
{foreach $flashes as $flash}
<div class="alert alert-{$flash->type} alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label=Close><span aria-hidden="true">×</span></button>
{$flash->message}
</div>
{/foreach}
</div>
{/snippet}
{snippet formSnippet}
{control newVozidloForm}
{/snippet}
upload model
namespace App\Model;
use Nette\SmartObject;
use Nette\Utils\FileSystem;
use Zet\FileUpload\Model;
class UploadFilesRepository implements \Zet\FileUpload\Model\IUploadModel {
use SmartObject;
/**
* Zpracování požadavku o smazání souboru.
* @param $uploaded Hodnota navrácená funkcí save.
*/
public function remove($uploaded) {
}
/**
* Zpracování přejmenování souboru.
* @param $upload Hodnota navrácená funkcí save.
* @param $newName Nové jméno souboru.
* @return mixed Vlastní návratová hodnota.
*/
public function rename($upload, $newName) {
Nette\Utils\FileSystem::rename($upload,"../upload_files/".'ey'.$newName);
}
/**
* Uložení nahraného souboru.
* @param \Nette\Http\FileUpload $file
* @param array $params Pole vlastních hodnot.
* @return mixed Vlastní navrátová hodnota.
*/
public function save(\Nette\Http\FileUpload $file, array $params = []) {
$file->move("../upload_files/".$file->getSanitizedName());
return $file->getSanitizedName();
}
}
Nutno dodat, že soubory se vždy správně do složky nahrají.
EDIT: Zkoušel jsem vypnout svůj model zakomentováním v config.neon, tudíž to používalo BaseUploadModel a výsledek stejný :(
EDIT2: Zkoušel jsem i vypnout ajax jestli to není tím. Bohužel …
Editoval cafesk8 (26. 6. 2018 11:55)
- d3tr1tus
- Člen | 52
Ahoj mám docela zvláštní problém. Při nahrávání fotky se mi občas stane, že nahrávaná fotka je otočená o 180 stupňů. Nestává se to vždy, ale jednou za čas to tak prostě je. Už se mě ptal klient jestli bych to mohl opravit, ale já za boha netuším proč se to děje. Mohl by mi někdo prosím poradit? Koukal jsem na nahranou fotku a opravdu byla nahrána obráceně neotočil to až prohlížeč nebo moje CSS. Mám verzi 2.0. Díky za rady :)
- JZechy
- Člen | 161
@d3tr1tus To je taková sranda, nevšiml jsem si, že by to dělali jiné telefony než samsung… :D Obrázek má v sobě uložená jistá data o orientaci a občas příjde právě otočený jiným směrem, což je zaznamenáno v těch datech.
Tady máš gist jak s tím pracuji https://gist.github.com/…64f21bac0a11, bude tě tam hlavně zajímat ta část okolo switche. Ten to vždycky napraví do správného otočení.
Editoval JZechy (5. 7. 2018 14:16)
- cafesk8
- Člen | 103
Ahoj,
upload souborů mi na PC funguje bez problému, akorát na mobilu, konkrétně Android 7.0 mám problém. Pokud kliknu na upload button, vyjede mi tabulka „Vyberte činnost“, kde je na výběr Fotoaparát | Videokamera | Záznam zvuku | Dokumenty.
Pokud dám fotoaparát, vyfotím fotku a dám „fajfku“, tak se obrázek v pořádku nahraje. Pokud však chci vybrat nějakou fotografii z mobilu, např. dříve pořízené fotografie uložené v galerii, tak si najedu do složky „Galerie“. Kde je vybrat fotografii nebo video, kliknu si na požadovanou fotku, vpravo nahoře dám „fajfku“ u „Vybrat fotografii nebo video“ a v tuto chvíli se mi nenahraje nic a dole mi vyskočí „Předchozí operaci nelze dokončit z důvodu nedostatku paměti“. Žádný AJAX se nezavolá, žádná laděnka nevyskočí.
Nevíte si s tím někdo rady?
- d@rkWolf
- Člen | 167
Zdravím, rozhodl sem se vyzkoušet tento plugin jako náhradu za starý MultipleFileUpload, který si s novějším Nette nerozumí, ale potřeboval bych poradit-dá se nějak vypnout ten "insta"upload?
Demo z Githubu nefunguje, takže jsem nějak očekával, že výchozí chování bude stejné, jako demo u Blueimpa. Tedy, že si dám „vybrat soubory“, ty se mi vyskládají do přehledu kde si budu moct případně nějaký zrušit a následně kliknu „nahrát soubory“(po kterém se nahrají obrázky, vypíše mi to message, překreslí okno, whatever).
Aktuálně tam mám button „nahrát soubor“(nejde přejmenovat a potřebuju to anglicky), který soubory nahraje a formulářový submit button „uložit“, kterým to uložím do DB, na což už žádný uživatel neklikne, takže se do DB neuloží nic(potenciál statisíce nahraných souborů, o kterých nikdo neví, dokud nedojde místo, nebo reportů že to nefunguje). Takže budu muset připojit DB rovnou k uploadModelu a pak pro jiné varianty kopírovat UploadModely a měnit db, ehm..budiž. Pak budu moct ten form submit zrušit páč bude k ničemu.
Poradil by někdo, jak to po dokončení uploadu rovnou překreslit nebo nějak vyčistit, aby tam ty nahrané obrázky nebyly? Zkoušel jsem form obalit do Snippetu a překreslit po zpracování formuláře, sice se to překreslí(mám pod uploadem hned výpis všech fotek v dané galerii), ale ta kompomenta je asi nějak zacacheovaná, protože s ní to ani nehne, zůstanou tam trčet ty poslední nahrané fotky. Na mazání fotek po nahrátí už mám tlačítka ve výpisu pod uploaderem, tam už to nemá co dělat.
- JZechy
- Člen | 161
@darkWolf Mechnika mi tehdy vylezla z toho, co jsme potřebovali na projektu… A postup jsme měli takový, že opravdu při nahrání se obrázek uložil a zapsal do databáze, ovšem označen jako nepotvrzený. Až když uživatel formulář odeslal, tak se potvrdil. Ostatně, evidentně do teď s ní nikdo neměl hlubší problém.
Ale co se týče autoodeslání, je to způsobeno výchozím zápisem pro událost „add“ (na blueimpově scriptu), kdy se rovnou odbouchne odeslání, tudíž když ji smažeš a přepíšeš vlastní, můžeš si to přizpůsobit.
@pitr82 a vlastně i do pléna … Aktuálně bohužel nemám čas ani priority se tomu nějak více věnovat, neb se zaměřuji jinými směry. Komponentu si tak může kdokoli forknout a jet si po svém, nebo ji klidně někomu i globálně předám k údržbě.
- d@rkWolf
- Člen | 167
@JZechy jo to pak dává asi smysl, akorát je to dle mého zbytečná práce navíc řešit pak věci k odstraňování nepotvrzených apod.
Já hlavně bohužel hledal co nejrychlejší hotovou náhradu za nefunkční MultipleFileUpload od Jana Kuchaře v projektu, kterej potřebuju dost narychlo revidovat, upravit na front-endu a vrátit zpět do běhu (klasické zákaznické „včera bylo pozdě“). Ideálně bez nutnosti přepisovat půl projektu a nebo hůř, přepisovat javascripty s kterýma nejsem extra kamarád. :-)
- robert.sipek
- Člen | 4
Ahoj, snažím se tuto skvělou knihovnu přemigrovat pro Nette 3. Narazil jsem v místě, kde konstruktor třídy UploadController volá rodičovský konstruktor:
public function __construct(\Zet\FileUpload\FileUploadControl $uploadControl) {
parent::__construct();
...
}
https://github.com/…ntroller.php#L44
Ten byl totiž v nové verzi Nette odstraněn a jeho volání tedy končí chybou: Cannot call constructor.
Pokud volání neexistujícího rodičovského konstruktoru vypnu, dojde
k výjimce: Component of type
‚Zet\FileUpload\Model\UploadController‘ is not attached to
‚Nette\Application\UI\Presenter‘ při provádění kódu
$this->template = $controller->template;
v konstruktoru
třídy JavascriptBuilder:
public function __construct(BaseRenderer $renderer, UploadController $controller) {
...
$this->controller = $controller;
...
$this->template = $controller->template;
$this->template->setFile(__DIR__ . "/js.latte");
}
https://github.com/…tBuilder.php#L63
Předpokládám, že k tomu dochází proto, že
UploadController
není připojen ke třídě
Nette\Application\UI\Presenter
a nemá tedy přístup
k šabloně.
Jak ale UploadController ke třídě Nette\Application\UI\Presenter připojit?
- robert.sipek
- Člen | 4
Tak vyřešeno. Ten parent::__construct();
skutečně musí
pryč.
Pak už stačí jen metodu attached
, která je deprecated, nahradit
voláním $this->monitor
.
- Allconius
- Člen | 317
robert.sipek napsal(a):
Tak vyřešeno. Ten
parent::__construct();
skutečně musí pryč.
Pak už stačí jen metoduattached
, která je deprecated, nahradit voláním$this->monitor
.
Ahoj, a jak si to mám nainstalovat do Nette 3 ?
<?php
Problem 1
- jzechy/jquery-fileupload 2.0.1 requires nette/forms ^v2.4.0 -> satisfiable by nette/forms[v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.4.x-dev] but these conflict with your requirements or minimum-stability.
- jzechy/jquery-fileupload 2.0.0 requires nette/forms ^v2.4.0 -> satisfiable by nette/forms[v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.4.x-dev] but these conflict with your requirements or minimum-stability.
- Installation request for jzechy/jquery-fileupload ^2.0 -> satisfiable by jzechy/jquery-fileupload[2.0.0, 2.0.1].
?>
Při instalaci přes composer to chce Nette 2.4, neplánuje se úprava pluginu i pro Nette 3 ?
- IJVo
- Člen | 38
Allconius napsal(a):
Ahoj, a jak si to mám nainstalovat do Nette 3 ?
Ahoj, tady jsem upravil ‚jQuery-FileUpload‘ pro Nette 3.0
https://packagist.org/…y-fileupload
Snad je to komplet :-)
- Allconius
- Člen | 317
IJVo napsal(a):
Allconius napsal(a):
Ahoj, a jak si to mám nainstalovat do Nette 3 ?
Ahoj, tady jsem upravil ‚jQuery-FileUpload‘ pro Nette 3.0
https://packagist.org/…y-fileupload
Snad je to komplet :-)
Ahoj,
hodilo mi to hlášku:
<?php
Nette\DI\InvalidConfigurationException
Unexpected option 'fileUpload › uiMode'. search►
?>
- Allconius
- Člen | 317
Allconius napsal(a):
IJVo napsal(a):
Allconius napsal(a):
Ahoj, a jak si to mám nainstalovat do Nette 3 ?
Ahoj, tady jsem upravil ‚jQuery-FileUpload‘ pro Nette 3.0
https://packagist.org/…y-fileupload
Snad je to komplet :-)Ahoj,
hodilo mi to hlášku:<?php Nette\DI\InvalidConfigurationException Unexpected option 'fileUpload › uiMode'. search► ?>
V konfigu je totiž toho:
<?php
fileUpload:
maxFiles: 10
maxFileSize: 7M
fileFilter: Zet\FileUpload\Filter\ImageFilter
uploadModel: App\Model\MyUploadModel
uiMode: full # full nebo minimal
?>
- d@rkWolf
- Člen | 167
Zdravím, využil jsem tenhle doplněk dříve jako náhradu starého multiplefileupload v jednom Nette 2.4 projektu, šlapalo to v poho, tak jsem to teď dal do nové věci na Nette 3, celý odpoledne se snažím opravit inicializaci(neustále se dívám na ReferenceError) a až teď mi došlo, že to asi vůbec fungovat nebude-mám celý admin ajaxový a ta komponenta se celá funkčně zaktivuje leda, když obnovím stránku kde ju mám F5kou… Chápu to dobře, že je to ve full ajax nefunkční a moje snaha je naprosto zbytečná? Protože všecek ten kód, co se tam rve přes <script> uvnitř přidruženého latte se prostě při obnovení ajaxem neprovede – a skopírovat ho do JS souboru s inicializací Naji nemůžu, když je plnej Latte tagů.
Radši se ptám, jestli nedělám chybu někde jinde…
- n.u.r.v.
- Člen | 485
Ahoj, používám ještě verzi 1.2.2 (od roku 2018), ale do teď nebyl
problém. Teď se ale stává, že při uploadu se soubor jakoby uploaduje
(běží pruh), ale požadavek je pending a trvá třeba 30–40 sekund, než se
4,5MB velký jpg uploaduje. Někdy to ale dělá i txt soubor. Ale přitom
progress proběhne až na konec.
Vůbec netuším, čím to může být, zda starší verzí a novýma
browserama, nebo problém serveru, ale na localu mi to nedělá, takže spíš
je to serverem, ale proč progres ukazuje, že upload je dokončený a přitom
je požadavek pending?
Nesetkal se s tím někdo? Díky
- luken
- Člen | 1
Ahoj, začal jsem používat tuto komponentu, asi jsem rozchodil co potřebuji, ale mám problém s lokalizací. Používám Bckp\Translator.
config.neon
extensions:
translator: Bckp\Translator\Nette\Bridges\TranslatorExtension(%tempDir%/translator)
fileUpload: Zet\FileUpload\FileUploadExtension
translator:
languages:
- en #Language codes
- cs #Language codes
path:
- %appDir%/Locale # Where to search for language file
resolver: true # Use resolver to get proper language?
debugger: %debugMode%
fileUpload:
maxFiles: 10
maxFileSize: 5M
fileFilter: Zet\FileUpload\Filter\ImageFilter
uploadModel: App\Model\UploadFilesRepository
renderer: Zet\FileUpload\Template\Renderer\Bootstrap4Renderer
translator: Bckp\Translator\Nette\Translator
používám Contributte\FormsBootstrap\BootstrapForm
protected function createComponentItemForm(): BootstrapForm
{
$form = $this->formFactory->create();
...
$form->addFileUpload('files');
...
$form->onSuccess[] = [$this, 'formSucceeded'];
$form->setTranslator($this->translator);
return $form;
}
dostávám tuto chybu(když v config.neon odeberu v sekci fileUpload: parametr translator – tak to funguje, ale samozřejmě jen v CZ).
zkoušel jsem i na úrovni controlu toto (ale s podobnou chybou):
$form->addFileUpload('files')->setTranslator( "Bckp\Translator\Nette\Translator ");
nebo
$form->addFileUpload('files')->setTranslator( $this->translator );
Chybu dostávám:
Argument 1 passed to Nette\Forms\Controls\BaseControl::setTranslator() must implement interface Nette\Localization\ITranslator or be null, string given, called in C:\xampp\htdocs\ga\vendor\ijvo\jquery-fileupload\src\FileUploadControl.php on line 163
Nevíte, co tam je špatně nebo jak to rozchodit? Díky za radu.
- Marek Bartoš
- Nette Blogger | 1263
@dehtak No můžu jen říct, že jsi dneska pěkně toxickej. Nechápu proč místo stěžování si na to jak jsou všechny knihovny špatný nehneš sám zadkem a nepředvedeš nám všem, jak se ty knihovny teda píšou správně.
- dehtak
- Člen | 113
Marek Bartoš no jako v componete je toho hodne nepouzitelneho. Jako nezlob se na me, ale je to tak. Bud se tam hadaj verze nebo je tam vzdy nejaka chyba nebo k tomu neni dostatecnej manual. Nebo to neni to pravy orechovy. Ja si pisu radeji vsechno sam. Nez travit spoustu casu zkousenim balicku z komponete. Muzu rict ze tam je pozitelny tak 1% balicku. Nekdo by to mel filtrovat a davat tam opravdu jen funkcni balicky.
Editoval dehtak (16. 7. 2021 10:08)
- Marek Bartoš
- Nette Blogger | 1263
Takže @dehtak:
- To že jsou balíky neudržované není problém componette, packagistu ani žádné jiné stránky s balíky nebo package manageru. Long-term support prostě většina balíků nemá, protože je autor už nepoužívá nebo na tom tratí čas a peníze. Přispíváš na alespoň jeden opensource projekt?
- Když se objeví nějaká chyba nebo není dostatečná dokumentace, založíš issue? Uděláš minimální repozitář s replikací problému nebo padající test? Podpoříš nějak autora aby se tvému problému věnoval? Jestliže nerozumíš například DI a balík ho používá, tak je čas se naučit s DI a nesvádět to na balík. Jestliže nezvládáš angličtinu, tak je mi líto, ale v našem odvětví je to průmyslový standard a jediný koho můžeš vinit jestliže se neučíš nebo si aspoň nepomáháš s DeepL translatorem jsi ty sám.
- Někdo by měl filtrovat componette a dávat tam funkční balíky? Okay, kdo by měl být ten, kdo bude hodnotit co je dost dobré a co ne? Na jednu stranu jsou tu lidi, co nejspíš ještě používají jQuery-FileUpload, na druhou stranu jsem tu já u koho balík bez testů a phpstanu do projektu prostě nesmí. Kdo tomu bude věnovat volný čas nebo kdo toho člověka zaplatí? Většinu času na componette pracoval jediný aktivní autor, momentálně je tam jediný další aktivní přispěvatel za celý poslední rok! Kromě oněch dvou je tam za poslední rok pouze jeden commit od dalšího přispěvatele.
Kdy jsi posledně podpořil opensource finančně, neodfláknutým PR nebo alespoň dobře sepsanou issue, která může pomoci ostatním? Na to že všechno dostáváš zadarmo od nás co tomu věnují moře volného času toho chceš nějak moc.