Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16906 | Rev 16929 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15399 efrain 1
<?php
2
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
3
$currentUser    = $this->currentUserHelper();
4
 
5
$roleName = $currentUser->getUserTypeId();
6
 
7
 
8
$routeAdd       = $this->url('discovery-contacts/add');
9
$routeDatatable = $this->url('discovery-contacts');
15546 efrain 10
$routeUpload    = $this->url('discovery-contacts/upload');
15399 efrain 11
 
12
 
13
$allowInteractionAdd    = $acl->isAllowed($roleName, 'discovery-contacts/interactions/add') ? 1 : 0;
14
 
15546 efrain 15
$allowAdd           = $acl->isAllowed($roleName, 'discovery-contacts/add') ? 1 : 0;
16
$allowEdit      = $acl->isAllowed($roleName, 'discovery-contacts/edit') ? 1 : 0;
17
$allowDelete    = $acl->isAllowed($roleName, 'discovery-contacts/delete',) ? 1 : 0;
18
$allowView      = $acl->isAllowed($roleName, 'discovery-contacts/view',) ? 1 : 0;
19
$allowUpload    = $acl->isAllowed($roleName, 'discovery-contacts/upload') ? 1 : 0;
15399 efrain 20
 
21
 
16822 efrain 22
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));
23
$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));
15399 efrain 24
 
16822 efrain 25
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/jquery.validate.js'));
26
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/additional-methods.js'));
27
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/localization/messages_es.js'));
15399 efrain 28
 
16864 efrain 29
 
16822 efrain 30
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
16864 efrain 31
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));
15399 efrain 32
 
16822 efrain 33
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));
34
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));
16864 efrain 35
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/dataTables.responsive.min.js'));
36
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.min.js'));
15399 efrain 37
 
38
 
16864 efrain 39
 
16822 efrain 40
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
41
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
15399 efrain 42
 
43
 
44
 
45
 
16822 efrain 46
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/intl-tel-input/build/css/intlTelInput.css'));
47
$this->inlineScript()->appendFile($this->basePath('assets/vendors/intl-tel-input/build/js/intlTelInput-jquery.js'));
48
$utilsScript = $this->basePath('assets/vendors/intl-tel-input/build/js/utils.js');
15546 efrain 49
 
16822 efrain 50
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jsrender/jsrender.min.js'));
15546 efrain 51
 
16822 efrain 52
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/css/fileinput.min.css'));
53
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fas/theme.css'));
15546 efrain 54
 
16843 efrain 55
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/piexif.js'));
56
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/sortable.js'));
16822 efrain 57
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/fileinput.js'));
58
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/locales/es.js'));
59
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/fa/theme.js'));
60
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fa/theme.js'));
61
 
62
 
15546 efrain 63
$this->headStyle()->captureStart();
64
echo <<<CSS
65
 
66
#table-wrapper {
67
  width: 100%;
68
  height: 300px;
69
  overflow: auto;
70
}
71
 
72
#table-wrapper table {
73
  border-collapse: separate;
74
  border-spacing: 0;
75
}
76
 
77
#table-wrapper table thead {
78
  flex: 0 0 auto;
79
}
80
 
81
#table-wrapper table thead th,
82
#table-wrapper table tbody td {
83
 
84
}
85
 
86
/*
87
style=""
88
#gridTableUploadContacts {
89
    display: flex;
90
    flex-flow: column;
91
    width: 100%;
92
}
93
 
94
#gridTableUploadContacts thead {
95
    flex: 0 0 auto;
96
}
97
 
98
#gridTableUploadContacts tbody {
99
    flex: 1 1 auto;
100
    display: block;
101
    overflow-y: auto;
102
    overflow-x: auto;
103
}
104
 
105
#gridTableUploadContacts tr {
106
    width: 100%;
107
    display: table;
108
    table-layout: fixed;
109
*/
110
}
111
CSS;
112
$this->headStyle()->captureEnd();
113
 
