diff --git a/public_html/js/action-script.js b/public_html/js/action-script.js
index f9f25f4..22f06ec 100644
--- a/public_html/js/action-script.js
+++ b/public_html/js/action-script.js
@@ -1,3 +1,19 @@
var DOM = {
body: $('body')
};
+
+
+
+var process = function(){
+ log('Image loaded');
+};
+
+
+
+/* [x] Chargement image
+=========================================================*/
+var iL = new ImageLoader( $('img'), function(){
+
+ this.load('front:male:1.jpg', process.bind(this));
+
+});
diff --git a/public_html/js/lib/image-loader.js b/public_html/js/lib/image-loader.js
index caeaf56..602a0a3 100644
--- a/public_html/js/lib/image-loader.js
+++ b/public_html/js/lib/image-loader.js
@@ -1,7 +1,7 @@
/* CONSTRUCTEUR
*/
-var ImageLoader = function(imageElement){
+var ImageLoader = function(imageElement, callback){
/* [0] Initialisation + paramètres
=========================================================*/
this.wrapper = (imageElement instanceof HTMLImageElement) ? imageElement : null;
@@ -9,12 +9,50 @@ var ImageLoader = function(imageElement){
if( !this.wrapper )
throw new Error('Param 1 expected to be an HTMLImageElement (), but '+imageElement.constructor.name+' received');
- /* [1] Chargement du tree d'images
+ /* [1] Chargement de la liste d'images
=========================================================*/
- this.treeLoaded = false;
+ this.loaded = false;
AJAX.send('./pictures/index.php', (function(response){
- this.treeLoaded = true;
- console.log( JSON.parse(response) );
+ this.images = JSON.parse(response);
+ this.loaded = true;
+
+ callback.call(this);
}).bind(this), 'GET');
};
+
+
+
+
+/* CHARGEMENT D'IMAGE
+*
+* @path Chemin de l'image
+* @callback Callback lancé quand l'image est chargée
+*
+*/
+ImageLoader.prototype.load = function(path, callback){
+ if( !this.loaded )
+ throw new Error('image tree not loaded yet');
+
+ /* [0] Initialisation des paramètres
+ =========================================================*/
+ if( typeof path != 'string' )
+ throw new Error('Param 1 expected to be a ');
+
+ path = path.replace(/:/g, '/');
+
+ if( typeof callback != 'function' )
+ throw new Error('Param 2 expected to be a ');
+
+ if( !~this.images.indexOf('/'+path) ){
+ console.warn('Resource not found!');
+ return;
+ }
+
+ /* [1] On charge l'image + callback
+ =========================================================*/
+ this.wrapper.addEventListener('load', callback, false);
+ this.wrapper.src = './pictures/' + path;
+
+ return true;
+};
diff --git a/public_html/js/lib/min/image-loader.js b/public_html/js/lib/min/image-loader.js
index 546f2f8..e8d0c5f 100644
--- a/public_html/js/lib/min/image-loader.js
+++ b/public_html/js/lib/min/image-loader.js
@@ -1 +1,2 @@
-var ImageLoader=function(a){this.wrapper=a instanceof HTMLImageElement?a:null;if(!this.wrapper)throw Error("Param 1 expected to be an HTMLImageElement (), but "+a.constructor.name+" received");this.treeLoaded=!1;AJAX.send("./pictures/index.php",function(a){this.treeLoaded=!0;console.log(JSON.parse(a))}.bind(this),"GET")};
+var ImageLoader=function(a,b){this.wrapper=a instanceof HTMLImageElement?a:null;if(!this.wrapper)throw Error("Param 1 expected to be an HTMLImageElement (), but "+a.constructor.name+" received");this.loaded=!1;AJAX.send("./pictures/index.php",function(a){this.images=JSON.parse(a);this.loaded=!0;b.call(this)}.bind(this),"GET")};
+ImageLoader.prototype.load=function(a,b){if(!this.loaded)throw Error("image tree not loaded yet");if("string"!=typeof a)throw Error("Param 1 expected to be a ");a=a.replace(/:/g,"/");if("function"!=typeof b)throw Error("Param 2 expected to be a ");if(~this.images.indexOf("/"+a))return this.wrapper.addEventListener("load",b,!1),this.wrapper.src="./pictures/"+a,!0;console.warn("Resource not found!")};
diff --git a/public_html/js/min/action-script.js b/public_html/js/min/action-script.js
index b7d8d22..895e84e 100644
--- a/public_html/js/min/action-script.js
+++ b/public_html/js/min/action-script.js
@@ -1 +1 @@
-var DOM={body:$("body")};
+var DOM={body:$("body")},process=function(){log("Image loaded")},iL=new ImageLoader($("img"),function(){this.load("front:male:1.jpg",process.bind(this))});
diff --git a/public_html/pictures/index.php b/public_html/pictures/index.php
index d28c196..30336d3 100755
--- a/public_html/pictures/index.php
+++ b/public_html/pictures/index.php
@@ -6,10 +6,6 @@
/* (1) Catch 'pictures' dir */
$dir = dirname(__FILE__);
- /* (2) Defining authorized extensions */
- $ext = ['jpg', 'png', 'jpeg'];
- $checker = '/\.('. implode('|', $ext) .')$/i';
-
/* [2] Listing all pictures recursivly
=========================================================*/
@@ -48,10 +44,23 @@
}
+ // TRANSFORME UN ARBRE EN LISTE
+ function toFlaggedImage($folder, $name){
+ $flagged = [];
+ foreach($folder as $e=>$element)
+ if( !is_array($element) )
+ $flagged[] = "$name/$element";
+ else
+ $flagged = array_merge($flagged, toFlaggedImage($element, "$name/$e") );
+
+ return $flagged;
+ }
/* [2] On affiche le résultat
=========================================================*/
+ $fetched = toFlaggedImage( getImages( $dir ) );
+
header('Content-Type: application/json');
- echo json_encode( getImages($dir) );
+ echo json_encode( $fetched );