blob: fe17e590bbba6843781b464e591c42ebb9a5fb8d [file] [log] [blame]
#--######################################################################
# Copyright (c) 2006 Logica
# Copyright (c) 2008 IBM
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#
# Onno van der Straaten:: initial implementation
# Ricardo Balduino:: added actions to handle Practice feed and UMA Types feed
#++######################################################################
# {Copyright (c) 2006 Logica, 2008 IBM}[link:files/COPYRIGHT.html]
class RssController < ApplicationController
session :off # stateless RSS requests
caches_page :list
def list
@cadmin = User.find_central_admin
@updates = Update.find(:all, :order => 'finished_on DESC', :conditions => ['finished_on > ?', Time.now - 14.days], :limit => 14)
@uploads = Upload.find(:all, :order => 'created_on DESC', :conditions => ['created_on > ?', Time.now - 14.days], :limit => 14)
unless params[:site_folder] == 'all' then
@wiki = Wiki.find_by_folder(params[:site_folder])
@versions = Version.find(:all, :order => 'created_on DESC', :conditions => ['wiki_id=? and baseline_process_id is null and created_on > ? and not exists (select * from checkouts c where c.version_id=versions.id)', @wiki.id, Time.now - 14.days ], :limit => 14)
@comments = Comment.find(:all, :order => 'created_on DESC', :conditions => ['site_id=? and created_on > ?', @wiki.id, Time.now - 14.days], :limit => 14)
else
@versions = Version.find(:all, :order => 'created_on DESC', :conditions => ['baseline_process_id is null and created_on > ? and not exists (select * from checkouts c where c.version_id=versions.id)',Time.now - 14.days], :limit => 14)
@comments = Comment.find(:all, :order => 'created_on DESC', :conditions => ['created_on > ?',Time.now - 14.days], :limit => 14)
end if
headers['Content-Type'] = 'application/rss+xml'
render :layout => false
end
# author: RB
def practice_feed # processes the request for a practice feed
@wiki = Wiki.find_by_folder(params[:site_folder]) # gets the wiki site folder that is part of the requesting url
if (@wiki == nil)
render :action => 'error', :status => 404
else
@practice_name = params[:practice_name] # gets the practice name that is part of the requestin url
@wikiId = Wiki.find(@wiki.id) # finds the wiki site with the given id
# queries for the practice page in this particular wiki site
@practice = WikiPage.find(:first, :conditions => ['uma_name=? and site_id=?', @practice_name, @wiki.id])
if (@practice == nil)
render :action => 'error', :status => 404
end
end
end
# author: RB
def any_uma_type_feed # processes the request for any uma element feed
@wiki = Wiki.find_by_folder(params[:site_folder]) # gets the wiki site folder that is part of the requesting url
@umaType = params[:uma_type] # gets the uma type that is part of the requesting url
if (@wiki == nil)
render :action => 'error', :status => 404
else
@wikiId = Wiki.find(@wiki.id) # finds the wiki site with the given id
# queries for all the elements of given uma type in this particular wiki site
@umaElements = WikiPage.find(:all, :conditions => ['uma_type=? and site_id=?', @umaType, @wiki.id])
if (@umaElements.size == 0)
render :action => 'error', :status => 404
end
end
end
end