hyper-model 0.99.6 → 1.0.alpha1
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/Gemfile +2 -1
- data/Gemfile.lock +49 -28
- data/hyper-model.gemspec +7 -6
- data/lib/active_record_base.rb +8 -8
- data/lib/hyper-model.rb +6 -4
- data/lib/hyper_model/version.rb +1 -1
- data/lib/hyper_react/input_tags.rb +32 -29
- data/lib/{hyperloop → hyperstack}/model/load.rb +1 -1
- data/lib/reactive_record/active_record/errors.rb +2 -2
- data/lib/reactive_record/active_record/instance_methods.rb +1 -1
- data/lib/reactive_record/active_record/public_columns_hash.rb +3 -3
- data/lib/reactive_record/active_record/reactive_record/base.rb +7 -7
- data/lib/reactive_record/active_record/reactive_record/collection.rb +6 -6
- data/lib/reactive_record/active_record/reactive_record/getters.rb +1 -1
- data/lib/reactive_record/active_record/reactive_record/isomorphic_base.rb +4 -5
- data/lib/reactive_record/active_record/reactive_record/operations.rb +2 -2
- data/lib/reactive_record/active_record/reactive_record/setters.rb +4 -4
- data/lib/reactive_record/active_record/reactive_record/while_loading.rb +119 -115
- data/lib/reactive_record/broadcast.rb +11 -11
- data/lib/reactive_record/permissions.rb +3 -3
- data/lib/reactive_record/pry.rb +1 -1
- data/lib/reactive_record/server_data_cache.rb +2 -2
- metadata +34 -24
- data/CHANGELOG.md +0 -34
- data/DOCS.md +0 -735
- data/LICENSE.txt +0 -21
- data/README.md +0 -51
- data/path_release_steps.md +0 -9
@@ -180,10 +180,10 @@ module ReactiveRecord
|
|
180
180
|
|
181
181
|
def changed?(*args)
|
182
182
|
if args.count == 0
|
183
|
-
|
183
|
+
Hyperstack::Internal::Store::State.get_state(self, "!CHANGED!")
|
184
184
|
!changed_attributes.empty?
|
185
185
|
else
|
186
|
-
|
186
|
+
Hyperstack::Internal::Store::State.get_state(self, args[0])
|
187
187
|
changed_attributes.include? args[0]
|
188
188
|
end
|
189
189
|
end
|
@@ -288,7 +288,7 @@ module ReactiveRecord
|
|
288
288
|
end
|
289
289
|
|
290
290
|
def saving!
|
291
|
-
|
291
|
+
Hyperstack::Internal::Store::State.set_state(self, self, :saving) unless data_loading?
|
292
292
|
@saving = true
|
293
293
|
end
|
294
294
|
|
@@ -306,9 +306,9 @@ module ReactiveRecord
|
|
306
306
|
notify_waiting_for_save
|
307
307
|
return self if save_only
|
308
308
|
if errors.empty?
|
309
|
-
|
309
|
+
Hyperstack::Internal::Store::State.set_state(self, self, :saved)
|
310
310
|
elsif !data_loading?
|
311
|
-
|
311
|
+
Hyperstack::Internal::Store::State.set_state(self, self, :error)
|
312
312
|
end
|
313
313
|
self
|
314
314
|
end
|
@@ -334,7 +334,7 @@ module ReactiveRecord
|
|
334
334
|
end
|
335
335
|
|
336
336
|
def saving?
|
337
|
-
|
337
|
+
Hyperstack::Internal::Store::State.get_state(self, self)
|
338
338
|
@saving
|
339
339
|
end
|
340
340
|
|
@@ -387,7 +387,7 @@ module ReactiveRecord
|
|
387
387
|
@catch_db_requests = true
|
388
388
|
yield
|
389
389
|
rescue DbRequestMade => e
|
390
|
-
|
390
|
+
Hyperstack::Component::IsomorphicHelpers.log "Warning: request for server side data during scope evaluation: #{e.message}", :warning
|
391
391
|
return_val
|
392
392
|
ensure
|
393
393
|
@catch_db_requests = false
|
@@ -132,7 +132,7 @@ To determine this sync_scopes first asks if the record being changed is in the s
|
|
132
132
|
# the broadcast record and the value on the client is out of sync
|
133
133
|
# not running set_pre_sync_related_records will cause sync scopes
|
134
134
|
# to refresh all related scopes
|
135
|
-
|
135
|
+
Hyperstack::Internal::State::Mapper.bulk_update do
|
136
136
|
record = broadcast.record_with_current_values
|
137
137
|
apply_to_all_collections(
|
138
138
|
:set_pre_sync_related_records,
|
@@ -292,7 +292,7 @@ To determine this sync_scopes first asks if the record being changed is in the s
|
|
292
292
|
# end of stuff to move
|
293
293
|
|
294
294
|
def reload_from_db(force = nil)
|
295
|
-
if force ||
|
295
|
+
if force || Hyperstack::Internal::Store::State.observed?(self, :collection)
|
296
296
|
@out_of_date = false
|
297
297
|
ReactiveRecord::Base.load_from_db(nil, *@vector, '*all') if @collection
|
298
298
|
ReactiveRecord::Base.load_from_db(nil, *@vector, '*count')
|
@@ -308,15 +308,15 @@ To determine this sync_scopes first asks if the record being changed is in the s
|
|
308
308
|
@observing = true
|
309
309
|
link_to_parent
|
310
310
|
reload_from_db(true) if @out_of_date
|
311
|
-
|
311
|
+
Hyperstack::Internal::Store::State.get_state(self, :collection)
|
312
312
|
ensure
|
313
313
|
@observing = false
|
314
314
|
end
|
315
315
|
end
|
316
316
|
|
317
317
|
def set_count_state(val)
|
318
|
-
unless ReactiveRecord::WhileLoading.
|
319
|
-
|
318
|
+
unless ReactiveRecord::WhileLoading.observed?
|
319
|
+
Hyperstack::Internal::Store::State.set_state(self, :collection, collection, true)
|
320
320
|
end
|
321
321
|
@count = val
|
322
322
|
end
|
@@ -549,7 +549,7 @@ To determine this sync_scopes first asks if the record being changed is in the s
|
|
549
549
|
end
|
550
550
|
|
551
551
|
def notify_of_change(value = nil)
|
552
|
-
|
552
|
+
Hyperstack::Internal::Store::State.set_state(self, "collection", collection) unless ReactiveRecord::Base.data_loading?
|
553
553
|
value
|
554
554
|
end
|
555
555
|
|
@@ -99,7 +99,7 @@ module ReactiveRecord
|
|
99
99
|
else
|
100
100
|
virtual_fetch_on_server_warning(attribute) if on_opal_server? && changed?
|
101
101
|
yield false, attribute
|
102
|
-
end.tap { |value|
|
102
|
+
end.tap { |value| Hyperstack::Internal::Store::State.get_state(self, attribute) unless data_loading? }
|
103
103
|
end
|
104
104
|
|
105
105
|
def find_association(association, id)
|
@@ -4,7 +4,7 @@ module ReactiveRecord
|
|
4
4
|
|
5
5
|
class Base
|
6
6
|
|
7
|
-
include
|
7
|
+
include Hyperstack::Component::IsomorphicHelpers
|
8
8
|
|
9
9
|
before_first_mount do |context|
|
10
10
|
if RUBY_ENGINE != 'opal'
|
@@ -132,7 +132,7 @@ module ReactiveRecord
|
|
132
132
|
end
|
133
133
|
|
134
134
|
def self.schedule_fetch
|
135
|
-
|
135
|
+
Hyperstack::Internal::Store::State.set_state(WhileLoading, :quiet, false) # moved from while loading module see loading! method
|
136
136
|
return if @fetch_scheduled
|
137
137
|
@current_fetch_id = Time.now
|
138
138
|
@fetch_scheduled = after(0) do
|
@@ -242,7 +242,7 @@ module ReactiveRecord
|
|
242
242
|
end if record.new? || record.changed? || (record == record_being_saved && force)
|
243
243
|
record_index += 1
|
244
244
|
end
|
245
|
-
[models
|
245
|
+
[models, associations, backing_records]
|
246
246
|
end
|
247
247
|
|
248
248
|
def save_or_validate(save, validate, force, &block)
|
@@ -308,7 +308,6 @@ module ReactiveRecord
|
|
308
308
|
backing_records.each { |_id, record| record.saved!(true) rescue nil } if save
|
309
309
|
end
|
310
310
|
rescue Exception => e
|
311
|
-
debugger
|
312
311
|
log("Exception raised while saving - #{e}", :error)
|
313
312
|
yield false, e.message, [] if block
|
314
313
|
promise.resolve({success: false, message: e.message, models: []})
|
@@ -481,7 +480,7 @@ module ReactiveRecord
|
|
481
480
|
saved_models = reactive_records.collect do |reactive_record_id, model|
|
482
481
|
messages = model.errors.messages if validate && !model.valid?
|
483
482
|
all_messages << [model, messages] if save && messages
|
484
|
-
attributes = model.
|
483
|
+
attributes = model.__hyperstack_secure_attributes(acting_user)
|
485
484
|
[reactive_record_id, model.class.name, attributes, messages]
|
486
485
|
end
|
487
486
|
|
@@ -7,7 +7,7 @@ module ReactiveRecord
|
|
7
7
|
|
8
8
|
module Operations
|
9
9
|
# to make debug easier we convert all the object_id strings to be hex representation
|
10
|
-
class Base <
|
10
|
+
class Base < Hyperstack::ControllerOp
|
11
11
|
param :acting_user, nils: true
|
12
12
|
|
13
13
|
FORMAT = '0x%x'
|
@@ -66,7 +66,7 @@ module ReactiveRecord
|
|
66
66
|
end
|
67
67
|
failed do |e|
|
68
68
|
# AccessViolations are already sent to on_error
|
69
|
-
|
69
|
+
Hyperstack.on_error(e, :fetch_error, params.to_h) unless e.is_a? Hyperstack::AccessViolation
|
70
70
|
raise e
|
71
71
|
end
|
72
72
|
end
|
@@ -92,7 +92,7 @@ module ReactiveRecord
|
|
92
92
|
@attributes[attr] = new_value
|
93
93
|
if !data_loading? ||
|
94
94
|
(on_opal_client? && had_key && current_value.loaded? && current_value != new_value)
|
95
|
-
|
95
|
+
Hyperstack::Internal::Store::State.set_state(self, attr, new_value, data_loading?)
|
96
96
|
end
|
97
97
|
end
|
98
98
|
end
|
@@ -101,7 +101,7 @@ module ReactiveRecord
|
|
101
101
|
def set_change_status_and_notify_only(attr, changed)
|
102
102
|
return if @virgin
|
103
103
|
change_status_and_notify_helper(attr, changed) do
|
104
|
-
|
104
|
+
Hyperstack::Internal::Store::State.set_state(self, attr, nil) unless data_loading?
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -117,7 +117,7 @@ module ReactiveRecord
|
|
117
117
|
yield @attributes.key?(attr), @attributes[attr]
|
118
118
|
return unless empty_before != changed_attributes.empty?
|
119
119
|
if on_opal_client? && !data_loading?
|
120
|
-
|
120
|
+
Hyperstack::Internal::Store::State.set_state(self, '!CHANGED!', !changed_attributes.empty?, true)
|
121
121
|
end
|
122
122
|
return unless aggregate_owner
|
123
123
|
aggregate_owner.set_change_status_and_notify_only(
|
@@ -135,7 +135,7 @@ module ReactiveRecord
|
|
135
135
|
return if value.nil?
|
136
136
|
value.attributes[inverse_attr] = @ar_instance
|
137
137
|
return if data_loading?
|
138
|
-
|
138
|
+
Hyperstack::Internal::Store::State.set_state(value.backing_record, inverse_attr, @ar_instance)
|
139
139
|
end
|
140
140
|
|
141
141
|
def update_inverse_collections(association, value)
|
@@ -24,7 +24,7 @@ module ReactiveRecord
|
|
24
24
|
@loads_pending = @load_stack.pop
|
25
25
|
promise
|
26
26
|
rescue Exception => e
|
27
|
-
|
27
|
+
Hyperstack::Component::IsomorphicHelpers.log "ReactiveRecord.load exception raised during initial load: #{e}", :error
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.loads_pending!
|
@@ -62,7 +62,7 @@ module ReactiveRecord
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
rescue Exception => e
|
65
|
-
|
65
|
+
Hyperstack::Component::IsomorphicHelpers.log "ReactiveRecord.load exception raised during retry: #{e}", :error
|
66
66
|
end
|
67
67
|
|
68
68
|
|
@@ -76,7 +76,7 @@ module ReactiveRecord
|
|
76
76
|
|
77
77
|
class WhileLoading
|
78
78
|
|
79
|
-
include
|
79
|
+
include Hyperstack::Component::IsomorphicHelpers
|
80
80
|
|
81
81
|
before_first_mount do
|
82
82
|
@css_to_preload = ""
|
@@ -92,7 +92,11 @@ module ReactiveRecord
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def self.has_observers?
|
95
|
-
|
95
|
+
Hyperstack::Internal::Store::State.observed?(self, :loaded_at)
|
96
|
+
end
|
97
|
+
|
98
|
+
class << self
|
99
|
+
alias :observed? :has_observers?
|
96
100
|
end
|
97
101
|
|
98
102
|
prerender_footer do
|
@@ -105,7 +109,7 @@ module ReactiveRecord
|
|
105
109
|
# -: You think wrong. add_style_sheet uses the jQuery $, after_mount too, others too
|
106
110
|
# -: I removed those references. Now you think right.
|
107
111
|
|
108
|
-
include
|
112
|
+
include Hyperstack::Component
|
109
113
|
|
110
114
|
param :loading
|
111
115
|
param :loaded_children
|
@@ -121,29 +125,29 @@ module ReactiveRecord
|
|
121
125
|
end
|
122
126
|
|
123
127
|
def loading!
|
124
|
-
|
125
|
-
|
128
|
+
Hyperstack::Internal::Component::RenderingContext.waiting_on_resources = true
|
129
|
+
Hyperstack::Internal::Store::State.get_state(self, :loaded_at)
|
126
130
|
# this was moved to where the fetch is actually pushed on to the fetch array in isomorphic base
|
127
|
-
#
|
131
|
+
# Hyperstack::Internal::Store::State.set_state(self, :quiet, false)
|
128
132
|
@is_loading = true
|
129
133
|
end
|
130
134
|
|
131
135
|
def loaded_at(loaded_at)
|
132
|
-
|
136
|
+
Hyperstack::Internal::Store::State.set_state(self, :loaded_at, loaded_at)
|
133
137
|
@is_loading = false
|
134
138
|
end
|
135
139
|
|
136
140
|
def quiet?
|
137
|
-
|
141
|
+
Hyperstack::Internal::Store::State.get_state(self, :quiet)
|
138
142
|
end
|
139
143
|
|
140
144
|
def page_loaded?
|
141
|
-
|
145
|
+
Hyperstack::Internal::Store::State.get_state(self, :page_loaded)
|
142
146
|
end
|
143
147
|
|
144
148
|
def quiet!
|
145
|
-
|
146
|
-
after(1) {
|
149
|
+
Hyperstack::Internal::Store::State.set_state(self, :quiet, true)
|
150
|
+
after(1) { Hyperstack::Internal::Store::State.set_state(self, :page_loaded, true) } unless on_opal_server? or @page_loaded
|
147
151
|
@page_loaded = true
|
148
152
|
end
|
149
153
|
|
@@ -166,18 +170,18 @@ module ReactiveRecord
|
|
166
170
|
before_mount do
|
167
171
|
@uniq_id = WhileLoading.get_next_while_loading_counter
|
168
172
|
WhileLoading.preload_css(
|
169
|
-
".reactive_record_while_loading_container_#{@uniq_id} > :nth-child(1n+#{
|
173
|
+
".reactive_record_while_loading_container_#{@uniq_id} > :nth-child(1n+#{@LoadedChildren.count+1}) {\n"+
|
170
174
|
" display: none;\n"+
|
171
175
|
"}\n"
|
172
176
|
)
|
173
177
|
end
|
174
178
|
|
175
179
|
after_mount do
|
176
|
-
@waiting_on_resources =
|
180
|
+
@waiting_on_resources = @Loading
|
177
181
|
WhileLoading.add_style_sheet
|
178
182
|
node = dom_node
|
179
183
|
%x{
|
180
|
-
var nodes = node.querySelectorAll(':nth-child(-1n+'+#{
|
184
|
+
var nodes = node.querySelectorAll(':nth-child(-1n+'+#{@LoadedChildren.count}+')');
|
181
185
|
nodes.forEach(
|
182
186
|
function(current_node, current_index, list_obj) {
|
183
187
|
if (current_node.className.indexOf('reactive_record_show_when_loaded') === -1) {
|
@@ -185,7 +189,7 @@ module ReactiveRecord
|
|
185
189
|
}
|
186
190
|
}
|
187
191
|
);
|
188
|
-
nodes = node.querySelectorAll(':nth-child(1n+'+#{
|
192
|
+
nodes = node.querySelectorAll(':nth-child(1n+'+#{@LoadedChildren.count+1}+')');
|
189
193
|
nodes.forEach(
|
190
194
|
function(current_node, current_index, list_obj) {
|
191
195
|
if (current_node.className.indexOf('reactive_record_show_while_loading') === -1) {
|
@@ -197,20 +201,20 @@ module ReactiveRecord
|
|
197
201
|
end
|
198
202
|
|
199
203
|
after_update do
|
200
|
-
@waiting_on_resources =
|
204
|
+
@waiting_on_resources = @Loading
|
201
205
|
end
|
202
206
|
|
203
207
|
def render
|
204
|
-
props =
|
208
|
+
props = @ElementProps.dup
|
205
209
|
classes = [props[:class], props[:className], "reactive_record_while_loading_container_#{@uniq_id}"].compact.join(" ")
|
206
210
|
props.merge!({
|
207
211
|
"data-reactive_record_while_loading_container_id" => @uniq_id,
|
208
212
|
"data-reactive_record_enclosing_while_loading_container_id" => @uniq_id,
|
209
213
|
class: classes
|
210
214
|
})
|
211
|
-
|
212
|
-
|
213
|
-
end.tap { |e| e.waiting_on_resources =
|
215
|
+
ReactAPI.create_element(@ElementType[0], props) do
|
216
|
+
@LoadedChildren + @LoadingChildren
|
217
|
+
end.tap { |e| e.waiting_on_resources = @Loading }
|
214
218
|
end
|
215
219
|
|
216
220
|
end
|
@@ -219,124 +223,124 @@ module ReactiveRecord
|
|
219
223
|
|
220
224
|
end
|
221
225
|
|
222
|
-
module
|
226
|
+
module Hyperstack
|
227
|
+
module Component
|
223
228
|
|
224
|
-
|
229
|
+
class Element
|
225
230
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
231
|
+
def while_loading(display = "", &loading_display_block)
|
232
|
+
loaded_children = []
|
233
|
+
loaded_children = block.call.dup if block
|
234
|
+
if display.respond_to? :as_node
|
235
|
+
display = display.as_node
|
236
|
+
loading_display_block = lambda { display.render }
|
237
|
+
elsif !loading_display_block
|
238
|
+
loading_display_block = lambda { display }
|
239
|
+
end
|
240
|
+
loading_children = Internal::Component::RenderingContext.build do |buffer|
|
241
|
+
result = loading_display_block.call
|
242
|
+
result = result.to_s if result.try :acts_as_string?
|
243
|
+
result.span.tap { |e| e.waiting_on_resources = Internal::Component::RenderingContext.waiting_on_resources } if result.is_a? String
|
244
|
+
buffer.dup
|
245
|
+
end
|
241
246
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
247
|
+
new_element = ReactAPI.create_element(
|
248
|
+
ReactiveRecord::WhileLoading,
|
249
|
+
loading: waiting_on_resources,
|
250
|
+
loading_children: loading_children,
|
251
|
+
loaded_children: loaded_children,
|
252
|
+
element_type: [type],
|
253
|
+
element_props: properties)
|
249
254
|
|
250
|
-
|
251
|
-
|
255
|
+
Internal::Component::RenderingContext.replace(self, new_element)
|
256
|
+
end
|
252
257
|
|
253
|
-
|
254
|
-
|
255
|
-
|
258
|
+
def hide_while_loading
|
259
|
+
while_loading
|
260
|
+
end
|
256
261
|
|
262
|
+
end
|
257
263
|
end
|
258
264
|
end
|
259
265
|
|
260
266
|
if RUBY_ENGINE == 'opal'
|
261
|
-
module
|
262
|
-
|
263
|
-
module Mixin
|
267
|
+
module Hyperstack
|
268
|
+
module Component
|
264
269
|
|
265
|
-
|
270
|
+
alias_method :original_component_did_mount, :component_did_mount
|
266
271
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
+
def component_did_mount(*args)
|
273
|
+
original_component_did_mount(*args)
|
274
|
+
reactive_record_link_to_enclosing_while_loading_container
|
275
|
+
reactive_record_link_set_while_loading_container_class
|
276
|
+
end
|
272
277
|
|
273
|
-
|
278
|
+
alias_method :original_component_did_update, :component_did_update
|
274
279
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
280
|
+
def component_did_update(*args)
|
281
|
+
original_component_did_update(*args)
|
282
|
+
reactive_record_link_set_while_loading_container_class
|
283
|
+
end
|
279
284
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
}
|
285
|
+
def reactive_record_link_to_enclosing_while_loading_container
|
286
|
+
# Call after any component mounts - attaches the containers loading id to this component
|
287
|
+
# Fyi, the while_loading container is responsible for setting its own link to itself
|
288
|
+
node = dom_node
|
289
|
+
%x{
|
290
|
+
if (typeof node === "undefined" || node === null) return;
|
291
|
+
var node_wl_attr = node.getAttribute('data-reactive_record_enclosing_while_loading_container_id');
|
292
|
+
if (node_wl_attr === null || node_wl_attr === "") {
|
293
|
+
var while_loading_container = node.closest('[data-reactive_record_while_loading_container_id]');
|
294
|
+
if (while_loading_container !== null) {
|
295
|
+
var container_id = while_loading_container.getAttribute('data-reactive_record_while_loading_container_id');
|
296
|
+
node.setAttribute('data-reactive_record_enclosing_while_loading_container_id', container_id);
|
293
297
|
}
|
294
298
|
}
|
295
|
-
|
299
|
+
}
|
300
|
+
end
|
296
301
|
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
}
|
302
|
+
def reactive_record_link_set_while_loading_container_class
|
303
|
+
node = dom_node
|
304
|
+
loading = (waiting_on_resources ? `true` : `false`)
|
305
|
+
%x{
|
306
|
+
if (typeof node === "undefined" || node === null) return;
|
307
|
+
var while_loading_container_id = node.getAttribute('data-reactive_record_while_loading_container_id');
|
308
|
+
if (#{!self.is_a?(ReactiveRecord::WhileLoading)} && while_loading_container_id !== null && while_loading_container_id !== "") {
|
309
|
+
return;
|
310
|
+
}
|
311
|
+
var enc_while_loading_container_id = node.getAttribute('data-reactive_record_enclosing_while_loading_container_id');
|
312
|
+
if (enc_while_loading_container_id !== null && enc_while_loading_container_id !== "") {
|
313
|
+
var while_loading_container = document.body.querySelector('[data-reactive_record_while_loading_container_id="'+enc_while_loading_container_id+'"]');
|
314
|
+
if (loading) {
|
315
|
+
node.className = node.className.replace(/reactive_record_is_loaded/g, '').replace(/ /g, ' ');
|
316
|
+
if (node.className.indexOf('reactive_record_is_loading') === -1) {
|
317
|
+
node.className = node.className + ' reactive_record_is_loading';
|
318
|
+
}
|
319
|
+
if (while_loading_container !== null) {
|
320
|
+
while_loading_container.className = while_loading_container.className.replace(/reactive_record_is_loaded/g, '').replace(/ /g, ' ');
|
321
|
+
if (while_loading_container.className.indexOf('reactive_record_is_loading') === -1) {
|
322
|
+
while_loading_container.className = while_loading_container.className + ' reactive_record_is_loading';
|
319
323
|
}
|
320
|
-
}
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
324
|
+
}
|
325
|
+
} else if (node.className.indexOf('reactive_record_is_loaded') === -1) {
|
326
|
+
if (while_loading_container_id === null || while_loading_container_id === "") {
|
327
|
+
node.className = node.className.replace(/reactive_record_is_loading/g, '').replace(/ /g, ' ');
|
328
|
+
if (node.className.indexOf('reactive_record_is_loaded') === -1) {
|
329
|
+
node.className = node.className + ' reactive_record_is_loaded';
|
326
330
|
}
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
331
|
+
}
|
332
|
+
if (while_loading_container.className.indexOf('reactive_record_is_loaded') === -1) {
|
333
|
+
var loading_children = while_loading_container.querySelectorAll('[data-reactive_record_enclosing_while_loading_container_id="'+enc_while_loading_container_id+'"].reactive_record_is_loading');
|
334
|
+
if (loading_children.length === 0) {
|
335
|
+
while_loading_container.className = while_loading_container.className.replace(/reactive_record_is_loading/g, '').replace(/ /g, ' ');
|
336
|
+
if (while_loading_container.className.indexOf('reactive_record_is_loaded') === -1) {
|
337
|
+
while_loading_container.className = while_loading_container.className + ' reactive_record_is_loaded';
|
334
338
|
}
|
335
339
|
}
|
336
340
|
}
|
337
341
|
}
|
338
342
|
}
|
339
|
-
|
343
|
+
}
|
340
344
|
end
|
341
345
|
end
|
342
346
|
end
|