0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-12-02 14:24:19 +01:00

Update ZeroClipboard and remove Copy buttons when Flash is unavailable

Fixes #16269.
Closes #16301 by merging a rebased version of it.
This commit is contained in:
Mark Tareshawty 2015-04-15 20:19:27 -04:00 committed by Chris Rebert
parent 21e94b0374
commit 229e888929
3 changed files with 31 additions and 32 deletions

Binary file not shown.

View File

@ -127,7 +127,7 @@
// Config ZeroClipboard // Config ZeroClipboard
ZeroClipboard.config({ ZeroClipboard.config({
moviePath: '/assets/flash/ZeroClipboard.swf', swfPath: '/assets/flash/ZeroClipboard.swf',
hoverClass: 'btn-clipboard-hover' hoverClass: 'btn-clipboard-hover'
}) })
@ -136,39 +136,38 @@
var btnHtml = '<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>' var btnHtml = '<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>'
$(this).before(btnHtml) $(this).before(btnHtml)
}) })
var zeroClipboard = new ZeroClipboard($('.btn-clipboard')) var zeroClipboard = new ZeroClipboard($('.btn-clipboard'))
var htmlBridge = $('#global-zeroclipboard-html-bridge') var htmlBridge = $('#global-zeroclipboard-html-bridge')
// Handlers for ZeroClipboard // Handlers for ZeroClipboard
zeroClipboard.on('load', function () { zeroClipboard.on('ready', function () {
htmlBridge htmlBridge
.data('placement', 'top') .data('placement', 'top')
.attr('title', 'Copy to clipboard') .attr('title', 'Copy to clipboard')
.tooltip() .tooltip()
// Copy to clipboard
zeroClipboard.on('copy', function (event) {
var highlight = $(event.target).parent().nextAll('.highlight').first()
event.clipboardData.setData('text/plain', highlight.text())
})
// Notify copy success and reset tooltip title
zeroClipboard.on('aftercopy', function () {
htmlBridge
.attr('title', 'Copied!')
.tooltip('fixTitle')
.tooltip('show')
.attr('title', 'Copy to clipboard')
.tooltip('fixTitle')
})
}) })
// Copy to clipboard // Hide copy button on error
zeroClipboard.on('dataRequested', function (client) { zeroClipboard.on('error', function () {
var highlight = $(this).parent().nextAll('.highlight').first() $('.zero-clipboard').remove()
client.setText(highlight.text()) ZeroClipboard.destroy()
})
// Notify copy success and reset tooltip title
zeroClipboard.on('complete', function () {
htmlBridge
.attr('title', 'Copied!')
.tooltip('fixTitle')
.tooltip('show')
.attr('title', 'Copy to clipboard')
.tooltip('fixTitle')
})
// Notify copy failure
zeroClipboard.on('noflash wrongflash', function () {
htmlBridge
.attr('title', 'Flash required')
.tooltip('fixTitle')
.tooltip('show')
}) })
}) })

File diff suppressed because one or more lines are too long