Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
15443 efrain 1
<?php
2
 
3
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
4
$currentUser    = $this->currentUserHelper();
5
$roleName       = $currentUser->getUserTypeId();
6
 
7
$routeDatatable = $this->url( 'activities-center/performance-evaluation');
8
 
9
 
10
$allowTakeaTest = $acl->isAllowed($roleName, 'activities-center/performance-evaluation/take-a-test') ? 1 : 0;
11
$allowReport =  $acl->isAllowed($roleName, 'activities-center/performance-evaluation/report') ? 1 : 0;
12
 
16822 efrain 13
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));
14
$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));
15443 efrain 15
 
16803 efrain 16
//$this->headLink()->appendStylesheet('https://fonts.googleapis.com/icon?family=Material+Icons');
15443 efrain 17
 
18
 
19
 
20
 
16842 efrain 21
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-maxlength/bootstrap-maxlength.min.js'));
15443 efrain 22
 
23
 
16822 efrain 24
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/jquery.validate.js'));
25
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/additional-methods.js'));
26
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/localization/messages_es.js'));
15443 efrain 27
 
16822 efrain 28
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
29
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));
15443 efrain 30
 
16822 efrain 31
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));
32
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));
33
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/dataTables.responsive.min.js'));
34
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.min.js'));
15443 efrain 35
 
36
 
16822 efrain 37
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/jquery.validate.js'));
38
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/additional-methods.js'));
39
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-validation/localization/messages_es.js'));
15443 efrain 40
 
16822 efrain 41
$this->inlineScript()->appendFile($this->basePath('assets/vendors/moment/moment-with-locales.min.js'));
42
//$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css'));
43
//$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js'));
15443 efrain 44
 
16822 efrain 45
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datepicker/js/bootstrap-datepicker.js'));
46
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-datepicker/js/bootstrap-datepicker.es.js'));
15443 efrain 47
 
48
 
16822 efrain 49
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-datepicker/css/bootstrap-datepicker.css'));
15443 efrain 50
 
16822 efrain 51
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2/css/select2.min.css'));
52
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/select2-bootstrap4-theme/select2-bootstrap4.min.css'));
53
$this->inlineScript()->appendFile($this->basePath('assets/vendors/select2/js/select2.min.js'));
54
 
15443 efrain 55
// JsRender //
16822 efrain 56
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jsrender/jsrender.min.js'));
15443 efrain 57
 
16822 efrain 58
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
59
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
15443 efrain 60
 
61
 
62
 
63
 
16803 efrain 64
 
16822 efrain 65
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-input-number/input-number-format.jquery.js'));
66
 
67
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-wizard/jquery.smartWizard.min.js'));
68
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/jquery-wizard/smart_wizard_all.min.css'));
69
 
16803 efrain 70
 
71
 
15443 efrain 72
$this->inlineScript()->captureStart();
73
echo <<<JS
74
 
75
 
