(function ($) { $.fn.linkCard = function (options) { var settings = $.extend({ endpoint: '/api/checkin/card' }, options); return this.each(function () { var $this = $(this); $.ajax({ url: settings.endpoint, method: 'get', type: 'json', data: { url: $this.find('a').attr('href') } }).then(function (data) { var $metaColumn = $this.find('.col-12:last-of-type'); var $imageColumn = $this.find('.col-12:first-of-type'); var $title = $this.find('.card-title'); var $desc = $this.find('.card-text'); var $image = $imageColumn.find('img'); if (data.title === '') { $title.hide(); } else { $title.text(data.title); } if (data.description === '') { $desc.hide(); } else { $desc.text(data.description); } if (data.image === '') { $imageColumn.hide(); $metaColumn.removeClass('col-md-6'); } else { $image.attr('src', data.image); } if (data.title !== '' || data.description !== '' || data.image !== '') { $this.removeClass('d-none'); } }); }); }; $.fn.pageSelector = function () { return this.on('change', function () { location.href = $(this).find(':selected').data('href'); }); }; $.fn.deleteCheckinModal = function () { return this.each(function () { $(this).on('show.bs.modal', function (event) { var target = $(event.relatedTarget); var modal = $(this); modal.find('.modal-body .date-label').text(target.data('date')); modal.data('id', target.data('id')); }).find('.btn-danger').on('click', function (event) { var modal = $('#deleteCheckinModal'); var form = modal.find('form'); form.attr('action', form.attr('action').replace('@', modal.data('id'))); form.submit(); }) }); }; })(jQuery);