mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 19:43:47 +00:00 
			
		
		
		
	Now we can use common HTML image upload widget template `image_upload_widget.hbs` for realm icon. we can access icon element using "#realm-icon-upload-widget .realm-icon-elements". also we need to extract CSS for realm icon and place them separately under `#realm-icon-upload-widget` css id.
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| exports.build_realm_icon_widget = function (upload_function) {
 | |
|     const get_file_input = function () {
 | |
|         return $('#realm-icon-upload-widget .image_file_input').expectOne();
 | |
|     };
 | |
| 
 | |
|     if (!page_params.is_admin) {
 | |
|         return;
 | |
|     }
 | |
|     if (page_params.realm_icon_source === 'G') {
 | |
|         $("#realm-icon-upload-widget .settings-page-delete-button").hide();
 | |
|     } else {
 | |
|         $("#realm-icon-upload-widget .settings-page-delete-button").show();
 | |
|     }
 | |
|     $("#realm-icon-upload-widget .settings-page-delete-button").on('click', function (e) {
 | |
|         e.preventDefault();
 | |
|         e.stopPropagation();
 | |
|         channel.del({
 | |
|             url: '/json/realm/icon',
 | |
|         });
 | |
|     });
 | |
| 
 | |
|     return upload_widget.build_direct_upload_widget(
 | |
|         get_file_input,
 | |
|         $("#realm-icon-upload-widget .image_file_input_error").expectOne(),
 | |
|         $("#realm-icon-upload-widget .image_upload_button").expectOne(),
 | |
|         upload_function,
 | |
|         page_params.max_icon_file_size
 | |
|     );
 | |
| };
 | |
| 
 | |
| exports.rerender = function () {
 | |
|     $("#realm-icon-upload-widget .image-block").attr("src", page_params.realm_icon_url);
 | |
|     if (page_params.realm_icon_source === 'U') {
 | |
|         $("#realm-icon-upload-widget .settings-page-delete-button").show();
 | |
|     } else {
 | |
|         $("#realm-icon-upload-widget .settings-page-delete-button").hide();
 | |
|         // Need to clear input because of a small edge case
 | |
|         // where you try to upload the same image you just deleted.
 | |
|         const file_input = $("#realm-icon-upload-widget .image_file_input");
 | |
|         file_input.val('');
 | |
|     }
 | |
| };
 | |
| 
 | |
| window.realm_icon = exports;
 |