Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 1638 | Rev 1642 | 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
            });
1631 eleazar 371
 
1641 eleazar 372
            $('#check-email').on('click', function () {
1631 eleazar 373
                $.ajax("$routeEmail", {
374
                    accepts: 'application/json',
375
                    method: 'GET',
1638 eleazar 376
                    data: {
377
                        'email': $('#form-add #email').val(),
378
                    }
1631 eleazar 379
                });
380
            })
1630 eleazar 381
        },
1631 eleazar 382
        'aoColumns': [
383
            { 'mDataProp': 'first_name' },
384
            { 'mDataProp': 'last_name' },
385
            { 'mDataProp': 'email' },
386
            { 'mDataProp': 'actions' },
387
        ],
388
        'columnDefs': [
389
            {
390
                'targets': -1,
391
                'orderable': false,
392
                'render': function (data, type, row) {
393
                    s = '';
1630 eleazar 394
 
1631 eleazar 395
                    if (allowEdit && data['link_edit']) {
396
                        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;';
397
                    }
1481 eleazar 398
 
1631 eleazar 399
                    if (allowDelete && data['link_delete']) {
400
                        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;';
401
                    }
1614 eleazar 402
 
1631 eleazar 403
                    return s;
1481 eleazar 404
                }
1631 eleazar 405
            }
406
        ],
407
    });
1481 eleazar 408
 
1631 eleazar 409
    $('#form-filter #form_uuid').change(function (e) {
1481 eleazar 410
        e.preventDefault();
411
 
1503 eleazar 412
        var uuid = e.target.value;
413
 
1507 eleazar 414
        $('#form-add').attr('action', String("$routeAdd").replaceAll('UUID_PLACEHOLDER', uuid));
1503 eleazar 415
 
1599 eleazar 416
        gridTable.api().ajax.url("$routeDatatable" + "/" + uuid);
1481 eleazar 417
        gridTable.api().ajax.reload(null, false);
418
    })
419
 
420
 
1631 eleazar 421
    $('body').on('click', 'button.btn-refresh', function (e) {
1481 eleazar 422
        e.preventDefault();
423
        gridTable.api().ajax.reload(null, false);
424
    });
1507 eleazar 425
 
426
    $('#form-filter #form_uuid').change();
1481 eleazar 427
});
428
JS;
429
$this->inlineScript()->captureEnd();
430
?>
431
 
432
 
433
<!-- Content Header (Page header) -->
434
<section class="content-header">
1631 eleazar 435
    <div class="container-fluid">
436
        <div class="row mb-2">
437
            <div class="col-sm-12">
438
                <h1>LABEL_CANDIDATES</h1>
439
            </div>
440
        </div>
441
    </div><!-- /.container-fluid -->
1481 eleazar 442
</section>
443
 
444
<section class="content">
1631 eleazar 445
    <div class="container-fluid">
446
        <div class="row">
447
            <div class="col-12">
448
                <div class="card">
449
                    <div class="card-header">
450
                        <?php
1486 eleazar 451
                        // $form = $this->form;
1631 eleazar 452
                        $form->setAttributes([
453
                            'name' => 'form-filter',
454
                            'id' => 'form-filter',
1481 eleazar 455
                        ]);
1631 eleazar 456
 
1481 eleazar 457
                        $form->prepare();
458
                        echo $this->form()->openTag($form);
1631 eleazar 459
                        ?>
1481 eleazar 460
                        <div class="row">
461
                            <div class="col-md-6 col-sm-12">
462
                                <div class="form-group">
463
                                    <?php
464
                                    $element = $form->get('form_uuid');
1631 eleazar 465
 
1484 eleazar 466
                                    $element->setOptions(['label' => 'LABEL_VACANCIES']);
1631 eleazar 467
 
1481 eleazar 468
                                    $element->setAttributes(['class' => 'form-control']);
469
                                    echo $this->formLabel($element);
470
                                    echo $this->formSelect($element);
471
                                    ?>
1631 eleazar 472
                                </div>
1481 eleazar 473
                            </div>
474
 
475
                        </div>
1631 eleazar 476
                        <?php echo $this->form()->closeTag($form); ?>
477
                    </div>
478
                    <div class="card-body">
479
                        <table id="gridTable" class="table   table-hover">
480
                            <thead>
481
                            <tr>
482
                                <th>LABEL_FIRST_NAME</th>
483
                                <th>LABEL_LAST_NAME</th>
484
                                <th>LABEL_EMAIL</th>
485
                                <th>LABEL_ACTIONS</th>
486
                            </tr>
487
                            </thead>
488
                            <tbody>
489
                            </tbody>
490
                        </table>
491
                    </div>
492
                    <div class="card-footer clearfix">
493
                        <div style="float:right;">
494
                            <button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i>
495
                                LABEL_REFRESH
496
                            </button>
497
                            <?php if ($allowAdd) : ?>
498
                                <button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i>
499
                                    LABEL_ADD
500
                                </button>
501
                            <?php endif; ?>
502
                        </div>
503
                    </div>
504
                </div>
505
            </div>
506
        </div>
507
    </div>
508
</section>
1616 eleazar 509
 
510
<!-- The Add Modal -->
511
<div class="modal" tabindex="-1" role="dialog" id="add-candidate-box">
1631 eleazar 512
    <div class="modal-dialog" role="document">
513
        <?php
514
        //$form = $this->formA;
515
        $form->setAttributes([
516
            'method' => 'post',
517
            'name' => 'form-add',
518
            'action' => $routeAdd,
519
            'email' => $routeEmail,
520
            'id' => 'form-add'
521
        ]);
522
        $form->prepare();