15399 efrain 114
$this->inlineScript()->captureStart();
115
echo <<<JS
116
    jQuery( document ).ready(function( $ ) {
117
 
118
 
119
        $.validator.addMethod("isIntlPhoneNumber", function(value, element) {
120
            if(!value || value.length == '') {
121
                return true;
122
            }  else {
123
                return $(element).intlTelInput('isValidNumber');
124
            }
125
        },  'ERROR_INTERNATIONAL_PHONE_FORMAT_IS_INVALID');
126
 
127
        $.validator.setDefaults({
128
            debug: true,
129
            highlight: function(element) {
130
                $(element).addClass('is-invalid');
131
            },
132
            unhighlight: function(element) {
133
                $(element).removeClass('is-invalid');
134
            },
135
            errorElement: 'span',
136
            errorClass: 'error invalid-feedback',
137
            errorPlacement: function(error, element) {
138
                if(element.parent('.form-group').length) {
139
                    error.insertAfter(element);
140
                } else if(element.parent('.toggle').length) {
141
                    error.insertAfter(element.parent().parent());
142
                } else {
143
                    error.insertAfter(element.parent());
144
                }
145
            }
146
        });
147
 
148
 
149
 
150
 
151
        $.fn.showFormErrorValidator = function(fieldname, errors) {
152
            var field = $(fieldname);
153
            if(field) {
154
                $(field).addClass('is-invalid');
155
 
156
 
157
                var error = $('<span id="' + fieldname +'-error" class="error invalid-feedback">' + errors + '</div>');
158
                if(field.parent('.form-group').length) {
159
                    error.insertAfter(field);
160
                } else  if(field.parent('.toggle').length) {
161
                    error.insertAfter(field.parent().parent());
162
                } else {
163
                    error.insertAfter(field.parent());
164
                }
165
            }
166
        };
167
 
168
 
169
 
170
 
171
        var allowEdit   = $allowEdit;
172
        var allowDelete = $allowDelete;
173
        var allowView = $allowView;
174
 
175
        var linkInteractions = '';
176
        var linkInteractionsAdd = '';
177
        var linkLogs = '';
178
 
179
        var pageInteractions = 0;
180
        var pageLogs = 0;
181
 
182
 
183
        $.fn.loadLogs = function() {
184
            NProgress.start();
185
            var action = $(this).data('href');
186
 
187
            $.ajax({
188
                'dataType'  : 'json',
189
                'method'    : 'get',
190
                'url'       : linkLogs,
191
                'data'      : {
192
                    'page' : pageLogs
193
                }
194
            }).done(function(response) {
195
                if(response['success']) {
196
 
197
                    pagination = {
198
                        has_previous_page : response['data']['current']['page'] > 1,
199
                        has_next_page : response['data']['current']['page'] < response['data']['total']['page'],
200
                    }
201
 
202
 
203
                    if(pageLogs > response['data']['total']['page']) {
204
                        pageLogs = response['data']['total']['page'];
205
                    }
206
 
207
                    $('#discovery-contacts-pagination-logs').empty();
208
                    $('#discovery-contacts-pagination-logs').append($('#logPaginationTemplate').render(pagination));
209
 
210
 
211
                    $('#grid-discovery-contacts-tabs-logs').empty();
212
                    $('#grid-discovery-contacts-tabs-logs').append(
213
                        $('#logTemplate').render(response['data']['current'])
214
                    );
215
 
216
 
217
 
218
                } else {
219
                    $.fn.showError(response['data']);
220
                }
221
            }).fail(function( jqXHR, textStatus, errorThrown) {
222
                $.fn.showError(textStatus);
223
            }).always(function() {
224
                NProgress.done();
225
            });
226
 
227
        };
228
 
229
    $.fn.loadInteractions = function() {
230
            NProgress.start();
231
 
232
            $.ajax({
233
                'dataType'  : 'json',
234
                'method'    : 'get',
235
                'url'       : linkInteractions,
236
                'data'      : {
237
                    'page' : pageInteractions
238
                }
239
            }).done(function(response) {
240
                if(response['success']) {
241
 
242
                    pagination = {
243
                        has_previous_page : response['data']['current']['page'] > 1,
244
                        has_next_page : response['data']['current']['page'] < response['data']['total']['page'],
245
                    }
246
 
247
                    if(pageInteractions > response['data']['total']['page']) {
248
                        pageInteractions = response['data']['total']['page'];
249
                    }
250
 
251
                    $('#discovery-contacts-pagination-interactions').empty();
252
                    $('#discovery-contacts-pagination-interactions').append($('#interactionPaginationTemplate').render(pagination));
253
 
254
 
255
                    $('#grid-discovery-contacts-tabs-interactions').empty();
256
                    $('#grid-discovery-contacts-tabs-interactions').append(
257
                        $('#interactionTemplate').render(response['data']['current'])
258
                    );
259
 
260
 
261
 
262
 
263
 
264
                } else {
265
                    $.fn.showError(response['data']);
266
                }
267
            }).fail(function( jqXHR, textStatus, errorThrown) {
268
                $.fn.showError(textStatus);
269
            }).always(function() {
270
                NProgress.done();
271
            });
272
 
273
        };
274
 
275
     var gridTable = $('#gridTable').dataTable( {
276
            'processing': true,
277
            'serverSide': true,
278
            'searching': true,
279
            'order': [[ 0, 'asc' ]],
280
            'ordering':  true,
281
            'ordenable' : true,
282
            'responsive': true,
283
            'select' : false,
284
        	'paging': true,
285
            'pagingType': 'simple_numbers',
286
    		'ajax': {
287
    			'url' : '$routeDatatable',
288
    			'type' : 'get',
289
                'beforeSend': function (request) {
290
                  NProgress.start();
291
                },
292
                'dataFilter': function(response) {
293
                    var response = jQuery.parseJSON( response );
294
 
295
                    var json                = {};
296
                    json.recordsTotal       = 0;
297
                    json.recordsFiltered    = 0;
298
                    json.data               = [];
299
 
16477 anderson 300
 
15399 efrain 301
                    if(response.success) {
302
                        json.recordsTotal       = response.data.total;
303
                        json.recordsFiltered    = response.data.total;
304
                        json.data               = response.data.items;
305
                    } else {
306
                        $.fn.showError(response.data)
307
                    }
308
 
309
                    return JSON.stringify( json );
310
                }
311
    		},
312
            'language' : {
313
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
314
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
315
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
316
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
317
                'sInfo':           'LABEL_DATATABLE_SINFO',
318
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
319
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
320
                'sInfoPostFix':    '',
321
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
322
                'sUrl':            '',
323
                'sInfoThousands':  ',',
324
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
325
                'oPaginate': {
326
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
327
                    'sLast':     'LABEL_DATATABLE_SLAST',
328
                    'sNext':     'LABEL_DATATABLE_SNEXT',
329
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
330
                },
331
                'oAria': {
332
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
333
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
334
                },
335
            },
336
            'drawCallback': function( settings ) {
337
                NProgress.done();
16822 efrain 338
 
15399 efrain 339
            },
340
            'aoColumns': [
341
                { 'mDataProp': 'corporate_email' },
15624 anderson 342
                { 'mDataProp': 'company' },
15626 anderson 343
                { 'mDataProp': 'country' },
15627 anderson 344
                { 'mDataProp': 'sector' },
16766 efrain 345
                { 'mDataProp': 'scholarship' },
15399 efrain 346
                { 'mDataProp': 'actions' },
347
    	    ],
348
            'columnDefs': [
349
                {
350
                    'targets': -1,
351
                    'orderable': false,
352
                    'render' : function ( data, type, row ) {
353
                        s = '';
354
 
355
                        if(allowEdit && data['link_edit']) {
16906 efrain 356
                            s = s + '<button class="btn btn-primary btn-edit" data-href="' + data['link_edit']+ '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pen"></i> LABEL_EDIT </button>&nbsp;';
15399 efrain 357
                        }
358
                        if(allowDelete && data['link_delete']) {
359
                            s = s + '<button class="btn btn-danger btn-delete" data-href="' + data['link_delete']+ '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>&nbsp;';
360
                        }
361
                        if(allowView && data['link_view']) {
16864 efrain 362
                            s = s + '<button class="btn btn-secondary btn-view" data-href="' + data['link_view']+ '" data-toggle="tooltip" title="LABEL_VIEW"><i class="fa fa-external-link"></i> LABEL_VIEW </button>&nbsp;';
15399 efrain 363
                        }
364
                        return s;
365
                    }
366
                }
367
              ],
368
        });
369
 
370
 
371
 
372
 
373
        var validator = $('#form').validate({
374
            debug: true,
375
            onclick: false,
376
            onkeyup: false,
377
            ignore: [],
378
            rules: {
379
                'first_name': {
16766 efrain 380
                    required: false,
15399 efrain 381
                    maxlength: 128,
382
                },
383
                'last_name': {
16766 efrain 384
                    required: false,
15399 efrain 385
                    maxlength: 128,
386
                },
387
                'corporate_email': {
388
                    required: true,
389
                    maxlength: 250,
390
                    email: true,
391
 
392
                },
393
                'company': {
394
                    required: true,
395
                    maxlength: 128,
396
                },
397
                'position': {
398
                    required: true,
399
                    maxlength: 128,
400
                },
401
                'country': {
402
                    required: true,
403
                    maxlength: 128,
404
                },
405
                'state': {
406
                    required: false,
407
                    maxlength: 128,
408
                },
409
                'city': {
410
                    required: false,
411
                    maxlength: 128,
412
                },
413
                'personal_email': {
414
                    required: false,
415
                    maxlength: 128,
416
                    email: true,
417
                },
418
                'phone': {
419
                    required: false,
420
                    maxlength: 25,
421
                    isIntlPhoneNumber: true,
422
                },
423
                'phone_extension': {
424
                    required: false,
425
                    maxlength: 5,
426
                },
427
                'celular': {
428
                    required: false,
429
                    maxlength: 25,
430
                    isIntlPhoneNumber: true,
431
                },
432
                'whatsapp': {
433
                    required: false,
434
                    maxlength: 25,
435
                    isIntlPhoneNumber: true,
436
                },
437
                'linkedin': {
438
                    required: false,
15831 efrain 439
                    maxlength: 250,
15399 efrain 440
                    url: true,
441
                },
15831 efrain 442
                'sector': {
443
                    required: false,
444
                    maxlength: 250,
445
                },
16766 efrain 446
                'scholarship': {
447
                    required: false,
448
                },
15399 efrain 449
            },
450
            submitHandler: function(form)
451
            {
452
                data = {
453
                    first_name :  $('#form #first_name').val(),
454
                    last_name :  $('#form #last_name').val(),
455
                    corporate_email :  $('#form #corporate_email').val(),
456
                    company :  $('#form #company').val(),
457
                    position :  $('#form #position').val(),
458
                    country :  $('#form #country').val(),
459
                    state :  $('#form #state').val(),
460
                    city :  $('#form #city').val(),
461
                    personal_email :  $('#form #personal_email').val(),
462
                    phone :  $('#form #phone').intlTelInput('getNumber'),
463
                    phone_extension :  $('#form #phone_extension').val(),
464
                    celular :  $('#form #celular').intlTelInput('getNumber'),
465
                    whatsapp :  $('#form #whatsapp').intlTelInput('getNumber'),
466
                    linkedin :  $('#form #linkedin').val(),
15831 efrain 467
                    sector :  $('#form #sector').val(),
16766 efrain 468
                    scholarship: $('#form #scholarship').val(),
15399 efrain 469
                };
470
 
471
                $('#modal .btn-primary').attr('disabled', true)
472
                $.ajax({
473
                    'dataType'  : 'json',
474
                    'accept'    : 'application/json',
475
                    'method'    : 'post',
476
                    'url'       :  $('#form').attr('action'),
477
                    'data'      :  data
478
                }).done(function(response) {
479
                    NProgress.start();
480
                    if(response['success']) {
481
                        $.fn.showSuccess(response['data']);
482
 
483
                        $('#form-row').hide();
484
                        $('#listing-row').show();
485
 
486
 
487
 
488
                        gridTable.api().ajax.reload(null, false);
489
                    } else {
490
                        validator.resetForm();
491
                        if(jQuery.type(response['data']) == 'string') {
492
                            $.fn.showError(response['data']);
493
                        } else  {
494
                            $.each(response['data'], function( fieldname, errors ) {
495
                                $.fn.showFormErrorValidator('#form #' + fieldname, errors);
496
                            });
497
                        }
498
                    }
499
                }).fail(function( jqXHR, textStatus, errorThrown) {
500
                    $.fn.showError(textStatus);
501
                }).always(function() {
502
                    NProgress.done();
503
                    $('#modal .btn-primary').removeAttr('disabled')
504
                });
505
                return false;
506
            },
507
            invalidHandler: function(form, validator) {
508
 
509
            }
510
        });
511
 
512
        var validatorInteraction = $('#form-interaction').validate({
513
            debug: true,
514
            onclick: false,
515
            onkeyup: false,
516
            ignore: [],
517
            rules: {
518
                'notes': {
519
                    required: true,
520
                },
521
                'interaction_type_id': {
522
                    required: true,
523
 
524
                },
525
            },
526
            submitHandler: function(form)
527
            {
528
 
529
                $.ajax({
530
                    'dataType'  : 'json',
531
                    'accept'    : 'application/json',
532
                    'method'    : 'post',
533
                    'url'       :  $('#form-interaction').attr('action'),
534
                    'data'      :  $('#form-interaction').serialize()
535
                }).done(function(response) {
536
                    NProgress.start();
537
                    if(response['success']) {
538
                        $.fn.showSuccess(response['data']);
539
 
540
                        $('#modal-interaction').modal('hide');
541
 
542
 
543
                        $.fn.loadInteractions();
544
                        $.fn.loadLogs();
545
                    } else {
546
                        validator.resetForm();
547
                        if(jQuery.type(response['data']) == 'string') {
548
                            $.fn.showError(response['data']);
549
                        } else  {
550
                            $.each(response['data'], function( fieldname, errors ) {
551
                                $.fn.showFormErrorValidator('#form-interaction #' + fieldname, errors);
552
                            });
553
                        }
554
                    }
555
                }).fail(function( jqXHR, textStatus, errorThrown) {
556
                    $.fn.showError(textStatus);
557
                }).always(function() {
558
                    NProgress.done();
559
 
560
                });
561
                return false;
562
            },
563
            invalidHandler: function(form, validator) {
564
 
565
            }
566
        });
567
 
568
        $('body').on('click', 'button.btn-add-interaction', function(e) {
569
            e.preventDefault();
570
 
571
            $('#form-interaction').attr('action', linkInteractionsAdd);
572
            $('#form-interaction #notes').val('');
573
            $('#form-interaction #status').val('');
574
 
575
            validator.resetForm();
576
            $('#modal-interaction').modal('show');
577
        });
578
 
579
 
580
        $('body').on('click', 'button.btn-cancel-interaction', function(e) {
581
            e.preventDefault();
582
            $('#modal-interaction').modal('hide');
583
        });
584
 
585
        $('body').on('click', 'button.btn-delete-interaction', function(e) {
586
            e.preventDefault();
587
            var action = $(this).data('href');
588
            NProgress.start();
589
            $.ajax({
590
                'dataType'  : 'json',
591
                'accept'    : 'application/json',
592
                'method'    : 'post',
593
                'url'       :  action,
594
            }).done(function(response) {
595
                if(response['success']) {
596
                    $.fn.showSuccess(response['data']);
597
 
598
                    $.fn.loadLogs();
599
                    $.fn.loadInteractions();
600
                } else {
601
                    $.fn.showError(response['data']);
602
                }
603
            }).fail(function( jqXHR, textStatus, errorThrown) {
604
                $.fn.showError(textStatus);
605
            }).always(function() {
606
                NProgress.done();
607
            });
608
 
609
        });
610
 
611
 
612
        $('body').on('click', 'button.btn-add', function(e) {
613
            e.preventDefault();
614
 
16840 efrain 615
 
15399 efrain 616
            $('#form').attr('action', '$routeAdd');
617
            $('#form #first_name').val('');
618
            $('#form #last_name').val('');
619
            $('#form #corporate_email').val('');
620
            $('#form #company').val('');
621
            $('#form #position').val('');
622
            $('#form #country').val('');
623
            $('#form #state').val('');
624
            $('#form #city').val('');
625
            $('#form #personal_email').val('');
626
            $('#form #phone').intlTelInput('setNumber', '');
627
            $('#form #phone_extension').val('');
628
            $('#form #celular').intlTelInput('setNumber', '');
629
            $('#form #whatsapp').intlTelInput('setNumber', '');
630
            $('#form #linkedin').val('');
15831 efrain 631
            $('#form #sector').val('');
16766 efrain 632
            $('#form #scholarship').val('');
15399 efrain 633
 
634
            validator.resetForm();
635
 
636
 
637
            $('#listing-row').hide();
638
            $('#form-row').show();
639
 
640
        });
641
 
642
        $('body').on('click', 'button.btn-edit', function(e) {
643
            e.preventDefault();
644
            NProgress.start();
645
            var action = $(this).data('href');
646
 
647
            $.ajax({
648
                'dataType'  : 'json',
649
                'method'    : 'get',
650
                'url'       :  action,
651
            }).done(function(response) {
652
                if(response['success']) {
653
 
16840 efrain 654
 
15399 efrain 655
                    $('#form').attr('action', action);
656
                    $('#form #first_name').val(response['data']['first_name']);
657
                    $('#form #last_name').val(response['data']['last_name']);
658
                    $('#form #corporate_email').val(response['data']['corporate_email']);
659
                    $('#form #company').val(response['data']['company']);
660
                    $('#form #position').val(response['data']['position']);
661
                    $('#form #country').val(response['data']['country']);
662
                    $('#form #state').val(response['data']['state']);
663
                    $('#form #city').val(response['data']['city']);
664
                    $('#form #personal_email').val(response['data']['personal_email']);
665
                    $('#form #phone').intlTelInput('setNumber', response['data']['phone']);
666
                    $('#form #phone_extension').val(response['data']['phone_extension']);
667
                    $('#form #celular').intlTelInput('setNumber', response['data']['celular']);
668
                    $('#form #whatsapp').intlTelInput('setNumber', response['data']['whatsapp']);
669
                    $('#form #linkedin').val(response['data']['linkedin']);
15831 efrain 670
                    $('#form #sector').val(response['data']['sector']);
16766 efrain 671
                    $('#form #scholarship').val(response['data']['scholarship']);
15399 efrain 672
 
16766 efrain 673
 
15399 efrain 674
                    validator.resetForm();
675
 
676
 
677
                    $('#listing-row').hide();
678
                    $('#form-row').show();
679
                } else {
680
                    $.fn.showError(response['data']);
681
                }
682
            }).fail(function( jqXHR, textStatus, errorThrown) {
683
                $.fn.showError(textStatus);
684
            }).always(function() {
685
                NProgress.done();
686
            });
687
        });
688
 
689
 
690
        $('body').on('click', 'a.class-btn-log-previous', function(e) {
691
            e.preventDefault();
692
 
693
            if( pageLogs  > 1) {
694
                pageLogs  =  pageLogs  - 1;
695
                $.fn.loadLogs();
696
 
697
            }
698
        });
699
 
700
        $('body').on('click', 'a.class-btn-log-next', function(e) {
701
            e.preventDefault();
702
            pageLogs  =  pageLogs  + 1;
703
             $.fn.loadLogs();
704
        });
705
 
706
        $('body').on('click', 'a.class-btn-interaction-previous', function(e) {
707
            e.preventDefault();
708
 
709
            if( pageInteractions  > 1) {
710
                pageInteractions  =  v  - 1;
711
                $.fn.loadInteractions();
712
 
713
            }
714
        });
715
 
716
        $('body').on('click', 'a.class-btn-interaction-next', function(e) {
717
            e.preventDefault();
718
            pageInteractions  =  pageInteractions  + 1;
719
             $.fn.loadInteractions();
720
        });
721
 
722
        $('body').on('click', 'button.btn-view', function(e) {
723
            e.preventDefault();
724
            NProgress.start();
725
            var action = $(this).data('href');
726
 
727
            $.ajax({
728
                'dataType'  : 'json',
729
                'method'    : 'get',
730
                'url'       :  action,
731
            }).done(function(response) {
732
                if(response['success']) {
733
 
734
 
735
                    $('#interactions-first_name').val(response['data']['first_name']);
736
                    $('#interactions-last_name').val(response['data']['last_name']);
737
                    $('#interactions-corporate_email').val(response['data']['corporate_email']);
738
                    $('#interactions-company').val(response['data']['company']);
739
                    $('#interactions-position').val(response['data']['position']);
740
                    $('#interactions-country').val(response['data']['country']);
741
                    $('#interactions-state').val(response['data']['state']);
742
                    $('#interactions-city').val(response['data']['city']);
743
                    $('#interactions-personal_email').val(response['data']['personal_email']);
744
                    $('#interactions-phone').val(response['data']['phone']);
745
                    $('#interactions-phone_extension').val(response['data']['phone_extension']);
746
                    $('#interactions-celular').val(response['data']['celular']);
747
                    $('#interactions-whatsapp').val(response['data']['whatsapp']);
748
                    $('#interactions-linkedin').val(response['data']['linkedin']);
15831 efrain 749
                    $('#interactions-sector').val(response['data']['sector']);
16766 efrain 750
                    $('#interactions-scholarship').val(response['data']['scholarship']);
15399 efrain 751
 
16766 efrain 752
 
753
 
15399 efrain 754
                    linkInteractions = response['data']['link_interactions'];
755
                    linkInteractionsAdd = response['data']['link_interactions_add'];
756
                    linkLogs = response['data']['link_logs'];
757
 
758
                    pageInteractions = 0;
759
                    pageLogs = 0;
760
 
761
 
762
 
763
 
764
                    $.fn.loadLogs();
765
                    $.fn.loadInteractions();
766
 
767
 
768
 
769
                    $('#listing-row').hide();
770
                    $('#interactions-row').show();
771
                } else {
772
                    $.fn.showError(response['data']);
773
                }
774
            }).fail(function( jqXHR, textStatus, errorThrown) {
775
                $.fn.showError(textStatus);
776
            }).always(function() {
777
                NProgress.done();
778
            });
779
        });
780
 
781
        $('body').on('click', 'button.btn-refresh', function(e) {
782
            e.preventDefault();
783
            gridTable.api().ajax.reload(null, false);
784
        });
785
 
786
 
787
        $('body').on('click', 'button.btn-cancel', function(e) {
788
 
789
 
790
            e.preventDefault();
791
            $('#form-row').hide();
792
            $('#listing-row').show();
793
        });
794
 
795
        $('body').on('click', 'button.btn-close-view', function(e) {
796
 
797
 
798
            e.preventDefault();
799
            $('#interactions-row').hide();
800
            $('#listing-row').show();
801
        });
802
 
16822 efrain 803
    $('body').on('click', 'button.btn-delete', function(e) {
804
        e.preventDefault();
805
        var action = $(this).data('href');
15399 efrain 806
 
16822 efrain 807
 
808
          swal.fire({
809
            title: 'LABEL_ARE_YOU_SURE',
810
            icon: 'question',
811
            cancelButtonText: 'LABEL_NO',
812
            showCancelButton: true,
813
            confirmButtonText: 'LABEL_YES'
814
          }).then((result) => {
815
            if (result.isConfirmed) {
816
 
817
                    NProgress.start();
818
                    $.ajax({
819
                        'dataType'  : 'json',
820
                        'accept'    : 'application/json',
821
                        'method'    : 'post',
822
                        'url'       :  action,
823
                    }).done(function(response) {
824
                        if(response['success']) {
825
                            $.fn.showSuccess(response['data']);
826
                            gridTable.api().ajax.reload(null, false);
827
                        } else {
828
                            $.fn.showError(response['data']);
829
                        }
830
                    }).fail(function( jqXHR, textStatus, errorThrown) {
831
                        $.fn.showError(textStatus);
832
                    }).always(function() {
833
                        NProgress.done();
834
                    });
835
                }
836
           });
837
        });
838
 
15399 efrain 839
 
840
        $('#form #phone').intlTelInput({
841
            utilsScript: "$utilsScript",
842
            formatOnDisplay: true,
843
             separateDialCode: false,
844
        });
845
 
846
 
847
 
848
       $('#form #celular').intlTelInput({
849
            utilsScript: "$utilsScript",
850
            formatOnDisplay: true,
851
            separateDialCode: false,
852
        });
853
 
854
        $('#form #whatsapp').intlTelInput({
855
            utilsScript: "$utilsScript",
856
            formatOnDisplay: true,
857
            separateDialCode: false,
858
        });
859
 
15546 efrain 860
var validatorContactUpload = $('#form-contact-upload').validate({
861
        debug: true,
862
        onclick: false,
863
        onkeyup: false,
864
        onfocusout: false,
865
        ignore: [],
866
        rules: {
867
            'file' : {
868
                required: true,
869
                extension: 'xls|xlsx',
870
                accept: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel'
871
            },
872
        },
873
 
874
        submitHandler: function(form)
875
        {
876
            NProgress.start();
877
            var formdata = false;
878
            if (window.FormData){
879
                formdata = new FormData(form);
880
            }
881
            formdata.append('step','validation');
882
 
883
 
884
            $.ajax({
885
                'dataType'  : 'json',
886
                'accept'    : 'application/json',
887
                'method'    : 'post',
888
                'url'       :  '$routeUpload',
889
                'data'      :  formdata,
890
                'processData': false,
891
                'contentType': false,
892
            }).done(function(response) {
893
                if(response['success']) {
894
 
895
                    $('#table-upload-contacts-key').val(response['data']['key']);
896
                    $('#table-upload-contacts-topic').val(response['data']['topic']);
897
          			$('#table-upload-contacts-capsule').val(response['data']['capsule']);
898
 
899
                    $('#gridTableUploadContacts tbody').html($('#uploadContactTemplate').render(response['data']))
900
 
901
                    $('#modalContactUpload').modal('hide');
902
                    $('#modalContactUploadTable').modal('show');
903
 
904
 
905
 
906
                } else {
907
                    validatorContactUpload.resetForm();
908
                    if(jQuery.type(response['data']) == 'string') {
909
                        $.fn.showError(response['data']);
910
                    } else  {
911
                        $.each(response['data'], function( fieldname, errors ) {
912
                            $.fn.showFormErrorValidator('#form-contact-upload #' + fieldname, errors);
913
                        });
914
                    }
915
                }
916
            }).fail(function( jqXHR, textStatus, errorThrown) {
917
                $.fn.showError(textStatus);
918
            }).always(function() {
919
 
920
                NProgress.done();
921
            });
922
            return false;
923
        },
924
        invalidHandler: function(form, validator) {
925
 
926
        }
15399 efrain 927
    });
15546 efrain 928
 
929
 
930
    $('body').on('click', 'button.btn-upload', function(e) {
931
        e.preventDefault();
932
 
933
        $('#form-contact-upload #file').fileinput('reset');
934
        $('#form-contact-upload #file').val('');
935
 
936
        $('#modalContactUpload').modal('show');
937
    });
938
 
939
 
940
    $('#form-contact-upload #file').fileinput({
941
        theme: 'fa',
942
        language: 'es',
943
        showUpload: false,
944
        dropZoneEnabled: false,
945
        maxFileCount: 1,
946
        allowedFileExtensions: ['xls', 'xlsx'],
947
    });
948
 
949
    $('body').on('click', 'button.btn-upload', function(e) {
950
        e.preventDefault();
951
 
952
        $('#form-contact-upload #file').fileinput('reset');
953
        $('#form-contact-upload #file').val('');
954
 
955
        $('#modalContactUpload').modal('show');
956
    });
957
 
958
    $('body').on('click', 'button.btn-upload-contacts-step2', function(e) {
959
        e.preventDefault();
960
        NProgress.start();
961
 
962
        $.ajax({
963
            'dataType'  : 'json',
964
            'accept'    : 'application/json',
965
            'method'    : 'post',
966
            'url'       : '$routeUpload',
967
            'data'      :  {
968
                'step' : 'process',
969
                'key' : $('#table-upload-contacts-key').val(),
970
            }
971
        }).done(function(response) {
972
            if(response['success']) {
973
 
974
                var s = response['data']['new_contacts'] + ' LABEL_NEW_CONTACTS <br>' +
975
                response['data']['error_contacts'] + ' LABEL_ERROR_CONTACTS <br>' +
976
                response['data']['duplicate_contacts'] + ' LABEL_DUPLICATE_CONTACTS <br>';
977
 
978
 
979
 
980
                $.fn.showSuccess(s);
981
 
982
                 gridTable.api().ajax.reload(null, false);
983
                $('#modalContactUploadTable').modal('hide');
984
            } else {
985
                $.fn.showError(response['data']);
986
            }
987
        }).fail(function( jqXHR, textStatus, errorThrown) {
988
            $.fn.showError(textStatus);
989
        }).always(function() {
990
            NProgress.done();
991
        });
992
        return false;
993
    });
994
 
995
 
996
    });
