Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f58cf04

Browse filesBrowse files
committed
bug #52937 [WebProfilerBundle] Fix "Copy as cURL" (HypeMC)
This PR was merged into the 6.4 branch. Discussion ---------- [WebProfilerBundle] Fix "Copy as cURL" | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | Fix #52920 | License | MIT The bug was introduced in #50790. #SymfonyHackday Commits ------- c97f0f9 [WebProfilerBundle] Fix Copy as Curl
2 parents a314b65 + c97f0f9 commit f58cf04
Copy full SHA for f58cf04

File tree

2 files changed

+32
-35
lines changed
Filter options

2 files changed

+32
-35
lines changed

‎src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig
+32-8Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
constructor() {
1414
this.#createTabs();
1515
this.#createToggles();
16+
this.#createCopyToClipboard();
1617
this.#convertDateTimesToUserTimezone();
1718
}
1819
@@ -161,18 +162,41 @@
161162
});
162163
});
163164
164-
/* Prevents from disallowing clicks on "copy to clipboard" elements inside toggles */
165-
const copyToClipboardElements = toggle.querySelectorAll('span[data-clipboard-text]');
166-
copyToClipboardElements.forEach((copyToClipboardElement) => {
167-
copyToClipboardElement.addEventListener('click', (e) => {
168-
e.stopPropagation();
169-
});
170-
});
171-
172165
toggle.setAttribute('data-processed', 'true');
173166
});
174167
}
175168
169+
#createCopyToClipboard() {
170+
if (!navigator.clipboard) {
171+
return;
172+
}
173+
174+
const copyToClipboardElements = document.querySelectorAll('[data-clipboard-text]');
175+
176+
copyToClipboardElements.forEach((copyToClipboardElement) => {
177+
copyToClipboardElement.classList.remove('hidden');
178+
179+
copyToClipboardElement.addEventListener('click', (e) => {
180+
/* Prevents from disallowing clicks on "copy to clipboard" elements inside toggles */
181+
e.stopPropagation();
182+
183+
navigator.clipboard.writeText(copyToClipboardElement.getAttribute('data-clipboard-text'));
184+
185+
let oldContent = copyToClipboardElement.textContent;
186+
187+
copyToClipboardElement.textContent = `✅ Copied!`;
188+
copyToClipboardElement.disabled = true;
189+
copyToClipboardElement.classList.add('status-success');
190+
191+
setTimeout(() => {
192+
copyToClipboardElement.textContent = oldContent;
193+
copyToClipboardElement.disabled = false;
194+
copyToClipboardElement.classList.remove('status-success');
195+
}, 7000);
196+
});
197+
});
198+
}
199+
176200
#convertDateTimesToUserTimezone() {
177201
const userTimezoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;
178202

‎src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar_js.html.twig
-27Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -50,33 +50,6 @@
5050
};
5151
}
5252
53-
if (navigator.clipboard) {
54-
document.addEventListener('readystatechange', () => {
55-
if (document.readyState !== 'complete') {
56-
return;
57-
}
58-
59-
document.querySelectorAll('[data-clipboard-text]').forEach(function (element) {
60-
removeClass(element, 'hidden');
61-
element.addEventListener('click', function () {
62-
navigator.clipboard.writeText(element.getAttribute('data-clipboard-text'));
63-
64-
if (element.classList.contains("label")) {
65-
let oldContent = element.textContent;
66-
67-
element.textContent = "✅ Copied!";
68-
element.classList.add("status-success");
69-
70-
setTimeout(() => {
71-
element.textContent = oldContent;
72-
element.classList.remove("status-success");
73-
}, 7000);
74-
}
75-
});
76-
});
77-
});
78-
}
79-
8053
var request = function(url, onSuccess, onError, payload, options, tries) {
8154
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
8255
options = options || {};

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.