76
jQuery( document ).ready(function( $ ) {
77
 
78
    var allowTakeaTest = $allowTakeaTest;
79
    var allowReport = $allowReport
80
 
81
    var competencies_selected = new Array();
82
    var subordinates_selected = new Array();
83
 
84
    var competency_types = new Array();
85
    var competencies = new Array();
86
    var behaviors = new Array();
87
 
88
 
89
    $.fn.renderJobDescription = function(data) {
90
 
91
        $('#div-job-description').html($('#job-description-template').render(data));
92
    }
93
 
94
 
95
    $.fn.renderCompetencies = function() {
96
 
97
        if(competencies_selected.length > 0) {
98
 
16803 efrain 99
             $('#accordion').html($('#competencyTemplate').render(competencies_selected, {
15443 efrain 100
                getCompetencyType: (uuid) => competency_types.filter((item) => item.uuid == uuid ? item : false)[0],
101
                getCompetency: (uuid) => competencies.filter((item) => item.uuid == uuid ? item : false)[0],
102
                getBehavior: (uuid) => behaviors.filter((item) => item.uuid == uuid ? item : false)[0]
103
            }));
104
        } else {
105
 
106
 
16803 efrain 107
             $('#accordion').empty();
15443 efrain 108
        }
16803 efrain 109
 
110
 
111
    	$('.collapse.show').each(function(){
112
    		$(this).siblings('.card-header').find('.btn i').attr('class', 'fa fa-minus');
113
    	});
114
 
115
    	$('.collapse').on('show.bs.collapse', function(){
116
        	$(this).parent().find('.card-header .btn i').attr('class', 'fa fa-minus');
117
    	}).on('hide.bs.collapse', function(){
118
    		$(this).parent().find('.card-header .btn i').attr('class', 'fa fa-plus');
119
    	});
120
 
15443 efrain 121
    }
122
 
123
 
124
 
125
    $.validator.setDefaults({
126
        debug: true,
127
        highlight: function(element) {
128
            $(element).addClass('is-invalid');
129
        },
130
        unhighlight: function(element) {
131
            $(element).removeClass('is-invalid');
132
        },
133
        errorElement: 'span',
134
        errorClass: 'error invalid-feedback',
135
        errorPlacement: function(error, element) {
136
            if(element.parent('.form-group').length) {
137
                error.insertAfter(element);
138
            } else if(element.parent('.toggle').length) {
139
                error.insertAfter(element.parent().parent());
140
            } else {
141
                error.insertAfter(element.parent());
142
            }
143
        }
144
    });
145
 
146
 
147
 
148
    $.fn.showFormErrorValidator = function(fieldname, errors) {
149
        var field = $(fieldname);
150
        if(field) {
151
            $(field).addClass('form-group-has-error');
152
 
153
            var error = $('<div id="' + fieldname +'-error" class="form-group-invalid-feedback">' + errors + '</div>');
154
            if(field.parent('.form-group').length) {
155
                error.insertAfter(field.parent());
156
            } else {
157
                error.insertAfter(field);
158
            }
159
        }
160
    };
161
 
162
 
163
 
164
        var gridTable = $('#gridTable').dataTable( {
165
            'processing': true,
166
            'serverSide': true,
167
            'searching': true,
168
            'search' : {
169
                'search' : '$search',
170
            },
171
 
172
            'order': [[ 1, 'asc' ]],
173
            'ordering':  true,
174
            'ordenable' : true,
175
            'responsive': true,
176
            'select' : false,
177
                'paging': true,
178
            'pagingType': 'simple_numbers',
179
            'lengthMenu': [ [10, 25, 50, -1], [10, 25, 50, 'All'] ],
180
 
181
                'ajax': {
182
                        'url' : '$routeDatatable',
183
                        'type' : 'get',
184
                'data': function ( d ) {
185
 
186
 
187
                },
188
                'beforeSend': function (request) {
189
                  NProgress.start();
190
                },
191
                'dataFilter': function(response) {
192
                    var response = jQuery.parseJSON( response );
193
 
194
                    var json                = {};
195
                    json.recordsTotal       = 0;
196
                    json.recordsFiltered    = 0;
197
                    json.data               = [];
198
 
199
                    if(response.success) {
200
                                               json.recordsTotal       = response.data.total;
201
                        json.recordsFiltered    = response.data.total;
202
                        json.data               = response.data.items;
203
                    } else {
204
                        $.fn.showError(response.data)
205
                    }
206
 
207
                    return JSON.stringify( json );
208
                }
209
                },
210
            'language' : {
211
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
212
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
213
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
214
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
215
                'sInfo':           'LABEL_DATATABLE_SINFO',
216
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
217
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
218
                'sInfoPostFix':    '',
219
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
220
                'sUrl':            '',
221
                'sInfoThousands':  ',',
222
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
223
                'oPaginate': {
224
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
225
                    'sLast':     'LABEL_DATATABLE_SLAST',
226
                    'sNext':     'LABEL_DATATABLE_SNEXT',
227
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
228
                },
229
                'oAria': {
230
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
231
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
232
                },
233
            },
234
            'drawCallback': function( settings ) {
235
                NProgress.done();
16822 efrain 236
 
15443 efrain 237
 
238
 
239
            },
240
            'aoColumns': [
241
                { 'mDataProp': 'last_date' },
242
                { 'mDataProp': 'form' },
243
                { 'mDataProp': 'supervisor_first_name' },
244
                { 'mDataProp': 'employee_last_name' },
245
                { 'mDataProp': 'status' },
246
 
247
            ],
248
            'columnDefs': [
249
                {
250
                    'targets': 0,
251
                    'render' : function ( data, type, row ) {
252
                        var s = row['last_date'] + '<br>' + row['type'];
253
 
254
                        return s;
255
 
256
 
257
                     }
258
                },
259
                {
260
                    'targets': 1,
261
                    'render' : function ( data, type, row ) {
262
                        var s = row['form'];
263
 
264
                        if (allowTakeaTest && row['actions']['link_take_a_test']) {
265
 
16906 efrain 266
                            s = s + '<br><button class="btn btn-default btn-take-the-test" data-href="' + row['actions']['link_take_a_test'] + '" data-toggle="tooltip" title="LABEL_PERFORMANCE_EVALUATION_TAKE_TEST"><i class="fa fa-pen"></i> LABEL_PERFORMANCE_EVALUATION_TAKE_TEST </button>&nbsp;';
15443 efrain 267
                        }
268
 
269
                        if (allowReport && row['actions']['link_pdf']) {
270
                            s = s + '<br><button class="btn btn-default btn-pdf" data-href="' + row['actions']['link_pdf'] + '" data-toggle="tooltip" title="LABEL_PDF"><i class="fa fa-pdf"></i> LABEL_PDF </button>&nbsp;';
271
                        }
272
 
273
                        return s;
274
 
275
 
276
                     }
277
                },
278
                {
279
                    'targets': 2,
280
                    'render' : function ( data, type, row ) {
281
                        var s = row['supervisor_first_name'] + ' ' + row['supervisor_last_name'];
282
 
283
                        return s;
284
 
285
 
286
                     }
287
                },
288
                {
289
                    'targets': 3,
290
                    'render' : function ( data, type, row ) {
291
                        var s = row['employee_first_name'] + ' ' + row['employee_last_name'];
292
 
293
                        return s;
294
 
295
 
296
                     }
297
                },
298
 
299
              ],
300
        });
301
 
302
 
303
 
304
    $('body').on('click', 'button.btn-save', function(e) {
305
        e.preventDefault();
306
 
307
        var ok = $('#comment').val().trim().length > 0
308
        $.each($('input.input-behavior-comment'), function(index, element) {
309
            ok = ok && $(element).val().trim().length > 0;
310
        });
311
 
312
        if(!ok) {
313
            $.fn.showError('ERROR_PERFORMANCE_SOMEONE_COMMENT_IS_EMPTY');
314
            return false;
315
        }
316
 
16822 efrain 317
          swal.fire({
318
            title: 'LABEL_ARE_YOU_SURE',
15443 efrain 319
            message: 'LABEL_PERFORMANCE_EVALUATION_TEST_IS_COMPLETED',
16822 efrain 320
            icon: 'question',
321
            cancelButtonText: 'LABEL_NO',
322
            showCancelButton: true,
323
            confirmButtonText: 'LABEL_YES'
324
          }).then((result) => {
325
            if (result.isConfirmed) {
326
 
327
 
15443 efrain 328
                    var data = new Array()
329
                    data['comment'] = $('#comment').val().trim();
330
                    data['points'] = $('#points').val();
331
                    $.each($('input.input-behavior-comment'), function(index, element) {
332
                        k = $(this).attr('name');
333
                        v = $(this).val().trim();
334
 
335
                        data[k] = v;
336
                    });
337
                    $.each($('input.input-behavior-level'), function(index, element) {
338
                        k = $(this).attr('name');
339
                        v = $(this).val();
340
 
341
                        data[k] = v;
342
                    });
343
 
344
 
345
 
346
                    var action = $('#form').attr('action');
347
                    $.ajax({
348
                        'dataType': 'json',
349
                        'accept': 'application/json',
350
                        'method': 'post',
351
                        'url': action,
352
                        'data' : $('#form').serialize()
353
                    }).done(function(response) {
354
                        if (response['success']) {
355
                            $('#row-test').hide();
356
                            $('#row-header').show();
357
                            $('#row-table').show();
358
 
359
                            gridTable.api().ajax.reload(null, false);
360
                        } else {
361
                            $.fn.showError(response['data']);
362
                        }
363
                    }).fail(function(jqXHR, textStatus, errorThrown) {
364
                        $.fn.showError(textStatus);
365
                    });
366
                }
16843 efrain 367
 
15443 efrain 368
        });
369
 
370
 
371
    });
372
 
373
    $('body').on('click', 'button.btn-refresh', function(e) {
374
        e.preventDefault();
375
        gridTable.api().ajax.reload(null, false);
376
    });
377
 
378
 
379
   $('body').on('click', 'button.btn-pdf', function(e) {
380
        e.preventDefault();
381
        var action   = $(this).data('href');
382
 
383
 
384
        NProgress.start();
385
        $.ajax({
386
            'dataType'  : 'json',
387
            'method'    : 'get',
388
            'url'       :  action,
389
        }).done(function(response) {
390
            if(response['success']) {
391
                var anchor = window.document.createElement("a");
392
                anchor.href = 'data:application/octet-stream;charset=utf-8;base64,' + response['data']['content'] ;
393
                anchor.download = response['data']['basename'];
394
                document.body.appendChild(anchor);
395
                anchor.click();  // IE: "Access is denied"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-access
396
                document.body.removeChild(anchor);
397
            } else {
398
                $.fn.showError(response['data']);
399
            }
400
        }).fail(function( jqXHR, textStatus, errorThrown) {
401
            $.fn.showError(textStatus);
402
        }).always(function() {
403
            NProgress.done();
404
        });
405
 
406
 
407
 
408
    });
409
 
410
    $('body').on('click', 'button.btn-cancel', function(e) {
411
        e.preventDefault();
412
 
413
        $('#row-test').hide();
414
        $('#row-header').show();
415
        $('#row-table').show();
416
 
417
    });
418
 
419
 
420
    $('body').on('click', 'button.btn-take-the-test', function(e) {
421
        e.preventDefault();
422
 
16817 efrain 423
         NProgress.done();
424
 
15443 efrain 425
        var action   = $(this).data('href');
16817 efrain 426
 
427
 
428
 
15443 efrain 429
        $.getJSON(action, function(response) {
430
            if(response['success']) {
431
 
432
                $('#form').attr('action', action);
433
 
434
                behaviors = response['data']['behaviors'];
435
                competency_types = response['data']['competency_types'];
436
                competencies = response['data']['competencies'];
437
                competencies_selected = response['data']['competencies_selected'];
438
                subordinates_selected = response['data']['subordinates_selected'];
439
 
440
                $.fn.renderCompetencies();
441
 
16803 efrain 442
                $('#form-title').html( response['data']['form'])
15443 efrain 443
 
16803 efrain 444
 
15443 efrain 445
                var data = {
446
                    name: response['data']['name'],
447
                    functions : response['data']['functions'],
448
                    objectives : response['data']['objectives'],
449
                    form : response['data']['form'],
450
                    type : response['data']['type'],
451
                    supervisor : response['data']['supervisor'],
452
                    employee : response['data']['employee'],
453
                    last_date : response['data']['last_date'],
454
                }
455
                $.fn.renderJobDescription(data);
456
 
457
 
458
 
459
                $('input.input-behavior-level').inputNumberFormat({decimal: 0});
460
                $('input.input-behavior-level').change(function(e) {
461
                    e.preventDefault();
462
 
463
                    var v = parseInt($(this).val());
464
                    if(isNaN(v)) {
465
                        $(this).val('0');
466
                    } else {
467
                        if(v > 100) {
468
                            $(this).val('100');
469
                        }
470
                    }
471
                });
472
 
473
 
15450 efrain 474
                $('#comment').val('');
475
                $('#points').val('');
16843 efrain 476
                $('#row-lists').hide();
15443 efrain 477
                $('#row-test').show();
478
 
16804 efrain 479
                $('#stepwizard').smartWizard('reset');
480
 
15443 efrain 481
 
482
            } else {
483
                $.fn.showError(response['data'])
484
            }
485
        }).fail(function( jqXHR, textStatus, errorThrown) {
486
                    $.fn.showError(textStatus);
487
                }).always(function() {
488
                    NProgress.done();
489
                });
490
 
491
 
492
    });
493
 
16822 efrain 494
    $('body').on('click', 'button.btn-delete', function(e) {
495
        e.preventDefault();
496
        var action = $(this).data('href');
15443 efrain 497
 
16822 efrain 498
 
499
          swal.fire({
500
            title: 'LABEL_ARE_YOU_SURE',
501
            icon: 'question',
502
            cancelButtonText: 'LABEL_NO',
503
            showCancelButton: true,
504
            confirmButtonText: 'LABEL_YES'
505
          }).then((result) => {
506
            if (result.isConfirmed) {
507
 
508
                    NProgress.start();
509
                    $.ajax({
510
                        'dataType'  : 'json',
511
                        'accept'    : 'application/json',
512
                        'method'    : 'post',
513
                        'url'       :  action,
514
                    }).done(function(response) {
515
                        if(response['success']) {
516
                            $.fn.showSuccess(response['data']);
517
                            gridTable.api().ajax.reload(null, false);
518
                        } else {
519
                            $.fn.showError(response['data']);
520
                        }
521
                    }).fail(function( jqXHR, textStatus, errorThrown) {
522
                        $.fn.showError(textStatus);
523
                    }).always(function() {
524
                        NProgress.done();
525
                    });
526
            }
527
       });
528
 
529
    });
530
 
531
 
15443 efrain 532
    $('#form #comment').maxlength({
533
        alwaysShow: true,
534
        validate: true
535
    });
536
 
537
 
538
 
539
    $('#points').inputNumberFormat({decimal: 0});
540
    $('#points').change(function(e) {
541
        e.preventDefault();
542
 
543
        var v = parseInt($(this).val());
544
        if(isNaN(v)) {
545
            $(this).val('0');
546
        } else {
547
            if(v > 100) {
548
                $(this).val('100');
549
            }
550
        }
551
    });
552
 
16803 efrain 553
 
554
    $('#stepwizard').smartWizard({
555
        selected: 0,
556
        // autoAdjustHeight: false,
557
        theme: 'arrows', // basic, arrows, square, round, dots
558
        transition: {
559
            animation:'none'
560
        },
561
        lang: {
562
            next: 'LABEL_NEXT',
563
            previous: 'LABEL_PREVIOUS',
564
        },
565
        toolbar: {
566
            showNextButton: true, // show/hide a Next button
567
            showPreviousButton: true, // show/hide a Previous button
568
            position: 'bottom', // none/ top/ both bottom
569
            extraHtml: `<button type="button" class="btn btn-primary btn-save">LABEL_SAVE</button>`
16822 efrain 570
                + `<button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>`
16803 efrain 571
        },
572
        anchor: {
573
            enableNavigation: true, // Enable/Disable anchor navigation
574
            enableNavigationAlways: false, // Activates all anchors clickable always
575
            enableDoneState: true, // Add done state on visited steps
576
            markPreviousStepsAsDone: true, // When a step selected by url hash, all previous steps are marked done
577
            unDoneOnBackNavigation: true, // While navigate back, done state will be cleared
578
            enableDoneStateNavigation: true // Enable/Disable the done state navigation
579
        },
580
    });
581
 
582
    $('#stepwizard').smartWizard('reset');
583
 
15443 efrain 584
 
585
});
586
JS;
587
$this->inlineScript()->captureEnd();
588
?>
16843 efrain 589
 <div class="container">
