JEditable je plugin pro JQuery který umí odeslat jakýkoliv formulář pomocí AJAXu.

name | String |POST parameter name of edited content
id | String |POST parameter name of edited div id
submitdata | Hash | Extra parameters to send when submitting edited content.
type | String |text, textarea or select
rows | Integer |number of rows if using textarea
cols | Integer |number of columns if using textarea
height | Mixed |’auto’, ‘none’ or height in pixels
width | Mixed |’auto’, ‘none’ or width in pixels
loadurl | String |URL to fetch external content before editing
loadtype | String |Request type for load url. Should be GET or POST.
loadtext | String |Text to display while loading external content.
loaddata | Hash |Extra parameters to pass when fetching content before editing.
data | String |Or content given as paramameter.
indicator | String |indicator html to show when saving
tooltip | String |optional tooltip text via title attribute
event | String |jQuery event such as ‘click’ of ‘dblclick’
onblur | String |’cancel’, ‘submit’ or ‘ignore’
submit | String |submit button value, empty means no button
cancel | String |cancel button value, empty means no button
cssclass | String |CSS class to apply to input form. ‘inherit’ to copy from parent.
style | String |Style to apply to input form ‘inherit’ to copy from parent.
select | String |true or false, when true text is highlighted
placeholder | String |Placeholder text or html to insert when element is empty.

Pokud vlastníte bluetooth sluchátka, možná vás po updatu také potkala nemilá věc – sluchátka buď hrají na plné pecky nebo vůbec – nefunguje ovládání hlasitosti.

Co se stalo? Windows se snaží ovládat hlasitost hardwarově a některá zařízení to neumí. Oprava obnoví softwarové ovládání.

Spustit commandline jako administrátor a v něm příkaz na úpravu registru:

reg add HKLM\SYSTEM\ControlSet001\Control\Bluetooth\Audio\AVRCP\CT /v DisableAbsoluteVolume /t REG_DWORD /d 1 /f

Vrátit zpět můžeme pomocí příkazu:

reg add HKLM\SYSTEM\ControlSet001\Control\Bluetooth\Audio\AVRCP\CT /v DisableAbsoluteVolume /t REG_DWORD /d 0 /f

Více o problému zde:

https://support.microsoft.com/en-us/help/14169/windows-10-fix-bluetooth-problems

 

Skvělou MySQL funkcí, o které mnoho lidí neví, je GROUP_CONCAT. Ve skutečnosti jsem ji neznal já a přišla mi velmi vhod.

Jednoduchý příklad použití: Máme v tabulce statisíce, možná milióny řádků typu
Id  | ProductID  | Tag

Máme několik tagů u každého ProductId a chceme vypsat všechny Tagy pro vybrané ProductId.

Tohle u jednoho produktu snadno vyřešíme SELECTem. Pokud bychom ale chtěli vypsat v jedné tabulce všechny Produkty s jejich tagy, asi bychom to museli složit pomocí skriptu, možná nějak přes JOINT.

Ale právě k tomu je zde GROUP_CONCAT()

select `ProductId`, 
GROUP_CONCAT(DISTINCT `Tag` SEPARATOR ',') as tags 
from `keywords` 
group by ProductId

Výsledek pak vypadá nějak takto:

ProductID  Tags
1          reality,průmyslové,pronájem,skladování,sklady
2          software,blog,hardware,it,novinky,názory
3          kilimandžáro,afrika
4          hudba

Poznámka, nicméně důležitá. MySQL má nastavenu max. délku výstupního řetězce na 1024 znaků, určutě je vhodná vyšší hodnota.

mysql_query("SET group_concat_max_len = 4096");

Máme klasickou databázovou tabulku, kde si ukládám jednotlivé přístupy včetně IP adresy (nebo třeba její hash kvůli GDPR). Z této tabulky bych chtěl zjistit, kolik času jsem strávil na tomto projektu/webu. Za platný čas pokládám interval menší než 30 minut, tzn. nechci započítávat, pokud jsem se vrátil následující hodinu/den apod.

Tento kus MySQL dotazu v tabulce (kromě pár zbytečných hodnot které jsou tam jen pro názornost) by měl spočítat čas strávený na projektu nebo klientově webu.

set @last:=null;
select 
@last,
dtime, 
if(timediff(dtime,@last) < TIME('00:30:00'),timediff(dtime,@last),0) as worktime,
@last:=dtime 
from local_stats
where ip="127.0.0.1"
order by id

Tento SQL dotaz nám vypíše platné intervaly. Výsledek je třeba ještě sečíst.
Sčítat lze pomocí ADDTIME(), výsledný dotaz pak vypadá takto:

SET @before:=NULL;SET @cnt:=TIME('0:0:0');SET @threshold=TIME('0:30:0');
SELECT
@before,
dtime,
if(TIMEDIFF(dtime,@before) < @threshold,TIMEDIFF(dtime,@before),0) as `worktime`,
@cnt:= ADDTIME (
 @cnt,
 if(TIMEDIFF(dtime,@before) < @threshold,TIMEDIFF(dtime,@before),0)
) as `sum`
,@before:=dtime
from local_stats 
where ip="127.0.0.1"  
order by id

Podpora SVG ve Windows

Jak si nastavit Windows 10, abychom mohli prohlížet .svg soubory?

Na rovinu, nativní podpora vektorového formátu je od Microsoftu stále nulová. Naštěstí nám jiní hodní a moudří programátoři připravili zdarma řešení. K tomu, abychom mohli běžně hledat a všelijak zacházet s obrázky ve formátu svg, si stačí stáhnout rozšíření pro explorer (nikoliv IE).

Instalační soubor najdete na https://svgextension.codeplex.com/

A co standalone aplikace?

Z free aplikací jsem zkusil FastStone, ale ten zůstal v minulém století.

Můžete ale přemluvit XnViewMP. Pokud se vám jej podaří asociovat na .svg, pak jej i zobrazí. Ale pokud po něm chcete katalogový náhled, najednou je to problém. Programátoři tam totiž nastavili blokování.

Najdete to v Settings > Browser > File list > Custom filter > Exclude, na konci seznamu. Hledá se to špatně, ale pak stačí odmazat poslední dva formáty. Radši se podívejte na obrázek.

xnview_svg_support_sm

Poznámka: Platí pro verzi XnViewMP 0.78, ve verzi (0.81) se SVG obrázky nezobrazují. V dalších verzích by to mělo být opraveno.

další články »