Enabled markdown in description field.

This commit is contained in:
Jan Böhmer 2019-11-10 19:43:55 +01:00
parent f5c2a7b728
commit af214831da
3 changed files with 52 additions and 1 deletions

View file

@ -23,6 +23,7 @@ import {ajaxUI} from "./ajax_ui";
import "bootbox"; import "bootbox";
import "marked"; import "marked";
import * as marked from "marked"; import * as marked from "marked";
import {parse} from "marked";
/************************************ /************************************
* *
@ -438,6 +439,7 @@ $(document).on("ajaxUI:start", function () {
parseMarkdown(); parseMarkdown();
$(document).on("ajaxUI:reload", parseMarkdown); $(document).on("ajaxUI:reload", parseMarkdown);
$(document).on("ajaxUI:dt_loaded", parseMarkdown);
}); });
$(document).on("ajaxUI:start ajaxUI:reload attachment:create", function() { $(document).on("ajaxUI:start ajaxUI:reload attachment:create", function() {

View file

@ -0,0 +1,47 @@
<?php
/**
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
*
* Copyright (C) 2019 Jan Böhmer (https://github.com/jbtronics)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
namespace App\DataTables\Column;
use App\Services\MarkdownParser;
use Omines\DataTablesBundle\Column\AbstractColumn;
class MarkdownColumn extends AbstractColumn
{
protected $markdown;
public function __construct(MarkdownParser $markdown)
{
$this->markdown = $markdown;
}
/**
* The normalize function is responsible for converting parsed and processed data to a datatables-appropriate type.
*
* @param mixed $value The single value of the column
* @return mixed
*/
public function normalize($value)
{
return $this->markdown->markForRendering($value, true);
}
}

View file

@ -23,6 +23,7 @@ namespace App\DataTables;
use App\DataTables\Column\EntityColumn; use App\DataTables\Column\EntityColumn;
use App\DataTables\Column\LocaleDateTimeColumn; use App\DataTables\Column\LocaleDateTimeColumn;
use App\DataTables\Column\MarkdownColumn;
use App\DataTables\Column\PartAttachmentsColumn; use App\DataTables\Column\PartAttachmentsColumn;
use App\DataTables\Column\TagsColumn; use App\DataTables\Column\TagsColumn;
use App\Entity\Attachments\Attachment; use App\Entity\Attachments\Attachment;
@ -37,6 +38,7 @@ use App\Services\Attachments\AttachmentURLGenerator;
use App\Services\Attachments\PartPreviewGenerator; use App\Services\Attachments\PartPreviewGenerator;
use App\Services\EntityURLGenerator; use App\Services\EntityURLGenerator;
use App\Services\FAIconGenerator; use App\Services\FAIconGenerator;
use App\Services\MarkdownParser;
use App\Services\TreeBuilder; use App\Services\TreeBuilder;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Omines\DataTablesBundle\Adapter\Doctrine\ORM\SearchCriteriaProvider; use Omines\DataTablesBundle\Adapter\Doctrine\ORM\SearchCriteriaProvider;
@ -177,7 +179,7 @@ class PartsDataTable implements DataTableTypeInterface
'label' => $this->translator->trans('part.table.id'), 'label' => $this->translator->trans('part.table.id'),
'visible' => false, 'visible' => false,
]) ])
->add('description', TextColumn::class, [ ->add('description', MarkdownColumn::class, [
'label' => $this->translator->trans('part.table.description'), 'label' => $this->translator->trans('part.table.description'),
]) ])
->add('category', EntityColumn::class, [ ->add('category', EntityColumn::class, [