mirror of
https://github.com/Karaka-Management/oms-Profile.git
synced 2026-01-27 06:28:40 +00:00
fix profile image upload
This commit is contained in:
parent
d14df036df
commit
347ec9e8d7
|
|
@ -31,4 +31,15 @@ return [
|
|||
],
|
||||
],
|
||||
],
|
||||
'^.*/profile/settings/image(\?.*|$)' => [
|
||||
[
|
||||
'dest' => '\Modules\Profile\Controller\ApiController:apiSettingsAccountImageSet',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::MODIFY,
|
||||
'state' => PermissionState::PROFILE,
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -119,4 +119,41 @@ final class ApiController extends Controller
|
|||
|
||||
return $profiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiSettingsAccountImageSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
$uploadedFiles = $request->getFiles() ?? [];
|
||||
|
||||
if (empty($uploadedFiles)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$profile = ProfileMapper::getFor($request->getHeader()->getAccount(), 'account');
|
||||
$old = clone $profile;
|
||||
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
$request->getData('name') ?? '',
|
||||
$uploadedFiles,
|
||||
$request->getHeader()->getAccount(),
|
||||
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $request->getHeader()->getAccount()
|
||||
);
|
||||
|
||||
$profile->setImage(\reset($uploaded));
|
||||
|
||||
$this->updateModel($request->getHeader()->getAccount(), $old, $profile, ProfileMapper::class, 'profile');
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Profile', 'Profile successfully updated', $profile);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ echo $this->getData('nav')->render();
|
|||
$profile->getImage() instanceof NullMedia ?
|
||||
UriFactory::build('Web/Backend/img/user_default_' . \mt_rand(1, 6) .'.png') :
|
||||
UriFactory::build('{/prefix}' . $profile->getImage()->getPath()); ?>"
|
||||
></div>
|
||||
width="100px"></div>
|
||||
<?php if ($this->request->getHeader()->getAccount() === $account->getId()) : ?>
|
||||
<div><a id="iProfileUploadButton" href="#upload" data-action='[{"listener": "click", "key": 1, "action": [{"key": 1, "type": "event.prevent"}, {"key": 2, "type": "dom.click", "selector": "#iProfileUpload"}]}]'>Change</a>
|
||||
<form id="iProfileUploadForm" action="<?= UriFactory::build('{/api}profile/settings/image'); ?>" method="post"><input data-action='[{"listener": "change", "key": 1, "action": [{"key": 1, "type": "form.submit", "selector": "#iProfileUploadForm"}]}]' id="iProfileUpload" name="profileImage" type="file" style="display: none;"></form></div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user