From 67459900f051cda518800a307eb5e505a3ff380c Mon Sep 17 00:00:00 2001 From: Dmitriy Gorshenin Date: Wed, 4 Dec 2024 19:54:59 +0300 Subject: [PATCH] migrate --- Pizipus/.gitkeep | 0 Pizipus/icons/.gitkeep | 0 Pizipus/icons/icon128.png | Bin 0 -> 1184 bytes Pizipus/icons/icon16.png | Bin 0 -> 523 bytes Pizipus/icons/icon19.png | Bin 0 -> 585 bytes Pizipus/icons/icon48.png | Bin 0 -> 988 bytes Pizipus/manifest.json | 23 ++ Pizipus/src/.gitkeep | 0 Pizipus/src/browser_action/.gitkeep | 0 Pizipus/src/browser_action/popup.css | 9 + Pizipus/src/browser_action/popup.html | 385 ++++++++++++++++++++++++++ Pizipus/src/browser_action/popup.js | 0 README.md | 5 + lzipus/.gitkeep | 0 lzipus/icons/.gitkeep | 0 lzipus/icons/icon128.png | Bin 0 -> 5283 bytes lzipus/icons/icon16.png | Bin 0 -> 490 bytes lzipus/icons/icon19.png | Bin 0 -> 2152 bytes lzipus/icons/icon48.png | Bin 0 -> 3241 bytes lzipus/manifest.json | 24 ++ lzipus/src/.gitkeep | 0 lzipus/src/browser_action/.gitkeep | 0 lzipus/src/browser_action/popup.css | 126 +++++++++ lzipus/src/browser_action/popup.html | 261 +++++++++++++++++ lzipus/src/browser_action/popup.js | 328 ++++++++++++++++++++++ 25 files changed, 1161 insertions(+) create mode 100644 Pizipus/.gitkeep create mode 100644 Pizipus/icons/.gitkeep create mode 100644 Pizipus/icons/icon128.png create mode 100644 Pizipus/icons/icon16.png create mode 100644 Pizipus/icons/icon19.png create mode 100644 Pizipus/icons/icon48.png create mode 100644 Pizipus/manifest.json create mode 100644 Pizipus/src/.gitkeep create mode 100644 Pizipus/src/browser_action/.gitkeep create mode 100644 Pizipus/src/browser_action/popup.css create mode 100644 Pizipus/src/browser_action/popup.html create mode 100644 Pizipus/src/browser_action/popup.js create mode 100644 README.md create mode 100644 lzipus/.gitkeep create mode 100644 lzipus/icons/.gitkeep create mode 100644 lzipus/icons/icon128.png create mode 100644 lzipus/icons/icon16.png create mode 100644 lzipus/icons/icon19.png create mode 100644 lzipus/icons/icon48.png create mode 100644 lzipus/manifest.json create mode 100644 lzipus/src/.gitkeep create mode 100644 lzipus/src/browser_action/.gitkeep create mode 100644 lzipus/src/browser_action/popup.css create mode 100644 lzipus/src/browser_action/popup.html create mode 100644 lzipus/src/browser_action/popup.js diff --git a/Pizipus/.gitkeep b/Pizipus/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Pizipus/icons/.gitkeep b/Pizipus/icons/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Pizipus/icons/icon128.png b/Pizipus/icons/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..15d7af2118757dc00cd721de56cf61b094d30aa1 GIT binary patch literal 1184 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xB0oAoIF#H0kf5E^|YQVtoDuIE)Y6b&?c)^@qfi^&ikN}?$*Z=?ji^$~>iTF+0 z_^f)kyygk3l(2`cVoBS>PTeiB>s2FAh@OxcG7^c#Q%o<5rM1!z8BNswPKgMdRp z!-4|_0UstLJh+hQB`yGzVNCLNcVXyYmGuB}I14-?iy0WWg+Q3`(%rg0Ktc8rPhVH| zXUr^|%Gx*2bBQr9FiUy5IEGZ*dK-On(<%djmKIkL$JF&_O7{-ZBvWi>Mz_><(T7i`TK?m zEe$Wt*{nrBTm12Qnozflb>g4@49Z-ApWgEt35OT{oT{{HBTwA_`zw07rm$VxZ+S&6 zlyB94Zw&|5562$4t^Ffiw{+Sig$w_hkD2)}l=)gOxEcA+YFN9q`e zv(&N5_*aQ7SFY}y>Gi;?;QG9;O6PR1^9Fl9^PDj8-m#Wjy3Dh?)e18sylXohPgSy) zsL%R0k6T7PWPX>9r2Wo$m4CKd#H@`yaH2tZ`abr>a(0^<0-4tG?!TtH_t6f44Bi{J zKW6V$pDvThsM|E{{Q1uZqxr5oK0bf0`Ri$hRc!0^{zL_D4Y2*WvNz-Sy8ZrhG;J&L z0#@n^F8k+Gs3dl-QZOUt=T^0lok>?6j$in%8q=XLWzP2r&aC?!uOuA{P`u7l({SQ& zyO?VU!^@_5@iYD(J$e*6a%-{M zy1d}rEOEE2`PlyGeCA~a`8+|3IQagt$@H)^8621&pM8iSS@fNgM8cnB4+aI1E^Lc-8D>iu>{z+x2mpyE*@LmaG literal 0 HcmV?d00001 diff --git a/Pizipus/icons/icon16.png b/Pizipus/icons/icon16.png new file mode 100644 index 0000000000000000000000000000000000000000..28c6e6e5dd315d6c76826059e2516c68ef214732 GIT binary patch literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>E@gF?d;7C! z=j#>!SR7y8`ozg99SW3WO!9Vjk$ufvI1$LF?iE*Z|(xXI^ z%QpULGBbXix~BUhVos{sw%2Te?_D>not9b7A(Z5`k$=bBKH*PKg0fHcKd?FB;8Yj= z{H$Zbi>4!&c756=#43LG!^&;_vuyHoHM*@<-CLEQwM*-J{D1b=69SxWLCKSV?ocgp zjVMV;EJ?LWE=mPb3`Pb!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD3KZ96XFV_Mdb3xN3yxX zKk_ao}ug2BR0 zpdfpRr>`sfGiDY}W$l~ixx|1%D?D8sLnJQeUbxNItiZ$epiD_vwBMCa?$y2js^Obr zb+}dU)F|ryWn}mexH8JVbnPm3C%q%bw#Ytx6?Iu5?NzSW^O&&P+)2ruX3vlAx!v)m z!C;n;;xgN#3O8m7E{l9&p`W(zoO8iE2hY_7pZ-odoIYV0mza{geq;1IQQM15QEF=E zR8Dv<%Z@l&w$J|P?i*1x;jhAHMgNM=?7y^cX$(vI{6B1emi?OkSvsLuN_l(nid>+Z zRZCnWN>UO_QmvAUQh^kMk%5tsu7R9 YnO2EgL(F-Rk3bC!p00i_>zopr0OuaQRsaA1 literal 0 HcmV?d00001 diff --git a/Pizipus/icons/icon48.png b/Pizipus/icons/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..397b7efb11d5f4267960299ca22a2844ec4270f6 GIT binary patch literal 988 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgaWcRs#1%-3$mIs}<^TWx_h-2I3g{Wlk|4ie1_m~zz?QWquHRskh*%6w@|Nmgt?8yxa?w+gO$8ItCChzGy4o(Jzi9Sn>Z_ZJ9x@l&K)=UP4j}0}BVM`We z-B~E6>ZZJD-h z@0LB?2jou))G8%^+QZ#&()usn=>tsPxfB<`oEw1aU*`G z0I45rs-Y40?c!}d>A!fI!!7sf$mRy8$cX=cU+t2Qc@P_SpS8c}pzsON#J}32Kle4o zvG#ZIs4OhlS6bHm=l0v1kGNDFmkI5TwwP{kKRjj*>tc`KNm@qDS0~ziuw}JfH^bG? zH7%!K?Db^n&dakRR~S!v_;o{J@`i_@lN5{ReVXR>`Q^0bw(6E@5$_(c>{bdcJap7dQeC=OH7kV?t*1Y)SR`2k`UqtQvtOL)(cW??^D9B~If8xSg zq5C}_-^$qrd{E}L7x`<$w)n?JYblpG3KN?D%Dc1wdH5v%`276Z>Go&l|32&ujAYdk z*NBpo#FA92%!A!*3XPsvQH W#H}IbyvRqO1_n=8KbLh*2~7YgA#)!9 literal 0 HcmV?d00001 diff --git a/Pizipus/manifest.json b/Pizipus/manifest.json new file mode 100644 index 0000000..74b20fd --- /dev/null +++ b/Pizipus/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "Pizipus", + "version": "1.1.0", + "manifest_version": 2, + "description": "Pizipus -- help your a...", + "homepage_url": "https://github.com/AM-EO/izipus", + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + }, + "browser_action": { + "default_icon": "icons/icon19.png", + "default_title": "browser action demo", + "default_popup": "src/browser_action/popup.html" + }, + "permissions": [ + "clipboardRead", + "clipboardWrite", + "contextMenus", + "storage" + ] +} \ No newline at end of file diff --git a/Pizipus/src/.gitkeep b/Pizipus/src/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Pizipus/src/browser_action/.gitkeep b/Pizipus/src/browser_action/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Pizipus/src/browser_action/popup.css b/Pizipus/src/browser_action/popup.css new file mode 100644 index 0000000..7a61eea --- /dev/null +++ b/Pizipus/src/browser_action/popup.css @@ -0,0 +1,9 @@ +body{ + margin: 0; + line-height: 1; + min-width: 300px; + max-width: 3000px; + width: 300px; + font-family: helvetica; + user-select: none; +} \ No newline at end of file diff --git a/Pizipus/src/browser_action/popup.html b/Pizipus/src/browser_action/popup.html new file mode 100644 index 0000000..ccea97f --- /dev/null +++ b/Pizipus/src/browser_action/popup.html @@ -0,0 +1,385 @@ + + + + + + + + + + +
+ + + + + + + +
+ + + + \ No newline at end of file diff --git a/Pizipus/src/browser_action/popup.js b/Pizipus/src/browser_action/popup.js new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..433e502 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +Установка расширения для шаблона ответов для google браузера : +1) Скачать и распаковать расширение +2) Включить режим разработчика (chrome://extensions/) +3) Загрузить распакованное расширение +4) Прилепить к экрану \ No newline at end of file diff --git a/lzipus/.gitkeep b/lzipus/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lzipus/icons/.gitkeep b/lzipus/icons/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lzipus/icons/icon128.png b/lzipus/icons/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec65d192a3dcea7d902dbe95c042f76a865c1d9 GIT binary patch literal 5283 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 IUAK?@AC5^NlK=n! literal 0 HcmV?d00001 diff --git a/lzipus/icons/icon16.png b/lzipus/icons/icon16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1ea43f90b2b1a3553ab1db7f57fd03765bcbf1 GIT binary patch literal 490 zcmVfCwJTSREk!V!$5!~g6W zCh)EyTKE|ei)*;7l(LAv6&w~KVrwa-jl;<`7MP8Qnfod1`fCZ8!Emly_=qKJNUn{!6(db`Ho)PG(@xm{>c}*5h!1 zNUMMFQYBGA>kf^S6@Fqat}TvrHWwT8+1#QkFTm6{|X?tXCVg9qo6t{yxZ8O|Q= zDDa1|u&f}cWTMb}Z!X=WJs&FMpWiL6cyH&hV*1Rq(jMknd9zo##GFY9KYBs?5XS=k z!yTv27(G+bIUcAz=ykqgIWx@L`!E?#N6(>fsuOR<1P zwwqs@{~vsRGwSC_PJK-ocB^=q=gBM_Z<%^$J+6_r_Iu32VaFU^bvk|}v+?{T*Q27o zaJ;z7rnfG7)+Y9tcMQz_Z8@jbi7Zil^7+7T$=YDC7yDUvUEj0Q^nBqjh9#L{C#4@e z5RlLf__pi(?%lVZf6MnTuCq^UDq8UEz`{qs=uk-Z2=ZlMs8VBKXlP+z_yrVdc)`F> zYQVtoDuIE)Y6b&?c)^@qfi}Q6YYXrRaphq64^#srN6|oq0E61UQ>|=nz-VYJ3GxeO zVA%ENYr?ydz~H4z7@untY+%+gW75v-?`<)Vu&|P2+q-*Db=A46S0>A|vIrlIRQ5Qi z#=+UXU6yD1YTi?ZDq{PRGHffRJ=D+MxyAF$-c?)@v|Ez`=sW7SpF>~ zXws#{rVajU&n`4lbX7g>l|S`v+hu1vQNG0YA8!dPs-0s6bPQvXx4TQD(5`jB{LR2w z;1O92%>UOxn9)gNb_Gz7y~NYkmHh<|qoA6eXY#*xpq_(OArU1(iRB6fMfqu&IjIUI zl?AB^;DW)TcWH2R-xCF%KhH&~Sstfb_(?Tw`M&>v6wlvT^QNX<=jsY-D@qK%^ginH zdcmw22`uv#gnG^vH1PG99e1p)DW`{{$YY`~;~OiR*xJ`h%0-4^z6r+L&F8kqF8tYcX@vz)^$uJ3^H?t6!CZ~Rca zl_~pE**P<}MYeo<9)$0G{H-P5v5#Nr+sT%YGkdfe>yE?6Ri4;&~0F ztl{6AJ|D}CKYRRrvC+lvnr}VBMEAP1d~2Lq#+0vE@bRfqicfA#Nc-g@_vZ!NH<{Iw zTN}SIJ;JF#@WJkeFXgO1YcvERjv92GRT6QXG1uew55=0N?MxMag!~O6?6Mon2GFv+Yw?ZrIKwynk-xzT2x@*7_}arDdmiLC$>fVs^!;{azEj`Cb3c zxV$6tX@5&Z&a<~O-q)D0o9xbgcU{J1_vaOIlg0hJ)jVdhYv!;mzY|v@?l_ynFYEJy z0*RjNxzgU6&sPZ?iG5YR@Ala`Y3n!j@47$!YkqOH<0b#has|IRT0af~Bh$pw#W6(U zvhRdUYo7+Nm|6M$5Z)2tZuKWJp=R3d4 zZP~hgg)`rYloxM;O8$E;e6x^aarH-i(ZgmlceQ>!`CHXEgLn1SLK*V~#}^#TSme=t z?Zcf3H*InZBi(b#ey?aYFpY40FjsHs?Z>4(hL88D75`$k5uL*!7+q1MrBul}_x9RL z{_c)vSFoNrcl1PGH!P>(c7 z4=_hsCFd7Z7G@3uZesud literal 0 HcmV?d00001 diff --git a/lzipus/icons/icon48.png b/lzipus/icons/icon48.png new file mode 100644 index 0000000000000000000000000000000000000000..80bc3a7ff2c3c58608bed232baf89c6cc12ce4c5 GIT binary patch literal 3241 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 literal 0 HcmV?d00001 diff --git a/lzipus/manifest.json b/lzipus/manifest.json new file mode 100644 index 0000000..40dda65 --- /dev/null +++ b/lzipus/manifest.json @@ -0,0 +1,24 @@ +{ + "name": "Izipus", + "version": "1.1.0", + "manifest_version": 2, + "description": "Izipus -- help your a...", + "homepage_url": "https://github.com/AM-EO/izipus", + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + }, + "browser_action": { + "default_icon": "icons/icon19.png", + "default_title": "browser action demo", + "default_popup": "src/browser_action/popup.html" + }, + "permissions": [ + "clipboardRead", + "clipboardWrite", + "contextMenus", + "storage", + "cookies" + ] +} diff --git a/lzipus/src/.gitkeep b/lzipus/src/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lzipus/src/browser_action/.gitkeep b/lzipus/src/browser_action/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lzipus/src/browser_action/popup.css b/lzipus/src/browser_action/popup.css new file mode 100644 index 0000000..8ca566d --- /dev/null +++ b/lzipus/src/browser_action/popup.css @@ -0,0 +1,126 @@ +body { + margin: 0; + min-width: 300px; + max-width: 3000px; + width: 400px; + background: #abcef5; /* Светлый фон */ + font-family: Helvetica; + box-sizing: border-box; +} + +div.container { + display: flex; + flex-direction: column; + padding: 1px; +} + +div.header { + display: flex; + flex-direction: row; + justify-content: center; + padding: 6px; +} + +h1 { + padding: 6px; +} + +h3 { + padding: 6px; +} + +i { + width: 20px; +} + +button.template-add, +button.template-edit, +button.template-delete { + margin: 1px; + padding: 7px; + background-color: #abcef5; /* Светлый фон кнопок */ + border-color: #abcef5; /* Цвет рамки кнопок */ + cursor: pointer; /* Указатель при наведении */ +} + +div.templates { + display: flex; + flex-direction: column; + min-height: 200px; +} + +span.template { + display: flex; + flex-direction: row; + justify-content: space-between; + height: fit-content; + padding: 8px 7px; + border: 2px solid #8844aa; /* Цвет рамки */ + border-radius: 10px 100px / 120px; + overflow: hidden; +} + +.formochka { + margin-left: 10px; +} + +#template-title-input { + margin-bottom: 7px; +} + +span.buttons { + display: flex; + align-items: center; +} + +span.buttonsLong { + display: flex; + justify-content: center; +} + +span.template:hover { + background: #d0e6ff; /* Подсветка при наведении */ +} + +.hidden { + display: none; +} + +.category { + margin-bottom: 10px; + border: solid #8888c6 4px; + border-radius: 1px 10px / 12px; + box-shadow: 10px 5px 5px #8888c6; +} + +/* Стили для темной темы */ +body.dark-theme { + background: #1a1a1a; /* Темный фон */ + color: white; /* Светлый текст */ +} + +body.dark-theme button.template-add, +body.dark-theme button.template-edit, +body.dark-theme button.template-delete { + background-color: #333; /* Темные кнопки */ + border-color: #333; /* Темные рамки */ + color: white; /* Светлый текст на кнопках */ +} + +body.dark-theme span.template { + border-color: #666; /* Темные рамки для шаблонов */ +} + +body.dark-theme span.template:hover { + background: #444; /* Подсветка при наведении в темной теме */ +} + +.btn-dark { + background-color: #444; + color: white; + border: none; +} + +btn-dark:hover { + background-color: #555; +} \ No newline at end of file diff --git a/lzipus/src/browser_action/popup.html b/lzipus/src/browser_action/popup.html new file mode 100644 index 0000000..e70c7ff --- /dev/null +++ b/lzipus/src/browser_action/popup.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + +
+
+

Твои шаблоны

+ +
+
+
+

Промежуточные ответы

+ + Приняли в работу + + RU + ENG + + + + + Начали диалог с ОС + + RU + ENG + + + + + Работаем над запросом + + RU + ENG + + + + Ждем ответа от оператора + + RU + ENG + + + + Всё еще ждем ответа от оператора + + RU + ENG + + + + Появилась ли информация? + + RU + ENG + + + + Появился ли ответ? + + RU + ENG + + + + Появились ли новости? + + RU + ENG + + + + Передали ответственной команде + + RU + ENG + + +
+ +
+

Запросы партнерам

+ + Запрос: Недоставка + + RU + ENG + + + + Запрос: Фейк доставка + + RU + ENG + + + + Запрос: Задержки + + RU + ENG + + + + Разрыв соединения + + RU + ENG + + + + Запрос: Корректность HLR + + RU + ENG + + +
+ +
+

Ответы клиентам

+ + Не фиксируем на платформе + + RU + ENG + + + + Все доставлено + + RU + ENG + + + + Проблемы с ТА + + RU + ENG + + + + 501: Не обслуживается + + RU + ENG + + + + В статусе отправлено + + RU + ENG + + + + 132: Дубликаты + + RU + ENG + + + + 508: Недоступен + + RU + ENG + + + + Корректировка маршрутизации + + RU + ENG + + + + Технические неполадки + + RU + ENG + + + + Регистрации сендеров + + RU + ENG + + + + Block list by MSISDN + + RU + + + + Общее имя + + RU + + + + Нет ответа + + RU + + + + Провели тестирование + + RU + + + + Информация менеджеру + + RU + + +
+ +
+

Даофис

+ + Внести номер телефона в аксапту + + RU + + + + Учетка в порядке + + RU + + + + Нет ответа + + RU + ENG + + +
+
+
+ + + + + + diff --git a/lzipus/src/browser_action/popup.js b/lzipus/src/browser_action/popup.js new file mode 100644 index 0000000..722e8b7 --- /dev/null +++ b/lzipus/src/browser_action/popup.js @@ -0,0 +1,328 @@ +document.addEventListener("DOMContentLoaded", function () { + document.getElementById("inWorkRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nПриняли Ваш запрос в работу. Сообщим по мере поступления информации.") + }); + document.getElementById("inWorkEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear customer,\n\nWe are working on your request.") + }); + document.getElementById("dialogueRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nУведомляем вас о том, что мы начали диалог с оператором по данному запросу. Мы ожидаем ответа и будем держать вас в курсе любых изменений.") + }); + document.getElementById("dialogueEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues.\n\nWe would like to inform you that we have started a dialogue with the operator on this request. We are awaiting a response and will keep you informed of any changes.") + }); + document.getElementById("nonDelRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nПросьба уточнить причину недоставки следующих сообщений клиенту:") + }); + document.getElementById("nonDelEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nPlease check why the following messages were not delivered:") + }); + document.getElementById("fixItRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nМы не фиксируем на нашей платформе ваших СМС-сообщений, просьба предоставить ответ от нашей платформы на ваш запрос отправки. Так же просьба предоставить логи, подтверждающие отправку на нашу платформу, данная информация необходима для дальнейшего анализа вашего запроса.") + }); + document.getElementById("fixItEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nWe do not record your SMS messages on our platform, please provide a response from our platform to your request to send. Please also provide logs confirming sending to our platform, this information is necessary for further analysis of your request.") + }); + document.getElementById("fakeRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nПросьба уточнить корректность статусов доставки следующих сообщений клиенту. Абонент не получал СМС.") + }); + document.getElementById("fakeEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nPlease clarify the correctness of the delivery statuses of the following messages to the client. The subscriber did not receive an SMS.") + }); + document.getElementById("weworkRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nУведомляем вас о том, что работы по вашему запросу продолжаются. Как только появится информация, мы вам сообщим.\n\nБлагодарим за понимание и приносим извинения за доставленные неудобства.\n") + }); + document.getElementById("weworkEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear Colleagues.\n\nWe notify you that work on your request is ongoing. As soon as information becomes available, we will inform you.\n\nThank you for your understanding and we apologize for the inconvenience caused.\n") + }); + document.getElementById("wework2Ru").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nЖдем ответа от оператора. Сообщим, как только появится соответствующая информация. Спасибо!") + }); + document.getElementById("wework2En").addEventListener("click", () => { + navigator.clipboard.writeText("Dear Colleagues.\n\nWe are waiting for a response from the operator. We will inform you as soon as we have an update. Thank you!") + }); + document.getElementById("wework3Ru").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте!\n\nОтправили повторный запрос оператору по данному поводу.\n\nСпасибо!") + }); + document.getElementById("wework3En").addEventListener("click", () => { + navigator.clipboard.writeText("Hello!\n\nWe have sent an additional request to the operator.\n\nThank you!") + }); + document.getElementById("theyworkRu").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте, коллеги.\n\nПоявилась ли информация по данному вопросу?\n\nСпасибо.") + }); + document.getElementById("theyworkEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nIs there any information on this request?\n\nThank you.") + }); + document.getElementById("theywork2Ru").addEventListener("click", () => { + navigator.clipboard.writeText("Добрый день!\n\nПросим вернуться с ответом.\n\nБольшое спасибо!") + }); + document.getElementById("theywork2En").addEventListener("click", () => { + navigator.clipboard.writeText("Hello Team!\n\nPlease let us know if there are any updates.\n\nThank you!") + }); + document.getElementById("theywork3Ru").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте!\n\nПодскажите, пожалуйста, появились ли новости.\n\nСпасибо!") + }); + document.getElementById("theywork3En").addEventListener("click", () => { + navigator.clipboard.writeText("Hello!\n\nPlease kindly advise on issue status.\n\nThank you.") + }); + document.getElementById("delivedRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nСообщение успешно прошло через платформу и было отправлено оператору. По информации от оператора, сообщение было своевременно доставлено. В случае, если абонент утверждает, что сообщения не были получены, просьба проверить исправность работы ТА. Возможные рекомендации: перезагрузка телефона, очистка памяти от устаревших сообщений, проверка спам-фильтров и черных списков, обновление ПО.\n\nПри сохранении проблемы, просьба запросить у абонента детализацию. Данная информация потребуется для дальнейшего взаимодействия с оператором.") + }); + document.getElementById("delivedEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues, according to the information from the operator, messages were delivered in a timely manner. If the subscriber claims that the messages have not been received, please check that device is working correctly. Possible recommendations: reboot the phone, clear message memory, check spam filters and blacklists, update the software.\n\nIf the problem still persists, please ask the subscriber for details. This information is necessary to continue interaction with the operator.") + }); + document.getElementById("problphRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nСообщение успешно прошло через платформу и было отправлено оператору. По информации от оператора, сообщение не было доставлено абоненту по причине сбоя ТА. Возможные рекомендации для абонента: перезагрузка телефона, очистка памяти от устаревших сообщений, проверка спам-фильтров и черных списков, обновление ПО.\n\nПросьба уведомить нас в случае, если ситуация повторится.") + }); + document.getElementById("problphEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues, according to the information from the operator, messages were not delivered due to subscriber’s device failure. Possible recommendations: reboot the phone, clear message memory, check spam filters and blacklists, update the software.\nPlease let us know if the problem persist.") + }); + document.getElementById("notservRu").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте, коллеги.\n\nСообщение успешно прошло через платформу и было отправлено оператору. По информации от оператора, сообщение абоненту не было доставлено, т.к. номер телефона не существует или не обслуживается.") + }); + document.getElementById("notservEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues\n\nThe message successfully passed through the platform and was sent to the operator. According to the information from the operator, the messages were not delivered to the subscriber because the phone number does not exist or is not serviced.") + }); + document.getElementById("insentRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nСообщение успешно прошло через платформу и было отправлено оператору. Сообщения находятся в статусе Отправлено, SMS-центр оператора продолжает осуществлять попытки их доставки.\nНаиболее вероятной причиной задержки в доставке может являться нахождение абонента в зоне неуверенного приема сети, также возможен технический сбой в работе телефона абонента.") + }); + document.getElementById("insentEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues,\n\nThe messages are in Sent status, operator's SMS center is continuing delivery attempts. Most likely, delivery delays are caused by subscriber being in the area of uncertain network reception, or a technical failure in the operation of the subscriber's phone is also possible.") + }); + document.getElementById("dubleRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nМониторингом были зафиксированы дубликаты сообщений, в связи с чем сработала блокировка. Если в короткий промежуток времени на площадку поступает два одинаковых сообщения, повторное блокируется как дубликат.\nЕсли отправка дубликатов была запланирована, либо номер абонента используется для тестирования подключения, просьба сообщить, мы добавим абонента в белый список. ") + }); + document.getElementById("dubleEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues, duplicates were blocked by our monitoring system. If two identical messages are received within a short period of time, the second one is blocked as a duplicate. If sending duplicates was planned, or the subscriber's number is used for testing, please let us know and we will whitelist the subscriber.") + }); + document.getElementById("unvelbRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nСообщение успешно прошло через платформу и было отправлено оператору. Сообщения абоненту не были доставлены т.к. ТА абонента был недоступен - выключен или находился в зоне неуверенного приема сигнала.\nРекомендуем абоненту перезагрузить телефон, проверить доступность сети оператора, очистить память телефона от устаревших сообщений.\n") + }); + document.getElementById("unvelbEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues,\n\nThe messages were not delivered to the subscriber because the subscriber's phone was unavailable - turned off or was in the zone of uncertain signal reception.\nWe recommend that the subscriber restart the phone, check the availability of the operator's network, and clear the phone's memory of outdated messages.\n") + }); + document.getElementById("delayRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nПросьба уточнить текущий статус сообщений и причины задержек:") + }); + document.getElementById("delayEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear Colleagues.\n\nPlease clarify current messages status and the reasons for the delays:") + }); + document.getElementById("conbreRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\n\nНаблюдаем разрыв соединения. Просьба уточнить, ситуация штатная?") + }); + document.getElementById("conbreEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues.\n\nWe observe a connection break. Please clarify whether it’s a standard situation.") + }); + document.getElementById("corroutRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nПо информации от оператора, для абонента были внесены корректировки в таблицы маршрутизации.\n\nПросьба проверить и сообщить в случае повторения ситуации.") + }); + document.getElementById("corroutEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nThe adjustments have been made in routing settings.\n\nAs our logs are now showing positive delivery results, we would like to ask you to perform a fresh check on your side and share the results in case if further assistance is required.") + }); + document.getElementById("tehtroubRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nПо информации от оператора, сообщения не были доставлены абоненту из-за временных технических неполадок на стороне оператора. На текущий момент доставка сообщений осуществляется в штатном режиме.\nПросьба проверить и сообщить в случае повторения ситуации.") + }); + document.getElementById("tehtroubEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nAccording to information we got from the operator, the messages were not delivered to the subscriber due to temporary technical issues on the operator's side. At the moment, messages are being delivered in the regular mode.") + }); + document.getElementById("senderRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\nСообщение не было доставлено, так как для имени отправителя ######## требуется регистрация.\nПросьба подать имя на регистрацию в ЛК или обратиться по данному вопросу к Вашему менеджеру.") + }); + document.getElementById("senderEn").addEventListener("click", () => { + navigator.clipboard.writeText("Colleagues, the below reported traffic failed to be delivered due to an unregistered Sender ID. Alphanumeric registration is required towards COUNRTY OPERATOR (MCCMNC), and delivery of messages with unregistered Sender IDs is on the best effort basis. To register, please contact your Account Manager.") + }); + document.getElementById("notResponseRU").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте!\n\nК сожалению, мы не получили от Вас ответа в течение 20 дней, поэтому запрос будет автоматически закрыт. Вы можете ответить на это письмо, если проблема не решена и требуется поддержка.") + }); + document.getElementById("notResponseEn").addEventListener("click", () => { + navigator.clipboard.writeText("Hello!\n\nUnfortunately, we have not received a response from you within 20 days, so the request will be automatically closed. You can reply to this email if the problem has not been resolved and support is required.") + }); + document.getElementById("fwd2treadRU").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\nПередали вопрос ответственной команде. Сообщим по мере поступления информации.") + }); + document.getElementById("fwd2treadEn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\n\nWe have escalated the issue to the responsible team.\nWe will keep you informed as we receive any updates.") + }); + document.getElementById("daoffice1RU").addEventListener("click", () => { + navigator.clipboard.writeText("Добрый день!\nДля регистрации в приложении \"КингДом\" необходимо внести Ваш номер телефона в Axapta.\n\nПо данному вопросу, пожалуйста, обратитесь к директору своего ресторана или на электронную почту: kingdom@burgerking.ru\n\nЧерез три часа после внесения номера, Вы сможете войти в сеть по номеру телефона, используя приложение \"КингДом\".") + }); + document.getElementById("officeRU").addEventListener("click", () => { + navigator.clipboard.writeText("Добрый день!\n\nМы проверили Вашу учетную запись - все данные корректны.\nПроверочный СМС-код успешно отправлен на Ваш мобильный телефон.\n\nПожалуйста, переустановите приложение \"КингДом\" (удалить\\скачать заново) по ссылкам ниже, чтобы исключить отсутствие свежих обновлений:\n\nAndroid:\n\nhttps://play.google.com/store/apps/details?id=ru.kingdom\n\nIOS:\n\nhttps://apps.apple.com/ru/app/%D0%BA%D0%B8%D0%BD%D0%B3%D0%B4%D0%BE%D0%BC/id1543206272?l=en-GB\n\nЕсли данные действия не помогут, то, пожалуйста, опишите подробнее, на каком моменте у Вас не получается зайти в систему (при наличии ошибки приложите скриншот).") + }); + document.getElementById("blockMsisdnRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\n\nДанный номер находится в глобальном ЧС.\nЭто означает, что клиент жаловался на получение СМС и отказался от получения всех СМС, либо были жалобы от данного абонента в УФАС.\nИз глобального ЧС, к сожалению, мы не можем разблокировать по Вашей просьбе, только в случае, если абонент напишет сам о просьбе разблокировать, с пометкой о согласии получения всех сообщений от оператора.\n\nЗаявление пишется в свободной форме, скан необходимо прислать на почту вашему менеджеру. Пример:\nКому: ООО «АйДиджитал»\nГенеральному директору: Баранову А.В.\nПрошу убрать мой номер ____________ из черного списка. Понимаю и соглашаюсь на возможное получение рассылок от других компаний, которые осуществляют рассылки через платформу АйДиджитал.\n\nПодпись и дата.") + }); + document.getElementById("commonSenderRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, сообщения были заблокированы согласно правил отправки для каналов с Общим именем. А именно -\n\n----------------------------\n\n в тексте сообщения содержится упоминания международного бренда (рассылки в интересах международных брендов).\n на канале запрещена отправка сообщений, если в качестве сендера используется международный сендер\n на канале запрещена отправка сообщений на латинице\n на канале запрещена отправка сообщений с кодами в тексте которых нет упоминания сервиса от которого идет отправка\n на канале запрещена отправка сообщений в тексте которых содержится ссылка (ссылкой считается - наличие http в URL)\n на канале запрещена отправка сообщений в тексте сообщений которых указаны только цифры\n на канале запрещена отправка сообщений с менее 13 символов в тексте") + }); + document.getElementById("noResponse").addEventListener("click", () => { + navigator.clipboard.writeText("Здравствуйте!\nК сожалению, мы не получили от Вас ответа в течение 5 рабочих дней, поэтому запрос будет автоматически закрыт.\nВы можете ответить на это письмо, если проблема не решена и требуется дополнительная помощь.") + }); + document.getElementById("conductedTesting").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги,\nМы провели тестирование данного направления, используя живые номера. Все сообщения были доставлены на устройства правильно и без задержек.\nПросьба провести повторное тестирование со своей стороны и сообщить в случае повторения ситуации.") + }); + document.getElementById("HLRRu").addEventListener("click", () => { + navigator.clipboard.writeText("Коллеги, здравствуйте.\nПросьба уточнить причину возврата некорректных HLR статусов на указанные номера:") + }); + document.getElementById("HLREn").addEventListener("click", () => { + navigator.clipboard.writeText("Dear colleagues,\nPlease clarify the correctness of HLR statuses for the following subscriber numbers:") + }); + document.getElementById("managerTemplate").addEventListener("click", () => { + navigator.clipboard.writeText("Страна: \nОператор: \nmccMnc: \nСендер: \nКлиент: \nSource node: \nDestination node: ") + }); +}); + +function copyToClipboard(text) { + navigator.clipboard.writeText(text) + .then(() => { + console.log('Текст скопирован в буфер обмена'); + }) + .catch(err => { + console.error('Не удалось скопировать текст: ', err); + }); +}; + +const templatesEl = document.querySelector('.templates'); +const addBtn = document.querySelector('.template-add'); +const editExisted = document.querySelector('template-edit-existed'); + +function createTemplate(title, RUText, ENText) { + const templateId = Date.now(); + const templateEl = document.createElement('span'); + templateEl.setAttribute('data-template-id', templateId); + templateEl.classList.add('template'); + templateEl.innerHTML = ` + ${title} +
+
+ + + +
+ + RU + ENG + + + + +
` + + const editBtn = templateEl.querySelector('.template-edit'); + const deleteBtn = templateEl.querySelector('.template-delete'); + const titleEl = templateEl.querySelector('#template-title'); + const textRUEl = templateEl.querySelector('#template-ru-text'); + const textENEl = templateEl.querySelector('#template-en-text'); + const titleInputEl = templateEl.querySelector('#template-title-input'); + const textRUInputEl = templateEl.querySelector('#template-textareaRU'); + const textENInputEl = templateEl.querySelector('#template-textareaEN'); + + editBtn.addEventListener('click', (e) => { + titleEl.classList.toggle('hidden'); + textRUEl.classList.toggle('hidden'); + textENEl.classList.toggle('hidden'); + + titleInputEl.classList.toggle('hidden'); + textRUInputEl.classList.toggle('hidden'); + textENInputEl.classList.toggle('hidden'); + }); + + deleteBtn.addEventListener('click', (e) => { + const templates = JSON.parse(localStorage.getItem('templates')) || []; + const templateIndex = templates.findIndex(template => template.title === titleEl.innerText); + if (templateIndex !== -1) { + templates.splice(templateIndex, 1); + localStorage.setItem('templates', JSON.stringify(templates)); + } + templateEl.remove(); + }); + + titleInputEl.addEventListener('change', (e) => { + titleEl.innerText = e.target.value; + navigator.clipboard.writeText(titleEl); + updateTemplateInLocalStorage(title, 'title', e.target.value); + }); + + textRUInputEl.addEventListener('change', (e) => { + textRUEl.dataset.ruText = e.target.value; + navigator.clipboard.writeText(textRUEl); + updateTemplateInLocalStorage(title, 'RUText', e.target.value); + }); + + textENInputEl.addEventListener('change', (e) => { + textENEl.dataset.enText = e.target.value; + navigator.clipboard.writeText(textRUEl); + updateTemplateInLocalStorage(title, 'ENText', e.target.value); + }); + + textRUEl.addEventListener('click', (e) => { + navigator.clipboard.writeText(e.target.dataset.ruText) + .then(() => { + console.log('Текст RU скопирован в буфер обмена'); + }) + .catch(err => { + console.error('Не удалось скопировать текст RU: ', err); + }); + }); + + textENEl.addEventListener('click', (e) => { + navigator.clipboard.writeText(e.target.dataset.enText) + .then(() => { + console.log('Текст EN скопирован в буфер обмена'); + }) + .catch(err => { + console.error('Не удалось скопировать текст EN: ', err); + }); + }); + + return templateEl; +}; + +function saveTemplateToLocalStorage(title, RUText, ENText) { + const template = { + title: title, + RUText: RUText, + ENText: ENText + }; + const templates = JSON.parse(localStorage.getItem('templates')) || []; + templates.push(template); + localStorage.setItem('templates', JSON.stringify(templates)); +}; + +function updateTemplateInLocalStorage(title, key, value) { + const templates = JSON.parse(localStorage.getItem('templates')) || []; + const templateIndex = templates.findIndex(template => template.title === title); + + if (templateIndex !== -1) { + templates[templateIndex][key] = value; + localStorage.setItem('templates', JSON.stringify(templates)); + }; +}; + +addBtn.addEventListener('click', (e) => { + const title = "Title"; + const RUText = "RUText"; + const ENText = "ENText"; + + const el = createTemplate(title, RUText, ENText); + templatesEl.appendChild(el); + saveTemplateToLocalStorage(title, RUText, ENText); +}); + +window.onload = function () { + const templates = JSON.parse(localStorage.getItem('templates')) || []; + templates.forEach(template => { + const el = createTemplate(template.title, template.RUText, template.ENText); + templatesEl.appendChild(el); + }); +}; + +const themeToggle = document.getElementById('theme-toggle'); + + themeToggle.addEventListener('click', () => { + document.body.classList.toggle('dark-theme'); + }); +const buttons = document.querySelectorAll('.btn'); +// editExisted.addEventListener('click', (e) => { +// textRUEl.innerHTML = `RU` +// })