Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
1481 eleazar 1
<?php
2
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
3
$currentUser    = $this->currentUserHelper();
4
$roleName       = $currentUser->getUserTypeId();
5
 
1482 eleazar 6
$routeDatatable = $this->url('recruitment-and-selection/candidates');
1630 eleazar 7
$routeEmail = $this->url('recruitment-and-selection/candidates/email');
1506 eleazar 8
$routeAdd = $this->url('recruitment-and-selection/candidates/add', ['vacancy_uuid' => 'UUID_PLACEHOLDER']);
1481 eleazar 9
 
1482 eleazar 10
$allowAdd = $acl->isAllowed($roleName, 'recruitment-and-selection/candidates/add') ? 1 : 0;
11
$allowDelete = $acl->isAllowed($roleName, 'recruitment-and-selection/candidates/delete') ? 1 : 0;
1613 eleazar 12
$allowEdit = $acl->isAllowed($roleName, 'recruitment-and-selection/candidates/edit') ? 1 : 0;
1630 eleazar 13
$allowEmail = $acl->isAllowed($roleName, 'recruitment-and-selection/candidates/email') ? 1 : 0;
1481 eleazar 14
 
15
$this->headLink()->appendStylesheet($this->basePath('plugins/nprogress/nprogress.css'));
16
$this->inlineScript()->appendFile($this->basePath('plugins/nprogress/nprogress.js'));
17
 
18
 
19
$this->inlineScript()->appendFile($this->basePath('plugins/bootbox/bootbox.min.js'));
20
 
1490 eleazar 21
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-fileinput/css/fileinput.min.css'));
22
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-fileinput/themes/explorer-fas/theme.css'));
1481 eleazar 23
 
1490 eleazar 24
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/plugins/piexif.js'));
25
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/plugins/sortable.js'));
26
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/fileinput.js'));
27
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/locales/es.js'));
28
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/themes/fas/theme.js'));
29
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/themes/explorer-fas/theme.js'));
30
 
31
 
1481 eleazar 32
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/jquery.validate.js'));
33
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/additional-methods.js'));
34
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/localization/messages_es.js'));
35
 
36
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css'));
37
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-responsive/css/responsive.bootstrap4.min.css'));
38
 
39
$this->inlineScript()->appendFile($this->basePath('plugins/datatables/jquery.dataTables.min.js'));
40
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js'));
41
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/dataTables.responsive.min.js'));
42
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/responsive.bootstrap4.min.js'));
43
 
44
 
45
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/jquery.validate.js'));
46
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/additional-methods.js'));
47
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/localization/messages_es.js'));
48
 
49
 
50
 
51
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
52
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
53
 
54
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-confirmation/dist/bootstrap-confirmation.js'));
55
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-checkbox/awesome-bootstrap-checkbox.css'));
56
 
57
 
58
$this->inlineScript()->captureStart();
59
echo <<<JS
60
 
61
 
