Mercurial > hg > soundsoftware-site
changeset 1040:ff783f2cc500 live
Merge from branch cannam
author | Chris Cannam |
---|---|
date | Tue, 13 Nov 2012 15:08:34 +0000 |
parents | e3f78fa30a36 (current diff) f6c71883b995 (diff) |
children | 26a835cb14f9 |
files | vendor/plugins/redmine_tags/app/controllers/tags_controller.rb vendor/plugins/redmine_tags/app/views/tags/index.html.erb |
diffstat | 23 files changed, 221 insertions(+), 117 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Mon Nov 12 15:17:47 2012 +0000 +++ b/.hgignore Tue Nov 13 15:08:34 2012 +0000 @@ -35,3 +35,4 @@ Gemfile.lock Gemfile.local +re:^config\.ru$
--- a/app/controllers/projects_controller.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/controllers/projects_controller.rb Tue Nov 13 15:08:34 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
--- a/app/views/activities/_busy.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/activities/_busy.html.erb Tue Nov 13 15:08:34 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 %>
--- a/app/views/activities/_busy_institution.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/activities/_busy_institution.html.erb Tue Nov 13 15:08:34 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 %> </ul> <% end %> +
--- a/app/views/projects/_form.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/projects/_form.html.erb Tue Nov 13 15:08:34 2012 +0000 @@ -21,9 +21,20 @@ <br /> <em> <%= l(:text_project_homepage_info) %></em> </p> -<p><%= f.check_box :is_public %> +<p> +<%= 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) %> <br /> - <em> <%= l(:text_project_visibility_info) %></em> + <%= f.radio_button :is_public, 0, :checked => (initialised && !@project.is_public?) %> + <%= l(:text_project_private_info) %> +<br> + <em><%= l(:text_project_visibility_info) %></em> </p> <%= wikitoolbar_for 'project_description' %>
--- a/app/views/projects/_members_box.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/projects/_members_box.html.erb Tue Nov 13 15:08:34 2012 +0000 @@ -1,8 +1,8 @@ <% if @users_by_role.any? %> - <div class="members box"> + <div id="memberbox"><div class="box"> <h3><%=l(:label_member_plural)%></h3> <p><% @users_by_role.keys.sort.each do |role| %> <%=h role %>: <%= @users_by_role[role].sort.collect{|u| link_to_user u}.join(", ") %><br /> <% end %></p> - </div> + </div></div> <% end %>
--- a/app/views/projects/explore.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/projects/explore.html.erb Tue Nov 13 15:08:34 2012 +0000 @@ -1,23 +1,29 @@ +<% cache(:action => 'explore', :action_suffix => 'tags', :expires_in => 1.hour) do %> <h2><%= l(:label_explore_projects) %></h2> - <div class="tags box"> <h3><%=l(:label_project_tags_all)%></h3> <%= render :partial => 'projects/tagcloud' %> </div> +<% end %> + <div class="splitcontentleft"> + <% cache(:action => 'explore', :action_suffix => 'busy_institutions', :expires_in => 1.hour) do %> <div class="institutions box"> <h3><%=l(:label_institutions_busy)%></h3> <%= render :partial => 'activities/busy_institution' %> </div> + <% end %> <div class="projects box"> <h3><%=l(:label_project_latest)%></h3> <%= render :partial => 'projects/latest' %> </div> </div> <div class="splitcontentright"> + <% cache(:action => 'explore', :action_suffix => 'busy_projects', :expires_in => 1.hour) do %> <div class="projects box"> <h3><%=l(:label_projects_busy)%></h3> <%= render :partial => 'activities/busy' %> </div> + <% end %> </div>
--- a/app/views/projects/new.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/app/views/projects/new.html.erb Tue Nov 13 15:08:34 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 %>
--- a/config/locales/en.yml Mon Nov 12 15:17:47 2012 +0000 +++ b/config/locales/en.yml Tue Nov 13 15:08:34 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.<br /> 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.<br/>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.<br/>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.<br/>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.'
--- a/public/stylesheets/application.css Mon Nov 12 15:17:47 2012 +0000 +++ b/public/stylesheets/application.css Tue Nov 13 15:08:34 2012 +0000 @@ -256,17 +256,17 @@ .highlight.token-3 { background-color: #aaf;} .box{ -padding:6px; -margin-bottom: 10px; -background-color:#f6f6f6; -color:#505050; -line-height:1.5em; -border: 1px solid #e4e4e4; + padding:6px; + margin-bottom: 10px; + background-color:#f6f6f6; + color:#505050; + line-height:1.5em; + border: 1px solid #e4e4e4; } .box h4 { -margin-top: 0; -padding-top: 0; + margin-top: 0; + padding-top: 0; } div.square { @@ -344,6 +344,25 @@ div#members dt .email { color: #777; font-size: 80%; } div#members dd .roles { font-style: italic; } +div#memberbox h3 { + background: url(../images/group.png) no-repeat 0% 50%; + padding-left: 20px; +} +div#memberbox p { + padding-left: 20px; + margin-left: 0; +} + +div.issues ul { + padding-left: 20px; + margin-left: 0; + list-style-type: none; +} +div.issues p { + padding-left: 20px; + margin-left: 0; +} + .projects .latest .title { margin-right: 0.5em; } .tipoftheday .tip { margin-left: 2em; margin-top: 0.5em; }
--- a/public/themes/soundsoftware/stylesheets/application.css Mon Nov 12 15:17:47 2012 +0000 +++ b/public/themes/soundsoftware/stylesheets/application.css Tue Nov 13 15:08:34 2012 +0000 @@ -147,7 +147,7 @@ */ /* h4 { border-bottom: dotted 1px #c0c0c0; } */ -.wiki p { margin-left: 3em; margin-right: 3em; } +.wiki p, .wiki li { margin-left: 30px; margin-right: 3em; } div.issue { background: #fdfaf0; border: 1px solid #a9b680; border-left: 4px solid #a9b680; }
--- a/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb Tue Nov 13 15:08:34 2012 +0000 @@ -3,18 +3,18 @@ class PublicationsController < ApplicationController unloadable - + model_object Publication before_filter :find_model_object, :except => [:new, :create, :index, :get_bibtex_required_fields, :autocomplete_for_project, :add_author, :sort_author_order, :autocomplete_for_author, :get_user_info ] before_filter :find_project_by_project_id, :authorize, :only => [ :edit, :new, :update, :create ] - + def new find_project_by_project_id @publication = Publication.new - + # we'll always want a new publication to have its bibtex entry @publication.build_bibtex_entry - + # and at least one author # @publication.authorships.build.build_author @author_options = [["#{User.current.name} (@#{User.current.mail.partition('@')[2]})", "#{User.current.class.to_s}_#{User.current.id.to_s}"]] @@ -29,10 +29,10 @@ @publication = Publication.new(params[:publication]) @publication.projects << @project unless @project.nil? - + if @publication.save @publication.notify_authors_publication_added(@project) - + flash[:notice] = "Successfully created publication." redirect_to :action => :show, :id => @publication, :project_id => @project else @@ -52,7 +52,7 @@ def new_from_bibfile @publication.current_step = session[:publication_step] - + # contents of the paste text area bibtex_entry = params[:bibtex_entry] @@ -78,7 +78,7 @@ end } } - + end end @@ -94,13 +94,13 @@ def edit find_project_by_project_id unless params[:project_id].nil? - + @edit_view = true; @publication = Publication.find(params[:id]) @selected_bibtex_entry_type_id = @publication.bibtex_entry.entry_type @author_options = [] - + @bibtype_fields = BibtexEntryType.fields(@selected_bibtex_entry_type_id) end @@ -124,9 +124,10 @@ end end + def show find_project_by_project_id unless params[:project_id].nil? - + if @publication.nil? @publications = Publication.all render "index", :alert => 'The publication was not found!' @@ -191,16 +192,17 @@ authors.each_with_index.map do |authorname, idx| author = Author.new(:name => authorname) if author.save! + # todo: catch the errors... puts "SAVED" else puts "NOT SAVED" end author.authorships.create!( - :publication => @publication, - :institution => institution, - :email => email, - :order => idx) + :publication => @publication, + :institution => institution, + :email => email, + :order => idx) end end @@ -211,13 +213,13 @@ def import @publication = Publication.new - - + + end - + def autocomplete_for_project @publication = Publication.find(params[:id]) - + @projects = Project.active.like(params[:q]).find(:all, :limit => 100) - @publication.projects logger.debug "Query for \"#{params[:q]}\" returned \"#{@projects.size}\" results" render :layout => false @@ -225,22 +227,22 @@ def autocomplete_for_author @results = [] - + object_id = params[:object_id] @object_name = "publications[authorships_attributes][#{object_id}][search_results]" - + # cc 20110909 -- revert to like instead of like_unique -- see #289 authorships_list = Authorship.like(params[:q]).find(:all, :limit => 100) users_list = User.active.like(params[:q]).find(:all, :limit => 100) logger.debug "Query for \"#{params[:q]}\" returned \"#{authorships_list.size}\" authorships and \"#{users_list.size}\" users" - + @results = users_list # TODO: can be optimized… authorships_list.each do |authorship| flag = true - + users_list.each do |user| if authorship.name == user.name && authorship.email == user.mail && authorship.institution == user.institution Rails.logger.debug { "Rejecting Authorship #{authorship.id}" } @@ -254,8 +256,7 @@ render :layout => false end - - + def get_user_info object_id = params[:object_id] value = params[:value] @@ -266,9 +267,9 @@ name_field = "publication_authorships_attributes_#{object_id}_name_on_paper".to_sym email_field = "publication_authorships_attributes_#{object_id}_email".to_sym institution_field = "publication_authorships_attributes_#{object_id}_institution".to_sym - + yes_radio = "publication_authorships_attributes_#{object_id}_identify_author_yes".to_sym - + respond_to do |format| format.js { render(:update) {|page| @@ -296,7 +297,7 @@ @projects = Project.find(params[:publication][:project_ids]) @publication.projects << @projects @project = Project.find(params[:project_id]) - + # TODO luisf should also respond to HTML??? respond_to do |format| format.html { redirect_to :back } @@ -308,8 +309,8 @@ } end end - - + + def remove_project @project = Project.find(params[:project_id]) proj = Project.find(params[:remove_project_id]) @@ -321,19 +322,19 @@ else logger.error { "Cannot remove project from publication list" } end - + logger.error { "CURRENT project name#{proj.name} and wanna delete #{@project.name}" } - + render(:update) {|page| page.replace_html "list_projects", :partial => 'list_projects', :id => @publication } end - + def destroy find_project_by_project_id - + @publication.destroy - + flash[:notice] = "Successfully deleted Publication." redirect_to :controller => :publications, :action => 'index', :project_id => @project end
--- a/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb Tue Nov 13 15:08:34 2012 +0000 @@ -89,7 +89,6 @@ s end - def render_projects_list(publication, show_delete_icon) s= "" @@ -99,6 +98,7 @@ if show_delete_icon if User.current.allowed_to?(:edit_publication, @project) if @project == proj + # todo: move this message to yml file confirm_msg = 'Are you sure you want to remove the current project from this publication\'s projects list?' else confirm_msg = false @@ -114,6 +114,17 @@ s end + def show_cite_proc_entry(publication) + # code that should be moved either to the model or to the controller? + + publication.print_entry(:ieee) + end + + def print_bibtex_entry(publication) + publication.print_entry(:bibtex) + end + + def show_bibtex_fields(bibtex_entry) s = "" bibtex_entry.attributes.keys.sort.each do |key|
--- a/vendor/plugins/redmine_bibliography/app/models/author.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/models/author.rb Tue Nov 13 15:08:34 2012 +0000 @@ -1,4 +1,6 @@ class Author < ActiveRecord::Base + unloadable + has_many :authorships, :dependent => :destroy has_many :publications, :through => :authorships
--- a/vendor/plugins/redmine_bibliography/app/models/bibtex_entry_type.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/models/bibtex_entry_type.rb Tue Nov 13 15:08:34 2012 +0000 @@ -1,4 +1,5 @@ class BibtexEntryType < ActiveRecord::Base + unloadable @@fields = Hash['article', ['journal', 'year', 'volume', 'number', 'pages', 'month', 'note' ], 'book' , [ 'editor', 'publisher', 'volume', 'series', 'address', 'edition', 'month', 'year', 'note' ],
--- a/vendor/plugins/redmine_bibliography/app/models/publication.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/models/publication.rb Tue Nov 13 15:08:34 2012 +0000 @@ -57,7 +57,35 @@ end end + def print_bibtex_author_names + # this authors are correctly sorted because the authorships model + # already outputs the author names ASC by auth_order + self.authorships.map{|a| a.name_on_paper}.join(' and ') + end - - + def print_entry(style) + bib = BibTeX::Entry.new + + bib.author = self.print_bibtex_author_names + bib.title = self.title + + self.bibtex_entry.attributes.keys.sort.each do |key| + value = self.bibtex_entry.attributes[key].to_s + next if key == 'id' or key == 'publication_id' or value == "" + + if key == "entry_type" + bib.type = BibtexEntryType.find(self.bibtex_entry.entry_type).name + else + bib[key.to_sym] = value + end + end + + if style == :ieee + CiteProc.process bib.to_citeproc, :style => :ieee, :format => :html + else + bibtex = bib.to_s :include => :meta_content + bibtex.strip! + logger.error { bibtex } + end + end end
--- a/vendor/plugins/redmine_bibliography/app/views/projects/_bibliography_box.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/views/projects/_bibliography_box.html.erb Tue Nov 13 15:08:34 2012 +0000 @@ -1,24 +1,29 @@ +<% content_for :header_tags do %> + <%= stylesheet_link_tag 'bibliography', :plugin => 'redmine_bibliography' %> + <%= javascript_include_tag 'bibtex', :plugin => 'redmine_bibliography' -%> +<% end %> + <% if @project.publications.any? %> <%= stylesheet_link_tag 'bibliography', :plugin => 'redmine_bibliography' %> <div id="bibliography"> <div class="box"> <h3><%=l(:label_related_publication_plural)%></h3> - <dl> - <% @project.publications.each do |publication| %> - <dt> - <span class="authors"> - <%= publication.authorships.map { |a| h a.name_on_paper }.join(', ') %><% if !publication.authorships.empty? %>.<% end %> - </span> - <span class="title"><%= link_to publication.title, :controller => 'publications', :action => 'show', :id => publication, :project_id => @project %></span> - <% if publication.bibtex_entry.year.to_s != "" %> - <span class="year"> - (<%= publication.bibtex_entry.year %>) - </span> - <% end %> - </dt><dd></dd> + <dl> + <% @project.publications.each do |publication| %> + <dt> + <%= publication.print_entry(:ieee) -%> + </dt> + <dd> + <%= link_to("[More Details]", {:controller => :publications, :action => :show, :id => publication.id, :project_id => @project.id}) -%> + + <%= link_to_function "[B<small>IB</small>T<sub>E</sub>X]", onclick="toggleBibtex(this)" -%> + </dd> + <dd class="bibtex-textarea collapsed" style="display: none;"> + <textarea readonly><%= publication.print_entry(:bibtex) -%></textarea> + </dd> <% end -%> - </dl> + </dl> </div> </div> -<% end %> +<% end -%>
--- a/vendor/plugins/redmine_bibliography/app/views/publications/show.html.erb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/app/views/publications/show.html.erb Tue Nov 13 15:08:34 2012 +0000 @@ -1,11 +1,14 @@ -<%= stylesheet_link_tag 'bibliography', :plugin => 'redmine_bibliography' %> - <h2><%=l(:label_publication_show)%></h2> <div class="box"> -<h3> - <%= h @publication.title %> -</h3> + <h3>Publication Info</h3> + <p><%= show_cite_proc_entry(@publication)%></p> + + <h3>B<small>IB</small>T<sub>E</sub>X Format</h3> + <pre><%=h print_bibtex_entry(@publication) %></pre> +</div> + +<div class="box"> <h4><%= l(:authors) %></h4> <ul id="authorships"> @@ -18,6 +21,7 @@ <%- end -%> <%- end -%> </ul> + <%- if User.current.allowed_to?(:edit_publication, @project) && @publication.authorships.length > 1 -%> <%= sortable_element("authorships", :url => { :controller => :publications, :action => :sort_author_order }, :handle => "handle") %> <%- end -%> @@ -26,7 +30,6 @@ <%= show_bibtex_fields(@publication.bibtex_entry) %> <%- end -%> - <% unless @publication.external_url.blank? %> <h4> <%= l(:field_external_url) %> @@ -46,7 +49,7 @@ </div> <% projects = Project.active.find(:all, :limit => 100, :order => 'name ASC') - @publication.projects %> - + <% content_for :sidebar do %> <h3><%=l(:label_publication_project_index)%></h3>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/plugins/redmine_bibliography/assets/javascripts/bibtex.js Tue Nov 13 15:08:34 2012 +0000 @@ -0,0 +1,6 @@ +function toggleBibtex(el) { + var dd = Element.up(el).next('dd') + + dd.toggleClassName('collapsed'); + Effect.toggle(dd, 'slide', {duration:0.2}); +} \ No newline at end of file
--- a/vendor/plugins/redmine_bibliography/assets/stylesheets/bibliography.css Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/assets/stylesheets/bibliography.css Tue Nov 13 15:08:34 2012 +0000 @@ -32,15 +32,32 @@ min-width: 150px; } -div#bibliography dl { margin-left: 2em; } -div#bibliography .box dl { margin-left: 0; } -div#bibliography dt { margin-bottom: 0px; padding-left: 20px } -div#bibliography .box dt { margin-bottom: 0px; padding-left: 10px } -div#bibliography dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; } -div#bibliography .box dd { margin-bottom: 0.6em; padding-left: 0; } + +div#bibliography dd { margin-bottom: 1em; font-size: 0.9em; } + div#bibliography dd .authors { font-style: italic; } -div#bibliography dt .title { font-style: italic; } div#bibliography dd span.authors { color: #808080; } div#bibliography dd span.year { padding-left: 0.6em; } -div#bibliography h3 { background: url(../../../images/table_multiple.png) no-repeat 0% 50%; padding-left: 20px; } +div#bibliography .box dt { + background: url(../../../images/document.png) no-repeat 0% 4px; + padding-left: 20px; + margin-left: 0; +} +div#bibliography .box dd { + padding-left: 20px; + margin-left: 0; +} + +div#bibliography h3 { + background: url(../../../images/table_multiple.png) no-repeat 0% 50%; + padding-left: 20px; +} + +div#bibliography textarea { + width: 90%; + height: 200px; + font: normal 8px; + padding: 2px 10px; + border: solid 1px #ddd; +}
--- a/vendor/plugins/redmine_bibliography/init.rb Mon Nov 12 15:17:47 2012 +0000 +++ b/vendor/plugins/redmine_bibliography/init.rb Tue Nov 13 15:08:34 2012 +0000 @@ -1,6 +1,10 @@ require 'redmine' require 'dispatcher' +require 'bibtex' +require 'citeproc' + + RAILS_DEFAULT_LOGGER.info 'Starting Bibliography Plugin for RedMine' # Patches to the Redmine core.
--- a/vendor/plugins/redmine_tags/app/controllers/tags_controller.rb Mon Nov 12 15:17:47 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
--- a/vendor/plugins/redmine_tags/app/views/tags/index.html.erb Mon Nov 12 15:17:47 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 %> - - -<div style="clear:both;"></div> -<h2> - <%= l("label_project_tags_all") %> -</h2> - -<%= render_tags_list(Project.available_tags, :style => :cloud) %> -