PageSourceSearch

https://www.bciburke.com/DesktopModules/LiveCampaign/Resources/Scripts/campaign.min.js?cdv=386

js bciburke.com collected 2026-09-24 12:01:08 UTC 21,032 bytes, 459 lines download raw bytes

1var LiveCampaign = {
2    ModuleId: -1,
3    PortalId: -1,
4    AjaxHandler: -1,
5    ReportImageURL: -1,
6    intervalIDs: '',
7    MsgQueue: null,
8    MsgSent: null,
9    MsgFailed: null,
10    MsgNextAttempt: null,
11    MsgWaiting: null,
12    MsgPreparing: null,
13    MsgProcessing: null,
14    MsgEmail: null,
15    MsgSending: null,
16    Processing: null,
17    Loading: null,
18    InitProgressbar: function (PortalId, ModuleId, TabId, URL, MsgQueue, MsgSent, MsgFailed, MsgNextAttempt, MsgWaiting, MsgPreparing, MsgProcessing, MsgEmail, Sending, Processing, Loading) {
19        LiveCampaign.ModuleId = ModuleId;
20        LiveCampaign.PortalId = PortalId;
21        LiveCampaign.AjaxHandler = URL + 'Handlers/Ajax.ashx';
22        LiveCampaign.ReportImageURL = URL + 'Resources/Images/report.png';
23        LiveCampaign.MsgWaiting = MsgWaiting;
24        LiveCampaign.MsgPreparing = MsgPreparing;
25        LiveCampaign.MsgProcessing = MsgProcessing;
26        LiveCampaign.MsgEmail = MsgEmail;
27        LiveCampaign.Processing = Processing;
28        LiveCampaign.MsgSending = Sending;
29        LiveCampaign.Loading = Loading;
30        LiveCampaign.MsgProcessingEmail;
31        LiveCampaign.MsgQueue = MsgQueue;
32        LiveCampaign.MsgSent = MsgSent;
33        LiveCampaign.MsgFailed = MsgFailed;
34        LiveCampaign.MsgNextAttempt = MsgNextAttempt;
35        LiveCampaign.GetCampaignStatus(TabId);//TabId
36        setInterval(function () {
37            LiveCampaign.GetCampaignStatus(TabId);//TabId
38        }, 10000);
39        jQuery('.CampaignProgressGraph .StatusPending, .CampaignProgressGraph .StatusPreparing, .CampaignProgressGraph .StatusProcessing').hide();
40    },
41    Init: function (PortalId, ModuleId) {
42        LiveCampaign.ModuleId = ModuleId;
43        LiveCampaign.PortalId = PortalId;
44    },
45    GetCampaignStatus: function (TabId) { //GetCampaignStatus: function (CampaignId, CampaignName, URL) {
46        jQuery.ajax({
47            url: LiveCampaign.AjaxHandler + '?PortalId=' + LiveCampaign.PortalId + '&ModuleId=' + LiveCampaign.ModuleId + '&Action=GetCampaignStatus' + '&TabId=' + TabId,
48            dataType: 'json',
49            success: function (data) {
50                jQuery.each(data, function (key, ca) {
51
52                    if (jQuery('#CampaignProgress' + ca.CampaignId).length <= 0) {
53                        var Template = '';
54                        jQuery('.LCProgressbar').prepend('<div id=CampaignProgress' + ca.CampaignId + ' class="CampaignProgressGraph">')
55                        Template += '<div class="CampaignStatus">' + ca.Name + '<span><span style="float: right;"><span>';
56                        Template += '<a href=' + ca.URL + '>Edit</a> / <a href=' + ca.ReportURL + '>Report</a></span></span></span></div>';
57                        Template += '<div class="CampaignCurrentStatus StatusPending" style="display: none;">' + LiveCampaign.MsgWaiting + '<br><img class="Progressbar" src="' + LiveCampaign.Loading + '" alt="Progress"><br></div>';
58                        Template += '<div class="CampaignCurrentStatus StatusPreparing" style="display: none;">' + LiveCampaign.MsgPreparing + '<br><img class="Progressbar" src="' + LiveCampaign.Loading + '" alt="Progress"><br></div>';
59                        Template += '<div class="CampaignCurrentStatus StatusProcessing" style="display: block;"><span class="Statusbar">
59' + LiveCampaign.MsgProcessing + '</span><span class="ProcessingEmail"></span>' + LiveCampaign.MsgEmail + '<span class="ProcessingRemaining"></span><br><img class="Progressbar" src="' + LiveCampaign.Loading + '" alt="Progress"><br><div class="common inqueue">' + ca.QueueCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgQueue + '</span></div><div class="common sent">' + ca.SuccessCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgSent + '</span></div><div class="common failed">' + ca.ErrorCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgFailed + '</span></div><div style="clear: both;"></div><div class="StatusNextSchedulingTime" style="margin-top: 20px;font-size: 11px;">' + LiveCampaign.MsgNextAttempt + '</div></div>';
60                        jQuery('#CampaignProgress' + ca.CampaignId).append(Template);
61                    }
62                    jQuery('#CampaignProgress' + ca.CampaignId + ' .Status' + ca.Status).show();
63                    if (ca.Status.toLowerCase() == 'processing') {
64                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .Statusbar').text(LiveCampaign.Processing);
65                        var Percentage = Math.round((ca.StatusNotIsNew / ca.TotalCount) * 100)
66                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusPending, #CampaignProgress' + ca.CampaignId + ' .StatusPreparing').hide();
67                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingRemaining,#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingEmail').empty();//clear progressing percentage                       
68                        if (Percentage > 0) {
69                            if (Percentage >= 100) {
70                                var SendingEmailsPercentage = Math.round(((ca.TotalCount - ca.QueueCount) / ca.TotalCount) * 100)
71                                if (ca.QueueCount > 0)
72                                    jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingEmail').text(' ' + ca.QueueCount + ' ');
73                                else
74                                    jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingEmail').text('');
75
76                                if (ca.TotalCount > 0)
77                                    jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingRemaining').append(SendingEmailsPercentage + '% done');
78
79                                jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .Statusbar').empty().text(LiveCampaign.MsgSending);
80                            }
81                            else {
82                                if (ca.StatusIsNew > 0)
83                                    jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingEmail').text(' ' + ca.StatusIsNew + ' ');
84                                jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing .ProcessingRemaining').append(Percentage + '% done');
85                            }
86                        }
87                        jQuery('#CampaignProgress' + ca.CampaignId + ' .inqueue').empty().append(ca.QueueCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgQueue + '</span>');
88                        jQuery('#CampaignProgress' + ca.CampaignId + ' .sent').empty().append(ca.SuccessCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgSent + '</span>');
89                        jQuery('#CampaignProgress' + ca.CampaignId + ' .failed').empty().append(ca.ErrorCount + '<br><span style="font-size: 12px;padding-top: 10px;display: block;">' + LiveCampaign.MsgFailed + '</span>');
90
91                        if (ca.MailQueueError > 0 && ca.NextAttempt != null)
92                            jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusNextSchedulingTime').empty().append(LiveCampaign.MsgNextAttempt.replace("[SchedulingTime]", ca.NextAttempt));
93                        else
94                            jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusNextSchedulingTime').empty()
95
96                    }
97                    else if (ca.Status.toLowerCase() == 'pending')
98                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing, #CampaignProgress' + ca.CampaignId + ' .StatusPreparing').hide();
99                    else if (ca.Status.toLowerCase() == 'preparing')
100                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusProcessing, #CampaignProgress' + ca.CampaignId + ' .StatusPending').hide();
101                    else
102                        jQuery('#CampaignProgress' + ca.CampaignId + ' .StatusPending, #CampaignProgress' + ca.CampaignId + ' .StatusPreparing, #CampaignProgress' + ca.CampaignId + ' .StatusPreparing').hide();
103
104
105                });
106            }
107        });
108    },
109    InitReportChart: function (CampaignId, URL) {
110        jQuery.get(URL + 'Handlers/Ajax.ashx?PortalId=' + LiveCampaign.PortalId + '&ModuleId=' + LiveCampaign.ModuleId + '&CampaignId=' + CampaignId + '&Action=ReportChart', function (data) {
111
112            data = JSON.parse(data);
113            var chart = undefined;
114            for (var i = 0; i < charts.length; i++) {
115                var existingchart = charts[i];
116                if (existingchart != undefined && existingchart.div == "Graph") {
117                    chart = existingchart.chartobject;
118                    break;
119                }
120            }
121            if (chart == undefined) {
122                chart = new CanvasJS.Chart("Graph",
123                                    {
124                                        zoomEnabled: true,
125                                        axisY: {
126                                            includeZero: false
127                                        },
128                                        data: [
129                                 {
130                                     type: "area",
131                                     name: "Views",
132                                     showInLegend: "true",
133                                     xValueType: "dateTime",
134                                     color: "rgba(79, 129, 188,0.9)",
135                                     dataPoints: data.Views
136                                 },
137                                {
138                                    type: "area",
139                                    name: "Clicks",
140                                    showInLegend: "true",
141                                    xValueType: "dateTime",
142                                    color: "rgba(192, 80, 78,0.8)",
143                                    dataPoints: data.Clicks
144                                }
145                                        ]
146                                    });
147                chart.render();
148                charts.push({
149                    div: "Graph", chartobject: chart
150                });
151            }
152            else {
153                var ddataviewscnt = data.Views.length;
154                var ddataclickscnt = data.Clicks.length;
155                var adataviewscnt = chart.options.data[0].dataPoints.length; //views
156                var adataclickscnt = chart.options.data[1].dataPoints.length; //clicks
157                for (var i = 0; i < adataviewscnt; i++) {
158                    chart.options.data[0].dataPoints.shift();
159                }
160                for (var i = 0; i < adataclickscnt; i++) {
161                    chart.options.data[1].dataPoints.shift();
162                }
163                for (var i = 0; i < ddataviewscnt; i++) {
164                    chart.options.data[0].dataPoints.push(data.Views[i]);
165                }
166                for (var i = 0; i < ddataclickscnt; i++) {
167                    chart.options.data[1].dataPoints.push(data.Clicks[i]);
168                }
169
170                chart.render();
171            }
172
173        });
174    },
175    InitReportPie: function (CampaignId, URL) {
176
177        jQuery.ajax({
178            url: URL + 'Handlers/Ajax.ashx?PortalId=' + LiveCampaign.PortalId + '&ModuleId=' + LiveCampaign.ModuleId + '&CampaignId=' + CampaignId + '&Action=ReportPie',
179            dataType: 'json',
180            type: 'POST',
181            success: function (data) {
182                var chart = undefined;
183
184                for (var i = 0; i < charts.length; i++) {
185                    var existingchart = charts[i];
186                    if (existingchart != undefined && existingchart.div == "Pie") {
187                        chart = existingchart.chartobject;
188                        break;
189                    }
190                }
191                if (chart == undefined) {
192                    chart = new CanvasJS.Chart("Pie",
193    {
194        theme: "theme2",
195        animationEnabled: true,
196        legend: {
197
198            fontSize: 15,
199            fontFamily: "arial"
200        },
201        toolTip: {
202            enabled: true
203        },
204
205        data: [
206      {
207          type: "pie",
208          showInLegend: true,
209          indexLabelFontSize: 20,
210          indexLabelFontWeight: "bold",
211          indexLabelFontColor: "White",
212          indexLabelPlacement: "inside",
213          toolTipContent: "{y} - {legendText}",
214          dataPoints: data
215      }
216        ]
217    });
218
219                    chart.render();
220                    charts.push({
221                        div: "Pie", chartobject: chart
222                    });
223                }
224                else {
225                    var ddatacnt = data.length;
226                    var adatacnt = chart.options.data[0].dataPoints.length;
227                    for (var i = 0; i < adatacnt; i++) {
228                        chart.options.data[0].dataPoints.shift();
229                    }
230                    for (var i = 0; i < ddatacnt; i++) {
231                        chart.options.data[0].dataPoints.push(data[i]);
232                    }
233
234
235                    chart.render();
236                }
237
238            }
239        });
240
241    },
242    InitClientUsagePie: function (CampaignId, URL) {
243
244        jQuery.ajax({
245            url: URL + 'Handlers/Ajax.ashx?PortalId=' + LiveCampaign.PortalId + '&ModuleId=' + LiveCampaign.ModuleId + '&CampaignId=' + CampaignId + '&Action=ClientUsagePie',
246            dataType: 'json',
247            type: 'POST',
248            success: function (data) {
249                var chart = undefined;
250
251                for (var i = 0; i < charts.length; i++) {
252                    var existingchart = charts[i];
253                    if (existingchart != undefined && existingchart.div == "ClientUsagePie") {
254                        chart = existingchart.chartobject;
255                        break;
256                    }
257                }
258                if (chart == undefined) {
259                    chart = new CanvasJS.Chart("ClientUsagePie",
260    {
261        theme: "theme2",
262        animationEnabled: true,
263        legend: {
264            verticalAlign: "bottom",
265            horizontalAlign: "center"
266        },
267        toolTip: {
268            enabled: true
269        },
270        data: [
271      {
272          type: "pie",
273          color: "{color}",
274          toolTipContent: "{indexLabel} - {device}",
275          dataPoints: data
276      }
277        ]
278    });
279
280                    chart.render();
281                    charts.push({
282                        div: "ClientUsagePie", chartobject: chart
283                    });
284                }
285                else {
286                    var ddatacnt = data.length;
287                    var adatacnt = chart.options.data[0].dataPoints.length;
288                    for (var i = 0; i < adatacnt; i++) {
289                        chart.options.data[0].dataPoints.shift();
290                    }
291                    for (var i = 0; i < ddatacnt; i++) {
292                        chart.options.data[0].dataPoints.push(data[i]);
293                    }
294
295
296
297                    chart.render();
298                }
299
300
301            }
302        });
303
304    },
305    InitServerUsagePie: function (CampaignId, URL) {
306
307        jQuery.ajax({
308            url: URL + 'Handlers/Ajax.ashx?PortalId=' + LiveCampaign.PortalId + '&ModuleId=' + LiveCampaign.ModuleId + '&CampaignId=' + CampaignId + '&Action=ServerPie',
309            dataType: 'json',
310            type: 'POST',
311            success: function (data) {
312                var chart = undefined;
313
314                for (var i = 0; i < charts.length; i++) {
315                    var existingchart = charts[i];
316                    if (existingchart != undefined && existingchart.div == "PieServer") {
317                        chart = existingchart.chartobject;
318                        break;
319                    }
320                }
321                if (chart == undefined) {
322                    chart = new CanvasJS.Chart("PieServer",
323    {
324        theme: "theme2",
325        animationEnabled: true,
326        legend: {
327
328            fontSize: 12,
329            fontFamily: "arial"
330        },
331
332        data: [
333      {
334          type: "pie",
335          showInLegend: true,
336          indexLabelFontSize: 20,
337          indexLabelFontWeight: "bold",
338          indexLabelFontColor: "White",
339          indexLabelPlacement: "inside",
340          toolTipContent: "{legendText}-{y} Email(s) Sent",
341          dataPoints: data
342      }
343        ]
344    });
345
346                    chart.render();
347                    charts.push({
348                        div: "PieServer", chartobject: chart
349                    });
350                }
351                else {
352                    var ddatacnt = data.length;
353                    var adatacnt = chart.options.data[0].dataPoints.length;
354                    for (var i = 0; i < adatacnt; i++) {
355                        chart.options.data[0].dataPoints.shift();
356                    }
357                    for (var i = 0; i < ddatacnt; i++) {
358                        chart.options.data[0].dataPoints.push(data[i]);
359                    }
360
361
362
363                    chart.render();
364                }
365
366
367            }
368        });
369
370    },
371    InitSorting: function (PortalId, ModuleId, Selector, AjaxHandler) {
372
373        jQuery('#' + Selector + ' tbody').sortable({
374            update: function (event, ui) {
375                LiveCampaign.SortStates(PortalId, ModuleId, AjaxHandler, Selector);
376            },
377            items: 'tr',
378            axis: 'y',
379            containment: 'parent'
380        });
381    },
382
383    SortStates: function (PortalId, ModuleId, AjaxHandler, Selector) {
384
385        var items = jQuery('#' + Selector + ' .SortItems');
386        var SortOrders = '';
387
388        for (var x = 0; x < items.length; x++) {
389            SortOrders += items[x].alt + ',';
390        };
391
392        SortOrders = SortOrders.substring(0, SortOrders.length - 1);
393
394        jQuery.post(AjaxHandler, {
395            Action: 'SortSmtpGrid',
396            SortOrders: SortOrders,
397            PortalId: PortalId,
398            ModuleId: ModuleId
399        }, function (data) {
400
401        });
402    },
403
404
405
406
407
408
409    Join: function (PortalId, ModuleId, TabId, AjaxHandler, mfirstname, mlastname, memail, namechecked) {
410        var Firstname = '';
411        var Lastname = '';
412        var Email = jQuery('#LCSignUp' + ModuleId + ' .email').val();
413        var ErrorMessage = '';
414
415        if (namechecked.toLowerCase() == 'true') {
416            Firstname = jQuery("#LCSignUp" + ModuleId + " .first-name").val();
417            Lastname = jQuery("#LCSignUp" + ModuleId + " .last-name").val();
418            if (Firstname == '')
419                ErrorMessage += mfirstname + '\n';
420            if (Lastname == '')
421                ErrorMessage += mlastname + '\n';
422        }
423
424        if (Email == "")
425            ErrorMessage += memail + "\n";
426        else if (!LiveCampaign.IsValidEmail(Email))
427            ErrorMessage += memail + "\n";
428        var Data = [];
429        jQuery('#cblSubscriber' + ModuleId + ' input:checkbox').each(function () {
430            Data.push(new LiveCampaign.SubscriberList(jQuery(this).val(), jQuery(this).is(":checked")));
431        });
432
433        Data = JSON.stringify(Data);
434        if (ErrorMessage == '') {
435
436
437            LCampaignwebapi.webApi.post('request/Join', 'FirstName=' + Firstname + '&LastName=' + Lastname + '&Email=' + Email, Data).success(function (data) {
438                if (data.indexOf("check-mark.png") > 0) {
439                    jQuery("#LCSignUp" + ModuleId).css("minheight", jQuery("#LCSignUp" + ModuleId).height() + "px");
440                    jQuery("#LCSignUp" + ModuleId).html(data);
441                }
442                else
443                    jQuery("#LCSignUp" + ModuleId).prepend(data);
444            });
445         
446        }
447        else
448            alert(ErrorMessage);
449    },
450
451    SubscriberList: function (ListID, Enabled) {
452        this.ListID = ListID;
453        this.Enabled = Enabled;
454    },
455    IsValidEmail: function (Email) {
456        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
457        return pattern.test(Email);
458    }
459};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.