62
jQuery( document ).ready(function( $ ) {
63
 
64
    var allowAdd = $allowAdd;
1613 eleazar 65
    var allowDelete = $allowDelete;
66
    var allowEdit = $allowEdit;
1630 eleazar 67
    var allowEmail = $allowEmail;
1481 eleazar 68
 
69
        var gridTable = $('#gridTable').dataTable( {
70
            'processing': true,
71
            'serverSide': true,
72
            'searching': true,
73
            'order': [[ 1, 'asc' ]],
74
            'ordering':  true,
75
            'ordenable' : true,
76
            'responsive': true,
77
            'select' : false,
78
        	'paging': true,
79
            'pagingType': 'simple_numbers',
80
            'lengthMenu': [ [10, 25, 50, -1], [10, 25, 50, 'All'] ],
81
 
82
    		'ajax': {
83
    			'url' : '$routeDatatable',
84
    			'type' : 'get',
85
                'data': function ( d ) {
86
                },
87
                'beforeSend': function (request) {
88
                  NProgress.start();
89
                },
90
                'dataFilter': function(response) {
91
                    var response = jQuery.parseJSON( response );
92
 
93
                    var json                = {};
94
                    json.recordsTotal       = 0;
95
                    json.recordsFiltered    = 0;
96
                    json.data               = [];
97
 
98
                    if(response.success) {
99
                                               json.recordsTotal       = response.data.total;
100
                        json.recordsFiltered    = response.data.total;
101
                        json.data               = response.data.items;
102
                    } else {
103
                        $.fn.showError(response.data)
104
                    }
105
 
106
                    return JSON.stringify( json );
107
                }
108
    		},
109
            'language' : {
110
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
111
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
112
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
113
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
114
                'sInfo':           'LABEL_DATATABLE_SINFO',
115
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
116
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
117
                'sInfoPostFix':    '',
118
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
119
                'sUrl':            '',
120
                'sInfoThousands':  ',',
121
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
122
                'oPaginate': {
123
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
124
                    'sLast':     'LABEL_DATATABLE_SLAST',
125
                    'sNext':     'LABEL_DATATABLE_SNEXT',
126
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
127
                },
128
                'oAria': {
129
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
130
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
131
                },
132
            },
133
            'drawCallback': function( settings ) {
134
                NProgress.done();
135
                $('button.btn-delete').confirmation({
136
                    rootSelector: 'button.btn-delete',
137
                    title : 'LABEL_ARE_YOU_SURE',
138
                    singleton : true,
139
                    btnOkLabel: 'LABEL_YES',
140
                    btnCancelLabel: 'LABEL_NO',
141
                    onConfirm: function(value) {
142
                        action = $(this).data('href');
143
                        NProgress.start();
144
                        $.ajax({
145
                            'dataType'  : 'json',
146
                            'accept'    : 'application/json',
147
                            'method'    : 'post',
148
                            'url'       :  action,
149
                        }).done(function(response) {
150
                            if(response['success']) {
151
                                $.fn.showSuccess(response['data']);
152
                                gridTable.api().ajax.reload(null, false);
153
                            } else {
154
                                $.fn.showError(response['data']);
155
                            }
156
                        }).fail(function( jqXHR, textStatus, errorThrown) {
157
                            $.fn.showError(textStatus);
158
                        }).always(function() {
159
                            NProgress.done();
160
                        });
161
                    },
162
                });
163
 
1492 eleazar 164
                $('#form-add #file').fileinput({
1484 eleazar 165
                    theme: 'fas',
166
                    language: 'es',
167
                    showUpload: false,
168
                    dropZoneEnabled: false,
169
                    maxFileCount: 1,
170
                    allowedFileExtensions: ['pdf', 'docx'],
1481 eleazar 171
                });
172
 
1484 eleazar 173
                $('body').on('click', 'button.btn-add', function(e) {
174
                     e.preventDefault();
175
 
176
 
1492 eleazar 177
                     $('#form-add #first_name').val('');
178
                     $('#form-add #last_name').val('');
179
                     $('#form-add #email').val('');
180
                     $('#form-add #file').fileinput('reset');
1583 eleazar 181
                     $('#form-add #file').val('');
1484 eleazar 182
                     validatorAdd.resetForm();
183
 
1616 eleazar 184
                     $('#add-candidate-box').modal('show');
1484 eleazar 185
                     return false;
1485 eleazar 186
                    });
1484 eleazar 187
 
1491 eleazar 188
                    $(".close-box, .btn-add-cancel").on("click", function(e){
1485 eleazar 189
                         e.preventDefault();
1616 eleazar 190
                         $('#add-candidate-box').modal('hide');
191
                         $('#edit-candidate-box').modal('hide');
1485 eleazar 192
                         return false;
193
                    });
194
 
1618 eleazar 195
    var validatorEdit = $('#form-edit').validate({
1616 eleazar 196
        debug: true,
197
        onclick: false,
198
        onkeyup: false,
199
        onfocusout: false,
200
        ignore: [],
201
        rules: {
202
            'first_name': {
203
                required: true,
204
                maxlength: 128,
205
            },
206
            'file': {
207
                required: false,
208
                extension: 'pdf|docx',
209
                accept: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword,application/pdf'
210
            },
211
            'last_name': {
212
                required: true,
213
            },
214
            'email' :  {
215
                required: true,
1622 eleazar 216
            },
1619 eleazar 217
            'status' : {
218
                required: true,
1622 eleazar 219
            }
1616 eleazar 220
        },
221
        submitHandler: function(form)
222
        {
223
            var formdata = false;
224
            if (window.FormData){
225
                formdata = new FormData(form); //form[0]);
226
            }
227
 
228
            $('input[type="submit"]').prop('disabled', true);
229
 
230
            $.ajax({
231
                'dataType'  : 'json',
232
                'accept'    : 'application/json',
233
                'method'    : 'post',
234
                'url'       :  $('#form-edit').attr('action'),
235
                'data'      :  formdata,
236
                'processData': false,
237
                'contentType': false,
238
            }).done(function(response) {
239
                if(response['success']) {
240
                    $.fn.showSuccess(response['data']);
241
 
242
                    $('#edit-candidate-box').modal('hide');
243
                    gridTable.api().ajax.reload(null, false);
244
                } else {
1618 eleazar 245
                    validatorEdit.resetForm();
1616 eleazar 246
                    if(jQuery.type(response['data']) == 'string') {
247
                        $.fn.showError(response['data']);
248
                    } else  {
249
                        $.each(response['data'], function( fieldname, errors ) {
250
                            $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors);
251
                        });
252
                    }
253
                }
254
            }).fail(function( jqXHR, textStatus, errorThrown) {
255
                $.fn.showError(textStatus);
256
            }).always(function() {
257
                NProgress.done();
258
            });
259
            return false;
260
        },
261
        invalidHandler: function(form, validator) {
262
 
263
        }
264
    });
265
 
266
    $('body').on('click', 'button.btn-edit', function(e) {
267
            e.preventDefault();
268
 
269
            var url = $(this).data('href');
270
            $.ajax({
271
                'dataType'  : 'json',
272
                'accept'    : 'application/json',
273
                'method'    : 'get',
274
                'url'       :  url,
275
            }).done(function(response) {
276
                if(response['success']) {
1617 eleazar 277
                    $('#form-edit')[0].reset();
1616 eleazar 278
 
279
                    $('#form-edit').attr('action',url);
280
                    $('#form-edit #first_name').val(response['data']['first_name']);
281
                    $('#form-edit #last_name').val(response['data']['last_name']);
282
                    $('#form-edit #email').val(response['data']['email']);
283
                    $('#form-edit #file').fileinput('reset');
284
                    $('#form-edit #file').val('');
285
 
286
 
287
                    $('#form-edit #status').val(response['data']['status']);
288
 
289
                    $('#edit-candidate-box').modal('show');
290
                } else {
291
                    validatorEdit.resetForm();
292
                    if(jQuery.type(response['data']) == 'string') {
293
                        $.fn.showError(response['data']);
294
                    } else  {
295
                        $.each(response['data'], function( fieldname, errors ) {
296
                            $.fn.showFormErrorValidator('#form-edit #' + fieldname, errors);
297
                        });
298
                    }
299
                }
300
            }).fail(function( jqXHR, textStatus, errorThrown) {
301
                $.fn.showError(textStatus);
302
            }).always(function() {
303
                NProgress.done();
304
            });
305
        });
306
 
1486 eleazar 307
    var validatorAdd = $('#form-add').validate({
308
        debug: true,
309
        onclick: false,
310
        onkeyup: false,
311
        onfocusout: false,
312
        ignore: [],
313
        rules: {
1489 eleazar 314
            'first_name': {
1486 eleazar 315
                required: true,
316
                maxlength: 128,
1481 eleazar 317
            },
1486 eleazar 318
            'file': {
1629 eleazar 319
                required: false,
1486 eleazar 320
                extension: 'pdf|docx',
1495 eleazar 321
                accept: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword,application/pdf'
1486 eleazar 322
            },
323
            'last_name': {
324
                required: true,
325
            },
326
            'email' :  {
327
                required: true,
1622 eleazar 328
            },
329
            'status' : {
330
                required: true,
1486 eleazar 331
            }
332
        },
333
        submitHandler: function(form)
334
        {
335
            var formdata = false;
336
            if (window.FormData){
337
                formdata = new FormData(form); //form[0]);
338
            }
339
 
340
            $('input[type="submit"]').prop('disabled', true);
341
 
342
            $.ajax({
343
                'dataType'  : 'json',
344
                'accept'    : 'application/json',
345
                'method'    : 'post',
1494 eleazar 346
                'url'       :  $('#form-add').attr('action'),
1486 eleazar 347
                'data'      :  formdata,
348
                'processData': false,
349
                'contentType': false,
350
            }).done(function(response) {
351
                if(response['success']) {
352
                    $.fn.showSuccess(response['data']);
353
 
1616 eleazar 354
                    $('#add-candidate-box').modal('hide');
1486 eleazar 355
                    gridTable.api().ajax.reload(null, false);
356
                } else {
357
                    validatorAdd.resetForm();
358
                    if(jQuery.type(response['data']) == 'string') {
359
                        $.fn.showError(response['data']);
360
                    } else  {
361
                        $.each(response['data'], function( fieldname, errors ) {
1494 eleazar 362
                            $.fn.showFormErrorValidator('#form-add #' + fieldname, errors);
1486 eleazar 363
                        });
364
                    }
365
                }
366
            }).fail(function( jqXHR, textStatus, errorThrown) {
367
                $.fn.showError(textStatus);
368
            }).always(function() {
369
                NProgress.done();
370
            });
371
            return false;
372
        },
373
        invalidHandler: function(form, validator) {
374
 
375
        }
376
    });
377
 
1630 eleazar 378
    var validatorAdd = $('#form-add').validate({
379
        debug: true,
380
        onclick: false,
381
        onkeyup: false,
382
        onfocusout: false,
383
        ignore: [],
384
       /* rules: {
385
            'first_name': {
386
                required: true,
387
                maxlength: 128,
1486 eleazar 388
            },
1630 eleazar 389
            'file': {
390
                required: false,
391
                extension: 'pdf|docx',
392
                accept: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword,application/pdf'
393
            },
394
            'last_name': {
395
                required: true,
396
            },
397
            'email' :  {
398
                required: true,
399
            },
400
            'status' : {
401
                required: true,
402
            }
403
        },*/
404
        submitHandler: function(form)
405
        {
406
            var formdata = false;
407
            if (window.FormData){
408
                formdata = new FormData(form); //form[0]);
409
            }
410
 
411
            $('input[type="email"]').prop('disabled', true);
412
 
413
            $.ajax({
414
                'dataType'  : 'json',
415
                'accept'    : 'application/json',
416
                'method'    : 'get',
417
                'url'       :  $('#form-add').attr('email'),
418
                'data'      :  formdata,
419
                'processData': false,
420
                'contentType': false,
421
            }).done(function(response) {
422
                if(response['success']) {
423
                    $.fn.showSuccess(response['data']);
424
 
425
                    $('#add-candidate-box').modal('hide');
426
                    gridTable.api().ajax.reload(null, false);
427
                } else {
428
                    validatorAdd.resetForm();
429
                    if(jQuery.type(response['data']) == 'string') {
430
                        $.fn.showError(response['data']);
431
                    } else  {
432
                        $.each(response['data'], function( fieldname, errors ) {
433
                            $.fn.showFormErrorValidator('#form-add #' + fieldname, errors);
434
                        });
435
                    }
436
                }
437
            }).fail(function( jqXHR, textStatus, errorThrown) {
438
                $.fn.showError(textStatus);
439
            }).always(function() {
440
                NProgress.done();
441
            });
442
            return false;
443
        },
444
        invalidHandler: function(form, validator) {
445
 
446
        }
447
    });
448
 
449
            },
1481 eleazar 450
            'aoColumns': [
451
                { 'mDataProp': 'first_name' },
452
                { 'mDataProp': 'last_name' },
453
                { 'mDataProp': 'email' },
454
                { 'mDataProp': 'actions' },
455
    	    ],
456
            'columnDefs': [
457
 
458
 
459
                {
460
                    'targets': -1,
461
                    'orderable': false,
462
                    'render' : function ( data, type, row ) {
463
                        s = '';
464
 
1624 eleazar 465
                        if (allowEdit && data['link_edit']) {
1616 eleazar 466
                        s = s + '<button class="btn btn-info btn-sm btn-edit" data-href="' + data['link_edit']+ '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pencil"></i> LABEL_EDIT </button>&nbsp;';
1614 eleazar 467
                        }
468
 
1481 eleazar 469
                        if(allowDelete && data['link_delete']  ) {
470
                            s = s + '<button class="btn btn-danger btn-sm btn-delete" data-href="' + data['link_delete']+ '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-times"></i> LABEL_DELETE </button>&nbsp;';
471
                        }
472
 
473
                        return s;
474
                    }
475
                }
476
              ],
477
        });
478
 
479
    $('#form-filter #form_uuid').change(function(e) {
480
        e.preventDefault();
481
 
1503 eleazar 482
        var uuid = e.target.value;
483
 
1507 eleazar 484
        $('#form-add').attr('action', String("$routeAdd").replaceAll('UUID_PLACEHOLDER', uuid));
1503 eleazar 485
 
1599 eleazar 486
        gridTable.api().ajax.url("$routeDatatable" + "/" + uuid);
1481 eleazar 487
        gridTable.api().ajax.reload(null, false);
488
    })
489
 
490
 
491
    $('body').on('click', 'button.btn-refresh', function(e) {
492
        e.preventDefault();
493
        gridTable.api().ajax.reload(null, false);
494
    });
1507 eleazar 495
 
496
    $('#form-filter #form_uuid').change();
1481 eleazar 497
});
498
JS;
499
$this->inlineScript()->captureEnd();
500
?>
501
 
