Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add copy-to-clipboard button to the build console output #8960

Merged
merged 6 commits into from Mar 5, 2024

Conversation

anhcraft
Copy link
Contributor

@anhcraft anhcraft commented Feb 14, 2024

  • The build's output currently lacks a copy-to-clipboard button. This is a small QoL improvement to quickly copy the console output. The button also supports progressive text output.
  • The copy button only supports text via the attribute text. Therefore, this PR also introduces another parameter ref to refer to the target element using the id. Compared to the text approach, it has some advantages: reduces page size, supports formatted logging output and can work across UI components.

Testing done

Manually testing

Before:
https://i.imgur.com/xSRIkKQ.png

After:
https://i.imgur.com/Mia5Ie3.png

Proposed changelog entries

  • Add "copy to clipboard" button to the build console output.

Submitter checklist

Tasks

Edit tasklist title
Beta Give feedback Tasklist Tasks, more options

Delete tasklist

Delete tasklist block?
Are you sure? All relationships in this tasklist will be removed.
  1. The Jira issue, if it exists, is well-described.
    Options
  2. The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see examples). Fill in the Proposed upgrade guidelines section only if there are breaking changes or changes that may require extra steps from users during upgrade.
    Options
  3. There is automated testing or an explanation as to why this change has no tests.
    Options
  4. New public classes, fields, and methods are annotated with @Restricted or have @since TODO Javadocs, as appropriate.
    Options
  5. New deprecations are annotated with @Deprecated(since = "TODO") or @Deprecated(forRemoval = true, since = "TODO"), if applicable.
    Options
  6. New or substantially changed JavaScript is not defined inline and does not call eval to ease future introduction of Content Security Policy (CSP) directives (see documentation).
    Options
  7. For dependency updates, there are links to external changelogs and, if possible, full differentials.
    Options
  8. For new APIs and extension points, there is a link to at least one consumer.
    Options

Desired reviewers

@jenkinsci/core-pr-reviewers

Before the changes are marked as ready-for-merge:

Maintainer checklist

Tasks

Edit tasklist title
Beta Give feedback Tasklist Tasks, more options

Delete tasklist

Delete tasklist block?
Are you sure? All relationships in this tasklist will be removed.
  1. There are at least two (2) approvals for the pull request and no outstanding requests for change.
    Options
  2. Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
    Options
  3. Changelog entries in the pull request title and/or Proposed changelog entries are accurate, human-readable, and in the imperative mood.
    Options
  4. Proper changelog labels are set so that the changelog can be generated automatically.
    Options
  5. If the change needs additional upgrade steps from users, the upgrade-guide-needed label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).
    Options
  6. If it would make sense to backport the change to LTS, a Jira issue must exist, be a Bug or Improvement, and be labeled as lts-candidate to be considered (see query).
    Options

Copy link

welcome bot commented Feb 14, 2024

Yay, your first pull request towards Jenkins core was created successfully! Thank you so much!

A contributor will provide feedback soon. Meanwhile, you can join the chats and community forums to connect with other Jenkins users, developers, and maintainers.

@NotMyFault NotMyFault added rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted needs-security-review Awaiting review by a security team member labels Feb 14, 2024
@NotMyFault NotMyFault requested a review from a team February 14, 2024 22:03
@MarkEWaite
Copy link
Contributor

Thanks for the pull request @anhcraft . When you performed the testing, did you confirm that the copied text was inserted into the clipboard? When I've tested these types of pull requests in the past, I needed to use an HTTPS URL to check that the correct text was placed on the clipboard.

@timja
Copy link
Member

timja commented Feb 15, 2024

I needed to use an HTTPS URL to check that the correct text was placed on the clipboard.

It should be a secure context, which is localhost or https url

@anhcraft
Copy link
Contributor Author

Thanks for the pull request @anhcraft . When you performed the testing, did you confirm that the copied text was inserted into the clipboard? When I've tested these types of pull requests in the past, I needed to use an HTTPS URL to check that the correct text was placed on the clipboard.

It worked for me when running locally. My PR does not change the secure-context check at all.
Related PRs: #7665 #8554

@anhcraft
Copy link
Contributor Author

Confirmed it works for existing copy buttons (script console, agent page )

Screenshot 2024-02-16 011213

@lemeurherve
Copy link
Member

lemeurherve commented Feb 15, 2024

Would it be possible to put the copy button in the top right corner of the logs like it's done on GitHub amongst others?

Having it alongside titles gives the false impression that's their content which will be copied, it's not obvious at first look these buttons concern the logs block below.

Exemple of a block with a copy button on the top right corner.


Another line.


The end.

@MarkEWaite
Copy link
Contributor

Would it be possible to put the copy button in the top right corner of the logs like it's done on GitHub amongst others?

I think that is a reasonable request for another pull request, since the placement that @anhcraft has selected is consistent with the placement of other copy buttons in Jenkins.

@yaroslavafenkin yaroslavafenkin added security-approved @jenkinsci/core-security-review reviewed this PR for security issues and removed needs-security-review Awaiting review by a security team member labels Feb 16, 2024
Copy link
Member

@NotMyFault NotMyFault left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@NotMyFault NotMyFault requested a review from a team February 18, 2024 15:50
@NotMyFault NotMyFault requested a review from a team February 20, 2024 14:21
@NotMyFault NotMyFault requested a review from timja March 4, 2024 14:47
Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/label ready-for-merge


This PR is now ready for merge, after ~24 hours, we will merge it if there's no negative feedback.

Thanks!

@comment-ops-bot comment-ops-bot bot added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Mar 4, 2024
@NotMyFault NotMyFault merged commit b0a251a into jenkinsci:master Mar 5, 2024
17 checks passed
Copy link

welcome bot commented Mar 5, 2024

Congratulations on getting your very first Jenkins core pull request merged 🎉🥳

This is a fantastic achievement, and we're thrilled to have you as part of our community! Thank you for your valuable input, and we look forward to seeing more of your contributions in the future!

We would like to invite you to join the community chats and forums to meet other Jenkins contributors 😊
Don't forget to check out the participation page to learn more about how to contribute to Jenkins.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted security-approved @jenkinsci/core-security-review reviewed this PR for security issues
Projects
None yet
6 participants