Sha256: 0e700f9319b1fa3a4f7f98cdf4c6cde492843bf9f9022d2777e08c5e8699aa9a
Contents?: true
Size: 1.38 KB
Versions: 6
Compression:
Stored size: 1.38 KB
Contents
# encoding: UTF-8 module Spontaneous class PageLock < Sequel::Model(:spontaneous_page_lock) class InvalidPage < Spontaneous::Error; end plugin :timestamps def self.lock_field(field) create(field_attributes(field).merge( :description => field.page_lock_description )) rescue InvalidPage nil end def self.unlock_field(field) field_dataset(field).delete rescue InvalidPage nil end def self.field_dataset(field) filter(field_attributes(field)) end def self.field_attributes(field) owner = field.owner raise InvalidPage.new(field.id) unless owner.page { :content_id => owner.content_instance.id, :page_id => owner.page.id, :field_id => field.id } end def field=(field) self.field_id = field.id end def field @field ||= Spontaneous::Field.find(content.model, field_id) end def field_name field.name end def location field, owner = self.field, self.field.owner model = owner.model.content_model case owner when model::Box "Field ‘#{field.name}’ of box ‘#{owner.box_name}’" when model::Page "Field ‘#{field.name}’" when model::Piece "Field ‘#{field.name}’ of entry #{owner.position + 1} in box ‘#{owner.container.box_name}’" end end end end
Version data entries
6 entries across 6 versions & 1 rubygems