Example #1
0
 /**
  * Palauttaa tehtävän muokkauspainikkeen html-koodin. Täällä ei
  * tarkistella käyttöoikeuksia, vaan se tehdään kutsuvassa osassa.
  * 
  * Elementti-luokan olio annetaan toisena parametrina, jos muokkaukseen mennään
  * koosteesta. Tällöin annetaan mahdollisuus palata koosteeseen takaisin
  * muokkauksen jälkeen.
  * 
  * Jos kyse on normaalista painikkeesta tehtävässä, annetaan
  * toiseksi parametriksi arvo Elementti::$MUUTTUJAA_EI_MAARITELTY.
  * 
  * Samoin jos uusi ratkaisu lisätään elementtiryhmästä käsin, palataan
  * takaisin samaan ryhmään. Muuten parametrin arvo on 
  * Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY.
  * 
  * @param Tehtava $tehtava
  * @param Elementti $elementti
  * @param Elementtiryhma $elementtiryhma
  * @return string
  */
 public function luo_ratkaisun_lisayspainike($tehtava, $elementti, $elementtiryhma)
 {
     // Muokkaus koosteesta käsin:
     $koostetiedot = "";
     if ($elementtiryhma instanceof Elementtiryhma) {
         $koostetiedot = "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elementtiryhma->get_id();
     }
     if ($elementti instanceof Elementti) {
         $koostetiedot .= "&" . Koostekontrolleri::$kooste_name_id . "=" . $elementti->get_arvo(Elementti::$sarakenimi_kooste_id) . "&" . Koostekontrolleri::$elementti_name_id . "=" . $elementti->get_arvo(Elementti::$SARAKENIMI_ID);
     }
     $form_maaritteet = array(Attr::action(Attr::muotoile_action_arvo("index.php", array(Tehtavakontrolleri::$tehtava_name_id, "uusi"), array($tehtava->get_id(), "true")) . $koostetiedot), Attr::classs("summary"));
     $input_maaritteet = array(Attr::name(Toimintonimet::$tehtavatoiminto), Attr::value(Painikkeet::$ratkaisu_uusi_value), Attr::classs("btn btn-" . Koostenakymat::$btn_type_summary . " btn-" . Koostenakymat::$btn_size_summary));
     $uusitehtpainike = Html::luo_forminput_painike($form_maaritteet, $input_maaritteet);
     return $uusitehtpainike;
 }
 /**
  * Palauttaa uude tehtävän lisäyspainikkeen html-koodin. Täällä ei
  * tarkistella käyttöoikeuksia, vaan se tehdään kutsuvassa osassa.
  * 
  * Elementti-luokan olio annetaan toisena parametrina, jos muokkaukseen mennään
  * koosteesta. Tällöin annetaan mahdollisuus palata koosteeseen takaisin
  * muokkauksen jälkeen. Samalla tavalla toimii elemryhma-parametri suhteessa
  * elementtiryhmään.
  * 
  * Jos kyse on normaalista painikkeesta kokonaisuusoliossa, annetaan
  * toiseksi parametriksi arvo Elementti::$MUUTTUJAA_EI_MAARITELTY ja kolmanneksi
  * Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY. Muuten
  * arvona on Elementti-luokan olio, joka sisältää ensimmäisenä parametrina
  * annetun kokonaisuuden, tai Elementtiryhma-luokan olio.
  * 
  * @param Kokonaisuusolio $kokonaisuus
  * @param Elementti $elementti
  * @param Elementtiryhma $elemryhma
  * @return string
  */
 private function luo_uusi_teht_painike($kokonaisuus, $elementti, $elemryhma)
 {
     // Painikkeet kokonaisuuksien yhteydessä:
     $btn_type = Kokonaisuusnakymat::$btn_type_article;
     $btn_size = Kokonaisuusnakymat::$btn_size_article;
     $uusi_teht_nappi = "";
     $onsubmit_funktionimi = "nayta_tehtavalomake";
     $onsubmit_parametrit = array($kokonaisuus->get_id());
     /* Tarpeen?*/
     $koostetiedot = "";
     if ($elementti instanceof Elementti) {
         $koostetiedot = "&" . Koostekontrolleri::$kooste_name_id . "=" . $elementti->get_arvo(Elementti::$sarakenimi_kooste_id) . "&" . Koostekontrolleri::$elementti_name_id . "=" . $elementti->get_arvo(Elementti::$SARAKENIMI_ID);
         // Painikkeet koosteen yhteydessä:
         $btn_type = Koostenakymat::$btn_type_summary;
         $btn_size = Koostenakymat::$btn_size_summary;
     }
     if ($elemryhma instanceof Elementtiryhma) {
         $koostetiedot .= "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elemryhma->get_id();
     }
     $form_maaritteet = array('method' => 'post', 'class' => 'article', 'action' => "index.php?" . "id_kokon=" . $kokonaisuus->get_id() . "&uusi=true" . $koostetiedot);
     $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$tehtava_uusi_value, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size);
     try {
         $uusi_teht_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
     } catch (Exception $poikkeus) {
         $this->lisaa_virheilmoitus("Virhe tehtavanapin luomisessa: " . $poikkeus->getMessage());
     }
     return $uusi_teht_nappi;
 }
