EIOS/rabprog/tpl/page_disciplins.html

219 lines
12 KiB
HTML
Raw Permalink Normal View History

2023-12-28 15:39:22 +03:00
{function sel_prepod}
<select class="form-select {$class}" name="prepod_id[{$did}]" id="prepod_id_{$did}" data-did="{$did}" data-selprepid="{$pid}" data-k1k2="{$k1}_{$k2}" data-bs-toggle="tooltip" data-bs-placement="bottom"
{if $class=="prepod_selall"} title="Используйте для ГРУППОВОГО назначения преподавателя на ОТОБРАЖАЕМЫЕ внизу дисциплины!"
{else} title="Назначить преподавателя на дисциплину"{/if}
>
<option value="0">Нет преподавателя</option>
<option value="-1">Преподаватель не на кафедре</option>
{foreach from=$PREPODS item=prep}
<option value="{$prep.id}"{if $prep.id==$pid} SELECTED{/if}>{$prep.fio}{if $prep.status<0} УДАЛЕН{/if}</option>
{/foreach}
</select>
<div id="prepod_id_{$did}_seldop_{$k1}_{$k2}"></div>
{/function}
{if count($DISCIPS)}
{*<pre>{print_r($prepods_all_all)}</pre>*}
<div class="prepods_all_div" style="display: none;">
<select class="form-select prepod_sel_all" name="prepod_id_all[%did%]" id="prepod_id_all_%did%" data-did="%did%" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Назначить преподавателя не из своей кафедры на дисциплину">
<option value="0" >Выберите преподавателя</option>
{foreach from=$prepods_all_all item=prep}
{if $prep.fio!=''}<option value="{$prep.id}"{if $prep.id==$pid} SELECTED{/if}>{$prep.fio}</option>{/if}
{/foreach}
</select>
</div>
<h3 class="text-center">Перечень дисциплин и практик, закрепленных за кафедрой {$kaf.name} (код {$kaf.kod}) в соответствии с учебными планами образовательных программ</h3>
<table class="table">
<thead>
<tr>
<th class="col-1">индекс дисциплины/практики</th>
<th class="col-2">название дисциплины/практики</th>
<th class="col-1">форма обучения</th>
<th class="col-2">
Преподаватель, ответственный за разработку рабочей программы
{*sel_prepod PREPODS=$PREPODS did=$disc.id pid=$disc.prepod_id class="prepod_selall"*}
</th>
<th class="col-1"><input type="text" class="form-control filter" placeholder="фильтр" value=""></th>
</tr>
</thead>
<tbody id="fbody">
{foreach from=$DISCIPS item=discOOP key=nameOOP name=foreach1}
<tr class="tr_header" data-id="{$smarty.foreach.foreach1.iteration}">
<td colspan="5"><strong>{$nameOOP}</strong></td>
</tr>
{foreach from=$discOOP item=disc name=foreach2}
<tr class="trtd trtd_{$smarty.foreach.foreach1.iteration}">
<td class="filter_index1">{$disc.index1}</td>
<td class="filter_name">
<span data-bs-toggle="tooltip" data-bs-placement="top" title="ООП: {$disc.shifr} {$disc.naprav} {$disc.god_nach_podgot} {$disc.kvalif} {$disc.srok_poluch_obr}" style="font-weight:bold;">{$disc.name}</span>
{if isset($disc.prepod_other)&&count($disc.prepod_other)}<br>
{*
$disc.prepod_other.id_uchebplans=36965
$disc.prepod_other.prepod_id=2378
$disc.prepod_other.up_oth=Array([id]=18348 [id_file]=127 [index1]=Б1.О.34 [name]=Физическая культура и спорт)
$disc.prepod_other.up_oth_user=Array([rsid]=1266 [id_prepod]=1266 [fio]=Галюнко Татьяна Эйгеновна )
$disc.prepod_other.up_file_oth=Array([id]=127 [id_file]=127 [god_nach_podgot]=2022 )
*}
{*print_r($disc.prepod_other)*}
{if isset($disc.prepod_other.up_oth_user)&&isset($disc.prepod_other.up_oth_user.fio)}
<span class="badge bg-light text-dark" data-bs-toggle="tooltip" data-bs-placement="top" title="Информация кто разрабатывал дисциплину в других годах">{$disc.prepod_other.up_file_oth.god_nach_podgot}: {$disc.prepod_other.up_oth_user.fio}</span>
{if $disc.prepod_id != $disc.prepod_other.up_oth_user.id_prepod}<a href="#" class="btn btn-sm btn-warning copy_rpd" data-saveiddiscip="{$disc.prepod_other.up_oth_user.rsid}" data-newdiscip="{$disc.prepod_other.id_uchebplans}" data-prepodid="{$disc.prepod_other.prepod_id}" style="padding: 0px 4px;" data-bs-toggle="tooltip" data-bs-placement="top" title="Скопировать РПД от другого преподавателя, назначенному">копировать</a>{/if}
{/if}
{/if}
{if isset($disc.prepod_other.err)}<span class="" data-bs-toggle="tooltip" data-bs-placement="top" title="Не смогли определить дисциплину в прошлом году, подробнее см. в тексте!">{$disc.prepod_other.err}</span>{/if}
</td>
<td class="filter_fo">{$disc.fo}</td>
<td class="filter_prepod">
{if $disc.prepod_status==0}
<span>на согласовании в УМУ от {date('d.m.Y',$disc.prepod_data_c)}</span>
{else}
{sel_prepod PREPODS=$PREPODS did=$disc.id pid=$disc.prepod_id class="prepod_sel" k1=$smarty.foreach.foreach1.iteration k2=$smarty.foreach.foreach2.iteration}
{if $disc.prepod_id!=0}
<input type="TEXT" class="form-control" id="prepodDescr_{$disc.id}_{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" value="" placeholder="Причина смены">
{/if}
{/if}
{*<pre style="display: none;">{print_r($disc)}</pre>*}
</td>
<td>
<a href="#" class="btn btn-sm btn-warning save_prepod" id="btnSavePrepod_{$disc.id}_{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" data-id="{$disc.id}" data-k1k2="{$smarty.foreach.foreach1.iteration}_{$smarty.foreach.foreach2.iteration}" data-bs-toggle="tooltip" data-bs-placement="top" title="Сохранить преподавателя" style="display: none;"><i class="bi bi-save"></i></a>
<a href="/rabprog/shahtplans/one/{$disc.id_file}/" class="btn btn-sm btn-success" data-bs-toggle="tooltip" data-bs-placement="top" title="Просмотр плана"><i class="bi bi-eye"></i></a>
{if isset($disc.prepod_descrip)}{$disc.prepod_descrip}{/if}
</td>
</tr>
{/foreach}
{/foreach}
</tbody>
</table>
{literal}
<style>
.tr_header{cursor: pointer;}
.tr_header:hover{ background-color: #9eeaf9;}
.trtd{display: none;}
</style>
<script>$(document).ready(function(){
//копируем РПД стаурю на нового
$(".copy_rpd").click(function(){
let saveiddiscip = $(this).data('saveiddiscip');
let newdiscip = $(this).data('newdiscip');
let prepodid = $(this).data('prepodid');
$.ajax({
url: '/rabprog/disciplins/', cache: false, datatype: 'json', method: 'post',
data: 'ajdes=CopyRPD&saveiddiscip=' + saveiddiscip + '&newdiscip=' + newdiscip + '&prepodid=' + prepodid,
success: function (data) {
window.ToastShow1("Копирование дисциплины от другого преподавателя", data.msg, data.err);
}
});
return false;
});
//сворачиваем разворачиваем ООП
$(".tr_header").click(function(){
let id=$(this).data("id");
$(".trtd_"+id).toggle();
});
//Сохраняем преподавателя
$(".save_prepod").click(function(){
$(this).hide();
let smena = '';
let doaj = true;
let id_disc = $(this).data("id");
let id_prep_dop = $("#prepod_id_all_"+id_disc+" option:selected").val();
let id_prepod = 0;
let k1k2 = $(this).data("k1k2");
if(typeof id_prep_dop !== 'undefined') {
id_prepod = id_prep_dop;
}else {
id_prepod = $("#prepod_id_" + id_disc + " option:selected").val();
}
let th = $(this);
if ($("#prepodDescr_"+id_disc+"_"+k1k2).length) {
smena = $("#prepodDescr_"+id_disc+"_"+k1k2).val();
if (smena.length<=3){
window.ToastShow1("Укажите причину смены!","Причина смены не может быть пустой",1);
doaj = false;
}
}
if(doaj==true) {
$.ajax({
url: '/rabprog/disciplins/', cache: false, datatype: 'json', method: 'post',
data: 'ajdes=SavePrepod&id_disc=' + id_disc + '&id_prepod=' + id_prepod + '&smena=' + smena,
success: function (data) {
th.hide();
window.ToastShow1("Сохранение преподавателя", data.msg, data.err);
}
});
}
return false;
});
$(".prepod_sel").change(function(){
let did = $(this).data("did");
let k1k2 = $(this).data("k1k2");
//let sel = $("#prepod_id_"+did+" option:selected").val();
let sel = $("option:selected", this).val();
if(sel==-1){
let sel = $(".prepods_all_div").html();
sel = sel.replace(/%did%/g, did);
$("#prepod_id_"+did+"_seldop_"+k1k2).html(sel);
}else {
$("#btnSavePrepod_" + did+"_"+k1k2).show();
}
});
$(document).on("change", ".prepod_sel_all", function(){
let did = $(this).data("did");
$("#btnSavePrepod_" + did).show();
});
$(".prepod_sel").each(function(i,e){
selprepid = $(this).data('selprepid');
did = $(this).data('did');
selected_option = $('#prepod_id_'+did+' option:selected').val();
fio = $('.prepod_sel_all option[value='+selprepid+']').text();
if(selprepid!=selected_option){
$('#prepod_id_'+did+' option[value=0]').text(fio);
//console.log('#prepod_id_'+did+' option[value='+selprepid+']');
}
//console.log(selprepid+"="+selected_option);
})
//назначаем всем, видимым дисциплинам, преподов
$(".prepod_selall").change(function(){
let id = $(".prepod_selall :selected").val();
let fio = $(".prepod_selall :selected").text();
let did = 0;
$(".prepod_sel").each(function( index ) {
if ($(this).is(":visible")){
$("option[value="+id+"]",this).attr('selected','selected');
did = $(this).data("did");
$("#btnSavePrepod_"+did).show();
}
});
//$(".prepod_sel option[value="+id+"]").attr('selected','selected');
});
//фильтр таблицы
$(".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}
<h2>Нет загруженных планов, для кафедры {$kaf.name}</h2>
{/if}
{*<pre>{print_r($DISCIPS)}</pre>*}