Browse Source

Enabling copy buttons functionality

[finishes #55299248]
pull/33/merge
Gonçalo Silva and Nick Street 13 years ago
parent
commit
d148bc7af4
  1. 1
      .gitignore
  2. 2
      _includes/download_widget.md
  3. 18
      _layouts/base_layout.html
  4. 8
      js/ZeroClipboard.min.js
  5. BIN
      js/ZeroClipboard.swf
  6. 26
      js/copySnippets.js
  7. 42
      js/guide.js
  8. 2
      js/projectDocumentationWidget.js

1
.gitignore vendored

@ -2,5 +2,4 @@ @@ -2,5 +2,4 @@
.#*
*~
_site
*.sw?
.idea

2
_includes/download_widget.md

@ -10,7 +10,7 @@ Download @@ -10,7 +10,7 @@ Download
<div class="download-widget--body">
The recommended way to get the code for this project is to use a dependency management system. The snippet below can be
copied and pasted into your build when you create a new project, or when adding <code>{{ site.project }}</code> to your project.
<div class="highlight"><button class="copy-button snippet" id="copy-button-2" data-clipboard-target="code-block-2"></button>
<div class="highlight">
<div class="js-download-maven-widget"></div>
</div>
</div>

18
_layouts/base_layout.html

@ -10,12 +10,12 @@ @@ -10,12 +10,12 @@
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/font-awesome/css/font-awesome.min.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/bootstrap/css/bootstrap-select.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/main.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/typography.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/icons.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/projects.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/buttons.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/guide.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/main.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/typography.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/icons.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/projects.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/buttons.css.css" />
<link rel="stylesheet" type="text/css" href="{{site.baseurl}}/css/guide.css.css" />
<script type="text/javascript" src="{{site.baseurl}}/js/jquery.js"></script>
<script type="text/javascript" src="{{site.baseurl}}/bootstrap/js/bootstrap.min.js"></script>
@ -25,11 +25,13 @@ @@ -25,11 +25,13 @@
<script type="text/javascript" src="{{site.baseurl}}/js/backbone.js"></script>
<script type="text/javascript" src="{{site.baseurl}}/js/projectDocumentationWidget.js"></script>
<script type="text/javascript" src="{{site.baseurl}}/js/application.js"></script>
<script type="text/javascript" src="{{site.baseurl}}/js/guide.js"></script>
<script type="text/javascript" src="{{site.baseurl}}/js/ZeroClipboard.min.js"></script>
<script type="text/javascript">
var apiBaseUrl = "{{ site.main_site_url }}";
var projectId = "{{ site.project }}"
var projectId = "{{ site.project }}";
var siteBaseUrl = "{{ site.baseurl }}";
</script>
<script type="text/javascript" src="{{site.baseurl}}/js/copySnippets.js"></script>
<meta name="google-site-verification" content="7qGntFPD9lWAVCtUu5U77v4l68PsTHf6xpzgjQv2j2M" />
</head>
<body>

8
js/ZeroClipboard.min.js vendored

File diff suppressed because one or more lines are too long

BIN
js/ZeroClipboard.swf

Binary file not shown.

26
js/copySnippets.js

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
window.Spring = window.Spring || {};
ZeroClipboard.setDefaults( { moviePath: siteBaseUrl + '/js/ZeroClipboard.swf' } );
$(document).ready(function() {
Spring.configureCopyButtons();
});
Spring.configureCopyButtons = function() {
if (ZeroClipboard.detectFlashSupport()) {
$('.highlight pre').each(function(index) {
Spring.buildCopyButton($(this), index);
}
);
}
}
Spring.buildCopyButton = function (preEl, id) {
var codeBlockId = "code-block-"+ id;
var copyButtonId = "copy-button-" + id;
preEl.attr('id', codeBlockId);
var button = $('<button class="copy-button snippet" id="' + copyButtonId + '" data-clipboard-target="' + codeBlockId + '"></button>');
preEl.before(button);
var zero = new ZeroClipboard(button);
$(zero.htmlBridge).tooltip({title: "copy to clipboard", placement: 'bottom'});
}

42
js/guide.js

@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
ZeroClipboard.setDefaults( { moviePath: '/js/ZeroClipboard.swf' } );
$(document).ready(function() {
if (ZeroClipboard.detectFlashSupport()) {
createCodeCopyButtons();
createCopyButton($('button.copy-button.github'));
}
$('.github-actions button').click(function() {
$('.github-actions button').removeClass('active');
$(this).addClass('active');
$('.clone-url').hide();
$('.clone-url.' + $(this).data('protocol')).show();
});
if (typeof(sts_import) === 'function') {
$(".gs-guide-import").show().click(function (e) {
var linkElement = e.target;
var url = linkElement.href;
sts_import("guide", url);
e.preventDefault();
});
}
});
function createCodeCopyButtons() {
$('article .highlight pre').each(function(index) {
var codeBlockId = "code-block-"+ index;
$(this).attr('id', codeBlockId);
var button = $('<button class="copy-button snippet" id="copy-button-"' + index + ' data-clipboard-target="' + codeBlockId + '"></button>');
$(this).before(button);
createCopyButton(button);
}
);
}
function createCopyButton($el){
var zero = new ZeroClipboard($el);
$(zero.htmlBridge).tooltip({title: "copy to clipboard", placement: 'bottom'});
}

2
js/projectDocumentationWidget.js

@ -100,6 +100,7 @@ Spring.SnippetView = Backbone.View.extend({ @@ -100,6 +100,7 @@ Spring.SnippetView = Backbone.View.extend({
var html = $("<pre></pre>");
html.append(this.combinedTemplate(this.model));
this.$el.html(html);
Spring.buildCopyButton(html, "snippet");
return this;
},
@ -146,6 +147,7 @@ Spring.QuickStartSelectorView = Backbone.View.extend({ @@ -146,6 +147,7 @@ Spring.QuickStartSelectorView = Backbone.View.extend({
snippetType: this.$('.js-active').data('snippet-type')
});
this.activeWidget.render();
},
changeDownloadSource: function (event) {

Loading…
Cancel
Save