diff --git a/app/assets/javascripts/cmtool/application.js.coffee b/app/assets/javascripts/cmtool/application.js.coffee index 28a344c..d138680 100644 --- a/app/assets/javascripts/cmtool/application.js.coffee +++ b/app/assets/javascripts/cmtool/application.js.coffee @@ -19,11 +19,13 @@ $ -> $('.preview-page').click (ev)-> ev.preventDefault() url = $(@).attr('href') + iframe = $('#preview-modal iframe') params = body: $('#page_body').val() + sidebar: $('#page_sidebar').val() + footer: $('#page_footer').val() layout: $('#page_layout').val() $.post url, page: params, (response)-> - iframe = $('#preview-modal iframe').get(0) - iframe.src = "data:text/html;charset=utf-8,#{escape(response)}" + iframe.attr 'src', url $('#preview-modal').foundation('reveal', 'open') false diff --git a/app/assets/stylesheets/cmtool/components/_modal.css.sass b/app/assets/stylesheets/cmtool/components/_modal.css.sass new file mode 100644 index 0000000..5253607 --- /dev/null +++ b/app/assets/stylesheets/cmtool/components/_modal.css.sass @@ -0,0 +1,6 @@ +.reveal-modal-bg + position: fixed +#preview-modal + width: 90% + height: 90% + margin-top: -70px diff --git a/app/controllers/cmtool/pages_controller.rb b/app/controllers/cmtool/pages_controller.rb index a80ffc0..5ae3975 100644 --- a/app/controllers/cmtool/pages_controller.rb +++ b/app/controllers/cmtool/pages_controller.rb @@ -93,8 +93,13 @@ module Cmtool end def preview - @page = ::Page.new params.require(:page).permit! - render "pages/show", layout: @page.layout + if request.post? + session[:preview_page] = params[:page].to_hash + head :ok + else + @page = ::Page.new session[:preview_page] + render "pages/show", layout: @page.layout + end end private diff --git a/app/views/cmtool/pages/_form.html.slim b/app/views/cmtool/pages/_form.html.slim index 1865353..fd304fa 100644 --- a/app/views/cmtool/pages/_form.html.slim +++ b/app/views/cmtool/pages/_form.html.slim @@ -1,7 +1,7 @@ javascript: page_vars = #{Cmtool::YmlFile.all_as_object.to_json.html_safe}; #preview-modal.reveal-modal.large data-reveal="" - iframe allowfullscreen="" frameborder="0" height="720" src="about:blank" width="900" + iframe allowfullscreen="" frameborder="0" height="100%" src="about:blank" width="100%" a.close-reveal-modal × = form_for [cmtool, @page] do |f| = render 'error_messages', target: @page diff --git a/config/routes.rb b/config/routes.rb index 1d9e52f..325ef5c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,7 +7,7 @@ Cmtool::Engine.routes.draw do resources :pages do member do get :generate_name - post :preview + match :preview, via: [:get, :post] end collection do get :generate_name diff --git a/spec/dummy/app/assets/stylesheets/application.css b/spec/dummy/app/assets/stylesheets/application.css index 3b5cc66..f8d5370 100644 --- a/spec/dummy/app/assets/stylesheets/application.css +++ b/spec/dummy/app/assets/stylesheets/application.css @@ -11,3 +11,6 @@ *= require_self *= require_tree . */ +body{ + background-color: #aaf; +}