diff --git a/js/app/controllers/EpnTapModule.js b/js/app/controllers/EpnTapModule.js
index ad5c73d..cfd0622 100644
--- a/js/app/controllers/EpnTapModule.js
+++ b/js/app/controllers/EpnTapModule.js
@@ -72,19 +72,53 @@ Ext.define('amdaDesktop.EpnTapModule', {
 	},
 
 	all_prettify: function(name) {
-		return 'All ' + this.prettify(name[name.length-1] == 's' ? name : name + 's');
+		return 'All ' + (name[name.length-1] == 's' ? name : name + 's').replace(/_/g, ' ').toLowerCase();
 	},
 
 	update_services: function() {
 		this.sp_grid.getStore().removeAll();
 		this.gp_grid.getStore().removeAll();
 
-		// TODO: mettre à jour la liste des services
+		var filter_dic = new Array();
+		if(this.dpt_cb.value == 'all') {
+			for (var dpt in this.services) {
+				for (var tc in this.services[dpt]) {
+					for (tn in this.services[dpt][tc]) {
+						for (serv in this.services[dpt][tc][tn]) {
+							filter_dic[serv] = this.services[dpt][tc][tn][serv][0] + (serv in filter_dic ? filter_dic[serv] : 0);
+						}
+					}
+				}
+			}
+		} else if (this.tc_cb.value == 'all') {
+			for (var tc in this.services[this.dpt_cb.value]) {
+				for (tn in this.services[this.dpt_cb.value][tc]) {
+					for (serv in this.services[this.dpt_cb.value][tc][tn]) {
+						filter_dic[serv] = this.services[this.dpt_cb.value][tc][tn][serv][0] + (serv in filter_dic ? filter_dic[serv] : 0);
+					}
+				}
+			}
+		} else if (this.tn_cb.value == 'all') {
+			for (tn in this.services[this.dpt_cb.value][this.tc_cb.value]) {
+				for (serv in this.services[this.dpt_cb.value][this.tc_cb.value][tn]) {
+					filter_dic[serv] = this.services[this.dpt_cb.value][this.tc_cb.value][tn][serv][0] + (serv in filter_dic ? filter_dic[serv] : 0);
+				}
+			}
+		} else {
+			for (serv in this.services[this.dpt_cb.value][this.tc_cb.value][this.tn_cb.value]) {
+				filter_dic[serv] = this.services[this.dpt_cb.value][this.tc_cb.value][this.tn_cb.value][serv][0] + (serv in filter_dic ? filter_dic[serv] : 0);
+			}
+		}
 
-		// var target_names = services[this.dpt_cb.value][this.tc_cb.value];
-		// for (var res_key in results) {
-		// 	sp_store.add({'id': res_key, 'nb_results': results[res_key][0]});
-		// }
+		var filter = Object.keys(filter_dic).map(function(key) {
+			return [key, filter_dic[key]];
+		});
+		filter.sort(function(first, second) {
+			return second[1] - first[1];
+		});
+		for (var s = 0; s < filter.length; s++) {
+			this.sp_grid.getStore().add({'id': filter[s][0], 'nb_results': filter[s][1]});
+		}
 	},
 
 	onWindowLoaded: function(services) {
@@ -126,16 +160,18 @@ Ext.define('amdaDesktop.EpnTapModule', {
 			var target_classes = this.services[this.dpt_cb.value];
 
 			if (Object.keys(target_classes).length == 1) {
-				this.tc_cb.getStore().add({'id': target_classes[0], 'name': this.prettify(target_classes[0])});
+				this.tc_cb.getStore().add({'id': Object.keys(target_classes)[0], 'name': this.prettify(Object.keys(target_classes)[0])});
 				this.tc_cb.disable();
+				this.tc_cb.select(this.tc_cb.getStore().getAt(0)['internalId']);
+				this.onTargetClassCB();
 			} else {
 				this.tc_cb.getStore().add({'id': 'all', 'name': this.all_prettify(this.dpt_dic[this.dpt_cb.value])});
 				for (var tc_id in target_classes) {
 					this.tc_cb.getStore().add({'id': tc_id, 'name': this.prettify(tc_id)});
 				}
+				this.tc_cb.select('all');
 				this.tc_cb.enable();
 			}
-			this.tc_cb.select(this.tc_cb.getStore().getAt(0)['internalId']);
 		}
 		this.update_services();
 	},
@@ -150,15 +186,16 @@ Ext.define('amdaDesktop.EpnTapModule', {
 
 			if (Object.keys(target_names).length == 1) {
 				this.tn_cb.getStore().add({'id': Object.keys(target_names)[0], 'name': this.prettify(Object.keys(target_names)[0])});
+				this.tn_cb.select(this.tn_cb.getStore().getAt(0)['internalId']);
 				this.tn_cb.disable();
 			} else {
 				this.tn_cb.getStore().add({'id': 'all', 'name': this.all_prettify(this.tc_cb.value)});
 				for (var tn_id in target_names) {
 					this.tn_cb.getStore().add({'id': tn_id, 'name': this.prettify(tn_id)});
 				}
+				this.tn_cb.select('all');
 				this.tn_cb.enable();
 			}
-			this.tn_cb.select(this.tn_cb.getStore().getAt(0)['internalId']);
 		}
 		this.update_services();
 	},
@@ -192,14 +229,5 @@ Ext.define('amdaDesktop.EpnTapModule', {
 			handler: this.createWindow,
 			scope: this
 		};
-
-		// this.onWindowLoaded = onWindowLoaded;
-		// this.onSearchBtnClicked = onSearchBtnClicked;
-		// this.onProductTypeCB = onProductTypeCB;
-		// this.onGranuleSelected = onGranuleSelected;
-		// this.onServiceSelected = onServiceSelected;
-		// this.onTargetClassCB = onTargetClassCB;
-		// this.onTargetNameCB = onTargetNameCB;
 	}
-
 });
--
libgit2 0.21.2