diff --git a/app/controllers/plans_controller.rb b/app/controllers/plans_controller.rb index 7cfde4d..c7b45bb 100644 --- a/app/controllers/plans_controller.rb +++ b/app/controllers/plans_controller.rb @@ -1,6 +1,8 @@ class PlansController < ApplicationController #Uncomment the line below in order to add authentication to this page - users without permission will not be able to add new plans #load_and_authorize_resource + # + before_filter :get_plan_list_columns, only: %i( index ) after_action :verify_authorized TEXTAREA = QuestionFormat.where(title: "Text area").first.id diff --git a/app/controllers/settings/plans_controller.rb b/app/controllers/settings/plans_controller.rb index 2c65aea..9708521 100644 --- a/app/controllers/settings/plans_controller.rb +++ b/app/controllers/settings/plans_controller.rb @@ -1,14 +1,17 @@ module Settings class PlansController < SettingsController + before_filter :get_plan_list_columns before_filter :get_settings + after_action :verify_authorized def show - authorize @plan + authorize [:settings, @plan] respond_to do |format| format.html format.partial + format.json{ render json: settings_json } end end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index e445a1a..36e1c65 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -20,16 +20,16 @@ # Populate a variable column for the project list # -------------------------------------------------------- - def project_list_column_body(column, project) + def plan_list_column_body(column, plan) col = (column.kind_of?(Array) ? column[0] : column) klass, content = case col when 'name' - [ "dmp_td_big", link_to(project.title, project_path(project), class: "dmp_table_link") ] + [ "dmp_td_big", link_to(plan.title, plan_path(plan), class: "dmp_table_link") ] when 'owner' - user = project.owner + user = plan.owner text = if user.nil? "Unknown" @@ -41,23 +41,23 @@ [ "tmp_td_small", text ] when 'shared' - shared_num = project.project_groups.count - 1 + shared_num = plan.users.count - 1 text = shared_num > 0 ? (t("helpers.yes_label") + " (with #{shared_num} people) ") : t("helpers.no_label") [ "dmp_td_small", text ] when 'visibility' - ["dmp_td_small", (project.visibility.nil? ? I18n.t("helpers.project.visibilities.labels.organisationally_visible") : I18n.t("helpers.project.visibilities.labels.#{project.visibility}"))] + ["dmp_td_small", (plan.visibility.nil? ? I18n.t("helpers.project.visibilities.labels.organisationally_visible") : I18n.t("helpers.project.visibilities.labels.#{project.visibility}"))] when 'last_edited' - [ "dmp_td_small", l(project.latest_update.to_date, formats: :short) ] + [ "dmp_td_small", l(plan.latest_update.to_date, formats: :short) ] when 'description' - [ "dmp_td_medium", (project.try(col) || "Unknown") ] + [ "dmp_td_medium", (plan.try(col) || "Unknown") ] when 'non_link_name' - [ "dmp_td_big", project.title ] + [ "dmp_td_big", plan.title ] when 'template' - ["dmp_td_big", project.dmptemplate.title] + ["dmp_td_big", plan.template.title] when 'organisation' - ["dmp_td_medium", (project.organisation.nil? ? project.owner.organisation.name : project.organisation.name)] + ["dmp_td_medium", (plan.org.nil? ? plan.owner.org.name : plan.org.name)] else - [ "dmp_td_small", (project.try(col) || "Unknown") ] + [ "dmp_td_small", (plan.try(col) || "Unknown") ] end content_tag(:td, content, class: klass) diff --git a/app/models/plan.rb b/app/models/plan.rb index 0a7de28..bf970ee 100644 --- a/app/models/plan.rb +++ b/app/models/plan.rb @@ -740,14 +740,14 @@ end ## - # the datetime for the latest update of this project, or any plan it owns + # the datetime for the latest update of this plan # # @return [DateTime] the time of latest update def latest_update latest_update = updated_at - plans.each do |plan| - if plan.latest_update > latest_update then - latest_update = plan.latest_update + phases.each do |phase| + if phase.updated_at > latest_update then + latest_update = phase.updated_at end end return latest_update diff --git a/app/views/plans/_plan_list_head.html.erb b/app/views/plans/_plan_list_head.html.erb new file mode 100644 index 0000000..efb2503 --- /dev/null +++ b/app/views/plans/_plan_list_head.html.erb @@ -0,0 +1,6 @@ + + <% @selected_columns.each do |column| %> + <%= project_list_column_heading(column) %> + <% end %> + <%= t("helpers.select_action")%> + diff --git a/app/views/plans/_plan_list_item.html.erb b/app/views/plans/_plan_list_item.html.erb new file mode 100644 index 0000000..5014813 --- /dev/null +++ b/app/views/plans/_plan_list_item.html.erb @@ -0,0 +1,27 @@ + + <% @selected_columns.each do |column| %> + <%= plan_list_column_body(column, plan) %> + <% end %> + + <% if plan.editable_by?(current_user.id) then %> + <%= link_to t(".edit", :default => t("helpers.links.edit")), plan_path(plan), :class => "dmp_table_link"%> + + <% if plan.administerable_by?(current_user.id) then %> + <%= link_to t("helpers.project.share.tab_share"), share_plan_path(plan), :class => "dmp_table_link"%> + <% end %> + + <%= link_to t("helpers.project.tab_export"), export_plan_path(plan), :class => "dmp_table_link"%> + + <% if plan.administerable_by?(current_user.id) then %> + <%= link_to t(".destroy", :default => t("helpers.links.destroy")), plan_path(plan), :class => "dmp_table_link", + :method => :delete, :data => { + :confirm => t("helpers.project.confirm_delete_text") + }%> + <% end %> + <% else %> + <%= link_to t(".view", :default => t("helpers.view")), plan_path(plan), :class => "dmp_table_link"%> + <%= link_to t("helpers.project.tab_export"), export_plan_path(plan), :class => "dmp_table_link"%> + <% end %> + + + diff --git a/app/views/plans/_toolbar.html.erb b/app/views/plans/_toolbar.html.erb new file mode 100644 index 0000000..7c24a0b --- /dev/null +++ b/app/views/plans/_toolbar.html.erb @@ -0,0 +1,12 @@ +
+
+ <%= search_field_tag(:filter, params[:filter], placeholder: t('helpers.project.filter.placeholder')) %> + + <%= t('helpers.project.filter.cancel') -%> + + +
+ + + +
diff --git a/app/views/plans/index.html.erb b/app/views/plans/index.html.erb index 9769f95..d481cdf 100644 --- a/app/views/plans/index.html.erb +++ b/app/views/plans/index.html.erb @@ -1,38 +1,38 @@ <%- model_class = Plan -%> - - - - - - - - - - - - - <% @plans.each do |plan| %> - - - - - - - - <% end %> - -
<%= model_class.human_attribute_name(:id) %><%= model_class.human_attribute_name(:project_id) %><%= model_class.human_attribute_name(:slug) %><%= model_class.human_attribute_name(:created_at) %><%=t '.actions', :default => t("helpers.actions") %>
<%= link_to plan.id, plan_path(plan) %><%= plan.identifier %><%= plan.slug %><%=l plan.created_at %> - <%= link_to t('.edit', :default => t("helpers.links.edit")), - edit_plan_path(plan), :class => 'btn btn-mini' %> - <%= link_to t('.destroy', :default => t("helpers.links.destroy")), - plan_path(plan), - :method => :delete, - :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => t('helpers.project.share.confirmation_question'))) }, - :class => 'btn btn-mini btn-danger' %> -
+<% javascript "toolbar.js" %> +

