_popupMeta = $popupMeta;
require_once('modules/' . $currentModule . '/' . $this->_popupMeta['moduleMain'] . '.php');
if(isset($this->_popupMeta['create']['formBase']) && isset($_REQUEST['create']) && $_REQUEST['create'] == 'true') { // include create form
require_once('modules/' . $currentModule . '/' . $this->_popupMeta['create']['formBase']);
$this->_create = true;
}
}
/*
*
*/
function _get_where_clause()
{
$where = '';
$whereClauses = array();
if(isset($_REQUEST['query']))
{
foreach(array_keys($this->_popupMeta['whereClauses']) as $key) {
append_where_clause($whereClauses, $key, $this->_popupMeta['whereClauses'][$key]);
}
$where = generate_where_statement($whereClauses);
}
if(!empty($this->_popupMeta['whereStatement'])){
if(!empty($where))$where .= ' AND ';
$where .= $this->_popupMeta['whereStatement'];
}
return $where;
}
/**
*
*/
function process_page()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $app_list_strings, $sugar_version, $sugar_config;
$output_html = "";
$where = '';
if(empty($_REQUEST[$currentModule . '_' . strtoupper($this->_popupMeta['moduleMain']) . '_offset'])) {
$_POST[$currentModule . '_' . strtoupper($this->_popupMeta['moduleMain']) . '_offset'] = '';
}
if(empty($_REQUEST['saved_associated_data'])) {
$_POST['saved_associated_data'] = '';
}
$where = $this->_get_where_clause();
// CREATE STUFF
if($this->_create) {
$formBase = new $this->_popupMeta['create']['formBaseClass']();
if(isset($_REQUEST['doAction']) && $_REQUEST['doAction'] == 'save')
{
$formBase->handleSave('', false, true);
}
$lbl_save_button_title = $app_strings['LBL_SAVE_BUTTON_TITLE'];
$lbl_save_button_key = $app_strings['LBL_SAVE_BUTTON_KEY'];
$lbl_save_button_label = $app_strings['LBL_SAVE_BUTTON_LABEL'];
// TODO: cleanup the construction of $addform
$prefix = empty($this->_popupMeta['create']['getFormBodyParams'][0]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][0];
$mod = empty($this->_popupMeta['create']['getFormBodyParams'][1]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][1];
$formBody = empty($this->_popupMeta['create']['getFormBodyParams'][2]) ? '' : $this->_popupMeta['create']['getFormBodyParams'][2];
$getFormMethod = (empty($this->_popupMeta['create']['getFormMethod']) ? 'getFormBody' : $this->_popupMeta['create']['getFormMethod']);
$formbody = $formBase->$getFormMethod($prefix, $mod, $formBody);
$addform = '
'
. str_replace(' ', ' | ', $formbody)
. ' |
'
. '';
$formSave = <<
EOQ;
// if metadata contains custom inputs for the quickcreate
if(!empty($this->_popupMeta['customInput']) && is_array($this->_popupMeta['customInput'])) {
foreach($this->_popupMeta['customInput'] as $key => $value)
$formSave .= '\n';
}
$createButton = <<
EOQ;
$addformheader = get_form_header($this->_popupMeta['create']['createButton'], $formSave, false);
}
// END CREATE STUFF
// search request inputs
$searchInputs = array();
foreach($this->_popupMeta['searchInputs'] as $input)
$searchInputs[$input] = empty($_REQUEST[$input]) ? '' : $_REQUEST[$input];
$request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) && empty($this->_hide_clear_button) ? false : true;
$button = '';
if(isset($_REQUEST['mass'])) {
foreach(array_unique($_REQUEST['mass']) as $record) {
$button .= "\n";
}
}
//START:FOR MULTI-SELECT
$multi_select = false;
if (!empty($_REQUEST['mode']) && strtoupper($_REQUEST['mode']) == 'MULTISELECT') {
$multi_select = true;
$button .= "";
$button .= "\n";
}
//END:FOR MULTI-SELECT
if(!$hide_clear_button)
{
$button .= "\n";
}
$button .= "\n";
if(isset($this->_popupMeta['templateForm'])) {
$form = new XTemplate($this->_popupMeta['templateForm']);
}
else {
$form = new XTemplate('modules/' . $currentModule . '/Popup_picker.html');
}
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
$form->assign('request_data', $request_data);
// CREATE STUFF
if($this->_create) {
$form->assign('CREATEBUTTON', $createButton);
$form->assign('ADDFORMHEADER', $addformheader);
$form->assign('ADDFORM', $addform);
}
// CREATE STUFF
if(isset($this->_popupMeta['className'])) $seed_bean = new $this->_popupMeta['className']();
else $seed_bean = new $this->_popupMeta['moduleMain']();
// assign search inputs to xtemplates
foreach(array_keys($searchInputs) as $key) {
if(!empty($_REQUEST[$key]) && (isset($seed_bean->field_name_map[$key]['type']) && $seed_bean->field_name_map[$key]['type'] == 'bool')) {
$form->assign(strtoupper($key), ' checked ');
} else {
$form->assign(strtoupper($key), $searchInputs[$key]);
}
}
if($this->_create) $form->assign('CREATE', 'true');
else $form->assign('CREATE', 'false');
// fill any doms
if(isset($this->_popupMeta['selectDoms']))
foreach($this->_popupMeta['selectDoms'] as $key => $value) {
$form->assign($key, get_select_options_with_id($app_list_strings[$value['dom']], $value['searchInput']));
}
$form->assign('MULTI_SELECT', !empty($_REQUEST['mode']) ? strtoupper($_REQUEST['mode']) : '');
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
$form->parse('main.SearchHeader');
$output_html .= $form->text('main.SearchHeader');
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
$ListView = new ListView();
$ListView->show_select_menu = false;
$ListView->show_delete_button = false;
$ListView->show_export_button = false;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->multi_select_popup = $multi_select;
$ListView->xTemplate->assign('TAG_TYPE', 'A');
if(isset($this->_popupMeta['listTitle'])) {
$ListView->setHeaderTitle($this->_popupMeta['listTitle']);
}
else {
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
}
$ListView->setHeaderText($button);
$ListView->setQuery($where, '', $this->_popupMeta['orderBy'], $this->_popupMeta['varName']);
$ListView->setModStrings($mod_strings);
ob_start();
$ListView->processListView($seed_bean, 'main', $this->_popupMeta['varName']);
$output_html .= ob_get_contents();
ob_end_clean();
$json = getJSONobj();
// decode then encode to escape "'s
$output_html .= "
';
$output_html .= insert_popup_footer();
return $output_html;
}
} // end of class Popup_Picker
?>