mirror of
https://github.com/Karaka-Management/oms-Editor.git
synced 2026-02-14 01:08:43 +00:00
update
This commit is contained in:
parent
6f4d839a3c
commit
7b9d28d1b3
|
|
@ -4,6 +4,10 @@ import { Editor } from './Models/Editor.js';
|
||||||
|
|
||||||
Autoloader.defineNamespace('omsApp.Modules');
|
Autoloader.defineNamespace('omsApp.Modules');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @feature Create immediate text preview similar to a rich text editor or Typora
|
||||||
|
* https://github.com/Karaka-Management/oms-Editor/issues/4
|
||||||
|
*/
|
||||||
omsApp.Modules.Editor = class {
|
omsApp.Modules.Editor = class {
|
||||||
constructor(app)
|
constructor(app)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -126,8 +126,10 @@ final class ApiController extends Controller
|
||||||
/** @var \Modules\Admin\Models\Account $account */
|
/** @var \Modules\Admin\Models\Account $account */
|
||||||
$account = AccountMapper::get()->where('id', $request->header->account)->execute();
|
$account = AccountMapper::get()->where('id', $request->header->account)->execute();
|
||||||
|
|
||||||
|
$collection = null;
|
||||||
|
|
||||||
if (!empty($uploadedFiles = $request->files)) {
|
if (!empty($uploadedFiles = $request->files)) {
|
||||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
$uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
$uploadedFiles,
|
$uploadedFiles,
|
||||||
|
|
@ -136,20 +138,17 @@ final class ApiController extends Controller
|
||||||
$path,
|
$path,
|
||||||
);
|
);
|
||||||
|
|
||||||
$collection = null;
|
|
||||||
foreach ($uploaded as $media) {
|
foreach ($uploaded as $media) {
|
||||||
$accountPath = '/Accounts/' . $account->id . ' ' . $account->login
|
$accountPath = '/Accounts/' . $account->id . ' ' . $account->login
|
||||||
. '/Editor/'
|
. '/Editor/'
|
||||||
. $doc->createdAt->format('Y/m')
|
. $doc->createdAt->format('Y/m')
|
||||||
. '/' . $doc->id;
|
. '/' . $doc->id;
|
||||||
|
|
||||||
if ($collection === null) {
|
$collection ??= $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
$accountPath,
|
||||||
$accountPath,
|
$request->header->account,
|
||||||
$request->header->account,
|
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/Editor/' . $doc->createdAt->format('Y/m') . '/' . $doc->id
|
||||||
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/Editor/' . $doc->createdAt->format('Y/m') . '/' . $doc->id
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->createModelRelation(
|
$this->createModelRelation(
|
||||||
$request->header->account,
|
$request->header->account,
|
||||||
|
|
@ -181,46 +180,42 @@ final class ApiController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($mediaFiles = $request->getDataJson('media'))) {
|
$mediaFiles = $request->getDataJson('media');
|
||||||
$collection = null;
|
foreach ($mediaFiles as $media) {
|
||||||
foreach ($mediaFiles as $media) {
|
$collection ??= $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||||
if ($collection === null) {
|
$path,
|
||||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
$request->header->account,
|
||||||
$path,
|
__DIR__ . '/../../../Modules/Media/Files' . $path
|
||||||
$request->header->account,
|
);
|
||||||
__DIR__ . '/../../../Modules/Media/Files' . $path
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->createModelRelation(
|
$this->createModelRelation(
|
||||||
$request->header->account,
|
$request->header->account,
|
||||||
$doc->id,
|
$doc->id,
|
||||||
(int) $media,
|
(int) $media,
|
||||||
EditorDocMapper::class,
|
EditorDocMapper::class,
|
||||||
'files',
|
'files',
|
||||||
'',
|
'',
|
||||||
$request->getOrigin()
|
$request->getOrigin()
|
||||||
);
|
);
|
||||||
|
|
||||||
$refMedia = MediaMapper::get()->where('id', $media)->execute();
|
$refMedia = MediaMapper::get()->where('id', $media)->execute();
|
||||||
|
|
||||||
$ref = new Reference();
|
$ref = new Reference();
|
||||||
$ref->name = $refMedia->name;
|
$ref->name = $refMedia->name;
|
||||||
$ref->source = new NullMedia((int) $media);
|
$ref->source = new NullMedia((int) $media);
|
||||||
$ref->createdBy = new NullAccount($request->header->account);
|
$ref->createdBy = new NullAccount($request->header->account);
|
||||||
$ref->setVirtualPath($path);
|
$ref->setVirtualPath($path);
|
||||||
|
|
||||||
$this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin());
|
$this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin());
|
||||||
$this->createModelRelation(
|
$this->createModelRelation(
|
||||||
$request->header->account,
|
$request->header->account,
|
||||||
$collection->id,
|
$collection->id,
|
||||||
$ref->id,
|
$ref->id,
|
||||||
CollectionMapper::class,
|
CollectionMapper::class,
|
||||||
'sources',
|
'sources',
|
||||||
'',
|
'',
|
||||||
$request->getOrigin()
|
$request->getOrigin()
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -408,7 +403,7 @@ final class ApiController extends Controller
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
$uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
|
||||||
names: $request->getDataList('names'),
|
names: $request->getDataList('names'),
|
||||||
fileNames: $request->getDataList('filenames'),
|
fileNames: $request->getDataList('filenames'),
|
||||||
files: $uploadedFiles,
|
files: $uploadedFiles,
|
||||||
|
|
|
||||||
7
Models/Elastic/EditorDoc.json
Normal file
7
Models/Elastic/EditorDoc.json
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"id": "{id}",
|
||||||
|
"title": "{title}",
|
||||||
|
"content": "{content}",
|
||||||
|
"language": "{language}",
|
||||||
|
"tags": ["{tags}"]
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user