From cbe9ff6c7db9de03ed6ee6fcfe0d6763ae6a5dc7 Mon Sep 17 00:00:00 2001 From: Flavio Tarsetti <Flavio.Tarsetti@idiap.ch> Date: Sun, 21 Aug 2016 23:53:43 +0200 Subject: [PATCH] [plotters] display only "unique" names for existing plotterparameters for: * new plotterparameter * fork --- .../panels/viewer_editor.html | 13 ++++++- .../panels/viewer_editor_fork.html | 34 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html b/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html index 7841f21be..b5e956cf5 100644 --- a/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html +++ b/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html @@ -87,9 +87,20 @@ getNames(); function getNames() { {% if action != 'pending' %} {# experiment name was not selected #} var d = $.get('{% url "api_plotters:view" request.user.username %}?fields=name,author'); + var duplicates = []; d.done(function(data) { //filter returned names to only keep author experiments' names - data = data.filter(function(e) { + //remove duplicate names + finaldata = []; + for(var i=0; i<data.length; i++) + { + if(!duplicates.includes(data[i].name.split("/")[1]) && data[i].author == {{ request.user.id }}) + { + finaldata.push(data[i]); + duplicates.push(data[i].name.split("/")[1]); + } + } + data = finaldata.filter(function(e) { return (e.author == {{ request.user.id }}); }).map(function(e){ return e.name.split("/")[1]; }); beat.plotterparameters.dialogs.name_typeahead('input#settings_name', data); diff --git a/beat/web/plotters/templates/plotterparameters/panels/viewer_editor_fork.html b/beat/web/plotters/templates/plotterparameters/panels/viewer_editor_fork.html index aa2e0c650..57c69da83 100644 --- a/beat/web/plotters/templates/plotterparameters/panels/viewer_editor_fork.html +++ b/beat/web/plotters/templates/plotterparameters/panels/viewer_editor_fork.html @@ -117,4 +117,38 @@ <script type="text/javascript"> +getNames(); + {# sets up the name input box so you can get auto-completion #} + function getNames() { + {% if action != 'pending' %} {# experiment name was not selected #} + var d = $.get('{% url "api_plotters:view" request.user.username %}?fields=name,author'); + var duplicates = []; + d.done(function(data) { + //filter returned names to only keep author experiments' names + //remove duplicate names + finaldata = []; + for(var i=0; i<data.length; i++) + { + if(!duplicates.includes(data[i].name.split("/")[1]) && data[i].author == {{ request.user.id }}) + { + finaldata.push(data[i]); + duplicates.push(data[i].name.split("/")[1]); + } + } + data = finaldata.filter(function(e) { + return (e.author == {{ request.user.id }}); + }).map(function(e){ + return e.name.split("/")[1]; + }); + beat.plotterparameters.dialogs.name_typeahead('input#settings_name', data); + }); + {% else %} + var d = $.Deferred(); + {# notice we cannot hide now, it is not meaningful #} + $('#ui').on('show', function(){$('#settings_name-div').hide()}); + d.resolve();{# fires immediately #} + {% endif %} + return d.promise(); + } + </script> -- GitLab