Proyectos de Subversion LeadersLinked - Backend

Rev

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

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