IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Sperhak
Člen
Avatar
Sperhak:2.3.2023 13:46

Neviem či je problém v nejakom formáte alebo mi ešte niečo iné uniká. Mám kód ktorý funguje a po vybratí dátumu v kalendári ďalej pokračuje a refresne tabulku a zobrazí zvolený dátum.

<script type="text/javascript">
  const nav = new DayPilot.Navigator("nav");
    nav.selectMode = "month";
    nav.locale = "sk-sk"
    nav.onTimeRangeSelected = function(args) {
        alert(args.start);
        loadTimeline(args.start);
        dp.update();
        loadReservations();

    };
    nav.init();
</script>

Zkusil jsem: Cez alert som zistil že formát dátumu je "2023-02-01T00:00:00" a to som sa snažil napodobniť v mojom kóde. Cez alert mi to vypíše ten istý formát, ale kód ďalej nepokračuje a tabuľku nerefresne.

<script type="text/javascript">
function pickdate(args){
        alert(args.target.value + "-01T00:00:00");
        loadTimeline(args.target.value + "-01T00:00:00");
        dp.update();
        loadReservations();
</script>

Chci docílit: Snažím sa upraviť jeden projekt k svojmu obrazu, chcem odstrániť kalendár a nahradiť ho vlastným okienkom na výber mesiaca.

 
Odpovědět
2.3.2023 13:46
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2.3.2023 15:19

Zkus si vypsat typeof. Pravdepodobne pujde o typ date. Ten musis konvertovat pres new Date. Neco podobneho jsem dneska zrovna prepisoval pro cookies :)

var expires = new Date();
if (expires_days) expires.setTime(expires.getTime() + expires_days*86400000);
 
Nahoru Odpovědět
2.3.2023 15:19
Avatar
Sperhak
Člen
Avatar
Odpovídá na Peter Mlich
Sperhak:2.3.2023 18:53

No lenže neviem ako skúšal som

     function pickdate(args) {
        var args = new Date();
var myObject = {
  value: new Date(args.getFullYear(), args.getMonth(), 1).toISOString().slice(0, -5)
};

        alert(typeof myObject.value);

A stále mi to vypisuje string

 
Nahoru Odpovědět
2.3.2023 18:53
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.3.2023 15:10

Ok, jinak. Vyrob jednoduchou html stranku, kod a ten sem dej. Tak, aby nebylo nutne nic doplnovat a stacilo to cele oznacit a copy-paste presunout do poznamkoveho bloku, ulozit s html priponou a spustit, zplochy, treba. Takhle tam mas jakysi kousek kodu, ke kteremu bych musel dopsat dalsich X veci, abych to mohl otestovat.
Takhle se s tim neda vubec nic delat. Nevim, zda je problem u tebe nebo v jejich kodu nebo webovem prohlizeci. DayPilot neznam, musel bych si to vygooglovat :)

 
Nahoru Odpovědět
3.3.2023 15:10
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.3.2023 15:13
new Date(args.getFullYear(), args.getMonth(), 1)
    .toISOString() // vzdyt to prevadis na string
    .slice(0, -5) // a pak z toho orezacas nejakou cast
};

        alert(typeof myObject.value); // takze logicky vypise string

A ted je otazkou, zda to ma delat nebo je to tva chyba, nebo, o co tady jde?

 
Nahoru Odpovědět
3.3.2023 15:13
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.3.2023 15:21

google = DayPilot examples
google = DayPilot set date
https://doc.daypilot.org/…e-switching/

// JS
dp.startDate = "2013-07-31";
dp.update();
dp.events.load("/api/events");

// ASP - WebForms
dp.commandCallBack("goto", { date: "2013-07-31" });
---
          DayPilotCalendar1.StartDate = (DateTime) e.Data["date"];
          DayPilotCalendar1.DataSource = loadYourData();
          DayPilotCalendar1.DataBind();
          DayPilotCalendar1.Update();
---
dp.startDate = "2013-07-31";
dp.commandCallBack("refresh");
 
Nahoru Odpovědět
3.3.2023 15:21
Avatar
Sperhak
Člen
Avatar
Odpovídá na Peter Mlich
Sperhak:3.3.2023 19:56

To mi vygenerovala AI. Niečo upravit a napisat zvladnem ale na niečo už nestačím a toto je už tá vec s ktorou potrebujem pomôcť.
Tak celý kód je tu https://code.daypilot.org/…20210607.zip
V podstate chcem nahradiť ten ich kalendár týmto

