Proyectos de Subversion LeadersLinked - Backend

Rev

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