Fedora zve na dvoudenní testování (2. a 3. prosince), během kterého si můžete vyzkoušet nové webové uživatelské rozhraní (WebUI) projektu FreeIPA. Pomozte vychytat veškeré chyby a vylepšit uživatelskou zkušenost ještě předtím, než se tato verze dostane k uživatelům Fedory a celého linuxového ekosystému.
Eben Upton oznámil zdražení počítačů Raspberry Pi, kvůli růstu cen pamětí, a představil 1GB verzi Raspberry Pi 5 za 45 dolarů.
Linus Torvalds na YouTube kanálu Linus Tech Tips staví dokonalý linuxový počítač.
Po 9 týdnech vývoje od vydání Linuxu 6.17 oznámil Linus Torvalds vydání Linuxu 6.18. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Vypíchnout lze například podporu protokolu PSP (PSP Security Protocol, PSP encryption of TCP connections).
Byla vydána nová stabilní verze 25.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Xantusia. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Richard Hughes na Mastodonu oznámil, že se společnost Framework Computer stala sponzorem služby LVFS (Linux Vendor Firmware Service) umožňující aktualizovat firmware zařízení na počítačích s Linuxem.
Jak na webu co nejšíleněji zadávat datum? Jak to uživatelům co nejvíce znepříjemnit? V Bad UX World Cup 2025 (YouTube) se vybíraly ty nejšílenější UX návrhy. Vítězným návrhem se stal Perfect Date.
Společnost Collabora vydala (YouTube) na LibreOffice založený desktopový kancelářský balík Collabora Office. Pro Windows, macOS a Linux. Se stejným uživatelským rozhraním jako Collabora Online. Svůj desktopový kancelářský balík s rozhraním LibreOffice pojmenovala Collabora Office Classic.
Glen MacArthur vydal AV Linux (AVL) a MX Moksha (MXM) 25. S linuxovým jádrem Liquorix. AV Linux (Wikipedie) je linuxová distribuce optimalizována pro tvůrce audio a video obsahu. Nejnovější AV Linux vychází z MX Linuxu 25 a Debianu 13 Trixie. AV Linux přichází s desktopovým prostředím Enlightenment 0.27.1 a MX Moksha s prostředím Moksha 0.4.1 (fork Enlightenmentu).
Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Ahoj,
pri click na element chci zavolat metodu
OnClick_.
Nevite jak zjednodusit ten zapis
.click (...)
Diky.
function Frm_Login (element)
{
$(element).click ( function (frm) {
return function () { frm.OnClick_(); };
}(this));
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
function Frm_Login (element)
{
$(element).click ( function (frm) {
return frm.OnClick_;
}(this));
};
Zkousim takovou "okenni" aplikaci, ktera by bezela v internetovych prohlizecich.
Pomoci knihovny dhtmlx vytvarim okna (formulare). Na test treba Frm_Test.
var okno1 = new Frm_Test ();
var okno2 = new Frm_Test ();
A potrebuju aby pri stisku daneho tlacitka na formulari se zavolala metoda
daneho objektu. Tak mi to prislo podobne jako v desktop aplikacich.
S JS zacinam takze mozna to je blbost. Uvidim casem.
Tady je cely priklad:
function Geozone_Frm_Login (ownerWS)
{
/**
* PRIVATE
*/
var mThis = this;
var mWin;
var mCtlLogin;
var mBtnLogin;
var mOwnerWS = ownerWS;
/**
* PROPERTIES
*/
this.BtnLogin = function () { return mBtnLogin; };
this.Win = function () { return mWin; };
this.CtlLogin = function () { return mCtlLogin; };
this.OwnerWs = function () { return mOwnerWS; };
/**
* CONSTRUCTOR
*/
/* Vytvorime sebe. dhtmlxWindow. */
mWin = MV7.Dhtmlx ().CreateWindow ("FrmLogin" + MV7.UId (), 0, 0, 325, 125, 'Prihlaseni');
/* Prusvitnost. */
$(mWin).css ({'opacity' : '.90'});
/* Tlacitka formu. */
mWin.button('close').hide ();
mWin.button('minmax1').hide ();
mWin.button('park').hide ();
/* Umisteni. */
mWin.denyResize ();
mWin.center ();
/* Prvek Login */
mCtlLogin = new Geozone_Ctl_Login ();
mCtlLogin.Position (5, 5);
mBtnLogin = new MV7_Widget_Button ('Prihlasit');
mBtnLogin.Geometry (225, 70, 90, 30);
$(mBtnLogin.Ele ()).click (function () {
mThis.BtnLoginOnClick_ ();
});
/* Nahozeni prvku na form. */
mWin.attachObject (mCtlLogin.Ele ());
mWin.appendObject (mBtnLogin.Ele ());
};
Geozone_Frm_Login.prototype.BtnLoginOnClick_ = function ()
{
var mThis = this;
this.Win ().progressOn ();
$(this.BtnLogin ().Ele ()).attr ('disabled', 'disabled');
data = this.CtlLogin ().GetData ();
MV7.Log ().Trace ('name: ' + data.name + '; pass: ' +data.pass);
this.OwnerWs ().LoginTest (data.name, data.pass,
function (recv) {
mThis.LoginTestOnSuccess_ (recv);
},
function (obj)
{
return function (a, b) {obj.LoginTestOnError_ (a, b); };
}(this)
);
/*
function (obj)
{
return function (recv) { obj.LoginTestOnSuccess_ (recv); };
}(this),
*/
};
/**
* Volana po uspesnem zavolani WebSluzby Logintest.
* @param recv
* @return
*/
Geozone_Frm_Login.prototype.LoginTestOnSuccess_ = function (recv)
{
var res;
res = this.OwnerWs ().LoginTestResult (recv);
MV7.Log ().Trace ('ReturnCode:' + res.ReturnCode);
};
Geozone_Frm_Login.prototype.LoginTestOnError_ = function (a, b)
{
MV7.Log ().Info ('LoginTestOnError_' + a + b);
};
qooxdoo urcite vyzkousim.
Komplet strasne nebo snad jen nektere konstrukce ? 
No mne pripada, ze v JS jde pouzit styl modul (podobne C) i objekt (C++,C#).
Modul soubor js podobny souboru v C:
qx.Class.define("myNamespace.A", {
// Dědičnost.
extend: qx.core.Object,
// Konstruktor
construct: function()
{
// Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend)
this.base(arguments);
// Něco ...
},
members: {
// metody, v js je všecho jako virtual v C++:)
tell: function()
{
alert("myNamespace.A.tell()");
}
}
});
qx.Class.define("myNamespace.B", {
// Dědičnost.
extend: myNamespace.A,
// Konstruktor
construct: function()
{
// Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend)
this.base(arguments);
// Něco ...
},
members: {
// no a tady si tu metodu reimplementujeme
tell: function()
{
// zavolá metodu tell z myNamespace.A
this.base(arguments);
// další kód...
alert("myNamespace.B.tell()");
}
}
});
Viz dokumentace
Přijde mi to celkem čisté (na javascript až moc:) ). Qooxdoo umí i interfaces, mixins, properties, události, atd:)
taky mam s qooxdoo asi dvoulete zkusenosti, neni to uplne spatne, ale jak rikas neni to uplne lightweight.. jinak kdyz jsme migrovali z 0.6.x na 0.7.3 tak to byl docela porod a ted uz je 0.8, do cehoz jsme se radsi ani nepousteli - nase aplikace ma cca 40k radku ;]
Na ukazku narychlo splacnuta trida:
qx.Class.define("b.tabview.ButtonFoo",
{
extend : qx.ui.pageview.tabview.Button,
construct : function(title)
{
this.base(arguments, title);
this.setAppearance("tab-view-button-Foo");
this.addEventListener('click', this.bar, this);
},
members :
{
prop1 : 'OMG',
foo : function(blah)
{
return blah.roflmao();
},
bar : function(e)
{
alert(e.getTarget().getLabel());
}
});
API
Po precteni clanku na root zdrojak sem to upravil takhle.
function Frm_Login (element)
{
var this_ = this;
$(element).click ( function () {
this_.OnClick_();
});
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
$(element).click ( function () {
this_.OnClick_();
});
by mělo jít ještě trochu zjednodušit, asi tak na
$(element).click ( this_.OnClick_ );To vyplývá z toho, jak v jQuery funguje
click: jako parametr dostane funkci, kterou zavolá při kliknutí na element. V původní variantě vytváříte anonymní funkci, která teprve zavolá tu, co chcete. Ale protože nic jiného se v ní nedělá, můžete funkci click předat rovnou tu funkci, kterou potřebujete zavolat.
$(element).click ( this_.OnClick_ );
this trochu šaškuje, jak já v tom pravidelně nepracuju a znám to jenom povrchně, tak jsem na to zapomněl. Ale na principu to nic nemění.
Tiskni
Sdílej: