mirror of
https://github.com/Karaka-Management/oms-Profile.git
synced 2026-02-14 14:48:39 +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;
|
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 ?
|
$profile->getImage() instanceof NullMedia ?
|
||||||
UriFactory::build('Web/Backend/img/user_default_' . \mt_rand(1, 6) .'.png') :
|
UriFactory::build('Web/Backend/img/user_default_' . \mt_rand(1, 6) .'.png') :
|
||||||
UriFactory::build('{/prefix}' . $profile->getImage()->getPath()); ?>"
|
UriFactory::build('{/prefix}' . $profile->getImage()->getPath()); ?>"
|
||||||
></div>
|
width="100px"></div>
|
||||||
<?php if ($this->request->getHeader()->getAccount() === $account->getId()) : ?>
|
<?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>
|
<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>
|
<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