502
 
503
<!-- Content Header (Page header) -->
504
<section class="content-header">
505
	<div class="container-fluid">
506
    	<div class="row mb-2">
507
        	<div class="col-sm-12">
508
            	<h1>LABEL_CANDIDATES</h1>
509
			</div>
510
		</div>
511
	</div><!-- /.container-fluid -->
512
</section>
513
 
514
<section class="content">
515
	<div class="container-fluid">
516
    	<div class="row">
517
        	<div class="col-12">
518
				<div class="card">
519
					<div class="card-header">
520
						<?php
1486 eleazar 521
                        // $form = $this->form;
1481 eleazar 522
            	        $form->setAttributes([
523
                            'name'    => 'form-filter',
524
                            'id'      => 'form-filter',
525
                        ]);
526
 
527
                        $form->prepare();
528
                        echo $this->form()->openTag($form);
529
                        ?>
530
                        <div class="row">
531
                            <div class="col-md-6 col-sm-12">
532
                                <div class="form-group">
533
                                    <?php
534
                                    $element = $form->get('form_uuid');
535
 
1484 eleazar 536
                                    $element->setOptions(['label' => 'LABEL_VACANCIES']);
1481 eleazar 537
 
538
                                    $element->setAttributes(['class' => 'form-control']);
539
                                    echo $this->formLabel($element);