<input type="month" id="pickdate" onchange="pickdate(event);" />

Ako som už písal toto je pôvodný kód v js

const nav = new DayPilot.Navigator("nav");
      nav.selectMode = "month";
      nav.locale = "sk-sk";
      nav.onTimeRangeSelected = function (args) {
        loadTimeline(args.start);
        dp.update();
        loadReservations();
      };
      nav.init();

Podla mna teda potrebujem dostať do tejto premennej loadTimeline(ar­gs.start); ten môj dátum. Lenže neviem ako nato. Podľa toho čo si mi teraz napísal som skúsil

dp.startDate = "2013-07-31";
loadTimeline(dp.startDate);

Lenže ani to nefungovalo.

Editováno 3.3.2023 19:58
 
Nahoru Odpovědět
3.3.2023 19:56
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.3.2023 14:57

Hm, takze jednoduchy priklad nic. A v tom kodu neni tam ten tvuj js (stacilo si to tlacitko preci duplikovat, mit jedno fungujici a druhe tvoje nefungujici). Takze, asi nejlepe, vratit se ke googlu a zkusit si to najit sam... Kod od AI muze byt spis jako pomucka, ale nemusi sedet ke tve verzi knihovny :)

https://forums.daypilot.org/…or-not-right
https://javascript.daypilot.org/…vigator.html

Ten js kod mas jinak ok. Zkus si do toho jejich puvodniho pridat vypis arg, kdyz chces vedet, co tam maji

      nav.onTimeRangeSelected = function (args) {
console.log(arg)
        loadTimeline(args.start);
Editováno 6.3.2023 14:59
 
Nahoru Odpovědět
6.3.2023 14:57
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.3.2023 15:02

https://code.daypilot.org/ - je tam spousta dalsich prikladu, mozna by se dalo neco z nich vytahnout
https://code.daypilot.org/…configurator

 
Nahoru Odpovědět
6.3.2023 15:02
Avatar
Sperhak
Člen
Avatar
Sperhak:7.3.2023 21:25

No kód z daylipilot

console.log(args.start);

vypíše do konzoly DayPilot.Date {va­lue: '2023-04-01T00:00:00'}
Môj kód

console.log(args.target.value + "-01T00:00:00");

vypíše 2023-06-01T00:00:00

Naozaj netuším ako dosiahnuť aby môj kód posielal to čo ten daylipilot.
Skúsil som

console.log("DayPilot.Date {value:'" + args.target.value + "-01T00:00:00'}");

ale samozrejme to nefungovalo, aj som si myslel že to nepôjde.

Pretože ten výpis z konzoly sa u toho daylipilot dá rozklikávať na

DayPilot.Date {value: '2023-04-01T00:00:00'}
value
:
"2023-04-01T00:00:00"
ticks
:
(...)
get ticks
:
ƒ ()
[[Prototype]]
:
Object

A potom ďalej a ďalej sú tam podkategórie ktoré sa dajú rozklikávať kdežto ten môj kód sa v konzoly tvári len ako obyčajný text a nič sa tam rozkliknúť nedá.

Editováno 7.3.2023 21:26
 
Nahoru Odpovědět
7.3.2023 21:25
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:8.3.2023 8:04

No, ale, jak uz jsem psal drive, tak, podle dokumentace se datum nastavuje takto:

// https://doc.daypilot.org/calendar/manual-date-switching/
dp.startDate = "2013-07-31";
dp.update();

DayPilot.Date {value: '2023-04-01T00:00:00'} => https://doc.daypilot.org/calendar/navigator/ | hledat: DayPilot date
=> https://api.daypilot.org/daypilot-date-class/
=> new DayPilot.Date("2023-01-01T00:00:00")

https://doc.daypilot.org/…r/navigator/ | hledat: DayPilot loadTimeline
=> https://forums.daypilot.org/…-assign-date

 
Nahoru Odpovědět
8.3.2023 8:04
Avatar
Sperhak
Člen
Avatar
Odpovídá na Peter Mlich
Sperhak:8.3.2023 23:53

Našiel som riešenie v jednom z odkazov čo si poslal upravil ho podla seba a funguje. Prekvapivo stačilo napísať jeden riadok

var date = new DayPilot.Date(args.target.value + "-01T00:00:00");

Takže vďaka mám to vyriešené.

 
Nahoru Odpovědět
8.3.2023 23:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.