Example #1
0
 /**
  * Add related object selection
  */
 public function addSubAction()
 {
     $this->_checkCanEdit();
     $this->_checkLoaded();
     $baseField = Request::post('basefield', 'string', false);
     $subObject = Request::post('subobject', 'string', false);
     $subField = Request::post('subfield', 'string', false);
     $join = Request::post('join', 'integer', 1);
     if (!$baseField || !$subObject || !$subField || !$join) {
         Response::jsonError($this->_lang->WRONG_REQUEST);
     }
     $query = $this->_session->get('query');
     $basePart = $query->getRootPart();
     $childPart = $query->findChild($basePart->getId(), $baseField);
     if ($childPart !== false) {
         $query->removePart($childPart->getId());
     }
     $newPart = new Db_Query_Part();
     $newPart->setObject($subObject);
     $newPart->setParentField($baseField);
     $newPart->setChildField($subField);
     $newPart->setJoinType($join);
     if (!$query->addPart($newPart, $basePart->getId())) {
         Response::jsonArray(array('success' => false, 'msg' => $this->_lang->CANT_EXEC));
     }
     $basePart->setFieldCfg($baseField, 'selectSub', true);
     $basePart->setFieldCfg($baseField, 'isLink', true);
     $this->_session->set('query', $query);
     Response::jsonSuccess();
 }