diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index bba3127..2117398 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -15,347 +15,4 @@ class CmsController < MyProfileController end - public - - ############################################################# - # everything below was copied from comatose - ############################################################# - - define_option :original_template_root, nil - define_option :plugin_layout_path, File.join( '..', '..', '..', 'vendor', 'plugins', 'comatose', 'views', 'layouts' ) - - before_filter :handle_authorization - before_filter :set_content_type - - # Shows the page tree - def index - @root_pages = [fetch_root_page].flatten - end - - # Edit a specfic page (posts back) - def edit - # Clear the page cache for this page... ? - @page = page_class.find params[:id] - @root_pages = [fetch_root_page].flatten - if request.post? - @page.update_attributes(params[:page]) - @page.updated_on = Time.now - @page.author = fetch_author_name - if @page.save - expire_cms_page @page - expire_cms_fragment @page - flash[:notice] = "Saved changes to '#{@page.title}'" - redirect_to :controller=>self.controller_name, :action=>'index' - end - end - end - - # Create a new page (posts back) - def new - @root_pages = [fetch_root_page].flatten - if request.post? - @page = page_class.new params[:page] - @page.author = fetch_author_name - if @page.save - flash[:notice] = "Created page '#{@page.title}'" - redirect_to :controller=>self.controller_name, :action=>'index' - end - else - @page = page_class.new(:parent_id=>(params[:parent] || nil)) - end - end - - # Saves position of child pages - def reorder - # If it's AJAX, do our thing and move on... - if request.xhr? - params["page_list_#{params[:id]}"].each_with_index { |id,idx| page_class.update(id, :position => idx) } - expire_cms_page page_class.find(params[:id]) - render :text=>'Updated sort order', :layout=>false - else - @page = page_class.find params[:id] - if params.has_key? :cmd - @target = page_class.find params[:page] - case params[:cmd] - when 'up' then @target.move_higher - when 'down' then @target.move_lower - end - redirect_to :action=>'reorder', :id=>@page - end - end - end - - # Allows comparing between two versions of a page's content - def versions - @page = page_class.find params[:id] - @version_num = (params[:version] || @page.versions.length).to_i - @version = @page.find_version(@version_num) - end - - # Reverts a page to a specific version... - def set_version - if request.post? - @page = page_class.find params[:id] - @version_num = params[:version] - @page.revert_to!(@version_num) - end - redirect_to :controller=>self.controller_name, :action=>'index' - end - - # Deletes the specified page - def delete - @page = page_class.find params[:id] - if request.post? - expire_cms_pages_from_bottom @page - expire_cms_fragments_from_bottom @page - @page.destroy - flash[:notice] = "Deleted page '#{@page.title}'" - redirect_to :controller=>self.controller_name, :action=>'index' - end - end - - # Returns a preview of the page content... - def preview - begin - page = page_class.new(params[:page]) - page.author = fetch_author_name - if params.has_key? :version - content = page.to_html( {'params'=>params.stringify_keys, 'version'=>params[:version]} ) - else - content = page.to_html( {'params'=>params.stringify_keys} ) - end - rescue SyntaxError - content = "
There was an error generating the preview.
#{$!.to_s.gsub(/\, '<')}"
- rescue
- content = "There was an error generating the preview.
#{$!.to_s.gsub(/\, '<')}"
- end
- render :text=>content, :layout => false
- end
-
- # Expires the entire page cache
- def expire_page_cache
- expire_cms_pages_from_bottom( fetch_root_page )
- expire_cms_fragments_from_bottom( fetch_root_page )
- flash[:notice] = "Page cache has been flushed"
- redirect_to :controller=>self.controller_name, :action=>'index'
- end
-
- # Walks the page tree and generates HTML files in your /public
- # folder... It will skip pages that have a 'nocache' keyword
- # TODO: Make page cache generation work when in :plugin mode
- def generate_page_cache
- if runtime_mode == :plugin
- @errors = ["Page cache cannot be generated in plugin mode"]
- else
- @errors = generate_all_pages_html(params)
- end
- if @errors.length == 0
- flash[:notice] = "Pages Cached Successfully"
- else
- flash[:notice] = "Pages Cache Error(s): #{@errors.join(', ')}"
- flash[:cache_errors] = @errors
- end
- redirect_to :controller=>self.controller_name, :action=>'index'
- end
-
-
- protected
-
- def handle_authorization
- if Comatose.config.admin_authorization.is_a? Proc
- instance_eval &Comatose.config.admin_authorization
- elsif Comatose.config.admin_authorization.is_a? Symbol
- send(Comatose.config.admin_authorization)
- elsif defined? authorize
- authorize
- else
- true
- end
- end
-
- def fetch_author_name
- if Comatose.config.admin_get_author.is_a? Proc
- instance_eval &Comatose.config.admin_get_author
- elsif Comatose.config.admin_get_author.is_a? Symbol
- send(Comatose.config.admin_get_author)
- elsif defined? get_author
- get_author
- end
- end
-
- # Can be overridden -- return your root comtase page
- def fetch_root_page
- if Comatose.config.admin_get_root_page.is_a? Proc
- instance_eval &Comatose.config.admin_get_root_page
- elsif Comatose.config.admin_get_root_page.is_a? Symbol
- send(Comatose.config.admin_get_root_page)
- elsif defined? get_root_page
- get_root_page
- end
- end
-
- # Sets the HTTP content-type header based on what's configured
- # in Comatose.config.content_type
- def set_content_type
- response.headers["Content-Type"] = "text/html; charset=#{Comatose.config.content_type}" unless Comatose.config.content_type.nil?
- end
-
- # Calls generate_page_html for each mount point..
- def generate_all_pages_html(params={})
- @errors = []
- @been_cached = []
- Comatose.mount_points.each do |root_info|
- page_class.active_mount_info = root_info
- generate_page_html(page_class.find_by_path( root_info[:index] ), root_info, params)
- end
- @errors
- end
-
- # Accepts a Comatose Page and a root_info object to generate
- # the page as a static HTML page -- using the layout that was
- # defined on the mount point
- def generate_page_html(page, root_info, params={})
- @been_cached ||= []
- unless page.has_keyword? :nocache or @been_cached.include? page.id
- uri = page.uri
- uri = "#{uri}/index".split('/').flatten.join('/') if page.full_path == root_info[:index]
- @page = Comatose::PageWrapper.new(page)
- begin
- page_layout = get_page_layout(root_info)
- #puts "mode = #{runtime_mode}, layout = #{page_layout}, template_root = #{template_root}, original_template_root = #{original_template_root}"
- html = render_to_string( :text=>page.to_html({'params'=>params.stringify_keys}), :layout=>page_layout )
- cache_page( html, uri )
- rescue
- logger.error "Comatose CMS Page Cache Exception: #{$!}"
- @errors << "(#{page}/#{page.slug}) - #{$!}"
- end
- @been_cached << page.id
- # recurse...
- page.children.each do |child|
- generate_page_html(child, root_info)
- end
- end
- end
-
- # Calls the class methods of the same name...
- def expire_cms_page(page)
- self.class.expire_cms_page(page)
- end
- def expire_cms_pages_from_bottom(page)
- self.class.expire_cms_pages_from_bottom(page)
- end
-
-
- # expire the page from the fragment cache
- def expire_cms_fragment(page)
- key = page.full_path.gsub(/\//, '+')
- expire_fragment(key)
- end
-
- # expire pages starting at a specific node
- def expire_cms_fragments_from_bottom(page)
- pages = page.is_a?(Array) ? page : [page]
- pages.each do |page|
- page.children.each {|c| expire_cms_fragments_from_bottom( c ) } if !page.children.empty?
- expire_cms_fragment( page )
- end
- end
-
- # Class Methods...
- class << self
-
- # Walks all the way down, and back up the tree -- the allows the expire_cms_page
- # to delete empty directories better
- def expire_cms_pages_from_bottom(page)
- pages = page.is_a?(Array) ? page : [page]
- pages.each do |page|
- page.children.each {|c| expire_cms_pages_from_bottom( c ) } if !page.children.empty?
- expire_cms_page( page )
- end
- end
-
- # Expire the page from all the mount points...
- def expire_cms_page(page)
- Comatose.mount_points.each do |path_info|
- page_class.active_mount_info = path_info
- expire_page(page.uri)
- # If the page is the index page for the root, expire it too
- if path_info[:root] == page.uri
- expire_page("#{path_info[:root]}/index")
- end
- begin # I'm not sure this matters too much -- but it keeps things clean
- dir_path = File.join(RAILS_ROOT, 'public', page.uri[1..-1])
- Dir.delete( dir_path ) if FileTest.directory?( dir_path ) and !page.parent.nil?
- rescue
- # It probably isn't empty -- just as well we leave it be
- #STDERR.puts " - Couldn't delete dir #{dir_path} -> #{$!}"
- end
- end
- end
-
- # Returns a path to plugin layout, if it's unspecified, otherwise
- # a path to an application layout...
- def get_page_layout(params)
- if params[:layout] == 'comatose_content'
- File.join(plugin_layout_path, params[:layout])
- else
- params[:layout]
- end
- end
-
- def configure_template_root
- if self.runtime_mode == :unknown
- if FileTest.exist? File.join(RAILS_ROOT, 'public', 'javascripts', 'comatose_admin.js')
- self.runtime_mode = :application
- else
- self.runtime_mode = :plugin
- end
- end
- end
-
- def runtime_mode
- @@runtime_mode ||= :unknown
- end
-
- def runtime_mode=(mode)
- case mode
- when :plugin
- self.original_template_root = self.template_root
- self.template_root = File.join( File.dirname(__FILE__), '..', '..', 'views')
- when :application
- self.template_root = self.original_template_root if self.original_template_root
- end
- @@runtime_mode = mode
- end
-
- end
-
- # Check to see if we are in 'embedded' mode, or are being 'customized'
- # embedded = runtime_mode of :plugin
- # customized = runtime_mode of :application
- configure_template_root
-
- #
- # Include any modules...
- Comatose.config.admin_includes.each do |mod|
- if mod.is_a? String
- include mod.constantize
- elsif mod.is_a? Symbol
- include mod.to_s.classify.constantize
- else
- include mod
- end
- end
-
- # Include any helpers...
- Comatose.config.admin_helpers.each do |mod|
- if mod.is_a? String
- helper mod.constantize
- elsif mod.is_a? Symbol
- helper mod.to_s.classify.constantize
- else
- helper mod
- end
- end
-
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 18cf0b8..3feb172 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -100,7 +100,7 @@ module ApplicationHelper
def link_to_myprofile(text, url = {}, profile = nil, options = {})
profile ||= current_user.login
- link_to text, { :profile => profile }.merge(url), options
+ link_to text, { :profile => profile, :controller => 'profile_editor' }.merge(url), options
end
def link_to_document(doc, text = nil)
@@ -114,7 +114,7 @@ module ApplicationHelper
# TODO: test this helper
def user_links
links = [
- ( link_to_homepage( _('My account') )),
+ ( link_to_myprofile( _('My profile') )),
( link_to_myprofile _('My Enterprises'), {:controller => 'membership_editor'} ),
( link_to(_('Admin'), { :controller => 'admin_panel' }) if current_user.person.is_admin?),
].join("\n")
@@ -124,7 +124,7 @@ module ApplicationHelper
def shortcut_header_links
if logged_in?
[
- ( link_to_homepage( content_tag('span', _('My account')),nil, { :id => 'icon_go_home'} ) ),
+ ( link_to_myprofile( content_tag('span', _('My profile')), {}, nil, { :id => 'icon_go_home'} ) ),
# MUDAR, O ID acima deve ser no Link 'admin_panel' }, :id => 'icon_admin' if current_user.person.is_admin?),
@@ -303,16 +303,6 @@ module ApplicationHelper
end
end
- def select_filter_type(object, method, html_options)
- options = [
- [ _('No Filter at all'), '[No Filter]' ],
- [ _('RDoc filter'), 'RDoc' ],
- [ _('Simple'), 'Simple' ],
- [ _('Textile'), 'Textile' ]
- ]
- select_tag "#{object}[#{method}]", options_for_select(options, @page.filter_type || Comatose.config.default_filter), { :id=> "#{object}_#{method}" }.merge(html_options)
- end
-
def file_manager(&block)
concat(content_tag('div', capture(&block), :class => 'file-manager') + "| - <% if !page.children.empty? %> - <%= image_tag( ((collapse_children) ? 'comatose/collapsed.gif' : 'comatose/expanded.gif'), :title=>'Expand/Collapse', :onclick=>"ComatoseList.toggle_tree_nodes(this,#{page.id});", :class=>'tree-controller', :size=>'12x12', :id=>"page_controller_#{page.id}" ) %> - <% else %> - <%= image_tag 'comatose/no-children.gif', :size=>'12x12', :class=>'tree-controller' %> - <% end %> - | -- <%= icon_for_document(page) %> - <%= _('DRAG') %> - | -- <%= link_to page.title, {:action=>'edit', :id=>page}, :title=>"Path:#{page.full_path}", :class=>'page' %> - | -- <%= links.join(', ') %>. - | -
-- -<%= start_form_tag %> - -<%= end_form_tag %> diff --git a/app/views/cms/edit.rhtml b/app/views/cms/edit.rhtml deleted file mode 100644 index 6b2f158..0000000 --- a/app/views/cms/edit.rhtml +++ /dev/null @@ -1,5 +0,0 @@ -<%= _('Are you sure you want to delete the page titled "%s"?') % content_tag('strong', @page.title) %>
- <% unless @page.children.empty? %> -<%= _("It has %s child pages that will also be deleted...") % content_tag('strong', @page.children.length) %>
-<% end %> -
| - <%= image_tag 'comatose/page.gif', :size=>'25x31', :align=>"absmiddle" %> - | -- <%= page.title %> - | -
| - <%= link_to _("Move Up"), :action=>'reorder', :cmd=>'up', :page=>page.id %>, - <%= link_to _("Move Down"), :action=>'reorder', :cmd=>'down', :page=>page.id %> - | -