@@ -60,24 +60,6 @@ function create_footer_placement() {
60
60
return null ;
61
61
}
62
62
63
- /*
64
- * Returns an array of possible places where a promo could go
65
- */
66
- function get_placements ( ) {
67
- var placements = [ ] ;
68
- var placement_funcs = [ create_footer_placement , create_sidebar_placement ] ;
69
- var placement ;
70
-
71
- for ( var i = 0 ; i < placement_funcs . length ; i += 1 ) {
72
- placement = placement_funcs [ i ] ( ) ;
73
- if ( placement ) {
74
- placements . push ( placement ) ;
75
- }
76
- }
77
-
78
- return placements ;
79
- }
80
-
81
63
function Promo ( data ) {
82
64
this . id = data . id ; // analytics id
83
65
this . div_id = data . div_id || '' ;
@@ -128,41 +110,53 @@ Promo.prototype.post_promo_display = function () {
128
110
} ;
129
111
130
112
function init ( ) {
131
- var post_data = { } ;
113
+ var request_data = { format : "jsonp" } ;
114
+ var div_ids = [ ] ;
115
+ var display_types = [ ] ;
116
+ var placement_funcs = [ create_footer_placement , create_sidebar_placement ] ;
132
117
var params ;
118
+ var placement ;
133
119
134
120
rtd = rtddata . get ( ) ;
135
121
136
122
if ( ! rtd . show_promo ( ) ) {
137
123
return ;
138
124
}
139
125
140
- post_data . placements = get_placements ( rtd ) ;
141
- post_data . project = rtd . project ;
126
+ for ( var i = 0 ; i < placement_funcs . length ; i += 1 ) {
127
+ placement = placement_funcs [ i ] ( ) ;
128
+ if ( placement ) {
129
+ div_ids . push ( placement . div_id ) ;
130
+ display_types . push ( placement . display_type ) ;
131
+ }
132
+ }
133
+
134
+ request_data . div_ids = div_ids . join ( '|' ) ;
135
+ request_data . display_types = display_types . join ( '|' ) ;
136
+ request_data . project = rtd . project ;
142
137
143
138
if ( typeof URL !== 'undefined' && typeof URLSearchParams !== 'undefined' ) {
144
139
// Force a specific promo to be displayed
145
140
params = new URL ( window . location ) . searchParams ;
146
141
if ( params . get ( 'force_promo' ) ) {
147
- post_data . force_promo = params . get ( 'force_promo' ) ;
142
+ request_data . force_promo = params . get ( 'force_promo' ) ;
148
143
}
149
144
150
145
// Force a promo from a specific campaign
151
146
if ( params . get ( 'force_campaign' ) ) {
152
- post_data . force_campaign = params . get ( 'force_campaign' ) ;
147
+ request_data . force_campaign = params . get ( 'force_campaign' ) ;
153
148
}
154
149
}
155
150
156
151
// Request a promo to inject onto the page
157
152
$ . ajax ( {
158
153
url : rtd . api_host + "/api/v2/sustainability/" ,
159
- type : 'post' ,
154
+ crossDomain : true ,
160
155
xhrFields : {
161
156
withCredentials : true ,
162
157
} ,
163
- dataType : "json" ,
164
- data : JSON . stringify ( post_data ) ,
165
- contentType : "application/json" ,
158
+ dataType : "jsonp" ,
159
+ data : request_data ,
166
160
success : function ( data ) {
167
161
var promo ;
168
162
if ( data && data . div_id && data . html ) {
0 commit comments