15399 efrain 997
JS;
998
$this->inlineScript()->captureEnd();
999
?>
1000
 
16864 efrain 1001
<div class="container">
1002
	<div class="card" id="listing-row">
1003
	 	<div class="card-header">
1004
	 		<h6 class="card-title">LABEL_CONTACTS</h6>
1005
	 	</div>
1006
	 	<div class="card-body">
1007
	 		<div class="row">
1008
	 	         <div class="col-12 mt-3">
1009
 
16912 efrain 1010
	 	          <table id="gridTable" class="table  table-bordered">
15399 efrain 1011
                            <thead>
1012
                                <tr>
1013
                                    <th>LABEL_CORPORATE_EMAIL</th>
15625 anderson 1014
                                    <th>LABEL_COMPANY</th>
15626 anderson 1015
                                    <th>LABEL_COUNTRY</th>
15627 anderson 1016
                                    <th>LABEL_SECTOR</th>
16766 efrain 1017
                           			<th>LABEL_SCHOLARSHIP</th>
15399 efrain 1018
                                    <th>LABEL_ACTIONS</th>
1019
                                </tr>
1020
                            </thead>
1021
                            <tbody>
1022
                            </tbody>
1023
                        </table>
16864 efrain 1024
 
1025
	 	         </div>
1026
	 	     </div>
