/**
  * {@inheritDoc}
  */
 public function getActions()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getActions', array());
     return parent::getActions();
 }
Example #2
0
 /**
  * @param Form $entity
  * @param      $sessionActions
  */
 public function setActions(Form $entity, $sessionActions)
 {
     $order = 1;
     $existingActions = $entity->getActions();
     $savedFields = $entity->getFields();
     //match sessionId with field Id to update mapped fields
     $fieldIds = array();
     foreach ($savedFields as $id => $field) {
         $fieldIds[$field->getSessionId()] = $field->getId();
     }
     foreach ($sessionActions as $properties) {
         $isNew = !empty($properties['id']) && isset($existingActions[$properties['id']]) ? false : true;
         $action = !$isNew ? $existingActions[$properties['id']] : new Action();
         foreach ($properties as $f => $v) {
             if (in_array($f, array('id', 'order'))) {
                 continue;
             }
             $func = "set" . ucfirst($f);
             if ($f == 'properties') {
                 if (isset($v['mappedFields'])) {
                     foreach ($v['mappedFields'] as $pk => $pv) {
                         if (strpos($pv, 'new') !== false) {
                             $v['mappedFields'][$pk] = $fieldIds[$pv];
                         }
                     }
                 }
             }
             if (method_exists($action, $func)) {
                 $action->{$func}($v);
             }
         }
         $action->setForm($entity);
         $action->setOrder($order);
         $order++;
         $entity->addAction($properties['id'], $action);
     }
 }
Example #3
0
 /**
  * @param Form  $entity
  * @param array $actions
  */
 public function deleteActions(Form $entity, $actions)
 {
     if (empty($actions)) {
         return;
     }
     $existingActions = $entity->getActions()->toArray();
     $deleteActions = [];
     foreach ($actions as $actionId) {
         if (isset($existingActions[$actionId])) {
             $actionEntity = $this->em->getReference('MauticFormBundle:Action', (int) $actionId);
             $entity->removeAction($actionEntity);
             $deleteActions[] = $actionId;
         }
     }
     // Delete actions from db
     if (count($deleteActions)) {
         $this->formActionModel->deleteEntities($deleteActions);
     }
 }