コード例 #1
0
 public function indexAction()
 {
     $data = array();
     $source = new Entity('OjsJournalBundle:Publisher', 'application');
     $tableAlias = $source->getTableAlias();
     $source->manipulateQuery(function (QueryBuilder $query) use($tableAlias) {
         $query->andWhere($tableAlias . ".status = :status")->setParameter('status', 0);
         return $query;
     });
     $grid = $this->get('grid')->setSource($source);
     $gridAction = $this->get('grid_action');
     $grid->getColumn('status')->manipulateRenderCell(function ($value) {
         return $this->get('translator')->trans(CommonParams::publisherStatus($value));
     });
     $rowAction = array();
     $saveAction = new RowAction('<i class="fa fa-save"></i>', 'ojs_admin_application_publisher_save');
     $saveAction->setRouteParameters(['id']);
     $saveAction->setAttributes(['class' => 'btn btn-primary btn-xs', 'title' => $this->get('translator')->trans('institute.merge_as_new_institute')]);
     $rowAction[] = $saveAction;
     $rowAction[] = $gridAction->showAction('ojs_admin_application_publisher_show', 'id');
     $rowAction[] = $gridAction->editAction('ojs_admin_application_publisher_edit', 'id');
     $rowAction[] = $gridAction->deleteAction('ojs_admin_application_publisher_delete', 'id');
     $actionColumn = new ActionsColumn("actions", 'actions');
     $actionColumn->setRowActions($rowAction);
     $grid->addColumn($actionColumn);
     $data['grid'] = $grid;
     return $grid->getGridResponse('OjsAdminBundle:AdminApplication:publisher.html.twig', $data);
 }
コード例 #2
0
ファイル: ArticleType.php プロジェクト: hasantayyar/ojs
 /**
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     /** @var Journal $journal */
     $journal = $options['journal'];
     $builder->add('translations', 'a2lix_translations', ['fields' => ['title' => ['field_type' => 'text'], 'subtitle' => [], 'subjects' => [], 'keywords' => ['label' => 'keywords', 'field_type' => 'tags'], 'abstract' => ['required' => false, 'attr' => array('class' => ' form-control wysihtml5'), 'field_type' => 'textarea']]])->add('titleTransliterated')->add('issue', 'entity', array('label' => 'issue', 'class' => 'Ojs\\JournalBundle\\Entity\\Issue', 'required' => false, 'attr' => array('class' => ' form-control select2-element'), 'query_builder' => function (EntityRepository $er) use($journal) {
         $qb = $er->createQueryBuilder('i');
         $qb->where('i.journal = :journal')->setParameter('journal', $journal);
         return $qb;
     }))->add('status', 'choice', array('label' => 'status', 'attr' => array('class' => ' form-control'), 'choices' => CommonParams::statusText()))->add('doi', 'text', array('label' => 'doi', 'required' => false, 'attr' => array('class' => ' form-control')))->add('otherId', 'text', array('label' => 'otherid', 'required' => false, 'attr' => array('class' => ' form-control')))->add('isAnonymous', 'radio', array('label' => 'isAnonymous', 'required' => false))->add('pubdate', 'collot_datetime', array('label' => 'pubdate', 'date_format' => 'dd-MM-yyyy', 'pickerOptions' => ['format' => 'dd-mm-yyyy', 'startView' => 'month', 'minView' => 'month', 'todayBtn' => 'true', 'todayHighlight' => 'true', 'autoclose' => 'true']))->add('pubdateSeason', 'text', array('label' => 'Pubdateseason', 'required' => false, 'attr' => array('class' => ' form-control')))->add('part', 'text', array('label' => 'part', 'required' => false, 'attr' => array('class' => ' form-control')))->add('firstPage', 'integer', array('label' => 'first_page', 'required' => false, 'attr' => array('class' => ' form-control')))->add('lastPage', 'integer', array('label' => 'last_page', 'required' => false, 'attr' => array('class' => ' form-control')))->add('uri', 'text', array('label' => 'url', 'required' => false, 'attr' => array('class' => ' form-control')))->add('abstractTransliterated', 'textarea', array('label' => 'abstractTransliterated', 'required' => false, 'attr' => array('class' => ' form-control')))->add('articleType', 'entity', array('label' => 'article.type', 'class' => 'Ojs\\JournalBundle\\Entity\\ArticleTypes', 'required' => false))->add('orderNum', 'integer', array('label' => 'order', 'required' => false))->add('submissionDate', 'collot_datetime', array('label' => 'submissionDate', 'date_format' => 'dd-MM-yyyy', 'pickerOptions' => ['format' => 'dd-mm-yyyy', 'startView' => 'month', 'minView' => 'month', 'todayBtn' => 'true', 'todayHighlight' => 'true', 'autoclose' => 'true']))->add('header', 'jb_crop_image_ajax', array('endpoint' => 'article', 'label' => 'Header Image', 'img_width' => 960, 'img_height' => 200, 'crop_options' => array('aspect-ratio' => 960 / 200, 'maxSize' => "[960, 200]")));
 }
