summaryrefslogtreecommitdiff
path: root/public/static/js/travelynx-actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/static/js/travelynx-actions.js')
-rw-r--r--public/static/js/travelynx-actions.js49
1 files changed, 25 insertions, 24 deletions
diff --git a/public/static/js/travelynx-actions.js b/public/static/js/travelynx-actions.js
index 7cec0cd..91953a6 100644
--- a/public/static/js/travelynx-actions.js
+++ b/public/static/js/travelynx-actions.js
@@ -1,41 +1,42 @@
-$(document).ready(function() {
+function travelynx_run_action(link, req, redir, err_callback) {
var error_icon = '<i class="material-icons">error</i>';
+ var progressbar = $('<div class="progress"><div class="indeterminate"></div></div>');
+ link.hide();
+ link.after(progressbar);
+ $.post('/action', req, function(data) {
+ if (data.success) {
+ $(location).attr('href', redir);
+ } else {
+ M.toast({html: error_icon + ' ' + data.error});
+ progressbar.remove();
+ if (err_callback) {
+ err_callback();
+ }
+ link.append(' ' + error_icon);
+ link.show();
+ }
+ });
+}
+$(document).ready(function() {
$('.action-checkin').click(function() {
var link = $(this);
- req = {
+ var req = {
action: 'checkin',
station: link.data('station'),
train: link.data('train'),
};
- progressbar = $('<div class="progress"><div class="indeterminate"></div></div>');
- link.replaceWith(progressbar);
- $.post('/action', req, function(data) {
- if (data.success) {
- $(location).attr('href', '/');
- } else {
- M.toast({html: error_icon + ' ' + data.error});
- link.append(' ' + error_icon);
- progressbar.replaceWith(link);
- }
- });
+ travelynx_run_action(link, req, '/');
});
$('.action-checkout').click(function() {
var link = $(this);
- req = {
+ var req = {
action: 'checkout',
station: link.data('station'),
force: link.data('force'),
};
- progressbar = $('<div class="progress"><div class="indeterminate"></div></div>');
- link.replaceWith(progressbar);
- $.post('/action', req, function(data) {
- if (data.success) {
- $(location).attr('href', '/' + req.station);
- } else {
- M.toast({html: error_icon + ' ' + data.error});
- link.append(' ' + error_icon);
- progressbar.replaceWith(link);
- }
+ travelynx_run_action(link, req, '/' + req.station, function() {
+ link.append(' – Keine Echtzeitdaten vorhanden')
+ link.data('force', true);
});
});
});