Parcourir la source

- mon pc me laaaaacchhhee

idleman il y a 5 ans
Parent
commit
cfc40a5b57

+ 25 - 0
plugin/hackpoint/action.php

@@ -71,6 +71,30 @@ switch($_['action']){
 			$item->save();
 		});
 	break;
+
+	case 'hackpoint_sketch_save_cover':
+	Action::write(function(&$response){
+		global $myUser,$_;
+		
+		require_once(__DIR__.SLASH.'Sketch.class.php');
+
+		$sketch = Sketch::provide('sketch');
+		if($myUser->login!=$sketch->creator) throw new Exception("Pemrission insuffisantes", 403);
+		
+		$folder = $sketch->directory();
+
+		if(!file_exists($folder)) mkdir($folder,0755,true);
+
+		
+		$name = 'cover.jpg';
+
+		$stream = preg_replace('|data\:image/[^;];base64,|is','',$_['stream']);
+
+		$row = file_put_contents($folder.SLASH.$name, base64_decode($stream));
+		
+		
+	});
+	break;
 	
 
 	case 'hackpoint_sketch_progress_save':
@@ -318,6 +342,7 @@ switch($_['action']){
 
 
 
+
 		/** PART **/
 	//Récuperation d'une liste de part
 	case 'hackpoint_part_search':

+ 53 - 0
plugin/hackpoint/js/component.js

@@ -92,3 +92,56 @@ function init_components_part(input){
 			}
 		});
 }
+
+
+
+function init_components_dropimage(input){
+
+	if(input.data('picker')){
+		var picker =  input.data('picker')
+	}else{
+		var picker = $('<input class="hidden" type="file">');
+		input.after(picker);
+		input.data('picker',picker);
+		input.css('cursor','pointer');
+	}
+
+	input.click(function(e){
+		e.preventDefault();
+		e.stopPropagation();
+		
+		picker.trigger('click');
+		picker.change(function(){
+			var file = picker.get(0).files[0];
+			 var reader  = new FileReader();
+			 reader.addEventListener("load", function () {
+			
+			    input.attr('src',reader.result);
+			    if(input.attr('data-callback')!=""){
+			    	var callback = input.attr('data-callback');
+			    	
+			    	window[callback](input,reader.result);
+			    }
+
+			  }, false);
+			reader.readAsDataURL(file);
+		});
+	});
+	input.on('drag dragstart dragend dragover dragenter dragleave drop', function (e) {
+		   e.preventDefault();
+		   e.stopPropagation();
+	})
+	input.on('drop', function (e) {
+		var droppedFiles = e.originalEvent.dataTransfer.files;
+		var reader = new FileReader();
+		   reader.readAsDataURL(droppedFiles[0]);
+		   reader.onload = function () {
+		   
+		    input.attr('src',reader.result);
+		   };
+		   reader.onerror = function (error) {
+		     console.log('Error: ', error);
+		   };
+
+	});
+}

+ 13 - 0
plugin/hackpoint/js/main.js

@@ -259,6 +259,7 @@ function hackpoint_sketch_search(callback){
 		sort : $('#sketchs').sortable_table('get')
 	},function(){
 
+		init_components('#sketchs');
 		$('.progress').click(function(e){
 			var x = e.pageX - $(this).offset().left;
        		var percent = Math.round(x *100 / $(this).width());
@@ -307,6 +308,18 @@ function hackpoint_sketch_save(){
 	});
 }
 
+function hackpoint_sketch_save_cover(input,stream){
+	console.log('hey');
+	var li = input.closest('li');
+	$.action({
+			action : 'hackpoint_sketch_save_cover',
+			stream : stream,
+			skecth : li.attr('data-id')
+	},function(){
+		
+	});
+}
+
 
 //Suppression d'élement sketch
 function hackpoint_sketch_delete(element){

+ 2 - 1
plugin/hackpoint/page.list.sketch.php

@@ -36,7 +36,8 @@ require_once(__DIR__.SLASH.'Sketch.class.php');
             <li data-id="{{id}}" class="hidden">
 
                     <div class="card" style="width: 20rem;">
-                      <img src="{{picture}}" class="card-img-top" alt="{{label}}">
+                      <img src="{{picture}}" data-type="dropimage" data-callback="hackpoint_sketch_save_cover" class="card-img-top" alt="{{label}}">
+
                       <span class="sketch-number">#{{id}}</span>
                       <div class="card-body">
                         <h5 class="card-title">{{label}}</h5>