523
        echo $this->form()->openTag($form);
524
 
525
        ?>
526
        <div class="modal-content">
527
            <div class="modal-header">
528
                <h3 class="modal-title">LABEL_NEW_CANDIDATE</h3>
529
            </div>
530
            <div class="modal-body">
531
                <div class="form-group">
532
                    <?php
533
                    $element = $form->get('first_name');
534
                    $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
535
                    $element->setAttributes(['class' => 'form-control']);
536
                    echo $this->formLabel($element);
537
                    echo $this->formText($element);
1485 eleazar 538
                    ?>
1631 eleazar 539
                </div>
540
                <div class="form-group">
541
                    <?php
542
                    $element = $form->get('last_name');
543
                    $element->setOptions(['label' => 'LABEL_LAST_NAME']);
544
                    $element->setAttributes(['class' => 'form-control']);
545
                    echo $this->formLabel($element);
546
                    echo $this->formText($element);
1485 eleazar 547
                    ?>
1631 eleazar 548
                </div>
549
                <div class="form-group">
550
                    <?php
551
                    $element = $form->get('email');
552
                    $element->setOptions(['label' => 'LABEL_EMAIL']);
553
                    $element->setAttributes(['class' => 'form-control']);
554
                    echo $this->formLabel($element);
555
                    echo $this->formText($element);
1485 eleazar 556
                    ?>
1631 eleazar 557
                </div>
558
 
559
                <div class="form-group">
560
                    <?php
1485 eleazar 561
                    $element = $form->get('file');
1631 eleazar 562
 
563
                    $element->setAttributes(['class' => 'form-control', 'accept' => 'pdf/docx']);
1485 eleazar 564
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
565
                    echo $this->formLabel($element);
566
                    ?>
567
                    <div class="file-loading">
1631 eleazar 568
                        <?php echo $this->formFile($element); ?>
1493 eleazar 569
                    </div>
1631 eleazar 570
                </div>
571
                <div class="form-group">
572
                    <?php
573
                    $element = $form->get('status');
574
                    $element->setAttributes(['class' => 'form-control']);
575
                    $element->setOptions(['label' => 'LABEL_STATUS']);
576
                    echo $this->formLabel($element);
577
                    echo $this->formSelect($element);
1619 eleazar 578
                    ?>
1631 eleazar 579
                </div>
580
            </div>
581
            <div class="modal-footer">
582
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
583
                <button id="check-email" type="button" class="btn btn-primary">LABEL_CHECK_EMAIL</button>
584
                <button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
585
            </div>
586
            <?php echo $this->form()->closeTag($form); ?>
587
        </div>
588
    </div>
1616 eleazar 589
</div>
590
 
591
<!-- The Edit Modal -->
592
<div class="modal" tabindex="-1" role="dialog" id="edit-candidate-box">
1631 eleazar 593
    <div class="modal-dialog" role="document">
594
        <?php
595
        $form->setAttributes([
596
            'method' => 'post',
597
            'name' => 'form-edit',
598
            'id' => 'form-edit'
599
        ]);
600
        $form->prepare();
601
        echo $this->form()->openTag($form);
602
 
603
        ?>
604
        <div class="modal-content">
605
            <div class="modal-header">
606
                <h3 class="modal-title">LABEL_CANDIDATE</h3>
607
            </div>
608
            <div class="modal-body">
609
                <div class="form-group">
610
                    <?php
611
                    $element = $form->get('first_name');
612
                    $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
613
                    $element->setAttributes(['class' => 'form-control']);
614
                    echo $this->formLabel($element);
615
                    echo $this->formText($element);
1616 eleazar 616
                    ?>
1631 eleazar 617
                </div>
618
                <div class="form-group">
619
                    <?php
620
                    $element = $form->get('last_name');
621
                    $element->setOptions(['label' => 'LABEL_LAST_NAME']);
622
                    $element->setAttributes(['class' => 'form-control']);
623
                    echo $this->formLabel($element);
624
                    echo $this->formText($element);
1616 eleazar 625
                    ?>
1631 eleazar 626
                </div>
627
                <div class="form-group">
628
                    <?php
629
                    $element = $form->get('email');
630
                    $element->setOptions(['label' => 'LABEL_EMAIL']);
631
                    $element->setAttributes(['class' => 'form-control']);
632
                    echo $this->formLabel($element);
633
                    echo $this->formText($element);
1616 eleazar 634
                    ?>
1631 eleazar 635
                </div>
636
 
637
                <div class="form-group">
638
                    <?php
1616 eleazar 639
                    $element = $form->get('file');
1631 eleazar 640
 
641
                    $element->setAttributes(['class' => 'form-control', 'accept' => 'pdf/docx']);
1616 eleazar 642
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
643
                    echo $this->formLabel($element);
644
                    ?>
645
                    <div class="file-loading">
1631 eleazar 646
                        <?php echo $this->formFile($element); ?>
1616 eleazar 647
                    </div>
1631 eleazar 648
                </div>
1619 eleazar 649
 
1631 eleazar 650
                <div class="form-group">
651
                    <?php
652
                    $element = $form->get('status');
653
                    $element->setAttributes(['class' => 'form-control']);
654
                    $element->setOptions(['label' => 'LABEL_STATUS']);
655
                    echo $this->formLabel($element);
656
                    echo $this->formSelect($element);
1619 eleazar 657
                    ?>
1631 eleazar 658
                </div>
659
            </div>
660
            <div class="modal-footer">
661
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
662
                <button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
663
            </div>
664
            <?php echo $this->form()->closeTag($form); ?>
665
        </div>
666
    </div>
1485 eleazar 667
</div>