/**
  * Toteuttaa nimenmukaisen toiminnon.
  * @return Palauteolio $palauteolio
  */
 public function toteuta_poista_PK()
 {
     $uusi = true;
     // false aiheutti vaikeasti huomattavan virheen. Ei
     // ollut tallennuskelpoinen..
     if ($this->nyk_pikakommentti->on_tallennuskelpoinen($uusi)) {
         $palaute = $this->nyk_pikakommentti->poista();
         if ($palaute == Pikakommentti::$OPERAATIO_ONNISTUI) {
             $ilmoitus = Pikakommenttitekstit::$ilmoitus_pikakommentin_poisto_ok;
         } else {
             $ilmoitus = Pikakommenttitekstit::$virheilmoitus_pikakommentin_poisto_eiok;
         }
     } else {
         $ilmoitus = $this->nyk_pikakommentti->tulosta_virheilmoitukset();
     }
     $this->palauteolio->set_ilmoitus($ilmoitus);
     return $this->palauteolio;
 }
 public function testaa_pikakommentin_muokkaus()
 {
     $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti alkaa</h4>", false);
     $this->lisaa_testikommentti("Luodaan uusi pikakommentti hakemalla\n            tiedot tietokannasta (id-parametri asetettu)", false);
     $this->muokattava = new Pikakommentti($this->tietokantaolio, $this->pikakommentit[0]->get_id());
     //======================================================================
     // Testataan ennen muutoksia onTallennuskelpoinen-metodi, jonka
     // pitäisi valittaa:
     $this->lisaa_testikommentti("Testataan ennen muutoksia\n            onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false);
     $uusi = false;
     if ($this->muokattava->on_tallennuskelpoinen(false)) {
         $this->lisaa_testikommentti("Virhe: samoja tietoja ei pida\n                paastaa muokkaamaan!", true);
     } else {
         $this->lisaa_testikommentti("Oikein:  samoja tietoja ei pida\n                paastaa muokkaamaan!", false);
     }
     //======================================================================
     // ASetetaan pikakommentille tahallaan vääriä arvoja:
     $this->muokattava->set_henkilo_id("piip");
     $this->muokattava->set_kohde_id("piip");
     $this->muokattava->set_kohde_tyyppi("piip");
     $this->muokattava->set_kommentti(1000);
     // Ei enää aiheuta virhettä
     // johtuen set-metodin sisältämästä tarkistusmetodista!
     $this->lisaa_testikommentti("Testataan tahallaan vaarien muutosten jalkeen\n            onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false);
     // tyhjennetään vielä aiemmat virheilmoitukset:
     $this->muokattava->tyhjenna_virheilmoitukset();
     // Virheilmoituksia pitäisi tulla neljä, yksi kustakin arvosta yllä:
     if ($this->muokattava->on_tallennuskelpoinen(false)) {
         $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n                        tarkastuksen!", true);
     } else {
         if ($this->muokattava->virheilmoitusten_lkm() == 3) {
             $this->lisaa_testikommentti("Oikein:  Tiedoissa virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false);
         } else {
             $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n                        tarkastuksen! Seuraavat huomattu:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true);
         }
     }
     //======================================================================
     // ASetetaan pikakommentille hyviä arvoja:
     $muutettu_kommentti = "Mulla <b>on</b> 1000 'ankkaa', j&auml;hj&auml;h!";
     $this->muokattava->set_henkilo_id($this->id_testihenkilo1);
     $this->muokattava->set_kohde_id(Pikakommenttitestaus::$kohteen_testi_id);
     $this->muokattava->set_kohde_tyyppi(Pikakommentti::$KOHDE_LIIKUNTASUORITUS);
     $this->muokattava->set_kommentti($muutettu_kommentti);
     $this->lisaa_testikommentti("Testataan hyvien muutosten jalkeen\n            onTallennuskelpoinen-metodi, jonka ei pitaisi valittaa:", false);
     // tyhjennetään vielä aiemmat virheilmoitukset:
     $this->muokattava->tyhjenna_virheilmoitukset();
     // Virheilmoituksia ei pitäisi tulla:
     if ($this->muokattava->on_tallennuskelpoinen(false)) {
         $this->lisaa_testikommentti("Oikein! ARvot puhtaita!", false);
     } else {
         $this->lisaa_testikommentti("Virhe:  Tiedoissa olevinaan virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false);
     }
     //======================================================================
     // tyhjennetään vielä aiemmat virheilmoitukset:
     $this->muokattava->tyhjenna_virheilmoitukset();
     // Kokeillaan sitten tallentaa muuttuneet tiedot:
     $this->lisaa_testikommentti("Kokeillaan tallentaa muutokset:", false);
     $tallennuspalaute = $this->muokattava->tallenna_muutokset();
     if ($tallennuspalaute == Pikakommentti::$OPERAATIO_ONNISTUI) {
         $this->lisaa_testikommentti("Muutosten tallennus onnistui!", false);
         // Kokeillaan hakea sama tietokannasta ja varmistetaan, että
         // muutettu kommentti on todella muuttunut:
         $testi = new Pikakommentti($this->tietokantaolio, $this->muokattava->get_id());
         if ($testi->get_kommentti() == $muutettu_kommentti) {
             $this->lisaa_testikommentti("Muutokset oikein tietokannassa!\n                     Kommentti on nykyaan: " . $testi->get_kommentti(), false);
         } else {
             $this->lisaa_testikommentti("Muutokset vaarin tietokannassa!\n                     Kommentti on nykyaan: " . $testi->get_kommentti(), true);
         }
     } else {
         $this->lisaa_testikommentti($tallennuspalaute, true);
     }
     //======================================================================
     $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti loppui</h4>", false);
 }
 /**
  * Palauttaa yhden olion tiedot taulukkoriviin pakattuna (tr-elementti).
  * Huomaa huolehtia muista taulukkotageista!
  * @param \Havainto $hav
  * @param int $rivinro Taulukon rivin juokseva nro alkaen yhdestä.
  * @param bool $erikoisvarustelu TRUE -> sopii poistovahvistukseen jne.
  * @return type
  */
 public function luo_taulukkorivi($hav, $rivinro, $erikoisvarustelu)
 {
     $rivi_class = "";
     if ($rivinro % 2 == 0) {
         $rivi_class = Bongausasetuksia::$havaintotaulu_parillinenrivi_class;
     }
     $rivi_id = "havainto" . $hav->get_id();
     // Haetaan sitten lajiluokan nimi (kieli saadaan parametrioliosta:
     $lj = new Lajiluokka($this->tietokantaolio, $hav->get_lajiluokka_id());
     $kuvaus = $lj->hae_kuvaus($this->parametriolio->kieli_id);
     if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) {
         $nimi = $lj->get_nimi_latina();
     } else {
         $nimi = $kuvaus->get_nimi();
     }
     $bongaajan_nimi = hae_henkilon_nimi($hav->get_henkilo_id(), true, $this->tietokantaolio);
     //========================== PIkakommentit =========================
     // Toiminnot on tässä vaiheessa valintaruutu. Hakasulut pitää lisätä!
     $maar_array_valinnat = array(Maarite::name(Bongausasetuksia::$havaintovalinta_id_taulukko_name . "[]"), Maarite::value($hav->get_id()));
     $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array());
     // Esim. poistovahvistuksessa valinta oletuksena päällä (koska nämä
     // on valittu):
     if ($erikoisvarustelu) {
         Maarite::lisaa_maarite(Maarite::checked(), $maar_array_valinnat);
         $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array());
     }
     //========================== PIkakommentit =========================
     $pikakommenttisolu = "";
     $kommenttien_lkm = 0;
     $on_uusia_pk = false;
     $pikakommentit = Pikakommentti::hae_pikakommentit($this->parametriolio->omaid, Pikakommentti::$KOHDE_BONGAUS, $hav->get_id(), $this->tietokantaolio);
     // Jos viimeistä katseluaikaa ei ole asetettu, asetetaan 0:
     if (!isset($_SESSION['edellinen_uloskirjausaika_sek'])) {
         $_SESSION['edellinen_uloskirjausaika_sek'] = 0;
     }
     // Korostetaan solu, jos uusin on riittävän uusi eikä oma:
     if (!empty($pikakommentit)) {
         $kommenttien_lkm = sizeof($pikakommentit);
         if ($pikakommentit[0]->get_tallennushetki_sek() > $_SESSION['edellinen_uloskirjausaika_sek'] && $pikakommentit[0]->get_henkilo_id() != $this->parametriolio->omaid) {
             $on_uusia_pk = true;
         }
     }
     // Taulukon solun muotoilu:
     $onclick = Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id()));
     $pk_class = "";
     if ($on_uusia_pk) {
         $pk_class = "on_uusia";
     }
     $pikakommenttisolu = Html::luo_tablesolu(Html::luo_span($kommenttien_lkm, array(Maarite::id("id" . $hav->get_id()))), array(Maarite::classs($pk_class), Maarite::title(Bongaustekstit::$ilm_pikakommentit_nakyviin), Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id()))));
     //============= PIkakommentit loppu ================================
     // Muokataan varmuus- ja maamerkinnät:
     // Maa merkitään, ellei Suomi:
     if ($hav->get_maa() == Maat::$suomi) {
         $maa = "";
     } else {
         $maa = " (" . Maat::hae_maan_kuvaus($hav->get_maa()) . ")";
     }
     // Vain epävarmuus näytetään
     $varmuus = "";
     if ($hav->get_varmuus() == Varmuus::$epavarma) {
         $varmuus = " (?)";
     }
     // Haetaan kuva_id ja koodi:
     $kuvaolio = $hav->hae_kuva();
     if ($kuvaolio instanceof Kuva) {
         $kuvakoodi = $kuvaolio->nayta_pelkka_kuva($this->parametriolio->kuvien_kansio_osoite);
         $kuva_id = $kuvaolio->getId();
     } else {
         $kuvakoodi = "";
         $kuva_id = -1;
     }
     // Mahdollistetaan kuvan näyttö klikkaamalla:
     // Kuvaa klikkaamalla saadaan se isoksi:
     $klikkaus = "";
     // Tyhjä, ellei kuvakoodi ok.
     $title = "";
     if ($kuvakoodi != "") {
         $klikkaus = Maarite::onclick("hae_kuva_ja_tiedot", array($hav->get_lajiluokka_id(), $kuva_id, Kuva::$KUVAT_BONGAUS));
         $title = Bongaustekstit::$havtaulkuvan_klikkausohje;
     }
     return Html::luo_tablerivi(Html::luo_tablesolu($rivinro, array()) . Html::luo_tablesolu($nimi . $varmuus, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_LAJIHAVAINNOT_TITLE), Maarite::onclick("hae_lajihavainnot", array($hav->get_lajiluokka_id())))) . Html::luo_tablesolu($hav->hae_pvm(), array()) . Html::luo_tablesolu($hav->get_paikka() . $maa, array()) . Html::luo_tablesolu(Html::luo_table(Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_span($hav->get_kommentti(), array(Maarite::classs(Bongausasetuksia::$havaintokuvakommentti_class))), array(Maarite::classs("rajaton"))) . Html::luo_tablesolu($kuvakoodi, array(Maarite::classs("rajaton"), $klikkaus, Maarite::title($title))), array()), array()), array(Maarite::name(Bongausasetuksia::$havaintotaulukon_kommenttisolun_name_arvo))) . Html::luo_tablesolu($bongaajan_nimi, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_HENKILON_HAVAINNOT_TITLE), Maarite::onclick("hae_henkilon_havainnot", array($hav->get_henkilo_id(), $hav->get_lajiluokka_id())))) . $toimintasolu . $pikakommenttisolu, array(Maarite::classs($rivi_class), Maarite::id($rivi_id)));
 }