1027
	 	</div>
1028
	 	<div class="card-footer text-right">
1029
			<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i> LABEL_REFRESH </button>
1030
  			<?php if ($allowUpload) : ?>
1031
       		<button type="button" class="btn btn-primary btn-upload"><i class="fa fa-upload"></i> LABEL_UPLOAD </button>
1032
       		<?php endif; ?>
1033
      		<?php if ($allowAdd) : ?>
1034
         	<button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
1035
           	<?php endif; ?>
1036
	 	</div>
1037
	</div>
1038
 
1039
	<div class="card" id="form-row" style="display: none">
1040
	 	<div class="card-header">
1041
	 		<h6 class="card-title">LABEL_CONTACT</h6>
1042
	 	</div>
1043
 
1044
 		<?php
1045
        $form = $this->form;
1046
        $form->setAttributes([
1047
            'method' => 'post',
1048
            'action' => $routeAdd,
1049
            'name' => 'form',
1050
            'id' => 'form',
1051
        ]);
1052
        $form->prepare();
1053
        echo $this->form()->openTag($form);
1054
        ?>
1055
	 	<div class="card-body">
1056
			<div class="row">
1057
       			<div class="col-6 mt-3">
1058
             		<?php
1059
                    $label = 'LABEL_FIRST_NAME';
