protected function afterSubmitCallback(\DataContainer $dc)
 {
     // remove previously created locks
     if (in_array('entity_lock', \ModuleLoader::getActive()) && $this->addEntityLock) {
         \HeimrichHannot\EntityLock\EntityLockModel::deleteLocks($this->formHybridDataContainer, $this->intId);
     }
 }
 public static function deleteLocks($strTable, $intEntity)
 {
     if (($objLock = EntityLockModel::findLock($strTable, $intEntity)) !== null) {
         while ($objLock->next()) {
             $objLock->delete();
         }
     }
 }
 public function setParentEntityTitleField()
 {
     $objLock = \HeimrichHannot\EntityLock\EntityLockModel::findByPk(\Input::get('id'));
     $arrDca =& $GLOBALS['TL_DCA']['tl_entity_lock'];
     if ($objLock->parentTable) {
         $arrEntityLockEntityTitleFields = \Config::get('entityLockEntityTitleFields');
         if (!isset($arrEntityLockEntityTitleFields[$objLock->parentTable])) {
             $arrEntityLockEntityTitleFields[$objLock->parentTable] = array('fields' => array('id'), 'format' => 'ID:%s', 'queryField' => 'id');
         }
         $arrDca['fields']['pid']['eval']['remote'] = array_merge($arrDca['fields']['pid']['eval']['remote'], $arrEntityLockEntityTitleFields[$objLock->parentTable]);
     }
 }
 public static function generateUnlockForm($strTable, $objEntity, $objLock, $objModule, $arrTokens = array())
 {
     $objTemplate = new \FrontendTemplate('entity_lock_unlock_form');
     $objTemplate->action = Url::addQueryString('act=unlock', \Environment::get('uri'));
     $objTemplate->formId = 'entity_lock_unlock_' . $objModule->id;
     $objTemplate->lock = $objLock->id;
     // delete if preconditions are given - allow only for the current lock
     $blnIsSubmitted = \Input::post('FORM_SUBMIT') == $objTemplate->formId;
     if ($blnIsSubmitted && \Input::get('act') == EntityLock::ACT_UNLOCK && $objLock->id == \Input::post('lock')) {
         $objFormerEditor = EntityLockModel::getEditor($objLock->id);
         if ($objLock->delete() && $objModule->lockDeletionNotification) {
             static::sendLockDeletionNotification($objModule->lockDeletionNotification, $strTable, $objEntity, $objFormerEditor, $arrTokens);
         }
         \Controller::redirect(Url::removeQueryString(array('act')), $objTemplate->action);
     }
     return $objTemplate->parse();
 }
 protected function deleteItem($intId)
 {
     if (($objItem = General::getModelInstance($this->formHybridDataContainer, $intId)) !== null) {
         $objDc = new DC_Hybrid($this->formHybridDataContainer, $objItem, $objItem->id);
         $this->runBeforeDelete($objItem, $objDc);
         // remove previously created locks
         if (in_array('entity_lock', \ModuleLoader::getActive()) && $this->addEntityLock) {
             \HeimrichHannot\EntityLock\EntityLockModel::deleteLocks($this->formHybridDataContainer, $intId);
         }
         // call ondelete callbacks
         if (is_array($GLOBALS['TL_DCA'][$this->formHybridDataContainer]['config']['ondelete_callback'])) {
             foreach ($GLOBALS['TL_DCA'][$this->formHybridDataContainer]['config']['ondelete_callback'] as $callback) {
                 $this->import($callback[0]);
                 $this->{$callback}[0]->{$callback}[1]($objDc);
             }
         }
         $blnDeleted = $objItem->delete() > 0;
         if ($blnDeleted && $this->deleteNotification) {
             if (($objMessage = MessageModel::findPublishedById($this->formHybridSubmissionNotification)) !== null) {
                 $arrSubmissionData = SubmissionModel::prepareData($objItem, $this->formHybridDataContainer, $GLOBALS['TL_DCA'][$this->formHybridDataContainer], $objDc, $this->formHybridEditable);
                 $arrTokens = SubmissionModel::tokenizeData($arrSubmissionData);
                 if ($this->sendDeleteNotification($objMessage, $objItem, $arrSubmissionData, $arrTokens)) {
                     $objMessage->send($arrTokens, $GLOBALS['TL_LANGUAGE']);
                 }
             }
         }
         $this->runAfterDelete($blnDeleted, $objItem, $objDc);
         if ($this->jumpToAfterDelete && ($strUrl = Url::getJumpToPageUrl($this->jumpToAfterDelete))) {
             \Controller::redirect($strUrl);
         }
         return $blnDeleted;
     }
     return false;
 }