Ejemplo n.º 1
0
 /**
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addEventSubscriber(new CleanFormSubscriber(array('description' => 'html')));
     $builder->addEventSubscriber(new FormExitSubscriber('asset.asset', $options));
     $builder->add('storageLocation', 'button_group', array('label' => 'mautic.asset.asset.form.storageLocation', 'choice_list' => new ChoiceList(array('local', 'remote'), array('mautic.asset.asset.form.storageLocation.local', 'mautic.asset.asset.form.storageLocation.remote')), 'attr' => array('onchange' => 'Mautic.changeAssetStorageLocation();')));
     $maxUploadSize = $this->assetModel->getMaxUploadSize('', true);
     $builder->add('tempName', 'hidden', array('label' => $this->translator->trans('mautic.asset.asset.form.file.upload', array('%max%' => $maxUploadSize)), 'label_attr' => array('class' => 'control-label'), 'required' => false));
     $builder->add('originalFileName', 'hidden', array('required' => false));
     $builder->add('remotePath', 'text', array('label' => 'mautic.asset.asset.form.remotePath', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control'), 'required' => false));
     $builder->add('title', 'text', array('label' => 'mautic.core.title', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control')));
     $builder->add('alias', 'text', array('label' => 'mautic.core.alias', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control', 'tooltip' => 'mautic.asset.asset.help.alias'), 'required' => false));
     $builder->add('description', 'textarea', array('label' => 'mautic.core.description', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control editor'), 'required' => false));
     $builder->add('category', 'category', array('bundle' => 'asset'));
     $builder->add('language', 'locale', array('label' => 'mautic.core.language', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control', 'tooltip' => 'mautic.asset.asset.form.language.help'), 'required' => false));
     $builder->add('isPublished', 'yesno_button_group');
     $builder->add('publishUp', 'datetime', array('widget' => 'single_text', 'label' => 'mautic.core.form.publishup', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control', 'data-toggle' => 'datetime'), 'format' => 'yyyy-MM-dd HH:mm', 'required' => false));
     $builder->add('publishDown', 'datetime', array('widget' => 'single_text', 'label' => 'mautic.core.form.publishdown', 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control', 'data-toggle' => 'datetime'), 'format' => 'yyyy-MM-dd HH:mm', 'required' => false));
     $builder->add('tempId', 'hidden', array('required' => false));
     $builder->add('buttons', 'form_buttons', array());
     if (!empty($options["action"])) {
         $builder->setAction($options["action"]);
     }
 }
Ejemplo n.º 2
0
 /**
  * Validates file before upload
  *
  * @param ValidationEvent $event
  */
 public function onUploadValidation(ValidationEvent $event)
 {
     $file = $event->getFile();
     $extensions = $this->coreParametersHelper->getParameter('allowed_extensions');
     $maxSize = $this->assetModel->getMaxUploadSize('B');
     if ($file !== null) {
         if ($file->getSize() > $maxSize) {
             $message = $this->translator->trans('mautic.asset.asset.error.file.size', ['%fileSize%' => round($file->getSize() / 1048576, 2), '%maxSize%' => round($maxSize / 1048576, 2)], 'validators');
             throw new ValidationException($message);
         }
         if (!in_array(strtolower($file->getExtension()), array_map('strtolower', $extensions))) {
             $message = $this->translator->trans('mautic.asset.asset.error.file.extension', ['%fileExtension%' => $file->getExtension(), '%extensions%' => implode(', ', $extensions)], 'validators');
             throw new ValidationException($message);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @param MauticEvents\CommandListEvent $event
  */
 public function onBuildCommandList(MauticEvents\CommandListEvent $event)
 {
     if ($this->security->isGranted(['asset:assets:viewown', 'asset:assets:viewother'], 'MATCH_ONE')) {
         $event->addCommands('mautic.asset.assets', $this->assetModel->getCommandList());
     }
 }
Ejemplo n.º 4
0
 /**
  * @param LeadMergeEvent $event
  */
 public function onLeadMerge(LeadMergeEvent $event)
 {
     $this->assetModel->getDownloadRepository()->updateLead($event->getLoser()->getId(), $event->getVictor()->getId());
 }
Ejemplo n.º 5
0
 /**
  * Set a widget detail when needed.
  *
  * @param WidgetDetailEvent $event
  */
 public function onWidgetDetailGenerate(WidgetDetailEvent $event)
 {
     $this->checkPermissions($event);
     $canViewOthers = $event->hasPermission('asset:assets:viewother');
     if ($event->getType() == 'asset.downloads.in.time') {
         $widget = $event->getWidget();
         $params = $widget->getParams();
         if (!$event->isCached()) {
             $event->setTemplateData(['chartType' => 'line', 'chartHeight' => $widget->getHeight() - 80, 'chartData' => $this->assetModel->getDownloadsLineChartData($params['timeUnit'], $params['dateFrom'], $params['dateTo'], $params['dateFormat'], $canViewOthers)]);
         }
         $event->setTemplate('MauticCoreBundle:Helper:chart.html.php');
         $event->stopPropagation();
     }
     if ($event->getType() == 'unique.vs.repetitive.downloads') {
         if (!$event->isCached()) {
             $params = $event->getWidget()->getParams();
             $model = $this->factory->getModel('asset');
             $event->setTemplateData(['chartType' => 'pie', 'chartHeight' => $event->getWidget()->getHeight() - 80, 'chartData' => $this->assetModel->getUniqueVsRepetitivePieChartData($params['dateFrom'], $params['dateTo'], $canViewOthers)]);
         }
         $event->setTemplate('MauticCoreBundle:Helper:chart.html.php');
         $event->stopPropagation();
     }
     if ($event->getType() == 'popular.assets') {
         if (!$event->isCached()) {
             $params = $event->getWidget()->getParams();
             if (empty($params['limit'])) {
                 // Count the pages limit from the widget height
                 $limit = round(($event->getWidget()->getHeight() - 80) / 35 - 1);
             } else {
                 $limit = $params['limit'];
             }
             $assets = $this->assetModel->getPopularAssets($limit, $params['dateFrom'], $params['dateTo'], $canViewOthers);
             $items = [];
             // Build table rows with links
             if ($assets) {
                 foreach ($assets as &$asset) {
                     $assetUrl = $this->router->generate('mautic_asset_action', ['objectAction' => 'view', 'objectId' => $asset['id']]);
                     $row = [['value' => $asset['title'], 'type' => 'link', 'link' => $assetUrl], ['value' => $asset['download_count']]];
                     $items[] = $row;
                 }
             }
             $event->setTemplateData(['headItems' => [$event->getTranslator()->trans('mautic.dashboard.label.title'), $event->getTranslator()->trans('mautic.dashboard.label.downloads')], 'bodyItems' => $items, 'raw' => $assets]);
         }
         $event->setTemplate('MauticCoreBundle:Helper:table.html.php');
         $event->stopPropagation();
     }
     if ($event->getType() == 'created.assets') {
         if (!$event->isCached()) {
             $params = $event->getWidget()->getParams();
             if (empty($params['limit'])) {
                 // Count the assets limit from the widget height
                 $limit = round(($event->getWidget()->getHeight() - 80) / 35 - 1);
             } else {
                 $limit = $params['limit'];
             }
             $assets = $this->assetModel->getAssetList($limit, $params['dateFrom'], $params['dateTo'], [], ['canViewOthers' => $canViewOthers]);
             $items = [];
             // Build table rows with links
             if ($assets) {
                 foreach ($assets as &$asset) {
                     $assetUrl = $this->router->generate('mautic_asset_action', ['objectAction' => 'view', 'objectId' => $asset['id']]);
                     $row = [['value' => $asset['name'], 'type' => 'link', 'link' => $assetUrl]];
                     $items[] = $row;
                 }
             }
             $event->setTemplateData(['headItems' => [$event->getTranslator()->trans('mautic.dashboard.label.title')], 'bodyItems' => $items, 'raw' => $assets]);
         }
         $event->setTemplate('MauticCoreBundle:Helper:table.html.php');
         $event->stopPropagation();
     }
 }