Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 1642 | Rev 1645 | 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
            }
425
        });
1644 eleazar 426
    }).done(function (response) {
427
        if (response['success']) {
428
            $('#form-add')[0].reset();
429
            $('#form-add').attr('action', url);
430
            $('#form-add #first_name').val(response['data']['first_name']);
431
            $('#form-add #last_name').val(response['data']['last_name']);
432
        };
433
    });
1481 eleazar 434
});
435
JS;
436
$this->inlineScript()->captureEnd();
437
?>
438
 
439
 
440
<!-- Content Header (Page header) -->
441
<section class="content-header">
1631 eleazar 442
    <div class="container-fluid">
443
        <div class="row mb-2">
444
            <div class="col-sm-12">
445
                <h1>LABEL_CANDIDATES</h1>
446
            </div>
447
        </div>
448
    </div><!-- /.container-fluid -->
1481 eleazar 449
</section>
450
 
451
<section class="content">
1631 eleazar 452
    <div class="container-fluid">
453
        <div class="row">
454
            <div class="col-12">
455
                <div class="card">
456
                    <div class="card-header">
457
                        <?php
1486 eleazar 458
                        // $form = $this->form;
1631 eleazar 459
                        $form->setAttributes([
460
                            'name' => 'form-filter',
461
                            'id' => 'form-filter',
1481 eleazar 462
                        ]);
1631 eleazar 463
 
1481 eleazar 464
                        $form->prepare();
465
                        echo $this->form()->openTag($form);
1631 eleazar 466
                        ?>
1481 eleazar 467
                        <div class="row">
468
                            <div class="col-md-6 col-sm-12">
469
                                <div class="form-group">
470
                                    <?php
471
                                    $element = $form->get('form_uuid');
1631 eleazar 472
 
1484 eleazar 473
                                    $element->setOptions(['label' => 'LABEL_VACANCIES']);
1631 eleazar 474
 
1481 eleazar 475
                                    $element->setAttributes(['class' => 'form-control']);
476
                                    echo $this->formLabel($element);
477
                                    echo $this->formSelect($element);
478
                                    ?>
1631 eleazar 479
                                </div>
1481 eleazar 480
                            </div>
481
 
482
                        </div>
1631 eleazar 483
                        <?php echo $this->form()->closeTag($form); ?>
484
                    </div>
485
                    <div class="card-body">
486
                        <table id="gridTable" class="table   table-hover">
487
                            <thead>
488
                            <tr>
489
                                <th>LABEL_FIRST_NAME</th>
490
                                <th>LABEL_LAST_NAME</th>
491
                                <th>LABEL_EMAIL</th>
492
                                <th>LABEL_ACTIONS</th>
493
                            </tr>
494
                            </thead>
495
                            <tbody>
496
                            </tbody>
497
                        </table>
498
                    </div>
499
                    <div class="card-footer clearfix">
500
                        <div style="float:right;">
501
                            <button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i>
502
                                LABEL_REFRESH
503
                            </button>
504
                            <?php if ($allowAdd) : ?>
505
                                <button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i>
506
                                    LABEL_ADD
507
                                </button>
508
                            <?php endif; ?>
509
                        </div>
510
                    </div>
511
                </div>
512
            </div>
513
        </div>
514
    </div>
515
</section>
1616 eleazar 516
 
517
<!-- The Add Modal -->
518
<div class="modal" tabindex="-1" role="dialog" id="add-candidate-box">
1631 eleazar 519
    <div class="modal-dialog" role="document">
520
        <?php
521
        //$form = $this->formA;
522
        $form->setAttributes([
523
            'method' => 'post',
524
            'name' => 'form-add',
525
            'action' => $routeAdd,
526
            'email' => $routeEmail,
527
            'id' => 'form-add'
528
        ]);
529
        $form->prepare();
530
        echo $this->form()->openTag($form);
531
 
532
        ?>
533
        <div class="modal-content">
534
            <div class="modal-header">
535
                <h3 class="modal-title">LABEL_NEW_CANDIDATE</h3>
536
            </div>
537
            <div class="modal-body">
538
                <div class="form-group">
539
                    <?php
540
                    $element = $form->get('first_name');
541
                    $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
542
                    $element->setAttributes(['class' => 'form-control']);
543
                    echo $this->formLabel($element);
544
                    echo $this->formText($element);
1485 eleazar 545
                    ?>
1631 eleazar 546
                </div>
547
                <div class="form-group">
548
                    <?php
549
                    $element = $form->get('last_name');
550
                    $element->setOptions(['label' => 'LABEL_LAST_NAME']);
551
                    $element->setAttributes(['class' => 'form-control']);
552
                    echo $this->formLabel($element);
553
                    echo $this->formText($element);
1485 eleazar 554
                    ?>
1631 eleazar 555
                </div>
556
                <div class="form-group">
