diff --git a/src/MGRAST/html/js/Upload.js b/src/MGRAST/html/js/Upload.js index bcac7aa3..2b15545e 100644 --- a/src/MGRAST/html/js/Upload.js +++ b/src/MGRAST/html/js/Upload.js @@ -444,8 +444,13 @@ function select_metadata_file () { document.getElementById("icon_step_2").style.display = ""; check_submitable(); } else { - alert(result[2]); - unselect_metadata_file(); + if (result[1] eq 'taken') { + alert(result[2]); + unselect_metadata_file(); + } else { + document.getElementById("sel_mdfile_div").innerHTML = result[2]; + update_inbox(); + } } }); } diff --git a/src/MGRAST/lib/JobDB/Project.pm b/src/MGRAST/lib/JobDB/Project.pm index 7f39e9ce..525af0e4 100644 --- a/src/MGRAST/lib/JobDB/Project.pm +++ b/src/MGRAST/lib/JobDB/Project.pm @@ -97,10 +97,10 @@ sub count_public { } sub get_private_projects { - my ($self, $user) = @_; + my ($self, $user, $edit) = @_; unless ($user && ref($user)) { return []; } - my $ids = $user->has_right_to(undef, 'view', 'project'); + my $ids = $edit ? $user->has_right_to(undef,'edit','project') : $user->has_right_to(undef,'view','project'); unless ($ids && (@$ids > 0)) { return []; } my $private = []; diff --git a/src/MGRAST/lib/WebPage/MetagenomeOverview.pm b/src/MGRAST/lib/WebPage/MetagenomeOverview.pm index ef75a2ad..a7adc18f 100644 --- a/src/MGRAST/lib/WebPage/MetagenomeOverview.pm +++ b/src/MGRAST/lib/WebPage/MetagenomeOverview.pm @@ -1314,6 +1314,7 @@ sub get_consensus_chart { # data = [ pos, N, G, C, T, A ] foreach my $row (@$consensus) { next if (($row->[0] eq '#') || (! $row->[6])); + next if (($row->[0] > 100) && ($row->[6] < 1000)); my $sum = $row->[6]; my @per = map { floor(100 * 100 * (($_ * 1.0) / $sum)) / 100 } @$row; push @$data, [ $row->[0] + 1, $per[5], $per[3], $per[2], $per[4], $per[1] ]; diff --git a/src/MGRAST/lib/WebPage/PublishGenome.pm b/src/MGRAST/lib/WebPage/PublishGenome.pm index c08aba42..a01852ba 100644 --- a/src/MGRAST/lib/WebPage/PublishGenome.pm +++ b/src/MGRAST/lib/WebPage/PublishGenome.pm @@ -39,6 +39,7 @@ sub init { $self->title("Make metagenome publicly accessible"); # register components + $self->application->register_component('Table', 'private_projects_table'); $self->application->register_component('Table', 'DisplayMetaData'); $self->application->register_component('Ajax', 'Display_Ajax'); @@ -148,9 +149,22 @@ sub meta_info { unshift @tdata, [ "Project", "project_name", $project->name ]; } elsif ($no_proj_md) { my $error = "

We are unable to publish your metagenome due to the following errors:

"; - $error .= "

Your metagenome does not exist in a project. Please create a new project or add it to an existing project before you can publish.
"; - $error .= "This can be done through the Browse Page: "; - $error .= "

"; + $error .= "

Your metagenome does not exist in a project. Please create a new project or add it to an existing project before you can publish.

"; + + my $projects = $self->app->data_handle('MGRAST')->Project->get_private_projects($user, 1); + if (@$project > 0) { + my $pp_table = $self->app->component('private_projects_table'); + $pp_table->columns( [ { name => 'id' }, { name => 'name' }, { name => 'type' } ] ); + $pp_table->data([ map { [ $_->{id}, "".($_->{name} ? $_->{name} : "-")."", $_->{type} ] } grep { $_->{id} } @$projects ]); + $pp_table->items_per_page(20); + $pp_table->show_select_items_per_page(1); + $pp_table->show_top_browse(1); + $error .= "

Projects you can add metagenomes to:
".$pp_table->output()."
"; + } + else { + $error .= "

You have no existing projects, please create one: "; + } + $error .= "create new project

"; return $error; }