Skip to content

Commit

Permalink
Merge 4f848e8 into c66bff9
Browse files Browse the repository at this point in the history
  • Loading branch information
Haocen committed Aug 15, 2019
2 parents c66bff9 + 4f848e8 commit 48d9bd8
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 5 deletions.
66 changes: 63 additions & 3 deletions js/privatebin.js
Expand Up @@ -1711,8 +1711,58 @@ jQuery.PrivateBin = (function($, RawDeflate) {
*/
function sendToShortener()
{
window.location.href = $shortenButton.data('shortener') +
encodeURIComponent($pasteUrl.attr('href'));
if ($shortenButton.hasClass('buttondisabled')) {
return;
}
$.ajax({
type: 'GET',
url: `${$shortenButton.data('shortener')}${encodeURIComponent($pasteUrl.attr('href'))}`,
headers: {'Accept': 'text/html, application/xhtml+xml, application/xml, application/json'},
processData: false,
timeout: 10000,
xhrFields: {
withCredentials: false
},
success: function(response) {
let responseString = response;
if (typeof responseString === 'object') {
responseString = JSON.stringify(responseString);
}
if (typeof responseString === 'string' && responseString.length > 0) {
const shortUrlMatcher = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g;
const shortUrl = (responseString.match(shortUrlMatcher) || []).sort(function(a, b) {
return a.length - b.length;
})[0];
if (typeof shortUrl === 'string' && shortUrl.length > 0) {
$('#pastelink').html(
I18n._(
'Your paste is <a id="pasteurl" href="%s">%s</a> <span id="copyhint">(Hit [Ctrl]+[c] to copy)</span>',
shortUrl, shortUrl
)
);
// we disable the button to avoid calling shortener again
$shortenButton.addClass('buttondisabled');
// save newly created element
$pasteUrl = $('#pasteurl');
// we pre-select the link so that the user only has to [Ctrl]+[c] the link
Helper.selectText($pasteUrl[0]);
return;
}
}
Alert.showError(
I18n._('Cannot parse response from URL shortener.')
);
}
})
.fail(function(data, textStatus, errorThrown) {
console.error(textStatus, errorThrown);
// we don't know why it failed, could be CORS of the external server not setup properly, in which case we follow old behavior to open it in new tab
window.open(
`${$shortenButton.data('shortener')}${encodeURIComponent($pasteUrl.attr('href'))}`,
'_blank',
'noopener, noreferrer'
)
});
}

/**
Expand Down Expand Up @@ -1754,9 +1804,12 @@ jQuery.PrivateBin = (function($, RawDeflate) {
// and add click event
$pasteUrl.click(pasteLinkClick);

// shorten button
// delete link
$('#deletelink').html('<a href="' + deleteUrl + '">' + I18n._('Delete data') + '</a>');

// enable shortener button
$shortenButton.removeClass('buttondisabled');

// show result
$pasteSuccess.removeClass('hidden');
// we pre-select the link so that the user only has to [Ctrl]+[c] the link
Expand Down Expand Up @@ -4688,6 +4741,10 @@ jQuery.PrivateBin = (function($, RawDeflate) {

TopNav.showCreateButtons();
Alert.hideLoading();
history.pushState({type: 'create'}, document.title, Helper.baseUri());

// clear discussion
DiscussionViewer.prepareNewDiscussion();
};

/**
Expand Down Expand Up @@ -4800,6 +4857,9 @@ jQuery.PrivateBin = (function($, RawDeflate) {
Editor.show();

TopNav.showCreateButtons();

// clear discussion
DiscussionViewer.prepareNewDiscussion();
};

/**
Expand Down
2 changes: 1 addition & 1 deletion tpl/bootstrap.php
Expand Up @@ -71,7 +71,7 @@
endif;
?>
<script type="text/javascript" data-cfasync="false" src="js/purify-1.0.11.js" integrity="sha512-p7UyJuyBkhMcMgE4mDsgK0Lz70OvetLefua1oXs1OujWv9gOxh4xy8InFux7bZ4/DAZsTmO4rgVwZW9BHKaTaw==" crossorigin="anonymous"></script>
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-8n4HbSmQC++v3AfA2nqlueUp3RkfeU7POcpga+yS4Rlz95G+paRjMmw5B+3HAC7TlswME16n0wIxHD1dkScC8A==" crossorigin="anonymous"></script>
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="+Wbo1knNxd7IM9J5YgoT6+Ai0eE7Cp8Kvj9yRvKPQQq3TeShaUxL8M1jsYC6yHRNl4eXyMdjO33+NeXeL7xtQA==" crossorigin="anonymous"></script>
<!--[if IE]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;}</style>
<![endif]-->
Expand Down
2 changes: 1 addition & 1 deletion tpl/page.php
Expand Up @@ -49,7 +49,7 @@
endif;
?>
<script type="text/javascript" data-cfasync="false" src="js/purify-1.0.11.js" integrity="sha512-p7UyJuyBkhMcMgE4mDsgK0Lz70OvetLefua1oXs1OujWv9gOxh4xy8InFux7bZ4/DAZsTmO4rgVwZW9BHKaTaw==" crossorigin="anonymous"></script>
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="sha512-8n4HbSmQC++v3AfA2nqlueUp3RkfeU7POcpga+yS4Rlz95G+paRjMmw5B+3HAC7TlswME16n0wIxHD1dkScC8A==" crossorigin="anonymous"></script>
<script type="text/javascript" data-cfasync="false" src="js/privatebin.js?<?php echo rawurlencode($VERSION); ?>" integrity="+Wbo1knNxd7IM9J5YgoT6+Ai0eE7Cp8Kvj9yRvKPQQq3TeShaUxL8M1jsYC6yHRNl4eXyMdjO33+NeXeL7xtQA==" crossorigin="anonymous"></script>
<!--[if IE]>
<style type="text/css">body {padding-left:60px;padding-right:60px;} #ienotice {display:block;}</style>
<![endif]-->
Expand Down

0 comments on commit 48d9bd8

Please sign in to comment.