您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Автозаполнение полей выпускника
// ==UserScript== // @name Platonus - Autocomplete Graduate // @namespace scriptomatika // @author mouse-karaganda // @description Автозаполнение полей выпускника // @license MIT // @match https://platonus.buketov.edu.kz/* // @icon https://www.google.com/s2/favicons?sz=64&domain=platonus.buketov.edu.kz // @version 1.4 // @grant none // ==/UserScript== (function() { let $ = window.jQuery; console.log('Userscript run at == ', location.href); //Абилова Далила let studentList = [ //(708)774-77-38 //+7(775)162-19-70 '1;Абилова;Далила;Руслановна;Abilova;Dalila;970570;;980429450553;01-02-1995;удост. личн;038229264;19-03-2015;КР ІШКІ ІСТЕР МИНИСТРЛІГІ;5B090400;Женский;Азербайджанец;Казахстан;очная;4;каз.;Грант;27-08-2016;427;19-06-2019;386;ЖБ-Б;1387346;27-06-2019;136;19-06-2019' ]; let item = {}; let itemArray = [ 'number', 'surname', 'name', 'fatherName', 'surnameEng', 'nameEng', 'phone', 'phoneMobile', 'numIin', 'birthday', 'typeDocument', 'docNum', 'dateDoc', 'icDepartmentType', 'professionCode', 'sex', 'nationality', 'citizenship', 'eduForm', 'eduPeriod', 'lang', 'payForm', 'startOrderDate', 'startOrderNumber', 'finishOrderDate', 'finishOrderNumber', 'diplomaSeries', 'diplomaNumber', 'finishDocDate', 'protocolNumber', 'protocolDate', 'icFinishDate', 'degree', 'prevEducation', 'prevInstitution' ]; let tabs = { personalData: 'Личные данные', education: 'Образование', employment: 'Трудоустройство', graduateData: 'Данные о выпускнике', internship: 'Практика', benefits: 'Льготы' }; let labels = {}; labels.start = () => { //tabs.personalData labels[item.surname] = 'Фамилия'; labels[item.name] = 'Имя'; labels[item.fatherName] = 'Отчество'; labels[item.surnameEng] = 'Фамилия транслитом'; labels[item.nameEng] = 'Имя транслитом'; labels[item.phone] = 'Домашний телефон'; labels[item.phoneMobile] = 'Мобильный телефон'; labels[item.numIin] = 'ИИН'; labels[item.sex] = 'Пол'; labels[item.birthday] = 'Дата рождения'; labels[item.nationality] = 'Национальность'; labels[item.citizenship] = 'Гражданство'; labels[item.typeDocument] = 'Документ, удостоверяющий личность'; labels[item.docNum] = 'Номер документа, удостоверяющего личность'; labels[item.dateDoc] = 'Дата выдачи документа, удостоверяющего личность'; labels[item.icFinishDate] = 'Срок действия документа, удостоверяющего личность'; labels[item.icDepartmentType] = 'Орган, выдавший документ, удостоверяющий личность'; //tabs.education labels[item.degree] = 'Академическая степень'; labels[item.professionCode] = 'Специальность/Группа образовательных программ'; labels[item.eduForm] = 'Форма обучения'; labels[item.lang] = 'Язык обучения'; labels[item.payForm] = 'Форма оплаты'; labels[item.prevEducation] = 'учреждения, которое закончил абитуриент'; labels[item.prevInstitution] = 'Окончил образовательное учреждение'; //tabs.graduateData labels[item.startOrderDate] = 'Дата приказа о зачислении'; labels[item.startOrderNumber] = 'Номер приказа о зачислении'; labels[item.finishOrderDate] = 'Дата приказа о выпуске'; labels[item.finishOrderNumber] = 'Номер приказа об окончании'; labels[item.diplomaSeries] = 'Серия диплома'; labels[item.diplomaNumber] = 'Номер диплома'; labels[item.finishDocDate] = 'Дата выдачи диплома'; labels[item.protocolNumber] = 'Номер протокола'; labels[item.protocolDate] = 'Дата протокола'; //console.log('completer :: labels = ', labels); labels.findByText = function(text) { for (let index in labels) { if (labels[index] == text) { return index; } } return null; }; }; let globalQueue = { content: [], add: function(contentMethod, contentParams, contentTime) { let newItem = { method: contentMethod }; if (contentParams) { newItem.params = contentParams; } if (contentTime) { newItem.time = contentTime; } this.addItem(newItem); }, addItem: function(contentItem) { this.addRange([ contentItem ]); }, addRange: function(contentList) { this.content.push(...contentList); }, clear: function() { delete this.content; this.content = []; }, start: function() { console.log('completer :: globalQueue START = ', this.content); let gotoNextQueue = () => { if (globalQueue.content.length > 0) { let nextStep = globalQueue.content.shift(); let nextParams = (nextStep.params) ? nextStep.params : []; let nextTime = (nextStep.time) ? nextStep.time : completer.oneStepTime; //console.log('completer :: globalQueue params = ', nextParams); if (nextStep.method) { nextStep.method.apply(globalQueue, nextParams); } setTimeout(gotoNextQueue, nextTime); } }; gotoNextQueue(); } }; let completer = { maxLoadTime: 120000, oneStepTime: 320, smallStepTime: 80, globalIndex: 0, lotusBtnId: 'lotus_completer', lotusLogId: 'lotus_log', lotusLogRead: 'Чтение студента: ', lotusLogWrite: 'Запись из лотуса: ', canScrollToTab: true, canScrollToInput: true, canScrollToCombobox: true, insertStyle: function() { let styleText = [ '.completer_button { margin-right: 10px; }', '.completer_button.btn-success, .completer_button.btn-success:hover { background-color: #0033cc !important; border-color: #0033cc !important; }', '.completer_log { margin-right: 10px; font-size: 12px; max-width: 350px; overflow: hidden; white-space: nowrap; }', '.lotus_message { font-size: 12px; float: right; margin-right: 18px; }', '.lotus_message span { color: green; }' ]; $('<style type="text/css">').appendTo(document.head) .text(styleText.join('\n')); }, log: function(text) { completer.lotusLog.html(text); }, createButton: function(mapButton) { let outer = $('<li>').attr('id', completer.lotusBtnId) .insertBefore(mapButton.parent('li')); $('<button>').addClass('btn btn-success completer_button').appendTo(outer) .text('Заполнить из лотуса') .on('click', completer.clickToButton); outer = $('<li>').attr('id', completer.lotusLogId) .insertBefore(outer); completer.lotusLog = $('<div>').addClass('completer_log').appendTo(outer); }, clickToButton: function() { globalQueue.clear(); globalQueue.add(completer.addLotusMsgAll); completer.findStudent(); if (true) { globalQueue.add(completer.log, [completer.lotusLogWrite + 'Начало']); // Переходим на вкладку completer.gotoNextTab(tabs.personalData); completer.gotoNextTab(tabs.education); //completer.gotoNextTab(tabs.employment); completer.gotoNextTab(tabs.graduateData); //completer.gotoNextTab(tabs.internship); //completer.gotoNextTab(tabs.benefits); globalQueue.add(completer.activateTab, [tabs.personalData]); globalQueue.add(completer.log, [completer.lotusLogWrite + 'Готово']); } globalQueue.start(); }, gotoNextTab: function(tabName) { globalQueue.add(completer.activateTab, [tabName]); tabs[tabName].call(completer); }, setTabPersonalData: function() { let stud = completer.studentLotus; completer.setValueToTextbox(item.phone, stud[item.phone]); completer.setValueToTextbox(item.phoneMobile, completer.getPhoneMobile(stud)); if (false) { completer.setValueToTextbox(item.nameEng, stud[item.nameEng]); completer.setValueToTextbox(item.surnameEng, stud[item.surnameEng]); completer.setValueToTextbox(item.phone, stud[item.phone]); completer.setValueToTextbox(item.phoneMobile, completer.getPhoneMobile(stud)); completer.setValueToTextbox(item.numIin, completer.getIin(stud)); completer.setValueToCombobox(item.sex, completer.getSex(stud)); completer.setValueToDatepicker(item.birthday, stud[item.birthday]); completer.setValueToCombobox(item.nationality, completer.getNationality(stud)); completer.setValueToCombobox(item.citizenship, completer.getCitizenship(stud)); completer.setValueToCombobox(item.typeDocument, completer.getTypeDocument(stud)); completer.setValueToTextbox(item.docNum, stud[item.docNum]); completer.setValueToDatepicker(item.dateDoc, stud[item.dateDoc]); completer.setValueToDatepicker(item.icFinishDate, stud[item.dateDoc]); completer.setValueToCombobox(item.icDepartmentType, completer.getDepartmentType(stud)); } }, setTabEducation: function() { let stud = completer.studentLotus; completer.setValueToCombobox(item.degree, 'Бакалавр'); completer.setValueToCombobox(item.professionCode, stud[item.professionCode]); completer.setValueToCombobox(item.eduForm, completer.getEduForm(stud)); completer.setValueToCombobox(item.lang, completer.getLang(stud)); completer.setValueToCombobox(item.payForm, completer.getPayForm(stud)); completer.setValueToTextbox(item.prevEducation, 'Карагандинский государственный университет имени Е.А. Букетова'); completer.setValueToCombobox(item.prevInstitution, 'отечест'); }, setTabEmployment: function() { }, setTabGraduateData: function() { let stud = completer.studentLotus; completer.setValueToDatepicker(item.startOrderDate, stud[item.startOrderDate]); completer.setValueToTextbox(item.startOrderNumber, stud[item.startOrderNumber]); completer.setValueToDatepicker(item.finishOrderDate, stud[item.finishOrderDate]); completer.setValueToTextbox(item.finishOrderNumber, stud[item.finishOrderNumber]); completer.setValueToTextbox(item.diplomaSeries, stud[item.diplomaSeries]); completer.setValueToTextbox(item.diplomaNumber, stud[item.diplomaNumber]); completer.setValueToDatepicker(item.finishDocDate, stud[item.finishDocDate]); completer.setValueToTextbox(item.protocolNumber, stud[item.protocolNumber]); completer.setValueToDatepicker(item.protocolDate, stud[item.protocolDate]); }, setTabInternship: function() { }, setTabBenefits: function() { }, readStudentPlatonus: function() { completer.studentPlatonus = {}; globalQueue.add(() => { console.log('completer :: readStudentPlatonus START'); completer.log(completer.lotusLogRead + 'Начало'); }); globalQueue.add(completer.activateTab, [tabs.personalData]); let readFromTab = () => { completer.log(completer.lotusLogRead + tabs.personalData); let stud = completer.studentPlatonus; stud[item.surname] = completer.readFromTextbox(item.surname); stud[item.name] = completer.readFromTextbox(item.name); stud[item.fatherName] = completer.readFromTextbox(item.fatherName); stud[item.nameEng] = completer.readFromTextbox(item.nameEng); stud[item.surnameEng] = completer.readFromTextbox(item.surnameEng); stud[item.phone] = completer.readFromTextbox(item.phone); stud[item.phoneMobile] = completer.readFromTextbox(item.phoneMobile); stud[item.numIin] = completer.readFromTextbox(item.numIin); stud[item.sex] = completer.readFromCombobox(item.sex); stud[item.birthday] = completer.readFromDatepicker(item.birthday); stud[item.nationality] = completer.readFromCombobox(item.nationality); stud[item.citizenship] = completer.readFromCombobox(item.citizenship); stud[item.typeDocument] = completer.readFromCombobox(item.typeDocument); stud[item.docNum] = completer.readFromTextbox(item.docNum); stud[item.dateDoc] = completer.readFromDatepicker(item.dateDoc); stud[item.icFinishDate] = completer.readFromDatepicker(item.icFinishDate); stud[item.icDepartmentType] = completer.readFromCombobox(item.icDepartmentType); stud[item.phoneMobile] = completer.getPhoneMobile(stud); }; globalQueue.add(readFromTab); globalQueue.add(completer.activateTab, [tabs.education]); readFromTab = () => { completer.log(completer.lotusLogRead + tabs.education); let stud = completer.studentPlatonus; stud[item.degree] = completer.readFromCombobox(item.degree); stud[item.professionCode] = completer.readFromCombobox(item.professionCode); stud[item.eduForm] = completer.readFromCombobox(item.eduForm); stud[item.lang] = completer.readFromCombobox(item.lang); stud[item.payForm] = completer.readFromCombobox(item.payForm); stud[item.prevEducation] = completer.readFromTextbox(item.prevEducation); stud[item.prevInstitution] = completer.readFromCombobox(item.prevInstitution); }; globalQueue.add(readFromTab); //globalQueue.add(completer.activateTab, [tabs.employment]); globalQueue.add(completer.activateTab, [tabs.graduateData]); readFromTab = () => { completer.log(completer.lotusLogRead + tabs.graduateData); let stud = completer.studentPlatonus; stud[item.startOrderDate] = completer.readFromDatepicker(item.startOrderDate); stud[item.startOrderNumber] = completer.readFromTextbox(item.startOrderNumber); stud[item.finishOrderDate] = completer.readFromDatepicker(item.finishOrderDate); stud[item.finishOrderNumber] = completer.readFromTextbox(item.finishOrderNumber); stud[item.diplomaSeries] = completer.readFromTextbox(item.diplomaSeries); stud[item.diplomaNumber] = completer.readFromTextbox(item.diplomaNumber); stud[item.finishDocDate] = completer.readFromDatepicker(item.finishDocDate); stud[item.protocolNumber] = completer.readFromTextbox(item.protocolNumber); stud[item.protocolDate] = completer.readFromDatepicker(item.protocolDate); }; globalQueue.add(readFromTab); //globalQueue.add(completer.activateTab, [tabs.internship]); //globalQueue.add(completer.activateTab, [tabs.benefits]); //globalQueue.add(completer.activateTab, [tabs.personalData]); globalQueue.add(() => { console.log('completer :: readStudentPlatonus END = ', completer.studentPlatonus); completer.log(completer.lotusLogRead + 'Готово'); }); //globalQueue.start(); }, getPhoneMobile: function(stud) { let value = stud[item.phoneMobile]; // Удаляем все знаки, кроме цифр value = value.replace(/\D/g, ''); if (value == '') { value = '7010001111'; } else { value = value.replace(/^87/, '77').substring(1, 11); } console.log('completer :: getPhoneMobile = ', value); return value; }, getIin: function(stud) { return stud[item.numIin]; }, getSex: function(stud) { return stud[item.sex].substring(0, 3); }, getNationality: function(stud) { return stud[item.nationality].substring(0, 6); }, getCitizenship: function(stud) { return stud[item.citizenship].substring(0, 6); }, getLang: function(stud) { return stud[item.lang].substring(0, 3); }, getPayForm: function(stud) { return stud[item.payForm].substring(0, 4); }, getTypeDocument: function(stud) { let value = stud[item.typeDocument].toLowerCase(); console.log('completer :: getTypeDocument = ', value); if (/удост/.test(value)) { value = 'удост'; } else if (/паспорт/.test(value)) { value = 'пасп'; } else if (/свид/.test(value)) { value = 'свидет'; } else { value = 'другой'; } return value; }, getDepartmentType: function(stud) { let value = stud[item.icDepartmentType].toLowerCase(); if (/мвд|ішкі.+істер.+мин|іім/.test(value) & /р[кқ]|[кқ]р |[кқ]аза[кқх]стан/.test(value)) { value = 'внутрен'; } else if (/мю | мю/.test(value) & /[кқ]р | р[кқ]|[кқ]аза[кқх]стан/.test(value)) { value = 'юстиц'; } else { value = 'другой'; } return value; }, getEduForm: function(stud) { let eduForm = stud[item.eduForm].toLowerCase(); let eduPeriod = stud[item.eduPeriod]; let space = ''; if (eduForm.startsWith('очная сокращенная')) { space = ' '; } let value = `${eduForm}${space}(${eduPeriod})`; return value; }, findStudent: function() { // Сначала читаем старые значения if (!completer.studentPlatonus) { completer.readStudentPlatonus(); } let findItem = studentList[0]; let stud = findItem.split(';'); completer.studentLotus = stud; }, activateTab: function(tabText) { let findTab = completer.findTab(tabText); if (findTab.length > 0) { findTab.eq(0).trigger('click'); if (completer.canScrollToTab) { completer.scrollToInput(findTab[0]); } } }, scrollIntoView: function(input) { $(input)[0].scrollIntoView({ behavior: 'instant' }); }, scrollToInput: function(input) { // Добавим высоту верхней планки completer.scrollIntoView(input); window.scrollBy({ left: 0, top: -66, behavior: "instant" }); }, addLotusMsg: function(oneLabel) { if (oneLabel.length > 0) { let oneDiv = oneLabel.next('.lotus_message'); if (oneDiv.length == 0) { let labelText = oneLabel.text().trim(); oneDiv = $('<div>').addClass('lotus_message').insertAfter(oneLabel[0]) .attr('data-label', labelText); } oneDiv.text('…'); return oneDiv; } return oneLabel; }, addLotusMsgAll: function() { let labelList = $('.tab-content label.form-label'); labelList.each((index, oneLabel) => { completer.addLotusMsg($(oneLabel)); }); }, findTab: function(tabText) { let tabList = $('ul.nav-tabs button.nav-link'); //console.log('completer :: tabList = ', tabList); let oneTab = tabList.filter((index, tab) => tabText == $(tab).text().trim()); console.log('completer :: findTab [%o] = ', tabText, oneTab); return oneTab; }, findLabel: function(labelText) { let labelList = $('.tab-content label.form-label'); //console.log('completer :: labelList = ', labelList); let oneLabel = labelList.filter((index, label) => new RegExp(labelText + '$', 'i').test($(label).text().trim())); console.log('completer :: findLabel [%o] = ', labelText, oneLabel); return oneLabel; }, findTextbox: function(labelText) { // Ищем метку и следующий после неё элемент let oneLabel = completer.findLabel(labelText); let lotusMsg = completer.addLotusMsg(oneLabel); let oneInput = lotusMsg.next('input[type="text"], input:not([type])'); console.log('completer :: findInput [%o] = ', labelText, oneInput); oneInput.data('message', lotusMsg[0]); return oneInput; }, findDatepicker: function(labelText) { let oneLabel = completer.findLabel(labelText); let lotusMsg = completer.addLotusMsg(oneLabel); let oneDatepicker = lotusMsg.next('.input-group').find('input[datepicker]'); console.log('completer :: findDatepicker [%o] = ', labelText, oneDatepicker); oneDatepicker.data('message', lotusMsg[0]); return oneDatepicker; }, findCombobox: function(labelText) { let oneLabel = completer.findLabel(labelText); let lotusMsg = completer.addLotusMsg(oneLabel); let oneCombobox = lotusMsg.nextAll('select + .select2-container').find('span[role="combobox"]'); console.log('completer :: findCombobox [%o] = ', labelText, oneCombobox); oneCombobox.data('message', lotusMsg[0]); return oneCombobox; }, readFromInput: function(inputType, labIndex) { let labelText = labels[labIndex]; let value = ''; let oneInput = completer.findTextbox(labelText); if (oneInput.length > 0) { if (completer.canScrollToInput) { completer.scrollIntoView(oneInput); } value = oneInput[0].value; } console.log('completer :: readFrom%s [%o] = ', inputType, labelText, value); //completer.log(completer.lotusLogRead + labelText); return value; }, readFromTextbox: function(labIndex) { return completer.readFromInput('Textbox', labIndex); }, readFromDatepicker: function(labIndex) { return completer.readFromInput('Datepicker', labIndex); }, readFromCombobox: function(labIndex) { let labelText = labels[labIndex]; let value = ''; let oneInput = completer.findCombobox(labelText).find('span[role="textbox"]'); if (oneInput.length > 0) { if (completer.canScrollToCombobox) { completer.scrollIntoView(oneInput); } value = oneInput.text().trim(); } console.log('completer :: readFromCombobox [%o] = ', labelText, value); //completer.log(completer.lotusLogRead + labelText); return value; }, showOldValue: function(oneInput, oldValue) { let oldText = (oldValue == '') ? 'пусто' : oldValue; let showMsg = (`Было в платонусе: <span>${oldText}</span>`); $(oneInput.data('message')).html(showMsg); }, checkValue: function(inputType, labIndex, newValue) { return; let oldValue = completer.studentPlatonus[labIndex]; let lotusValue = completer.studentLotus[labIndex]; let afterValue = completer['readFrom' + inputType](labIndex); if (oldValue != afterValue) { completer.showOldValue(oneInput, oldValue); } }, writeToInput: function(oneInput, newValue) { oneInput.value = newValue; oneInput.dispatchEvent(new Event('input')); oneInput.dispatchEvent(new Event('blur')); }, setValueToInput: function(inputType, labIndex, newValue) { if (newValue == '') { return; } let setValue = () => { let labelText = labels[labIndex]; console.log('completer :: setValueTo%s [%o] = ', inputType, labelText, newValue); completer.log(completer.lotusLogWrite + labelText); let oneInput = completer['find' + inputType](labelText); if (oneInput.length > 0) { if (completer.canScrollToInput) { completer.scrollIntoView(oneInput); } let oldValue = completer.studentPlatonus[labIndex]; if (oldValue != newValue) { completer.showOldValue(oneInput, oldValue); completer.writeToInput(oneInput[0], newValue); } } }; globalQueue.add(setValue, [], completer.smallStepTime); globalQueue.add(completer.checkValue, [inputType, labIndex], completer.smallStepTime); }, setValueToTextbox: function(labIndex, newValue) { completer.setValueToInput('Textbox', labIndex, newValue); }, setValueToDatepicker: function(labIndex, newValue) { completer.setValueToInput('Datepicker', labIndex, newValue); }, setValueToCombobox: function(labIndex, newValue) { if (newValue == '') { return; } let oneInput, oneContainer; let labelText = labels[labIndex]; let getInput = () => { oneInput = completer.findCombobox(labelText); return (oneInput.length > 0); }; let getContainer = () => { if (getInput()) { oneContainer = $(oneInput).parents('.select2-container').nextAll('.select2-container:last-child'); return (oneContainer.length > 0); } return false; }; globalQueue.addRange([{ method: () => { console.log('completer :: setValueToCombobox [%o] = ', labelText, newValue); completer.log(completer.lotusLogWrite + labelText); // Открываем выпадающий список if (getInput()) { if (completer.canScrollToCombobox) { //completer.scrollToInput(oneInput[0]); completer.scrollIntoView(oneInput); } oneInput[0].dispatchEvent(new MouseEvent('mousedown', { bubbles: true })); } } }, { method: () => { // Заполняем фильтр if (getContainer()) { let filterInput = oneContainer.find('[type="search"]'); console.log('completer :: filterInput = ', filterInput); if (filterInput.length > 0) { completer.writeToInput(filterInput[0], newValue.toLowerCase()); } } } }, { method: () => { // Выделяем оставшийся пункт if (getContainer()) { let filterList = oneContainer.find('ul[role="listbox"] li'); console.log('completer :: filterList = ', filterList); if (filterList.length > 0) { filterList[0].dispatchEvent(new MouseEvent('mouseup', { bubbles: true })); } } } }, { time: completer.smallStepTime, method: () => { // Если нужно, покажем старое значение if (getInput()) { let oldValue = completer.studentPlatonus[labIndex]; let afterValue = completer.readFromCombobox(labIndex); if (oldValue != afterValue) { completer.showOldValue(oneInput, oldValue); } } } }]); }, popstateHandler: function() { // Ждем кнопку карты let mapButton = $('a.btn.btn-primary[href$="/map"]'); console.log('completer :: popstateHandler [%o] = ', mapButton.length, mapButton); if (mapButton.length == 0) { let pause = new Date() - completer.popstateStart; if (pause > completer.maxLoadTime) { clearInterval(completer.popstateTimer); delete completer.popstateStart; return; } } else { clearInterval(completer.popstateTimer); delete completer.popstateStart; // Создаем новую кнопку completer.createButton(mapButton); } }, runPopstate: function(event) { completer.clear(); // Проверяем, какая страница открыта let isGraduate = /graduate\/-?\d+/.test(location.href); console.log('completer :: runPopstate [%o] = ', isGraduate, location.href); if (!isGraduate) { return; } completer.popstateStart = new Date(); completer.popstateTimer = setInterval(completer.popstateHandler, completer.oneStepTime); }, startLabels: function(event) { item = {}; itemArray.forEach((name, index) => { item[name] = index; }); //console.log('completer :: startItem = ', item); labels.start(); tabs[tabs.personalData] = completer.setTabPersonalData; tabs[tabs.education] = completer.setTabEducation; tabs[tabs.employment] = completer.setTabEmployment; tabs[tabs.graduateData] = completer.setTabGraduateData; tabs[tabs.internship] = completer.setTabInternship; tabs[tabs.benefits] = completer.setTabBenefits; }, clear: function() { globalQueue.clear(); delete completer.studentLotus; delete completer.studentPlatonus; delete completer.lotusLog; // Убираем старую кнопку $('#' + completer.lotusLogId).remove(); $('#' + completer.lotusBtnId).remove(); }, start: function() { completer.startLabels(); completer.insertStyle(); completer.runPopstate(); //window.addEventListener('popstate', completer.runPopstate); $(window).on('popstate', completer.runPopstate); } }; completer.start(); console.log('Platonus - Autocomplete Graduate 💬 1.4'); })();