Allow fulfilling wishes
This commit is contained in:
parent
b338edeff7
commit
efe3c87c15
5 changed files with 61 additions and 3 deletions
|
@ -25,6 +25,7 @@
|
||||||
RewriteRule ^api/statistics/([a-zA-Z0-9=]+)$ /?page=api&module=statistics&table=$1 [QSA,L]
|
RewriteRule ^api/statistics/([a-zA-Z0-9=]+)$ /?page=api&module=statistics&table=$1 [QSA,L]
|
||||||
RewriteRule ^api/url/([a-zA-Z0-9=]+)$ /?page=api&module=url&url=$1 [QSA,L]
|
RewriteRule ^api/url/([a-zA-Z0-9=]+)$ /?page=api&module=url&url=$1 [QSA,L]
|
||||||
RewriteRule ^api/wishlists/([0-9]+)$ /?page=api&module=wishlists&wishlist_id=$1 [QSA,L]
|
RewriteRule ^api/wishlists/([0-9]+)$ /?page=api&module=wishlists&wishlist_id=$1 [QSA,L]
|
||||||
|
RewriteRule ^api/wishlists/([0-9a-f]{40})$ /?page=api&module=wishlists&wishlist_hash=$1 [QSA,L]
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
##-- When caching of gzipped JS and CSS files is used, enable this setting
|
##-- When caching of gzipped JS and CSS files is used, enable this setting
|
||||||
|
|
|
@ -297,13 +297,13 @@ switch ($_SERVER['REQUEST_METHOD']) {
|
||||||
$wish_status = Sanitiser::getStatus($_PUT['wish_status']);
|
$wish_status = Sanitiser::getStatus($_PUT['wish_status']);
|
||||||
$wish_id = Sanitiser::getNumber($_PUT['wish_id']);
|
$wish_id = Sanitiser::getNumber($_PUT['wish_id']);
|
||||||
|
|
||||||
if (Wish::STATUS_TEMPORARY === $status) {
|
if (Wish::STATUS_TEMPORARY === $wish_status) {
|
||||||
$status = time();
|
$wish_status = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
$database->query(
|
$database->query(
|
||||||
'UPDATE `wishes`
|
'UPDATE `wishes`
|
||||||
SET `status` = :wish_status,
|
SET `status` = :wish_status
|
||||||
WHERE `id` = :wish_id',
|
WHERE `id` = :wish_id',
|
||||||
array(
|
array(
|
||||||
'wish_status' => $wish_status,
|
'wish_status' => $wish_status,
|
||||||
|
|
|
@ -142,6 +142,17 @@ switch ($_SERVER['REQUEST_METHOD']) {
|
||||||
} else {
|
} else {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
}
|
}
|
||||||
|
} elseif (isset($_GET['wishlist_hash'])) {
|
||||||
|
/**
|
||||||
|
* Get wishlist by hash
|
||||||
|
*/
|
||||||
|
$wishlist = new Wishlist($_GET['wishlist_hash']);
|
||||||
|
|
||||||
|
if ($wishlist->exists) {
|
||||||
|
$response['results'] = $wishlist;
|
||||||
|
} else {
|
||||||
|
http_response_code(404);
|
||||||
|
}
|
||||||
} elseif (isset($_GET['userid']) || isset($_SESSION['user']->id)) {
|
} elseif (isset($_GET['userid']) || isset($_SESSION['user']->id)) {
|
||||||
/**
|
/**
|
||||||
* Get user wishlists
|
* Get user wishlists
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const wish_button_mark_as_fulfilled = '.ui.button.wish-fulfilled';
|
const wish_button_mark_as_fulfilled = '.ui.button.wish-fulfilled';
|
||||||
|
const wish_button_fulfil_wish = '.ui.button.wish-fulfil';
|
||||||
const wish_button_visit = '.ui.button.wish-visit';
|
const wish_button_visit = '.ui.button.wish-visit';
|
||||||
const wish_button_options = '.ui.button.wish-options';
|
const wish_button_options = '.ui.button.wish-options';
|
||||||
const wish_button_options_edit = wish_button_options + ' .item.wish-edit';
|
const wish_button_options_edit = wish_button_options + ' .item.wish-edit';
|
||||||
|
@ -9,11 +10,14 @@ function wish_set_to(wish_data) {
|
||||||
wish = wish_data;
|
wish = wish_data;
|
||||||
|
|
||||||
$(wish_button_mark_as_fulfilled).removeClass('disabled');
|
$(wish_button_mark_as_fulfilled).removeClass('disabled');
|
||||||
|
$(wish_button_fulfil_wish).removeClass('disabled');
|
||||||
|
|
||||||
if (wish.url) {
|
if (wish.url) {
|
||||||
$(wish_button_visit)
|
$(wish_button_visit)
|
||||||
.attr('href', wish.url)
|
.attr('href', wish.url)
|
||||||
.removeClass('disabled');
|
.removeClass('disabled');
|
||||||
|
} else {
|
||||||
|
$(wish_button_visit).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -150,6 +154,36 @@ $(function () {
|
||||||
});
|
});
|
||||||
/** */
|
/** */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fulfill wish
|
||||||
|
*/
|
||||||
|
$(document).on('click', wish_button_fulfil_wish, function() {
|
||||||
|
const modal_wish_details = $(this).closest('.ui.modal');
|
||||||
|
const mark_as_fulfilled = {
|
||||||
|
'method' : 'PUT',
|
||||||
|
'body' : new URLSearchParams({
|
||||||
|
'wish_id' : wish.id,
|
||||||
|
'wish_status' : wishthis.wish.status.fulfilled,
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this).addClass('disabled loading');
|
||||||
|
|
||||||
|
fetch('/api/wishes', mark_as_fulfilled)
|
||||||
|
.then(handleFetchError)
|
||||||
|
.then(handleFetchResponse)
|
||||||
|
.then(function(response) {
|
||||||
|
modal_wish_details.modal('hide');
|
||||||
|
|
||||||
|
$('.ui.dropdown.filter.priority').api('query');
|
||||||
|
})
|
||||||
|
.catch(handleFetchCatch)
|
||||||
|
.finally(function() {
|
||||||
|
$(this).removeClass('disabled loading');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
/** */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options: Edit
|
* Options: Edit
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -32,6 +32,18 @@ $(function() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get wishlist by hash
|
||||||
|
*/
|
||||||
|
if (!wishlist && wishthis.$_GET.hash) {
|
||||||
|
fetch('/api/wishlists/' + wishthis.$_GET.hash, { method: 'GET' })
|
||||||
|
.then(handleFetchError)
|
||||||
|
.then(handleFetchResponse)
|
||||||
|
.then(function(response) {
|
||||||
|
wishlist = response.results;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fulfil wish
|
* Fulfil wish
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue