EIOS/rabprog/tpl/page_komp_models.html

312 lines
18 KiB
HTML
Raw Normal View History

2023-12-28 15:39:22 +03:00
{if $view=='edit'}
<h2>{$UPLAN.up.shifr} {$UPLAN.up.naprav} {$UPLAN.up.kvalif} {$UPLAN.up.god_nach_podgot} {$UPLAN.up.fo}</h2>
<table class="table">
<thead>
<tr>
<th class="col-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Позиция строки в таблице, нумеруйте сами для нужной сортировки">Поз.</th>
<th class="col-1">Код компетенции</th>
<th class="col-2">Наименование компетенции</th>
<th class="col-2">Код и наименование индикатора достижения компетенции</th>
<th class="">Знать</th>
<th class="">Уметь</th>
<th class="">Владеть</th>
<th class="col-1"></th>
</tr>
</thead>
<tbody id="table_body">
<tr id="tr_0">
<td><input class="form-control" id="pos_0" value="{$comp.pos}"></td>
<td><input class="form-control" id="kod_0" value="{$comp.comp_kod|escape}"></td>
<td><input class="form-control inputModal" id="name_0" value="{$comp.comp_name|escape}"></td>
<td><input class="form-control inputModal" id="name_ind_0" value="{$comp.comp_name_ind|escape}"></td>
<td><input class="form-control inputModal" id="krat_sod_znat_0" placeholder="Знать" value="{$comp.znat|escape}"></td>
<td><input class="form-control inputModal" id="krat_sod_umet_0" placeholder="Уметь" value="{$comp.umet|escape}"></td>
<td><input class="form-control inputModal" id="krat_sod_vladet_0" placeholder="Владеть" value="{$comp.vladet|escape}"></td>
<td>
<a href="#" class="btn btn-sm btn-success btnsaveTR" data-id="0" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Обновление строки"><i class="bi bi-save"></i></a>
<a href="#" class="btn btn-sm btn-danger btndelTR" data-id="0" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки"><i class="bi bi-trash"></i></a>
<input type="HIDDEN" id="idr_0" value="0">
</td>
</tr>
{if count($SAVES)}
{foreach from=$SAVES item=comp key=kod name=foo}
{assign var=it value=$smarty.foreach.foo.iteration}
<tr id="tr_{$comp.id}">
<td><input class="form-control" id="pos_{$comp.id}" value="{$comp.pos}"></td>
<td><input class="form-control" id="kod_{$comp.id}" value="{$comp.comp_kod|escape}"></td>
<td>
<input class="form-control inputModal" id="name_{$comp.id}" value="{$comp.comp_name|escape}"><br>
<div style="color:gray;font-size:10px;line-height: 8px!important;">{$comp.shifr|escape}</div>
</td>
<td>
<input class="form-control inputModal" id="name_ind_{$comp.id}" value="{$comp.comp_name_ind|escape}"><br>
<div style="color:gray;font-size:10px;line-height: 8px!important;">{$comp.naprav|escape}</div>
</td>
<td>
<input class="form-control inputModal" id="krat_sod_znat_{$comp.id}" placeholder="Знать" value="{$comp.comp_znat|escape}"><br>
<div style="color:gray;font-size:10px;line-height: 8px!important;">{$comp.profil|escape}</div>
</td>
<td><input class="form-control inputModal" id="krat_sod_umet_{$comp.id}" placeholder="Уметь" value="{$comp.comp_umet|escape}"></td>
<td><input class="form-control inputModal" id="krat_sod_vladet_{$comp.id}" placeholder="Владеть" value="{$comp.comp_vladet|escape}"></td>
<td>
<a href="#" class="btn btn-sm btn-success btnsaveTR" data-id="{$comp.id}" data-idcomp="{$comp.id_comp}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Обновление строки"><i class="bi bi-save"></i></a>
<a href="#" class="btn btn-sm btn-danger btndelTR" data-id="{$comp.id}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки"><i class="bi bi-trash"></i></a>
<input type="HIDDEN" id="idr_{$comp.id}" value="{$comp.id}">
{if $comp.id_comp==0}<br><span style="color: red;" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Эта строка лишняя, после обновления учебного плана осталась, ее надо удалить, нажать один раз.">УДАЛИТЬ</span>{/if}
{if isset($comp.needsave)&&$comp.needsave==1}<br><span style="color: green;" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Необходимо обновить информацию! Нажмите один раз!">СОХРАНИТЬ</span>{/if}
</td>
</tr>
{/foreach}
{/if}
</tbody>
</table>
{if count($UPLAN.comp)}
<p>{if !count($SAVES)}<a href="/rabprog/komp_models/addcomp_all_oldyear/{$ID_PLAN}/" class="btn btn-danger" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Попробуем найти такойже план из прошлого года и всю КОМП.МОДЕЛЬ перенести в ЭТОТ ПЛАН!">ВЗЯТЬ ДАННЫЕ ИЗ ПРОШЛОГО ГОДА!!!</a> {else}<span style="color:red;">в плане найдены записи, для того чтобы перенести с прошлого года записи, надо удалить текущие записи!</span>{/if}| <a href="/rabprog/komp_models/addcomp_all/{$ID_PLAN}/" class="btn btn-warning" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавить все компетенции и потом в ручную добавлять ЗНАТЬ,ВЛАДЕТЬ,УМЕТЬ">Добавить все строки ниже</a>, или можете добавлять по одной!</p>
<table class="table">
<thead>
<tr>
<th class="col-1">Код компетенции</th>
<th class="col-5">Название компетенции</th>
<th class="col-5">Название индикатора достижения компетенции</th>
<!--th class="">Краткое содержание и структура компетенции.</th-->
<th class="col-1"></th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4">строки ниже взяты из Учебного плана и не сохранены в модели, используйте <a href="#" class="btn btn-sm btn-warning" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавление строки"><i class="bi bi-plus-square"></i></a> для добавление записи в модель</td>
</tr>
{foreach from=$UPLAN.comp item=comp key=kod name=foo}
{*<pre>{print_r($comp)}</pre>*}
{assign var=it value=-$smarty.foreach.foo.iteration}
<tr id="tr_{$it}">
<td>
<input type="hidden" id="idcomp_{$it}" value="{$comp.id_comp}" type="hidden">
<input type="hidden" id="kod_{$it}" value="{$comp.kod|escape}" type="hidden">
<input type="text" class="form-control" id="index_{$it}" value="{$comp.index|escape}"></td>
<td><input type="text" class="form-control" id="name_{$it}" value="{$comp.name|escape}"></td>
<td><input type="text" class="form-control" id="descrip_{$it}" value="{$comp.descrip|escape}"></td>
<!--td><textarea class="form-control" id="krat_sod_{$it}" placeholder="иметь: знать: уметь: владеть:">{$comp.descrip|escape}</textarea></td-->
<td>
<a href="#" class="btn btn-sm btn-warning btnsaveTRUP" data-id="{$it}" data-idcomp="{$comp.id_comp}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавление строки"><i class="bi bi-plus-square"></i></a>
<input type="HIDDEN" id="idr_{$it}" value="0">
<br><span>Запись из УП!</span>
</td>
</tr>
{/foreach}
</tbody>
</table>
{else}
<p>Или в плане нет компетенций или вы уже указали все компетенции которые есть в плане!</p>
{/if}
<input type="HIDDEN" id="ID_PLAN" value="{$ID_PLAN}">
{*<pre>{print_r($UPLAN)}</pre>*}
{literal}
<style>
.inputModal{
border-bottom: 1px solid #0a53be;
}
</style>
<script>$(document).ready(function(){
window.ToastShow1("Если в РПД пустой пункт 7.2!",'Необходимо перепроверить компетентностную модель и строки с подписью "СОХРАНИТЬ" - нажать один раз на сохранить, с подписью "УДАЛИТЬ" проверить их и удалить, нажать один раз.',1,0,45000,false);
//Удаление строки
$(document).on("click", ".btndelTR", function(){
let id = $(this).data('id');
let ID_PLAN = $("#ID_PLAN").val();
let idr = $("#idr_"+id).val();
$.ajax({url: '/rabprog/komp_models/',cache:false,datatype:'json',method:'post',
data: 'ajdes=Dele_TR&ID_PLAN='+ID_PLAN+'&idr='+idr,
success:function(data){
window.ToastShow1("Удаление записи комп.модели",data.msg,data.err);
if(data.err!=1) $("#tr_"+id).remove();
}
});
return false;
});
//Сохранение строки
$(document).on("click", ".btnsaveTR", function(){
let id = $(this).data('id');
let idcomp = $(this).data('idcomp');
let ID_PLAN = $("#ID_PLAN").val();
let pos = id;
if (pos==-1) pos=0;
if($("#pos_"+id).length){
pos = $("#pos_"+id).val();
}
let kod = $("#kod_"+id).val();
let name = $("#name_"+id).val();
let name_ind = $("#name_ind_"+id).val();
let znat =''; if($("#krat_sod_znat_"+id).length) znat = $("#krat_sod_znat_"+id).val();
let umet =''; if($("#krat_sod_umet_"+id).length) umet = $("#krat_sod_umet_"+id).val();
let vladet =''; if($("#krat_sod_vladet_"+id).length) vladet = $("#krat_sod_vladet_"+id).val();
let idr = $("#idr_"+id).val();
$.ajax({url: '/rabprog/komp_models/',cache:false,datatype:'json',method:'post',
data: 'ajdes=Save_TR&ID_PLAN='+ID_PLAN+'&pos='+pos+'&kod='+kod+'&id_comp='+idcomp+'&name='+name+'&name_ind='+name_ind+'&znat='+znat+'&umet='+umet+'&vladet='+vladet+'&idr='+idr,
success:function(data){
window.ToastShow1("Сохранение записи комп.модели",data.msg,data.err);
if(data.err!=1) {
$("#idr_"+id).val(data.id);
//let tr = add_tr(data.id,pos,kod,name,name_ind,znat,umet,vladet);
//$("#table_body").append(tr);
//$("#tr_"+id).remove();
}
}
});
return false;
});
//Добавление строки из УП
$(document).on("click", ".btnsaveTRUP", function(){
let id = $(this).data('id');
let idcomp = $(this).data('idcomp');
let ID_PLAN = $("#ID_PLAN").val();
let pos = Math.abs(id);
if (pos==-1) pos=0;
if($("#pos_"+id).length){
pos = $("#pos_"+id).val();
}
let kod = $("#kod_"+id).val();
let index = $("#index_"+id).val();
let name = $("#name_"+id).val();
let descrip = index+' '+$("#descrip_"+id).val();
//let znat =''; if($("#krat_sod_znat_"+id).length) znat = '';
//let umet =''; if($("#krat_sod_umet_"+id).length) umet = '';
//let vladet =''; if($("#krat_sod_vladet_"+id).length) vladet = '';
let idr = $("#idr_"+id).val();
$.ajax({url: '/rabprog/komp_models/',cache:false,datatype:'json',method:'post',
data: 'ajdes=Save_TR&ID_PLAN='+ID_PLAN+'&pos='+pos+'&kod='+kod+'&id_comp='+idcomp+'&index='+index+'&name='+name+'&name_ind='+descrip+'&idr='+idr,
success:function(data){
window.ToastShow1("Сохранение записи комп.модели",data.msg,data.err);
if(data.err!=1) {
$("#idr_"+id).val(data.id);
let tr = add_tr(data.id,pos,idcomp,kod,name,descrip);
$("#table_body").append(tr);
$("#tr_"+id).remove();
}
}
});
return false;
});
function add_tr(id,pos,id_comp,kod,name,descrip,znat='',umet='',vladet=''){
let out = '<tr id="tr_'+id+'">\n' +
' <td><input class="form-control" id="pos_'+id+'" value="'+pos+'"></td>\n' +
' <td><input class="form-control" id="kod_'+id+'" value="'+kod+'"></td>\n' +
' <td><input class="form-control inputModal" id="name_'+id+'" value="'+name+'"></td>\n' +
' <td><input class="form-control inputModal" id="name_ind_'+id+'" value="'+descrip+'"></td>\n' +
' <td><input class="form-control inputModal" id="krat_sod_znat_'+id+'" value="'+znat+'"></td>\n' +
' <td><input class="form-control inputModal" id="krat_sod_umet_'+id+'" value="'+umet+'"></td>\n' +
' <td><input class="form-control inputModal" id="krat_sod_vladet_'+id+'" value="'+vladet+'"></td>\n' +
' <td>\n' +
' <a href="#" class="btn btn-sm btn-success btnsaveTR" data-id="'+id+'" data-idcomp="'+id_comp+'" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Обновление строки"><i class="bi bi-save"></i></a>\n' +
' <a href="#" class="btn btn-sm btn-danger btndelTR" data-id="'+id+'" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки"><i class="bi bi-trash"></i></a>\n' +
' <input type="HIDDEN" id="idr_'+id+'" value="'+id+'">\n' +
' </td>\n' +
' </tr>';
return out;
}
//Редактирование полей с большим текстом
var inputEl = null;
var inputModalEl = null;
$(document).on("click", ".inputModal",function(){
inputEl = $(this);
let val = $(this).val();
let options = { keyboard: false };
inputModalEl = new bootstrap.Modal(document.getElementById('InputModal'), options);
inputModalEl.toggle();
$("#inputval").val(val);
});
$("#inputmodal_save").click(function(){
inputEl.val($("#inputval").val());
inputModalEl.hide();
});
})</script>{/literal}
<div class="modal fade" id="InputModal" tabindex="-1" aria-labelledby="InputModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="InputModalLabel">Редактирование текста в поле ввода</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<textarea class="form-control" id="inputval" style="height:400px;"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button>
<button type="button" class="btn btn-primary" id="inputmodal_save">Сохранить</button>
</div>
</div>
</div>
</div>
{/if}
{if $view=='all'}
{if isset($msg)}<div class="alert {if $msg.err==0}alert-success{else}alert-danger{/if}" role="alert">{$msg.msg}</div>{/if}
{if count($UCHEBPLANS)}
<h3 class="text-center">Компетентностные модели</h3>
<h3 class="text-center">Список закрепленных за кафедрой дисциплин и практик</h3>
<h4><u>{$kaf.name}</u></h4>
<table class="table">
<thead>
<tr>
<th class="col-1">Шифр</th>
<th class="col-2">Направление</th>
<th class="col-1">Профиль</th>
<th class="col-1">Квалификация</th>
<th class="col-1">Год</th>
<th class="col-1">Срок</th>
<th class="col-1">ФО</th>
<th class="col-1"><input type="text" class="form-control filter" placeholder="фильтр" value=""></th>
</tr>
</thead>
<tbody id="fbody">
{foreach from=$UCHEBPLANS item=up}{if $up.fo=='Очная'}
<tr>
<td>{$up.shifr}</td>
<td>{$up.naprav}</td>
<td>{$up.profil}</td>
<td>{$up.kvalif}</td>
<td>{$up.god_nach_podgot}</td>
<td>{$up.srok_poluch_obr}</td>
<td>{$up.fo}</td>
<td>
<a href="/rabprog/shahtplans/one/{$up.id_file}/" class="btn btn-sm btn-success" data-bs-toggle="tooltip" data-bs-placement="top" title="Просмотр плана" target="_blank"><i class="bi bi-eye"></i></a>
<a href="/rabprog/komp_models/edit/{$up.id_file}/" class="btn btn-sm btn-warning" data-bs-toggle="tooltip" data-bs-placement="top" title="Создание компетентностной модели"><i class="bi bi-pencil-square"></i></a>
{*<a href="/rabprog/komp_models/compare/{$up.id_file}/" class="btn btn-sm btn-info" data-bs-toggle="tooltip" data-bs-placement="top" title="Сравнить все формы обучения учебных планов. Нажимать после того как заполнили все компетенции!!!"><i class="bi bi-ui-checks"></i></a>*}
</td>
</tr>
{/if}{/foreach}
</tbody>
</table>
{literal}
<script>$(document).ready(function(){
//фильтр таблицы
$(".filter").keyup(function () {
var data = this.value.split(" ");
var jo = $("#fbody").find("tr");
if (this.value == "") {
jo.show();
return;
}
jo.hide();
//Recusively filter the jquery object to get results.
jo.filter(function (i, v) {
var $t = $(this);
for (var d = 0; d < data.length; ++d) if ($t.is(":contains('" + data[d] + "')")) return true;
return false;
}).show();
}).focus(function () {
this.value = "";
$(this).css({"color": "black"});
$(this).unbind('focus');
}).css({"color": "#C0C0C0"});
//http://jsfiddle.net/ukW2C/3/ фильтр для всей таблицы
})</script>{/literal}
{else}
<p>нет планов</p>
{/if}
{/if}