add index (synthetic) to sections
This commit is contained in:
parent
1823f5cb3e
commit
8d405e44e1
@ -18,12 +18,19 @@ module Cms
|
|||||||
end
|
end
|
||||||
|
|
||||||
def sections
|
def sections
|
||||||
@content.collect{|section_data| Section.new(self , section_data)}
|
sections = []
|
||||||
|
@content.each_with_index do |section_data, index|
|
||||||
|
sections << Section.new(self , index, section_data)
|
||||||
|
end
|
||||||
|
sections
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_section(section_id)
|
def find_section(section_id)
|
||||||
content = @content.find{|section| section["id"] == section_id }
|
@content.each_with_index do |section , index|
|
||||||
Section.new(self , content)
|
next unless section["id"] == section_id
|
||||||
|
return Section.new(self , index , section)
|
||||||
|
end
|
||||||
|
raise "Page #{name} as no section #{section_id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def first_template
|
def first_template
|
||||||
@ -34,7 +41,7 @@ module Cms
|
|||||||
section = Hash.new
|
section = Hash.new
|
||||||
section['id'] = SecureRandom.hex(10)
|
section['id'] = SecureRandom.hex(10)
|
||||||
@content << section
|
@content << section
|
||||||
Section.new(self , section)
|
Section.new(self , 0 , section)
|
||||||
end
|
end
|
||||||
|
|
||||||
def save
|
def save
|
||||||
|
@ -4,16 +4,18 @@ module Cms
|
|||||||
include ActiveModel::Conversion
|
include ActiveModel::Conversion
|
||||||
include ActiveModel::Dirty
|
include ActiveModel::Dirty
|
||||||
|
|
||||||
attr_reader :name , :content , :page
|
attr_reader :name , :content , :page , :index
|
||||||
|
|
||||||
def persisted?
|
def persisted?
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(page , section_data)
|
def initialize(page , index , section_data)
|
||||||
@page = page
|
@page = page
|
||||||
|
raise "No number #{index}" unless index.is_a?(Integer)
|
||||||
|
raise "No has #{section_data}" unless section_data.is_a?(Hash)
|
||||||
|
@index = index
|
||||||
@content = section_data
|
@content = section_data
|
||||||
# id = SecureRandom.hex(10) if new or not there
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def template
|
def template
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
%h3.mt-4.text-lg.font-bold= key.upcase
|
%h3.mt-4.text-lg.font-bold= key.upcase
|
||||||
%p= value
|
%p= value
|
||||||
%p #{section.content['cards'].length} cards
|
%p #{section.content['cards'].length} cards
|
||||||
|
%p view cards (index)
|
||||||
.relative.block.border.border-gray-100
|
.relative.block.border.border-gray-100
|
||||||
=image_tag("cms/card_preview/#{value}" , class: "w-full object-contain")
|
=image_tag("cms/card_preview/#{value}" , class: "w-full object-contain")
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
.relative.block.border.border-gray-100
|
|
||||||
Cards number
|
|
||||||
.relative.block.border.border-gray-100
|
|
||||||
Card preview
|
|
@ -1,4 +1,7 @@
|
|||||||
.relative.block.border.border-gray-100
|
.relative.block.border.border-gray-100
|
||||||
%h3.mt-4.text-lg.font-bold= key.upcase
|
%h3.mt-4.text-lg.font-bold= key.upcase
|
||||||
.relative.block.border.border-gray-100
|
.relative.block.border.border-gray-100
|
||||||
|
-if value
|
||||||
= image_tag "cms/" + value
|
= image_tag "cms/" + value
|
||||||
|
-else
|
||||||
|
No image
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
.p-6
|
.p-6
|
||||||
%h3.mt-4.text-lg.font-bold= key.upcase
|
%h3.mt-4.text-lg.font-bold= key.upcase
|
||||||
|
-if value
|
||||||
= image_tag "cms/" + value
|
= image_tag "cms/" + value
|
||||||
|
-else
|
||||||
|
No image
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
%p#notice= notice
|
%p#notice= notice
|
||||||
|
|
||||||
|
%h1 Page #{@page.name}
|
||||||
|
|
||||||
|
%h4 Section #{@section.id}
|
||||||
|
|
||||||
.grid.grid-cols-2.gap-2.m-8
|
.grid.grid-cols-2.gap-2.m-8
|
||||||
- @section.content.each do |key , value|
|
- @section.content.each do |key , value|
|
||||||
= render "cms/sections/editors/#{key}", section: @section , key: key , value: value
|
= render "cms/sections/editors/#{key}", section: @section , key: key , value: value
|
||||||
|
@ -6,7 +6,8 @@
|
|||||||
The rooms are in the old hospital wings, so most are old patient rooms, but there
|
The rooms are in the old hospital wings, so most are old patient rooms, but there
|
||||||
are plenty of others too. Prices do not include electricity or vat, but do include
|
are plenty of others too. Prices do not include electricity or vat, but do include
|
||||||
the use of common spaces, see below.
|
the use of common spaces, see below.
|
||||||
image: makerspace.webp
|
image:
|
||||||
|
id: b7d16d4da518bafd3d39
|
||||||
card_template: card_full_image
|
card_template: card_full_image
|
||||||
cards:
|
cards:
|
||||||
- header: Standard
|
- header: Standard
|
||||||
@ -19,4 +20,3 @@
|
|||||||
are large enough to be shared. The size is about 30m2 and the cost 240e. Like
|
are large enough to be shared. The size is about 30m2 and the cost 240e. Like
|
||||||
the small rooms these are south facing, very light.
|
the small rooms these are south facing, very light.
|
||||||
image: large.webp
|
image: large.webp
|
||||||
id: b7d16d4da518bafd3d39
|
|
||||||
|
Loading…
Reference in New Issue
Block a user