590
	<div class="card" id="row-lists">
591
		<div class="card-header">
592
			LABEL_PERFORMANCE_EVALUATIONS
593
		</div>
594
  		<div class="card-body">
595
         	<div class="row">
596
         		<div class="col-12 mt-3">
16845 efrain 597
         		   <table id="gridTable" class="table   table-bordered">
15443 efrain 598
                            <thead>
599
                                <tr>
600
                                    <th style="width:15%">LABEL_LAST_DATE</th>
601
                                    <th style="width:35%">LABEL_FORM_NAME</th>
602
                                    <th style="width:35%">LABEL_SUPERVISOR</th>
603
                                    <th style="width:35%">LABEL_EVALUATED</th>
604
                                    <th style="width:15%">LABEL_STATUS</th>
605
 
606
                                </tr>
607
                            </thead>
608
                            <tbody></tbody>
16843 efrain 609
           			</table>
610
         		</div>
611
         	</div>
612
 		</div>
613
 		<div class="card-footer text-right">
614
			<button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i> LABEL_REFRESH </button>
615
   		</div>
616
	</div>
617
 
15443 efrain 618
 
16843 efrain 619
		<?php
16803 efrain 620
                $form->setAttributes([
621
                    'method' => 'post',
622
                    'name' => 'form',
623
                    'id' => 'form',
624
                ]);
