foreign_office 0.15.12 → 0.16.0
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2de91fc96446054ec1140b1abe152bc1776e9cf
|
4
|
+
data.tar.gz: 1b99de5a4721b53894230d6cd47046894c1203ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af62c31292bca5b0f6c2054cee6a5bddf9f12b022987efe8feb533cccd5836c3ea90c8caec051c8c3e7d80200dd5f0bfabbd1f9c86ae9b14d77e9ff2e52502c6
|
7
|
+
data.tar.gz: f4c4a53a322aa615716d86c8ddbc8705d176b109a6ef187bcdedab3af05bb74bd0ae22026c34b1c95b7bda5397f81e7bea003552ee06c1bb85c7b83856ba1cb0
|
@@ -136,6 +136,7 @@ var ForeignOfficeListener = Class.extend({
|
|
136
136
|
init: function($listener){
|
137
137
|
this.$listener = $listener;
|
138
138
|
$listener.data('foreign_office.ForeignOfficeListener',this)
|
139
|
+
this.exclude_value = $listener.data('exclude-value');
|
139
140
|
this.endpoint = $listener.data('endpoint');
|
140
141
|
this.reveal_hide = $listener.data('reveal-hide');
|
141
142
|
this.object_key = $listener.data('key');
|
@@ -161,11 +162,13 @@ var ForeignOfficeListener = Class.extend({
|
|
161
162
|
handleMessage: function(m){
|
162
163
|
var $listener = this.$listener;
|
163
164
|
var listener = this
|
164
|
-
|
165
|
+
var message_value = m.object[this.object_key]
|
166
|
+
if((!m.object.hasOwnProperty(this.object_key) && !m.object.hasOwnProperty(this.delete_key)) ||
|
167
|
+
(this.exclude_value && message_value == this.exclude_value)){
|
165
168
|
return true
|
166
169
|
}
|
167
170
|
if(this.endpoint){
|
168
|
-
if (
|
171
|
+
if (message_value == true) {
|
169
172
|
listener.maskMe()
|
170
173
|
$.get(this.endpoint, function(data){
|
171
174
|
$listener.html(data);
|
@@ -174,29 +177,28 @@ var ForeignOfficeListener = Class.extend({
|
|
174
177
|
})
|
175
178
|
}else if(m.object[this.object_key] == false) {
|
176
179
|
$listener.empty();
|
177
|
-
}else if(typeof(
|
180
|
+
}else if(typeof(message_value) == 'string'){
|
178
181
|
listener.maskMe()
|
179
|
-
$.get(
|
182
|
+
$.get(message_value, function(data){
|
180
183
|
$listener.html(data);
|
181
184
|
}).always(function(){
|
182
185
|
listener.unMaskMe()
|
183
186
|
})
|
184
187
|
}
|
185
|
-
if (
|
188
|
+
if (message_value == true) {
|
186
189
|
$listener.remove();
|
187
190
|
}
|
188
191
|
}else if(this.reveal_hide){
|
189
|
-
|
190
|
-
if(!current_value || current_value == 'false' || current_value == 'hide'){
|
192
|
+
if(!message_value || message_value == 'false' || message_value == 'hide'){
|
191
193
|
this.$listener.hide();
|
192
194
|
} else {
|
193
195
|
this.$listener.removeClass('hidden');
|
194
196
|
this.$listener.show();
|
195
197
|
}
|
196
198
|
}else if(this.href_target){
|
197
|
-
this.$listener.attr('href',
|
199
|
+
this.$listener.attr('href',message_value)
|
198
200
|
}else if(this.create_modal){
|
199
|
-
if (
|
201
|
+
if (message_value && message_value != 'false') {
|
200
202
|
var $modal_content = $('<div>').html($(this.create_modal).html());
|
201
203
|
var modal = new hooch.Modal($modal_content);
|
202
204
|
modal.$dismisser.remove();
|
@@ -204,35 +206,34 @@ var ForeignOfficeListener = Class.extend({
|
|
204
206
|
delete modal.$dismisser;
|
205
207
|
}
|
206
208
|
}else{
|
207
|
-
var new_value = m.object[this.object_key];
|
208
209
|
switch(this.$listener.get(0).nodeName.toLowerCase()){
|
209
210
|
case 'input':
|
210
211
|
if(this.$listener.attr('type') == 'checkbox'){
|
211
|
-
this.$listener.prop('checked',
|
212
|
+
this.$listener.prop('checked', message_value);
|
212
213
|
} else {
|
213
|
-
this.$listener.val(
|
214
|
+
this.$listener.val(message_value);
|
214
215
|
}
|
215
216
|
break;
|
216
217
|
case 'select':
|
217
|
-
if(this.$listener.val() != ('' +
|
218
|
-
this.$listener.val('' +
|
218
|
+
if(this.$listener.val() != ('' + message_value)){
|
219
|
+
this.$listener.val('' + message_value).change()
|
219
220
|
}
|
220
221
|
this.$listener.trigger("chosen:updated")
|
221
222
|
break;
|
222
223
|
|
223
224
|
case 'img':
|
224
|
-
this.$listener.prop('src',
|
225
|
+
this.$listener.prop('src',message_value);
|
225
226
|
break;
|
226
227
|
|
227
228
|
case 'progress':
|
228
|
-
this.$listener.attr('value',
|
229
|
+
this.$listener.attr('value',message_value)
|
229
230
|
break;
|
230
231
|
|
231
232
|
default:
|
232
233
|
if(this.$listener.data('trigger-on-message') || this.$listener.data('download')){
|
233
|
-
if(
|
234
|
-
if((
|
235
|
-
this.$listener.attr('href',
|
234
|
+
if(message_value && (message_value != 'false')){
|
235
|
+
if((message_value != true) && (message_value != 'true')){
|
236
|
+
this.$listener.attr('href',message_value);
|
236
237
|
}
|
237
238
|
if(this.progress_indicator){
|
238
239
|
this.progress_indicator.stop();
|
@@ -242,15 +243,15 @@ var ForeignOfficeListener = Class.extend({
|
|
242
243
|
}else if(this.$listener.data('ajax-form')){
|
243
244
|
this.$listener.trigger('apisubmit');
|
244
245
|
}else if(this.$listener.data('download')){
|
245
|
-
window.open(
|
246
|
+
window.open(message_value);
|
246
247
|
}else{
|
247
|
-
window.location =
|
248
|
+
window.location = message_value;
|
248
249
|
}
|
249
250
|
}
|
250
251
|
}else if (m.object[this.delete_key] == true) {
|
251
252
|
$listener.remove();
|
252
253
|
}else{
|
253
|
-
this.$listener.html(
|
254
|
+
this.$listener.html(message_value);
|
254
255
|
}
|
255
256
|
break;
|
256
257
|
}
|
@@ -1,12 +1,15 @@
|
|
1
1
|
module ForeignOffice
|
2
2
|
module ForeignOfficeHelper
|
3
|
-
def listener_attrs(resource, key, reveal_hide: false, endpoint: nil, download: nil,
|
3
|
+
def listener_attrs(resource, key, reveal_hide: false, endpoint: nil, download: nil,
|
4
|
+
trigger: nil, delete: nil, href_target: nil, create_modal: nil, mask_me: nil,
|
5
|
+
exclude_value: nil)
|
4
6
|
data_attrs = "data-listener=true data-channel=#{resource.class.name}#{resource.id}"
|
5
7
|
if delete
|
6
8
|
data_attrs += " data-delete-key=#{key}"
|
7
9
|
else
|
8
10
|
data_attrs += " data-key=#{key}"
|
9
11
|
end
|
12
|
+
data_attrs += " data-exclude-value=#{exclude_value}" if exclude_value
|
10
13
|
data_attrs += " data-reveal-hide=true" if reveal_hide
|
11
14
|
data_attrs += " data-endpoint=#{endpoint}" if endpoint
|
12
15
|
data_attrs += " data-trigger-on-message=true" if trigger
|
@@ -22,7 +25,9 @@ module ForeignOffice
|
|
22
25
|
data_attrs += " data-key=#{key}"
|
23
26
|
end
|
24
27
|
|
25
|
-
def listener_attrs_raw(channel, key, reveal_hide: false, endpoint: nil, download: nil,
|
28
|
+
def listener_attrs_raw(channel, key, reveal_hide: false, endpoint: nil, download: nil,
|
29
|
+
trigger: nil, delete: nil, href_target: nil, create_modal: nil, mask_me: nil,
|
30
|
+
exclude_value: nil)
|
26
31
|
data_attrs = "data-listener=true data-channel=#{channel}"
|
27
32
|
if delete
|
28
33
|
data_attrs += " data-delete-key=#{key}"
|
@@ -30,6 +35,7 @@ module ForeignOffice
|
|
30
35
|
data_attrs += " data-key=#{key}"
|
31
36
|
end
|
32
37
|
data_attrs += " data-reveal-hide=true" if reveal_hide
|
38
|
+
data_attrs += " data-endpoint=#{exclude_value}" if exclude_value
|
33
39
|
data_attrs += " data-endpoint=#{endpoint}" if endpoint
|
34
40
|
data_attrs += " data-download=true" if download
|
35
41
|
data_attrs += " data-trigger-on-message=true" if trigger
|
@@ -39,7 +45,9 @@ module ForeignOffice
|
|
39
45
|
data_attrs
|
40
46
|
end
|
41
47
|
|
42
|
-
def listener_hash(resource, key, reveal_hide: false, endpoint: nil, download: nil,
|
48
|
+
def listener_hash(resource, key, reveal_hide: false, endpoint: nil, download: nil,
|
49
|
+
trigger: nil, delete: nil, href_target: nil, create_modal: nil, mask_me: nil,
|
50
|
+
exclude_value: nil)
|
43
51
|
hash = {listener: true, channel: resource.class.name + resource.id.to_s}
|
44
52
|
if delete
|
45
53
|
hash[:delete_key] = key
|
@@ -48,6 +56,7 @@ module ForeignOffice
|
|
48
56
|
end
|
49
57
|
hash[:reveal_hide] = true if reveal_hide
|
50
58
|
hash[:endpoint] = endpoint if endpoint
|
59
|
+
hash[:exclude_value] = exclude_value if exclude_value
|
51
60
|
hash[:download] = true if download
|
52
61
|
hash[:trigger_on_message] = true if trigger
|
53
62
|
hash[:href_target] = true if href_target
|
@@ -56,7 +65,9 @@ module ForeignOffice
|
|
56
65
|
hash
|
57
66
|
end
|
58
67
|
|
59
|
-
def listener_hash_raw(channel, key, reveal_hide: false, endpoint: nil, download: nil,
|
68
|
+
def listener_hash_raw(channel, key, reveal_hide: false, endpoint: nil, download: nil,
|
69
|
+
trigger: nil, delete: nil, href_target: nil, create_modal: nil, mask_me: nil,
|
70
|
+
exclude_value: nil)
|
60
71
|
hash = {listener: true, channel: channel}
|
61
72
|
if delete
|
62
73
|
hash[:delete_key] = key
|
@@ -65,6 +76,7 @@ module ForeignOffice
|
|
65
76
|
end
|
66
77
|
hash[:reveal_hide] = true if reveal_hide
|
67
78
|
hash[:endpoint] = endpoint if endpoint
|
79
|
+
hash[:exclude_value] = exclude_value if exclude_value
|
68
80
|
hash[:download] = true if download
|
69
81
|
hash[:trigger_on_message] = true if trigger
|
70
82
|
hash[:href_target] = true if href_target
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreign_office
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Draut
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|