/** * 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; }
/** * Toteuttaa koosteen elementtiryhmän näyttämisen sekä normaalisti että * tulostusnäkymässä. Näkymätyylin päättää parametrina annettavan * palauteolion naytettava_oliotyyppi-muuttujan arvo. * * Näytössä noudatetaan koosteen näkyvyyttä, eli jos oikeus on nähdä * kooste, voi samalla nähdä elementtiryhmänkin (tai ainakin ne elementit, * joihin katseluoikeus vähintään). * * HUOM: Elementin näkyvyysasetuksen vaikutusta ei ole otettu täällä huomioon. * Se pitää korjata esim. niin, että yksityinen elementti ei näy muille * kuin tekijälle. Lisävaltuuksiahan ei koosteelle tai elementille voi * antaa (mikä lienee tässä vaiheessa selkeämpää erityisesti elementin * kohdalla). Koosteissa lienee järkevämpi kloonata kuin antaa mahdollisuus * monen muokata. Voi miettiä toki. * * @param Palaute $palauteolio */ public function toteuta_nayta_elementtiryhma(&$palauteolio) { // Tarkistetaan ja asetetaan naytettävä oliotyyppi: if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_ELEMRYHMA_TULOSTUS) { $tulostusnaytto = true; } else { $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_ELEMRYHMA); $tulostusnaytto = false; } $html = ""; $nakymapainikkeet = ""; // tulostusnäkymä ja ratkaisujen näyttö $muokkauspainike = ""; $paluu_koosteeseen_painike = ""; $muokkauspainikedivi = ""; $elemryhmapainikkeet = ""; $linkit = ""; $painikkeet = ""; $koostekoodi = ""; $omaid = $this->get_parametriolio()->get_omaid() + 0; $param = $this->get_parametriolio(); $tietokantaolio = $this->get_tietokantaolio(); // Haetaan ensin elementtiryhmä ja sen avulla kooste: $elemryhma = new Elementtiryhma($param->elemryhma_id, $tietokantaolio); $kooste_id = $elemryhma->get_arvo(Elementtiryhma::$sarakenimi_kooste_id); $kooste = new Kooste($kooste_id, $tietokantaolio); if ($kooste->olio_loytyi_tietokannasta && $elemryhma->olio_loytyi_tietokannasta) { $viittausoliot_ok = array(); $elementit_ok = array(); // Tarkistetaan, onko käyttäjällä edes oikeuksia nähdä koostetta: /*======================== käyttäjän oikeudet ========*/ $kohdeoikeudet_kooste = $kooste->hae_kayttajan_oikeudet($omaid); /*====================================================*/ // Luodaan muokkauspainikkeet, jos käyttäjällä on muokkausoikeudet: if ($kohdeoikeudet_kooste >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) { $muokkauspainike = $this->koostenakymat->luo_elemryhman_muokkauspainike($elemryhma); } // Jos riittävät oikeudet, näytetään ja muuten ei. if ($kohdeoikeudet_kooste >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) { $nakymapainikkeet = " " . $this->koostenakymat->luo_tulostusnayttopainike($kooste, $elemryhma) . " " . $this->koostenakymat->luo_koosteen_ratkaisunayttopainikkeet("elemtehtavan_ratkaisut"); $paluu_koosteeseen_painike = " " . $this->koostenakymat->luo_paluu_koosteeseen_nayttopainike($kooste); // Luodaan sitten mahdolliset elementtiryhmäpainikkeet // toiminnon mukaisin oikeustarkistuksin (koostenäkymissä..): // Harkitaan, tarvitaanko! /*$elemryhmat = $kooste->hae_elementtiryhmat(); $elemryhma_current = $elemryhma; $elemryhmapainikkeet = $this->koostenakymat-> luo_elemryhmapainiketaulukko($elemryhmat, $elemryhma_current, $kooste, $kohdeoikeudet_kooste);*/ //============================================================= // Kerätään ne elementit ja oliot, jotka näytetään käyttäjälle. // Sisältö saadaan metodista "luo_koosteen_elementtiosa". $elementit = $elemryhma->hae_elementit(); $divi_mukaan = true; $all_elements = false; $html = $this->luo_koosteen_elementtiosa($kooste, $omaid, $elementit, $divi_mukaan, $all_elements, $viittausoliot_ok, $elementit_ok); $muokkauspainikedivi = Html::luo_div($muokkauspainike . $paluu_koosteeseen_painike, array(Attr::classs("keskitys"), Attr::id("koostepainikerivi"))); } else { // Ellei oikeuksia koosteen (ei myöskään eryhmän) katselemiseen. $html = Html::luo_otsikko(Tekstit::$kooste_ilm_nayttoon_ei_oikeuksia, array(), 4); } $koostekoodi = $this->koostenakymat->nayta_elementtiryhma($muokkauspainikedivi . $elemryhmapainikkeet . $html, $elemryhma); $kooste_id = $kooste->get_id(); // Nykyinen kooste. // Linkit: $wrapped = true; $linkit = $this->luo_koostelinkit($kooste, $elementit_ok, $viittausoliot_ok, $wrapped); } else { $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_ei_loytynyt . " " . Tekstit::$or . " " . Tekstit::$kooste_koostetta_ei_loytynyt); } $painikkeet = $this->get_koostenakymat()->nayta_painike_paluu_kokonaisuuksiin() . $this->get_koostenakymat()->nayta_painike_paluu_koosteisiin($kooste_id) . $nakymapainikkeet; $palauteolio->set_sisalto($koostekoodi); $palauteolio->set_linkkihtml($painikkeet . "<br/><br/>" . $linkit); /*$palauteolio->set_nayttotapa(Html_koodi::$sisaltoelem_fixed);*/ $palauteolio->set_nayttotapa(Html_koodi::$sidenav_fixed); $palauteolio->set_valikkonaytto(false); }