1060
                    $field = 'first_name';
15399 efrain 1061
 
16864 efrain 1062
                    $element = $form->get($field);
1063
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1064
                    $element->setOptions(['label' => $label]);
1065
                    echo $this->formLabel($element);
1066
                    echo $this->formText($element);
1067
                ?>
1068
       			</div>
1069
             	<div class="col-6 mt-3">
1070
					<?php
1071
                    $label = 'LABEL_LAST_NAME';
1072
                    $field = 'last_name';
15399 efrain 1073
 
16864 efrain 1074
                    $element = $form->get($field);
1075
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1076
                    $element->setOptions(['label' => $label]);
1077
                    echo $this->formLabel($element);
1078
                    echo $this->formText($element);
1079
                    ?>
1080
            	</div>
1081
         	</div>
1082
			<div class="row">
1083
           		<div class="col-6 mt-3">
1084
              		<?php
1085
                        $label = 'LABEL_CORPORATE_EMAIL';
1086
                        $field = 'corporate_email';
15532 stevensc 1087
 
16864 efrain 1088
                        $element = $form->get($field);
1089
                        $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1090
                        $element->setOptions(['label' => $label]);
1091
                        echo $this->formLabel($element);
1092
                        echo $this->formText($element);
1093
                    ?>
1094
            	</div>
1095
           		<div class="col-6 mt-3">
1096
                 	<?php
1097
                    $label = 'LABEL_COMPANY';
1098
                    $field = 'company';
15532 stevensc 1099
 
16864 efrain 1100
                    $element = $form->get($field);
1101
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1102
                    $element->setOptions(['label' => $label]);
1103
                    echo $this->formLabel($element);
1104
                    echo $this->formText($element);
1105
                    ?>
1106
            	</div>
1107
         	</div>
1108
       		<div class="row">
1109
             	<div class="col-6 mt-3">
1110
                	<?php
1111
                    $label = 'LABEL_POSITION';
1112
                    $field = 'position';
15532 stevensc 1113
 
1114
 
16864 efrain 1115
                    $element = $form->get($field);
1116
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1117
                    $element->setOptions(['label' => $label]);
1118
                    echo $this->formLabel($element);
1119
                    echo $this->formText($element);
1120
                    ?>
1121
           		</div>
1122
          		<div class="col-6 mt-3">
1123
            		<?php
1124
                    $label = 'LABEL_SECTOR';
1125
                    $field = 'sector';
15532 stevensc 1126
 
16864 efrain 1127
                    $element = $form->get($field);
1128
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1129
                    $element->setOptions(['label' => $label]);
1130
                    echo $this->formLabel($element);
1131
                    echo '<br>';
1132
                    echo $this->formText($element);
1133
                    ?>
1134
           		</div>
1135
       		</div>
1136
			<div class="row">
1137
              	<div class="col-sm-6 mt-3">
1138
       				<?php
1139
                    $label = 'LABEL_COUNTRY';
1140
                    $field = 'country';
1141
                    $element = $form->get($field);
1142
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1143
                    $element->setOptions(['label' => $label]);
1144
                    echo $this->formLabel($element);
1145
                    echo $this->formText($element);
1146
                    ?>
1147
           		</div>
