Witam.
1 pytanie:
Mam problem z ustawieniem powrotnego ekranu z wywołanej funkcji we własnym module.
Zamiast do funkcji wywołującej wraca mi do dashboard'u.
Mmy funkcję ekranu głównego wyposażoną w klawisz 'Nowy dok. przych.' jak poniżej:
public function wszystkie_zlecenia(){
Base_ActionBarCommon::add('reply', __('Nowy dok. przych.'), $this->create_callback_href(array($this,'nowy_dokument_przychodzacy'),array()),__('Wprowadź nowy dokument przychodzący'), 1);
... //Wyświetlenie standardowej tabelki z RB
return true
}
I to co wywołujemy naciskając powyższy klawisz:
public function nowy_dokument_przychodzacy(){
if($this->is_back()) return false;
$rb = $this->init_module('Utils/RecordBrowser','repozytorium','repozytorium_body');
$who_am_i = CRM_ContactsCommon::get_my_record();
$rb->set_defaults(array(
'lp' => 'NOWY'
,'data_otrzymania' =>time()
,'do_kogo_firma' =>$who_am_i['company_name']
,'do_kogo_osoba' =>$who_am_i['last_name'].' '.$who_am_i['first_name']
,'status' =>20
,'priorytet' =>50
));
$crits = array();
$cols = array();
$order = array();
$this->display_module($rb,array('add', null, array($crits,$cols,$order),true),'view_entry');
return true;
}
Problem jest w momencie:
Będąc w ekranie głównym (czyli w ekranie wygenerowanym przez funkcję wszystkie_zlecenia()) klikam na mój klawisz 'Nowy dok. przych.'.
Wywoływana jest prawidłowo funkcja nowy_dokument_przychodzacy() - czyli record browser w trybie wpisania nowego rekordu.
Mogę w niej wprowadzić wszystkie dane i albo zapisać zmiany, albo zrobić anuluj.
Jeśli zobię anuluj - niestety (i to jest problem) nie ma powrotu do funkcji wywołującej czyli do funkcji wszystkie_zlecenia() a od razu do dasboardu.
Podobnie jak zapiszę zmiany, przechodzi w tryb view pozwalając wpisać notki, ale cofnięcie się z tego znowu wywala mnie do dashboardu a nie do funkcji wywołującej.
Jak mogę wymusić powrót do funkcji wywołującej a nie do dashboardu?
2 pytanie:
Czy będą w trybie add lub edit w RB mogę sterować blokowaniem pól do wypełniania (mogą być widoczne, lub nie, ale nie mogą pozwalać na edycję choć user ma do tego prawo)?
Np. chcę, aby generalnie user mógł edytować pole 'do_kogo'. Ale w jednej formatce chciałbym, aby nie mógł tego zrobić (ta formatka ma pole 'do_kogo' zawsze stałe, więc nie chcę dać mu możliwości zrobienia błędu - chcę je zablokować dla tego jednego ekranu). I nie chce mi się pisać osobnej formatki, tylko chcę wywołać to tak jak powyżej w funkcji nowy_dokument_przychodzacy().
Da sie jakoś pokierować $rb, aby na moment wywołania tej konkretnej fomratki tylko dla tej sesji zablokował userowi mozliwość edycji pola 'do_kogo' (albo nie wyświetlił go)?
Pozdrawiam
Praski.