moving cards up and down
This commit is contained in:
parent
33ea800735
commit
a4af2d6872
@ -16,6 +16,16 @@ module Merged
|
|||||||
redirect_to section_cards_url(@card.section.id)
|
redirect_to section_cards_url(@card.section.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def move
|
||||||
|
if( params[:dir] == "up")
|
||||||
|
@card.move_up
|
||||||
|
else
|
||||||
|
@card.move_down
|
||||||
|
end
|
||||||
|
@card.save
|
||||||
|
redirect_to section_cards_url(@card.section.id)
|
||||||
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@card.content.each do |key , value|
|
@card.content.each do |key , value|
|
||||||
next if key == "id"
|
next if key == "id"
|
||||||
|
@ -35,6 +35,13 @@ module Merged
|
|||||||
@content[key] = value
|
@content[key] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def move_up
|
||||||
|
@section.move_card_up(self)
|
||||||
|
end
|
||||||
|
def move_down
|
||||||
|
@section.move_card_down(self)
|
||||||
|
end
|
||||||
|
|
||||||
def save
|
def save
|
||||||
section.save
|
section.save
|
||||||
end
|
end
|
||||||
@ -45,5 +52,9 @@ module Merged
|
|||||||
raise "Section not found #{id}" unless card
|
raise "Section not found #{id}" unless card
|
||||||
return card
|
return card
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_index(index)
|
||||||
|
@index = index
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -35,6 +35,40 @@ module Merged
|
|||||||
! cards.empty?
|
! cards.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def move_up
|
||||||
|
@page.move_section_up(self)
|
||||||
|
end
|
||||||
|
def move_down
|
||||||
|
@section.move_section_down(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
def move_card_up(card)
|
||||||
|
return if cards.length == 1
|
||||||
|
return if card.index == 0
|
||||||
|
swap( card , cards[card.index - 1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def move_card_down(card)
|
||||||
|
return if cards.length == 1
|
||||||
|
return if card.index == cards.last.index
|
||||||
|
swap( card , cards[card.index + 1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def swap( this_card , that_card)
|
||||||
|
# swap in the actual objects, index is cached in the objects
|
||||||
|
this_old_index = this_card.index
|
||||||
|
this_card.set_index( that_card.index )
|
||||||
|
that_card.set_index( this_old_index )
|
||||||
|
|
||||||
|
# swap in the cards cache
|
||||||
|
cards[ this_card.index ] = this_card
|
||||||
|
cards[ that_card.index ] = that_card
|
||||||
|
# swap in the yaml
|
||||||
|
card_content = content["cards"]
|
||||||
|
card_content[this_card.index] = this_card.content
|
||||||
|
card_content[that_card.index] = that_card.content
|
||||||
|
end
|
||||||
|
|
||||||
def update(key , value)
|
def update(key , value)
|
||||||
return if key == "id" #not updating that
|
return if key == "id" #not updating that
|
||||||
if(! @content[key].nil? )
|
if(! @content[key].nil? )
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
.p-4
|
.p-4
|
||||||
%h3.mt-4.text-lg.font-bold Card #{index + 1}
|
%h3.mt-4.text-lg.font-bold Card #{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" , card_move_url(card.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" , card_move_url(card.id , dir: :down) )
|
||||||
%button.mt-4.rounded-lg.bg-cyan-400.p-4
|
%button.mt-4.rounded-lg.bg-cyan-400.p-4
|
||||||
=link_to "New" , "/index"
|
=link_to "New" , "/index"
|
||||||
%button.mt-4.rounded-lg.bg-red-400.p-4
|
%button.mt-4.rounded-lg.bg-red-400.p-4
|
||||||
|
@ -12,6 +12,7 @@ Merged::Engine.routes.draw do
|
|||||||
resources :cards do
|
resources :cards do
|
||||||
get :select_image
|
get :select_image
|
||||||
get :set_image
|
get :set_image
|
||||||
|
get :move
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user