mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	user_profile_modal: Abbrevate long URLs of custom fields.
Abbreviated long URL for custom field in the user profile modal and user card popover. Added a copy-to-clipboard icon at the end of the URL. When hovering over the copy button, it displays a tippy tooltip with the text `Copy URL`. Clicking the copy button displays a `Copied` tippy tooltip for 1 second. Fixes #21680
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							f27adec02d
						
					
				
				
					commit
					4ee515a245
				
			@@ -29,6 +29,7 @@ import * as rows from "./rows";
 | 
				
			|||||||
import * as settings_config from "./settings_config";
 | 
					import * as settings_config from "./settings_config";
 | 
				
			||||||
import * as sidebar_ui from "./sidebar_ui";
 | 
					import * as sidebar_ui from "./sidebar_ui";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
 | 
					import {show_copied_confirmation} from "./tippyjs";
 | 
				
			||||||
import * as ui_report from "./ui_report";
 | 
					import * as ui_report from "./ui_report";
 | 
				
			||||||
import * as ui_util from "./ui_util";
 | 
					import * as ui_util from "./ui_util";
 | 
				
			||||||
import * as user_deactivation_ui from "./user_deactivation_ui";
 | 
					import * as user_deactivation_ui from "./user_deactivation_ui";
 | 
				
			||||||
@@ -830,6 +831,16 @@ function register_click_handlers() {
 | 
				
			|||||||
        const user = people.get_by_user_id(user_id);
 | 
					        const user = people.get_by_user_id(user_id);
 | 
				
			||||||
        toggle_user_card_popover_manage_menu(e.target, user);
 | 
					        toggle_user_card_popover_manage_menu(e.target, user);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					    new ClipboardJS(".copy-custom-field-url", {
 | 
				
			||||||
 | 
					        text(trigger) {
 | 
				
			||||||
 | 
					            return $(trigger)
 | 
				
			||||||
 | 
					                .closest(".custom-user-url-field")
 | 
				
			||||||
 | 
					                .find(".custom-profile-fields-link")
 | 
				
			||||||
 | 
					                .attr("href");
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    }).on("success", (e) => {
 | 
				
			||||||
 | 
					        show_copied_confirmation(e.trigger);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function initialize() {
 | 
					export function initialize() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,6 +146,36 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.custom-user-url-field {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .custom-profile-fields-link {
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					        white-space: nowrap;
 | 
				
			||||||
 | 
					        text-overflow: ellipsis;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .copy-custom-field-url {
 | 
				
			||||||
 | 
					        background-color: transparent;
 | 
				
			||||||
 | 
					        border: 0;
 | 
				
			||||||
 | 
					        padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #clipboard_image {
 | 
				
			||||||
 | 
					            /* Adjust margin to align the copy icon */
 | 
				
			||||||
 | 
					            margin: -2px 0 0 6px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &:hover path {
 | 
				
			||||||
 | 
					                fill: hsl(204deg 100% 40%);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        &:focus {
 | 
				
			||||||
 | 
					            outline: none;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.user-card-popover-actions .user-card-popover-manage-menu-btn {
 | 
					.user-card-popover-actions .user-card-popover-manage-menu-btn {
 | 
				
			||||||
    opacity: 0.8;
 | 
					    opacity: 0.8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,12 @@
 | 
				
			|||||||
            <div class="name">{{this.name}}</div>
 | 
					            <div class="name">{{this.name}}</div>
 | 
				
			||||||
        {{/unless}}
 | 
					        {{/unless}}
 | 
				
			||||||
        {{#if this.is_link}}
 | 
					        {{#if this.is_link}}
 | 
				
			||||||
 | 
					            <div class="custom-user-url-field">
 | 
				
			||||||
                <a tabindex="0" href="{{this.value}}" target="_blank" rel="noopener noreferrer" class="value custom-profile-fields-link {{#if ../for_user_card_popover}}tippy-zulip-tooltip{{/if}}" data-tippy-content="{{this.name}}">{{this.value}}</a>
 | 
					                <a tabindex="0" href="{{this.value}}" target="_blank" rel="noopener noreferrer" class="value custom-profile-fields-link {{#if ../for_user_card_popover}}tippy-zulip-tooltip{{/if}}" data-tippy-content="{{this.name}}">{{this.value}}</a>
 | 
				
			||||||
 | 
					                <button type="submit" class="tippy-zulip-tooltip copy-custom-field-url" data-tippy-content="{{t 'Copy URL' }}">
 | 
				
			||||||
 | 
					                    {{> copy_to_clipboard_svg }}
 | 
				
			||||||
 | 
					                </button>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
        {{else if this.is_external_account}}
 | 
					        {{else if this.is_external_account}}
 | 
				
			||||||
            <a tabindex="0" href="{{this.link}}" target="_blank" rel="noopener noreferrer" class="value custom-profile-fields-link {{#if ../for_user_card_popover}}tippy-zulip-tooltip{{/if}}" data-tippy-content="{{this.name}}">
 | 
					            <a tabindex="0" href="{{this.link}}" target="_blank" rel="noopener noreferrer" class="value custom-profile-fields-link {{#if ../for_user_card_popover}}tippy-zulip-tooltip{{/if}}" data-tippy-content="{{this.name}}">
 | 
				
			||||||
                {{#if (eq this.subtype "github") }}
 | 
					                {{#if (eq this.subtype "github") }}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user