Proyectos de Subversion LeadersLinked - Backend

Rev

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