Proyectos de Subversion LeadersLinked - Backend

Rev

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