540
                                    echo $this->formSelect($element);
541
                                    ?>
542
                                </div>
543
                            </div>
544
 
545
                        </div>
546
						<?php echo $this->form()->closeTag($form); ?>
547
					</div>
548
					<div class="card-body">
549
        	    		<table id="gridTable" class="table   table-hover">
550
                      		<thead>
551
        						<tr>
552
                                	<th>LABEL_FIRST_NAME</th>
553
                                	<th>LABEL_LAST_NAME</th>
554
                                	<th>LABEL_EMAIL</th>
555
                                  	<th>LABEL_ACTIONS</th>
556
                                </tr>
557
                       		</thead>
558
                         	<tbody>
559
                         	</tbody>
560
                    	</table>
561
                   	</div>
1483 eleazar 562
                       <div class="card-footer clearfix">
563
                       		<div style="float:right;">
564
    							<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i> LABEL_REFRESH </button>
565
    							<?php if($allowAdd) : ?>
566
    							<button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
567
    							<?php endif; ?>
568
    						</div>
569
                     	</div>
1481 eleazar 570
          		</div>
571
           	</div>
572
        </div>
573
 	</div>
574
</section>
1616 eleazar 575
 
576
<!-- The Add Modal -->
577
<div class="modal" tabindex="-1" role="dialog" id="add-candidate-box">
1485 eleazar 578
	<div class="modal-dialog" role="document">
