Čo má spoločné JavaScript a strojček na zuby?

článok na blog uverejnený: 23. novembra 2021

Kurz: JavaScript I. – programovanie a základy jazyka

Lektor: Samuel Šiveň

Nuž, na prvý pohľad asi nič, však? Ja som napriek tomu tieto dve nesúvisiace veci spojila a o chvíľku vám aj poviem, ako sa mi to podarilo. Na začiatok zatiaľ iba prezradím, že v tomto spojení má prsty dvojdňový kurz JavaScript I. 

Jazyk JavaScript asi najviac využívajú programátori pri tvorbe webstránok. Vďaka nemu sú webstránky interaktívnejšie – s JavaScriptom vytvoríte napríklad dynamické menu, ktoré sa rozroluje až keď naň prejdete myškou. Alebo slúži aj na validáciu formulárov na webe. Čiže napríklad, keď vpisujete e-mailovú adresu do políčka formulára, JavaScript vám ešte pred jeho odoslaním na server skontroluje, či ste e-mailovú adresu napísali správne. Nie je to však jeho jediné využitie.

Kurz JavaScript môžete absolvovať prezenčne alebo online

JavaScript nielen pre programátorov webstránok

Ja som sa na kurz JavaScript I. prihlásila preto, aby som sa (paradoxne) zlepšila v inom jazyku – v jazyku Google Apps Script. Trochu zvláštne? Možno. No ak vám poviem, že Google Apps Script (GAS) je z veľkej časti vlastne JavaScript, už vám to také zvláštne pripadať nebude. Ak totiž ovládate JavaScript, GAS pre vás bude malina. Vznikol z jednej zo skorších verzií JavaScriptu, takže aj keď neobsahuje najnovšie spôsoby zápisu, vo svojej podstate je to stále JavaScript.

Len tak mimochodom – GAS sa používa na rozšírenie funkcionality Google aplikácií. Pomocou neho si viete vytvoriť šikovných pomocníkov, ktorí vám uľahčia alebo úplne zautomatizujú úlohy v aplikáciách G Suite – teda napríklad v tabuľkách Sheets, dokumentoch Docs, prezentáciách Slides, dotazníkoch Forms a podobne.

Google Apps Script je postavený na jazyku JavaScript

Dobre, ale na čo konkrétne využiť taký GAS? Predstavte si, že v aplikácii Forms si vytvoríte dotazník, ktorý odpovede vašich respondentov zbiera do prehľadnej tabuľky v aplikácii Sheets (takto bežne funguje aplikácia Forms na vytváranie dotazníkov, teda tento krok ešte zvládnete bez programovania).
V prípade, že si chcete pozrieť nové odpovede, ktoré cez dotazník pridali vaši respondenti (a či vôbec nejaké pridali), musíte si vždy otvoriť tabuľku s odpoveďami. Ak je to však dotazník, do ktorého vám odpovede nepribúdajú pravidelne, neustále otváranie a kontrolovanie tabuľky s odpoveďami je pomerne otravné. O koľko jednoduchšie by bolo, keby vás na každú novú odpoveď upozornil e-mail, v ktorom by ste si okrem toho mohli odpoveď hneď aj celú prečítať? Oveľa! No a presne na takéto úlohy môžete využiť Google Apps Script…

Praktický príklad so strojčekom na zuby

Teraz trochu odbočím. Nedávno som začala nosiť neviditeľný strojček na zuby. Proces spočíva v nosení priehľadných dláh pre horné a spodné zuby, ktoré svojim tvarom presne určujú, kedy sa ktorý zub kam pohne. Tieto dlahy treba každých 7 až 15 dní meniť. Najprv som si tieto dni označovala v diári, no ľahko sa mi stalo, že napríklad cez víkend som do diára nepozrela a teda úplne som na výmenu zabudla. A tu sa už dostávame k otázke z nadpisu článku.

Napadlo mi, že si spravím pomocníka, ktorý mi v deň výmeny dláh pošle e-mail, aby som určite nezabudla. Momentálne ich vymieňam približne každých deväť dní. Možno vám práve napadlo, že som si predsa mohla dať do kalendára opakujúcu sa udalosť a hotovo. Áno, tiež mi to napadlo, ale toto riešenie mi nevyhovovalo z dvoch dôvodov. Prvý, nie vždy je to u mňa presne deväť dní. Buď kvôli mojej zábudlivosti, alebo sa moje zuby ešte na zmenu necítia, no nechce sa mi kvôli tomu zakaždým nanovo upravovať udalosť v kalendári. Druhý je čisto motivačný – chcela som mať rýchly prehľad o tom, koľko mi ešte ostáva do cieľa a na kedy mi vychádza posledná sada. No dobre, mám aj tretí dôvod. Jednoducho som chcela zistiť, či viem také niečo vôbec naprogramovať. 🙂

Pomocou GAS si môžete naprogramovať automatické posielanie e-mailov z tabuliek Google Sheets

Prvý krok: Vytvorenie kalendára v Google Sheets

Prvý krok bol vytvorenie kalendára v tabuľke Google Sheets. Kalendár je veľmi jednoduchý – iba dátum v jednom stĺpci a vedľa dátumu číslo sady, ak na ten deň pripadá výmena. Aj tu som chcela mať voľnosť v prípade, že sa rozhodnem vymienať sadu v iný deň. Do stĺpca s číslami sád som preto pridala funkciu, ktorá berie do úvahy, čo je zapísané za posledných deväť dní a podľa toho sama dopíše ostatné čísla do kalendára.
Ak chcem napríklad sadu vymeniť až o deň neskôr, stačí mi jednoducho vpísať číslo danej sady na deň, kedy sa má meniť a ostatné čísla sa poposúvajú podľa potreby. (Ak vám nie je z obrázka jasné, ako táto funkcia funguje, odporúčam zájsť na kurz Microsoft Excel business – tvorba vzorcov a funkcií, ktorý sa venuje najpoužívanejším funkciám a ich kombinovaniu.)

