Re : regen en sneeuw

Bericht van: jeroen2 , 15-01-2004 18:47 




this is a test

met CSS-klassen, en de link zelf via de closure hieronder. var content = [''); return content.join(''); } function copyTextToClipboard(text, onSuccess, onError) { if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') { navigator.clipboard.writeText(text).then(onSuccess).catch(onError); return; } var temporaryTextArea = $(''); temporaryTextArea.css({ position: 'absolute', left: '-9999px', top: '0' }); temporaryTextArea.val(text); $('body').append(temporaryTextArea); temporaryTextArea[0].select(); temporaryTextArea[0].setSelectionRange(0, 99999); try { var copySucceeded = document.execCommand('copy'); temporaryTextArea.remove(); if (copySucceeded) { onSuccess(); } else { onError(); } } catch (error) { temporaryTextArea.remove(); onError(); } } function showCopyFeedback($element, message) { // Bewaar de hover-titel: Bootstrap verhuist "title" naar "data-original-title" // en geeft die voorrang op de title-optie, waardoor de melding anders niet zichtbaar wordt. var originalTitle = $element.attr('data-original-title') || $element.attr('title') || ''; $element.tooltip('destroy'); $element.tooltip({ title: message, trigger: 'manual', placement: 'bottom', container: 'body' }); $element.attr('data-original-title', message); $element.tooltip('show'); setTimeout(function () { $element.tooltip('hide'); $element.tooltip('destroy'); $element.removeAttr('data-original-title'); if (originalTitle) { $element.attr('title', originalTitle); } }, 1000); } function enrichPrivateMessageForm(replyToId) { var form = $('form[name="private_message"]'); $(form).find('input[name="replyToId"]').remove(); $(form).append(''); } /** * Report a message * @param element * @param messageid * @param reason * @param event */ function reportMessage(element, messageid, reason, event) { event.preventDefault(); if (sendReport == false) { $.ajax({ url: $(element).attr("href"), success: function (data) { $(element).append('     Ok, gerapporteerd!'); } }); } sendReport = true; } /** * Report a message * @param element * @param messageid * @param reason * @param event */ function reportMessageForWiki(element, messageid, event) { event.preventDefault(); $.ajax({ url: $(element).attr("href"), success: function (data) { $(element).html(" OK, genomineerd"); $(element).addClass("disabled"); } }); } function renderThankButtonContent(thanked, count) { var icon = ""; if (thanked) { return icon + " " + count; } return icon + " Waardevol!"; } /* * Poll handlers. Top-level functions called from inline onclick= attributes, like every * other action in this template -- NOT $(document).on(...) delegation: the desktop path * re-injects this whole template with content.html(data) on every message you open, so a * delegated handler would stack up and fire once per message you had already viewed. */ function pollChosenOptionIds($poll) { return $poll.find('.poll-input:checked').map(function () { return parseInt($(this).val(), 10); }).get(); } function sendPollVote($poll, $trigger, optionIds) { if ($poll.attr('data-loading') === '1' || $poll.attr('data-closed') === '1') { return; } $poll.attr('data-loading', '1'); $.ajax({ url: $poll.attr('data-vote-url'), type: 'POST', data: {optionIds: JSON.stringify(optionIds)}, success: function (data) { renderPollResults($poll, data); }, error: function (xhr) { var message = (xhr.responseJSON && xhr.responseJSON.error) || 'Stemmen mislukt'; showCopyFeedback($trigger, message); }, complete: function () { $poll.attr('data-loading', '0'); } }); } function submitPollVote(element, event) { event.preventDefault(); var $poll = $(element).closest('.poll'); var optionIds = pollChosenOptionIds($poll); if (optionIds.length === 0) { showCopyFeedback($(element), 'Kies eerst een antwoord'); return; } sendPollVote($poll, $(element), optionIds); } function withdrawPollVote(element, event) { event.preventDefault(); // An empty set is how the endpoint spells "withdraw". sendPollVote($(element).closest('.poll'), $(element), []); } function togglePollResults(element, event) { event.preventDefault(); var $poll = $(element).closest('.poll'); $poll.toggleClass('poll--results').toggleClass('poll--voting'); setPollInputsEnabled($poll); } // The ballot is only live in the voting state. Leaving the radios clickable while the // results are on screen looks like the poll is broken: the dot moves, nothing happens. function setPollInputsEnabled($poll) { var frozen = $poll.hasClass('poll--results') || $poll.attr('data-closed') === '1'; $poll.find('.poll-input').prop('disabled', frozen); } // No optimistic update here, unlike the thank button: one vote moves every percentage at // once, and predicting that client-side costs more code than the latency is worth. function renderPollResults($poll, data) { $poll.attr('data-closed', data.closed ? '1' : '0'); $poll.removeClass('poll--voting').addClass('poll--results'); $.each(data.results, function (index, option) { var $option = $poll.find('.poll-option[data-option-id="' + option.id + '"]'); $option.find('.poll-bar').css('width', option.percentage + '%'); $option.find('.poll-count').text(option.votes); $option.find('.poll-percentage').text(option.percentage.toFixed(1).replace('.', ',') + '%'); $option.find('.poll-input').prop('checked', option.chosen); $option.toggleClass('poll-option--chosen', option.chosen); }); $poll.find('.poll-total').text(data.total); setPollInputsEnabled($poll); } function thankUserForMessage(element, event) { event.preventDefault(); var $button = $(element); if ($button.hasClass('disabled') && $button.attr('data-loading') !== '1') { return; } if ($button.attr('data-loading') === '1') { return; } var wasDisabledBeforeRequest = $button.hasClass('disabled'); var previousThanked = parseInt($button.attr('data-thanked'), 10) === 1; var previousCount = parseInt($button.attr('data-count'), 10); if (isNaN(previousCount)) { previousCount = 0; } var optimisticThanked = !previousThanked; var optimisticCount = optimisticThanked ? previousCount + 1 : Math.max(0, previousCount - 1); $button.attr('data-loading', '1'); $button.attr('aria-busy', 'true'); $button.addClass('disabled'); $button.attr('data-thanked', optimisticThanked ? '1' : '0'); $button.attr('data-count', optimisticCount); $button.html(renderThankButtonContent(optimisticThanked, optimisticCount)); $.ajax({ url: $button.attr("href"), success: function (data) { var serverThanked = !data.undo; var serverCount = parseInt(data.registered, 10); if (isNaN(serverCount)) { serverCount = optimisticCount; } $button.attr('data-thanked', serverThanked ? '1' : '0'); $button.attr('data-count', serverCount); $button.html(renderThankButtonContent(serverThanked, serverCount)); }, error: function () { $button.attr('data-thanked', previousThanked ? '1' : '0'); $button.attr('data-count', previousCount); $button.html(renderThankButtonContent(previousThanked, previousCount)); showCopyFeedback($button, 'Opslaan mislukt'); }, complete: function () { $button.attr('data-loading', '0'); $button.removeAttr('aria-busy'); if (!wasDisabledBeforeRequest) { $button.removeClass('disabled'); } } }); } /** * @param element * @param event */ function subscribeToThread(element, event) { event.preventDefault(); $.ajax({ url: $(element).attr("href"), success: function (data) { //noinspection JSUnresolvedVariable if (data.subscribed) { $(element).html(" Abonnement stoppen"); } else { $(element).html(" Abonneer"); } } }); } /** * @param element * @param event */ function addMessageAsFavorite(element, event) { event.preventDefault(); $.ajax({ url: $(element).attr("href"), success: function (data) { //noinspection JSUnresolvedVariable if (data.added) { $(element).html(''); $(element).addClass('disabled'); } } }); } function getSelectedText() { if (window.getSelection) { return window.getSelection(); } else if (document.getSelection) { return document.getSelection(); } else { var selection = document.selection && document.selection.createRange(); if (selection.text) { return selection.text; } return false; } return false; } $(document).ready(function () { // Initialize clipboard on each DOM element having the 'clipboard-btn' class var clipboard = new Clipboard('.clipboard-btn'); clipboard.on('success', function (e) { $(e.trigger).tooltip({ delay: {show: 50, hide: 500}, title: 'URL gekopieerd', }); $(e.trigger).tooltip('show'); }); $('#message-content').mouseup(function (event) { var selection = getSelectedText(); if (selection && selection != '') { var x = event.clientX; var y = event.clientY; $('#quote-message-div').css({ 'position': 'fixed', 'left': (x - 20) + 'px', 'top': (y + 20) + 'px', 'z-index': '999' }).show(); selectedText = selection; } else { $('#quote-message-div').hide(); } }); var shareUrl = 'https\u003A\/\/www.weerwoord.be\/m\/71464'; var shareTitle = 'Re\u0020\u003A\u0020regen\u0020en\u0020sneeuw'; var $shareButton = $('#toggleSharePopover'); $shareButton.popover({ html: true, placement: 'top', trigger: 'manual', container: 'body', content: function () { return getSharePopoverContent(shareUrl, shareTitle); } }); $shareButton.on('click', function (event) { event.preventDefault(); event.stopPropagation(); if ($shareButton.attr('aria-describedby')) { $shareButton.popover('hide'); return; } if (navigator.share && typeof navigator.share === 'function') { navigator.share({ title: shareTitle, text: shareTitle, url: shareUrl }).catch(function (error) { if (error && (error.name === 'AbortError' || error.name === 'NotAllowedError')) { return; } $shareButton.popover('show'); }); return; } $shareButton.popover('show'); }); $(document).on('click', '.share-copy-link', function (event) { event.preventDefault(); event.stopPropagation(); var $copyButton = $(this); copyTextToClipboard(shareUrl, function () { showCopyFeedback($copyButton, 'URL gekopieerd'); }, function () { showCopyFeedback($copyButton, 'KopiĆ«ren mislukt'); }); }); $(document).on('click', function (event) { if ($(event.target).closest('#toggleSharePopover, .popover').length === 0) { $shareButton.popover('hide'); } }); $(document).on('click', '.popover', function (event) { event.stopPropagation(); }); $('#scrollbottom').show(); }); function quoteMessageWithSelectedText() { // Hide the quoted text button $('#quote-message-div').hide(); // Go!! var url = '/quotetext/id/71464'; var form = $('
' + '' + '
'); $('body').append(form); form.submit(); } $(document).on('click', '.dropdown-menu', function (e) { e.stopPropagation(); });
regen en sneeuw   ( 285)
tim (leuven) -- 01-01-2004 23:55
Re : regen en sneeuw   ( 180)
jeroen2 -- 15-01-2004 18:47
Re : regen en sneeuw   ( 173)
jeroen2 -- 26-01-2004 19:20
Re : regen en sneeuw   ( 169)
jeroen2 -- 02-02-2004 17:53