From 473efc82b68dcaac61be55466e423fdbbabde710 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Sun, 10 Mar 2013 12:16:57 +0200 Subject: [PATCH] Group and team rss is valid now --- .../stylesheets/gitlab_bootstrap/mixins.scss | 2 +- app/views/commits/_head.html.haml | 5 ++-- app/views/dashboard/show.atom.builder | 4 +-- app/views/groups/show.atom.builder | 6 ++--- app/views/groups/show.html.haml | 10 ++++---- app/views/issues/_head.html.haml | 5 ++-- app/views/teams/show.atom.builder | 29 ++++++++++++++++++++++ app/views/teams/show.html.haml | 10 ++++---- config/routes.rb | 4 +-- features/teams/team.feature | 5 ---- 10 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 app/views/teams/show.atom.builder diff --git a/app/assets/stylesheets/gitlab_bootstrap/mixins.scss b/app/assets/stylesheets/gitlab_bootstrap/mixins.scss index 1e5fff68b..2f83ca0c0 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/mixins.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/mixins.scss @@ -71,7 +71,7 @@ color: $style_color; text-shadow: 0 1px 1px #FFF; font-size: 18px; - line-height: 42px; + line-height: 40px; font-weight: normal; letter-spacing: -1px; } diff --git a/app/views/commits/_head.html.haml b/app/views/commits/_head.html.haml index 02debe426..20b9195c4 100644 --- a/app/views/commits/_head.html.haml +++ b/app/views/commits/_head.html.haml @@ -23,6 +23,5 @@ - if current_controller?(:commits) && current_user.private_token %li.pull-right - %span.rss-icon - = link_to project_commits_path(@project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Feed" do - = image_tag "rss_ui.png", title: "feed" + = link_to project_commits_path(@project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Feed" do + %i.icon-rss diff --git a/app/views/dashboard/show.atom.builder b/app/views/dashboard/show.atom.builder index 2bb42a65b..29b2e4a26 100644 --- a/app/views/dashboard/show.atom.builder +++ b/app/views/dashboard/show.atom.builder @@ -1,8 +1,8 @@ xml.instruct! xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do xml.title "Dashboard feed#{" - #{current_user.name}" if current_user.name.present?}" - xml.link :href => projects_url(:atom), :rel => "self", :type => "application/atom+xml" - xml.link :href => projects_url, :rel => "alternate", :type => "text/html" + xml.link :href => dashboard_url(:atom), :rel => "self", :type => "application/atom+xml" + xml.link :href => dashboard_url, :rel => "alternate", :type => "text/html" xml.id projects_url xml.updated @events.maximum(:updated_at).strftime("%Y-%m-%dT%H:%M:%SZ") if @events.any? diff --git a/app/views/groups/show.atom.builder b/app/views/groups/show.atom.builder index 9aa52ea55..5f2999c3d 100644 --- a/app/views/groups/show.atom.builder +++ b/app/views/groups/show.atom.builder @@ -1,8 +1,8 @@ xml.instruct! xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do - xml.title "Dashboard feed#{" - #{current_user.name}" if current_user.name.present?}" - xml.link :href => projects_url(:atom), :rel => "self", :type => "application/atom+xml" - xml.link :href => projects_url, :rel => "alternate", :type => "text/html" + xml.title "Group feed - #{@group.name}" + xml.link :href => group_path(@group, :atom), :rel => "self", :type => "application/atom+xml" + xml.link :href => group_path(@group), :rel => "alternate", :type => "text/html" xml.id projects_url xml.updated @events.maximum(:updated_at).strftime("%Y-%m-%dT%H:%M:%SZ") if @events.any? diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml index 81694b88c..adf249f65 100644 --- a/app/views/groups/show.html.haml +++ b/app/views/groups/show.html.haml @@ -16,11 +16,11 @@ .description.well.light = @group.description = render "projects", projects: @projects - %div - %span.rss-icon - = link_to dashboard_path(:atom, { private_token: current_user.private_token }) do - = image_tag "rss_ui.png", title: "feed" - %strong News Feed + .prepend-top-20 + = link_to group_path(@group, { format: :atom, private_token: current_user.private_token }), title: "Feed" do + %strong + %i.icon-rss + News Feed %hr .gitlab-promo diff --git a/app/views/issues/_head.html.haml b/app/views/issues/_head.html.haml index 7e0b2cde0..44d14d5cd 100644 --- a/app/views/issues/_head.html.haml +++ b/app/views/issues/_head.html.haml @@ -6,6 +6,5 @@ = nav_link(controller: :labels) do = link_to 'Labels', project_labels_path(@project), class: "tab" %li.pull-right - %span.rss-icon - = link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do - = image_tag "rss_ui.png", title: "feed" + = link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do + %i.icon-rss diff --git a/app/views/teams/show.atom.builder b/app/views/teams/show.atom.builder new file mode 100644 index 000000000..bb0f666e8 --- /dev/null +++ b/app/views/teams/show.atom.builder @@ -0,0 +1,29 @@ +xml.instruct! +xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://search.yahoo.com/mrss/" do + xml.title "Team feed - #{@team.name}" + xml.link :href => team_url(@team, :atom), :rel => "self", :type => "application/atom+xml" + xml.link :href => team_url(@team), :rel => "alternate", :type => "text/html" + xml.id projects_url + xml.updated @events.maximum(:updated_at).strftime("%Y-%m-%dT%H:%M:%SZ") if @events.any? + + @events.each do |event| + if event.proper? + event = EventDecorator.decorate(event) + xml.entry do + event_link = event.feed_url + event_title = event.feed_title + + xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}" + xml.link :href => event_link + xml.title truncate(event_title, :length => 80) + xml.updated event.created_at.strftime("%Y-%m-%dT%H:%M:%SZ") + xml.media :thumbnail, :width => "40", :height => "40", :url => gravatar_icon(event.author_email) + xml.author do |author| + xml.name event.author_name + xml.email event.author_email + end + xml.summary event_title + end + end + end +end diff --git a/app/views/teams/show.html.haml b/app/views/teams/show.html.haml index 43cc026a5..2eb0283e0 100644 --- a/app/views/teams/show.html.haml +++ b/app/views/teams/show.html.haml @@ -15,11 +15,11 @@ .description.well.light = @team.description = render "projects", projects: @projects - %div - %span.rss-icon - = link_to dashboard_path(:atom, { private_token: current_user.private_token }) do - = image_tag "rss_ui.png", title: "feed" - %strong News Feed + .prepend-top-20 + = link_to team_path(@team, { format: :atom, private_token: current_user.private_token }), title: "Feed" do + %strong + %i.icon-rss + News Feed %hr .gitlab-promo diff --git a/config/routes.rb b/config/routes.rb index b06fda8f8..27977ae30 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -135,7 +135,7 @@ Gitlab::Application.routes.draw do # # Groups Area # - resources :groups, constraints: { id: /[^\/]+/ } do + resources :groups, constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/} do member do get :issues get :merge_requests @@ -148,7 +148,7 @@ Gitlab::Application.routes.draw do # # Teams Area # - resources :teams, constraints: { id: /[^\/]+/ } do + resources :teams, constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/} do member do get :issues get :merge_requests diff --git a/features/teams/team.feature b/features/teams/team.feature index f7774597d..e15e3f064 100644 --- a/features/teams/team.feature +++ b/features/teams/team.feature @@ -4,11 +4,6 @@ Feature: UserTeams And I own project "Shop" And project "Shop" has push event - Scenario: No teams, no dashboard info block - When I do not have teams with me - And I visit dashboard page - Then I should see dashboard page without teams info block - Scenario: I should see teams info block When I have teams with my membership And I visit dashboard page -- 2.11.0