Example #4
0
 /**
  * Luo uuden pikakommentin annetuilla arvoilla, tallentaa sen tietokantaan
  * ja palauttaa tallennetun id:n tai arvon
  * Pikakommentti::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan.
  *
  * @param <type> $henkilo_id
  * @param <type> $kohde_id
  * @param <type> $kohde_tyyppi
  * @param <type> $kommentti
  */
 public function luo_ja_tallenna_pikakommentti($henkilo_id, $kohde_id, $kohde_tyyppi, $kommentti)
 {
     $tallennetun_id = Pikakommentti::$MUUTTUJAA_EI_MAARITELTY;
     $id = Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
     $pika = new Pikakommentti($this->tietokantaolio, $id);
     $this->lisaa_testikommentti("Uusi tyhja pikakommentti luotu!", false);
     $this->lisaa_testikommentti("Asetetaan pikakommentin henkilo_id,\n                        kohde_id, kohde_tyyppi ja kommentti. Testataan\n                        uudelleen, onko nyt tallennuskelpoinen:", false);
     $pika->set_henkilo_id($henkilo_id);
     $pika->set_kohde_id($kohde_id);
     $pika->set_kohde_tyyppi($kohde_tyyppi);
     $pika->set_kommentti($kommentti);
     if ($pika->on_tallennuskelpoinen(true)) {
         $this->lisaa_testikommentti("Pikakommentti on tallennuskelpoinen", false);
         $onnistuminen = $pika->tallenna_uusi();
         if ($onnistuminen === Pikakommentti::$OPERAATIO_ONNISTUI) {
             $tallennetun_id = mysql_insert_id();
         } else {
             $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n                    ja_tallenna_pikakommentti())!" . " Arvot: henkilo_id=" . $pika->get_henkilo_id() . ", Kohde_id=" . $pika->get_kohde_id() . ", Kohde_tyyppi=" . $pika->get_kohde_tyyppi() . ", Kommentti=" . $pika->get_kommentti(), true);
         }
     } else {
         $this->lisaa_testikommentti($pika->tulosta_virheilmoitukset(), true);
     }
     return $tallennetun_id;
 }
