324 lines
16 KiB
HTML
324 lines
16 KiB
HTML
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link active" id="pills-t1-tab" data-bs-toggle="pill" data-bs-target="#pills-t1" type="button" role="tab" aria-controls="pills-t1" aria-selected="true">Титул</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t2-tab" data-bs-toggle="pill" data-bs-target="#pills-t2" type="button" role="tab" aria-controls="pills-t2" aria-selected="false">Разделы 1-4</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t3-tab" data-bs-toggle="pill" data-bs-target="#pills-t3" type="button" role="tab" aria-controls="pills-t3" aria-selected="false">Раздел 5.1-5.3</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t4-tab" data-bs-toggle="pill" data-bs-target="#pills-t4" type="button" role="tab" aria-controls="pills-t4" aria-selected="false">Раздел 5.4-5.9</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t6-tab" data-bs-toggle="pill" data-bs-target="#pills-t6" type="button" role="tab" aria-controls="pills-t6" aria-selected="false">Раздел 6.1-6.2</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t7-tab" data-bs-toggle="pill" data-bs-target="#pills-t7" type="button" role="tab" aria-controls="pills-t7" aria-selected="false">Раздел 7.1-7.4</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t8-tab" data-bs-toggle="pill" data-bs-target="#pills-t8" type="button" role="tab" aria-controls="pills-t8" aria-selected="false">Раздел 8.1-8.3</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t9-tab" data-bs-toggle="pill" data-bs-target="#pills-t9" type="button" role="tab" aria-controls="pills-t9" aria-selected="false">Раздел 9-10</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="pills-t11-tab" data-bs-toggle="pill" data-bs-target="#pills-t11" type="button" role="tab" aria-controls="pills-t11" aria-selected="false">Раздел 11</button>
|
||
</li>
|
||
</ul>
|
||
<form method="post" class="row g-3">
|
||
<div class="tab-content" id="pills-tabContent">
|
||
<div class="tab-pane fade show active" id="pills-t1" role="tabpanel" aria-labelledby="pills-t1-tab">
|
||
{include file="mod_rpd_titul.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t2" role="tabpanel" aria-labelledby="pills-t2-tab">
|
||
{include file="mod_rpd_razdel1.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t3" role="tabpanel" aria-labelledby="pills-t3-tab">
|
||
{include file="mod_rpd_razdel5.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t4" role="tabpanel" aria-labelledby="pills-t4-tab">
|
||
{include file="mod_rpd_razdel5_4.html"}
|
||
{include file="mod_rpd_razdel5_5.html"}
|
||
{include file="mod_rpd_razdel5_5_1.html"}
|
||
{include file="mod_rpd_razdel5_6.html"}
|
||
<div class="col-md-12">
|
||
<label for="razdel5_7" class="form-label">
|
||
<h4><a href="#" class="btn btn-sm btn-danger btnsave" data-itemid="razdel5_7" data-bs-toggle="tooltip" data-bs-placement="bottom" title="сохранение"><i class="bi bi-save"></i></a> 5.7. Примерная тематика курсовых проектов (работ) {if $save.razdel5_7=='null'}<a href="#" class="btn btn-danger razdelNot_btn" data-state="0" data-razdel="razdel5_7" data-tip="text" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Учебным планом не предусмотрено"><i class="bi bi-x-square"></i></a>{else}<a href="#" class="btn btn-secondary razdelNot_btn" data-state="1" data-razdel="razdel5_7" data-tip="text" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Учебным планом не предусмотрено"><i class="bi bi-x-square"></i></a>{/if}</h4>
|
||
</label>
|
||
<textarea class="form-control razdel5_7" name="razdel5_7" id="razdel5_7" placeholder="Данный раздел самостоятельно заполняется преподавателем">{if isset($save)&&count($save)}{$save.razdel5_7}{/if}</textarea>
|
||
</div>
|
||
{include file="mod_rpd_razdel5_8.html"}
|
||
{include file="mod_rpd_razdel5_9.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t6" role="tabpanel" aria-labelledby="pills-t6-tab">
|
||
{include file="mod_rpd_razdel6.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t7" role="tabpanel" aria-labelledby="pills-t7-tab">
|
||
{include file="mod_rpd_razdel7.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t8" role="tabpanel" aria-labelledby="pills-t8-tab">
|
||
{include file="mod_rpd_razdel8.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t9" role="tabpanel" aria-labelledby="pills-t9-tab">
|
||
{include file="mod_rpd_razdel9.html"}
|
||
</div>
|
||
<div class="tab-pane fade" id="pills-t11" role="tabpanel" aria-labelledby="pills-t11-tab">
|
||
{include file="mod_rpd_razdel11.html"}
|
||
</div>
|
||
</div>
|
||
<input type="HIDDEN" name="ID_DISCIP" id="ID_DISCIP" value="{$ID_DISCIP}">
|
||
<input type="HIDDEN" name="ID_RPD" id="ID_RPD" value="{$ID_RPD}">
|
||
</form>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
<br>
|
||
{literal}
|
||
<!-- include summernote css/js -->
|
||
<link href="/rabprog/inc/Editor/summernote/summernote-bs5.css" rel="stylesheet">
|
||
<script src="/rabprog/inc/Editor/summernote/summernote-bs5.js"></script>
|
||
<script src="/rabprog/inc/Editor/summernote/summernote-cleaner.js?v=23"></script>
|
||
<script src="/rabprog/inc/Editor/summernote/lang/summernote-ru-RU.min.js"></script>
|
||
<script src="/rabprog/tpl/js/jquery.base64.min.js"></script>
|
||
<style>
|
||
th.rotate, td.rotate {
|
||
position:relative;
|
||
}
|
||
th.rotate > div, td.rotate > div {
|
||
transform: rotate(-90deg);
|
||
position:absolute;
|
||
left:0;
|
||
right:0;
|
||
top: 10px;
|
||
margin:auto;
|
||
height: initial;
|
||
width: min-content;
|
||
}
|
||
.inputModal{
|
||
border-bottom: 1px solid #0a53be;
|
||
}
|
||
.formkomp54_div, .obrtech54_div{
|
||
position: absolute;
|
||
right: 0px;
|
||
top: 40px;
|
||
width: 400px;
|
||
height: 200px;
|
||
overflow: auto;
|
||
background: #fff;
|
||
padding: 6px;
|
||
border: 1px solid gray;
|
||
z-index: 100;
|
||
}
|
||
.formkomp54_div_close, .obrtech54_div_close{
|
||
position: absolute;
|
||
right:2px;
|
||
top:2px;
|
||
}
|
||
</style>
|
||
<script>$(document).ready(function(){
|
||
function replaceAll(str, find, replace) {
|
||
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
|
||
}
|
||
//Копирование из таблицы 5.1.
|
||
$(document).on("click", ".copy_51", function(){
|
||
let to = $(this).data('to');
|
||
let fo = $(this).data('fo');
|
||
let tr = '';
|
||
if(fo=='1') tr = $('#'+to+'_orig_'+fo).val(); //получили оригинал
|
||
if(fo=='2') tr = $('#'+to+'_orig_1').val(); //получили оригинал
|
||
let orig = ''; if(fo=='1') orig = 'och'; else orig = 'zao';
|
||
//console.log(tr);
|
||
$('#table_5_'+orig+' tr').each(function () {
|
||
if(to=='table_54') {
|
||
let name = $(this).find("input[data-name='razdel']").val();
|
||
if (name != '') {
|
||
let tr_tmp = tr;
|
||
tr_tmp = tr_tmp.replace('data-name="nametema" value=""', 'data-name="nametema" value="' + name + '"');
|
||
tr_tmp = tr_tmp.replaceAll('|/textarea|', '</textarea>');
|
||
$('#' + to + '_' + fo).append(tr_tmp);
|
||
}
|
||
}
|
||
if(to=='table_55') {
|
||
let name = $(this).find("input[data-name='razdel']").val();
|
||
if (name != '') {
|
||
let tr_tmp = tr;
|
||
tr_tmp = tr_tmp.replace('data-name="numrazddisc" value=""', 'data-name="numrazddisc" value="' + name + '"');
|
||
tr_tmp = tr_tmp.replaceAll('|/textarea|', '</textarea>');
|
||
$('#' + to + '_1').append(tr_tmp);
|
||
}
|
||
}
|
||
if(to=='table_56') {
|
||
let name = $(this).find("input[data-name='razdel']").val();
|
||
if (name != '') {
|
||
let tr_tmp = tr;
|
||
tr_tmp = tr_tmp.replace('data-name="numrazddisc" value=""', 'data-name="numrazddisc" value="' + name + '"');
|
||
tr_tmp = tr_tmp.replaceAll('|/textarea|', '</textarea>');
|
||
$('#' + to + '_1').append(tr_tmp);
|
||
}
|
||
}
|
||
if(to=='table_58') {
|
||
let name = $(this).find("input[data-name='razdel']").val();
|
||
if (name != '') {
|
||
let tr_tmp = tr;
|
||
tr_tmp = tr_tmp.replace('data-name="razdtemRPsami" value=""', 'data-name="razdtemRPsami" value="' + name + '"');
|
||
tr_tmp = tr_tmp.replaceAll('|/textarea|', '</textarea>');
|
||
$('#' + to + '_1').append(tr_tmp);
|
||
}
|
||
}
|
||
|
||
});
|
||
return false;
|
||
})
|
||
//кнопка сохранения для input, textarea
|
||
$(document).on("click", ".btnsave", function(){
|
||
let itemID = $(this).data('itemid');
|
||
let value = $("#"+itemID).val();
|
||
let ID_DISCIP = $("#ID_DISCIP").val();
|
||
let ID_RPD = $("#ID_RPD").val();
|
||
$.ajax({url: '/rabprog/rpd/',cache:false,datatype:'json',method:'post',
|
||
data: 'ajdes=RPD_Save&ID_DISCIP='+ID_DISCIP+'&ID_RPD='+ID_RPD+'&'+itemID+'='+encodeURIComponent(value),
|
||
success:function(data){
|
||
window.ToastShow1("Сохранение РПД",data.msg,data.err);
|
||
if ('ID_RPD' in data) $("#ID_RPD").val(data.ID_RPD);
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
//кнопка сохранения для table-структур
|
||
$(document).on("click", ".btnsave_table", function(){
|
||
let tds = $(this).data('tds');
|
||
let form = $(this).data('form');
|
||
let ID_DISCIP = $("#ID_DISCIP").val();
|
||
let ID_RPD = $("#ID_RPD").val();
|
||
let json=[],tmp=[], tr=0,first='';
|
||
$("."+tds).each(function( index ) {
|
||
name = $(this).data('name');
|
||
//value = escapeHtml_main($(this).val());
|
||
value = $(this).val();
|
||
//на каждой строке увеличим счетчик
|
||
if(first==name&&tr!=0) {
|
||
tr = tr +1;
|
||
json.push(tmp);
|
||
tmp=[];
|
||
}
|
||
let item = {'name':name,'value':value};
|
||
tmp.push(item);
|
||
//определим первое поле в строке
|
||
if(first!=name&&tr==0) {
|
||
tr = 1;
|
||
first=name;
|
||
}
|
||
});
|
||
json.push(tmp);
|
||
$.ajax({url: '/rabprog/rpd/',cache:false,datatype:'json',method:'post',
|
||
data: 'ajdes=RPD_SaveTable&ID_DISCIP='+ID_DISCIP+'&ID_RPD='+ID_RPD+'&form='+form+'&json='+encodeURIComponent(JSON.stringify(json)),
|
||
success:function(data){
|
||
window.ToastShow1("Сохранение РПД",data.msg,data.err);
|
||
if ('ID_RPD' in data) $("#ID_RPD").val(data.ID_RPD);
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
//Редактирование полей с большим текстом
|
||
var inputEl = null;
|
||
var inputModalEl = null;
|
||
$(document).on("click", ".inputModal",function(){
|
||
if($(this).hasClass("inputModalClearHelp")){}else{ $("#modal_variants").html(""); }
|
||
inputEl = $(this);
|
||
let val = $(this).val();
|
||
let options = { keyboard: false };
|
||
inputModalEl = new bootstrap.Modal(document.getElementById('InputModal'), options);
|
||
inputModalEl.toggle();
|
||
$("#inputval").val(val);
|
||
let inputmodaldop=$(this).data('inputmodaldop');
|
||
if(inputmodaldop=='mat101'){
|
||
$("#modal_variants").html("<a href='#' id='getinfo_101'>Взять из раздела 10.1</a>");
|
||
}
|
||
});
|
||
$("#inputmodal_save").click(function(){
|
||
inputEl.val($("#inputval").val());
|
||
inputModalEl.hide();
|
||
});
|
||
|
||
//Отключить раздел
|
||
$(".razdelNot_btn").click(function(){
|
||
let ID_DISCIP = $("#ID_DISCIP").val();
|
||
let ID_RPD = $("#ID_RPD").val();
|
||
let razdel = $(this).data("razdel");
|
||
let state = $(this).data("state");
|
||
let tip = "table";
|
||
if ($(this).data('tip')=="text") tip = "text";
|
||
if(state==1){
|
||
if(confirm(" Все данные этого блока удалятся! Вы уверены, что хотите скрыть блок?")) {
|
||
$(this).data("state", 0);
|
||
$(this).removeClass("btn-secondary").addClass("btn-danger");
|
||
$("." + razdel).hide();
|
||
$.ajax({
|
||
url: '/rabprog/rpd/', cache: false, datatype: 'json', method: 'post',
|
||
data: 'ajdes=RPD_RazdelNot&ID_DISCIP=' + ID_DISCIP + '&ID_RPD=' + ID_RPD + '&form=' + razdel + '&tip=' + tip + '&state=0',
|
||
success: function (data) {
|
||
window.ToastShow1("Убрали раздел из РПД", data.msg, data.err);
|
||
if ('ID_RPD' in data) $("#ID_RPD").val(data.ID_RPD);
|
||
}
|
||
});
|
||
}
|
||
}else{
|
||
$(this).data("state",1);
|
||
$(this).removeClass("btn-danger").addClass("btn-secondary");
|
||
$("."+razdel).show();
|
||
$.ajax({url: '/rabprog/rpd/',cache:false,datatype:'json',method:'post',
|
||
data: 'ajdes=RPD_RazdelNot&ID_DISCIP='+ID_DISCIP+'&ID_RPD='+ID_RPD+'&form='+razdel+'&state=1',
|
||
success:function(data){
|
||
window.ToastShow1("Включили раздел из РПД",data.msg,data.err);
|
||
if ('ID_RPD' in data) $("#ID_RPD").val(data.ID_RPD);
|
||
}
|
||
});
|
||
}
|
||
return false;
|
||
});
|
||
//Скрываем отключенные разделы
|
||
$(".razdelNot_btn").each(function(){
|
||
let razdel = $(this).data("razdel");
|
||
let state = $(this).data("state");
|
||
if(state==0){
|
||
$("."+razdel).hide();
|
||
}
|
||
});
|
||
function escapeHtml_main(text) {
|
||
var map = {
|
||
'&': '&',
|
||
'<': '<',
|
||
'>': '>',
|
||
'"': '"',
|
||
"'": '''
|
||
};
|
||
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
|
||
}
|
||
|
||
});</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:200px;"></textarea>
|
||
</div>
|
||
<div class="mb-3" id="modal_variants">
|
||
</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>
|