579
		<?php
1487 eleazar 580
	    //$form = $this->formA;
1485 eleazar 581
	    $form->setAttributes([
582
	       'method'    => 'post',
583
	        'name'      => 'form-add',
1496 eleazar 584
            'action'    => $routeAdd,
1630 eleazar 585
            'email'     => $routeEmail,
1485 eleazar 586
	        'id'        => 'form-add'
587
	    ]);
588
	    $form->prepare();
589
	    echo $this->form()->openTag($form);
590
 
591
	    ?>
592
    	<div class="modal-content">
593
      		<div class="modal-header">
594
        		<h3 class="modal-title">LABEL_NEW_CANDIDATE</h3>
595
      		</div>
596
      		<div class="modal-body">
597
      			<div class="form-group">
598
    				<?php
599
                        $element = $form->get('first_name');
600
                        $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
601
                        $element->setAttributes(['class' => 'form-control']);
602
                        echo $this->formLabel($element);
603
                        echo $this->formText($element);
604
                    ?>
605
				</div>
606
				<div class="form-group">
607
    				<?php
608
                        $element = $form->get('last_name');
609
                        $element->setOptions(['label' => 'LABEL_LAST_NAME']);
610
                        $element->setAttributes(['class' => 'form-control']);
611
                        echo $this->formLabel($element);
612
                        echo $this->formText($element);
613
                    ?>
