<div class="userCard__header__background">
<img
class="userCard__header__background__image"
- src="{$user->getCoverPhoto()->getURL()}"
+ src="{$user->getCoverPhoto()->getThumbnailURL()}"
- loading="lazy">
+ alt="">
</div>
<div class="userCard__header__avatar">
{user object=$user type='avatar64' ariaHidden='true' tabindex='-1'}
return;
}
- void resizeImage(element, file)
+ if (element.dataset.cropperConfiguration) {
+ const cropperConfiguration = JSON.parse(element.dataset.cropperConfiguration) as CropperConfiguration;
+
+ void cropImage(element, file, cropperConfiguration)
+ .then((resizedFile) => {
+ void upload(element, resizedFile);
+ })
+ .catch((e) => {
+ element.dispatchEvent(new CustomEvent("cancel"));
+
+ if (e === undefined) {
+ // User closed the dialog.
+ return;
+ }
+
+ if (e instanceof Error) {
+ innerError(element, e.message);
+ }
+ });
+ } else {
- void resizeImage(element, file).then((resizedFile) => {
- void upload(element, resizedFile);
++ void resizeImage(element, file)
+ .then((resizedFile) => {
- void upload(element, resizedFile);
- })
++ void upload(element, resizedFile);
++ })
+ .catch(() => {
+ innerError(element, getPhrase("wcf.upload.error.damagedImageFile", { filename: file.name }));
});
+ }
});
element.addEventListener("ckeditorDrop", (event: CustomEvent<CkeditorDropEvent>) => {
text-align: center;
}
+#acpDashboardSortableContainer .sortableNode {
+ border-bottom: none;
+}
++
+ .acpDashboardBox__usersAwaitingApproval {
+ display: flex;
+ flex-direction: column;
+ row-gap: 10px;
+ }
+
+ .acpDashboardBox__usersAwaitingApproval__user {
+ position: relative;
+ }
+
+ .acpDashboardBox__usersAwaitingApproval__avatar {
+ align-content: center;
+ }
+
+ .acpDashboardBox__usersAwaitingApproval__link::after {
+ content: "";
+ inset: 0;
+ position: absolute;
+ }
+
+ .acpDashboardBox__usersAwaitingApproval__meta {
+ color: var(--wcfContentDimmedText);
+ margin-top: -5px;
+
+ @include wcfFontSmall;
+ }
else if (!validateFileSize(element, file)) {
return;
}
- void resizeImage(element, file)
- .then((resizedFile) => {
- void upload(element, resizedFile);
- })
- .catch(() => {
- (0, Util_1.innerError)(element, (0, Language_1.getPhrase)("wcf.upload.error.damagedImageFile", { filename: file.name }));
- });
+ if (element.dataset.cropperConfiguration) {
+ const cropperConfiguration = JSON.parse(element.dataset.cropperConfiguration);
+ void (0, Cropper_1.cropImage)(element, file, cropperConfiguration)
+ .then((resizedFile) => {
+ void upload(element, resizedFile);
+ })
+ .catch((e) => {
+ element.dispatchEvent(new CustomEvent("cancel"));
+ if (e === undefined) {
+ // User closed the dialog.
+ return;
+ }
+ if (e instanceof Error) {
+ (0, Util_1.innerError)(element, e.message);
+ }
+ });
+ }
+ else {
- void resizeImage(element, file).then((resizedFile) => {
++ void resizeImage(element, file)
++ .then((resizedFile) => {
+ void upload(element, resizedFile);
++ })
++ .catch(() => {
++ (0, Util_1.innerError)(element, (0, Language_1.getPhrase)("wcf.upload.error.damagedImageFile", { filename: file.name }));
+ });
+ }
});
element.addEventListener("ckeditorDrop", (event) => {
const { file } = event.detail;
$event->preload('wcf.style.changeStyle');
+ $event->preload('wcf.upload.crop.image');
+ $event->preload('wcf.upload.error.damagedImageFile');
$event->preload('wcf.upload.error.fileExtensionNotPermitted');
$event->preload('wcf.upload.error.fileSizeTooLarge');
+ $event->preload('wcf.upload.error.image.tooSmall');
$event->preload('wcf.upload.error.maximumCountReached');
$event->preload('wcf.upload.error.delete.permissionDenied');
$event->preload('wcf.upload.error.delete.unknownError');
use wcf\data\user\User;
use wcf\data\user\UserEditor;
use wcf\data\user\UserList;
+ use wcf\data\user\UserProfile;
use wcf\data\user\UserProfileAction;
-use wcf\data\user\UserProfileList;
use wcf\system\bbcode\BBCodeHandler;
use wcf\system\database\util\PreparedStatementConditionBuilder;
use wcf\system\exception\SystemException;
parent::initObjectList();
$this->objectList->sqlSelects = 'user_option_value.userOption' . User::getUserOptionID('aboutMe') . ' AS aboutMe';
+ $this->objectList->sqlSelects .= ',user_option_value.userOption' . User::getUserOptionID('canViewOnlineStatus') . ' AS canViewOnlineStatus';
$this->objectList->sqlJoins = "
- LEFT JOIN wcf" . WCF_N . "_user_option_value user_option_value
+ LEFT JOIN wcf1_user_option_value user_option_value
ON user_option_value.userID = user_table.userID";
}