Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16766 | Rev 16822 | 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' },
16766 efrain 369
                { 'mDataProp': 'scholarship' },
15399 efrain 370
                { 'mDataProp': 'actions' },
371
    	    ],
372
            'columnDefs': [
373
                {
374
                    'targets': -1,
375
                    'orderable': false,
376
                    'render' : function ( data, type, row ) {
377
                        s = '';
378
 
379
                        if(allowEdit && data['link_edit']) {
380
                            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;';
381
                        }
382
                        if(allowDelete && data['link_delete']) {
383
                            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;';
384
                        }
385
                        if(allowView && data['link_view']) {
386
                            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;';
387
                        }
388
                        return s;
389
                    }
390
                }
391
              ],
392
        });
393
 
394
 
395
 
396
 
397
        var validator = $('#form').validate({
398
            debug: true,
399
            onclick: false,
400
            onkeyup: false,
401
            ignore: [],
402
            rules: {
403
                'first_name': {
16766 efrain 404
                    required: false,
15399 efrain 405
                    maxlength: 128,
406
                },
407
                'last_name': {
16766 efrain 408
                    required: false,
15399 efrain 409
                    maxlength: 128,
410
                },
411
                'corporate_email': {
412
                    required: true,
413
                    maxlength: 250,
414
                    email: true,
415
 
416
                },
417
                'company': {
418
                    required: true,
419
                    maxlength: 128,
420
                },
421
                'position': {
422
                    required: true,
423
                    maxlength: 128,
424
                },
425
                'country': {
426
                    required: true,
427
                    maxlength: 128,
428
                },
429
                'state': {
430
                    required: false,
431
                    maxlength: 128,
432
                },
433
                'city': {
434
                    required: false,
435
                    maxlength: 128,
436
                },
437
                'personal_email': {
438
                    required: false,
439
                    maxlength: 128,
440
                    email: true,
441
                },
442
                'phone': {
443
                    required: false,
444
                    maxlength: 25,
445
                    isIntlPhoneNumber: true,
446
                },
447
                'phone_extension': {
448
                    required: false,
449
                    maxlength: 5,
450
                },
451
                'celular': {
452
                    required: false,
453
                    maxlength: 25,
454
                    isIntlPhoneNumber: true,
455
                },
456
                'whatsapp': {
457
                    required: false,
458
                    maxlength: 25,
459
                    isIntlPhoneNumber: true,
460
                },
461
                'linkedin': {
462
                    required: false,
15831 efrain 463
                    maxlength: 250,
15399 efrain 464
                    url: true,
465
                },
15831 efrain 466
                'sector': {
467
                    required: false,
468
                    maxlength: 250,
469
                },
16766 efrain 470
                'scholarship': {
471
                    required: false,
472
                },
15399 efrain 473
            },
474
            submitHandler: function(form)
475
            {
476
                data = {
477
                    first_name :  $('#form #first_name').val(),
478
                    last_name :  $('#form #last_name').val(),
479
                    corporate_email :  $('#form #corporate_email').val(),
480
                    company :  $('#form #company').val(),
481
                    position :  $('#form #position').val(),
482
                    country :  $('#form #country').val(),
483
                    state :  $('#form #state').val(),
484
                    city :  $('#form #city').val(),
485
                    personal_email :  $('#form #personal_email').val(),
486
                    phone :  $('#form #phone').intlTelInput('getNumber'),
487
                    phone_extension :  $('#form #phone_extension').val(),
488
                    celular :  $('#form #celular').intlTelInput('getNumber'),
489
                    whatsapp :  $('#form #whatsapp').intlTelInput('getNumber'),
490
                    linkedin :  $('#form #linkedin').val(),
15831 efrain 491
                    sector :  $('#form #sector').val(),
16766 efrain 492
                    scholarship: $('#form #scholarship').val(),
15399 efrain 493
                };
494
 
495
                $('#modal .btn-primary').attr('disabled', true)
496
                $.ajax({
497
                    'dataType'  : 'json',
498
                    'accept'    : 'application/json',
499
                    'method'    : 'post',
500
                    'url'       :  $('#form').attr('action'),
501
                    'data'      :  data
502
                }).done(function(response) {
503
                    NProgress.start();
504
                    if(response['success']) {
505
                        $.fn.showSuccess(response['data']);
506
 
507
                        $('#form-row').hide();
508
                        $('#listing-row').show();
509
 
510
 
511
 
512
                        gridTable.api().ajax.reload(null, false);
513
                    } else {
514
                        validator.resetForm();
515
                        if(jQuery.type(response['data']) == 'string') {
516
                            $.fn.showError(response['data']);
517
                        } else  {
518
                            $.each(response['data'], function( fieldname, errors ) {
519
                                $.fn.showFormErrorValidator('#form #' + fieldname, errors);
520
                            });
521
                        }
522
                    }
523
                }).fail(function( jqXHR, textStatus, errorThrown) {
524
                    $.fn.showError(textStatus);
525
                }).always(function() {
526
                    NProgress.done();
527
                    $('#modal .btn-primary').removeAttr('disabled')
528
                });
529
                return false;
530
            },
531
            invalidHandler: function(form, validator) {
532
 
533
            }
534
        });
535
 
536
        var validatorInteraction = $('#form-interaction').validate({
537
            debug: true,
538
            onclick: false,
539
            onkeyup: false,
540
            ignore: [],
541
            rules: {
542
                'notes': {
543
                    required: true,
544
                },
545
                'interaction_type_id': {
546
                    required: true,
547
 
548
                },
549
            },
550
            submitHandler: function(form)
551
            {
552
 
553
                $.ajax({
554
                    'dataType'  : 'json',
555
                    'accept'    : 'application/json',
556
                    'method'    : 'post',
557
                    'url'       :  $('#form-interaction').attr('action'),
558
                    'data'      :  $('#form-interaction').serialize()
559
                }).done(function(response) {
560
                    NProgress.start();
561
                    if(response['success']) {
562
                        $.fn.showSuccess(response['data']);
563
 
564
                        $('#modal-interaction').modal('hide');
565
 
566
 
567
                        $.fn.loadInteractions();
568
                        $.fn.loadLogs();
569
                    } else {
570
                        validator.resetForm();
571
                        if(jQuery.type(response['data']) == 'string') {
572
                            $.fn.showError(response['data']);
573
                        } else  {
574
                            $.each(response['data'], function( fieldname, errors ) {
575
                                $.fn.showFormErrorValidator('#form-interaction #' + fieldname, errors);
576
                            });
577
                        }
578
                    }
579
                }).fail(function( jqXHR, textStatus, errorThrown) {
580
                    $.fn.showError(textStatus);
581
                }).always(function() {
582
                    NProgress.done();
583
 
584
                });
585
                return false;
586
            },
587
            invalidHandler: function(form, validator) {
588
 
589
            }
590
        });