625
                $form->prepare();
626
                echo $this->form()->openTag($form);
16843 efrain 627
        ?>
628
 
629
			<div class="row" id="row-test" style="display: none;">
630
				<div class="col-12 mt-3">
16845 efrain 631
					<h6 class="text-center" id="form-title"></h6>
16843 efrain 632
    				<div id="stepwizard" class="border border-gray p-4 mt-2">
633
                		<ul class="nav">
634
                        	<li class="nav-item">
635
                            	<a class="nav-link" href="#step-1">
636
                                	<div class="num">1</div>
637
                                  	LABEL_GENERAL
638
                             	</a>
639
                        	</li>
640
                            <li class="nav-item">
641
                            	<a class="nav-link" href="#step-2">
642
                                	<div class="num">2</div>
643
                                   	LABEL_COMPETENCIES
644
                                </a>
645
                        	</li>
646
                            <li class="nav-item">
647
                            	<a class="nav-link" href="#step-3">
648
                                	<span class="num">3</span>
649
                                  	LABEL_CONCLUTION
650
                                </a>
651
                         	</li>
652
      					</ul>
653
                        <div class="tab-content">
654
        					<div id="step-1" class="tab-pane" role="tabpanel" aria-labelledby="step-1">
16845 efrain 655
                            	<div class="row padding-right-0 padding-left-0 ">