Kalendár v Sheets s príkladom zloženej funkcie

Druhý krok: Napísanie skriptu v Google Apps Script

Výborne, kalendár existuje, už stačí „len“ naprogramovať automatické posielanie e-mailov. Na písanie skriptov v Google Apps Script nepotrebujete žiaden externý editor, všetko potrebné máte k dispozícii priamo v menu tabuľky pod možnosťou „Rozšírenia » Apps Script“.

Ak vás zaujíma riešenie tohto môjho „problému“, nech sa páči, tu je celý skript. Môžete si ho skopírovať do GAS editora vo svojich Google Sheets tabuľkách a vyskúšať. Do dôkladnejšieho vysvetľovania sa však púšťať nebudem, netrúfam si. Namiesto toho vám radšej odporúčam prísť na kurz JavaScript I., kde sa naučíte základy JavaScriptu priamo od profesionála aj s odborným vysvetlením „čo je čo“.


//hlavná funkcia:
function newSet() { 
  let calendar = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  let d = new Date()
  let today = d.toDateString(); //dnešný dátum

  let data = calendar.getRange(2,1,calendar.getLastRow()-1, 2).getValues() //načítanie dát z kalendára
  
  let dateLast //nájdi deň poslednej (46.) sady a zapamätaj si dátum
  for (let i = calendar.getLastRow(); i > 1; i--){
        if (data[i-2][1] == 46){
          dateLast = data[i-2][0].toDateString()          
        }
      }

  data.forEach((day,index) => { //nájdi dnešný dátum a ak je pri ňom číslo (bunka nie je prázdna), pošli email
    if (day[0].toDateString() == today && day[1] != "") {
      let number = day[1]
      sendEmail(number, dateLast)
      }             
  })
}

//funkcia na posielanie e-mailov s parametrami number (aktuálna sada) a dateLast (posledná sada):
function sendEmail(number, dateLast) { 
  let myEmail = Session.getActiveUser().getEmail()
  let subject = 'Je čas na novú sadu!';
  let message = 'Pekný deň, dnes si daj sadu číslo ' + number + '.'
  message += 'Do konca ti zostáva už len ' + (46 - number) + ' sád. Posledná vychádza na ' + dateLast + '.'
  message += 'Maj sa krásne, Tvoj úsmev'
  
  MailApp.sendEmail(myEmail, subject, message, {"htmlBody":message});
}

Kurz nielen pre tvorcov webov

Ako vidíte, kurz JavaScript I. nie je len pre záujemcov o programovanie webstránok. Vedomosti z tohto jazyka môžete netradične využiť aj pri automatizácii úloh v aplikáciách od Google. Kurz JavaScript I. trvá dva dni a na praktickom príklade sa naučíte základné postupy ako na to.

Keďže sa JavaScript využíva najmä na tvorbu webstránok, úzko súvisí so značkovacím jazykom HTML. Preto neprekvapí, že na kurze sme pracovali s príkladom, v ktorom sa objavil aj HTML. Oplatí sa preto mať základné vedomosti aj z tejto oblasti. Výsledkom takejto kombinácie bol zábavný príklad s domčekom, na ktorom sme si hneď overili funkčnosť nášho kódu. Postupne sme s lektorom skúšali pridávať a meniť príkazy a sledovali napríklad to, ako za domčekom zapadá slnko. 🙂

A možno ešte stále krútite hlavou nad mojím čudným praktickým príkladom so strojčekom na zuby, ktorý som predsa mohla vyriešiť oveľa jednoduchšie – opakovanou udalosťou v kalendári, nejakou múdrou appkou, krížikmi v kalendári… To je síce možné, ale viete, aký je to skvelý pocit, keď sa vám konečne niečo podarí vlastnými silami naprogramovať a funguje to presne tak, ako ste chceli? Na nezaplatenie!

+ Kurz trvá dva dni, čiže bolo dosť času na vysvetlenie a otázky
+ Na záver kurzu zhrnutie celého príkladu a komentár k jednotlivým krokom
+ S príkladom z kurzu sa môžete ďalej „hrať“ aj doma po kurze

– Praktický príklad na kurze využíval aj HTML, čo môže byť trochu mätúce, ak o HTML ešte nič neviete

autorom článku je: Hana Jokelová
Absolventka FMFI UK, ktorá sa po pár rokoch v poisťovníctve rozhodla objavovať nové chodníčky. Pripravená preskúmať všetky príležitosti, ktoré sa jej počas toho pripletú pod nohy. Jednou z nich je aj testovanie IT Learning kurzov, a nielen z oblasti digitálneho marketingu a grafiky. Ak práve netestuje, pomáha ľuďom učiť sa cudzie jazyky efektívne, alebo je sama v nejakom zahĺbená.

Páčil sa vám článok? Pošleme vám podobné.
Aktivujte si okamžité zasielanie noviniek a článkov – už vám od nás nikdy nič neunikne. Môžeme vás okamžite informovať o aktuálnej akcii, novinke, špeciálnej kampani či zľave alebo novom článku na našom blogu. Akonáhle sa u nás v novinkách niečo zmení alebo pridá, do pár minút vám automaticky posielame email s odkazom na novinku na našu stránku. A odhlásiť sa môžete kedykoľvek. Nič neriskujete.


Nikam neodchádzajte, pozrite si naše novinky, akcie alebo si
prečítajte ďalšie podobné články:

Podobné články z kategórie
it kurz recenzia, JavaScript, programovacie jazyky a testovanie


Aktuálna akcia na IT kurzy a počítačové a marketingové kurzy v Bratislave