591
 
592
        $('body').on('click', 'button.btn-add-interaction', function(e) {
593
            e.preventDefault();
594
 
595
            $('#form-interaction').attr('action', linkInteractionsAdd);
596
            $('#form-interaction #notes').val('');
597
            $('#form-interaction #status').val('');
598
 
599
            validator.resetForm();
600
            $('#modal-interaction').modal('show');
601
        });
602
 
603
 
604
        $('body').on('click', 'button.btn-cancel-interaction', function(e) {
605
            e.preventDefault();
606
            $('#modal-interaction').modal('hide');
607
        });
608
 
609
        $('body').on('click', 'button.btn-delete-interaction', function(e) {
610
            e.preventDefault();
611
            var action = $(this).data('href');
612
            NProgress.start();
613
            $.ajax({
614
                'dataType'  : 'json',
615
                'accept'    : 'application/json',
616
                'method'    : 'post',
617
                'url'       :  action,
618
            }).done(function(response) {
619
                if(response['success']) {
620
                    $.fn.showSuccess(response['data']);
621
 
622
                    $.fn.loadLogs();
623
                    $.fn.loadInteractions();
624
                } else {
625
                    $.fn.showError(response['data']);
626
                }
627
            }).fail(function( jqXHR, textStatus, errorThrown) {
628
                $.fn.showError(textStatus);
629
            }).always(function() {
630
                NProgress.done();
631
            });
632
 
633
        });
634
 
635
 
636
        $('body').on('click', 'button.btn-add', function(e) {
637
            e.preventDefault();
638
 
639
            $('span[id="form-title"]').html('LABEL_ADD');
640
            $('#form').attr('action', '$routeAdd');
641
            $('#form #first_name').val('');
642
            $('#form #last_name').val('');
643
            $('#form #corporate_email').val('');
644
            $('#form #company').val('');
645
            $('#form #position').val('');
646
            $('#form #country').val('');
647
            $('#form #state').val('');
648
            $('#form #city').val('');
649
            $('#form #personal_email').val('');
650
            $('#form #phone').intlTelInput('setNumber', '');
651
            $('#form #phone_extension').val('');
652
            $('#form #celular').intlTelInput('setNumber', '');
653
            $('#form #whatsapp').intlTelInput('setNumber', '');
654
            $('#form #linkedin').val('');
15831 efrain 655
            $('#form #sector').val('');
16766 efrain 656
            $('#form #scholarship').val('');
15399 efrain 657
 
658
            validator.resetForm();
659
 
660
 
661
            $('#listing-row').hide();
662
            $('#form-row').show();
663
 
664
        });
665
 
666
        $('body').on('click', 'button.btn-edit', function(e) {
667
            e.preventDefault();
668
            NProgress.start();
669
            var action = $(this).data('href');
670
 
671
            $.ajax({
672
                'dataType'  : 'json',
673
                'method'    : 'get',
674
                'url'       :  action,
675
            }).done(function(response) {
676
                if(response['success']) {
677
 
678
                    $('span[id="form-title"]').html('LABEL_EDIT');
679
                    $('#form').attr('action', action);
680
                    $('#form #first_name').val(response['data']['first_name']);
681
                    $('#form #last_name').val(response['data']['last_name']);
682
                    $('#form #corporate_email').val(response['data']['corporate_email']);
683
                    $('#form #company').val(response['data']['company']);
684
                    $('#form #position').val(response['data']['position']);
685
                    $('#form #country').val(response['data']['country']);
686
                    $('#form #state').val(response['data']['state']);
687
                    $('#form #city').val(response['data']['city']);
688
                    $('#form #personal_email').val(response['data']['personal_email']);
689
                    $('#form #phone').intlTelInput('setNumber', response['data']['phone']);
690
                    $('#form #phone_extension').val(response['data']['phone_extension']);
691
                    $('#form #celular').intlTelInput('setNumber', response['data']['celular']);
692
                    $('#form #whatsapp').intlTelInput('setNumber', response['data']['whatsapp']);
693
                    $('#form #linkedin').val(response['data']['linkedin']);
15831 efrain 694
                    $('#form #sector').val(response['data']['sector']);
16766 efrain 695
                    $('#form #scholarship').val(response['data']['scholarship']);
15399 efrain 696
 
16766 efrain 697
 
15399 efrain 698
                    validator.resetForm();
699
 
700
 
701
                    $('#listing-row').hide();
702
                    $('#form-row').show();
703
                } else {
704
                    $.fn.showError(response['data']);
705
                }
706
            }).fail(function( jqXHR, textStatus, errorThrown) {
707
                $.fn.showError(textStatus);
708
            }).always(function() {
709
                NProgress.done();
710
            });
711
        });
712
 
713
 
714
        $('body').on('click', 'a.class-btn-log-previous', function(e) {
715
            e.preventDefault();
716
 
717
            if( pageLogs  > 1) {
718
                pageLogs  =  pageLogs  - 1;
719
                $.fn.loadLogs();
720
 
721
            }
722
        });
723
 
724
        $('body').on('click', 'a.class-btn-log-next', function(e) {
725
            e.preventDefault();
726
            pageLogs  =  pageLogs  + 1;
727
             $.fn.loadLogs();
728
        });
729
 
730
        $('body').on('click', 'a.class-btn-interaction-previous', function(e) {
731
            e.preventDefault();
732
 
733
            if( pageInteractions  > 1) {
734
                pageInteractions  =  v  - 1;
735
                $.fn.loadInteractions();
736
 
737
            }
738
        });
739
 
740
        $('body').on('click', 'a.class-btn-interaction-next', function(e) {
741
            e.preventDefault();
742
            pageInteractions  =  pageInteractions  + 1;
743
             $.fn.loadInteractions();
744
        });
745
 
