Add wish details image
This commit is contained in:
parent
b7df60fc98
commit
5d79e1b36d
6 changed files with 57 additions and 82 deletions
|
@ -3,7 +3,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Image */
|
/** Image */
|
||||||
.ui.modal.wish-details .wish-image {
|
.ui.modal.wish-details .wish-image,
|
||||||
|
.ui.modal.wish-details .wish-image is:(img, svg) {
|
||||||
|
height: auto;
|
||||||
|
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 40vh;
|
max-height: 40vh;
|
||||||
}
|
}
|
||||||
|
@ -19,12 +22,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.modal.wish-details .wish-image:has(.ui.placeholder) {
|
@supports selector(.ui.modal.wish-details .wish-image:has(.ui.placeholder)) {
|
||||||
height: 40vh;
|
|
||||||
}
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
.ui.modal.wish-details .wish-image:has(.ui.placeholder) {
|
.ui.modal.wish-details .wish-image:has(.ui.placeholder) {
|
||||||
width: 40%;
|
height: 40vh;
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.ui.modal.wish-details .wish-image:has(.ui.placeholder) {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -210,13 +210,25 @@ function handleFetchError(response) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleFetchResponse(response) {
|
function handleFetchResponse(response) {
|
||||||
var isText = response.headers.get('content-type')?.includes('text/html');
|
var content_type = response.headers.get('content-type');
|
||||||
var isJSON = response.headers.get('content-type')?.includes('application/json');
|
var isText = false;
|
||||||
|
var isJSON = false;
|
||||||
|
|
||||||
|
if (content_type) {
|
||||||
|
isText = content_type.includes('text/html')
|
||||||
|
|| content_type.includes('image/svg+xml');
|
||||||
|
|
||||||
|
isJSON = content_type.includes('application/json');
|
||||||
|
}
|
||||||
|
|
||||||
if (isText) {
|
if (isText) {
|
||||||
return response.text().then(function(text) {
|
return response
|
||||||
|
.text()
|
||||||
|
.then(function(text) {
|
||||||
if (text.toLowerCase().includes('error') || text.toLowerCase().includes('exception')) {
|
if (text.toLowerCase().includes('error') || text.toLowerCase().includes('exception')) {
|
||||||
showError(text);
|
showError(text);
|
||||||
|
} else {
|
||||||
|
return text;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else if (isJSON) {
|
} else if (isJSON) {
|
||||||
|
@ -228,6 +240,8 @@ function handleFetchResponse(response) {
|
||||||
return json;
|
return json;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleFetchCatch(error) {
|
function handleFetchCatch(error) {
|
||||||
|
|
|
@ -19,7 +19,8 @@ global $options;
|
||||||
|
|
||||||
/** Wish */
|
/** Wish */
|
||||||
wishthis.wish = {
|
wishthis.wish = {
|
||||||
'status' : {
|
'no_image' : '<?= Wish::NO_IMAGE ?>',
|
||||||
|
'status' : {
|
||||||
'temporary' : '<?= Wish::STATUS_TEMPORARY ?>',
|
'temporary' : '<?= Wish::STATUS_TEMPORARY ?>',
|
||||||
'unavailable' : '<?= Wish::STATUS_UNAVAILABLE ?>',
|
'unavailable' : '<?= Wish::STATUS_UNAVAILABLE ?>',
|
||||||
'fulfilled' : '<?= Wish::STATUS_FULFILLED ?>',
|
'fulfilled' : '<?= Wish::STATUS_FULFILLED ?>',
|
||||||
|
|
|
@ -29,9 +29,33 @@ $(function () {
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
var wish = response.info;
|
var wish = response.info;
|
||||||
|
|
||||||
/** General */
|
/**
|
||||||
|
* Wish
|
||||||
|
*/
|
||||||
|
/** Title */
|
||||||
$('.wish-title').html(wish.title);
|
$('.wish-title').html(wish.title);
|
||||||
$('.wish-image').prop('outerHTML', '<img class="image wish-image" src="' + wish.image + '" />');
|
|
||||||
|
/** Image */
|
||||||
|
var wish_image = wish.image ? wish.image : wishthis.wish.no_image;
|
||||||
|
var wish_image_ext = wish_image.split('.').pop();
|
||||||
|
|
||||||
|
if ('svg' === wish_image_ext) {
|
||||||
|
fetch(wish_image, { method: 'GET' })
|
||||||
|
.then(handleFetchError)
|
||||||
|
.then(handleFetchResponse)
|
||||||
|
.then(function(response) {
|
||||||
|
var svg = $(response).filter(function() { return 'svg' === this.nodeName; });
|
||||||
|
|
||||||
|
$('.wish-image').html(svg);
|
||||||
|
})
|
||||||
|
.catch(function(response) {
|
||||||
|
$('.wish-image').html('<img src="' + wish_image + '" />');
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('.wish-image').html('<img src="' + wish_image + '" />');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Description */
|
||||||
$('.wish-description').html(wish.description);
|
$('.wish-description').html(wish.description);
|
||||||
})
|
})
|
||||||
.catch(handleFetchCatch)
|
.catch(handleFetchCatch)
|
||||||
|
|
|
@ -358,75 +358,6 @@ class Wish
|
||||||
<i class="stream icon"></i>
|
<i class="stream icon"></i>
|
||||||
<span><?= __('Details') ?></span>
|
<span><?= __('Details') ?></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<?php if ($this->url) { ?>
|
|
||||||
<a class="ui compact labeled icon button"
|
|
||||||
href="<?= $this->url ?>" target="_blank"
|
|
||||||
title="<?= __('Visit') ?>"
|
|
||||||
>
|
|
||||||
<i class="external icon"></i>
|
|
||||||
<span><?= __('Visit') ?></span>
|
|
||||||
</a>
|
|
||||||
<?php } ?>
|
|
||||||
</div>
|
|
||||||
<?php
|
|
||||||
$buttons = ob_get_clean();
|
|
||||||
|
|
||||||
return $buttons;
|
|
||||||
?>
|
|
||||||
<div class="extra content buttons">
|
|
||||||
<?php if (!$userIsCurrent) { ?>
|
|
||||||
<a class="ui small primary labeled icon button fulfil"
|
|
||||||
title="<?= __('Fulfil wish') ?>"
|
|
||||||
>
|
|
||||||
<i class="gift icon"></i>
|
|
||||||
<?= __('Fulfil wish') ?>
|
|
||||||
</a>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<?php if ($this->url) { ?>
|
|
||||||
<a class="ui small labeled icon button<?= $userIsCurrent ? ' primary' : '' ?>"
|
|
||||||
href="<?= $this->url ?>" target="_blank"
|
|
||||||
title="<?= __('Visit') ?>"
|
|
||||||
>
|
|
||||||
<i class="external icon"></i>
|
|
||||||
<?= __('Visit') ?>
|
|
||||||
</a>
|
|
||||||
<?php } else { ?>
|
|
||||||
<a class="ui small labeled icon disabled button<?= $userIsCurrent ? ' primary' : '' ?>"
|
|
||||||
title="<?= __('Visit') ?>"
|
|
||||||
>
|
|
||||||
<i class="external icon"></i>
|
|
||||||
<?= __('Visit') ?>
|
|
||||||
</a>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<?php if ($userIsCurrent) { ?>
|
|
||||||
<div class="ui small labeled icon top left pointing dropdown button wish-options disabled"
|
|
||||||
title="<?= __('Options') ?>"
|
|
||||||
>
|
|
||||||
<i class="cog icon"></i>
|
|
||||||
<span class="text"><?= __('Options') ?></span>
|
|
||||||
<div class="menu">
|
|
||||||
|
|
||||||
<button class="item wish-fulfilled">
|
|
||||||
<i class="check icon"></i>
|
|
||||||
<?= __('Mark as fulfilled') ?>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button class="item wish-edit" data-id="<?= $this->id ?>">
|
|
||||||
<i class="pen icon"></i>
|
|
||||||
<?= __('Edit') ?>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button class="item wish-delete">
|
|
||||||
<i class="trash icon"></i>
|
|
||||||
<?= __('Delete') ?>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php } ?>
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
$buttons = ob_get_clean();
|
$buttons = ob_get_clean();
|
||||||
|
|
|
@ -226,7 +226,7 @@ namespace wishthis;
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="scrolling image content">
|
<div class="scrolling image content">
|
||||||
<div class="wish-image">
|
<div class="ui rounded image wish-image">
|
||||||
<div class="ui fluid placeholder">
|
<div class="ui fluid placeholder">
|
||||||
<div class="image"></div>
|
<div class="image"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue