retreaverjs-rails 0.2.19 → 0.2.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retreaverjs/rails/version.rb +1 -1
  3. data/package.json +1 -1
  4. data/src/retreaver/campaign.js +54 -4
  5. data/vendor/assets/javascripts/retreaver.js +54 -4
  6. data/vendor/assets/javascripts/retreaver.min.js +2 -2
  7. data/vendor/documentation/javascript/v1/Retreaver.Campaign.html +3 -3
  8. data/vendor/documentation/javascript/v1/Retreaver.Number.html +1 -1
  9. data/vendor/documentation/javascript/v1/Retreaver.html +1 -1
  10. data/vendor/documentation/javascript/v1/campaign.js.html +55 -5
  11. data/vendor/documentation/javascript/v1/global.html +2 -2
  12. data/vendor/documentation/javascript/v1/index.html +1 -1
  13. data/vendor/documentation/javascript/v1/number.js.html +1 -1
  14. data/vendor/documentation/javascript/v1/retreaver.js.html +1 -1
  15. metadata +3 -18
  16. data/vendor/documentation/javascript/dev/Retreaver.Campaign.html +0 -654
  17. data/vendor/documentation/javascript/dev/Retreaver.Number.html +0 -1615
  18. data/vendor/documentation/javascript/dev/Retreaver.html +0 -330
  19. data/vendor/documentation/javascript/dev/campaign.js.html +0 -270
  20. data/vendor/documentation/javascript/dev/global.html +0 -232
  21. data/vendor/documentation/javascript/dev/index.html +0 -67
  22. data/vendor/documentation/javascript/dev/number.js.html +0 -274
  23. data/vendor/documentation/javascript/dev/retreaver.js.html +0 -84
  24. data/vendor/documentation/javascript/dev/scripts/linenumber.js +0 -17
  25. data/vendor/documentation/javascript/dev/scripts/prettify/Apache-License-2.0.txt +0 -202
  26. data/vendor/documentation/javascript/dev/scripts/prettify/lang-css.js +0 -2
  27. data/vendor/documentation/javascript/dev/scripts/prettify/prettify.js +0 -28
  28. data/vendor/documentation/javascript/dev/styles/jsdoc-default.css +0 -290
  29. data/vendor/documentation/javascript/dev/styles/prettify-jsdoc.css +0 -111
  30. data/vendor/documentation/javascript/dev/styles/prettify-tomorrow.css +0 -132
@@ -1,330 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <title>JSDoc: Namespace: Retreaver</title>
6
-
7
- <script src="scripts/prettify/prettify.js"> </script>
8
- <script src="scripts/prettify/lang-css.js"> </script>
9
- <!--[if lt IE 9]>
10
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
- <![endif]-->
12
- <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
13
- <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
14
- </head>
15
-
16
- <body>
17
-
18
- <div id="main">
19
-
20
- <h1 class="page-title">Namespace: Retreaver</h1>
21
-
22
-
23
-
24
-
25
-
26
- <section>
27
-
28
- <header>
29
- <h2>
30
- Retreaver
31
- </h2>
32
-
33
- </header>
34
-
35
- <article>
36
- <div class="container-overview">
37
-
38
-
39
-
40
-
41
-
42
-
43
- <dl class="details">
44
-
45
-
46
-
47
- <dt class="tag-version">Version:</dt>
48
- <dd class="tag-version"><ul class="dummy"><li>dev</li></ul></dd>
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
- <dt class="tag-source">Source:</dt>
67
- <dd class="tag-source"><ul class="dummy"><li>
68
- <a href="retreaver.js.html">retreaver.js</a>, <a href="retreaver.js.html#line2">line 2</a>
69
- </li></ul></dd>
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
- </dl>
78
-
79
-
80
-
81
-
82
- </div>
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- <h3 class="subsection-title">Classes</h3>
92
-
93
- <dl>
94
- <dt><a href="Retreaver.Campaign.html">Campaign</a></dt>
95
- <dd></dd>
96
-
97
- <dt><a href="Retreaver.Number.html">Number</a></dt>
98
- <dd></dd>
99
- </dl>
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
- <h3 class="subsection-title">Methods</h3>
108
-
109
- <dl>
110
-
111
- <dt>
112
- <h4 class="name" id="configure"><span class="type-signature">&lt;static> </span>configure<span class="signature">(options)</span><span class="type-signature"></span></h4>
113
-
114
-
115
- </dt>
116
- <dd>
117
-
118
-
119
- <div class="description">
120
- Configure the retreaver client library.
121
- </div>
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
- <h5>Parameters:</h5>
130
-
131
-
132
- <table class="params">
133
- <thead>
134
- <tr>
135
-
136
- <th>Name</th>
137
-
138
-
139
- <th>Type</th>
140
-
141
-
142
-
143
-
144
-
145
- <th class="last">Description</th>
146
- </tr>
147
- </thead>
148
-
149
- <tbody>
150
-
151
-
152
- <tr>
153
-
154
- <td class="name"><code>options</code></td>
155
-
156
-
157
- <td class="type">
158
-
159
-
160
- <span class="param-type">Object</span>
161
-
162
-
163
-
164
- </td>
165
-
166
-
167
-
168
-
169
-
170
- <td class="description last">
171
- <h6>Properties</h6>
172
-
173
-
174
- <table class="params">
175
- <thead>
176
- <tr>
177
-
178
- <th>Name</th>
179
-
180
-
181
- <th>Type</th>
182
-
183
-
184
-
185
-
186
-
187
- <th class="last">Description</th>
188
- </tr>
189
- </thead>
190
-
191
- <tbody>
192
-
193
-
194
- <tr>
195
-
196
- <td class="name"><code>host</code></td>
197
-
198
-
199
- <td class="type">
200
-
201
-
202
- <span class="param-type">String</span>
203
-
204
-
205
-
206
- </td>
207
-
208
-
209
-
210
-
211
-
212
- <td class="description last">Retreaver API Host</td>
213
- </tr>
214
-
215
-
216
-
217
- <tr>
218
-
219
- <td class="name"><code>prefix</code></td>
220
-
221
-
222
- <td class="type">
223
-
224
-
225
- <span class="param-type">String</span>
226
-
227
-
228
-
229
- </td>
230
-
231
-
232
-
233
-
234
-
235
- <td class="description last">http or https</td>
236
- </tr>
237
-
238
-
239
- </tbody>
240
- </table>
241
- </td>
242
- </tr>
243
-
244
-
245
- </tbody>
246
- </table>
247
-
248
-
249
-
250
- <dl class="details">
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
- <dt class="tag-source">Source:</dt>
271
- <dd class="tag-source"><ul class="dummy"><li>
272
- <a href="retreaver.js.html">retreaver.js</a>, <a href="retreaver.js.html#line8">line 8</a>
273
- </li></ul></dd>
274
-
275
-
276
-
277
-
278
-
279
-
280
-
281
- </dl>
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
-
293
-
294
-
295
- <h5>Example</h5>
296
-
297
- <pre class="prettyprint"><code>Retreaver.configure({host: 'api.rtvrapi.com', prefix: 'https'});</code></pre>
298
-
299
-
300
- </dd>
301
-
302
- </dl>
303
-
304
-
305
-
306
-
307
-
308
- </article>
309
-
310
- </section>
311
-
312
-
313
-
314
-
315
- </div>
316
-
317
- <nav>
318
- <h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="Retreaver.Campaign.html">Campaign</a></li><li><a href="Retreaver.Number.html">Number</a></li></ul><h3>Namespaces</h3><ul><li><a href="Retreaver.html">Retreaver</a></li></ul><h3><a href="global.html">Global</a></h3>
319
- </nav>
320
-
321
- <br clear="both">
322
-
323
- <footer>
324
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Jun 17 2024 14:31:16 GMT+0300 (EEST)
325
- </footer>
326
-
327
- <script> prettyPrint(); </script>
328
- <script src="scripts/linenumber.js"> </script>
329
- </body>
330
- </html>
@@ -1,270 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <title>JSDoc: Source: retreaver/campaign.js</title>
6
-
7
- <script src="scripts/prettify/prettify.js"> </script>
8
- <script src="scripts/prettify/lang-css.js"> </script>
9
- <!--[if lt IE 9]>
10
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
11
- <![endif]-->
12
- <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
13
- <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
14
- </head>
15
-
16
- <body>
17
-
18
- <div id="main">
19
-
20
- <h1 class="page-title">Source: retreaver/campaign.js</h1>
21
-
22
-
23
-
24
-
25
-
26
- <section>
27
- <article>
28
- <pre class="prettyprint source"><code>(function() {
29
- // Dependencies
30
- var RequestNumber = Retreaver.Base.RequestNumber;
31
- /**
32
- * @constructor
33
- * @memberOf Retreaver
34
- * @param {Object} options
35
- * @param {String} options.campaign_key - Campaign key
36
- * @example
37
- * var campaign = new Retreaver.Campaign({ campaign_key: '67d9fb1917ae8f4eaff36831b41788c3' });
38
- */
39
- var Campaign = function(options) {
40
-
41
- function initialize(data) {
42
- // initialize data store
43
- self.store(data);
44
- }
45
-
46
- function find_and_replace_number(replacement_numbers) {
47
- for (var i = 0; i &lt; replacement_numbers.length; i++) {
48
- var rn = replacement_numbers[i];
49
-
50
- Retreaver.Vendor.findAndReplaceDOMText(document.getElementsByTagName('body')[0], {
51
- find: rn['find'],
52
- replace: rn['replace_with']
53
- });
54
-
55
- var links = document.getElementsByTagName('a');
56
- for (var j = 0; j &lt; links.length; j++) {
57
- var link = links[j];
58
- var href = link.getAttribute('href');
59
-
60
- if (href !== null) {
61
- var match = href.match(/^(tel:|clk[a-z]\/tel\/)(.*)/);
62
- if (match && match[2] === rn['find']) {
63
- link.setAttribute('href', match[1] + rn['replace_with']);
64
- }
65
- }
66
- }
67
- }
68
- }
69
-
70
- var self = this;
71
- self.type = 'campaigns';
72
- self.primary_key('campaign_key');
73
- self.numbers = [];
74
-
75
- self.handle_true_call_integration = function(number) {
76
- const trueCallConfig = number.get("integrations")["truecall.com"];
77
- // debugger
78
- if (typeof(trueCallConfig) == 'undefined') {
79
- return;
80
- }
81
-
82
- // Load the trueCall script into the page it it's missing
83
- if(!document.getElementById("__tc_script") || !window.TrueCall) {
84
- (function () {
85
- const trueCallScriptTag = document.createElement('script');
86
- trueCallScriptTag.type = 'text/javascript';
87
- trueCallScriptTag.async = true;
88
- trueCallScriptTag.defer = true;
89
- trueCallScriptTag.dataset.tc_campaign_id = trueCallConfig["tcCampaignId"];
90
- trueCallScriptTag.id = "__tc_script"
91
- trueCallScriptTag.src = 'https://static.truecall.com/tc-retreaver.js';
92
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(trueCallScriptTag);
93
- })();
94
- }
95
-
96
- const obtainTrueCallId = new Promise(function(resolve) {
97
- const trueCallInterval = setInterval(function() {
98
- if (window.TrueCall && window.TrueCall.getId()) {
99
- resolve(window.TrueCall.getId())
100
- clearInterval(trueCallInterval);
101
- }
102
- }, trueCallConfig["checkIntervalMs"]); // Try to get the trueCallId every X milliseconds
103
- })
104
-
105
- obtainTrueCallId.then(function (trueCallId) {
106
- const tags = {};
107
- tags[trueCallConfig["tagName"]] = trueCallId;
108
- number.replace_tags(tags);
109
- });
110
- }
111
-
112
- /**
113
- * Fetch a campaign number.
114
- * @memberOf Retreaver.Campaign
115
- * @function request_number
116
- * @instance
117
- * @param {Object} [tags] - A collection of tags as key-value pairs. The number returned will match these tags.
118
- * @param {getNumberCallback} callback - Callback fired if the request completes successfully.
119
- * @param {Function} error_callback - Callback fired if the request raises an error.
120
- * @example
121
- * campaign.request_number({calling_about: 'support'}, function (number) {
122
- * alert(number.get('number'))
123
- * }, function(response){
124
- * alert('something went wrong: ' + response);
125
- * };
126
- */
127
- self.request_number = function(tags, callback, error_callback) {
128
- // if the first argument is a function, the user has decided to skip passing tags
129
- // therefore cascade the arguments upwards so that everything works as expected
130
- if (typeof(tags) === 'function') {
131
- // argument 3 becomes argument 2
132
- error_callback = callback;
133
- // argument 2 becomes argument 1
134
- callback = tags;
135
- // argument 1 becomes an empty tags object
136
- tags = {};
137
- }
138
-
139
- if (typeof callback === 'undefined') {
140
- callback = function () {
141
- };
142
- }
143
-
144
- if (typeof tags === 'undefined') {
145
- tags = {};
146
- }
147
-
148
- // assign the tags (this is important since it runs it through set_number_matching_tags)
149
- self.set('number_matching_tags', tags);
150
- // request the number
151
- new RequestNumber(self.get('campaign_key', 'number_matching_tags')).perform(function(data) {
152
- // did retreaver return a valid number?
153
- if (typeof(data) !== 'undefined' && typeof(data.number) !== 'undefined' && data.number !== '') {
154
- var number = new Retreaver.Number(data.number);
155
- number.add_tags({"gosho": "123"}, function(data){
156
- console.log("tagged");
157
- })
158
- // initialize number
159
- try {
160
- self.handle_true_call_integration(number);
161
- } catch (e) {
162
- console.error("Could not integrate with truecall.com, ", e);
163
- }
164
-
165
- // if there is a replacement in the response, replace all occurrences
166
- // of that number on the page with the retreaver number
167
- if (typeof(data.number.replacement_numbers) !== 'undefined') {
168
- find_and_replace_number(data.number.replacement_numbers);
169
- }
170
- // call callback
171
- callback.apply(self, [number]);
172
- }
173
- // otherwise fire the error callback
174
- else if (typeof(error_callback) === 'function') {
175
- error_callback.apply(self, [data]);
176
- }
177
- });
178
- };
179
-
180
- /**
181
- * Auto replace all numbers on page according to campaign settings
182
- * Calls campaign.request_number
183
- * @memberOf Retreaver.Campaign
184
- * @function auto_replace_numbers
185
- * @instance
186
- * @param {Object} [tags] - A collection of tags as key-value pairs. The number returned will match these tags.
187
- * @param {getNumberCallback} callback - Callback fired if the request completes successfully.
188
- * @param {Function} error_callback - Callback fired if the request raises an error.
189
- * @example
190
- * campaign.auto_replace_numbers({calling_about: 'support'}, function (number) {
191
- * alert(number.get('number'))
192
- * }, function(response){
193
- * alert('something went wrong: ' + response);
194
- * };
195
- */
196
- self.auto_replace_numbers = function(tags, callback, error_callback) {
197
- if (typeof callback === 'undefined') {
198
- callback = function() {};
199
- }
200
-
201
- if (typeof error_callback === 'undefined') {
202
- error_callback = function() {};
203
- }
204
- self.request_number(tags, callback, error_callback);
205
- };
206
-
207
- /**
208
- * Retreaver.Campaign#request_number callback fired after the request completes.
209
- * @callback getNumberCallback
210
- * @param {Retreaver.Number} - The number that was returned
211
- */
212
-
213
- self.numbers = function() {
214
- var output = [];
215
- if (typeof(Retreaver.Base.Data._store) !== 'undefined') {
216
- // get numbers
217
- var numbers = Retreaver.Base.Data._store['numbers'];
218
- // present?
219
- if (typeof(numbers) !== 'undefined') {
220
- // collect numbers matching this campaign
221
- for (var primary_key in numbers) {
222
- var number = numbers[primary_key];
223
- if (self.get('campaign_key') == number.campaign_key) {
224
- output.push(new Retreaver.Number(number));
225
- }
226
- }
227
- }
228
- }
229
- return output;
230
- };
231
-
232
- self.set_number_matching_tags = function(tags) {
233
- if (typeof(tags) === 'string') {
234
- tags = Retreaver.Number.extract_tags_from_string(tags);
235
- }
236
- if (tags && (typeof tags === "object") && !(tags instanceof Array)) {
237
- return tags
238
- } else {
239
- throw "ArgumentError: Expected number_matching_tags to be an object. eg: {tag: 'value'}";
240
- }
241
- };
242
-
243
- initialize(options);
244
- };
245
- Campaign.prototype = new Retreaver.Base.Model();
246
- Retreaver.Campaign = Campaign;
247
- })();
248
- </code></pre>
249
- </article>
250
- </section>
251
-
252
-
253
-
254
-
255
- </div>
256
-
257
- <nav>
258
- <h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="Retreaver.Campaign.html">Campaign</a></li><li><a href="Retreaver.Number.html">Number</a></li></ul><h3>Namespaces</h3><ul><li><a href="Retreaver.html">Retreaver</a></li></ul><h3><a href="global.html">Global</a></h3>
259
- </nav>
260
-
261
- <br clear="both">
262
-
263
- <footer>
264
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Jun 17 2024 14:31:15 GMT+0300 (EEST)
265
- </footer>
266
-
267
- <script> prettyPrint(); </script>
268
- <script src="scripts/linenumber.js"> </script>
269
- </body>
270
- </html>