chr 0.2.8 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gruntfile.coffee +33 -27
- data/README.md +6 -1
- data/app/assets/javascripts/chr.coffee +18 -16
- data/app/assets/javascripts/chr/core/chr.coffee +41 -76
- data/app/assets/javascripts/chr/core/chr_router.coffee +141 -0
- data/app/assets/javascripts/chr/core/item.coffee +36 -49
- data/app/assets/javascripts/chr/core/list.coffee +26 -71
- data/app/assets/javascripts/chr/core/list_config.coffee +28 -13
- data/app/assets/javascripts/chr/core/list_pagination.coffee +56 -13
- data/app/assets/javascripts/chr/core/list_reorder.coffee +2 -2
- data/app/assets/javascripts/chr/core/list_search.coffee +2 -2
- data/app/assets/javascripts/chr/core/module.coffee +24 -93
- data/app/assets/javascripts/chr/core/utils.coffee +4 -0
- data/app/assets/javascripts/chr/core/view.coffee +123 -43
- data/app/assets/javascripts/chr/core/view_local-storage.coffee +58 -0
- data/app/assets/javascripts/chr/store/{_array-store.coffee → array-store.coffee} +3 -1
- data/app/assets/javascripts/chr/store/{_object-store.coffee → object-store.coffee} +0 -0
- data/app/assets/javascripts/chr/store/rails-array-store.coffee +39 -0
- data/app/assets/javascripts/chr/store/{mongosteen-object-store.coffee → rails-form-object-parser.coffee} +11 -20
- data/app/assets/javascripts/chr/store/rails-object-store.coffee +35 -0
- data/app/assets/javascripts/chr/store/rest-array-store.coffee +3 -5
- data/app/assets/javascripts/chr/store/rest-object-store.coffee +1 -1
- data/app/assets/javascripts/form/expandable-group.coffee +30 -0
- data/app/assets/javascripts/{chr/form → form}/form.coffee +3 -1
- data/app/assets/javascripts/{chr/form → form}/input-checkbox.coffee +1 -1
- data/app/assets/javascripts/{chr/form → form}/input-color.coffee +2 -0
- data/app/assets/javascripts/{chr/form → form}/input-date.coffee +0 -0
- data/app/assets/javascripts/{chr/form → form}/input-file.coffee +28 -1
- data/app/assets/javascripts/{chr/form → form}/input-form.coffee +14 -5
- data/app/assets/javascripts/{chr/form → form}/input-form_reorder.coffee +0 -0
- data/app/assets/javascripts/{chr/form → form}/input-hidden.coffee +9 -9
- data/app/assets/javascripts/{chr/form → form}/input-list.coffee +61 -53
- data/app/assets/javascripts/{chr/form → form}/input-list_reorder.coffee +2 -0
- data/app/assets/javascripts/form/input-list_typeahead.coffee +55 -0
- data/app/assets/javascripts/{chr/form → form}/input-password.coffee +1 -0
- data/app/assets/javascripts/{chr/form → form}/input-select.coffee +10 -11
- data/app/assets/javascripts/form/input-select2.coffee +33 -0
- data/app/assets/javascripts/{chr/form → form}/input-string.coffee +45 -2
- data/app/assets/javascripts/{chr/form → form}/input-text.coffee +6 -3
- data/app/assets/javascripts/input-html.coffee +8 -5
- data/app/assets/javascripts/input-markdown.coffee +10 -5
- data/app/assets/javascripts/input-redactor.coffee +1 -61
- data/app/assets/javascripts/redactor/input-redactor.coffee +53 -0
- data/app/assets/javascripts/redactor/input-redactor_character.coffee +83 -0
- data/app/assets/javascripts/redactor/input-redactor_images.coffee +166 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/ace.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/jquery.scrollparent.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/jquery.textarea_autosize.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/jquery.typeahead.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/marked.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/mode-html.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/mode-markdown.js +0 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/redactor.fixedtoolbar.js +1 -1
- data/app/assets/javascripts/vendor/select2.js +5274 -0
- data/app/assets/javascripts/{chr/vendor → vendor}/slip.js +0 -0
- data/app/assets/stylesheets/_chr.scss +11 -13
- data/app/assets/stylesheets/_input-redactor.scss +17 -16
- data/app/assets/stylesheets/{core → chr}/_icons.scss +1 -1
- data/app/assets/stylesheets/chr/_main.scss +110 -0
- data/app/assets/stylesheets/{core → chr}/_mixins.scss +58 -34
- data/app/assets/stylesheets/{core → chr}/_settings.scss +7 -1
- data/app/assets/stylesheets/form/_expandable-group.scss +16 -0
- data/app/assets/stylesheets/form/_input-select2.scss +94 -0
- data/app/assets/stylesheets/form/_main.scss +180 -0
- data/app/assets/stylesheets/vendor/select2.css +258 -0
- data/bower.json +2 -2
- data/dist/chr.js +2292 -2030
- data/dist/input-ace.js +18 -8
- data/dist/input-redactor.js +0 -156
- data/docs/bootstrap.md +1 -1
- data/docs/rails.md +10 -10
- data/lib/chr.rb +1 -8
- data/lib/chr/version.rb +1 -1
- data/lib/mongoid/character.rb +30 -0
- data/package.json +1 -1
- metadata +49 -43
- data/app/assets/javascripts/chr/store/mongosteen-array-store.coffee +0 -55
- data/app/assets/stylesheets/core/_list.scss +0 -39
- data/app/assets/stylesheets/core/_main.scss +0 -49
- data/app/assets/stylesheets/core/_responsive.scss +0 -62
- data/app/assets/stylesheets/form/_form.scss +0 -41
- data/app/assets/stylesheets/form/_input-checkbox.scss +0 -18
- data/app/assets/stylesheets/form/_input-color.scss +0 -10
- data/app/assets/stylesheets/form/_input-file.scss +0 -29
- data/app/assets/stylesheets/form/_input-form.scss +0 -26
- data/app/assets/stylesheets/form/_input-list.scss +0 -36
- data/app/assets/stylesheets/form/_input-string.scss +0 -8
@@ -0,0 +1,58 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Author: Alexander Kravets <alex@slatestudio.com>,
|
3
|
+
# Slate Studio (http://www.slatestudio.com)
|
4
|
+
#
|
5
|
+
# Coding Guide:
|
6
|
+
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
7
|
+
# -----------------------------------------------------------------------------
|
8
|
+
|
9
|
+
# -----------------------------------------------------------------------------
|
10
|
+
# VIEW LOCAL STORAGE
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
# @TODO: test how this works with nested forms
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
|
15
|
+
@viewLocalStorage =
|
16
|
+
|
17
|
+
# PRIVATE ===============================================
|
18
|
+
|
19
|
+
_bind_form_change: ->
|
20
|
+
if typeof(Storage)
|
21
|
+
@form.$el.on 'change', (e) => @_cache_form_state()
|
22
|
+
else
|
23
|
+
console.log ':: local storage is not supported ::'
|
24
|
+
|
25
|
+
|
26
|
+
_cache_form_state: ->
|
27
|
+
hash = @form.hash()
|
28
|
+
json = JSON.stringify(hash)
|
29
|
+
localStorage.setItem(@path, json)
|
30
|
+
|
31
|
+
@$el.addClass 'has-unsaved-changes'
|
32
|
+
|
33
|
+
|
34
|
+
_update_object_from_local_storage: ->
|
35
|
+
if typeof(Storage)
|
36
|
+
json = localStorage.getItem(@path)
|
37
|
+
if json
|
38
|
+
hash = JSON.parse(json)
|
39
|
+
$.extend(@object, hash)
|
40
|
+
|
41
|
+
@$el.addClass 'has-unsaved-changes'
|
42
|
+
|
43
|
+
|
44
|
+
_changes_not_saved: ->
|
45
|
+
if typeof(Storage)
|
46
|
+
# if object is missing localStorage.getItem returns null
|
47
|
+
if localStorage.getItem(@path) then true else false
|
48
|
+
|
49
|
+
|
50
|
+
_clear_local_storage_cache: ->
|
51
|
+
if typeof(Storage)
|
52
|
+
localStorage.removeItem(@path)
|
53
|
+
|
54
|
+
@$el.removeClass 'has-unsaved-changes'
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
@@ -65,7 +65,7 @@ class @ArrayStore
|
|
65
65
|
@sortBy = @reorderable.positionFieldName
|
66
66
|
@sortReverse = @reorderable.sortReverse ? false
|
67
67
|
else
|
68
|
-
console.log '
|
68
|
+
console.log ':: wrong reordering configuration, missing positionFieldName parameter ::'
|
69
69
|
@reorderable = false
|
70
70
|
|
71
71
|
|
@@ -113,6 +113,8 @@ class @ArrayStore
|
|
113
113
|
_add_data_object: (object) ->
|
114
114
|
object = @_normalize_object_id(object)
|
115
115
|
|
116
|
+
# TODO: double check if we still need this
|
117
|
+
|
116
118
|
# if object with same id already in the store, update it's parameters,
|
117
119
|
# otherwise add new object (this is used while pagination sync)
|
118
120
|
if ! @_map[object._id]
|
File without changes
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Author: Alexander Kravets <alex@slatestudio.com>,
|
3
|
+
# Slate Studio (http://www.slatestudio.com)
|
4
|
+
#
|
5
|
+
# Coding Guide:
|
6
|
+
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
7
|
+
# -----------------------------------------------------------------------------
|
8
|
+
|
9
|
+
# -----------------------------------------------------------------------------
|
10
|
+
# RAILS ARRAY STORE
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
#
|
13
|
+
# Dependencies:
|
14
|
+
#= require ./rails-form-object-parser
|
15
|
+
#
|
16
|
+
# -----------------------------------------------------------------------------
|
17
|
+
class @RailsArrayStore extends RestArrayStore
|
18
|
+
|
19
|
+
# PRIVATE ===============================================
|
20
|
+
|
21
|
+
_configure_store: ->
|
22
|
+
@ajaxConfig =
|
23
|
+
processData: false
|
24
|
+
contentType: false
|
25
|
+
|
26
|
+
|
27
|
+
_resource_url: (type, id) ->
|
28
|
+
objectPath = if id then "/#{ id }" else ''
|
29
|
+
"#{ @config.path }#{ objectPath }.json"
|
30
|
+
|
31
|
+
|
32
|
+
include(RailsArrayStore, railsFormObjectParser)
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
|
@@ -7,25 +7,20 @@
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
|
-
# RAILS OBJECT
|
10
|
+
# RAILS FORM OBJECT PARSER
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
# Get form data object from serialized form object, it uses special format for
|
13
|
+
# object names for support of:
|
14
|
+
# - files
|
15
|
+
# - lists
|
16
|
+
# - nested objects
|
17
|
+
#
|
11
18
|
# -----------------------------------------------------------------------------
|
12
|
-
class @MongosteenObjectStore extends RestObjectStore
|
13
|
-
|
14
|
-
# PRIVATE ===============================================
|
15
|
-
|
16
|
-
_configure_store: ->
|
17
|
-
@ajaxConfig =
|
18
|
-
processData: false
|
19
|
-
contentType: false
|
20
|
-
|
21
19
|
|
22
|
-
|
23
|
-
_resource_url: -> "#{ @config.path }.json"
|
20
|
+
@railsFormObjectParser =
|
24
21
|
|
22
|
+
# PRIVATE ===============================================
|
25
23
|
|
26
|
-
# get form data object from serialized form object,
|
27
|
-
# it uses special format for object names for support of:
|
28
|
-
# files, lists, nested objects
|
29
24
|
_parse_form_object: (serializedFormObject) ->
|
30
25
|
formDataObject = new FormData()
|
31
26
|
|
@@ -46,8 +41,4 @@ class @MongosteenObjectStore extends RestObjectStore
|
|
46
41
|
|
47
42
|
formDataObject.append("#{ @config.resource }#{ attr_name }", attr_value)
|
48
43
|
|
49
|
-
return formDataObject
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
44
|
+
return formDataObject
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Author: Alexander Kravets <alex@slatestudio.com>,
|
3
|
+
# Slate Studio (http://www.slatestudio.com)
|
4
|
+
#
|
5
|
+
# Coding Guide:
|
6
|
+
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
7
|
+
# -----------------------------------------------------------------------------
|
8
|
+
|
9
|
+
# -----------------------------------------------------------------------------
|
10
|
+
# RAILS OBJECT STORE
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
#
|
13
|
+
# Dependencies:
|
14
|
+
#= require ./rails-form-object-parser
|
15
|
+
#
|
16
|
+
# -----------------------------------------------------------------------------
|
17
|
+
class @RailsObjectStore extends RestObjectStore
|
18
|
+
|
19
|
+
# PRIVATE ===============================================
|
20
|
+
|
21
|
+
_configure_store: ->
|
22
|
+
@ajaxConfig =
|
23
|
+
processData: false
|
24
|
+
contentType: false
|
25
|
+
|
26
|
+
|
27
|
+
_resource_url: ->
|
28
|
+
"#{ @config.path }.json"
|
29
|
+
|
30
|
+
|
31
|
+
include(RailsObjectStore, railsFormObjectParser)
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
@@ -14,8 +14,6 @@
|
|
14
14
|
# pagination - enable pagination for resource index, default `true`
|
15
15
|
# searchable - enable resource search, default `false`
|
16
16
|
# urlParams - additional parameter to be included into request
|
17
|
-
# sortBy - sort objects by field
|
18
|
-
# sortReverse - reverse sorted objects
|
19
17
|
#
|
20
18
|
# Public methods:
|
21
19
|
# loadObject
|
@@ -142,8 +140,9 @@ class @RestArrayStore extends ArrayStore
|
|
142
140
|
callbacks.onSuccess ?= $.noop
|
143
141
|
callbacks.onError ?= $.noop
|
144
142
|
|
145
|
-
@_ajax 'GET', id,
|
146
|
-
|
143
|
+
@_ajax 'GET', id, null, ((data) =>
|
144
|
+
object = @_normalize_object_id(data)
|
145
|
+
callbacks.onSuccess(object)
|
147
146
|
), callbacks.onError
|
148
147
|
|
149
148
|
|
@@ -251,4 +250,3 @@ class @RestArrayStore extends ArrayStore
|
|
251
250
|
|
252
251
|
|
253
252
|
|
254
|
-
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Author: Alexander Kravets <alex@slatestudio.com>,
|
3
|
+
# Slate Studio (http://www.slatestudio.com)
|
4
|
+
#
|
5
|
+
# Coding Guide:
|
6
|
+
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
7
|
+
# -----------------------------------------------------------------------------
|
8
|
+
|
9
|
+
# -----------------------------------------------------------------------------
|
10
|
+
# EXPANDABLE GROUP
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
#
|
13
|
+
# Usage: onInitialize: (form, group) -> new ExpandableGroup(form, group, 'Details')
|
14
|
+
#
|
15
|
+
# -----------------------------------------------------------------------------
|
16
|
+
|
17
|
+
#@_expandableGroupStateCache = {}
|
18
|
+
|
19
|
+
class @ExpandableGroup
|
20
|
+
constructor: (@form, @group, name) ->
|
21
|
+
@$expander =$ """<a href='#' class='group-edit hidden'>#{ name }</a>"""
|
22
|
+
@group.$el.before @$expander
|
23
|
+
|
24
|
+
@$expander.on 'click', (e) =>
|
25
|
+
@$expander.toggleClass('hidden')
|
26
|
+
e.preventDefault()
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
@@ -9,6 +9,7 @@
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
# FORM
|
11
11
|
# -----------------------------------------------------------------------------
|
12
|
+
#
|
12
13
|
# Generates form based on provided configuration schema. If schema is not
|
13
14
|
# provided generates default form based on object keys. This uses Rails
|
14
15
|
# conventions for managing names for attributes, arrays, hashs and nested
|
@@ -20,7 +21,7 @@ class @Form
|
|
20
21
|
constructor: (@object, @config) ->
|
21
22
|
@groups = []
|
22
23
|
@inputs = {}
|
23
|
-
@$el = $(@config.rootEl ||
|
24
|
+
@$el = $(@config.rootEl || "<form class='form'>")
|
24
25
|
@schema = @_get_schema()
|
25
26
|
@isRemoved = false
|
26
27
|
|
@@ -68,6 +69,7 @@ class @Form
|
|
68
69
|
|
69
70
|
_build_schema: (schema, $el) ->
|
70
71
|
for fieldName, config of schema
|
72
|
+
config.fieldName = fieldName
|
71
73
|
if config.type == 'group'
|
72
74
|
group = @_generate_inputs_group(fieldName, config)
|
73
75
|
$el.append group.$el
|
@@ -21,7 +21,7 @@ class @InputCheckbox extends InputString
|
|
21
21
|
# PRIVATE ===============================================
|
22
22
|
|
23
23
|
_create_el: ->
|
24
|
-
@$el =$ "<label for='#{ @name }' class='input-#{ @config.type } input-#{ @config.klass }
|
24
|
+
@$el =$ "<label for='#{ @name }' class='input-#{ @config.type } input-#{ @config.klass } input-#{ @config.klassName }'>"
|
25
25
|
|
26
26
|
|
27
27
|
_safe_value: ->
|
File without changes
|
@@ -9,6 +9,9 @@
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
# INPUT FILE
|
11
11
|
# -----------------------------------------------------------------------------
|
12
|
+
# @TODO: add clear button when file is picked for the first time and you want
|
13
|
+
# to cancel that pick
|
14
|
+
# -----------------------------------------------------------------------------
|
12
15
|
class @InputFile extends InputString
|
13
16
|
constructor: (@name, @value, @config, @object) ->
|
14
17
|
@_create_el()
|
@@ -16,6 +19,7 @@ class @InputFile extends InputString
|
|
16
19
|
@_add_label()
|
17
20
|
@_add_input()
|
18
21
|
@_update_state()
|
22
|
+
@_add_required()
|
19
23
|
|
20
24
|
return this
|
21
25
|
|
@@ -23,7 +27,7 @@ class @InputFile extends InputString
|
|
23
27
|
# PRIVATE ===============================================
|
24
28
|
|
25
29
|
_create_el: ->
|
26
|
-
@$el =$ "<div class='input-#{ @config.type } input-#{ @config.klass }
|
30
|
+
@$el =$ "<div class='input-#{ @config.type } input-#{ @config.klass } input-#{ @config.klassName }'>"
|
27
31
|
|
28
32
|
|
29
33
|
_add_input: ->
|
@@ -33,9 +37,26 @@ class @InputFile extends InputString
|
|
33
37
|
@$input =$ "<input type='file' name='#{ @name }' id='#{ @name }'>"
|
34
38
|
@$el.append @$input
|
35
39
|
|
40
|
+
@_add_clear_button()
|
36
41
|
@_add_remove_checkbox()
|
37
42
|
|
38
43
|
|
44
|
+
_add_clear_button: ->
|
45
|
+
@$clearButton =$ "<a href='#' class='input-file-clear'></a>"
|
46
|
+
@$input.after @$clearButton
|
47
|
+
@$clearButton.hide()
|
48
|
+
|
49
|
+
@$clearButton.on 'click', (e) =>
|
50
|
+
# clear file input:
|
51
|
+
# http://stackoverflow.com/questions/1043957/clearing-input-type-file-using-jquery
|
52
|
+
@$input.replaceWith(@$input = @$input.clone(true))
|
53
|
+
@$clearButton.hide()
|
54
|
+
e.preventDefault()
|
55
|
+
|
56
|
+
@$input.on 'change', (e) =>
|
57
|
+
@$clearButton.show()
|
58
|
+
|
59
|
+
|
39
60
|
_add_remove_checkbox: ->
|
40
61
|
removeInputName = @removeName()
|
41
62
|
@$removeLabel =$ "<label for='#{ removeInputName }'>Remove</label>"
|
@@ -81,6 +102,11 @@ class @InputFile extends InputString
|
|
81
102
|
@_update_state()
|
82
103
|
|
83
104
|
|
105
|
+
hash: (hash={})->
|
106
|
+
# @TODO: file input type does not support caching and versioning as of now
|
107
|
+
return hash
|
108
|
+
|
109
|
+
|
84
110
|
chr.formInputs['file'] = InputFile
|
85
111
|
|
86
112
|
|
@@ -101,6 +127,7 @@ class @InputFileImage extends InputFile
|
|
101
127
|
@$input =$ "<input type='file' name='#{ @name }' id='#{ @name }' />"
|
102
128
|
@$el.append @$input
|
103
129
|
|
130
|
+
@_add_clear_button()
|
104
131
|
@_add_remove_checkbox()
|
105
132
|
|
106
133
|
|
@@ -45,7 +45,7 @@ class @InputForm
|
|
45
45
|
# PRIVATE ===============================================
|
46
46
|
|
47
47
|
_create_el: ->
|
48
|
-
@$el =$ "<div class='input-stacked nested-forms
|
48
|
+
@$el =$ "<div class='input-stacked nested-forms input-#{ @config.klassName }'>"
|
49
49
|
|
50
50
|
|
51
51
|
_add_label: ->
|
@@ -102,15 +102,17 @@ class @InputForm
|
|
102
102
|
# PUBLIC ================================================
|
103
103
|
|
104
104
|
initialize: ->
|
105
|
+
@config.beforeInitialize?(this)
|
106
|
+
|
105
107
|
for nestedForm in @forms
|
106
108
|
nestedForm.initializePlugins()
|
107
109
|
@config.onInitialize?(this)
|
108
110
|
|
109
111
|
|
110
|
-
hash: (hash={})->
|
111
|
-
|
112
|
-
for form in @forms
|
113
|
-
|
112
|
+
hash: (hash={}) ->
|
113
|
+
objects = []
|
114
|
+
objects.push(form.hash()) for form in @forms
|
115
|
+
hash[@config.fieldName] = objects
|
114
116
|
return hash
|
115
117
|
|
116
118
|
|
@@ -137,6 +139,13 @@ class @InputForm
|
|
137
139
|
@_add_form_reorder_button(form)
|
138
140
|
prevForm = _last(@forms)
|
139
141
|
position = if prevForm then prevForm.inputs[@config.sortBy].value + 1 else 1
|
142
|
+
|
143
|
+
# @TODO: having an issue here for scenario when no nested object are there for new object
|
144
|
+
# form.inputs doesn't include sortBy field
|
145
|
+
console.log @config
|
146
|
+
console.log @config.sortBy
|
147
|
+
console.log form.inputs
|
148
|
+
|
140
149
|
form.inputs[@config.sortBy].updateValue(position)
|
141
150
|
|
142
151
|
@forms.push(form)
|
File without changes
|
@@ -24,19 +24,21 @@ class @InputHidden
|
|
24
24
|
|
25
25
|
_safe_value: ->
|
26
26
|
if typeof(@value) == 'object'
|
27
|
-
JSON.stringify(@value)
|
27
|
+
return JSON.stringify(@value)
|
28
28
|
else
|
29
29
|
_escapeHtml(@value)
|
30
30
|
|
31
31
|
|
32
32
|
# PUBLIC ================================================
|
33
33
|
|
34
|
-
|
35
|
-
@config.onInitialize?(this)
|
34
|
+
showErrorMessage: (message) -> ;
|
36
35
|
|
37
36
|
|
38
|
-
|
39
|
-
|
37
|
+
hideErrorMessage: -> ;
|
38
|
+
|
39
|
+
|
40
|
+
initialize: ->
|
41
|
+
@config.onInitialize?(this)
|
40
42
|
|
41
43
|
|
42
44
|
hash: (hash={}) ->
|
@@ -44,10 +46,8 @@ class @InputHidden
|
|
44
46
|
return hash
|
45
47
|
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
hideErrorMessage: -> ;
|
49
|
+
updateValue: (@value) ->
|
50
|
+
@$el.val(@value)
|
51
51
|
|
52
52
|
|
53
53
|
chr.formInputs['hidden'] = InputHidden
|