Allow marking wishes as fulfilled

This commit is contained in:
Jay Trees 2022-04-19 08:57:27 +02:00
parent 1037ccef66
commit 62ec209a5f
5 changed files with 33 additions and 3 deletions

View file

@ -9,9 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- This changelog - This changelog
- Wish properties - Wish properties
- Button to mark wish as fulfilled
### Changed ### Improved
- Improved card design - Card design
### Fixed ### Fixed
- Various small bugs - Various small bugs

View file

@ -296,6 +296,27 @@ $(function () {
} }
}); });
/**
* Mark as Fulfilled
*/
$(document).on('click', '.wish-fulfilled', function() {
var button = $(this);
var card = button.closest('.card');
button.api({
action : 'update wish status',
method : 'PUT',
data : {
wish_id : card.attr('data-id'),
wish_status : wish_status_fulfilled,
},
on : 'now',
onSuccess : function(response, element, xhr) {
card.closest('.column').fadeOut();
},
});
});
/** /**
* Delete Wish * Delete Wish
*/ */

View file

@ -310,6 +310,7 @@ class Page
var $_GET = JSON.parse('<?= isset($_SESSION['_GET']) ? json_encode($_SESSION['_GET']) : json_encode(array()) ?>'); var $_GET = JSON.parse('<?= isset($_SESSION['_GET']) ? json_encode($_SESSION['_GET']) : json_encode(array()) ?>');
var wish_status_temporary = '<?= Wish::STATUS_TEMPORARY ?>'; var wish_status_temporary = '<?= Wish::STATUS_TEMPORARY ?>';
var wish_status_unavailable = '<?= Wish::STATUS_UNAVAILABLE ?>'; var wish_status_unavailable = '<?= Wish::STATUS_UNAVAILABLE ?>';
var wish_status_fulfilled = '<?= Wish::STATUS_FULFILLED ?>';
var text = { var text = {
wishlist_no_selection : '<?= __('No wishlist selected.') ?>', wishlist_no_selection : '<?= __('No wishlist selected.') ?>',

View file

@ -16,6 +16,7 @@ class Wish
public const STATUS_TEMPORARY = 'temporary'; public const STATUS_TEMPORARY = 'temporary';
public const STATUS_TEMPORARY_MINUTES = 30; public const STATUS_TEMPORARY_MINUTES = 30;
public const STATUS_UNAVAILABLE = 'unavailable'; public const STATUS_UNAVAILABLE = 'unavailable';
public const STATUS_FULFILLED = 'fulfilled';
public static array $priorities; public static array $priorities;
@ -205,6 +206,11 @@ class Wish
<span class="text"><?= __('Options') ?></span> <span class="text"><?= __('Options') ?></span>
<div class="menu"> <div class="menu">
<div class="item wish-fulfilled">
<i class="check icon"></i>
<?= __('Mark as fulfilled') ?>
</div>
<a class="item" href="/?page=wish&id=<?= $this->id ?>"> <a class="item" href="/?page=wish&id=<?= $this->id ?>">
<i class="pen icon"></i> <i class="pen icon"></i>
<?= __('Edit') ?> <?= __('Edit') ?>

View file

@ -80,7 +80,8 @@ $page->navigation();
OR `status` IS NULL OR `status` IS NULL
OR `status` < unix_timestamp(CURRENT_TIMESTAMP - INTERVAL ' . Wish::STATUS_TEMPORARY_MINUTES . ' MINUTE) OR `status` < unix_timestamp(CURRENT_TIMESTAMP - INTERVAL ' . Wish::STATUS_TEMPORARY_MINUTES . ' MINUTE)
) )
AND (`status` != "' . Wish::STATUS_UNAVAILABLE . '" OR `status` IS NULL)' AND (`status` != "' . Wish::STATUS_UNAVAILABLE . '" OR `status` IS NULL)
AND (`status` != "' . Wish::STATUS_FULFILLED . '" OR `status` IS NULL)'
) )
); );
?> ?>