/** * Function returns all the blocks for the module * @return <Array of Vtiger_Block_Model> - list of block models */ public function getBlocks() { if (empty($this->blocks)) { $blocksList = array(); $moduleBlocks = Settings_LayoutEditor_Block_Model::getAllForModule($this); foreach ($moduleBlocks as $block) { if (!$block->get('label')) { continue; } if ($this->getName() == 'HelpDesk' && $block->get('label') == 'LBL_COMMENTS') { continue; } if ($block->get('label') != 'LBL_ITEM_DETAILS') { $blocksList[$block->get('label')] = $block; } } //To handle special case for invite users block if ($this->getName() == 'Events') { $blockModel = new Settings_LayoutEditor_Block_Model(); $blockModel->set('id', 'EVENT_INVITE_USER_BLOCK_ID'); $blockModel->set('label', 'LBL_INVITE_USER_BLOCK'); $blockModel->set('module', $this); $blocksList['LBL_INVITE_USER_BLOCK'] = $blockModel; } $this->blocks = $blocksList; } return $this->blocks; }
public function move(Vtiger_Request $request) { $updatedFieldsList = $request->get('updatedFields'); //This will update the fields sequence for the updated blocks Settings_LayoutEditor_Block_Model::updateFieldSequenceNumber($updatedFieldsList); $response = new Vtiger_Response(); $response->setResult(array('success' => true)); $response->emit(); }
public function save(Vtiger_Request $request) { $blockId = $request->get('blockid'); $sourceModule = $request->get('sourceModule'); $modueInstance = Vtiger_Module_Model::getInstance($sourceModule); if (!empty($blockId)) { $blockInstance = Settings_LayoutEditor_Block_Model::getInstance($blockId); $blockInstance->set('display_status', $request->get('display_status')); $isDuplicate = false; } else { $blockInstance = new Settings_LayoutEditor_Block_Model(); $blockInstance->set('label', $request->get('label')); $blockInstance->set('iscustom', '1'); //Indicates block id after which you need to add the new block $beforeBlockId = $request->get('beforeBlockId'); if (!empty($beforeBlockId)) { $beforeBlockInstance = Vtiger_Block_Model::getInstance($beforeBlockId); $beforeBlockSequence = $beforeBlockInstance->get('sequence'); $newBlockSequence = $beforeBlockSequence + 1; //To give sequence one more than prev block $blockInstance->set('sequence', $newBlockSequence); //push all other block down so that we can keep new block there Vtiger_Block_Model::pushDown($beforeBlockSequence, $modueInstance->getId()); } $isDuplicate = Vtiger_Block_Model::checkDuplicate($request->get('label'), $modueInstance->getId()); } $response = new Vtiger_Response(); if (!$isDuplicate) { try { $id = $blockInstance->save($modueInstance); $responseInfo = array('id' => $id, 'label' => $blockInstance->get('label'), 'isCustom' => $blockInstance->isCustomized(), 'beforeBlockId' => $beforeBlockId, 'isAddCustomFieldEnabled' => $blockInstance->isAddCustomFieldEnabled()); if (empty($blockId)) { //if mode is create add all blocks sequence so that client will place the new block correctly $responseInfo['sequenceList'] = Vtiger_Block_Model::getAllBlockSequenceList($modueInstance->getId()); } $response->setResult($responseInfo); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } } else { $response->setError('502', vtranslate('LBL_DUPLICATES_EXIST', $request->getModule(false))); } $response->emit(); }
public function move() { global $log, $adb; $log->debug("Entering YetiForceUpdate::move() method ..."); $move = []; $moveOtherFields = []; $assignedTabs = $this->getSmowneridTab(); $fields = $this->getBlocks(); foreach ($assignedTabs as $assignedTab) { foreach ($fields['showners'] as $showner) { if ($assignedTab['tabid'] == $showner['tabid']) { $move[] = ['fieldid' => $showner['fieldid'], 'sequence' => (int) $assignedTab['sequence'] + 1, 'block' => $assignedTab['block']]; } } if ($fields['others']) { $maxSeq = $this->getNextSequence($assignedTab['tabid'], $assignedTab['block']); foreach ($fields['others'] as $field) { if ($assignedTab['tabid'] == $field['tabid']) { $moveOtherFields[] = ['fieldid' => $field['fieldid'], 'sequence' => ++$maxSeq, 'block' => $assignedTab['block']]; } } } } //This will update the fields sequence for the updated blocks if ($move) { Settings_LayoutEditor_Block_Model::updateFieldSequenceNumber($move); } if ($moveOtherFields) { Settings_LayoutEditor_Block_Model::updateFieldSequenceNumber($moveOtherFields); } $this->deleteBlocks($fields['blocks']); $log->debug("Exiting YetiForceUpdate::move() method ..."); }