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;