diff --git a/Gruntfile.js b/Gruntfile.js
index 3c8c06b160..5379d38a1b 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -69,6 +69,15 @@ module.exports = function(grunt) {
"dest": "<%= path.asset %>/backbone-amd/",
"flatten": true
},
+ "fancytree": {
+ "expand": true,
+ "src": [
+ "dist/*",
+ "dist/**/*"
+ ],
+ "cwd": "<%= path.bower %>/fancytree",
+ "dest": "<%= path.asset %>/fancytree/"
+ },
"blueimp": {
"expand": true,
"src": "js/load-image.js",
diff --git a/bower.json b/bower.json
index 68e9ec05d0..a10b7fcb01 100644
--- a/bower.json
+++ b/bower.json
@@ -28,7 +28,8 @@
"autobahnjs": "~0.8.0",
"when": "~2.7.0",
"web-socket-js": "~1.0.1",
- "jquery.treeview": "1.4.1"
+ "jquery.treeview": "1.4.1",
+ "fancytree": "~2.7"
},
"devDependencies": {
"mocha": "latest",
diff --git a/templates/web/prod/index.html.twig b/templates/web/prod/index.html.twig
index ff93c1106e..367ed769dc 100644
--- a/templates/web/prod/index.html.twig
+++ b/templates/web/prod/index.html.twig
@@ -104,9 +104,12 @@
background-color: #{{app['settings'].getUserSetting(app['authentication'].getUser(), 'background-selection', '404040')}};
}
+
+
{% endblock %}
{% block javascript %}
+
{% include "common/templates.html.twig" %}
{% endblock %}
diff --git a/www/skins/prod/jquery.main-prod.js b/www/skins/prod/jquery.main-prod.js
index 03b10ac247..a7e8719248 100644
--- a/www/skins/prod/jquery.main-prod.js
+++ b/www/skins/prod/jquery.main-prod.js
@@ -340,7 +340,6 @@ function search_doubles() {
}
function newSearch() {
- $('#proposals').empty();
p4.Results.Selection.empty();
clearAnswers();
@@ -486,16 +485,57 @@ function initAnswerForm() {
console.debug('Aggregations:');
var toDisplay = [];
_.each(aggs, function(value, key) {
- _.each(value.buckets, function(bucket, keyBis) {
- if (!toDisplay[keyBis]) { toDisplay[keyBis] = {}; }
- toDisplay[keyBis][key] = bucket.key + ' ('+ bucket.doc_count + ')';
- });
+ _.each(value.buckets, function(bucket, keyBis) {
+ if (!toDisplay[keyBis]) { toDisplay[keyBis] = {}; }
+ toDisplay[keyBis][key] = bucket.key + ' ('+ bucket.doc_count + ')';
+ });
});
+
console.table(toDisplay);
+ var treeData = [];
+ _.each(aggs, function(value, key) {
+ var entry = {
+ "title" : key,
+ "key": key,
+ "folder": true,
+ "children" : []
+ };
+ _.each(value.buckets, function(bucket) {
+ entry.children.push({
+ "title": bucket.key + ' ('+ bucket.doc_count + ')',
+ "key": bucket.key,
+ "query": bucket.key + " IN " + key
+ });
+ });
+ treeData.push(entry);
+ });
+
$('#answers').empty().append(datas.results).removeClass('loading');
+ var $tree = $("#proposals");
+
+ if ($tree.data("ui-fancytree")) {
+ $tree.fancytree("destroy");
+ }
+
+ if (treeData.length > 0) {
+ $tree.fancytree({
+ source: treeData,
+ activate: function(event, data){
+ var node = data.node;
+ if (typeof node.data.query === "undefined") {
+ return;
+ }
+ $('form[name="phrasea_query"] input[name="qry"]').val(node.data.query);
+ checkFilters();
+ newSearch();
+ $('searchForm').trigger('submit');
+ }
+ });
+ }
+
$("#answers img.lazyload").lazyload({
container: $('#answers')
});
@@ -506,10 +546,6 @@ function initAnswerForm() {
$('#IMGT_' + el).addClass('selected');
});
- if (datas.phrasea_props && $.trim(datas.phrasea_props) !== '') {
- $('#proposals').empty().append(datas.phrasea_props);
- $('#idFrameC li.proposals_WZ').addClass('active');
- }
p4.tot = datas.total_answers;
p4.tot_options = datas.form;
p4.tot_query = datas.query;