656
                                	<div class="col-12 mt-3 padding-right-0 padding-left-0">
16843 efrain 657
        								<h5 id="interview"></h5>
16803 efrain 658
                                      	<div id="div-job-description"></div>
16843 efrain 659
 
660
        							</div>
661
        						</div>
662
                			</div>
663
                		    <div id="step-2" class="tab-pane" role="tabpanel" aria-labelledby="step-2">
16845 efrain 664
                              	<div class="row padding-right-0 padding-left-0 ">
665
                                	<div class="col-12 mt-3 padding-right-0 padding-left-0">
16843 efrain 666
                             		 	<div class="accordion" id="accordion" style="height: 500px; overflow-y: auto;"></div>
667
                                	</div>
668
                              	</div>
669
        					</div>
670
    						<div id="step-3" class="tab-pane" role="tabpanel" aria-labelledby="step-3">
16845 efrain 671
    							<div class="row padding-right-0 padding-left-0 ">
672
                                	<div class="col-12 mt-3 padding-right-0 padding-left-0">
16843 efrain 673
                                    	<?php
674
                                        $element = $form->get('comment');
675
                                        $element->setOptions(['label' => 'LABEL_COMMENT']);
676
                                        $element->setAttributes(['class' => 'form-control']);
677
                                        echo $this->formLabel($element);
