2
0

copySnippets.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. window.Spring = window.Spring || {};
  2. $(document).ready(function() {
  3. Spring.configureCopyButtons();
  4. });
  5. Spring.configureCopyButtons = function() {
  6. $("pre.highlight").each(function(index) {
  7. Spring.buildCopyButton($(this), index);
  8. }
  9. );
  10. var errorMessage = function() {
  11. if (/Mac/i.test(navigator.userAgent)) {
  12. return 'Press Cmd-C to Copy';
  13. }
  14. else {
  15. return 'Press Ctrl-C to Copy';
  16. }
  17. };
  18. var snippets = new Clipboard('.copy-button');
  19. snippets.on('success', function(e) {
  20. e.clearSelection();
  21. Spring.showTooltip(e.trigger, "Copied!");
  22. });
  23. snippets.on('error', function(e) {
  24. Spring.showTooltip(e.trigger, errorMessage());
  25. });
  26. }
  27. Spring.showTooltip = function(elem, message) {
  28. $(elem).tooltip({placement:'right', title:message});
  29. $(elem).tooltip('show');
  30. setTimeout(function(){$(elem).tooltip('destroy');},1000);
  31. }
  32. Spring.buildCopyButton = function (preEl, id) {
  33. var codeBlockId = "code-block-"+ id;
  34. var copyButtonId = "copy-button-" + id;
  35. preEl.attr('id', codeBlockId);
  36. var button = $('<button class="copy-button snippet" id="' + copyButtonId + '" data-clipboard-target="#' + codeBlockId + '"></button>');
  37. preEl.before(button);
  38. }