File tree Expand file tree Collapse file tree 3 files changed +15
-1
lines changed
Expand file tree Collapse file tree 3 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 11class TextFieldType < FieldType
22 attr_accessor :text
3+ jsonb_accessor :data , text : :string
34
45 validates :text , presence : true , if : :validate_presence?
56 validate :text_length , if : :validate_length?
7+ validate :text_unique , if : :validate_uniqueness?
68
79 def data = ( data_hash )
810 @text = data_hash . deep_symbolize_keys [ :text ]
@@ -25,14 +27,24 @@ def mapping_field_name
2527 end
2628
2729 def text_present
28- errors . add ( :text , " must be present" ) if @text . empty?
30+ errors . add ( :text , ' must be present' ) if @text . empty?
2931 end
3032
3133 def text_length
3234 validator = LengthValidator . new ( validations [ :length ] . merge ( attributes : [ :text ] ) )
3335 validator . validate_each ( self , :text , text )
3436 end
3537
38+ def text_unique
39+ unless Field . find_by_name ( field_info . name ) . field_items . jsonb_contains ( :data , text : text ) . empty?
40+ errors . add ( :text , "#{ field_info . name } Must be unique" )
41+ end
42+ end
43+
44+ def validate_uniqueness?
45+ @validations . key? :uniqueness
46+ end
47+
3648 def validate_presence?
3749 @validations . key? :presence
3850 end
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ Gem::Specification.new do |s|
2222 s . add_dependency "cells-haml" , "~> 0.0.10"
2323 s . add_dependency "mimemagic" , "~> 0.3.2"
2424 s . add_dependency "ckeditor" , "= 4.2.0"
25+ s . add_dependency "jsonb_accessor" , "~> 1.0.0.beta.2"
2526
2627 s . add_development_dependency "sqlite3"
2728end
Original file line number Diff line number Diff line change 11require 'ckeditor'
2+ require 'jsonb_accessor'
23
34module Cortex
45 module Plugins
You can’t perform that action at this time.
0 commit comments