Example #5
0
 // Haetaan parametrit;
 $parametriolio = new Parametrit($kokoelmanimi, $omaid, $tietokantaolio);
 // Luodaan Havaintokontrolleri- ja Havaintonakymaluokan oliot:
 $havaintokontrolleri = new Havaintokontrolleri($tietokantaolio, $parametriolio);
 // Luodaan Käyttäjähommat:
 $kayttajakontrolleri = new Kayttajakontrolleri($tietokantaolio, $parametriolio);
 //================== Pikakommenttimuuttujat=========================
 $kommenttiteksti = isset($_REQUEST['kommenttiteksti']) ? $_REQUEST['kommenttiteksti'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
 $kohde_tyyppi = isset($_REQUEST['kohde_tyyppi']) ? $_REQUEST['kohde_tyyppi'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
 $kohde_id = isset($_REQUEST['kohde_id']) ? $_REQUEST['kohde_id'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
 $pikakommentin_id = isset($_REQUEST['pikakommentin_id']) ? $_REQUEST['pikakommentin_id'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA;
 // Seuraavalla on käyttöä esimerkiksi poistoa peruttaessa. Ei
 // tartte hakea tietokannasta. Tavallaan hyvä tapa tämäkin.
 $sisalto_html = isset($_REQUEST['sisalto_html']) ? $_REQUEST['sisalto_html'] : "";
 // Luodaan käsiteltävä (tai tyhjä) pikakommentti:
 $nykyinen_pikakommentti = new Pikakommentti($tietokantaolio, $pikakommentin_id);
 // Sijoitetaan tiedot tarvittaessa:
 if ($kysymys == "tallenna_uusi_pikakommentti") {
     $nykyinen_pikakommentti->set_henkilo_id($omaid);
     $nykyinen_pikakommentti->set_kohde_id($kohde_id);
     $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi);
     $nykyinen_pikakommentti->set_kommentti($kommenttiteksti);
 } else {
     if ($kysymys == "tallenna_pikakommentin_muutos") {
         $nykyinen_pikakommentti->set_kohde_id($kohde_id);
         $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi);
         $nykyinen_pikakommentti->set_kommentti($kommenttiteksti);
     } else {
     }
 }
 $kontrolleri_pikakommentit = new Kontrolleri_pikakommentit($tietokantaolio, $parametriolio, $nykyinen_pikakommentti);