614
				</div>
615
      			<div class="form-group">
616
    				<?php
617
                        $element = $form->get('email');
618
                        $element->setOptions(['label' => 'LABEL_EMAIL']);
619
                        $element->setAttributes(['class' => 'form-control']);
620
                        echo $this->formLabel($element);
621
                        echo $this->formText($element);
622
                    ?>
623
				</div>
624
 
625
				<div class="form-group">
626
    				<?php
627
                    $element = $form->get('file');
628
 
629
                    $element->setAttributes(['class' => 'form-control',  'accept' => 'pdf/docx']);
630
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
631
                    echo $this->formLabel($element);
632
                    ?>
633
                    <div class="file-loading">
634
                    	<?php echo $this->formFile($element); ?>
1493 eleazar 635
                    </div>
1485 eleazar 636
				</div>
1619 eleazar 637
          		<div class="form-group">
638
    				<?php
639
                        $element = $form->get('status');
640
                        $element->setAttributes(['class' => 'form-control']);
641
                        $element->setOptions(['label' => 'LABEL_STATUS']);
642
                        echo $this->formLabel($element);
643
                        echo $this->formSelect($element);
644
                    ?>
645
				</div>
1485 eleazar 646
          	</div>
647
         	<div class="modal-footer">
648
    			<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
1630 eleazar 649
    			<button type="email" class="btn btn-email">LABEL_CHECK_EMAIL</button>
1485 eleazar 650
    			<button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
651
          	</div>
652
      	<?php echo $this->form()->closeTag($form); ?>
653
    	</div>
654
	</div>
1616 eleazar 655
</div>
656
 
657
<!-- The Edit Modal -->
658
<div class="modal" tabindex="-1" role="dialog" id="edit-candidate-box">
659
	<div class="modal-dialog" role="document">
660
		<?php
661
	    $form->setAttributes([
662
	       'method'    => 'post',
663
	        'name'      => 'form-edit',
664
	        'id'        => 'form-edit'
665
	    ]);
666
	    $form->prepare();
667
	    echo $this->form()->openTag($form);
668
 
669
	    ?>
670
    	<div class="modal-content">
671
      		<div class="modal-header">
672
        		<h3 class="modal-title">LABEL_CANDIDATE</h3>
673
      		</div>
674
      		<div class="modal-body">
675
      			<div class="form-group">
676
    				<?php
677
                        $element = $form->get('first_name');
678
                        $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
679
                        $element->setAttributes(['class' => 'form-control']);
680
                        echo $this->formLabel($element);
681
                        echo $this->formText($element);
682
                    ?>
683
				</div>
684
				<div class="form-group">
685
    				<?php
686
                        $element = $form->get('last_name');
687
                        $element->setOptions(['label' => 'LABEL_LAST_NAME']);
688
                        $element->setAttributes(['class' => 'form-control']);
689
                        echo $this->formLabel($element);
690
                        echo $this->formText($element);
691
                    ?>
692
				</div>
693
      			<div class="form-group">
694
    				<?php
695
                        $element = $form->get('email');
696
                        $element->setOptions(['label' => 'LABEL_EMAIL']);
697
                        $element->setAttributes(['class' => 'form-control']);
698
                        echo $this->formLabel($element);
699
                        echo $this->formText($element);
700
                    ?>
701
				</div>
702
 
703
				<div class="form-group">
704
    				<?php
705
                    $element = $form->get('file');
706
 
707
                    $element->setAttributes(['class' => 'form-control',  'accept' => 'pdf/docx']);
708
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
709
                    echo $this->formLabel($element);
710
                    ?>
711
                    <div class="file-loading">
712
                    	<?php echo $this->formFile($element); ?>
713
                    </div>
714
				</div>
1619 eleazar 715
 
716
          		<div class="form-group">
717
    				<?php
718
                        $element = $form->get('status');
719
                        $element->setAttributes(['class' => 'form-control']);
720
                        $element->setOptions(['label' => 'LABEL_STATUS']);
721
                        echo $this->formLabel($element);
722
                        echo $this->formSelect($element);
723
                    ?>
724
				</div>
1616 eleazar 725
          	</div>
726
         	<div class="modal-footer">
727
    			<button type="submit" class="btn btn-primary">LABEL_SAVE</button>
728
    			<button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
729
          	</div>
730
      	<?php echo $this->form()->closeTag($form); ?>
731
    	</div>
732
	</div>
1485 eleazar 733
</div>