312 lines
18 KiB
HTML
312 lines
18 KiB
HTML
|
{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}
|