1148
                <div class="col-sm-6 mt-3">
1149
             		<?php
1150
                    $label = 'LABEL_STATE';
1151
                    $field = 'state';
15532 stevensc 1152
 
1153
 
16864 efrain 1154
                    $element = $form->get($field);
1155
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1156
                    $element->setOptions(['label' => $label]);
1157
                    echo $this->formLabel($element);
1158
                    echo $this->formText($element);
1159
                    ?>
1160
              	</div>
1161
        	</div>
1162
			<div class="row">
1163
               	<div class="col-sm-6 mt-3">
1164
                 	 <?php
1165
                    $label = 'LABEL_CITY';
1166
                    $field = 'city';
15831 efrain 1167
 
16864 efrain 1168
                    $element = $form->get($field);
1169
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1170
                    $element->setOptions(['label' => $label]);
1171
                    echo $this->formLabel($element);
1172
                    echo $this->formText($element);
1173
                    ?>
1174
           		</div>
1175
       			<div class="col-sm-6 mt-3">
1176
                	<?php
1177
                    $label = 'LABEL_PHONE';
1178
                    $field = 'phone';
15399 efrain 1179
 
16864 efrain 1180
                    $element = $form->get($field);
1181
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1182
                    $element->setOptions(['label' => $label]);
1183
                    echo $this->formLabel($element);
1184
                    echo '<br>';
1185
                    echo $this->formText($element);
1186
                    ?>
1187
            	</div>
1188
            </div>
1189
     		<div class="row">
1190
        		 <div class="col-sm-6 mt-3">
1191
                 	<?php
1192
                    $label = 'LABEL_PHONE_EXTENSION';
1193
                    $field = 'phone_extension';
15532 stevensc 1194
 
1195
 
16864 efrain 1196
                    $element = $form->get($field);
1197
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1198
                    $element->setOptions(['label' => $label]);
15532 stevensc 1199
 
16864 efrain 1200
                    echo $this->formLabel($element);
1201
                    echo $this->formText($element);
1202
                    ?>
1203
           		</div>
1204
 
1205
        		<div class="col-sm-6 mt-3">
1206
                	<?php
1207
                    $label = 'LABEL_PERSONAL_EMAIL';
1208
                    $field = 'personal_email';
15532 stevensc 1209
 
1210
 
16864 efrain 1211
                    $element = $form->get($field);
1212
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1213
                    $element->setOptions(['label' => $label]);
1214
                    echo $this->formLabel($element);
1215
                    echo $this->formText($element);
1216
                    ?>
1217
              	</div>
1218
     		</div>
1219
          	<div class="row">
1220
            	<div class="col-sm-6">
1221
              		<?php
1222
                    $label = 'LABEL_CELULAR';
1223
                    $field = 'celular';
15532 stevensc 1224
 
16864 efrain 1225
                    $element = $form->get($field);
1226
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1227
                    $element->setOptions(['label' => $label]);
1228
                    echo $this->formLabel($element);
1229
                    echo '<br/>';
1230
                    echo $this->formText($element);
1231
                    ?>
1232
            	</div>
1233
                <div class="col-sm-6 mt-3">
1234
               		<?php
1235
                    $label = 'LABEL_WHATSAPP';
1236
                    $field = 'whatsapp';
15532 stevensc 1237
 
16864 efrain 1238
                    $element = $form->get($field);
1239
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1240
                    $element->setOptions(['label' => $label]);
1241
                    echo $this->formLabel($element);
1242
                    echo '<br/>';
1243
                    echo $this->formText($element);
1244
                    ?>
1245
             	</div>
1246
        	</div>
1247
     		<div class="row">
1248
      			<div class="col-sm-6 mt-3">
1249
            		<?php
1250
                    $label = 'LABEL_LINKEDIN';
1251
                    $field = 'linkedin';
15532 stevensc 1252
 
16864 efrain 1253
                    $element = $form->get($field);
1254
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1255
                    $element->setOptions(['label' => $label]);
1256
                    echo $this->formLabel($element);
1257
                    echo $this->formText($element);
1258
                    ?>
1259
               	 </div>
1260
                 <div class="col-sm-6 mt-3">
1261
              		<?php
1262
                    $label = 'LABEL_SCHOLARSHIP';
1263
                    $field = 'scholarship';
15532 stevensc 1264
 
16864 efrain 1265
                    $element = $form->get($field);
1266
                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1267
                    $element->setOptions(['label' => $label]);
1268
                    echo $this->formLabel($element);
1269
                    echo $this->formSelect($element);
1270
                    ?>
1271
            	</div>
1272
          	</div>
15532 stevensc 1273
 
16864 efrain 1274
	 	</div>
1275
	 	<div class="card-footer text-right">
1276
 			<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1277
       		<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
1278
	 	</div>
1279
 
1280
	 	<?php echo $this->form()->closeTag($form); ?>
1281
	</div>
1282
 
1283
 
1284
 
1285
 
1286
	<div class="card"  id="interactions-row" style="display: none">
1287
	 	<div class="card-header">
1288
	 		<h6 class="card-title">LABEL_CONTACT</h6>
1289
	 	</div>
1290
	 	<div class="card-body">
1291
	 	<?php
1292
                            $col = 0;
15532 stevensc 1293
                            $fields = [
1294
                                'LABEL_FIRST_NAME' => 'interactions-first_name',
1295
                                'LABEL_LAST_NAME' => 'interactions-last_name',
1296
                                'LABEL_CORPORATE_EMAIL' => 'interactions-corporate_email',
1297
                                'LABEL_COMPANY' => 'interactions-company',
1298
                                'LABEL_POSITION' => 'interactions-position',
1299
                                'LABEL_COUNTRY' => 'interactions-country',
1300
                                'LABEL_STATE' => 'interactions-state',
1301
                                'LABEL_CITY' => 'interactions-city',
1302
                                'LABEL_PHONE' => 'interactions-phone',
1303
                                'LABEL_PHONE_EXTENSION' => 'interactions-phone_extension',
1304
                                'LABEL_PERSONAL_EMAIL' => 'interactions-personal_email',
1305
                                'LABEL_CELULAR' => 'interactions-celular',
1306
                                'LABEL_WHATSAPP' => 'interactions-whatsapp',
1307
                                'LABEL_LINKEDIN' => 'interactions-linkedin',
16766 efrain 1308
                                'LABEL_SCHOLARSHIP' => 'interactions-scholarship',
15532 stevensc 1309
 
1310
 
1311
                            ];
1312
                            foreach ($fields as $label => $field) :
1313
 
16864 efrain 1314
                            if(0 == $col):
15532 stevensc 1315
                            ?>
16864 efrain 1316
                            <div class="row">
1317
                            <?php endif; $col++; ?>
15532 stevensc 1318
 
16864 efrain 1319
                                <div class="col-sm-6 mt-3">
15532 stevensc 1320
                                    <div class="form-group">
1321
                                        <label for="<?php echo $field ?>"><?php echo $label ?></label>
1322
                                        <input type="text" id="<?php echo $field ?>" class="form-control" value="" readonly="readonly" />
1323
                                    </div>
1324
                                </div>
1325
 
16864 efrain 1326
                            <?php if($col == 2) : ?>
1327
 
1328
                            </div>
1329
                            <?php $col = 0; endif; ?>
1330
                            <?php  endforeach; ?>
1331
 
1332
	 		<div class="row">
1333
	 	         <div class="col-12 mt-3">
1334
 
1335
    	 	         <ul class="nav nav-tabs" id="myTab" role="tablist">
1336
                      <li class="nav-item">
1337
                        <a class="nav-link active" id="discovery-contacts-tabs-interactions-tab" data-bs-toggle="tab" href="#discovery-contacts-tabs-interactions" role="tab" aria-controls="discovery-contacts-tabs-interactions" aria-selected="true">LABEL_INTERACTIONS</a>
