# HG changeset patch
# User Chris Cannam
# Date 1352815765 0
# Node ID 8526d74365278cdfb319cc135e0dcf21acb49c32
# Parent 4ac34b54f94656f4962616662af6259d1e931169# Parent beea10a56132eaebfc5d94796c4722a794115b19
Merge from branch "luisf"
diff -r beea10a56132 -r 8526d7436527 app/controllers/projects_controller.rb
--- a/app/controllers/projects_controller.rb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/controllers/projects_controller.rb Tue Nov 13 14:09:25 2012 +0000
@@ -111,8 +111,7 @@
end
# end of code to be removed
-
- if validate_parent_id && @project.save
+ if validate_is_public_key && validate_parent_id && @project.save
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
# Add current user as a project member if he is not admin
unless User.current.admin?
@@ -300,6 +299,19 @@
render_404
end
+ def validate_is_public_key
+ # Although is_public isn't mandatory in the project model (it gets
+ # defaulted), it must be present in params -- it can be true or
+ # false, but it must be there. This permits us to make forms in
+ # which the user _has_ to select public or private (rather than
+ # defaulting it) if we want to
+ if params.nil? || params[:project].nil? || !params[:project].has_key?(:is_public)
+ @project.errors.add :is_public, :public_or_private
+ return false
+ end
+ true
+ end
+
# Validates parent_id param according to user's permissions
# TODO: move it to Project model in a validation that depends on User.current
def validate_parent_id
diff -r beea10a56132 -r 8526d7436527 app/views/activities/_busy.html.erb
--- a/app/views/activities/_busy.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/views/activities/_busy.html.erb Tue Nov 13 14:09:25 2012 +0000
@@ -1,6 +1,6 @@
<% events = @events_by_day %>
<% if (events.nil?)
- activity = Redmine::Activity::Fetcher.new(User.current)
+ activity = Redmine::Activity::Fetcher.new(User.anonymous)
events = activity.events(Date.today - 14, Date.today + 1)
end
%>
diff -r beea10a56132 -r 8526d7436527 app/views/activities/_busy_institution.html.erb
--- a/app/views/activities/_busy_institution.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/views/activities/_busy_institution.html.erb Tue Nov 13 14:09:25 2012 +0000
@@ -1,7 +1,8 @@
<% events = @events_by_day %>
<% if (events.nil?)
- activity = Redmine::Activity::Fetcher.new(User.current)
- events = activity.events(Date.today - 14, Date.today + 1)
+ activity = Redmine::Activity::Fetcher.new(User.anonymous)
+ days = Setting.activity_days_default.to_i
+ events = activity.events(Date.today - days, Date.today + 1)
end
%>
@@ -24,3 +25,4 @@
<% end %>
<% end %>
+
diff -r beea10a56132 -r 8526d7436527 app/views/projects/_form.html.erb
--- a/app/views/projects/_form.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/views/projects/_form.html.erb Tue Nov 13 14:09:25 2012 +0000
@@ -21,9 +21,20 @@
<%= l(:text_project_homepage_info) %>
-<%= f.check_box :is_public %>
+
+<%= label(:project, :is_public_1, l(:field_public_or_private) + content_tag("span", " *", :class => "required")) %>
+<%
+ # if the project hasn't been created fully yet, then we don't
+ # want to set either public or private (make the user decide)
+ initialised = !@project.id.nil?
+%>
+ <%= f.radio_button :is_public, 1, :checked => (initialised && @project.is_public?) %>
+ <%= l(:text_project_public_info) %>
- <%= l(:text_project_visibility_info) %>
+ <%= f.radio_button :is_public, 0, :checked => (initialised && !@project.is_public?) %>
+ <%= l(:text_project_private_info) %>
+
+ <%= l(:text_project_visibility_info) %>
<%= wikitoolbar_for 'project_description' %>
diff -r beea10a56132 -r 8526d7436527 app/views/projects/explore.html.erb
--- a/app/views/projects/explore.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/views/projects/explore.html.erb Tue Nov 13 14:09:25 2012 +0000
@@ -1,23 +1,29 @@
+<% cache(:action => 'explore', :action_suffix => 'tags', :expires_in => 1.hour) do %>
<%= l(:label_explore_projects) %>
-
<%=l(:label_project_tags_all)%>
<%= render :partial => 'projects/tagcloud' %>
+<% end %>
+
+ <% cache(:action => 'explore', :action_suffix => 'busy_institutions', :expires_in => 1.hour) do %>
<%=l(:label_institutions_busy)%>
<%= render :partial => 'activities/busy_institution' %>
+ <% end %>
<%=l(:label_project_latest)%>
<%= render :partial => 'projects/latest' %>
+ <% cache(:action => 'explore', :action_suffix => 'busy_projects', :expires_in => 1.hour) do %>
<%=l(:label_projects_busy)%>
<%= render :partial => 'activities/busy' %>
+ <% end %>
diff -r beea10a56132 -r 8526d7436527 app/views/projects/new.html.erb
--- a/app/views/projects/new.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ b/app/views/projects/new.html.erb Tue Nov 13 14:09:25 2012 +0000
@@ -3,6 +3,5 @@
<% labelled_tabular_form_for @project do |f| %>
<%= render :partial => 'form', :locals => { :f => f } %>
<%= submit_tag l(:button_create) %>
-<%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
<%= javascript_tag "Form.Element.focus('project_name');" %>
<% end %>
diff -r beea10a56132 -r 8526d7436527 config/locales/en.yml
--- a/config/locales/en.yml Tue Nov 13 13:34:58 2012 +0000
+++ b/config/locales/en.yml Tue Nov 13 14:09:25 2012 +0000
@@ -130,6 +130,7 @@
circular_dependency: "This relation would create a circular dependency"
cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks"
must_accept_terms_and_conditions: "You must accept the Terms and Conditions"
+ public_or_private: "You must select either public or private"
actionview_instancetag_blank_option: Please select
@@ -328,6 +329,7 @@
field_root_directory: Root directory
field_cvsroot: CVSROOT
field_cvs_module: Module
+ field_public_or_private: "Public or Private?"
setting_external_repository: "Select this if the project's main repository is hosted somewhere else"
setting_external_repository_url: "The URL of the existing external repository. Must be publicly accessible without a password"
@@ -966,7 +968,9 @@
text_caracters_minimum: "Must be at least %{count} characters long."
text_length_between: "Length between %{min} and %{max} characters."
text_project_name_info: "This will be the name of your project as it appears throughout this site.
You can change it at any time, in the project's settings."
- text_project_visibility_info: "If your project is not public, it will be visible only to you and to users that you have added as project members.
You can change this later if you wish."
+ text_project_public_info: "Public: visible to anybody browsing the site."
+ text_project_private_info: "Private: visible only to you, and to users you have added as project members."
+ text_project_visibility_info: "You can change whether your project is public or private later if you wish."
text_user_ssamr_description_info: 'Please describe your current research or development interests.
This information will be used at registration to determine that you are a real person – so please be descriptive, or your application may be delayed or rejected.
After registration, the description is publicly visible in your profile and you can edit it at any time.'
text_issue_parent_issue_info: 'If this is a subtask, please insert its parent task number or write the main task name.'
diff -r beea10a56132 -r 8526d7436527 vendor/plugins/redmine_tags/app/controllers/tags_controller.rb
--- a/vendor/plugins/redmine_tags/app/controllers/tags_controller.rb Tue Nov 13 13:34:58 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-class TagsController < ApplicationController
-
- def index
- respond_to do |format|
- format.html {
- render :template => 'tags/index.html.erb', :layout => !request.xhr?
- }
- format.api {
- }
- format.atom {
- }
- end
- end
-
-end
diff -r beea10a56132 -r 8526d7436527 vendor/plugins/redmine_tags/app/views/tags/index.html.erb
--- a/vendor/plugins/redmine_tags/app/views/tags/index.html.erb Tue Nov 13 13:34:58 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<% content_for :header_tags do %>
- <%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
- <%= stylesheet_link_tag 'redmine_tags', :plugin => 'redmine_tags' %>
-<% end %>
-
-
-
-
- <%= l("label_project_tags_all") %>
-
-
-<%= render_tags_list(Project.available_tags, :style => :cloud) %>
-