From 1e8f93a86465bce9bf6b32245ef99932c3cbfe08 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 30 Dec 2013 15:08:42 -0500 Subject: [PATCH] Account status is now part of the "notifications" area --- .../app/controllers/users_controller.rb | 2 + .../app/views/users/_notifications.html.erb | 101 ++++++ .../app/views/users/_tables.html.erb | 182 ++++++++++ apps/workbench/app/views/users/home.html.erb | 328 ++---------------- 4 files changed, 310 insertions(+), 303 deletions(-) create mode 100644 apps/workbench/app/views/users/_notifications.html.erb create mode 100644 apps/workbench/app/views/users/_tables.html.erb diff --git a/apps/workbench/app/controllers/users_controller.rb b/apps/workbench/app/controllers/users_controller.rb index 002ea62bea..89d336f5e9 100644 --- a/apps/workbench/app/controllers/users_controller.rb +++ b/apps/workbench/app/controllers/users_controller.rb @@ -10,9 +10,11 @@ class UsersController < ApplicationController end def home + @showallalerts = false @my_ssh_keys = AuthorizedKey.where(authorized_user_uuid: current_user.uuid) # @my_vm_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#virtual_machine', link_class: 'permission', name: 'can_login') # @my_repo_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#repository', link_class: 'permission', name: 'can_write') + @my_jobs = Job. limit(10). order('created_at desc'). diff --git a/apps/workbench/app/views/users/_notifications.html.erb b/apps/workbench/app/views/users/_notifications.html.erb new file mode 100644 index 0000000000..37636c6c3b --- /dev/null +++ b/apps/workbench/app/views/users/_notifications.html.erb @@ -0,0 +1,101 @@ +<% if current_user.andand.is_active %> + +<% if @my_ssh_keys.count == 0 || @showallalerts %> +
+ + <%= image_tag "dax.png", class: "dax" %> +
+ Hi, I noticed that you have not yet set up an SSH public key for use with Arvados. + <%= link_to "Click here to learn about SSH keys in Arvados.", + "http://doc.arvados.org/user/getting_started/ssh-access.html", + style: "font-weight: bold", + target: "_blank" %> + When you have an SSH key you would like to use, paste the SSH public key + in the text box. +
+ <%= form_for AuthorizedKey.new do |f| %> + <%= hidden_field_tag :return_to, request.original_url %> + <%= f.text_area :public_key, cols: 50, rows: 4, placeholder: "Paste your public key here", style: "width: 100%" %> + <%= f.submit :Save, value: raw("✓"), class: "btn btn-primary pull-right" %> + <% end %> +
+<% end %> + +<% if @my_collections.count == 0 || @showallalerts %> +
+ + <%= image_tag "dax.png", class: "dax" %> +

+ Hi, I noticed you haven't uploaded a new collection yet. + <%= link_to "Click here to learn how to upload data to Arvados Keep.", + "http://doc.arvados.org/user/tutorials/tutorial-keep.html", + style: "font-weight: bold", target: "_blank" %> +

+
+ +<% end %> + +<% if @my_jobs.count == 0 || @showallalerts %> +
+ +

<%= image_tag "dax.png", class: "dax" %> + Hi, I noticed you haven't run a job yet. + <%= link_to "Click here to learn how to run an Arvados Crunch job.", + "http://doc.arvados.org/user/tutorials/tutorial-job1.html", + style: "font-weight: bold", + target: "_blank" %> +

+
+<% end %> + +<% if @my_pipelines.count == 0 || @showallalerts %> +
+ +

<%= image_tag "dax.png", class: "dax" %> + Hi, I noticed you haven't run a pipeline yet. + <%= link_to "Click here to learn how to run an Arvados Crunch pipeline.", + "http://doc.arvados.org/user/tutorials/tutorial-new-pipeline.html", + style: "font-weight: bold", + target: "_blank" %> +

+
+<% end %> + +<% end %> + +
+

Useful links

+

+

+
+ +<% if current_user.andand.is_active %> +
+

System status

