app/controllers/alchemy/admin/pages_controller.rb in alchemy_cms-2.5.3.1 vs app/controllers/alchemy/admin/pages_controller.rb in alchemy_cms-2.6.0.rc5

- old
+ new

@@ -43,18 +43,19 @@ def new @page = Page.new(:layoutpage => params[:layoutpage] == 'true', :parent_id => params[:parent_id]) @page_layouts = PageLayout.layouts_for_select(session[:language_id], @page.layoutpage?) @clipboard_items = Page.all_from_clipboard_for_select(get_clipboard[:pages], session[:language_id], @page.layoutpage?) - render :layout => false + render layout: !request.xhr? end def create parent = Page.find_by_id(params[:page][:parent_id]) || Page.root params[:page][:language_id] ||= parent.language ? parent.language.id : Language.get_default.id params[:page][:language_code] ||= parent.language ? parent.language.code : Language.get_default.code - if !params[:paste_from_clipboard].blank? + # Copy the page + if params[:paste_from_clipboard].present? source_page = Page.find(params[:paste_from_clipboard]) @page = Page.copy(source_page, { :parent_id => params[:page][:parent_id], :language => parent.language, :name => params[:page][:name], @@ -62,26 +63,27 @@ }) if source_page.children.any? source_page.copy_children_to(@page) end else - @page = Page.create(params[:page]) + # Create new page + @page = Page.new(params[:page]) end - redirect_path = - if @page.valid? - params[:redirect_to] || edit_admin_page_path(@page) - else - admin_pages_path - end + if @page.save + redirect_path = params[:redirect_to] || edit_admin_page_path(@page) + else + # TODO: Make a rollback, because the page is already persisted here. + redirect_path = admin_pages_path + end render_errors_or_redirect(@page, redirect_path, _t("Page created", :name => @page.name)) end # Edit the content of the page and all its elements and contents. def edit # fetching page via before filter if @page.locked? && @page.locker && @page.locker.logged_in? && @page.locker != current_user - flash[:notice] = _t("This page is locked by %{name}", :name => (@page.locker.name rescue _t('unknown'))) + flash[:notice] = _t("This page is locked by %{name}", :name => (@page.locker.name rescue _t(:unknown))) redirect_to admin_pages_path else @page.lock(current_user) @locked_pages = Page.from_current_site.all_locked_by(current_user) end @@ -90,14 +92,14 @@ # Set page configuration like page names, meta tags and states. def configure # fetching page via before filter if @page.redirects_to_external? - render :action => 'configure_external', :layout => false + render action: 'configure_external', layout: !request.xhr? else @page_layouts = PageLayout.layouts_with_own_for_select(@page.page_layout, session[:language_id], @page.layoutpage?) - render :layout => false + render layout: !request.xhr? end end def update # fetching page via before filter @@ -142,11 +144,11 @@ @url_prefix = current_server end if multi_language? @url_prefix = "#{session[:language_code]}/" end - render :layout => false + render layout: !request.xhr? end def fold # @page is fetched via before filter @page.fold(current_user.id, !@page.folded?(current_user.id)) @@ -158,11 +160,11 @@ # Leaves the page editing mode and unlocks the page for other users def unlock # fetching page via before filter @page.unlock - flash[:notice] = _t("unlocked_page", :name => @page.name) + flash[:notice] = _t(:unlocked_page, :name => @page.name) @pages_locked_by_user = Page.from_current_site.all_locked_by(current_user) respond_to do |format| format.js format.html { redirect_to params[:redirect_to].blank? ? admin_pages_path : params[:redirect_to] @@ -177,11 +179,11 @@ # Sets the page public and sweeps the page cache def publish # fetching page via before filter @page.publish! - flash[:notice] = _t("page_published", :name => @page.name) + flash[:notice] = _t(:page_published, :name => @page.name) redirect_back_or_to_default(admin_pages_path) end def copy_language_tree # copy language root from old to new language @@ -195,10 +197,10 @@ :language_id => params[:languages][:new_lang_id], :language_code => session[:language_code] ) new_language_root.move_to_child_of Page.root original_language_root.copy_children_to(new_language_root) - flash[:notice] = _t('language_pages_copied') + flash[:notice] = _t(:language_pages_copied) redirect_to params[:layoutpage] == "true" ? admin_layoutpages_path : :action => :index end def sort @page_root = Page.language_root_for(session[:language_id])