746
        $('body').on('click', 'button.btn-view', function(e) {
747
            e.preventDefault();
748
            NProgress.start();
749
            var action = $(this).data('href');
750
 
751
            $.ajax({
752
                'dataType'  : 'json',
753
                'method'    : 'get',
754
                'url'       :  action,
755
            }).done(function(response) {
756
                if(response['success']) {
757
 
758
 
759
                    $('#interactions-first_name').val(response['data']['first_name']);
760
                    $('#interactions-last_name').val(response['data']['last_name']);
761
                    $('#interactions-corporate_email').val(response['data']['corporate_email']);
762
                    $('#interactions-company').val(response['data']['company']);
763
                    $('#interactions-position').val(response['data']['position']);
764
                    $('#interactions-country').val(response['data']['country']);
765
                    $('#interactions-state').val(response['data']['state']);
766
                    $('#interactions-city').val(response['data']['city']);
767
                    $('#interactions-personal_email').val(response['data']['personal_email']);
768
                    $('#interactions-phone').val(response['data']['phone']);
769
                    $('#interactions-phone_extension').val(response['data']['phone_extension']);
770
                    $('#interactions-celular').val(response['data']['celular']);
771
                    $('#interactions-whatsapp').val(response['data']['whatsapp']);
772
                    $('#interactions-linkedin').val(response['data']['linkedin']);
15831 efrain 773
                    $('#interactions-sector').val(response['data']['sector']);
16766 efrain 774
                    $('#interactions-scholarship').val(response['data']['scholarship']);
15399 efrain 775
 
16766 efrain 776
 
777
 
15399 efrain 778
                    linkInteractions = response['data']['link_interactions'];
779
                    linkInteractionsAdd = response['data']['link_interactions_add'];
780
                    linkLogs = response['data']['link_logs'];
781
 
782
                    pageInteractions = 0;
783
                    pageLogs = 0;
784
 
785
 
786
 
787
 
788
                    $.fn.loadLogs();
789
                    $.fn.loadInteractions();
790
 
791
 
792
 
793
                    $('#listing-row').hide();
794
                    $('#interactions-row').show();
795
                } else {
796
                    $.fn.showError(response['data']);
797
                }
798
            }).fail(function( jqXHR, textStatus, errorThrown) {
799
                $.fn.showError(textStatus);
800
            }).always(function() {
801
                NProgress.done();
802
            });
803
        });
804
 
805
        $('body').on('click', 'button.btn-refresh', function(e) {
806
            e.preventDefault();
807
            gridTable.api().ajax.reload(null, false);
808
        });
809
 
810
 
811
        $('body').on('click', 'button.btn-cancel', function(e) {
812
 
813
 
814
            e.preventDefault();
815
            $('#form-row').hide();
816
            $('#listing-row').show();
817
        });
818
 
819
        $('body').on('click', 'button.btn-close-view', function(e) {
820
 
821
 
822
            e.preventDefault();
823
            $('#interactions-row').hide();
824
            $('#listing-row').show();
825
        });
826
 
827
 
828
 
829
        $('#form #phone').intlTelInput({
830
            utilsScript: "$utilsScript",
831
            formatOnDisplay: true,
832
             separateDialCode: false,
833
        });
834
 
835
 
836
 
837
       $('#form #celular').intlTelInput({
838
            utilsScript: "$utilsScript",
839
            formatOnDisplay: true,
840
            separateDialCode: false,
841
        });
842
 
843
        $('#form #whatsapp').intlTelInput({
844
            utilsScript: "$utilsScript",
845
            formatOnDisplay: true,
846
            separateDialCode: false,
847
        });
848
 
15546 efrain 849
var validatorContactUpload = $('#form-contact-upload').validate({
850
        debug: true,
851
        onclick: false,
852
        onkeyup: false,
853
        onfocusout: false,
854
        ignore: [],
855
        rules: {
856
            'file' : {
857
                required: true,
858
                extension: 'xls|xlsx',
859
                accept: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel'
860
            },
861
        },
862
 
863
        submitHandler: function(form)
864
        {
865
            NProgress.start();
866
            var formdata = false;
867
            if (window.FormData){
868
                formdata = new FormData(form);
869
            }
870
            formdata.append('step','validation');
871
 
872
 
873
            $.ajax({
874
                'dataType'  : 'json',
875
                'accept'    : 'application/json',
876
                'method'    : 'post',
877
                'url'       :  '$routeUpload',
878
                'data'      :  formdata,
879
                'processData': false,
880
                'contentType': false,
881
            }).done(function(response) {
882
                if(response['success']) {
883
 
884
                    $('#table-upload-contacts-key').val(response['data']['key']);
885
                    $('#table-upload-contacts-topic').val(response['data']['topic']);
886
          			$('#table-upload-contacts-capsule').val(response['data']['capsule']);
887
 
888
                    $('#gridTableUploadContacts tbody').html($('#uploadContactTemplate').render(response['data']))
889
 
890
                    $('#modalContactUpload').modal('hide');
891
                    $('#modalContactUploadTable').modal('show');
892
 
893
 
894
 
895
                } else {
896
                    validatorContactUpload.resetForm();
897
                    if(jQuery.type(response['data']) == 'string') {
898
                        $.fn.showError(response['data']);
899
                    } else  {
900
                        $.each(response['data'], function( fieldname, errors ) {
901
                            $.fn.showFormErrorValidator('#form-contact-upload #' + fieldname, errors);
902
                        });
903
                    }
904
                }
905
            }).fail(function( jqXHR, textStatus, errorThrown) {
906
                $.fn.showError(textStatus);
907
            }).always(function() {
908
 
909
                NProgress.done();
910
            });
911
            return false;
912
        },
913
        invalidHandler: function(form, validator) {
914
 
915
        }
15399 efrain 916
    });
15546 efrain 917
 
918
 
919
    $('body').on('click', 'button.btn-upload', function(e) {
920
        e.preventDefault();
921
 
922
        $('#form-contact-upload #file').fileinput('reset');
923
        $('#form-contact-upload #file').val('');
924
 
925
        $('#modalContactUpload').modal('show');
926
    });
927
 
928
 
929
    $('#form-contact-upload #file').fileinput({
930
        theme: 'fa',
931
        language: 'es',
932
        showUpload: false,
933
        dropZoneEnabled: false,
934
        maxFileCount: 1,
935
        allowedFileExtensions: ['xls', 'xlsx'],
936
    });
937
 
938
    $('body').on('click', 'button.btn-upload', function(e) {
939
        e.preventDefault();
940
 
941
        $('#form-contact-upload #file').fileinput('reset');
942
        $('#form-contact-upload #file').val('');
943
 
944
        $('#modalContactUpload').modal('show');
945
    });