678
                                        echo $this->formTextArea($element);
679
                                        ?>
680
                             		</div>
681
                             	</div>
16845 efrain 682
                      			<div class="row padding-right-0 padding-left-0">
683
                                	<div class="col-12 mt-3 padding-right-0 padding-left-0">
16843 efrain 684
                                  		<?php
685
                                        $element = $form->get('points');
686
                                        $element->setAttributes(['class' => 'form-control']);
687
                                        $element->setOptions(['label' => 'LABEL_EVALUATION']);
688
                                        echo $this->formLabel($element);
689
                                        echo $this->formNumber($element);
690
                                        ?>
691
                           			</div>
692
                           		</div>
16803 efrain 693
    						</div>
694
    					</div>
16843 efrain 695
                	</div>
696
 
697
				</div>
698
			</div>
15443 efrain 699
 
16843 efrain 700
		<?php echo $this->form()->closeTag($form); ?>
16803 efrain 701
 
16843 efrain 702
 
703
 
16822 efrain 704
 
16843 efrain 705
 
706
</div>
707
 
708
 
709
 
710
 
711
 
712
 
15443 efrain 713
 
714
<script id="job-description-template" type="text/x-jsrender">
715
    <div class="card">
716
        <div class="card-body">
16803 efrain 717
 
15443 efrain 718
            <table class="table table-bordered">
