Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
3896 stevensc 1
<?php
1 www 2
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
3
$currentUser    = $this->currentUserHelper();
4
 
5
$roleName = $currentUser->getUserTypeId();
6
 
7
 
8
$routeAdd       = $this->url('settings/competencies/add');
9
$routeDatatable = $this->url('settings/competencies');
28 efrain 10
$routeImport    = $this->url('settings/competencies/import');
1107 geraldo 11
 
28 efrain 12
$allowAdd       = $acl->isAllowed($roleName, 'settings/competencies/add') ? 1 : 0;
13
$allowEdit      = $acl->isAllowed($roleName, 'settings/competencies/edit') ? 1 : 0;
14
$allowDelete    = $acl->isAllowed($roleName, 'settings/competencies/delete') ? 1 : 0;
15
$allowImport    = $acl->isAllowed($roleName, 'settings/competencies/import') ? 1 : 0;
1 www 16
 
14989 efrain 17
$allowBehaviorAdd = $acl->isAllowed($roleName, 'settings/behaviors/add') ? 1 : 0;
18
$routeBehaviorAdd = $this->url('settings/behaviors/add');
1 www 19
 
20
 
14989 efrain 21
 
1 www 22
$this->headLink()->appendStylesheet($this->basePath('plugins/nprogress/nprogress.css'));
23
$this->inlineScript()->appendFile($this->basePath('plugins/nprogress/nprogress.js'));
24
 
25
$this->inlineScript()->appendFile($this->basePath('plugins/ckeditor/ckeditor.js'));
26
 
27
 
28
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/jquery.validate.js'));
29
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/additional-methods.js'));
30
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/localization/messages_es.js'));
31
 
32
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css'));
33
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-responsive/css/responsive.bootstrap4.min.css'));
34
 
35
$this->inlineScript()->appendFile($this->basePath('plugins/datatables/jquery.dataTables.min.js'));
36
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js'));
37
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/dataTables.responsive.min.js'));
38
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/responsive.bootstrap4.min.js'));
39
 
40
 
41
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
42
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
43
 
44
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-confirmation/dist/bootstrap-confirmation.js'));
45
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-checkbox/awesome-bootstrap-checkbox.css'));
46
 
47
$this->inlineScript()->appendFile($this->basePath('plugins/select2/js/select2.js'));
48
$this->inlineScript()->appendFile($this->basePath('plugins/select2/js/i18n/es.js'));
49
$this->headLink()->appendStylesheet($this->basePath('plugins/select2/css/select2.css'));
50
 
51
$this->headLink()->appendStylesheet($this->basePath('plugins/select2-bootstrap4-theme/select2-bootstrap4.css'));
52
 
874 geraldo 53
// JsRender //
54
$this->inlineScript()->appendFile($this->basePath('plugins/jsrender/jsrender.min.js'));
1 www 55
 
883 geraldo 56
// bootbox Alert //
57
$this->inlineScript()->appendFile($this->basePath('plugins/bootbox/bootbox.min.js'));
1 www 58
 
883 geraldo 59
 
1 www 60
$status_active = \LeadersLinked\Model\Competency::STATUS_ACTIVE;
61
 
