File tree 3 files changed +15
-1
lines changed
3 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 1
1
class TextFieldType < FieldType
2
2
attr_accessor :text
3
+ jsonb_accessor :data , text : :string
3
4
4
5
validates :text , presence : true , if : :validate_presence?
5
6
validate :text_length , if : :validate_length?
7
+ validate :text_unique , if : :validate_uniqueness?
6
8
7
9
def data = ( data_hash )
8
10
@text = data_hash . deep_symbolize_keys [ :text ]
@@ -25,14 +27,24 @@ def mapping_field_name
25
27
end
26
28
27
29
def text_present
28
- errors . add ( :text , " must be present" ) if @text . empty?
30
+ errors . add ( :text , ' must be present' ) if @text . empty?
29
31
end
30
32
31
33
def text_length
32
34
validator = LengthValidator . new ( validations [ :length ] . merge ( attributes : [ :text ] ) )
33
35
validator . validate_each ( self , :text , text )
34
36
end
35
37
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
+
36
48
def validate_presence?
37
49
@validations . key? :presence
38
50
end
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
s . add_dependency "cells-haml" , "~> 0.0.10"
23
23
s . add_dependency "mimemagic" , "~> 0.3.2"
24
24
s . add_dependency "ckeditor" , "= 4.2.0"
25
+ s . add_dependency "jsonb_accessor" , "~> 1.0.0.beta.2"
25
26
26
27
s . add_development_dependency "sqlite3"
27
28
end
Original file line number Diff line number Diff line change 1
1
require 'ckeditor'
2
+ require 'jsonb_accessor'
2
3
3
4
module Cortex
4
5
module Plugins
You can’t perform that action at this time.
0 commit comments