946
 
947
    $('body').on('click', 'button.btn-upload-contacts-step2', function(e) {
948
        e.preventDefault();
949
        NProgress.start();
950
 
951
        $.ajax({
952
            'dataType'  : 'json',
953
            'accept'    : 'application/json',
954
            'method'    : 'post',
955
            'url'       : '$routeUpload',
956
            'data'      :  {
957
                'step' : 'process',
958
                'key' : $('#table-upload-contacts-key').val(),
959
            }
960
        }).done(function(response) {
961
            if(response['success']) {
962
 
963
                var s = response['data']['new_contacts'] + ' LABEL_NEW_CONTACTS <br>' +
964
                response['data']['error_contacts'] + ' LABEL_ERROR_CONTACTS <br>' +
965
                response['data']['duplicate_contacts'] + ' LABEL_DUPLICATE_CONTACTS <br>';
966
 
967
 
968
 
969
                $.fn.showSuccess(s);
970
 
971
                 gridTable.api().ajax.reload(null, false);
972
                $('#modalContactUploadTable').modal('hide');
973
            } else {
974
                $.fn.showError(response['data']);
975
            }
976
        }).fail(function( jqXHR, textStatus, errorThrown) {
977
            $.fn.showError(textStatus);
978
        }).always(function() {
979
            NProgress.done();
980
        });
981
        return false;
982
    });
983
 
984
 
985
    });
15399 efrain 986
JS;
987
$this->inlineScript()->captureEnd();
988
?>
989
 
990
 
991
 
992
 
15532 stevensc 993
<section class="content" id="listing-row">
15399 efrain 994
    <div class="container-fluid">
995
        <div class="row">
996
            <div class="col-12">
997
                <div class="card">
15532 stevensc 998
                    <div class="card-header">
999
                        <h2>LABEL_CONTACTS</h2>
1000
                    </div>
15399 efrain 1001
                    <div class="card-body">
1002
                        <table id="gridTable" class="table table-striped table-hover">
1003
                            <thead>
1004
                                <tr>
1005
                                    <th>LABEL_FIRST_NAME</th>
1006
                                    <th>LABEL_LAST_NAME</th>
1007
                                    <th>LABEL_CORPORATE_EMAIL</th>
15625 anderson 1008
                                    <th>LABEL_COMPANY</th>
15626 anderson 1009
                                    <th>LABEL_COUNTRY</th>
15627 anderson 1010
                                    <th>LABEL_SECTOR</th>
16766 efrain 1011
                           			<th>LABEL_SCHOLARSHIP</th>
15399 efrain 1012
                                    <th>LABEL_ACTIONS</th>
1013
                                </tr>
1014
                            </thead>
1015
                            <tbody>
1016
                            </tbody>
1017
                        </table>
1018
                    </div>
1019
                    <div class="card-footer clearfix">
1020
                        <div style="float:right;">
1021
                            <button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i> LABEL_REFRESH </button>
15624 anderson 1022
                            <?php if ($allowUpload) : ?>
1023
                                <button type="button" class="btn btn-primary btn-upload"><i class="fa fa-upload"></i> LABEL_UPLOAD </button>
1024
                            <?php endif; ?>
15399 efrain 1025
                            <?php if ($allowAdd) : ?>
15624 anderson 1026
                                <button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
15399 efrain 1027
                            <?php endif; ?>
1028
                        </div>
1029
                    </div>
1030
                </div>
1031
            </div>
1032
        </div>
1033
    </div>
1034
</section>
1035
 
1036
<section class="content" id="form-row" style="display: none">
1037
    <div class="container-fluid">
1038
        <div class="row">
1039
            <div class="col-12">
1040
                <div class="card">
1041
 
15532 stevensc 1042
                    <div class="card-header">
1043
                        <h2>LABEL_CONTACT - <span id="form-title"></span></h2>
1044
                    </div>
15399 efrain 1045
                    <div class="card-body">
15532 stevensc 1046
                        <?php
1047
                        $form = $this->form;
1048
                        $form->setAttributes([
1049
                            'method' => 'post',
1050
                            'action' => $routeAdd,
1051
                            'name' => 'form',
1052
                            'id' => 'form',
1053
                        ]);
1054
                        $form->prepare();
1055
                        echo $this->form()->openTag($form);
1056
                        ?>
1057
                        <div class="row">
1058
                            <div class="col-sm-6">
1059
                                <div class="form-group">
1060
                                    <?php
1061
                                    $label = 'LABEL_FIRST_NAME';
1062
                                    $field = 'first_name';
1063
 
1064
                                    $element = $form->get($field);
15831 efrain 1065
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15532 stevensc 1066
                                    $element->setOptions(['label' => $label]);
1067
                                    echo $this->formLabel($element);
1068
                                    echo $this->formText($element);
1069
                                    ?>
15399 efrain 1070
                                </div>
15532 stevensc 1071
                            </div>
1072
                            <div class="col-sm-6">
1073
                                <div class="form-group">
1074
                                    <?php
15399 efrain 1075
                                    $label = 'LABEL_LAST_NAME';
1076
                                    $field = 'last_name';
15532 stevensc 1077
 
15399 efrain 1078
                                    $element = $form->get($field);
15831 efrain 1079
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1080
                                    $element->setOptions(['label' => $label]);
1081
                                    echo $this->formLabel($element);
1082
                                    echo $this->formText($element);
1083
                                    ?>
15532 stevensc 1084
                                </div>
15399 efrain 1085
                            </div>
15532 stevensc 1086
                        </div>
1087
                        <div class="row">
1088
                            <div class="col-sm-6">
1089
                                <div class="form-group">
1090
                                    <?php
1091
 
1092
                                    $label = 'LABEL_CORPORATE_EMAIL';
1093
                                    $field = 'corporate_email';
1094
 
15399 efrain 1095
                                    $element = $form->get($field);
15831 efrain 1096
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1097
                                    $element->setOptions(['label' => $label]);
1098
                                    echo $this->formLabel($element);
1099
                                    echo $this->formText($element);
1100
                                    ?>
15532 stevensc 1101
                                </div>
15399 efrain 1102
                            </div>
15532 stevensc 1103
                            <div class="col-sm-6">
1104
                                <div class="form-group">
1105
                                    <?php
