Use Ajax request for Markdown preview

This remove dependency on a Javascript library.
This commit is contained in:
Franky Van Liedekerke
2020-05-02 05:05:53 +02:00
committed by GitHub
parent 6a0b6a8672
commit 0ede384cda
10 changed files with 31 additions and 444 deletions

View File

@@ -66,8 +66,6 @@ class JsCommand extends BaseCommand
'assets/vendor/d3/d3.min.js',
'assets/vendor/c3/c3.min.js',
'assets/vendor/isMobile/isMobile.min.js',
'assets/vendor/marked/marked.min.js',
'assets/vendor/dompurify/purify.min.js',
];
protected function configure()

View File

@@ -9,6 +9,7 @@ use Kanboard\Filter\TaskStartsWithIdFilter;
use Kanboard\Filter\TaskStatusFilter;
use Kanboard\Filter\TaskTitleFilter;
use Kanboard\Model\TaskModel;
use Kanboard\Helper\TextHelper;
/**
* Task Ajax Controller
@@ -67,4 +68,21 @@ class TaskAjaxController extends BaseController
$this->response->json($filter->format($this->taskSuggestMenuFormatter));
}
}
/**
* Task edit preview
*/
public function preview()
{
$text = $this->request->getRawValue('text');
if (empty($text)) {
$this->response->json(array());
} else {
$textHelper = new TextHelper($this->container);
$preview = $textHelper->markdown($text);
$this->response->json(array($preview));
}
}
}

View File

@@ -233,6 +233,7 @@ class FormHelper extends Base
'required' => isset($attributes['required']) && $attributes['required'],
'tabindex' => isset($attributes['tabindex']) ? $attributes['tabindex'] : '-1',
'labelPreview' => t('Preview'),
'previewUrl' => $this->helper->url->to('TaskAjaxController', 'preview'),
'labelWrite' => t('Write'),
'labelTitle' => t('Title'),
'placeholder' => t('Write your text in Markdown'),