+ + <% [Human, Trait, Collection, PipelineTemplate, + PipelineInstance].each do |aclass| %> + + + + + <% end %> +
+ + + <%= raw(aclass.to_s.pluralize.underscore.capitalize.gsub '_', ' ') %> + + + + <% if aclass == 'File' %> + <%= Collection.limit(4000).where({}).collect(&:files).flatten(1).count %> + <% else %> + <%= aclass.limit(4000).where({}).count %> + <% end %> +
+
+<% end %> diff --git a/apps/workbench/app/views/users/_tables.html.erb b/apps/workbench/app/views/users/_tables.html.erb new file mode 100644 index 0000000000..c52057cf02 --- /dev/null +++ b/apps/workbench/app/views/users/_tables.html.erb @@ -0,0 +1,182 @@ +<% if current_user.andand.is_active %> +
+ Recent jobs + <%= link_to raw("Show all jobs →"), jobs_path, class: 'pull-right' %> + <% if not current_user.andand.is_active or @my_jobs.empty? %> +
(None) + <% else %> + + + + + + + + + + + + + + + + + + <% @my_jobs[0..6].each do |j| %> + + + + + + + + + + + + +<% end %> +
ScriptOutputLogStatusAge
+ + <%= link_to j.script[0..31], job_path(j.uuid) %> + + + + <% if j.success %> + + + <% Collection.limit(1).where(uuid: j.output).each do |c| + c.files.each do |file| %> + <%= "#{file[0]}/#{file[1]}" %> + <% end %> + <% end %> + + + <% end %> + + + + <% if j.success %> + Log + <% end %> + + + + <%= raw(distance_of_time_in_words(j[:created_at], Time.now).sub('about +','~').sub(' ',' ')) if j[:created_at] %> ago + + + <% if j.success %> + finished + <% elsif j.success == false %> + failed + <% elsif j.running and j.started_at and not j.finished_at %> + <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %> +
+
+
+
+ <% else %> + queued + <% end %> +
+<% end %> +
+ +
+ Recent pipeline instances + <%= link_to raw("Show all pipeline instances →"), jobs_path, class: 'pull-right' %> + <% if not current_user.andand.is_active or @my_pipelines.empty? %> +
(None) + <% else %> + + + + + + + + + + + + + + <% @my_pipelines[0..6].each do |p| %> + + + + + + + + + <% end %> +
Pipeline templateAgeStatus
+ + <% PipelineTemplate.limit(1).where(uuid: p.pipeline_template_uuid).each do |i| %> + <%= link_to i.name, pipeline_instance_path(p.uuid) %> + <% end %> + + + + <%= raw(distance_of_time_in_words(p[:created_at], Time.now).sub('about +','~').sub(' ',' ')) if p[:created_at] %> ago + + + <% if p.success %> + finished + <% elsif p.success == false %> + failed + <% elsif p.active %> + running + <% else %> + queued + <% end %> +
+ <% end %> +
+ +
+ Recent collections + <%= link_to raw("Show all collections →"), collections_path, class: 'pull-right' %> + <% if not current_user.andand.is_active or @my_collections.empty? %> +
(None) + <% else %> + + + + + + + + + + + + <% @my_collections[0..6].each do |c| %> + + + + + <% end %> +
ContentsAge
+ + + <% c.files.each do |file| %> + <%= "#{file[0]}/#{file[1]}" %> + <% end %> + + + + + <%= raw(distance_of_time_in_words(c[:created_at], Time.now).sub('about +','~').sub(' ',' ')) if c[:created_at] %> ago + +
+ <% end %> +
+ +<% else %> + <%= image_tag "dax.png", style: "max-width=40%" %> +<% end %> diff --git a/apps/workbench/app/views/users/home.html.erb b/apps/workbench/app/views/users/home.html.erb index 89fab32097..d221db9a8d 100644 --- a/apps/workbench/app/views/users/home.html.erb +++ b/apps/workbench/app/views/users/home.html.erb @@ -37,315 +37,37 @@ <% end %> -<% if current_user.andand.is_active %> -
- -
- -
- Recent jobs - <%= link_to raw("Show all jobs →"), jobs_path, class: 'pull-right' %> - <% if not current_user.andand.is_active or @my_jobs.empty? %> - (None) - <% else %> - - - - - - - - - - - - - - - - - - <% @my_jobs[0..6].each do |j| %> - - - - - - - - - - - - - <% end %> -
ScriptOutputLogStatusAge
- - <%= link_to j.script[0..31], job_path(j.uuid) %> - - - - <% if j.success %> - - <% Collection.limit(1).where(uuid: j.output).each do |c| - c.files.each do |file| %> - <%= "#{file[0]}/#{file[1]}" %> - <% end %> - <% end %> - - - <% end %> - - - - <% if j.success %> - Log - <% end %> - - - -<%= raw(distance_of_time_in_words(j[:created_at], Time.now).sub('about -','~').sub(' ',' ')) if j[:created_at] %> ago - - - <% if j.success %> - finished - <% elsif j.success == false %> - failed - <% elsif j.running and j.started_at and not j.finished_at %> - <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %> -
-
-
-
- <% else %> - queued - <% end %> -
- <% end %> -
+
+
-
- Recent pipeline instances - <%= link_to raw("Show all pipeline instances →"), jobs_path, class: 'pull-right' %> - <% if not current_user.andand.is_active or @my_pipelines.empty? %> - (None) - <% else %> - - - - - - - - - - - - - - <% @my_pipelines[0..6].each do |p| %> - - - - - - - - - <% end %> -
Pipeline templateAgeStatus
- - <% PipelineTemplate.limit(1).where(uuid: p.pipeline_template_uuid).each do |i| %> - <%= link_to i.name, pipeline_instance_path(p.uuid) %> - <% end %> - - - -<%= raw(distance_of_time_in_words(p[:created_at], Time.now).sub('about -','~').sub(' ',' ')) if p[:created_at] %> ago - - - <% if p.success %> - finished - <% elsif p.success == false %> - failed - <% elsif p.active %> - running - <% else %> - queued - <% end %> -
- <% end %> +
+<% if current_user.andand.is_active %> +