1106
                                    $label = 'LABEL_COMPANY';
1107
                                    $field = 'company';
1108
 
15399 efrain 1109
                                    $element = $form->get($field);
15831 efrain 1110
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1111
                                    $element->setOptions(['label' => $label]);
1112
                                    echo $this->formLabel($element);
1113
                                    echo $this->formText($element);
1114
                                    ?>
15532 stevensc 1115
                                </div>
15399 efrain 1116
                            </div>
15532 stevensc 1117
                        </div>
1118
                        <div class="row">
1119
                            <div class="col-sm-6">
1120
                                <div class="form-group">
1121
                                    <?php
1122
                                    $label = 'LABEL_POSITION';
1123
                                    $field = 'position';
1124
 
1125
 
15399 efrain 1126
                                    $element = $form->get($field);
15831 efrain 1127
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1128
                                    $element->setOptions(['label' => $label]);
1129
                                    echo $this->formLabel($element);
1130
                                    echo $this->formText($element);
1131
                                    ?>
15532 stevensc 1132
                                </div>
15399 efrain 1133
                            </div>
15532 stevensc 1134
                            <div class="col-sm-6">
16454 anderson 1135
                                <div class="form-group">
15532 stevensc 1136
                                    <?php
15831 efrain 1137
                                    $label = 'LABEL_SECTOR';
1138
                                    $field = 'sector';
1139
 
15399 efrain 1140
                                    $element = $form->get($field);
15831 efrain 1141
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1142
                                    $element->setOptions(['label' => $label]);
1143
                                    echo $this->formLabel($element);
15831 efrain 1144
                                    echo '<br>';
15399 efrain 1145
                                    echo $this->formText($element);
1146
                                    ?>
15532 stevensc 1147
                                </div>
16454 anderson 1148
                            </div>
1149
                        </div>
1150
                        <div class="row">
1151
                            <div class="col-sm-6">
1152
                                <div class="form-group">
1153
                                    <?php
1154
                                    $label = 'LABEL_COUNTRY';
1155
                                    $field = 'country';
1156
                                    $element = $form->get($field);
1157
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1158
                                    $element->setOptions(['label' => $label]);
1159
                                    echo $this->formLabel($element);
1160
                                    echo $this->formText($element);
1161
                                    ?>
15831 efrain 1162
                                </div>
16454 anderson 1163
                            </div>
15532 stevensc 1164
                            <div class="col-sm-6">
1165
                                <div class="form-group">
1166
                                    <?php
1167
                                    $label = 'LABEL_STATE';
1168
                                    $field = 'state';
15399 efrain 1169
 
15532 stevensc 1170
 
15399 efrain 1171
                                    $element = $form->get($field);
15831 efrain 1172
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1173
                                    $element->setOptions(['label' => $label]);
1174
                                    echo $this->formLabel($element);
1175
                                    echo $this->formText($element);
1176
                                    ?>
15532 stevensc 1177
                                </div>
15399 efrain 1178
                            </div>
16454 anderson 1179
                        </div>
1180
                        <div class="row">
15532 stevensc 1181
                            <div class="col-sm-6">
1182
                                <div class="form-group">
1183
                                    <?php
1184
                                    $label = 'LABEL_CITY';
1185
                                    $field = 'city';
1186
 
15399 efrain 1187
                                    $element = $form->get($field);
15831 efrain 1188
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1189
                                    $element->setOptions(['label' => $label]);
1190
                                    echo $this->formLabel($element);
1191
                                    echo $this->formText($element);
1192
                                    ?>
15532 stevensc 1193
                                </div>
15399 efrain 1194
                            </div>
15532 stevensc 1195
                            <div class="col-sm-6">
1196
                                <div class="form-group">
1197
                                    <?php
1198
                                    $label = 'LABEL_PHONE';
1199
                                    $field = 'phone';
1200
 
1201
 
1202
 
1203
 
15399 efrain 1204
                                    $element = $form->get($field);
15831 efrain 1205
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1206
                                    $element->setOptions(['label' => $label]);
1207
                                    echo $this->formLabel($element);
1208
                                    echo '<br>';
1209
                                    echo $this->formText($element);
1210
                                    ?>
15532 stevensc 1211
                                </div>
15399 efrain 1212
                            </div>
16454 anderson 1213
                        </div>
1214
                        <div class="row">
15532 stevensc 1215
                            <div class="col-sm-6">
1216
                                <div class="form-group">
1217
                                    <?php
1218
                                    $label = 'LABEL_PHONE_EXTENSION';
1219
                                    $field = 'phone_extension';
1220
 
1221
 
15399 efrain 1222
                                    $element = $form->get($field);
15831 efrain 1223
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1224
                                    $element->setOptions(['label' => $label]);
15532 stevensc 1225
 
15399 efrain 1226
                                    echo $this->formLabel($element);
15532 stevensc 1227
 
15399 efrain 1228
                                    echo $this->formText($element);
1229
                                    ?>
15532 stevensc 1230
                                </div>
15399 efrain 1231
                            </div>
15532 stevensc 1232
                            <div class="col-sm-6">
1233
                                <div class="form-group">
1234
                                    <?php
1235
                                    $label = 'LABEL_PERSONAL_EMAIL';
1236
                                    $field = 'personal_email';
1237
 
1238
 
1239
 
1240
 
15399 efrain 1241
                                    $element = $form->get($field);
15831 efrain 1242
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1243
                                    $element->setOptions(['label' => $label]);
1244
                                    echo $this->formLabel($element);
1245
                                    echo $this->formText($element);
1246
                                    ?>
15532 stevensc 1247
                                </div>
15399 efrain 1248
                            </div>
16454 anderson 1249
                        </div>
1250
                        <div class="row">
15532 stevensc 1251
                            <div class="col-sm-6">
1252
                                <div class="form-group">
1253
                                    <?php
1254
                                    $label = 'LABEL_CELULAR';
1255
                                    $field = 'celular';
1256
 
15399 efrain 1257
                                    $element = $form->get($field);
15831 efrain 1258
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1259
                                    $element->setOptions(['label' => $label]);
1260
                                    echo $this->formLabel($element);
1261
                                    echo '<br>';
1262
                                    echo $this->formText($element);
1263
                                    ?>
15532 stevensc 1264
                                </div>
15399 efrain 1265
                            </div>
15532 stevensc 1266
                            <div class="col-sm-6">
1267
                                <div class="form-group">