コード例 #3
0
ファイル: JournalType.php プロジェクト: hasantayyar/ojs
 /**
  * @param FormBuilderInterface $builder
  * @param array                $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $journalId = $options['data']->getId() ? $options['data']->getId() : null;
     $builder->add('translations', 'a2lix_translations')->add('titleAbbr', 'text', ['label' => 'titleabbr', 'required' => false])->add('titleTransliterated', 'text', ['label' => 'titleTransliterated', 'required' => false])->add('publisher', null, ['label' => 'publisher', 'attr' => ['class' => 'select2-element validate[required]']])->add('mandatoryLang', 'entity', ['label' => 'Mandatory Lang', 'class' => 'Ojs\\JournalBundle\\Entity\\Lang', 'attr' => ['class' => 'select2-element ']])->add('languages', 'entity', array('label' => 'Supported Languages', 'class' => 'Ojs\\JournalBundle\\Entity\\Lang', 'property' => 'name', 'multiple' => true, 'expanded' => false, 'attr' => ['class' => 'select2-element validate[required]']))->add('periods', 'entity', array('label' => 'Periods', 'class' => 'Ojs\\JournalBundle\\Entity\\Period', 'property' => 'period', 'multiple' => true, 'expanded' => false, 'attr' => ['class' => 'select2-element validate[required]']))->add('subjects', 'entity', ['label' => 'subjects', 'class' => 'Ojs\\JournalBundle\\Entity\\Subject', 'property' => 'subject', 'multiple' => true, 'attr' => ['class' => 'select2-element']]);
     $builder->add('path', 'hidden', ['label' => 'journal.path', 'required' => false])->add('domain', 'hidden', ['label' => 'journal.domain', 'required' => false])->add('issn', 'text', ['label' => 'ISSN', 'required' => false, 'attr' => ['class' => 'maskissn']])->add('eissn', 'text', array('label' => 'eISSN', 'required' => false, 'attr' => array('class' => 'maskissn')))->add('founded', 'collot_datetime', array('label' => 'journal.founded', 'date_format' => 'yyyy', 'widget' => 'single_text', 'pickerOptions' => ['format' => 'yyyy', 'startView' => 'decade', 'minView' => 'decade', 'todayBtn' => 'true', 'todayHighlight' => 'true', 'autoclose' => 'true']))->add('domain')->add('googleAnalyticsId', 'text', ['label' => 'journal.google.analytics.id', 'required' => false])->add('url', 'text', ['label' => 'url', 'required' => false])->add('country', 'entity', ['label' => 'country', 'class' => 'Ojs\\LocationBundle\\Entity\\Country', 'attr' => ['class' => 'select2-element ']])->add('footer_text', 'textarea', ['label' => 'footer_text', 'required' => false, 'attr' => ['class' => 'wysihtml5']])->add('published', 'checkbox', ['label' => 'published', 'required' => false])->add('printed', 'checkbox', ['label' => 'printed', 'required' => false])->add('status', 'choice', ['label' => 'status', 'choices' => CommonParams::getStatusTexts()])->add('slug', 'text', ['label' => 'journal.slug', 'required' => false])->add('tags', 'tags')->add('theme', 'entity', array('label' => 'theme', 'class' => 'Ojs\\JournalBundle\\Entity\\JournalTheme', 'property' => 'title', 'multiple' => false, 'expanded' => false, 'required' => false, 'query_builder' => function (EntityRepository $er) use($journalId, $options) {
         $query = $er->createQueryBuilder('t');
         if (is_null($journalId)) {
             $query->where('t.isPublic IS NULL OR t.isPublic = TRUE');
         } else {
             $query->where('t.isPublic IS NULL OR t.isPublic = TRUE OR t.journal = :journal')->setParameter('journal', $options['data']);
         }
         return $query;
     }, 'error_bubbling' => true))->add('design', 'entity', array('label' => 'design', 'class' => 'Ojs\\JournalBundle\\Entity\\JournalDesign', 'property' => 'title', 'multiple' => false, 'expanded' => false, 'required' => false, 'query_builder' => function (EntityRepository $er) use($journalId, $options) {
         $query = $er->createQueryBuilder('t');
         if (is_null($journalId)) {
             $query->where('t.isPublic IS NULL OR t.isPublic = TRUE');
         } else {
             $query->where('t.isPublic IS NULL OR t.isPublic = TRUE OR t.journal = :journal')->setParameter('journal', $options['data']);
         }
         return $query;
     }, 'error_bubbling' => true))->add('header', 'jb_crop_image_ajax', array('endpoint' => 'journal', 'label' => 'Header Image', 'img_width' => 960, 'img_height' => 200, 'crop_options' => array('aspect-ratio' => 960 / 200, 'maxSize' => "[960, 200]")))->add('image', 'jb_crop_image_ajax', array('endpoint' => 'journal', 'label' => 'Cover Image', 'img_width' => 200, 'img_height' => 300, 'crop_options' => array('aspect-ratio' => 200 / 300, 'maxSize' => "[200, 300]")))->add('logo', 'jb_crop_image_ajax', array('endpoint' => 'journal', 'img_width' => 200, 'img_height' => 200, 'crop_options' => array('aspect-ratio' => 200 / 200, 'maxSize' => "[200, 200]")));
 }
コード例 #4
0
ファイル: OjsExtension.php プロジェクト: hasantayyar/ojs
 /**
  * Returns status text string from given status integer value
  * @param  integer $arg
  * @return string
  */
 public function statusText($arg)
 {
     $texts = CommonParams::getStatusTexts();
     return isset($texts[$arg]) ? $this->translator->trans($texts[$arg]) : null;
 }
