Dovolím si předpokládát, že nejeden z vás používá stejně jako já AjaxContorlToolkit. Během používání občas narazím na nedostatky, které jsou vesměs již řešeny změnou kódu, který je volně dostupný. Změnou rozumím postup nalezený na blogu/webu. Občas mě napadlo, proč jsou návody uveřejněny touto formu a ne submitnuté do repository codeplexu. Ale jak to bývá, co mě nepálí, to neřeším :-) Přikládal jsem to lenosti tvůrců. Jednoho krásného dne jsem bohužel narazil na problém, který nemá (nenašel jsem v google:)) dosud řešení.
Problém se týkal Tabcontrolu, konkrétně validací tabu před přepnutím záložky. Respektive potřeboval jsem validvat několik ovládacích prvků na stránce a zamezit přepnutí záložky při nevyplnění. No protože jsem problém potřeboval vyřešit, dopsal jsem řešení sám. Nebylo to zas tak nic extra složitého, i když pochopení javascriptových objektů používaných v Toolkitu mě stálo pár vlasů...
Řešení ve zkratce: server událost před volaná při kliku na záložku spouštějící serverovou validaci. Doba změny, asi tři večery.
Tak práce zdařena, otestována na projektu nasazena a vše se zdálo být ok. No co teď? Při hledání řešení jsem narazil na pár požadavků tuto funkčnost dodělat, tak jsem si řekl, že se zkusím o kód podělit. Tak jsem se dal do hledání, na první pokus jsem našel adresu svn. Zaregistroval se na Codeplexu, ale bohužel nenašel připojení do projektu. Tak jsem zkusil stáhnout projekt bez verifikace a vše se zdálo v pořádku. Zkopíroval jsem změny a zkusil commit, dle očekávání neprošel (ve skrytu duše jsem doufal ve validaci správcem repository).
Ok tak zpátky na stromy a začal jsem hledat. Bohužel mé IQ na codeplex nestačilo a ani google neporadil. Tak co, přece se nevzdám při prvním nezdaru. Jelikož mě nic lepšího nenapadlo, vydal jsem se mojí neoblíbenou cestou a zeptal se známých, bohužel nic nevěděli. Tak následovala horší varianta, zkusil jsem oslovit lidi zapojené do projektu. Posbíral jsem cca 10 emailů zainteresovaných programátorů a poslal jednoduchý dotaz, jak přidat legálně funkčnost.
Čekám
Čekám druhý den, dokonce kontroluji spam.
Čekám čtvrtý den
Aaaaa Bertrand Le Roy se uvolil a poslal mi link na http://www.codeplex.com/AjaxControlToolkit/Wiki/View.aspx?title=ContributingToTheToolkit (nyní nefunguje, netuším proč). Perfektní ten jsem při hledání našel, ale nenapadlo mě, že změny jsou patch. Návod celkem do detailu propracovaný. Postup ve zkratce: stáhnout prográmek, který po spuštění stáhne aktuální verzi repository (aaaach jo opět jsem musel přenést změny). Poté se musí opět pustit, spuštění má za následek nachystání patche (pravděpodobně i odeslání, ale prográmek mi to nedal zřetelně najevo).
Oki zpátky na web codeplexu, založil jsem pod projektem issue http://www.codeplex.com/AjaxControlToolkit/WorkItem/View.aspx?WorkItemId=21083. A nahrál patch na web (odkaz se mi podařilo vložit napotřetí, web je opravdu hrozivě pomalý a padal při téměř každém requestu).
Opět posílám email, nyní pouze Le Royovi s dotazem co se bude dít nyní?
Čekám, není mi moc jasný princip, respektive chápu, že není možné, aby si commitnul do repository cokoliv kdokoliv, ale rozuná funkčnost by snad mohla být rychleji vyřízena. Navíc když je rovnou naprogramována dle instrukcí a okomentována. Patch je k vidění zde http://www.codeplex.com/AjaxControlToolkit/SourceControl/PatchList.aspx. Respektive přímý odkaz zde: http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=AjaxControlToolkit&DownloadId=58155. Při vkládání se mi rozumně nabídla možnost zvolit issue, ke kterému patch je přiřazen. Aspoň něco.
Čekám, submit jsem provedl 10.2, je to už skoro dva týdny a nikdo se neobtěžoval mi poslat email, nebo okomentovat issue nebo přiložený patch. Ok nedává mi to, dívám se na ostatní patche a naposledy zpracovaný je v srpnu 2008. Předemnou je 9 nevyřízených, některé ještě ze srpna. Ok pomalu zvažuji napsat postup vyřešení tohoto problému na svůj blog ..