1268
                                    <?php
1269
                                    $label = 'LABEL_WHATSAPP';
1270
                                    $field = 'whatsapp';
15399 efrain 1271
 
1272
                                    $element = $form->get($field);
15831 efrain 1273
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1274
                                    $element->setOptions(['label' => $label]);
1275
                                    echo $this->formLabel($element);
1276
                                    echo '<br>';
1277
                                    echo $this->formText($element);
1278
                                    ?>
15532 stevensc 1279
                                </div>
15399 efrain 1280
                            </div>
16454 anderson 1281
                        </div>
1282
                        <div class="row">
15532 stevensc 1283
                            <div class="col-sm-6">
1284
                                <div class="form-group">
1285
                                    <?php
1286
                                    $label = 'LABEL_LINKEDIN';
1287
                                    $field = 'linkedin';
1288
 
15399 efrain 1289
                                    $element = $form->get($field);
15831 efrain 1290
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
15399 efrain 1291
                                    $element->setOptions(['label' => $label]);
1292
                                    echo $this->formLabel($element);
1293
                                    echo $this->formText($element);
1294
                                    ?>
15532 stevensc 1295
                                </div>
15399 efrain 1296
                            </div>
16766 efrain 1297
                           	<div class="col-sm-6">
1298
                                <div class="form-group">
1299
                                    <?php
1300
                                    $label = 'LABEL_SCHOLARSHIP';
1301
                                    $field = 'scholarship';
1302
 
1303
                                    $element = $form->get($field);
1304
                                    $element->setAttributes(['id' => $field, 'class' => 'form-control']);
1305
                                    $element->setOptions(['label' => $label]);
1306
                                    echo $this->formLabel($element);
1307
                                    echo $this->formSelect($element);
1308
                                    ?>
1309
                                </div>
1310
                            </div>
15532 stevensc 1311
                        </div>
16766 efrain 1312
 
1313
 
1314
 
1315
 
16454 anderson 1316
 
15399 efrain 1317
                    </div>
1318
                    <div class="card-footer clearfix">
1319
                        <div style="float:right;">
1320
                            <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
15532 stevensc 1321
                            <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
15399 efrain 1322
                        </div>
1323
                    </div>
15532 stevensc 1324
                    <?php echo $this->form()->closeTag($form); ?>
15399 efrain 1325
                </div>
1326
            </div>
1327
        </div>
1328
    </div>
15532 stevensc 1329
</section>
15399 efrain 1330
 
1331
 
1332
 
15532 stevensc 1333
<section class="content" id="interactions-row" style="display: none">
15399 efrain 1334
    <div class="container-fluid">
15532 stevensc 1335
        <div class="row">
15399 efrain 1336
            <div class="col-12">
15532 stevensc 1337
                <h2>LABEL_CONTACT</h2>
15399 efrain 1338
            </div>
15532 stevensc 1339
        </div>
15399 efrain 1340
        <div class="row">
1341
            <div class="col-12">
1342
                <div class="card card-primary card-outline card-tabs">
15537 stevensc 1343
                    <div class="card-body p-0 pt-2">
15532 stevensc 1344
 
15538 stevensc 1345
                        <div class="row mx-0">
15532 stevensc 1346
                            <?php
1347
                            $fields = [
1348
                                'LABEL_FIRST_NAME' => 'interactions-first_name',
1349
                                'LABEL_LAST_NAME' => 'interactions-last_name',
1350
                                'LABEL_CORPORATE_EMAIL' => 'interactions-corporate_email',
1351
                                'LABEL_COMPANY' => 'interactions-company',
1352
                                'LABEL_POSITION' => 'interactions-position',
1353
                                'LABEL_COUNTRY' => 'interactions-country',
1354
                                'LABEL_STATE' => 'interactions-state',
1355
                                'LABEL_CITY' => 'interactions-city',
1356
                                'LABEL_PHONE' => 'interactions-phone',
1357
                                'LABEL_PHONE_EXTENSION' => 'interactions-phone_extension',
1358
                                'LABEL_PERSONAL_EMAIL' => 'interactions-personal_email',
1359
                                'LABEL_CELULAR' => 'interactions-celular',
1360
                                'LABEL_WHATSAPP' => 'interactions-whatsapp',
1361
                                'LABEL_LINKEDIN' => 'interactions-linkedin',
16766 efrain 1362
                                'LABEL_SCHOLARSHIP' => 'interactions-scholarship',
15532 stevensc 1363
 
1364
 
1365
                            ];
1366
                            foreach ($fields as $label => $field) :
1367
 
1368
                            ?>
1369
 
1370
                                <div class="col-sm-6">
1371
                                    <div class="form-group">
1372
                                        <label for="<?php echo $field ?>"><?php echo $label ?></label>
1373
                                        <input type="text" id="<?php echo $field ?>" class="form-control" value="" readonly="readonly" />
1374
                                    </div>
1375
                                </div>
1376
 
15399 efrain 1377
                            <?php endforeach; ?>
1378
 
15532 stevensc 1379
                        </div>
1380
 
15539 stevensc 1381
                        <ul class="nav nav-tabs border-bottom-0" id="custom-tabs-three-tab" role="tablist">
15532 stevensc 1382
                            <li class="nav-item">
15535 stevensc 1383
                                <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 1384
                            </li>
1385
                            <li class="nav-item">
15535 stevensc 1386
                                <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 1387
                            </li>
1388
                        </ul>
1389
                    </div>
1390
 
15536 stevensc 1391
                    <div class="card-body p-0">
15532 stevensc 1392
                        <div class="tab-content" id="custom-tabs-three-tabContent">
1393
                            <div class="tab-pane fade show active" id="discovery-contacts-tabs-interactions" role="tabpanel" aria-labelledby="discovery-contacts-tabs-interactions-tab">
1394
                                <table class="table table-striped table-hover">
1395
                                    <thead>
15399 efrain 1396
                                        <tr>
1397
                                            <th>LABEL_FIRST_NAME</th>
1398
                                            <th>LABEL_LAST_NAME</th>
1399
                                            <th>LABEL_EMAIL</th>
1400
                                            <th>LABEL_DATE</th>
1401
                                            <th>LABEL_ACTIONS</th>
1402
                                        </tr>
1403
                                    </thead>
1404
                                    <tbody id="grid-discovery-contacts-tabs-interactions">
1405
                                    </tbody>
15532 stevensc 1406
                                </table>
