Proyectos de Subversion LeadersLinked - Backend

Rev

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