mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	User can generate random image
This commit is contained in:
		@@ -539,7 +539,38 @@ function generateIdentImage() {
 | 
				
			|||||||
	var options = {
 | 
						var options = {
 | 
				
			||||||
		foreground: [color, color2, color3, 255],
 | 
							foreground: [color, color2, color3, 255],
 | 
				
			||||||
		size: 130,
 | 
							size: 130,
 | 
				
			||||||
 | 
							margin: 0.2,
 | 
				
			||||||
		format: 'png'
 | 
							format: 'png'
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	return new Identicon(hash, options).toString();
 | 
						return new Identicon(hash, options).toString();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Turn a data URI into blob
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This function is based on Stoive answer at StackOverFlow question #4998908
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * @param {string} dataURI The URI to process
 | 
				
			||||||
 | 
					 * @return {Blob} generated blob
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function dataURItoBlob(dataURI){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//convert base64 / URLEncoded data component to raw binary data held in a string
 | 
				
			||||||
 | 
						var byteString;
 | 
				
			||||||
 | 
						if(dataURI.split(",")[0].indexOf("base64") >= 0)
 | 
				
			||||||
 | 
							byteString = atob(dataURI.split(",")[1]);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							byteString = unescape(dataURI.split(",")[1]);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						//Separate the out the mime component
 | 
				
			||||||
 | 
						var mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//Write the bytes of the string to a typed array
 | 
				
			||||||
 | 
						var ia = new Uint8Array(byteString.length);
 | 
				
			||||||
 | 
						for(var i = 0; i < byteString.length; i++)
 | 
				
			||||||
 | 
							ia[i] = byteString.charCodeAt(i);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return new Blob([ia], {type: mimeString});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -75,9 +75,15 @@ ComunicWeb.pages.settings.sections.accountImage = {
 | 
				
			|||||||
			appendTo: target
 | 
								appendTo: target
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
 | 
							//Create top actions contener
 | 
				
			||||||
 | 
							var actionsTopContener = createElem2({
 | 
				
			||||||
 | 
								appendTo: accountImageForm,
 | 
				
			||||||
 | 
								type: "div"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//First, offer the user to upload a new account image
 | 
							//First, offer the user to upload a new account image
 | 
				
			||||||
		var newAccountImageLabel = createElem2({
 | 
							var newAccountImageLabel = createElem2({
 | 
				
			||||||
			appendTo: accountImageForm,
 | 
								appendTo: actionsTopContener,
 | 
				
			||||||
			type: "label"
 | 
								type: "label"
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
		var fileInput = createElem2({
 | 
							var fileInput = createElem2({
 | 
				
			||||||
@@ -126,6 +132,46 @@ ComunicWeb.pages.settings.sections.accountImage = {
 | 
				
			|||||||
			});
 | 
								});
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							add_space(actionsTopContener);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Offer the user to create a new random account image
 | 
				
			||||||
 | 
							var generateAccountImageBtn = createElem2({
 | 
				
			||||||
 | 
								appendTo: actionsTopContener,
 | 
				
			||||||
 | 
								type: "div",
 | 
				
			||||||
 | 
								class: "btn btn-success",
 | 
				
			||||||
 | 
								innerHTML: "Generate random"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Make generate account image buttons lives
 | 
				
			||||||
 | 
							generateAccountImageBtn.onclick = function(){
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								//Lock screen
 | 
				
			||||||
 | 
								message = ComunicWeb.common.page.showTransparentWaitSplashScreen();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Generate image
 | 
				
			||||||
 | 
								var base64 = generateIdentImage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Upload image
 | 
				
			||||||
 | 
								var fd = new FormData();
 | 
				
			||||||
 | 
								fd.append("picture", dataURItoBlob("data:image/png;base64," + base64));
 | 
				
			||||||
 | 
								ComunicWeb.components.settings.interface.uploadAccountImage(fd, function(result){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Remove message
 | 
				
			||||||
 | 
									message.remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Check for errors
 | 
				
			||||||
 | 
									if(result.error){
 | 
				
			||||||
 | 
										notify("An error occured while trying to upload generated image !", "danger");
 | 
				
			||||||
 | 
										return;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									notify("Random generated image has been uploaded !", "success");
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									//Reload current page
 | 
				
			||||||
 | 
									ComunicWeb.common.system.reset();
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Stop here if the user does not have any account image
 | 
							//Stop here if the user does not have any account image
 | 
				
			||||||
		if(!info.has_image)
 | 
							if(!info.has_image)
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user