1407
                                <br>
1408
                                <ul id="discovery-contacts-pagination-interactions" class="pagination pagination-sm m-0 float-right">
1409
 
1410
                                </ul>
1411
 
1412
 
1413
 
1414
                            </div>
1415
                            <div class="tab-pane fade" id="discovery-contacts-tabs-logs" role="tabpanel" aria-labelledby="discovery-contacts-tabs-logs-tab">
1416
                                <table class="table table-striped table-hover">
1417
                                    <thead>
15399 efrain 1418
                                        <tr>
1419
                                            <th>LABEL_FIRST_NAME</th>
1420
                                            <th>LABEL_LAST_NAME</th>
1421
                                            <th>LABEL_EMAIL</th>
1422
                                            <th>LABEL_ACTIVITY</th>
1423
                                        </tr>
1424
                                    </thead>
1425
                                    <tbody id="grid-discovery-contacts-tabs-logs">
1426
                                    </tbody>
15532 stevensc 1427
                                </table>
1428
                                <br>
1429
                                <ul id="discovery-contacts-pagination-logs" class="pagination pagination-sm m-0 float-right">
15399 efrain 1430
 
15532 stevensc 1431
                                </ul>
15399 efrain 1432
 
15532 stevensc 1433
                            </div>
1434
                        </div>
1435
                    </div>
1436
 
1437
 
1438
 
15399 efrain 1439
                    <div class="card-footer clearfix">
1440
                        <div style="float:right;">
15532 stevensc 1441
                            <button type="button" class="btn btn-primary btn-close-view"><i class="fa fa-chevron-left"></i> LABEL_BACK </button>
15399 efrain 1442
                            <?php if ($allowInteractionAdd) : ?>
1443
                                <button type="button" class="btn btn-primary btn-add-interaction"><i class="fa fa-plus"></i> LABEL_ADD </button>
1444
                            <?php endif; ?>
1445
                        </div>
1446
                    </div>
1447
                </div>
1448
            </div>
1449
        </div>
1450
    </div>
1451
</section>
1452
 
1453
<!-- The Modal -->
1454
<div class="modal" id="modal-interaction">
1455
    <div class="modal-dialog  modal-xl">
1456
        <div class="modal-content">
1457
 
1458
            <!-- Modal Header -->
1459
            <div class="modal-header">
1460
                <h4 class="modal-title">LABEL_INTERACTION</h4>
1461
                <button type="button" class="close" data-dismiss="modal">&times;</button>
1462
            </div>
1463
 
1464
            <!-- Modal body -->
1465
            <div class="modal-body">
1466
                <?php
1467
                $form = $this->formInteraction;
1468
                $form->setAttributes([
1469
                    'method'    => 'post',
1470
                    'name'      => 'form-interaction',
1471
                    'id'        => 'form-interaction'
1472
                ]);
1473
 
1474
                $form->prepare();
1475
                echo $this->form()->openTag($form);
1476
                ?>
15532 stevensc 1477
                <div class="form-group">
15399 efrain 1478
                    <?php
1479
                    $element = $form->get('interaction_type_id');
1480
                    $element->setOptions(['label' => 'LABEL_INTERACTION_TYPE']);
1481
                    $element->setAttributes(['class' => 'form-control']);
15532 stevensc 1482
 
15399 efrain 1483
                    echo $this->formLabel($element);
1484
                    echo $this->formSelect($element);
1485
                    ?>
1486
                </div>
15532 stevensc 1487
 
15399 efrain 1488
                <div class="form-group">
1489
                    <?php
1490
                    $element = $form->get('notes');
1491
                    $element->setOptions(['label' => 'LABEL_NOTES']);
1492
                    $element->setAttributes(['class' => 'form-control']);
1493
 
1494
                    echo $this->formLabel($element);
1495
                    echo $this->formTextArea($element);
1496
                    ?>
1497
                </div>
15532 stevensc 1498
 
15399 efrain 1499
                <div class="text-right">
1500
                    <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1501
                    <button type="button" class="btn btn-light btn-cancel-interaction">LABEL_CANCEL</button>
1502
                </div>
1503
                <?php echo $this->form()->closeTag($form); ?>
1504
            </div>
1505
 
1506
 
1507
        </div>
1508
    </div>
1509
</div>
1510
 
1511
 
15546 efrain 1512
<!-- The Modal -->
1513
<div class="modal" id="modalContactUpload">
15624 anderson 1514
    <div class="modal-dialog  modal-xl">
1515
        <div class="modal-content">
15399 efrain 1516
 
15546 efrain 1517
            <!-- Modal Header -->
15624 anderson 1518
            <div class="modal-header">
1519
                <h4 class="modal-title">LABEL_UPLOAD</h4>
1520
                <button type="button" class="close" data-dismiss="modal">&times;</button>
1521
            </div>
15546 efrain 1522
 
1523
            <!-- Modal body -->
15624 anderson 1524
            <div class="modal-body">
1525
                <?php
1526
                $form = $this->contactUploadForm;
1527
                $form->setAttributes([
1528
                    'method'    => 'post',
1529
                    'name'      => 'form-contact-upload',
1530
                    'id'        => 'form-contact-upload'
1531
                ]);
15546 efrain 1532
 
15624 anderson 1533
                $form->prepare();
1534
                echo $this->form()->openTag($form);
1535
                ?>
1536
 
1537
                <div class="form-group">
1538
 
1539
 
1540
                    <?php
1541
                    $element = $form->get('file');
1542
                    $element->setOptions(['label' => 'LABEL_EXCEL']);
1543
                    echo $this->formLabel($element);
1544
                    ?>
1545
                    <div class="file-loading">
1546
                        <?php