Your account status:
+ Active

+<% elsif current_user %> +

Your account status:
+ New / inactive

+

+ Your account must be activated by an Arvados administrator. If this + is your first time accessing Arvados and would like to request + access, or you believe you are seeing the page in error, please + <%= link_to "contact us", Rails.configuration.activation_contact_link %>. + You should receive an email at the address you used to log in when + your account is activated. +

+

+ <%= link_to raw('Contact us ✉'), + Rails.configuration.activation_contact_link, class: "btn btn-primary" %>

+<% end %>
-
- Recent collections - <%= link_to raw("Show all collections →"), collections_path, class: 'pull-right' %> - <% if not current_user.andand.is_active or @my_collections.empty? %> - (None) - <% else %> - - - - - - - - - - - - <% @my_collections[0..6].each do |c| %> - - - - - <% end %> -
ContentsAge
- - - <% c.files.each do |file| %> - <%= "#{file[0]}/#{file[1]}" %> - <% end %> - - - - -<%= raw(distance_of_time_in_words(c[:created_at], Time.now).sub('about -','~').sub(' ',' ')) if c[:created_at] %> ago - -
- <% end %> -
+ <%= render :partial => 'notifications' %>
- -
-
- -<% if @my_ssh_keys.count == 0%> -
- - <%= image_tag "dax.png", class: "dax" %> -
- Hi, I noticed that you have not yet set up an SSH public key for use with Arvados. - <%= link_to "Click here to learn about SSH keys in Arvados.", - "http://doc.arvados.org/user/getting_started/ssh-access.html", - style: "font-weight: bold", - target: "_blank" %> - When you have an SSH key you would like to use, paste the SSH public key - in the text box. -
- <%= form_for AuthorizedKey.new do |f| %> - <%= hidden_field_tag :return_to, request.original_url %> - <%= f.text_area :public_key, cols: 50, rows: 4, placeholder: "Paste your public key here", style: "width: 100%" %> - <%= f.submit :Save, value: raw("✓"), class: "btn btn-primary pull-right" %> - <% end %> + +
+ <%= render :partial => 'tables' %>
-<% end %> - -<% if @my_collections.count == 0 %> -
- - <%= image_tag "dax.png", class: "dax" %> -

- Hi, I noticed you haven't uploaded a new collection yet. - <%= link_to "Click here to learn how to upload data to Arvados Keep.", - "http://doc.arvados.org/user/tutorials/tutorial-keep.html", - style: "font-weight: bold", target: "_blank" %> -

-
- -<% end %> - -<% if @my_jobs.count == 0 %> -
- -

<%= image_tag "dax.png", class: "dax" %> - Hi, I noticed you haven't run a job yet. - <%= link_to "Click here to learn how to run an Arvados Crunch job.", - "http://doc.arvados.org/user/tutorials/tutorial-job1.html", - style: "font-weight: bold", - target: "_blank" %> -

-
-<% end %> - -<% if @my_pipelines.count == 0 %> -
- -

<%= image_tag "dax.png", class: "dax" %> - Hi, I noticed you haven't run a pipeline yet. - <%= link_to "Click here to learn how to run an Arvados Crunch pipeline.", - "http://doc.arvados.org/user/tutorials/tutorial-new-pipeline.html", - style: "font-weight: bold", - target: "_blank" %> -

-
-<% end %> - -
-

Useful links

-

    -
  • <%= link_to "Arvados project page", "http://arvados.org", target: "_blank" %>
  • -
  • <%= link_to "Tutorials and user guide", - "http://doc.arvados.org/user/", target: "_blank" %>
  • -
-

-
- -
-

System status

- - <% [Human, Trait, Collection, PipelineTemplate, - PipelineInstance].each do |aclass| %> - - - - - <% end %> -
- - - <%= raw(aclass.to_s.pluralize.underscore.capitalize.gsub '_', ' ') %> - - - - <% if aclass == 'File' %> - <%= Collection.limit(4000).where({}).collect(&:files).flatten(1).count %> - <% else %> - <%= aclass.limit(4000).where({}).count %> - <% end %> -
-
-
- -<% elsif current_user %> - <%= image_tag "dax.png", style: "float: left; max-width: 25%; margin-right: 2em" %> -

Welcome to Arvados, <%= current_user.first_name %>!

-
-
-

Your account status

-
-

New / inactive

-

- Your account must be activated by an Arvados administrator. If this - is your first time accessing Arvados and would like to request - access, or you believe you are seeing the page in error, please - <%= link_to "contact us", Rails.configuration.activation_contact_link %>. - You should receive an email at the address you used to log in when - your account is activated. In the mean time, you can - <%= link_to "learn more about Arvados", "https://arvados.org/projects/arvados/wiki/Introduction_to_Arvados" %>, - and <%= link_to "read the Arvados user guide", "http://doc.arvados.org/user" %>. -

-

- <%= link_to raw('Contact us ✉'), - Rails.configuration.activation_contact_link, class: "pull-right btn btn-primary" %>

-
-
-
-<% end %> -- 2.30.2