123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- "use strict";
- let grusList = [];
- const grusShow = async grName => {
-
- dqs("#grusDatalist").innerHTML = '';
- dqs("#grusDatalist").style.display = "none";
- dqs("#grusFindPup").value = '';
-
- let apiResp = await apireq("interGroupGet", grName);
- if (apiResp == "none") {info(1, "Ошибка на сервере"); return;}
- let pupArr = JSON.parse(apiResp);
- let listInner = pupArr.length ?
- `<p>Список группы ${grName}</p>` :
- `<p>В группе ${grName} нет учащихся</p>`;
- let i=1;
- for (let pup of pupArr) {
- listInner += `<div>
- <span onClick="grusPupDel('${pup[2]}')" title="Удалить">❌</span>
- <span>${i}. </span>${pup[0]} (${pup[1]})</div>`;
- i++;
- }
- dqs("#grusPupList").innerHTML = listInner;
- }
- const grusPupDel = async pupLgn => {
- let grName = dqs("#grusSelGr").value;
- if (!confirm("Вы уверены?")) return;
- let apiResp = await apireq("interGroupPup", ["del", grName, pupLgn]);
- if (apiResp == "none") {
- info(1, "Ошибка на сервере.<br>Учащийся не удален");
- return;
- }
- grusShow(grName);
- }
- const grusPupAdd = async pupLgn => {
- let grName = dqs("#grusSelGr").value;
- dqs("#grusDatalist").innerHTML = '';
- dqs("#grusDatalist").style.display = "none";
- dqs("#grusFindPup").value = '';
- let apiResp = await apireq("interGroupPup", ["add", grName, pupLgn]);
- if (apiResp == "none") {
- info(1, "Ошибка на сервере.<br>Учащийся не добавлен");
- return;
- }
- grusShow(grName);
- dqs("#grusFindPup").focus();
- }
- const grusDataGet = async fragm => {
- dqs("#grusDatalist").innerHTML = '';
- dqs("#grusDatalist").style.display = "none";
- if (!dqs("#grusSelGr").value) {info(1, "Сначала выберите группу"); return;}
- if (fragm.length < 3) return;
- fragm = fragm.trim();
- let dtListInner = '';
- let apiResp = await apireq("usFind", ["Учащийся", '0', fragm]);
- if (apiResp != "none") {
- let deti = JSON.parse(apiResp);
- deti.filter(p => !p.block).map(p => {
- dtListInner += `<button type="button" `
- + `onclick="grusPupAdd('${p.login}')">`
- + `${p.famil} ${p.name} (${p.unit})</button>`;
- });
- if (dtListInner) {
- dqs("#grusDatalist").innerHTML = dtListInner;
- dqs("#grusDatalist").style.display = "block";
- }
- }
- }
- createSection("grusers", `
- <h3>Редактирование состава групп внеурочной деятельности</h3>
- <select id="grusSelGr" onChange="grusShow(this.value)"></select>
- <div id="grusPupList"></div>
- <h3>Добавить учащегося в группу</h3>
- <input type="text" id="grusFindPup" placeholder="Начните вводить фамилию"
- onKeyUp="grusDataGet(this.value)">
- <div id="grusDatalist"></div>
- `);
- getContent.grusers = async () => {
- let selInner = "<option value=''>== ВЫБЕРИТЕ ГРУППУ ==</option>";
-
- let apiResp = await apireq("interGroupList");
- grusList = JSON.parse(apiResp)
- . filter(x => x[2] == uLogin).map(x => [x[0], x[1]]);
-
- if (grusList.length) {
- grusList.sort((a, b) => a[0].localeCompare(b[0], "ru"));
- for (let g of grusList) {
- let grTitle = g[1].length > 30 ? g[1].substr(0, 30) + "..." : g[1];
- selInner += `<option value="${g[0]}">${g[0]}: ${grTitle}</option>`;
- }
- }
- else selInner =
- "<option value=''>У вас нет групп внеурочной деятельности</option>";
- dqs("#grusSelGr").innerHTML = selInner;
- }
|