1338
                      </li>
1339
                      <li class="nav-item">
1340
                        <a class="nav-link" id="discovery-contacts-tabs-logs-tab" data-bs-toggle="tab" href="#discovery-contacts-tabs-logs" role="tab" aria-controls="discovery-contacts-tabs-logs" aria-selected="false">LABEL_LOGS</a>
1341
                      </li>
15399 efrain 1342
 
16864 efrain 1343
                    </ul>
1344
                    <div class="tab-content border border-top-0 p-3" id="myTabContent">
1345
                      <div class="tab-pane fade show active" id="discovery-contacts-tabs-interactions" role="tabpanel" aria-labelledby="discovery-contacts-tabs-interactions-tab">
1346
                      	<div class="row">
1347
                      		<div class="col-12 mt-3">
16912 efrain 1348
                      		 	<table class="table  table-bordered">
15532 stevensc 1349
                                    <thead>
15399 efrain 1350
                                        <tr>
1351
                                            <th>LABEL_FIRST_NAME</th>
1352
                                            <th>LABEL_LAST_NAME</th>
1353
                                            <th>LABEL_EMAIL</th>
1354
                                            <th>LABEL_DATE</th>
1355
                                            <th>LABEL_ACTIONS</th>
1356
                                        </tr>
1357
                                    </thead>
1358
                                    <tbody id="grid-discovery-contacts-tabs-interactions">
1359
                                    </tbody>
15532 stevensc 1360
                                </table>
16864 efrain 1361
 
1362
                      		</div>
1363
                      	</div>
1364
                     	<div class="row">
1365
                      		<div class="col-12 mt-3">
1366
                      			<ul id="discovery-contacts-pagination-interactions" class="pagination pagination-sm m-0 float-right">
15532 stevensc 1367
 
1368
                                </ul>
16864 efrain 1369
                      		</div>
1370
                      	</div>
1371
                      </div>
1372
 
1373
                      <div class="tab-pane fade" id="discovery-contacts-tabs-logs" role="tabpanel" aria-labelledby="discovery-contacts-tabs-logs-tab">
1374
                     	<div class="row">
1375
                      		<div class="col-12 mt-3">
16912 efrain 1376
                      			<table class="table  table-bordered">
15532 stevensc 1377
                                    <thead>
15399 efrain 1378
                                        <tr>
1379
                                            <th>LABEL_FIRST_NAME</th>
1380
                                            <th>LABEL_LAST_NAME</th>
1381
                                            <th>LABEL_EMAIL</th>
1382
                                            <th>LABEL_ACTIVITY</th>
1383
                                        </tr>
1384
                                    </thead>
1385
                                    <tbody id="grid-discovery-contacts-tabs-logs">
1386
                                    </tbody>
15532 stevensc 1387
                                </table>
16864 efrain 1388
                          	</div>
1389
                      	</div>
1390
                     	<div class="row">
1391
                      		<div class="col-12 mt-3">
15532 stevensc 1392
                                <ul id="discovery-contacts-pagination-logs" class="pagination pagination-sm m-0 float-right">
15399 efrain 1393
 
15532 stevensc 1394
                                </ul>
16864 efrain 1395
                      		</div>
1396
                      	</div>
1397
                      </div>
1398
 
15532 stevensc 1399
                    </div>
16864 efrain 1400
 
1401
	 	         </div>
1402
	 	     </div>
1403
	 	</div>
1404
	 	<div class="card-footer text-right">
1405
 
1406
	 	</div>
1407
	</div>
1408
</div>
15532 stevensc 1409
 
1410
 
1411
 
15399 efrain 1412
 
16864 efrain 1413
 
1414
 
1415
 
1416
 
15399 efrain 1417
<!-- The Modal -->
1418
<div class="modal" id="modal-interaction">
1419
    <div class="modal-dialog  modal-xl">
1420
        <div class="modal-content">
1421
 
1422
            <!-- Modal Header -->
1423
            <div class="modal-header">
16845 efrain 1424
                <h6 class="modal-title">LABEL_INTERACTION</h6>
16822 efrain 1425
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15399 efrain 1426
            </div>
1427
 
16864 efrain 1428
<?php
15399 efrain 1429
                $form = $this->formInteraction;
1430
                $form->setAttributes([
1431
                    'method'    => 'post',
1432
                    'name'      => 'form-interaction',
1433
                    'id'        => 'form-interaction'
1434
                ]);
1435
 
1436
                $form->prepare();
1437
                echo $this->form()->openTag($form);
1438
                ?>
16864 efrain 1439
            <div class="modal-body">
1440
 
1441
                <div class="row">
1442
                	<div class="col-12 mt-3">
15399 efrain 1443
                    <?php
1444
                    $element = $form->get('interaction_type_id');
1445
                    $element->setOptions(['label' => 'LABEL_INTERACTION_TYPE']);
1446
                    $element->setAttributes(['class' => 'form-control']);
15532 stevensc 1447
 
15399 efrain 1448
                    echo $this->formLabel($element);
1449
                    echo $this->formSelect($element);
1450
                    ?>
16864 efrain 1451
                    </div>
15399 efrain 1452
                </div>
15532 stevensc 1453
 
16864 efrain 1454
                <div class="row">
1455
                	<div class="col-12 mt-3">
15399 efrain 1456
                    <?php
1457
                    $element = $form->get('notes');
1458
                    $element->setOptions(['label' => 'LABEL_NOTES']);
1459
                    $element->setAttributes(['class' => 'form-control']);
1460
 
1461
                    echo $this->formLabel($element);
1462
                    echo $this->formTextArea($element);
1463
                    ?>
16864 efrain 1464
                    </div>
15399 efrain 1465
                </div>
15532 stevensc 1466
 
16864 efrain 1467
 
1468
            </div>
1469
 
1470
        	<div class="modal-footer text-right">
15399 efrain 1471
                    <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1472
                    <button type="button" class="btn btn-light btn-cancel-interaction">LABEL_CANCEL</button>
1473
                </div>
1474
                <?php echo $this->form()->closeTag($form); ?>
1475
        </div>
1476
    </div>
1477
</div>
1478
 
1479
 
15546 efrain 1480
<!-- The Modal -->
1481
<div class="modal" id="modalContactUpload">
15624 anderson 1482
    <div class="modal-dialog  modal-xl">
1483
        <div class="modal-content">
15399 efrain 1484
 
15546 efrain 1485
            <!-- Modal Header -->
15624 anderson 1486
            <div class="modal-header">
16845 efrain 1487
                <h6 class="modal-title">LABEL_UPLOAD</h6>
16822 efrain 1488
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15624 anderson 1489
            </div>
15546 efrain 1490
 
16864 efrain 1491
  				<?php
15624 anderson 1492
                $form = $this->contactUploadForm;
1493
                $form->setAttributes([
1494
                    'method'    => 'post',
1495
                    'name'      => 'form-contact-upload',
1496
                    'id'        => 'form-contact-upload'
1497
                ]);
15546 efrain 1498
 
15624 anderson 1499
                $form->prepare();
1500
                echo $this->form()->openTag($form);
1501
                ?>
16864 efrain 1502
 
1503
            <div class="modal-body">
1504
 
15624 anderson 1505
 
16864 efrain 1506
                <div class="row">
1507
                	<div class="col-12 mt-3">
15624 anderson 1508
 
16864 efrain 1509
 
15624 anderson 1510
                        <?php
16864 efrain 1511
                        $element = $form->get('file');
1512
                        $element->setOptions(['label' => 'LABEL_EXCEL']);
1513
                        echo $this->formLabel($element);
15546 efrain 1514
                        ?>
16864 efrain 1515
                        <div class="file-loading">
1516
                            <?php