+ <%= t("helpers.project.projects_title") %> +

-<%= link_to t('.new', :default => t("helpers.links.new")), + +<% if @plans.count > 0 %> + +

+ <%= raw t("helpers.project.project_text_when_project")%> +

+ + <%= render(partial: "toolbar") %> + + + <%= render(partial: "plan_list_head") %> + + + <% @plans.each do |plan| %> + <%= render(partial: "plan_list_item", locals: { plan: plan } ) %> + <% end %> + +
+ + +<% else %> +

+ <%= raw t("helpers.project.project_text_when_no_project")%> +

+<% end %> + + +

+ <%= link_to t(".new", :default => t("helpers.project.create")), new_plan_path, - :class => 'btn btn-primary' %> + :class => "btn btn-primary" %> +

diff --git a/app/views/projects/_project_list_head.html.erb b/app/views/projects/_project_list_head.html.erb deleted file mode 100644 index efb2503..0000000 --- a/app/views/projects/_project_list_head.html.erb +++ /dev/null @@ -1,6 +0,0 @@ - - <% @selected_columns.each do |column| %> - <%= project_list_column_heading(column) %> - <% end %> - <%= t("helpers.select_action")%> - diff --git a/app/views/projects/_project_list_item.html.erb b/app/views/projects/_project_list_item.html.erb deleted file mode 100644 index 6698fa8..0000000 --- a/app/views/projects/_project_list_item.html.erb +++ /dev/null @@ -1,27 +0,0 @@ - - <% @selected_columns.each do |column| %> - <%= project_list_column_body(column, project) %> - <% end %> - - <% if project.editable_by(current_user.id) then %> - <%= link_to t(".edit", :default => t("helpers.links.edit")), project_path(project), :class => "dmp_table_link"%> - - <% if project.administerable_by(current_user.id) then %> - <%= link_to t("helpers.project.share.tab_share"), share_project_path(project), :class => "dmp_table_link"%> - <% end %> - - <%= link_to t("helpers.project.tab_export"), export_project_path(project), :class => "dmp_table_link"%> - - <% if project.administerable_by(current_user.id) then %> - <%= link_to t(".destroy", :default => t("helpers.links.destroy")), project_path(project), :class => "dmp_table_link", - :method => :delete, :data => { - :confirm => t("helpers.project.confirm_delete_text") - }%> - <% end %> - <% else %> - <%= link_to t(".view", :default => t("helpers.view")), project_path(project), :class => "dmp_table_link"%> - <%= link_to t("helpers.project.tab_export"), export_project_path(project), :class => "dmp_table_link"%> - <% end %> - - - diff --git a/app/views/projects/_toolbar.html.erb b/app/views/projects/_toolbar.html.erb deleted file mode 100644 index 710ffa3..0000000 --- a/app/views/projects/_toolbar.html.erb +++ /dev/null @@ -1,12 +0,0 @@ -
-
- <%= search_field_tag(:filter, params[:filter], placeholder: t('helpers.project.filter.placeholder')) %> - - <%= t('helpers.project.filter.cancel') -%> - - -
- - - -
diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb deleted file mode 100644 index f62ebe6..0000000 --- a/app/views/projects/index.html.erb +++ /dev/null @@ -1,42 +0,0 @@ -<%- model_class = Project -%> -<% javascript "toolbar.js" %> -

- <%= t("helpers.project.projects_title") %> -

- - -<% if @has_projects %> - -

- <%= raw t("helpers.project.project_text_when_project")%> -

- - <%= render(partial: "toolbar") %> - - - <%= render(partial: "project_list_head") %> - - - <% if @projects.any? %> - <% @projects.each do |project| %> - <%= render(partial: "project_list_item", locals: { project: project } ) %> - <% end %> - <% else %> - - <% end %> - -
<%= t("helpers.project.filter.no_plans_match", filter: params[:filter]) %>
- - -<% else %> -

- <%= raw t("helpers.project.project_text_when_no_project")%> -

-<% end %> - - -

- <%= link_to t(".new", :default => t("helpers.project.create")), - new_project_path, - :class => "btn btn-primary" %> -