58 lines
1.8 KiB
JavaScript
Vendored
58 lines
1.8 KiB
JavaScript
Vendored
// app.jsの名はモジュールバンドラーを投入する日まで予約しておく。CSSも同じ。
|
|
|
|
(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');
|
|
});
|
|
};
|
|
|
|
})(jQuery); |