Proyectos de Subversion LeadersLinked - Backend

Rev

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

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