719
                <tr>
720
                    <th>LABEL_LAST_DATE</th>
721
                    <th>LABEL_TYPE</th>
722
                </tr>
723
                <tr>
724
                    <td>{{:last_date}}</td>
725
                    <td>{{:type}}</td>
726
                </tr>
727
 
728
                <tr>
729
                    <th>LABEL_SUPERVISOR</th>
730
                    <th>LABEL_EMPLOYEE</th>
731
                </tr>
732
                <tr>
733
                    <td>{{:supervisor}}</td>
734
                    <td>{{:employee}}</td>
735
                </tr>
736
            </table>
737
            <br/>
738
 
739
            <p class="card-text"><b>LABEL_OBJECTIVES</b></p>
740
            <p class="card-text">{{:objectives}}</p>
741
            <p class="card-text"><b>LABEL_FUNCTIONS</b></p>
742
            <p class="card-text">{{:functions}}</p>
743
 
744
        </div>
745
    </div>
746
</script>
747
 
748
 
749
<script id="competencyTemplate" type="text/x-jsrender">
16843 efrain 750
  <div class="accordion-item">
751
    <h2 class="accordion-header" id="heading-{{:uuid}}">
752
      <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-{{:uuid}}" aria-expanded="true" aria-controls="collapseOne">
753
        {{:~getCompetencyType(competency_type_uuid).name}} - {{:~getCompetency(uuid).name}}
754
      </button>
755
    </h2>
756
    <div id="collapse-{{:uuid}}" class="accordion-collapse collapse " aria-labelledby="headingOne" data-bs-parent="#accordion">
757
      <div class="accordion-body">
758
 
16803 efrain 759
            <div class="table-responsive">
760
                <table class="table table-bordered">
761
                    <thead>
762
                        <tr>
763
                            <th style="width: 30%;">LABEL_ELEMENT</th>
764
                            <th style="width: 50%;">LABEL_TITLE</th>
765
                            <th style="width: 10%;">LABEL_LEVEL</th>
766
                            <th style="width: 10%;">LABEL_POINTS</th>
767
                         </tr>
768
                    </thead>
769
                    <tbody>
770
                        <tr>
771
                            <td class="text-left">LABEL_COMPETENCY</td>
16845 efrain 772
                            <td class="text-left " style="text-wrap: wrap;">{{:name}}</td>
16803 efrain 773
                            <td>&nbsp;</td>
774
                            <td>&nbsp;</td>
775
                        </tr>
776
                        {{for behaviors}}
777
                        <tr >
778
                            <td class="text-left">--LABEL_BEHAVIOR</td>
779
                                <td class="text-left">
780
                            {{:~getBehavior(uuid).description}}
781
                            </td>
782
                            <td class="text-right">
783
                                {{:level}}
784
                            </td>
785
                            <td class="text-right">
786
                                <input type="number" class="form-control input-behavior-level " value="0" step="1" min="0" max="100" name="{{:competency_uuid}}-{{:uuid}}-points" id="{{:competency_uuid}}-{{:uuid}}-points" ></input>
787
                            </td>
788
                        </tr>
789
                        <tr >
790
                            <td colspan="4">
791
                                LABEL_COMMENT
792
                                <input type="text" class="form-control input-behavior-comment" value="" maxlength="128" name="{{:competency_uuid}}-{{:uuid}}-comment" id="{{:competency_uuid}}-{{:uuid}}-comment" ></input>
793
                            </td>
794
                        </tr >
795
                        {{/for}}
796
                    </tbody>
797
                </table>
798
            </div>
16843 efrain 799
 
800
 
801
      </div>
16803 efrain 802
    </div>
16843 efrain 803
  </div>
15443 efrain 804
 
16843 efrain 805
 
806
 
807
 
15443 efrain 808
</script>
809
 
810