Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
 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 ...");
 }