557
                    <?php
558
                    $element = $form->get('email');
559
                    $element->setOptions(['label' => 'LABEL_EMAIL']);
560
                    $element->setAttributes(['class' => 'form-control']);
561
                    echo $this->formLabel($element);
562
                    echo $this->formText($element);
1485 eleazar 563
                    ?>
1631 eleazar 564
                </div>
565
 
566
                <div class="form-group">
567
                    <?php
1485 eleazar 568
                    $element = $form->get('file');
1631 eleazar 569
 
570
                    $element->setAttributes(['class' => 'form-control', 'accept' => 'pdf/docx']);
1485 eleazar 571
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
572
                    echo $this->formLabel($element);
573
                    ?>
574
                    <div class="file-loading">
1631 eleazar 575
                        <?php echo $this->formFile($element); ?>
1493 eleazar 576
                    </div>
1631 eleazar 577
                </div>
578
                <div class="form-group">
579
                    <?php
580
                    $element = $form->get('status');
581
                    $element->setAttributes(['class' => 'form-control']);
582
                    $element->setOptions(['label' => 'LABEL_STATUS']);
583
                    echo $this->formLabel($element);
584
                    echo $this->formSelect($element);
1619 eleazar 585
                    ?>
1631 eleazar 586
                </div>
587
            </div>
588
            <div class="modal-footer">
589
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
590
                <button id="check-email" type="button" class="btn btn-primary">LABEL_CHECK_EMAIL</button>
591
                <button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
592
            </div>
593
            <?php echo $this->form()->closeTag($form); ?>
594
        </div>
595
    </div>
1616 eleazar 596
</div>
597
 
598
<!-- The Edit Modal -->
599
<div class="modal" tabindex="-1" role="dialog" id="edit-candidate-box">
1631 eleazar 600
    <div class="modal-dialog" role="document">
601
        <?php
602
        $form->setAttributes([
603
            'method' => 'post',
604
            'name' => 'form-edit',
605
            'id' => 'form-edit'
606
        ]);
607
        $form->prepare();
608
        echo $this->form()->openTag($form);
609
 
610
        ?>
611
        <div class="modal-content">
612
            <div class="modal-header">
613
                <h3 class="modal-title">LABEL_CANDIDATE</h3>
614
            </div>
615
            <div class="modal-body">
616
                <div class="form-group">
617
                    <?php
618
                    $element = $form->get('first_name');
619
                    $element->setOptions(['label' => 'LABEL_FIRST_NAME']);
620
                    $element->setAttributes(['class' => 'form-control']);
621
                    echo $this->formLabel($element);
622
                    echo $this->formText($element);
1616 eleazar 623
                    ?>
1631 eleazar 624
                </div>
625
                <div class="form-group">
626
                    <?php
627
                    $element = $form->get('last_name');
628
                    $element->setOptions(['label' => 'LABEL_LAST_NAME']);
629
                    $element->setAttributes(['class' => 'form-control']);
630
                    echo $this->formLabel($element);
631
                    echo $this->formText($element);
1616 eleazar 632
                    ?>
1631 eleazar 633
                </div>
634
                <div class="form-group">
635
                    <?php
636
                    $element = $form->get('email');
637
                    $element->setOptions(['label' => 'LABEL_EMAIL']);
638
                    $element->setAttributes(['class' => 'form-control']);
639
                    echo $this->formLabel($element);
640
                    echo $this->formText($element);
1616 eleazar 641
                    ?>
1631 eleazar 642
                </div>
643
 
644
                <div class="form-group">
645
                    <?php
1616 eleazar 646
                    $element = $form->get('file');
1631 eleazar 647
 
648
                    $element->setAttributes(['class' => 'form-control', 'accept' => 'pdf/docx']);
1616 eleazar 649
                    $element->setOptions(['label' => 'LABEL_CURRICULUM']);
650
                    echo $this->formLabel($element);
651
                    ?>
652
                    <div class="file-loading">
1631 eleazar 653
                        <?php echo $this->formFile($element); ?>
1616 eleazar 654
                    </div>
1631 eleazar 655
                </div>
1619 eleazar 656
 
1631 eleazar 657
                <div class="form-group">
658
                    <?php
659
                    $element = $form->get('status');
660
                    $element->setAttributes(['class' => 'form-control']);
661
                    $element->setOptions(['label' => 'LABEL_STATUS']);
662
                    echo $this->formLabel($element);
663
                    echo $this->formSelect($element);
1619 eleazar 664
                    ?>
1631 eleazar 665
                </div>
666
            </div>
667
            <div class="modal-footer">
668
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
669
                <button type="button" class="btn btn-default btn-add-cancel">LABEL_CANCEL</button>
670
            </div>
671
            <?php echo $this->form()->closeTag($form); ?>
672
        </div>
673
    </div>
1485 eleazar 674
</div>