moving sections up and down
This commit is contained in:
parent
a4af2d6872
commit
4f6538e135
@ -38,6 +38,16 @@ module Merged
|
|||||||
redirect_to section_url(@section.id)
|
redirect_to section_url(@section.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def move
|
||||||
|
if( params[:dir] == "up")
|
||||||
|
@section.move_up
|
||||||
|
else
|
||||||
|
@section.move_down
|
||||||
|
end
|
||||||
|
@section.save
|
||||||
|
redirect_to page_sections_url(@section.page.name)
|
||||||
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@section.content.each do |key , value|
|
@section.content.each do |key , value|
|
||||||
next if key == "id"
|
next if key == "id"
|
||||||
|
@ -38,11 +38,30 @@ module Merged
|
|||||||
@content[0]["template"]
|
@content[0]["template"]
|
||||||
end
|
end
|
||||||
|
|
||||||
def new_section
|
def move_section_up(section)
|
||||||
section = Hash.new
|
return if sections.length == 1
|
||||||
section['id'] = SecureRandom.hex(10)
|
return if section.index == 0
|
||||||
@content << section
|
swap( section , sections[section.index - 1])
|
||||||
Section.new(self , 0 , section)
|
end
|
||||||
|
|
||||||
|
def move_section_down(section)
|
||||||
|
return if sections.length == 1
|
||||||
|
return if section.index == sections.last.index
|
||||||
|
swap( section , sections[section.index + 1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def swap( this_section , that_section)
|
||||||
|
# swap in the actual objects, index is cached in the objects
|
||||||
|
this_old_index = this_section.index
|
||||||
|
this_section.set_index( that_section.index )
|
||||||
|
that_section.set_index( this_old_index )
|
||||||
|
|
||||||
|
# swap in the sections cache
|
||||||
|
sections[ this_section.index ] = this_section
|
||||||
|
sections[ that_section.index ] = that_section
|
||||||
|
# swap in the yaml
|
||||||
|
content[this_section.index] = this_section.content
|
||||||
|
content[that_section.index] = that_section.content
|
||||||
end
|
end
|
||||||
|
|
||||||
def save
|
def save
|
||||||
@ -55,7 +74,6 @@ module Merged
|
|||||||
page = @@all[name]
|
page = @@all[name]
|
||||||
raise "Page not found #{name}" unless page
|
raise "Page not found #{name}" unless page
|
||||||
return page
|
return page
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -39,7 +39,7 @@ module Merged
|
|||||||
@page.move_section_up(self)
|
@page.move_section_up(self)
|
||||||
end
|
end
|
||||||
def move_down
|
def move_down
|
||||||
@section.move_section_down(self)
|
@page.move_section_down(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
def move_card_up(card)
|
def move_card_up(card)
|
||||||
@ -83,6 +83,10 @@ module Merged
|
|||||||
page.save
|
page.save
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_index(index)
|
||||||
|
@index = index
|
||||||
|
end
|
||||||
|
|
||||||
def self.find(section_id)
|
def self.find(section_id)
|
||||||
raise "nil given" if section_id.blank?
|
raise "nil given" if section_id.blank?
|
||||||
section = @@all[section_id]
|
section = @@all[section_id]
|
||||||
|
@ -3,11 +3,12 @@
|
|||||||
.flex.flex-col.bg-white
|
.flex.flex-col.bg-white
|
||||||
.flex.items-center.justify-center.flex-1
|
.flex.items-center.justify-center.flex-1
|
||||||
.max-w-xl.px-4.py-8.mx-auto.text-center
|
.max-w-xl.px-4.py-8.mx-auto.text-center
|
||||||
%h1.text-2xl.font-bold.tracking-tight.text-gray-900
|
%h1.text-3xl.font-bold.tracking-tight.text-gray-900
|
||||||
Page #{@section.page.name}
|
Page #{link_to @section.page.name, page_sections_url(@section.page.name)}
|
||||||
.flex.items-center.justify-center.flex-1
|
.flex.items-center.justify-center.flex-1
|
||||||
%h3.text-xl.font-bold.tracking-tight.text-gray-900
|
%h3.text-xl.font-bold.tracking-tight.text-gray-900
|
||||||
Cards for Section #{@section.index + 1}
|
Cards for
|
||||||
|
= link_to "Section #{@section.index + 1}", page_sections_url(page_id: @section.page.name)
|
||||||
|
|
||||||
.grid.grid-cols-4.gap-2.m-8
|
.grid.grid-cols-4.gap-2.m-8
|
||||||
- @section.cards.each_with_index do |card , index|
|
- @section.cards.each_with_index do |card , index|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
%p#notice= notice
|
|
||||||
.flex.flex-col.bg-white
|
|
||||||
.flex.items-center.justify-center.flex-1
|
|
||||||
.max-w-xl.px-4.py-8.mx-auto.text-center
|
|
||||||
%h1.text-2xl.font-bold.tracking-tight.text-gray-900.sm:text-4xl
|
|
||||||
Page #{@page.name}
|
|
||||||
|
|
||||||
-@page.sections.each do |section |
|
|
||||||
.grid.grid-cols-6.gap-2.m-8{class: (section.index%2)==1 ? 'bg-cyan-50' : 'bg-red-50' }
|
|
||||||
.relative.block.border.border-gray-100
|
|
||||||
.p-4
|
|
||||||
%h3.mt-4.text-lg.font-bold Section #{section.index + 1}
|
|
||||||
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
|
||||||
=link_to( "Up" , "/index")
|
|
||||||
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
|
||||||
=link_to "Down" , "/index"
|
|
||||||
%button.mt-4.rounded-lg.bg-blue-400.p-4
|
|
||||||
=link_to "Edit" , section_path(section.id)
|
|
||||||
%button.mt-4.rounded-lg.bg-cyan-400.p-4
|
|
||||||
=link_to "New" , "/index"
|
|
||||||
%button.mt-4.rounded-lg.bg-red-400.p-4
|
|
||||||
=link_to "Delete" , "/index"
|
|
||||||
-section.content.each do |key , value|
|
|
||||||
= render "merged/sections/overview/#{key}", section: section , key: key , value: value
|
|
@ -3,16 +3,17 @@
|
|||||||
.flex.items-center.justify-center.flex-1
|
.flex.items-center.justify-center.flex-1
|
||||||
.max-w-xl.px-4.py-8.mx-auto.text-center
|
.max-w-xl.px-4.py-8.mx-auto.text-center
|
||||||
%h1.text-2xl.font-bold.tracking-tight.text-gray-900.sm:text-4xl
|
%h1.text-2xl.font-bold.tracking-tight.text-gray-900.sm:text-4xl
|
||||||
Page #{@page.name}
|
Page
|
||||||
|
= @page.name
|
||||||
|
|
||||||
-@page.sections.each do |section |
|
-@page.sections.each do |section |
|
||||||
.grid.grid-cols-5.gap-2.m-8{class: (section.index%2)==1 ? 'bg-cyan-50' : 'bg-red-50' }
|
.grid.grid-cols-5.gap-2.m-8{class: (section.index%2)==1 ? 'bg-cyan-50' : 'bg-red-50' }
|
||||||
.relative.block.border.border-gray-100.p-4
|
.relative.block.border.border-gray-100.p-4
|
||||||
%h3.mt-4.text-lg.font-bold Section #{section.index + 1}
|
%h3.mt-4.text-lg.font-bold Section #{section.index + 1}
|
||||||
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
||||||
=link_to( "Up" , "/index")
|
=link_to( "Up" , section_move_url(section.id , dir: :up) )
|
||||||
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
%button.mt-4.rounded-lg.bg-yellow-500.p-4
|
||||||
=link_to "Down" , "/index"
|
=link_to( "Down" , section_move_url(section.id , dir: :down) )
|
||||||
%button.mt-4.rounded-lg.bg-blue-400.p-4
|
%button.mt-4.rounded-lg.bg-blue-400.p-4
|
||||||
=link_to "Edit" , section_path(section.id)
|
=link_to "Edit" , section_path(section.id)
|
||||||
%button.mt-4.rounded-lg.bg-cyan-400.p-4
|
%button.mt-4.rounded-lg.bg-cyan-400.p-4
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
.flex.flex-col.bg-white
|
.flex.flex-col.bg-white
|
||||||
.flex.items-center.justify-center.flex-1
|
.flex.items-center.justify-center.flex-1
|
||||||
.max-w-xl.px-4.py-8.mx-auto.text-center
|
.max-w-xl.px-4.py-8.mx-auto.text-center
|
||||||
%h1.text-2xl.font-bold.tracking-tight.text-gray-900
|
%h1.text-3xl.font-bold.tracking-tight.text-gray-900
|
||||||
Page #{link_to @section.page.name, page_url(@section.page.name)}
|
Page #{link_to @section.page.name, page_sections_url(@section.page.name)}
|
||||||
.flex.items-center.justify-center.flex-1
|
.flex.items-center.justify-center.flex-1
|
||||||
%h3.text-xl.font-bold.tracking-tight.text-gray-900
|
%h3.text-xl.font-bold.tracking-tight.text-gray-900
|
||||||
Section #{@section.id}
|
Section #{@section.id}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Merged::Engine.routes.draw do
|
Merged::Engine.routes.draw do
|
||||||
|
|
||||||
get "/styles/index" , to: "styles#index"
|
get "/styles/index" , to: "styles#index"
|
||||||
resources :pages , shallow: true do
|
resources :pages , except: [:show] , shallow: true do
|
||||||
resources :sections do
|
resources :sections do
|
||||||
get :select_image
|
get :select_image
|
||||||
get :set_image
|
get :set_image
|
||||||
@ -9,6 +9,7 @@ Merged::Engine.routes.draw do
|
|||||||
get :set_template
|
get :set_template
|
||||||
get :select_card_template
|
get :select_card_template
|
||||||
get :set_card_template
|
get :set_card_template
|
||||||
|
get :move
|
||||||
resources :cards do
|
resources :cards do
|
||||||
get :select_image
|
get :select_image
|
||||||
get :set_image
|
get :set_image
|
||||||
|
Loading…
Reference in New Issue
Block a user