diff --git a/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html b/beat/web/plotters/templates/plotterparameters/panels/viewer_editor.html index 7841f21bea90b7b9a282e8e2204b8087b8eccb92..b5e956cf515c62ca8e3175c70dc254bbcdac0521 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 aa2e0c6500e9b2dd773035ebe7cdf5561a6f8238..57c69da838cfb4a391508eca35cc337778fe32a3 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>