From 3a45218c521fa0ae20651ca54c250551d428f455 Mon Sep 17 00:00:00 2001 From: Prashant Pandey Date: Sun, 26 Nov 2023 12:59:00 +0530 Subject: [PATCH] Fix #1276: Add copy to clipboard for commands Fix: code copying logic --- djangoproject/scss/_console-tabs.scss | 13 +++++++++++++ djangoproject/static/js/main.js | 2 +- djangoproject/static/js/mod/clippify.js | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/djangoproject/scss/_console-tabs.scss b/djangoproject/scss/_console-tabs.scss index 7bd8a4f98..38013fbee 100644 --- a/djangoproject/scss/_console-tabs.scss +++ b/djangoproject/scss/_console-tabs.scss @@ -44,4 +44,17 @@ >.c-tab-win:checked~.c-content-win { display: block; } + >.c-content-win, >.c-content-unix .highlight-console{ + .highlight{ + display: flex; + justify-content: space-between; + + .btn-clipboard{ + float: right; + position: sticky; + cursor: pointer; + margin: 15px; + } + } + } } diff --git a/djangoproject/static/js/main.js b/djangoproject/static/js/main.js index e47cdeb39..cdc7f9a2b 100644 --- a/djangoproject/static/js/main.js +++ b/djangoproject/static/js/main.js @@ -98,7 +98,7 @@ define(function() { mods.push('mod/messages'); } - if (hasClass('code-block-caption') || hasClass('snippet')) { + if (hasClass('code-block-caption') || hasClass('snippet') || hasClass('c-content-unix') || hasClass('c-content-win')){ mods.push('mod/clippify'); } diff --git a/djangoproject/static/js/mod/clippify.js b/djangoproject/static/js/mod/clippify.js index d80df7e85..348b8985f 100644 --- a/djangoproject/static/js/mod/clippify.js +++ b/djangoproject/static/js/mod/clippify.js @@ -8,6 +8,16 @@ define(['jquery', 'clipboard'], function($, Clipboard) { btn.data('clipboard-text', $.trim(code.text())); header.append(btn); }); + $('.c-content-win, .c-content-unix').each(function() { + var header = $(this); + var code = $('.highlight', header); + // Check if the icon has already been added + var btn = $(''); + btn.append(''); + btn.data('clipboard-text', $.trim(code.clone().find('.gp').remove().end().text())); + code.append(btn); + }); + // For Django 2.0 docs and older. $('.snippet').each(function() { var code = $('.highlight', this);