Example #3
0
 /**
  * Hakee elementtiryhmän elementit ja palauttaa ne xml-muodossa.
  * @param type $omaid
  * @param Koostekontrolleri $koostekontrolleri
  */
 function hae_elementtiryhman_elementit($omaid, $koostekontrolleri, $koodaus)
 {
     $nyk_kooste = $koostekontrolleri->get_olio();
     $parametriolio = $koostekontrolleri->get_parametriolio();
     $tietokantaolio = $koostekontrolleri->get_tietokantaolio();
     // Haetaan elementtiryhmä:
     $elemryhma = new Elementtiryhma($parametriolio->elemryhma_id, $tietokantaolio);
     if ($elemryhma->olio_loytyi_tietokannasta) {
         $elementit = $elemryhma->hae_elementit();
         $viittausoliot_ok = array();
         $elementit_ok = array();
         $divi_mukaan = false;
         $all_elements = false;
         return muotoile_elemryhmaelem_xml($elemryhma, $koostekontrolleri, $nyk_kooste, $omaid, $elementit, $divi_mukaan, $all_elements, $viittausoliot_ok, $elementit_ok, $koodaus);
     } else {
         return "Error in ajax_kyselyt.php/hae_elementtiryhman_elementit()";
     }
 }
Example #4
0
 /**
  * Näyttää poistovahvistuskyselyn ja painikkeet, joista joko hyväksytään
  * tai perutaan poisto.
  * @param Elementtiryhma $poistettava Poistettava Elementtiryhma-luokan
  * olio, joka on löytynyt tietokannasta (varmistettu kutsuvassa funktiossa).
  * @return string
  */
 public function nayta_elemryhman_poistovahvistuskysely($poistettava)
 {
     $otsikko = $poistettava->get_arvo(Elementtiryhma::$sarakenimi_nimi);
     $kooste_id = $poistettava->get_arvo(Elementtiryhma::$sarakenimi_kooste_id);
     //========= Vahvistuspainike ====================================
     $form_maaritteet = array(Attr::action(Attr::muotoile_action_arvo("index.php", array(Koostekontrolleri::$elemryhma_name_id, Koostekontrolleri::$kooste_name_id), array($poistettava->get_id(), $kooste_id))), Attr::classs("summary"));
     $input_maaritteet = array(Attr::name(Toimintonimet::$koostetoiminto), Attr::value(Painikkeet::$kooste_vahvista_poista_ryhmittely_value), Attr::title(Painikkeet::$kooste_vahvista_poista_ryhmittely_title), Attr::classs("btn btn-" . Koostenakymat::$btn_type_summary . " btn-" . Koostenakymat::$btn_size_summary));
     $poistopainike = Html::luo_forminput_painike($form_maaritteet, $input_maaritteet);
     //==============================================================
     $paluupainike = $this->nayta_painike_paluu_koosteeseen($poistettava->get_arvo(Elementtiryhma::$sarakenimi_kooste_id), Elementti::$MUUTTUJAA_EI_MAARITELTY);
     $vahvistuskys = Html::luo_div(Tekstit::$elementtiryhma_poiston_vahvistuskysymys, array(Attr::classs("keskitys"), Attr::style("font-size: 120%; color: red"))) . Html::luo_otsikko($otsikko, array(), 1) . Html::luo_div($poistopainike . $paluupainike, array(Attr::classs("keskitys")));
     return $vahvistuskys;
 }
 /**
  * Tallentaa uuden elementtiryhmän linkkeineen.
  * @param Palaute $palauteolio
  */
 public function toteuta_tallenna_uusi_elementtiryhma(&$palauteolio)
 {
     $param = $this->get_parametriolio();
     $tietokantaolio = $this->get_tietokantaolio();
     $id = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY;
     $uusi = new Elementtiryhma($id, $this->get_tietokantaolio());
     // Sijoitetaan saadut arvot oliolle:
     $uusi->set_arvo($this->get_parametriolio()->kooste_id, Elementtiryhma::$sarakenimi_kooste_id);
     $uusi->set_arvo($this->get_parametriolio()->elemryhma_nimi, Elementtiryhma::$sarakenimi_nimi);
     $uusi->set_arvo($this->get_parametriolio()->elemryhma_selitys, Elementtiryhma::$sarakenimi_selitys);
     $uusi->set_arvo($this->get_parametriolio()->elemryhma_tunnus, Elementtiryhma::$sarakenimi_tunnus);
     $tallennus = $uusi->tallenna_uusi();
     if ($tallennus === Elementtiryhma::$OPERAATIO_ONNISTUI) {
         // Tallennetaan sitten elementit, jotka valittu tähän elementtiryhmään:
         $elem_valinnat = $param->elemryhma_elementtivalinnat;
         //
         $virheilm = "";
         $laskuri = 0;
         foreach ($elem_valinnat as $id) {
             $ei_maar_id = Elementtiryhmalinkki::$MUUTTUJAA_EI_MAARITELTY;
             $uusilinkki = new Elementtiryhmalinkki($ei_maar_id, $tietokantaolio);
             $uusilinkki->set_arvo($id, Elementtiryhmalinkki::$sarakenimi_elementti_id);
             $uusilinkki->set_arvo($uusi->get_id(), Elementtiryhmalinkki::$sarakenimi_elementtiryhma_id);
             $tallennus_linkki = $uusilinkki->tallenna_uusi();
             if ($tallennus_linkki === Elementtiryhmalinkki::$OPERAATIO_ONNISTUI) {
                 $laskuri++;
             } else {
                 $virheilm .= "<br/>" . $uusilinkki->tulosta_virheilmoitukset();
             }
         }
         if ($laskuri === sizeof($elem_valinnat)) {
             $this->toteuta_nayta($palauteolio);
             $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK);
             $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_ilm_tallennus_ok . " " . $laskuri . " " . Tekstit::$elementtiryhma_ilm_elemlinkkia_tallennettu);
         } else {
             $this->toteuta_nayta_ryhmittelylomake($palauteolio);
             $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_TALLENNUS);
             $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_virheilm_elementtilinkkien_tallennus . $virheilm);
         }
     } else {
         // Elementtiryhmän tallennus ei onnistunut
         $this->toteuta_nayta_ryhmittelylomake($palauteolio);
         $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_TALLENNUS);
         $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_virheilm_tallennus . $uusi->tulosta_virheilmoitukset());
     }
 }