This commit is contained in:
Dennis Eichhorn 2024-02-04 20:34:12 +00:00
parent 6f4d839a3c
commit 7b9d28d1b3
3 changed files with 52 additions and 46 deletions

View File

@ -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)
{ {

View File

@ -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,16 +180,13 @@ 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) {
if ($collection === null) { $collection ??= $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$path, $path,
$request->header->account, $request->header->account,
__DIR__ . '/../../../Modules/Media/Files' . $path __DIR__ . '/../../../Modules/Media/Files' . $path
); );
}
$this->createModelRelation( $this->createModelRelation(
$request->header->account, $request->header->account,
@ -222,7 +218,6 @@ final class ApiController extends Controller
); );
} }
} }
}
/** /**
* Create media directory path * Create media directory path
@ -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,

View File

@ -0,0 +1,7 @@
{
"id": "{id}",
"title": "{title}",
"content": "{content}",
"language": "{language}",
"tags": ["{tags}"]
}