1517
                            $element->setAttributes(['class' => 'form-control', 'accept' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel']);
1518
                            echo $this->formFile($element);
1519
                            ?>
1520
                        </div>
15624 anderson 1521
                    </div>
16864 efrain 1522
              	</div>
15546 efrain 1523
 
1524
 
15624 anderson 1525
            </div>
1526
 
15546 efrain 1527
            <!-- Modal footer -->
16891 efrain 1528
            <div class="modal-footer text-right">
16864 efrain 1529
	            <button type="submit" class="btn btn-primary">LABEL_UPLOAD</button>
1530
 
15624 anderson 1531
                <button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1532
            </div>
16864 efrain 1533
   			<?php echo $this->form()->closeTag($form); ?>
1534
 
15546 efrain 1535
 
15624 anderson 1536
        </div>
1537
    </div>
1538
</div>
15546 efrain 1539
 
1540
 
1541
 
1542
<!-- The Modal -->
1543
<div class="modal" id="modalContactUploadTable">
15624 anderson 1544
    <div class="modal-dialog modal-xl">
1545
        <div class="modal-content">
15546 efrain 1546
 
1547
            <!-- Modal Header -->
15624 anderson 1548
            <div class="modal-header">
16845 efrain 1549
                <h6 class="modal-title">LABEL_CONTACTS</h6>
16822 efrain 1550
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
15624 anderson 1551
            </div>
15546 efrain 1552
 
1553
            <!-- Modal body -->
16454 anderson 1554
            <div class="modal-body">
1555
                <form>
1556
                    <input type="hidden" name="table-upload-contacts-key" id="table-upload-contacts-key">
1557
                </form>
16864 efrain 1558
 
1559
                <div class="row">
1560
                	<div class="col-12 mt-3">
1561
 
1562
 
1563
                        <div id="table-wrapper">
1564
                            <table id="gridTableUploadContacts" class="table table-bordered">
1565
                                <thead>
1566
                                    <tr>
1567
                                        <th>LABEL_FIRST_NAME</th>
1568
                                        <th>LABEL_LAST_NAME</th>
1569
                                        <th>LABEL_PERSONAL_EMAIL</th>
1570
                                        <th>LABEL_CORPORATE_EMAIL</th>
1571
                                        <th>LABEL_COMPANY</th>
1572
                                        <th>LABEL_POSITION</th>
1573
                                        <th>LABEL_SECTOR</th>
1574
                                        <th>LABEL_COUNTRY</th>
1575
                                        <th>LABEL_STATE</th>
1576
                                        <th>LABEL_CITY</th>
1577
                                        <th>LABEL_PHONE</th>
1578
                                        <th>LABEL_PHONE_EXTENSION</th>
1579
                                        <th>LABEL_CELULAR</th>
1580
                                        <th>LABEL_WHATSAPP</th>
1581
                                        <th>LABEL_LINKEDIN</th>
1582
            							<th>LABEL_SECTOR</th>
1583
                      					<th>LABEL_SCHOLARSHIP</th>
1584
                                    </tr>
1585
                                </thead>
1586
                                <tbody>
1587
                                </tbody>
1588
                            </table>
1589
                        </div>
1590
 
1591
                	</div>
1592
 
1593
                </div>
16454 anderson 1594
 
1595
 
1596
 
15546 efrain 1597
 
15624 anderson 1598
            </div>
1599
 
15546 efrain 1600
            <!-- Modal footer -->
16891 efrain 1601
            <div class="modal-footer text-right">
15624 anderson 1602
                <button type="submit" class="btn btn-primary btn-upload-contacts-step2">LABEL_SAVE</button>
1603
                <button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1604
            </div>
15546 efrain 1605
 
15624 anderson 1606
        </div>
1607
    </div>
1608
</div>
15546 efrain 1609
 
1610
 
15399 efrain 1611
<script id="interactionTemplate" type="text/x-jsrender">
1612
    {{for items}}
15532 stevensc 1613
    <tr>
1614
        <td>{{>first_name}}</td>
1615
        <td>{{>last_name}}</td>
1616
        <td>{{>email}}</td>
1617
        <td> {{>added_on}}</td>
1618
        <td>
1619
            <button class="btn btn-danger btn-delete-interaction" data-href="{{>link_delete}}" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>
1620
        </td>
1621
    </tr>
1622
    <tr>
1623
        <td colspan="2">
1624
            {{>name}}
1625
        </td>
1626
        <td colspan="3">
1627
            {{>notes}}
1628
        </td>
1629
    </tr>
15399 efrain 1630
    {{/for}}
1631
</script>
1632
 
1633
 
1634
<script id="logTemplate" type="text/x-jsrender">
1635
    {{for items}}
15532 stevensc 1636
    <tr>
1637
        <td>{{>first_name}}</td>
1638
        <td>{{>last_name}}</td>
1639
        <td>{{>email}}</td>
15533 stevensc 1640
        <td>
15534 stevensc 1641
            {{>activity}} -
1642
            {{>added_on}}
15532 stevensc 1643
        </td>
15533 stevensc 1644
    </tr>
15532 stevensc 1645
 
15533 stevensc 1646
    <tr>
1647
        <td>
1648
        </td>
1649
        <td>
1650
        </td>
1651
        <td>
1652
        </td>
1653
 
1654
        <td>
15532 stevensc 1655
            {{>details}}
1656
        </td>
15533 stevensc 1657
    </tr>
15532 stevensc 1658
 
15399 efrain 1659
    {{/for}}
1660
</script>
1661
 
15546 efrain 1662
 
1663
<script id="uploadContactTemplate" type="text/x-jsrender">
1664
    {{for items}}
1665
    <tr>
1666
        <td>{{>first_name}}</td>
1667
        <td>{{>last_name}}</td>
1668
        <td>{{>email_personal}}</td>
1669
        <td>{{>email_company}}</td>
1670
        <td>{{>company}}</td>
1671
        <td>{{>position}}</td>
15831 efrain 1672
        <td>{{>sector}}</td>
15546 efrain 1673
        <td>{{>country}}</td>
1674
        <td>{{>state}}</td>
1675
        <td>{{>city}}</td>
1676
        <td>{{>phone}}</td>
1677
        <td>{{>extension}}</td>
1678
        <td>{{>movil}}</td>
1679
        <td>{{>whatsapp}}</td>
1680
        <td>{{>linkedin}}</td>
16766 efrain 1681
        <td>{{>sector}}</td>
1682
        <td>{{>scholarship}}</td>
15546 efrain 1683
    </tr>
1684
 
1685
 
1686
    {{/for}}
1687
</script>
1688
 
15399 efrain 1689
<script id="logPaginationTemplate" type="text/x-jsrender">
1690
    {{if has_previous_page}}
15532 stevensc 1691
    <li class="page-item"><a class="page-link class-btn-log-previous" href="#"> <i class="fa fa-chevron-left" aria-hidden="true"></i> LABEL_PREVIOUS </a></li>
15399 efrain 1692
    {{/if}}
1693
 
1694
    {{if has_next_page}}
15532 stevensc 1695
    <li class="page-item"><a class="page-link class-btn-log-next" href="#"> LABEL_NEXT <i class="fa fa-chevron-right" aria-hidden="true"></i> </a></li>
15399 efrain 1696
    {{/if}}
1697
</script>
1698
 
1699
<script id="interactionPaginationTemplate" type="text/x-jsrender">
1700
    {{if has_previous_page}}
15532 stevensc 1701
    <li class="page-item"><a class="page-link class-btn-interaction-previous" href="#"> <i class="fa fa-chevron-left" aria-hidden="true"></i> LABEL_PREVIOUS </a></li>
15399 efrain 1702
    {{/if}}
1703
 
1704
    {{if has_next_page}}
15532 stevensc 1705
    <li class="page-item"><a class="page-link class-btn-interaction-next" href="#"> LABEL_NEXT <i class="fa fa-chevron-right" aria-hidden="true"></i> </a></li>
15399 efrain 1706
    {{/if}}
1707
</script>