コード例 #5
0
 /**
  * Lists all new Article submissions entities.
  *
  * @param Request $request
  * @param bool $all
  * @return RedirectResponse|Response
  */
 public function indexAction(Request $request, $all = false)
 {
     $translator = $this->get('translator');
     /** @var Journal $currentJournal */
     $currentJournal = $this->get('ojs.journal_service')->getSelectedJournal();
     if ($all && !$this->isGranted('VIEW', $currentJournal, 'articles') || !$all && !$this->isGranted('CREATE', $currentJournal, 'articles')) {
         return $this->redirect($this->generateUrl('ojs_user_index'));
     }
     $user = $this->getUser();
     $source1 = new Entity('OjsJournalBundle:Article', 'submission');
     $source2 = new Entity('OjsJournalBundle:Article', 'submission');
     $source1TableAlias = $source1->getTableAlias();
     $source2TableAlias = $source2->getTableAlias();
     $source1->manipulateQuery(function (QueryBuilder $qb) use($source1TableAlias, $user, $currentJournal, $all) {
         $qb->andWhere($source1TableAlias . '.status IN (:notDraftStatuses)')->setParameter('notDraftStatuses', array(-3, -2, 0, 1));
         if (!$all) {
             $qb->andWhere($source1TableAlias . '.submitterUser = :user')->setParameter('user', $user);
         }
         return $qb;
     });
     $source2->manipulateQuery(function (QueryBuilder $qb) use($source2TableAlias, $user, $currentJournal, $all) {
         $qb->andWhere($source2TableAlias . '.status = :status')->setParameter('status', -1);
         if (!$all) {
             $qb->andWhere($source2TableAlias . '.submitterUser = :user')->setParameter('user', $user);
         }
     });
     $gridManager = $this->get('grid.manager');
     $submissionsGrid = $gridManager->createGrid('submission');
     $drafts = $gridManager->createGrid('drafts');
     $source1->manipulateRow(function (Row $row) use($translator, $currentJournal) {
         /** @var Article $entity */
         $entity = $row->getEntity();
         $entity->setDefaultLocale($currentJournal->getMandatoryLang()->getCode());
         $statusText = CommonParams::statusText($row->getField('status'));
         if (!is_array($statusText)) {
             $row->setField('status', $translator->trans($statusText));
         } else {
             $row->setField('status', $translator->trans('status.unknown'));
         }
         $row->setField('title', $entity->getTitle());
         return $row;
     });
     $source2->manipulateRow(function (Row $row) use($translator, $request) {
         $entity = $row->getEntity();
         /** @var Article $entity */
         $entity->setDefaultLocale($request->getDefaultLocale());
         $statusText = CommonParams::statusText($row->getField('status'));
         if (!is_array($statusText)) {
             $row->setField('status', $translator->trans($statusText));
         } else {
             $row->setField('status', $translator->trans('status.unknown'));
         }
         $row->setField('title', $entity->getTitle());
         return $row;
     });
     $submissionsGrid->setSource($source1);
     $drafts->setSource($source2);
     /** @var GridAction $gridAction */
     $gridAction = $this->get('grid_action');
     /**
             $submissionsGrid->addRowAction(
                 $gridAction->showAction('ojs_journal_article_show', ['id', 'journalId' => $currentJournal->getId()])
             );
     
             $submissionsGrid->addRowAction(
                 $gridAction->editAction('ojs_journal_article_edit', ['id', 'journalId' => $currentJournal->getId()])
             );
     
             $submissionsGrid->addRowAction(
                 $gridAction->deleteAction('ojs_journal_article_delete', ['id', 'journalId' => $currentJournal->getId()])
             );
              * **/
     $rowAction = [];
     $actionColumn = new ActionsColumn("actions", 'actions');
     $rowAction[] = $gridAction->submissionResumeAction('ojs_journal_submission_edit', ['journalId' => $currentJournal->getId(), 'id']);
     $rowAction[] = $gridAction->submissionCancelAction('ojs_journal_submission_cancel', ['journalId' => $currentJournal->getId(), 'id']);
     $actionColumn->setRowActions($rowAction);
     $drafts->addColumn($actionColumn);
     $data = ['page' => 'submission', 'submissions' => $submissionsGrid, 'drafts' => $drafts, 'all' => $all];
     return $gridManager->getGridManagerResponse('OjsJournalBundle:ArticleSubmission:index.html.twig', $data);
 }
コード例 #6
0
ファイル: Article.php プロジェクト: hasantayyar/ojs
 /**
  *
  * @return string
  */
 public function getStatusColor()
 {
     return CommonParams::statusColor($this->status);
 }