62
$this->inlineScript()->captureStart();
63
echo <<<JS
877 geraldo 64
jQuery(document).ready(function($) {
14989 efrain 65
    var allowEdit = $allowEdit;
66
    var allowDelete = $allowDelete;
67
 
863 geraldo 68
    $.validator.setDefaults({
69
        debug: true,
70
        highlight: function(element) {
71
            $(element).addClass('is-invalid');
72
        },
73
        unhighlight: function(element) {
74
            $(element).removeClass('is-invalid');
75
        },
76
        errorElement: 'span',
77
        errorClass: 'error invalid-feedback',
14989 efrain 78
            errorPlacement: function(error, element) {
79
                if(element.parent('.form-group').length) {
80
                    error.insertAfter(element);
81
                } else if(element.parent('.toggle').length) {
82
                    error.insertAfter(element.parent().parent());
83
                } else {
84
                    error.insertAfter(element.parent());
85
                }
863 geraldo 86
            }
87
    });
14989 efrain 88
 
863 geraldo 89
    $.fn.showFormErrorValidator = function(fieldname, errors) {
90
        var field = $(fieldname);
91
        if (field) {
92
            $(field).addClass('is-invalid');
93
            var error = $('<span id="' + fieldname + '-error" class="error invalid-feedback">' + errors + '</div>');
14989 efrain 94
                if(field.parent('.form-group').length) {
95
                    error.insertAfter(field);
96
                } else  if(field.parent('.toggle').length) {
97
                    error.insertAfter(field.parent().parent());
98
                } else {
99
                    error.insertAfter(field.parent());
100
                }
863 geraldo 101
        }
102
    };
14989 efrain 103
 
863 geraldo 104
    var gridTable = $('#gridTable').dataTable({
105
        'processing': true,
106
        'serverSide': true,
107
        'searching': true,
108
        'order': [
109
            [0, 'asc']
110
        ],
111
        'ordering': true,
112
        'ordenable': true,
113
        'responsive': true,
114
        'select': false,
115
        'paging': true,
116
        'pagingType': 'simple_numbers',
117
        'ajax': {
118
            'url': '$routeDatatable',
119
            'type': 'get',
120
            'beforeSend': function(request) {
121
                NProgress.start();
1 www 122
            },
863 geraldo 123
            'dataFilter': function(response) {
124
                var response = jQuery.parseJSON(response);
125
                var json = {};
126
                json.recordsTotal = 0;
127
                json.recordsFiltered = 0;
128
                json.data = [];
129
                if (response.success) {
130
                    json.recordsTotal = response.data.total;
131
                    json.recordsFiltered = response.data.total;
132
                    json.data = response.data.items;
1 www 133
                } else {
863 geraldo 134
                    $.fn.showError(response.data)
1 www 135
                }
863 geraldo 136
                return JSON.stringify(json);
1 www 137
            }
863 geraldo 138
        },
139
        'language': {
140
            'sProcessing': 'LABEL_DATATABLE_SPROCESSING',
141
            'sLengthMenu': 'LABEL_DATATABLE_SLENGTHMENU',
142
            'sZeroRecords': 'LABEL_DATATABLE_SZERORECORDS',
143
            'sEmptyTable': 'LABEL_DATATABLE_SEMPTYTABLE',
144
            'sInfo': 'LABEL_DATATABLE_SINFO',
145
            'sInfoEmpty': 'LABEL_DATATABLE_SINFOEMPTY',
146
            'sInfoFiltered': 'LABEL_DATATABLE_SINFOFILTERED',
147
            'sInfoPostFix': '',
148
            'sSearch': 'LABEL_DATATABLE_SSEARCH',
149
            'sUrl': '',
150
            'sInfoThousands': ',',
151
            'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
152
            'oPaginate': {
153
                'sFirst': 'LABEL_DATATABLE_SFIRST',
154
                'sLast': 'LABEL_DATATABLE_SLAST',
155
                'sNext': 'LABEL_DATATABLE_SNEXT',
156
                'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
157
            },
158
            'oAria': {
159
                'sSortAscending': ': LABEL_DATATABLE_SSORTASCENDING',
160
                'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
161
            },
162
        },
4116 stevensc 163
        'drawCallback': function(settings) {
164
            NProgress.done();
165
            $('button.btn-delete').confirmation({
166
                rootSelector: 'button.btn-delete',
167
                title: 'LABEL_ARE_YOU_SURE',
168
                singleton: true,
169
                btnOkLabel: 'LABEL_YES',
170
                btnCancelLabel: 'LABEL_NO',
171
                onConfirm: function(value) {
172
                    action = $(this).data('href');
173
                    NProgress.start();
174
                    $.ajax({
175
                        'dataType': 'json',
176
                        'accept': 'application/json',
177
                        'method': 'post',
178
                        'url': action,
179
                    }).done(function(response) {
180
                        if (response['success']) {
181
                            $.fn.showSuccess(response['data']);
182
                            gridTable.api().ajax.reload(null, false);
183
                        } else {
184
                            $.fn.showError(response['data']);
185
                        }
186
                    }).fail(function(jqXHR, textStatus, errorThrown) {
187
                        $.fn.showError(textStatus);
188
                    }).always(function() {
189
                        NProgress.done();
190
                    });
191
                }
192
            });
193
        },
863 geraldo 194
        'aoColumns': [{
195
                'mDataProp': 'type'
196
            },
197
            {
198
                'mDataProp': 'name'
199
            },
200
            {
201
                'mDataProp': 'status'
202
            },
203
            {
204
                'mDataProp': 'actions'
205
            },
206
        ],
207
        'columnDefs': [{
208
                'targets': 0,
209
                'className': 'text-vertical-middle',
210
            },
211
            {
212
                'targets': 1,
213
                'className': 'text-vertical-middle',
214
            },
215
            {
216
                'targets': -2,
217
                'orderable': false,
218
                'className': 'text-center',
219
                'render': function(data, type, row) {
220
                    checked = data == 'a' ? ' checked="checked" ' : '';
221
                    return '<div class="checkbox checkbox-success">' +
222
                        '<input class="styled" type="checkbox" ' + checked + ' disabled="disabled">' +
223
                        '<label ></label></div>';
1 www 224
                }
225
            },
863 geraldo 226
            {
227
                'targets': -1,
228
                'orderable': false,
229
                'render': function(data, type, row) {
230
                    s = '';
231
                    if (allowEdit) {
232
                        s = s + '<button class="btn btn-primary btn-edit" data-href="' + data['link_edit'] + '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pencil"></i> LABEL_EDIT </button>&nbsp;';
1 www 233
                    }
863 geraldo 234
                    if (allowDelete) {
4132 stevensc 235
                        s = s + '<button class="btn btn-danger btn-delete" data-href="' + data['link_delete'] + '" data-toggle="delete-confirmation" data-popout="true" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button>&nbsp;';
1 www 236
                    }
863 geraldo 237
                    return s;
1 www 238
                }
863 geraldo 239
            }
240
        ],
241
    });
14989 efrain 242
 
863 geraldo 243
    var validator = $('#form').validate({
244
        debug: true,
245
        onclick: false,
246
        onkeyup: false,
247
        ignore: [],
248
        rules: {
249
            'competency_type_id': {
250
                required: true,
251
            },
252
            'name': {
253
                required: true,
254
                maxlength: 128,
255
            },
256
            'description': {
257
                updateCkeditor: function() {
258
                    CKEDITOR.instances.description.updateElement();
1 www 259
                },
863 geraldo 260
                required: true,
1 www 261
            },
863 geraldo 262
            'status': {
263
                required: false,
1 www 264
            },
14989 efrain 265
 
863 geraldo 266
        },
267
        submitHandler: function(form) {
14989 efrain 268
            if ($('input[type="hidden"].behavior_id').length == 0) {
269
                $.fn.showError('ERROR_NOT_OBSERVABLE_BEHAVIOR');
893 geraldo 270
            } else {
891 geraldo 271
                $.ajax({
893 geraldo 272
                    'dataType': 'json',
273
                    'accept': 'application/json',
274
                    'method': 'post',
275
                    'url': $('#form').attr('action'),
14989 efrain 276
                    'data': $('#form').serialize(),
893 geraldo 277
                }).done(function(response) {
278
                    NProgress.start();
279
                    if (response['success']) {
280
                        $.fn.showSuccess(response['data']);
281
                        $('#row-form').hide();
282
                        $('#row-list').show();
283
                        gridTable.api().ajax.reload(null, false);
863 geraldo 284
                    } else {
893 geraldo 285
                        validator.resetForm();
286
                        if (jQuery.type(response['data']) == 'string') {
287
                            $.fn.showError(response['data']);
288
                        } else {
289
                            $.each(response['data'], function(fieldname, errors) {
290
                                $.fn.showFormErrorValidator('#form #' + fieldname, errors);
291
                            });
292
                        }
863 geraldo 293
                    }
893 geraldo 294
                }).fail(function(jqXHR, textStatus, errorThrown) {
295
                    $.fn.showError(textStatus);
296
                }).always(function() {
297
                    NProgress.done();
298
                });
891 geraldo 299
            }
28 efrain 300
            return false;
863 geraldo 301
        },
302
        invalidHandler: function(form, validator) {}
303
    });
14989 efrain 304
 
863 geraldo 305
    $('body').on('click', 'button.btn-add', function(e) {
306
        e.preventDefault();
14989 efrain 307
        NProgress.start();
308
 
309
 
310
        $.ajax({
311
            'dataType': 'json',
312
            'method': 'get',
313
            'url': '$routeAdd',
314
        }).done(function(response) {
315
            if (response['success']) {
316
 
317
                $('#table-behaviors tbody').empty();
318
 
319
                $('#select-behavior').children().not(':first').remove();
320
                $.each(response['data']['behaviors'], function(index, element) {
321
                    $('#select-behavior').append($('<option>', {
322
                        value: element.id,
323
                        text: element.description
324
                    }));
325
                });
326
 
327
 
328
                $('span[id="form-title"]').html('LABEL_ADD');
329
                $('#form').attr('action', '$routeAdd');
330
                $('#form #name').val('');
331
                $('#form #competency_type_id').val('').trigger('change');
332
                $('#form #competency_type_id').val('').trigger('change');
333
                $('#form #status').bootstrapToggle('on');
334
                CKEDITOR.instances.description.setData('');
335
 
336
                validator.resetForm();
337
 
338
                $('#row-form').show();
339
                $('#row-list').hide();
340
            } else {
341
                $.fn.showError(response['data']);
342
            }
343
        }).fail(function(jqXHR, textStatus, errorThrown) {
344
            $.fn.showError(textStatus);
345
        }).always(function() {
346
            NProgress.done();
347
        });
348
 
349
 
350
 
351
 
863 geraldo 352
        return false;
353
    });
14989 efrain 354
 
863 geraldo 355
    $('body').on('click', 'button.btn-edit', function(e) {
356
        e.preventDefault();
4134 stevensc 357
        $("button.btn-delete").confirmation('hide');
863 geraldo 358
        NProgress.start();
359
        var action = $(this).data('href');
360
        $.ajax({
361
            'dataType': 'json',
362
            'method': 'get',
363
            'url': action,
364
        }).done(function(response) {
14289 kerby 365
            console.log(response)
863 geraldo 366
            if (response['success']) {
367
                $('span[id="form-title"]').html('LABEL_EDIT');
368
                $('#form').attr('action', action);
369
                $('#form #name').val(response['data']['name']);
370
                $('#form #competency_type_id').val(response['data']['competency_type_id']).trigger('change');
371
                $('#form #status').bootstrapToggle(response['data']['status'] == '$status_active' ? 'on' : 'off')
372
                CKEDITOR.instances.description.setData(response['data']['description']);
14989 efrain 373
 
374
 
375
                $('input[type="hidden"].behavior').remove();
376
                $('#select-behavior').children().not(':first').remove();
377
 
378
 
379
                $('#table-behaviors tbody').empty();
380
 
381
                $.each(response['data']['behaviors'], function(index, element) {
382
                    $('#select-behavior').append($('<option>', {
383
                        value: element.id,
384
                        text: element.description
385
                    }));
386
 
387
                    if(element.checked ) {
388
                        let data = {
389
                            id : element.id,
390
                            description : element.description,
391
                        };
392
 
393
                        $('#table-behaviors tbody').append(
394
                            $('#trBehaviorTemplate').render( data )
395
                        );
396
 
397
 
398
                    }
399
                 });
400
 
401
 
402
 
403
 
863 geraldo 404
                validator.resetForm();
866 geraldo 405
                $('#row-form').show();
873 geraldo 406
                $('#row-list').hide();
863 geraldo 407
            } else {
408
                $.fn.showError(response['data']);
409
            }
410
        }).fail(function(jqXHR, textStatus, errorThrown) {
411
            $.fn.showError(textStatus);
412
        }).always(function() {
413
            NProgress.done();
28 efrain 414
        });
863 geraldo 415
        return false;
416
    });
14989 efrain 417
 
863 geraldo 418
    $('body').on('click', 'button.btn-refresh', function(e) {
419
        e.preventDefault();
420
        gridTable.api().ajax.reload(null, false);
421
        return false;
422
    });
14989 efrain 423
 
863 geraldo 424
    $('body').on('click', 'button.btn-import', function(e) {
425
        e.preventDefault();
426
        NProgress.start();
427
        $.ajax({
428
            'dataType': 'json',
429
            'method': 'post',
430
            'url': '$routeImport',
431
        }).done(function(response) {
432
            if (response['success']) {
433
                $.fn.showSuccess(response['data']);
434
                gridTable.api().ajax.reload(null, false);
435
            } else {
436
                $.fn.showError(response['data']);
437
            }
438
        }).fail(function(jqXHR, textStatus, errorThrown) {
439
            $.fn.showError(textStatus);
440
        }).always(function() {
441
            NProgress.done();
1 www 442
        });
863 geraldo 443
        return false;
444
    });
14989 efrain 445
 
863 geraldo 446
    $('body').on('click', 'button.btn-cancel', function(e) {
447
        e.preventDefault();
14989 efrain 448
        $('#row-form').hide();
449
        $('#row-list').show();
863 geraldo 450
    });
14989 efrain 451
 
863 geraldo 452
    $('#form #competency_type_id').select2({
453
        theme: 'bootstrap4',
454
        width: '100%',
455
    });
1226 geraldo 456
 
14989 efrain 457
    $('#select-behavior').select2({
1226 geraldo 458
        theme: 'bootstrap4',
459
        width: '100%',
460
    });
461
 
863 geraldo 462
    $('#form #status').bootstrapToggle({
463
        'on': 'LABEL_ACTIVE',
464
        'off': 'LABEL_INACTIVE',
465
        'width': '160px',
466
        'height': '40px'
467
    });
3842 stevensc 468
    CKEDITOR.replace('description', {
469
        toolbar: [
470
            { name: 'editing', items: [ 'Scayt' ] },
471
            { name: 'links', items: [ 'Link', 'Unlink'] },
472
            { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote' ] },
473
            { name: 'basicstyles', items: [ 'Bold', 'Italic', 'Strike', 'RemoveFormat' ] },
474
            '/',
475
            { name: 'insert', items: [ 'Image', 'Table', 'HorizontalRule', 'SpecialChar' ] },
476
            { name: 'styles', items: [ 'Styles', 'Format' ] },
477
            { name: 'tools', items: [ 'Maximize' ] }
478
        ],
3926 stevensc 479
        removePlugins: 'elementspath,Anchor',
3842 stevensc 480
        heigth: 100
481
    });
14989 efrain 482
 
483
 
484
    $('body').on('click', 'button.btn-remove-behavior', function(e) {
862 geraldo 485
        e.preventDefault();
14989 efrain 486
 
487
        var key = '#tr_behavior_id_' + $(this).data('id');
488
        var element = $(key);
489
        if(element) {
490
            $(element).remove();
491
        }
492
 
493
        return false;
494
 
495
 
496
 
497
 
498
 
499
        /*
862 geraldo 500
        bootbox.confirm({
501
            title: "LABEL_DELETE LABEL_CONDUCT",
502
            message: "LABEL_QUESTION_DELETE",
503
            buttons: {
504
                cancel: {
505
                    label: '<i class="fa fa-times"></i> LABEL_CANCEL'
506
                },
507
                confirm: {
508
                    label: '<i class="fa fa-check"></i> LABEL_ACCEPT'
509
                }
510
            },
511
            callback: function(result) {
886 geraldo 512
                if (result) {
888 geraldo 513
                    removeBehavior(id);
886 geraldo 514
                }
862 geraldo 515
            }
14989 efrain 516
        });*/
862 geraldo 517
    });
14989 efrain 518
 
519
    $('#btn-select-behavior').click(function(e) {
520
        e.preventDefault();
521
 
522
        var id  = $('#select-behavior option:selected').val();
15036 stevensc 523
 
14989 efrain 524
        if(!id) {
525
            return false;
863 geraldo 526
        }
14989 efrain 527
 
528
        var description = $('#select-behavior option:selected').text();
529
        var key         = '#tr_behavior_id_' + id ;
530
 
531
        console.log("key = "  + key);
532
        var element     = $(key);
533
 
534
 
535
        console.log(element);
536
        if(element.length > 0) {
537
 
538
            $.fn.showError( 'ERROR_BEHAVIOR_WAS_PREVIOUSLY_ADDED');
539
            return false;
540
        }
541
 
542
        let data = {
543
            id : id,
544
            description : description,
545
        };
546
 
547
        $('#table-behaviors tbody').append(
548
            $('#trBehaviorTemplate').render( data )
549
        );
550
 
551
        return false;
552
 
553
 
554
 
862 geraldo 555
    });
14989 efrain 556
 
557
 
558
 
873 geraldo 559
    $('button.btn-edit-cancel').click(function(e) {
560
        e.preventDefault();
561
        $('#row-form').hide();
562
        $('#row-list').show();
563
    });
14989 efrain 564
 
565
 
566
 
567
 
863 geraldo 568
});
1115 geraldo 569
 
1 www 570
JS;
571
$this->inlineScript()->captureEnd();
572
?>
3896 stevensc 573
 
1 www 574
<!-- Content Header (Page header) -->
575
<section class="content-header">
3896 stevensc 576
    <div class="container-fluid">
577
        <div class="row mb-2">
578
            <div class="col-sm-12">
579
                <h1>LABEL_COMPETENCIES</h1>
580
            </div>
581
        </div>
582
    </div>
583
    <!-- /.container-fluid -->
1 www 584
</section>
873 geraldo 585
<section class="content" id="row-list">
3896 stevensc 586
    <div class="container-fluid">
587
        <div class="row">
588
            <div class="col-12">
589
                <div class="card">
590
                    <div class="card-body">
591
                        <table id="gridTable" class="table   table-hover">
592
                            <thead>
593
                                <tr>
594
                                    <th>LABEL_TYPE</th>
595
                                    <th>LABEL_NAME</th>
596
                                    <th>LABEL_ACTIVE</th>
597
                                    <th>LABEL_ACTIONS</th>
598
                                </tr>
599
                            </thead>
600
                            <tbody>
601
                            </tbody>
602
                        </table>
603
                    </div>
604
                    <div class="card-footer clearfix">
605
                        <div style="float:right;">
606
                            <button type="button" class="btn btn-info btn-refresh"><i class="fa fa-refresh"></i> LABEL_REFRESH </button>
607
                            <?php if ($allowImport) : ?>
608
                                <button type="button" class="btn btn-primary btn-import"><i class="fa fa-upload"></i> LABEL_IMPORT </button>
609
                            <?php endif; ?>
610
                            <?php if ($allowAdd) : ?>
611
                                <button type="button" class="btn btn-primary btn-add"><i class="fa fa-plus"></i> LABEL_ADD </button>
612
                            <?php endif; ?>
613
                        </div>
614
                    </div>
615
                </div>
890 geraldo 616
            </div>
3896 stevensc 617
        </div>
618
    </div>
890 geraldo 619
</section>
14989 efrain 620
 
865 geraldo 621
<!-- The Form creation -->
622
<section class="content" id="row-form" style="display: none">
3896 stevensc 623
    <div class="container-fluid">
624
        <div class="row">
625
            <div class="col-md-12 col-sm-12 col-12">
626
                <div class="panel">
627
                    <div class="panel-body">
1110 geraldo 628
                        <?php
3896 stevensc 629
                        $form = $this->form;
630
                        $form->setAttributes([
631
                            'method'    => 'post',
632
                            'name'      => 'form',
633
                            'id'        => 'form'
634
                        ]);
635
 
636
                        $form->prepare();
637
                        echo $this->form()->openTag($form);
638
                        ?>
1111 geraldo 639
                        <div class="row">
3896 stevensc 640
                            <div class="col-md-4 col-sm-12 col-12">
641
                                <div class="from-group">
642
                                    <?php
643
                                    $element = $form->get('competency_type_id');
644
                                    $element->setOptions(['label' => 'LABEL_TYPE']);
645
 
646
                                    echo $this->formLabel($element);
647
                                    echo $this->formSelect($element);
648
                                    ?>
649
                                </div>
650
                            </div>
651
                            <div class="col-md-4 col-sm-12 col-12">
652
                                <div class="from-group">
653
                                    <?php
654
                                    $element = $form->get('name');
655
                                    $element->setOptions(['label' => 'LABEL_NAME']);
656
                                    $element->setAttributes(['class' => 'form-control']);
657
 
658
                                    echo $this->formLabel($element);
659
                                    echo $this->formText($element);
660
                                    ?>
661
                                </div>
662
                            </div>
663
                            <div class="col-md-4 col-sm-12 col-12">
664
                                <div class="from-group">
665
                                    <label>LABEL_STATUS</label>
666
                                    <br />
667
                                    <?php
668
                                    $element = $form->get('status');
669
                                    $element->setOptions(['label' => 'LABEL_STATUS']);
670
                                    // echo $this->formLabel($element);
671
                                    echo $this->formCheckbox($element);
672
                                    ?>
673
                                </div>
674
                            </div>
675
                            <div class="col-md-12 col-sm-12 col-12">
676
                                <div class="form-group">
677
                                    <?php
678
                                    $element = $form->get('description');
679
                                    $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
680
                                    $element->setAttributes(['class' => 'form-control']);
681
 
682
                                    echo $this->formLabel($element);
683
                                    echo $this->formTextArea($element);
684
                                    ?>
685
                                </div>
686
                            </div>
14989 efrain 687
 
3896 stevensc 688
                            <div class="col-md-12 col-sm-12 col-12">
689
                                <div class="form-group">
690
                                    <div class="row">
14989 efrain 691
                                        <div class="col-md-8 col-sm-8 col-xs-12">
692
                                            <select name="select-behavior" id="select-behavior" >
15036 stevensc 693
                                           		<option value="">LABEL_SELECT</option>
3896 stevensc 694
                                            </select>
695
                                        </div>
696
                                        <div class="col-md-4 col-sm-4 col-xs-12">
14989 efrain 697
                                            <button type="button" class="btn btn-primary" id="btn-select-behavior" data-toggle="tooltip" title="LABEL_ADD LABEL_BEHAVIOR">LABEL_ADD LABEL_BEHAVIOR</button>
3896 stevensc 698
                                        </div>
699
                                    </div>
700
                                </div>
701
                            </div>
1111 geraldo 702
                        </div>
3896 stevensc 703
                        <div class="col-xs-12 col-md-12">
704
                            <br />
705
                            <div class="table-responsive">
14989 efrain 706
                                <table id="table-behaviors" class="table table-bordered">
3896 stevensc 707
                                    <thead>
708
                                        <tr>
709
                                            <th style="width: 60%;">LABEL_DESCRIPTION</th>
710
                                            <th style="width: 20%;">LABEL_ACTIONS</th>
711
                                        </tr>
712
                                    </thead>
14989 efrain 713
                                    <tbody >
714
                                    </tbody>
3896 stevensc 715
                                </table>
716
                            </div>
14989 efrain 717
                            <div class="col-xs-12 col-md-12 text-right">
718
 
3896 stevensc 719
                                    <button type="submit" form="form" class="btn btn-primary">LABEL_SAVE</button>
720
                                    <button type="button" class="btn btn-secondary btn-edit-cancel">LABEL_CANCEL</button>
14989 efrain 721
 
3896 stevensc 722
                            </div>
723
                        </div>
14989 efrain 724
                         <?php echo $this->form()->closeTag($form); ?>
3896 stevensc 725
                    </div>
726
                </div>
865 geraldo 727
            </div>
3896 stevensc 728
        </div>
865 geraldo 729
</section>
14989 efrain 730
 
731
<script id="trBehaviorTemplate" type="text/x-jsrender">
732
    <tr id="tr_behavior_id_{{:id}}">
733
 
734
       <td class="text-left">
735
         <input type="hidden" class="behavior_id" name="behavior_id[]" value="{{:id}}" />
736
         {{:description}}
737
       </td>
890 geraldo 738
       <td>
14989 efrain 739
           <button class="btn btn-default btn-remove-behavior" data-id="{{:id}}" data-toggle="tooltip"  data-original-title="LABEL_DELETE"><i class="fa fa-ban" aria-hidden="true"></i> LABEL_DELETE</button>
890 geraldo 740
       </td>
741
   </tr>
742
</script>