MediaWiki:Common.js: Difference between revisions
Search placeholder: Guy Stern / 37413105 |
Embed Google Drive folder grid for Photos page |
||
| Line 26: | Line 26: | ||
$form.append($row); | $form.append($row); | ||
$slot.find('.home-find-title').after($form); | $slot.find('.home-find-title').after($form); | ||
}()); | |||
(function buildDriveFolderEmbeds() { | |||
$('.mw-parser-output .drive-folder-embed[data-folder-id]').each(function () { | |||
var $slot = $(this); | |||
if ($slot.data('rbDriveEmbed')) { | |||
return; | |||
} | |||
$slot.data('rbDriveEmbed', 1); | |||
var id = String($slot.attr('data-folder-id') || ''); | |||
if (!/^[A-Za-z0-9_-]+$/.test(id)) { | |||
return; | |||
} | |||
var view = String($slot.attr('data-view') || 'grid').replace(/[^a-z]/g, '') || 'grid'; | |||
var src = 'https://drive.google.com/embeddedfolderview?id=' + | |||
encodeURIComponent(id) + '#' + view; | |||
var $iframe = $('<iframe class="drive-folder-frame" title="Google Drive photo folder" loading="lazy" allowfullscreen></iframe>') | |||
.attr('src', src); | |||
var $fallback = $slot.find('.drive-folder-fallback'); | |||
if ($fallback.length) { | |||
$fallback.before($iframe); | |||
} else { | |||
$slot.prepend($iframe); | |||
} | |||
}); | |||
}()); | }()); | ||