Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Последние обновления #9

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 7 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
# Kad.arbitr

Пользовательский скрипт, пока не имеющий названия. Создан для сканировщиков, загружающих на сайт необходимые дела.
Для использования скрипта, необходимо [скачать](https://github.com/spokik/Kad.arbitr/archive/master.zip) файлы. распаковать в удобную папку.
Далее следует в crome перейти в настройки ваших расширений => [browser://extensions/](browser://extensions/)
В правом углу включить "режим разработчика", после чего у вас должно появится меню.
Выбираем "загрузить распакованное расширение", выбираем папку в которую мы распокавали файлы.

Функции
**Возможности**

МД по умолчанию:
При добавлении иска на сайт, скрипт автоматически указывает тип документа.

Горячие шаблоны:
При отсудствии зарегестрированного документа в базе, сканеровщику необходимо создать собственную карточку. Скрипт позволяет как указать быстро сторону (истца, либо ответчика) Либо заполнить все поля ( Отзыв, заявление о праавоприемстве, ходатойство о приобщении дополнительных материалов дела и так далее.

Проверка повторной загрузки:
При попытке загрузить один и тот же фаил в разные дела, скрипт сообщит о потенциальной ошибке.

Статистика:
скрипт собирает статистику о загруженных документах. Имеет возможность построть таблицу по составам и дням.
Теперь на каждо странице карточки дела появляется кнопка меню.
Здесь можно выбрать необходимые вам модули, определить свои составы и вывести отчет по составам
2 changes: 2 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ import { usersSettings } from './modules/usersSettings.js'
import { checkReload } from './modules/checkReload.js'
import { statisticsInterface } from './modules/statisticsInterface.js'
import { addStaticOnLocalStorage } from './modules/addStaticOnLocalStorage.js'
// import { css } from './src/CSS/styles.css'


export {
// css,
windowForUserScript,
defaultMD,
addBattons,
Expand Down
3 changes: 3 additions & 0 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
"js": [
"modules.js"
],
"css": [
"src/CSS/styles.css"
],
"matches": [
"https://*.kad.arbitr.ru/Card/*",
"https://*.kad.arbitr.ru/*"
Expand Down
4 changes: 2 additions & 2 deletions modules.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ createNewScript('./modules/statisticsInterface.js')
createNewScript('./modules/addStaticOnLocalStorage.js')


function createNewScript(url) {
function createNewScript(url, type = "module") {
const name = document.createElement('script')
name.setAttribute("type", "module");
name.setAttribute("type", type);
name.setAttribute("src", chrome.extension.getURL(url))
head.insertBefore(name, head.lastChild);
}
Expand Down
31 changes: 6 additions & 25 deletions modules/addBattons.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,11 @@
import { usersSettings } from './usersSettings.js'

// Добавляет кнопки пользовательского интерфейса
// Добавляет меню
function addBattons() {
let footer = document.createElement("div")
const footer = document.createElement("div")
footer.className = "b-feedback"
let xc = sostavPerDay(usersSettings.usersSS)
footer.innerHTML = `${xc} <div id="activeStat" class="tampleteButton" style="height:23px">Статистика</div>`;

let classBlok = document.createElement("style")
classBlok.innerHTML = "div.tampleteButton{height: 30px;width: 130px;-webkit-appearance: button;-webkit-writing-mode: horizontal-tb !important;color: buttontext;text-shadow: none;display: inline-block;text-align: center;align-items: flex-start;background-color: buttonface;box-sizing: border-box;margin: 0em;font: 400 13.3333px Arial;padding: 1px 6px;border-width: 2px;border-style: outset;border-color: buttonface;border-image: initial;}}";
let divBlok = document.createElement("div")
divBlok.id = "UserTempale"
divBlok.innerHTML = `
<div id="istec" class="tampleteButton" >Истец</div>
<div id="otvetchik" class="tampleteButton">Ответчик</div>
<div id="PoObshimPravilam" class="tampleteButton">По общим</div>
<div id="Clarify" class="tampleteButton">Уточнение.И</div>
<br>
<div id="hodOPriob" class="tampleteButton">Приобщении.И</div>
<div id="Otziv" class="tampleteButton">Отзыв.О</div>
<div id="otkazOtIska" class="tampleteButton">Отказ.И</div>
<div id="processualnoePravopriemstvo" class="tampleteButton">Правоприемство</div>`;

document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > div.b-popup-button.js-upload-submit").before(classBlok)
document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > div.b-popup-button.js-upload-submit").before(divBlok)
footer.innerHTML = `${xc} <div id="activeStat" class="tampleteButton" style="height:23px">Меню</div>`;
document.querySelector("#b-footer > div > div.b-copyright").after(footer)
}

Expand All @@ -44,12 +26,11 @@ function sostavPerDay(sostavs) {
}
}
//string stringify
// const stringReturn = counter.map((key, index) => (`${index} состав: ${key} штук | `));
let stringReturn = ''
for (let key in counter) {

stringReturn = stringReturn + `${key} состав: ${counter[key]} штук | `
}
for (let key in counter) { stringReturn = stringReturn + `| ${key} состав: ${counter[key]} штук ` }
return stringReturn

}

export { addBattons }
90 changes: 47 additions & 43 deletions modules/addStaticOnLocalStorage.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,23 @@ import { usersSettings } from './usersSettings.js'

// Добавляет статистику по загрузкам в localStorage
function addStaticOnLocalStorage() {
let elem = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload")
const elem = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload")

let promise = new Promise((resolve, reject) => {
let observer = new MutationObserver((mutationRecords) => {
if (mutationRecords.length > 1) {
let saveScanStat = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > div.b-popup-button.js-upload-submit"); // кнопка по которой срабатывает скрипт
const saveScanStat = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > div.b-popup-button.js-upload-submit"); // кнопка по которой срабатывает скрипт
let q = document.querySelector("#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div").childElementCount //Кол-во элементов для фикла
let sostav = ' состав неопределен'
let docId = document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > input[type=hidden]:nth-child(4)").value

//it's selector for add new document without the card
//document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > input[type=hidden]:nth-child(4)").value
let a40 = document.querySelector("#b-case-header > ul.crumb.g-ec > li > span").textContent.split(" ")[20]

const docId = document.querySelector(" form > input[name=DocumentId]").value
//Если документ ид отсудствует, берем инстанст ид и добавляем к нему свой ид, предварительно проверяя есть ли подобные ид
// либо получать этот ид после добавления докумнта из дива и получив записывать в статистику
const a40 = document.querySelector("#b-case-header > ul.crumb.g-ec > li > span").textContent.split(" ")[20]

//Ищем и определем состав
for (let i = 1; i < q; i++) {
if (document.querySelector(`#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div > div:nth-child(${i}) > div.r-col > h2 > a > span`) !== null) {
let checker = document.querySelector(`#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div > div:nth-child(${i}) > div.r-col > h2 > a `)
if (document.querySelector(`#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div > div:nth-child(${i}) > div.r-col`) !== null) {
let checker = document.querySelector(`#chrono_list_content > div.b-chrono-items-container.js-chrono-items-container > div > div:nth-child(${i}) > div.r-col`)
.textContent //полуучает текст
.trim() //Удаляет пробелы "с краёв"
.split(` `) //Правращает в масив по разделителю " "
Expand All @@ -44,17 +43,15 @@ function addStaticOnLocalStorage() {
else { sostav = ' состав неопределен' }
}
}
if(document.querySelector(`#userSS`) === null){
if (document.querySelector(`#userSS`) === null) {
sostavAtPopup(sostav)
}


let params = {
saveScanStat: saveScanStat,
sostav: sostav,
docId: docId,
a40: a40,
if (!document.querySelector(`#lastOnloadFile`) ) {
lastOnloadFile()
}

const params = { saveScanStat, sostav, docId, a40, }
resolve(params)

} else if (mutationRecords.length === 1) {
Expand All @@ -66,20 +63,19 @@ function addStaticOnLocalStorage() {
childList: true
})
})
promise.catch((err) => { console.error(`Error: `, err) })
promise
.catch((err) => { console.error(`Error: `, err) })
.then((params) => {

//Срабатывает прии НАЖАТИИ на "Сохранить"
//Сохраняет в локал сторадж данные загруженного документа
params.saveScanStat.onclick = () => {
let now = new Date()
let dataForLS = {}
dataForLS = JSON.parse(localStorage.getItem(`sostav${params.sostav}`))
if (dataForLS == null) {
dataForLS = {};
}
let currentDate = new Date()
let dataForLS = JSON.parse(localStorage.getItem(`sostav${params.sostav}`)) || {}

dataForLS[params.docId] = {
day: `${now.getDate()}`,
month: `${1 + now.getMonth()}`,
day: `${currentDate.getDate()}`,
month: `${1 + currentDate.getMonth()}`,
a40: `${params.a40}`,
}
localStorage.setItem(`sostav${params.sostav}`, JSON.stringify(dataForLS)
Expand All @@ -90,30 +86,38 @@ function addStaticOnLocalStorage() {
function sostavAtPopup(sostav) {
const elem = document.createElement("div")
elem.className = "b-popup-info"
elem.innerHTML = `<div class="b-popup-info-title" id="userSS">Состав</div><span class="b-popup-info-text js-popup-info-text" title="${sostav}">${sostav}</span>`
let isYourSostav = false
function isCorrectSostav() {
for (let i = 0; i < usersSettings.usersSS.length; i++) {
if (usersSettings.usersSS[i] == sostav) {
isYourSostav = true
return
} else {
isYourSostav = false
elem.innerHTML = `<div class="b-popup-info-title" id="userSS">Состав</div><span class="b-popup-info-text js-popup-info-text" title="${sostav}">${sostav} </span>`

if (sostav === ` состав неопределен` || !usersSettings.usersSS.includes(Number(sostav), 0)) {
const buttonsSelectionSS = usersSettings.usersSS.map((key) => { return `<div id="SS${key}" class="tampleteButton" style="width: auto;">${key}</div>` })
elem.innerHTML = `<div class="b-popup-info-title">Состав</div><span class="b-popup-info-text js-popup-info-text" id="SSOnPop" title="${sostav}">${sostav} </span>` + buttonsSelectionSS
elem.style.color = "red"
if (!document.querySelector(`#SSOnPop`)) {
document.querySelector("div.js-popup-info_attributes").append(elem)
for (let i = 0; i < usersSettings.usersSS.length; i++) {
document.querySelector(`#SS${usersSettings.usersSS[i]}`).addEventListener("click", () => {
document.querySelector("#SSOnPop").innerText = usersSettings.usersSS[i]
document.querySelector("#SSOnPop").style.color = "black"
sostav = usersSettings.usersSS[i]
return sostav
})
}
}
}
isCorrectSostav()
if (sostav === ` состав неопределен` || !isYourSostav) {
elem.innerHTML = `<div class="b-popup-info-title">Состав</div><span class="b-popup-info-text js-popup-info-text" id="SSOnPop" title="${sostav}">${sostav}</span>`
elem.style.color = "red"
}
if (document.querySelector(`#SSOnPop`) !== null) { } else { document.querySelector("div.js-popup-info_attributes").append(elem) }

if (!document.querySelector(`#SSOnPop`)) { document.querySelector("div.js-popup-info_attributes").append(elem) }

}

function lastOnloadFile() {
const elem = document.createElement("div")
elem.id = `lastOnloadFile`
elem.innerHTML = ` - последний был ${JSON.parse(localStorage.getItem(`downLoadFilles`)).pop()}`
document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload.b-popup--edit.js-popup--edit > form > div.b-popup-file_upload-wrapper.js-popup-file_upload-wrapper.b-popup-file_upload-wrapper--titled > div.b-popup-file_upload.js-popup-sj-file_upload > a")
.after(elem)
}
}

function changeSS(SS) {
sostav = SS
}

export { addStaticOnLocalStorage }
22 changes: 22 additions & 0 deletions modules/addTamplaties.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,27 @@ function addTamplaties() {
const applicantl1 = document.querySelector("#gr_case_partps > table > tbody > tr > td.plaintiffs.first > div > ul > li > span > a").innerText; //Истец
const applicantl2 = document.querySelector("#gr_case_partps > table > tbody > tr > td.defendants > div > ul > li > span > a").innerText; //Ответчик


const classBlok = document.createElement("style")
classBlok.innerHTML = "div.tampleteButton{height: 30px;width: 130px;-webkit-appearance: button;-webkit-writing-mode: horizontal-tb !important;color: buttontext;text-shadow: none;display: inline-block;text-align: center;align-items: flex-start;background-color: buttonface;box-sizing: border-box;margin: 0em;font: 400 13.3333px Arial;padding: 1px 6px;border-width: 2px;border-style: outset;border-color: buttonface;border-image: initial;}}";
const divBlok = document.createElement("div")
divBlok.id = "UserTempale"
divBlok.innerHTML = `
<div id="istec" class="tampleteButton" >Истец</div>
<div id="otvetchik" class="tampleteButton">Ответчик</div>
<div id="PoObshimPravilam" class="tampleteButton">По общим</div>
<div id="Clarify" class="tampleteButton">Уточнение.И</div>
<br>
<div id="hodOPriob" class="tampleteButton">Приобщении.И</div>
<div id="Otziv" class="tampleteButton">Отзыв.О</div>
<div id="otkazOtIska" class="tampleteButton">Отказ.И</div>
<div id="processualnoePravopriemstvo" class="tampleteButton">Правоприемство</div>`;

document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > div.b-popup-button.js-upload-submit").before(classBlok)
document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > div.b-popup-button.js-upload-submit").before(divBlok)



//События меняют стороны
document.getElementById("istec").onclick = () => (document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > dl > dd > div > span > label > input").value = applicantl1);
document.getElementById("otvetchik").onclick = () => (document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > dl > dd > div > span > label > input").value = applicantl2);
Expand All @@ -19,6 +40,7 @@ function addTamplaties() {
document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > dl > dd > div > span > label > input").value = licantl;
document.querySelector("#b-container > div.b-popup-wrapper.js-popup-wrapper.js-popup-wrapper--upload > div.b-popup.b-popup--blue.b-popup--upload.js-popup--upload > form > table > tbody > tr > td.b-popup-sj-table-item.b-popup-sj-table-item--name > dl > dd > a > span.selectBox-label").innerHTML = showText;
}

//Данные для заполнения шаблонов
const tamplatesValue = {
otziv: {
Expand Down
Loading