16778 efrain 1547
                        $element->setAttributes(['class' => 'form-control', 'accept' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel']);
15546 efrain 1548
                        echo $this->formFile($element);
1549
                        ?>
15624 anderson 1550
                    </div>
1551
                </div>
15546 efrain 1552
 
1553
 
1554
 
15624 anderson 1555
                <div class="form-group">
1556
                    <button type="submit" class="btn btn-primary">LABEL_UPLOAD</button>
1557
                    <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
1558
                </div>
1559
                <?php echo $this->form()->closeTag($form); ?>
1560
            </div>
1561
 
15546 efrain 1562
            <!-- Modal footer -->
15624 anderson 1563
            <div class="modal-footer">
1564
                <button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1565
            </div>
15546 efrain 1566
 
15624 anderson 1567
        </div>
1568
    </div>
1569
</div>
15546 efrain 1570
 
1571
 
1572
 
1573
<!-- The Modal -->
1574
<div class="modal" id="modalContactUploadTable">
15624 anderson 1575
    <div class="modal-dialog modal-xl">
1576
        <div class="modal-content">
15546 efrain 1577
 
1578
            <!-- Modal Header -->
15624 anderson 1579
            <div class="modal-header">
1580
                <h4 class="modal-title">LABEL_CONTACTS</h4>
1581
                <button type="button" class="close" data-dismiss="modal">&times;</button>
1582
            </div>
15546 efrain 1583
 
1584
            <!-- Modal body -->
16454 anderson 1585
            <div class="modal-body">
1586
                <form>
1587
                    <input type="hidden" name="table-upload-contacts-key" id="table-upload-contacts-key">
1588
                </form>
1589
 
1590
 
1591
 
1592
                <div id="table-wrapper">
1593
                    <table id="gridTableUploadContacts" class="table table-bordered table-hover">
1594
                        <thead>
1595
                            <tr>
1596
                                <th>LABEL_FIRST_NAME</th>
1597
                                <th>LABEL_LAST_NAME</th>
15831 efrain 1598
                                <th>LABEL_PERSONAL_EMAIL</th>
16454 anderson 1599
                                <th>LABEL_CORPORATE_EMAIL</th>
15546 efrain 1600
                                <th>LABEL_COMPANY</th>
1601
                                <th>LABEL_POSITION</th>
15831 efrain 1602
                                <th>LABEL_SECTOR</th>
15546 efrain 1603
                                <th>LABEL_COUNTRY</th>
1604
                                <th>LABEL_STATE</th>
1605
                                <th>LABEL_CITY</th>
1606
                                <th>LABEL_PHONE</th>
1607
                                <th>LABEL_PHONE_EXTENSION</th>
1608
                                <th>LABEL_CELULAR</th>
1609
                                <th>LABEL_WHATSAPP</th>
1610
                                <th>LABEL_LINKEDIN</th>
16766 efrain 1611
    							<th>LABEL_SECTOR</th>
1612
              					<th>LABEL_SCHOLARSHIP</th>
15624 anderson 1613
                            </tr>
1614
                        </thead>
1615
                        <tbody>
1616
                        </tbody>
1617
                    </table>
1618
                </div>
15546 efrain 1619
 
15624 anderson 1620
            </div>
1621
 
15546 efrain 1622
            <!-- Modal footer -->
15624 anderson 1623
            <div class="modal-footer">
1624
                <button type="submit" class="btn btn-primary btn-upload-contacts-step2">LABEL_SAVE</button>
1625
                <button type="button" class="btn btn-danger" data-dismiss="modal">LABEL_CLOSE</button>
1626
            </div>
15546 efrain 1627
 
15624 anderson 1628
        </div>
1629
    </div>
1630
</div>
15546 efrain 1631
 
1632
 
15399 efrain 1633
<script id="interactionTemplate" type="text/x-jsrender">
1634
    {{for items}}
15532 stevensc 1635
    <tr>
1636
        <td>{{>first_name}}</td>
1637
        <td>{{>last_name}}</td>
1638
        <td>{{>email}}</td>
1639
        <td> {{>added_on}}</td>
1640
        <td>
1641
            <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>
1642
        </td>
1643
    </tr>
1644
    <tr>
1645
        <td colspan="2">
1646
            {{>name}}
1647
        </td>
1648
        <td colspan="3">
1649
            {{>notes}}
1650
        </td>
1651
    </tr>
15399 efrain 1652
    {{/for}}
1653
</script>
1654
 
1655
 
1656
<script id="logTemplate" type="text/x-jsrender">
1657
    {{for items}}
15532 stevensc 1658
    <tr>
1659
        <td>{{>first_name}}</td>
1660
        <td>{{>last_name}}</td>
1661
        <td>{{>email}}</td>
15533 stevensc 1662
        <td>
15534 stevensc 1663
            {{>activity}} -
1664
            {{>added_on}}
15532 stevensc 1665
        </td>
15533 stevensc 1666
    </tr>
15532 stevensc 1667
 
15533 stevensc 1668
    <tr>
1669
        <td>
1670
        </td>
1671
        <td>
1672
        </td>
1673
        <td>
1674
        </td>
1675
 
1676
        <td>
15532 stevensc 1677
            {{>details}}
1678
        </td>
15533 stevensc 1679
    </tr>
15532 stevensc 1680
 
15399 efrain 1681
    {{/for}}
1682
</script>
1683
 
15546 efrain 1684
 
1685
<script id="uploadContactTemplate" type="text/x-jsrender">
1686
    {{for items}}
1687
    <tr>
1688
        <td>{{>first_name}}</td>
1689
        <td>{{>last_name}}</td>
1690
        <td>{{>email_personal}}</td>
1691
        <td>{{>email_company}}</td>
1692
        <td>{{>company}}</td>
1693
        <td>{{>position}}</td>
15831 efrain 1694
        <td>{{>sector}}</td>
15546 efrain 1695
        <td>{{>country}}</td>
1696
        <td>{{>state}}</td>
1697
        <td>{{>city}}</td>
1698
        <td>{{>phone}}</td>
1699
        <td>{{>extension}}</td>
1700
        <td>{{>movil}}</td>
1701
        <td>{{>whatsapp}}</td>
1702
        <td>{{>linkedin}}</td>
16766 efrain 1703
        <td>{{>sector}}</td>
1704
        <td>{{>scholarship}}</td>
15546 efrain 1705
    </tr>
1706
 
1707
 
1708
    {{/for}}
1709
</script>
1710
 
15399 efrain 1711
<script id="logPaginationTemplate" type="text/x-jsrender">
1712
    {{if has_previous_page}}
15532 stevensc 1713
    <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 1714
    {{/if}}
1715
 
1716
    {{if has_next_page}}
15532 stevensc 1717
    <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 1718
    {{/if}}
1719
</script>
1720
 
1721
<script id="interactionPaginationTemplate" type="text/x-jsrender">
1722
    {{if has_previous_page}}
15532 stevensc 1723
    <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 1724
    {{/if}}
1725
 
1726
    {{if has_next_page}}
15532 stevensc 1727
    <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 1728
    {{/if}}
1729
</script>