feat: получение списка доменов
This commit is contained in:
@@ -28,7 +28,9 @@ ext {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.apache.httpcomponents.client5:httpclient5:5.5")
|
implementation("org.apache.httpcomponents.client5:httpclient5:5.5")
|
||||||
|
implementation("org.apache.commons:commons-lang3:3.18.0")
|
||||||
implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
|
implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
|
||||||
|
implementation("org.jsoup:jsoup:1.21.1")
|
||||||
|
|
||||||
testImplementation(platform("org.junit:junit-bom:$junitVersion"))
|
testImplementation(platform("org.junit:junit-bom:$junitVersion"))
|
||||||
testImplementation("org.junit.jupiter:junit-jupiter")
|
testImplementation("org.junit.jupiter:junit-jupiter")
|
||||||
|
|||||||
@@ -1,14 +1,23 @@
|
|||||||
package ru.di9.ihc;
|
package ru.di9.ihc;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
import org.apache.hc.client5.http.classic.methods.HttpGet;
|
||||||
import org.apache.hc.client5.http.classic.methods.HttpPost;
|
import org.apache.hc.client5.http.classic.methods.HttpPost;
|
||||||
import org.apache.hc.client5.http.entity.UrlEncodedFormEntity;
|
import org.apache.hc.client5.http.entity.UrlEncodedFormEntity;
|
||||||
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
|
||||||
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
|
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
|
||||||
import org.apache.hc.core5.http.message.BasicNameValuePair;
|
import org.apache.hc.core5.http.message.BasicNameValuePair;
|
||||||
|
import org.jsoup.Jsoup;
|
||||||
|
import org.jsoup.nodes.Document;
|
||||||
|
import org.jsoup.nodes.Element;
|
||||||
|
import org.jsoup.select.Elements;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class IhcClient {
|
public class IhcClient {
|
||||||
@@ -16,6 +25,8 @@ public class IhcClient {
|
|||||||
private final CloseableHttpClient httpClient;
|
private final CloseableHttpClient httpClient;
|
||||||
private final ObjectMapper mapper;
|
private final ObjectMapper mapper;
|
||||||
|
|
||||||
|
private boolean isAuth = false;
|
||||||
|
|
||||||
public IhcClient(String baseUrl) {
|
public IhcClient(String baseUrl) {
|
||||||
this.baseUrl = baseUrl;
|
this.baseUrl = baseUrl;
|
||||||
this.httpClient = HttpClientBuilder.create().build();
|
this.httpClient = HttpClientBuilder.create().build();
|
||||||
@@ -34,9 +45,8 @@ public class IhcClient {
|
|||||||
new BasicNameValuePair("ihccaptcha", "")
|
new BasicNameValuePair("ihccaptcha", "")
|
||||||
)));
|
)));
|
||||||
|
|
||||||
boolean authResult;
|
|
||||||
try {
|
try {
|
||||||
authResult = httpClient.execute(httpPost, resp -> {
|
isAuth = httpClient.execute(httpPost, resp -> {
|
||||||
if (resp.getCode() != 200) {
|
if (resp.getCode() != 200) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -48,6 +58,36 @@ public class IhcClient {
|
|||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return authResult;
|
return isAuth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Pair<Integer, String>> getDomains() {
|
||||||
|
if (!isAuth) {
|
||||||
|
throw new RuntimeException("IS NOT AUTH");
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpGet httpGet = new HttpGet(URI.create("%s/dnsZone/list".formatted(baseUrl)));
|
||||||
|
httpGet.setHeader("Accept", "text/html");
|
||||||
|
|
||||||
|
try {
|
||||||
|
return httpClient.execute(httpGet, resp -> {
|
||||||
|
if (resp.getCode() != 200) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Pair<Integer, String>> list = new ArrayList<>();
|
||||||
|
Document document = Jsoup.parse(resp.getEntity().getContent(), StandardCharsets.UTF_8.name(), baseUrl);
|
||||||
|
Elements elements = document.select("li[class='zoneList__zone'] a");
|
||||||
|
for (Element element : elements) {
|
||||||
|
Integer id = Integer.valueOf(element.attr("href").substring(1).split("/")[2]);
|
||||||
|
String domain = element.text();
|
||||||
|
list.add(Pair.of(id, domain));
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
});
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
59
src/test/java/ru/di9/ihc/GetDomainsTest.java
Normal file
59
src/test/java/ru/di9/ihc/GetDomainsTest.java
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
package ru.di9.ihc;
|
||||||
|
|
||||||
|
import com.github.tomakehurst.wiremock.WireMockServer;
|
||||||
|
import com.github.tomakehurst.wiremock.client.WireMock;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.commons.lang3.RandomUtils;
|
||||||
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.github.tomakehurst.wiremock.client.WireMock.get;
|
||||||
|
import static com.github.tomakehurst.wiremock.client.WireMock.post;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
class GetDomainsTest {
|
||||||
|
static int port;
|
||||||
|
static WireMockServer wireMockServer;
|
||||||
|
|
||||||
|
@BeforeAll
|
||||||
|
static void beforeAll() {
|
||||||
|
port = RandomUtils.nextInt(9000, 9999);
|
||||||
|
wireMockServer = new WireMockServer(port);
|
||||||
|
wireMockServer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterAll
|
||||||
|
static void afterAll() {
|
||||||
|
wireMockServer.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
void after() {
|
||||||
|
wireMockServer.resetAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test() throws IOException {
|
||||||
|
wireMockServer.stubFor(post("/j_spring_security_check?ajax=true")
|
||||||
|
.willReturn(WireMock.okJson("""
|
||||||
|
{"redirect":{"url":"/"},"alert":{"type":"none","message":""}}""")));
|
||||||
|
wireMockServer.stubFor(get("/dnsZone/list")
|
||||||
|
.willReturn(WireMock.ok(IOUtils.resourceToString("/ihc-dns.html", StandardCharsets.UTF_8))
|
||||||
|
.withHeader("Content-Type", "text/html")));
|
||||||
|
|
||||||
|
var ihc = new IhcClient("http://localhost:%d".formatted(port));
|
||||||
|
ihc.auth("user1", "passwd1");
|
||||||
|
List<Pair<Integer, String>> domains = ihc.getDomains();
|
||||||
|
|
||||||
|
assertEquals(2, domains.size());
|
||||||
|
assertEquals(Pair.of(111111, "example-1.ru"), domains.get(0));
|
||||||
|
assertEquals(Pair.of(222222, "example-2.ru"), domains.get(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
850
src/test/resources/ihc-dns.html
Normal file
850
src/test/resources/ihc-dns.html
Normal file
@@ -0,0 +1,850 @@
|
|||||||
|
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="IHC.RU">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=EDGE"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title data-title-content="Интернет Хостинг Центр | Список DNS зон">
|
||||||
|
|
||||||
|
Интернет Хостинг Центр | Список DNS зон
|
||||||
|
</title>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
window.onerror = function (m, u, l) {
|
||||||
|
console.log("Error");
|
||||||
|
console.log(" | " + m);
|
||||||
|
console.log(" | " + u + " : line " + l);
|
||||||
|
jQuery.post("/jsError/jsError", { msg: m, url: u, line: l, window: window.location.href });
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
function loadError(u){
|
||||||
|
console.log("Load error");
|
||||||
|
console.log(" | " + u);
|
||||||
|
jQuery.post("/jsError/loadError", { url: u, window: window.location.href });
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
window.logAjaxServerError = function () {
|
||||||
|
jQuery.post("/serverError/logAjaxServerError", { url: location.href });
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/ihc.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/bootstrap-editable.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/font-awesome.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
<link rel="stylesheet" href="/css/font-awesome-5.css?XXXXXXXXXXXX" type="text/css"
|
||||||
|
media="all"/>
|
||||||
|
<link rel="stylesheet" href="/css/font-mfizz.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery-1.11.1.min.js')" src="/js/layout/jquery-1.11.1.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery.metadata.js')" src="/js/layout/jquery.metadata.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery-ui.custom.js')" src="/js/layout/jquery-ui.custom.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery.ui.datepicker-ru.min.js')" src="/js/layout/jquery.ui.datepicker-ru.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery-ui.datepicker-settings.js')" src="/js/layout/jquery-ui.datepicker-settings.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery.tablesorter.js')" src="/js/layout/jquery.tablesorter.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery.fileDownload.js')" src="/js/layout/jquery.fileDownload.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jquery.redirect.min.js')" src="/js/layout/jquery.redirect.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/bootstrap.js')" src="/js/layout/bootstrap.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/bootstrap-editable.js')" src="/js/layout/bootstrap-editable.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/bootbox.js')" src="/js/layout/bootbox.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/modernizr.js')" src="/js/layout/modernizr.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/utilsCommon.js')" src="/js/layout/utilsCommon.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/utilsClient.js')" src="/js/layout/utilsClient.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/sprintf.js')" src="/js/layout/sprintf.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/ajax.js')" src="/js/layout/ajax.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/spin.min.js')" src="/js/layout/spin.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('clipboard/clipboard.min.js')" src="/js/clipboard/clipboard.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
<script onerror="loadError('pwdgenerator.js')" src="/js/pwdgenerator.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/dialogs.js')" src="/js/layout/dialogs.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/main.js')" src="/js/layout/main.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/jivo.js')" src="/js/layout/jivo.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('order/transfer.js')" src="/js/order/transfer.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('order/replenishment.js')" src="/js/order/replenishment.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('order/resendToApproverEmail.js')" src="/js/order/resendToApproverEmail.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('product/chooseSslDcv.js')" src="/js/product/chooseSslDcv.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/bootstrap-slider.js')" src="/js/layout/bootstrap-slider.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/bootstrap-slider.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/bootstrap-select.min.js')" src="/js/layout/bootstrap-select.min.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/bootstrap-select.min.css?XXXXXXXXXXXX" type="text/css" media="all"/>
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/provider/links?ver=XXXXXXXXXXXX" onerror="loadError('links')"></script>
|
||||||
|
<script type="text/javascript" src="/provider/messages?ver=XXXXXXXXXXXX" onerror="loadError('messages')"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// refresh header
|
||||||
|
setInterval(function () {
|
||||||
|
IHC.trigger("statusInfo.update");
|
||||||
|
}, 1000 * 60);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="layout" content="main"/>
|
||||||
|
|
||||||
|
<script onerror="loadError('dnsZone/dnsZoneFilter.js')" src="/js/dnsZone/dnsZoneFilter.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('dnsZone/dnsZoneDelete.js')" src="/js/dnsZone/dnsZoneDelete.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<script onerror="loadError('dnsZone/dnsZoneChangeIP.js')" src="/js/dnsZone/dnsZoneChangeIP.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
#dns-zones .col {
|
||||||
|
width: 47%;
|
||||||
|
float: left;
|
||||||
|
position: relative;
|
||||||
|
margin-right: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dns-zones .col ul {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dns-zones .col li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dns-zones .selectAll {
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dns-zones .withSelected__delete {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dns-zones .filter__submit {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.filter input {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=checkbox].mixed {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
|
<!--script async src="https://www.googletagmanager.com/gtag/js?id=UA-115532343-1"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
|
||||||
|
gtag('config', 'UA-115532343-1');
|
||||||
|
</script-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
<script onerror="loadError('layout/analytics.js')" src="/js/layout/analytics.js?XXXXXXXXXXXX" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Yandex.Metrika counter -->
|
||||||
|
<script type="text/javascript" >
|
||||||
|
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||||
|
m[i].l=1*new Date();
|
||||||
|
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
|
||||||
|
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
||||||
|
(window, document, "script", "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym");
|
||||||
|
|
||||||
|
ym(506605, "init", {
|
||||||
|
clickmap:true,
|
||||||
|
trackLinks:true,
|
||||||
|
accurateTrackBounce:true,
|
||||||
|
webvisor:true,
|
||||||
|
ecommerce:"dataLayer"
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<noscript><div><img src="https://mc.yandex.ru/watch/506605" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||||
|
<!-- /Yandex.Metrika counter -->
|
||||||
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id=XXXXXXXXXXXX"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
|
||||||
|
gtag('config', 'XXXXXXXXXXXX', {
|
||||||
|
'user_id': 'XXXXXXXXXXXX'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
IHC.event("ecommerce.datalayer.push", function (e, data) {
|
||||||
|
gtag.apply(this, data.args);
|
||||||
|
});
|
||||||
|
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
IHC.conversion.yandexId = XXXXXXXXXXXX;
|
||||||
|
var conversions = {orders: [], replenishment: null, registration: false};
|
||||||
|
var orders = conversions.orders;
|
||||||
|
var replenishment = conversions.replenishment;
|
||||||
|
if (orders && orders.length > 0) {
|
||||||
|
$.each(orders, sendOrderConversion);
|
||||||
|
notifyOfOrders(orders);
|
||||||
|
}
|
||||||
|
if (replenishment && replenishment.sum) {
|
||||||
|
IHC.conversion.replenishment(replenishment);
|
||||||
|
notifyOfReplenishment();
|
||||||
|
}
|
||||||
|
if (conversions.registration) {
|
||||||
|
IHC.conversion.registration();
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendOrderConversion(i, order) {
|
||||||
|
IHC.conversion.order(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
function notifyOfOrders(orders) {
|
||||||
|
var params = $.map(orders, function (el) {
|
||||||
|
return "ids=" + el.id;
|
||||||
|
}).join("&")
|
||||||
|
$.ajax(IHC.Provider.Links.conversion.orders + "?" + params);
|
||||||
|
}
|
||||||
|
|
||||||
|
function notifyOfReplenishment() {
|
||||||
|
$.ajax(IHC.Provider.Links.conversion.replenishment);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="ihc-header container">
|
||||||
|
<div class="row ihc-header-row">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 ihc-header-col-logo">
|
||||||
|
<a href="/" style="display: table-cell; vertical-align: middle">
|
||||||
|
<img src="/images/panel/logo-ihc-2019-h.png" alt="IHC.RU" class="vcenter" style="max-width: 250px;max-height: 80px;"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="visible-sm" style="clear: both; height: 15px"> </div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-4 col-xs-12 header-col-bonuses ihc-header-col-section">
|
||||||
|
<div class="nowrap ihc-header-small">Бонусы
|
||||||
|
<span class="question"
|
||||||
|
data-container="body"
|
||||||
|
data-toggle="tooltip"
|
||||||
|
data-placement="bottom"
|
||||||
|
title=""
|
||||||
|
data-original-title="Бонусы начисляются за участие в партнёрской программе"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nowrap ihc-header-bold statusInfo__bonuses " data-effective-bonus-balance="0.0">
|
||||||
|
0 <span class="rur">р<span>уб</span></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="ihc-header-link">
|
||||||
|
<a href="/partner/index">Партнёрская<br/>программа</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-4 col-xs-12 header-col-bonuses ihc-header-col-section">
|
||||||
|
<div class="nowrap ihc-header-small">Баланс</div>
|
||||||
|
|
||||||
|
<div class="nowrap ihc-header-bold statusInfo__balance " data-balance="0.0">
|
||||||
|
0 <span class="rur">р<span>уб</span></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr class="ihc-header-link nowrap">
|
||||||
|
<td colspan="3" style="padding-bottom: 3px">
|
||||||
|
<div class="ihc-header-link nowrap">
|
||||||
|
<div class="customerMainMenu__replenishment-container"><span
|
||||||
|
class="pseudo-link customerMainMenu__replenishment">Пополнить баланс</span></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="ihc-header-link nowrap">
|
||||||
|
<td><a href="/tx/list" class="customerMainMenu__txList">Платежи</a></td>
|
||||||
|
<td style="width:16px"></td>
|
||||||
|
<td><a href="/forecast/index" class="customerMainMenu__forecast">Прогноз</a></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-4 hidden-xs header-col-credit ihc-header-col-section"
|
||||||
|
style="border-left: none;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="visible-sm" style="clear: both; height: 15px"> </div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 ihc-header-col-user">
|
||||||
|
<div class="ihc-header-userinfo"
|
||||||
|
style="position:absolute;left: 15px;top: 0;right: 15px;height: auto;z-index: 999">
|
||||||
|
|
||||||
|
<div class="nowrap">
|
||||||
|
<div class="statusInfo__username ihc-header-userbold pull-left">
|
||||||
|
XXXXXXXXXXXX
|
||||||
|
</div>
|
||||||
|
<a href="/mail/index" class="ellipsis ihc-header-userbold statusInfo__email" style="display:block;text-decoration: underline" title="XXXXXXXXXXXX">XXXXXXXXXXXX</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="" style="margin-top: 16px">
|
||||||
|
<div class="ihc-header-menu-button customerMainMenu__link" style="display: inline-block; height: 22px;cursor: pointer">
|
||||||
|
Настройки <span class="hidden-md">аккаунта</span>
|
||||||
|
<span class="usermenu-triangle-icon glyphicon glyphicon-triangle-bottom" aria-hidden="true" style="top:3px"></span>
|
||||||
|
<span class="usermenu-triangle-icon glyphicon glyphicon-triangle-top hidden" aria-hidden="true" style="top:3px"></span>
|
||||||
|
</div>
|
||||||
|
<a href="/logout/index" class="customerLogout btn btn-gray btn-xs pull-right">
|
||||||
|
Выйти
|
||||||
|
<span class="glyphicon glyphicon-off" aria-hidden="true"></span>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(".ihc-header-menu-button").mousedown(function (e) {
|
||||||
|
$(".usermenu-triangle-icon").toggleClass("hidden");
|
||||||
|
$('.ihc-header-usermenu').slideToggle(100, 'linear');
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
$(".ihc-header-userinfo").mousedown(function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
$(".ihc-header-usermenu").mousedown(function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
$("body").mousedown(function (e) {
|
||||||
|
var menu = $('.ihc-header-usermenu:visible');
|
||||||
|
if (menu.size() > 0) {
|
||||||
|
$(".usermenu-triangle-icon").toggleClass("hidden");
|
||||||
|
menu.slideUp(100, 'linear');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="ihc-header-usermenu" style="display: none; padding-top: 30px">
|
||||||
|
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/reg/index" class="customerMainMenu__regInfo">
|
||||||
|
Регистрационная информация</a></p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/mail/index" class="customerMainMenu__mailLog">
|
||||||
|
Сообщения</a></p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/event/list" class="customerMainMenu__eventLog">
|
||||||
|
События</a></p>
|
||||||
|
|
||||||
|
<p role="presentation" class="divider"></p>
|
||||||
|
<p role="presentation" class="ihc-header-menu-header">Анкеты для регистрации доменов</p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/domainRegInfo/chooseType">
|
||||||
|
Добавить</a></p>
|
||||||
|
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/domainRegInfo/show/XXXXXXXXXXXX">
|
||||||
|
XXXXXXXXXXXX</a></p>
|
||||||
|
|
||||||
|
<p role="presentation" class="divider"></p>
|
||||||
|
<p role="presentation" class="ihc-header-menu-header">Настройки</p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/customerSecurity/index" role="menuitem" tabindex="-1" class="customerMainMenu__security">
|
||||||
|
Безопасность</a>
|
||||||
|
</p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/sshKeys/index">
|
||||||
|
SSH ключи</a></p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/customer/accountInfoEdit" class="customerMainMenu__settings">
|
||||||
|
Учетная запись</a></p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/notification/index" class="customerMainMenu__notification">
|
||||||
|
Уведомления</a></p>
|
||||||
|
<p role="presentation" class="ihc-header-small">
|
||||||
|
<a href="/autoReplenishment/index" class="customerMainMenu__autoReplenishment">
|
||||||
|
Автопополнение</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container site-warning" style="display: none; background-color: #ffbe88; color: #7a3f0e">
|
||||||
|
<h4>
|
||||||
|
Из-за блокировщика рекламы личный кабинет может работать некорректно! Пожалуйста, отключите его на этом сайте.
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container customerPage">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-9">
|
||||||
|
<div class="spacer body__holder">
|
||||||
|
<div class="alertsHolder__container"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="/support/list" class="ticket__link hide" title="Ответы администратора на запросы">
|
||||||
|
<button class="btn btn-default btn-md">
|
||||||
|
Запросы
|
||||||
|
<span class="red-badge">0</span>
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li><a href="/">Главная</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="active">Список DNS зон</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id='advert' class="well advert">
|
||||||
|
<div class="advert__hide-button" title="Скрыть на 24 часа">
|
||||||
|
<span class="fa fa-close"></span>
|
||||||
|
</div>
|
||||||
|
<div class="advert__content">Хотите <b>не платить</b> за хостинг, а <b>получать деньги</b> от хостера? Участвуйте в нашей <a href="/partner/index">партнёрской программе</a>.<br/>Начисляем до 50% с заказа и выплачиваем ежемесячно на <!--карту или--> <img src="https://scr.pics/usdt-logo.svg" style="height: 1em; ""/></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="dns-zones" class="zoneList">
|
||||||
|
<h2>Список DNS зон
|
||||||
|
<div class="knowbase-video-link" style=" margin-top: 2px; margin-right: 4px;">
|
||||||
|
<a href="https://support.ihc.ru/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=303&nav=0,14" target="_blank" title="Видеоинструкция">
|
||||||
|
<span class="glyphicon glyphicon-play-circle"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="nsInfo">
|
||||||
|
Данный раздел предназначен для управления DNS записями доменов на NS: <strong>ns1.ihc.ru, ns2.ihc.ru</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="/dnsZone/add">Добавить</a> |
|
||||||
|
<a href="/whois/index">Whois</a>
|
||||||
|
|
||||||
|
|
||||||
|
<form class="zoneList__form" method="post" action="deleteZones">
|
||||||
|
|
||||||
|
<div >
|
||||||
|
<p class="filter">
|
||||||
|
<input type="text" name="filter" class="filter__string form-control" value=""/>
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="withSelected">
|
||||||
|
С выбранными: <a href="#" class="btn btn-primary withSelected__delete">Удалить</a> <a href="#" class="btn btn-primary zoneList__changeIp">Смена IP</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="selectAll">
|
||||||
|
<label for="selectAll" class="checkbox"><input type="checkbox" style="margin-top: 1px" id="selectAll" name="selectAll" class="checkbox selectAll__checkbox"/>Выбрать все</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="col zoneList__column"><ul></ul></div>
|
||||||
|
<div class="col zoneList__column"><ul></ul></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="zoneList__zone ">
|
||||||
|
<label for="zoneId111111" class="checkbox zoneList__zoneName">
|
||||||
|
<input type="checkbox" name="ids" id="zoneId111111" value="111111" style="margin-top: 1px"
|
||||||
|
class="checkbox zoneList__checkBox" />
|
||||||
|
<a href="/dnsZone/index/111111">example-1.ru</a>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="zoneList__zone ">
|
||||||
|
<label for="zoneId222222" class="checkbox zoneList__zoneName">
|
||||||
|
<input type="checkbox" name="ids" id="zoneId222222" value="222222" style="margin-top: 1px"
|
||||||
|
class="checkbox zoneList__checkBox" />
|
||||||
|
<a href="/dnsZone/index/222222">example-2.ru</a>
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<span class="clearfix"></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
|
||||||
|
<div class="sidePanel__container customerMainMenu">
|
||||||
|
|
||||||
|
<div class="flow-progress-container" style="display: none">
|
||||||
|
<h3>
|
||||||
|
Ваши заявки
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="flow-progress">
|
||||||
|
<div class="flow-progress-template flow-progress-item" data-flow-id="0">
|
||||||
|
<div class="flow-progress-title">
|
||||||
|
<div class="flow-progress-spinner"></div>
|
||||||
|
<div class="flow-progress-data">
|
||||||
|
<span class="flow-progress-op">XXXXXXXXXXXX</span>
|
||||||
|
<span class="flow-progress-description">заявка</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Ваши заказы</h3><ul class="nav nav-pills nav-stacked"><li class='sideNav__orders' data-id='XXXXXXXXXXXX'><a href="https://my.ihc.ru/dedicatedOrder/index/XXXXXXXXXXXX" class="ellipsis sidelink" title="XXXXXXXXXXXX"><img style="margin-left: -10px;vertical-align: middle;margin-right: 5px;" src="/i/products/sidebar/dedicated.png" alt="Аренда сервера" title="Аренда сервера"> <span class='sideNav__opDisplayName'>XXXXXXXXXXXX</span></a></li><li class='sideNav__orders' data-id='XXXXXXXXXXXX'><a href="https://my.ihc.ru/dnsOrder/index/XXXXXXXXXXXX" class="ellipsis sidelink" title="XXXXXXXXXXXX"><img style="margin-left: -10px;vertical-align: middle;margin-right: 5px;" src="/i/products/sidebar/dns.png" alt="Регистрация домена" title="Регистрация домена"> <span class='sideNav__opDisplayName'>XXXXXXXXXXXX</span></a></li></ul>
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
Наши услуги
|
||||||
|
</h3>
|
||||||
|
<ul class="nav nav-pills nav-stacked">
|
||||||
|
<li><a href="/hostingProduct/index" class="sidelink customerMainMenu__hosting">Надёжный хостинг сайтов</a></li><li><a href="/vpsProduct/index" class="sidelink customerMainMenu__vps">Виртуальный сервер (VPS/VDS)</a></li><li><a href="/dedicatedProduct/index" class="sidelink customerMainMenu__dedicated">Аренда выделенного сервера</a></li><li><hr style="
|
||||||
|
margin: 0.5em 0 0.5em 1em;
|
||||||
|
border-top: 1px solid #337ab7;
|
||||||
|
"/></li><li><a href="/dnsProduct/index" class="sidelink customerMainMenu__dns">Регистрация домена</a></li><li><a href="/backupProduct/index" class="sidelink customerMainMenu__backup">Место под бэкап</a></li><li><a href="/sslProduct/index" class="sidelink customerMainMenu__ssl">SSL Сертификаты</a></li><li><a href="/ispmanagerLicenseProduct/index" class="sidelink customerMainMenu__ispmanagerLicense">Лицензия на ISPmanager</a></li><li><hr style="
|
||||||
|
margin: 0.5em 0 0.5em 1em;
|
||||||
|
border-top: 1px solid #337ab7;
|
||||||
|
"/></li><li><a href="/dnsZone/list" class="sidelink customerMainMenu__zones">Управление зонами DNS</a></li><li><a href="/commodityProduct/index" class="sidelink customerMainMenu__extras">Дополнительные услуги</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="https://support.ihc.ru/index.php?_m=knowledgebase&_a=view" target="_blank" class="btn btn-lg btn-success btn-block spacer" style="text-align: left;">
|
||||||
|
<span class="glyphicon glyphicon-info-sign pull-left sidebar-icon"></span>
|
||||||
|
Ответы на вопросы
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="/support/ticket" class="btn btn-lg btn-link spacer" style="margin:0">
|
||||||
|
<span class="glyphicon glyphicon-question-sign pull-left sidebar-icon"></span>
|
||||||
|
Задать вопрос
|
||||||
|
</a>
|
||||||
|
<a href="/support/list" class="btn btn-lg btn-link spacer" style="margin:0">
|
||||||
|
<span class="glyphicon glyphicon-question-sign pull-left sidebar-icon"></span>
|
||||||
|
Запросы
|
||||||
|
<span class="red-badge sidePanel__unreadTicketsCount hide"
|
||||||
|
title="Ответы администратора на запросы">0</span>
|
||||||
|
</a>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$('.sideNav__orders').filter(function () {
|
||||||
|
var id = $(this).data('id');
|
||||||
|
return id && id === $('.order__container').data('id');
|
||||||
|
}).css("background-color", "#d3d3d3").css("border-radius", "5px");
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="ihc-bottom container spacer">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<p class="ihc-header-small">Контакты для связи с нами:</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="ihc-header-small-thin"><a class="footer-tel" href="tel:+74956486033"><span class="earphone"></span> +7 (495) 648-60-33</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md3 col-md-3" style="display: block;">
|
||||||
|
<p class="ihc-header-small">
|
||||||
|
<a href="https://www.ihc.ru">Сайт ihc.ru</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="ihc-header-small-thin">
|
||||||
|
<a href="/whois/index">Whois</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="ihc-header-small-thin">
|
||||||
|
<a href="https://my-ip.help/" target="_blank"><span>Узнать свой IP</span></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="ihc-header-small-thin">
|
||||||
|
<a href="https://www.ihc.ru/docs/PersData2019.pdf" target="_blank"><span>Политика работы с персональными данными</span></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md3 col-md-2" style="display: block;">
|
||||||
|
<p class="ihc-header-small">
|
||||||
|
<a href="/news/index"><span>Новости</span></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="/replenishment/index?value=0.0">
|
||||||
|
<div class="footer-paymethods col-md6 col-md-4" style="display: block;">
|
||||||
|
<p class="ihc-header-small">Принимаем к оплате:</p>
|
||||||
|
|
||||||
|
|
||||||
|
<img src="/images/panel/webmoney.gif" alt="WebMoney"/>
|
||||||
|
|
||||||
|
|
||||||
|
<img src="/images/panel/yoomoney.gif" alt="ЮMoney"/>
|
||||||
|
|
||||||
|
|
||||||
|
<img src="/images/panel/visamastercard.gif" alt="VISA MasterCard"/>
|
||||||
|
<img src="/images/panel/mir.png" alt="Национальная платёжная карта Мир"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="on-top progress-before-1s modal-backdrop in transparent-modal-backdrop hidden" style="opacity: 0.01;"></div>
|
||||||
|
<div class="on-top progress-after-1s modal modal-progress fade"><div class="well"><img src="/images/ajax-loader.gif"/></div></div>
|
||||||
|
<div class="on-top hang-after-30s modal modal-hang"><div class="well"><img src="/i/warning.png"><div>Кажется, что-то пошло не так. Попробуйте перезагрузить страницу или обратитесь в техподдержку.</div></div></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function() {
|
||||||
|
var widget_id = 'XXXXXXXXXXXX';
|
||||||
|
var s = document.createElement('script');
|
||||||
|
s.type = 'text/javascript';
|
||||||
|
s.async = true;
|
||||||
|
s.src = '//code.jivosite.com/script/widget/' + widget_id;
|
||||||
|
var ss = document.getElementsByTagName('script')[0];
|
||||||
|
ss.parentNode.insertBefore(s, ss);
|
||||||
|
})();
|
||||||
|
|
||||||
|
function jivo_onLoadCallback(){
|
||||||
|
jivo_api.setUserToken("XXXXXXXXXXXX");
|
||||||
|
jivo_api.setContactInfo(
|
||||||
|
{
|
||||||
|
name : '[XXXXXXXXXXXX]',
|
||||||
|
email : '[XXXXXXXXXXXX]',
|
||||||
|
phone : '[unknown]'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="ads-wrapper" style="position: absolute;">
|
||||||
|
<div class="ads">
|
||||||
|
<img src="/ads.png?XXXXXXXXXXXX" height="250" width="300" alt="">
|
||||||
|
<img src="/ads.gif?XXXXXXXXXXXX" height="250" width="300" alt="">
|
||||||
|
<img src="/ads.jpg?XXXXXXXXXXXX" height="250" width="300" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
setTimeout(function () {
|
||||||
|
var img = $(".ads-wrapper img");
|
||||||
|
if (img.filter(function () {
|
||||||
|
return $(this).css('display') != 'none';
|
||||||
|
}).size() < 3) {
|
||||||
|
$(".site-warning").show();
|
||||||
|
}
|
||||||
|
img.hide();
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
var opts = {
|
||||||
|
lines: 8 // The number of lines to draw
|
||||||
|
, length: 4 // The length of each line
|
||||||
|
, width: 3 // The line thickness
|
||||||
|
, radius: 2 // The radius of the inner circle
|
||||||
|
, scale: 0.5 // Scales overall size of the spinner
|
||||||
|
, corners: 1 // Corner roundness (0..1)
|
||||||
|
, color: '#000' // #rgb or #rrggbb or array of colors
|
||||||
|
, opacity: 0.1 // Opacity of the lines
|
||||||
|
, rotate: 0 // The rotation offset
|
||||||
|
, direction: 1 // 1: clockwise, -1: counterclockwise
|
||||||
|
, speed: 0.9 // Rounds per second
|
||||||
|
, trail: 100 // Afterglow percentage
|
||||||
|
, fps: 10 // Frames per second when using setTimeout() as a fallback for CSS
|
||||||
|
, zIndex: 0 // The z-index (defaults to 2000000000)
|
||||||
|
, className: 'spinner' // The CSS class to assign to the spinner
|
||||||
|
, top: '0%' // Top position relative to parent
|
||||||
|
, left: '0%' // Left position relative to parent
|
||||||
|
, shadow: false // Whether to render a shadow
|
||||||
|
, hwaccel: false // Whether to use hardware acceleration
|
||||||
|
, position: 'relative' // Element positioning
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var target = $(".flow-progress-spinner");
|
||||||
|
if(target.size() > 0) {
|
||||||
|
var spinner = new Spinner(opts).spin().el;
|
||||||
|
target.append($(spinner))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() { window.satismeter = window.satismeter || function() {(window.satismeter.q = window.satismeter.q || []).push(arguments);};window.satismeter.l = 1 * new Date();var script = document.createElement("script");var parent = document.getElementsByTagName("script")[0].parentNode;script.async = 1;script.src = "https://app.satismeter.com/satismeter.js";parent.appendChild(script);})();
|
||||||
|
|
||||||
|
satismeter({
|
||||||
|
writeKey: "XXXXXXXXXXXX",
|
||||||
|
userId: "XXXXXXXXXXXX",
|
||||||
|
traits: {
|
||||||
|
email: "XXXXXXXXXXXX",
|
||||||
|
createdAt: "XXXXXXXXXXXX"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
maxmind_user_id = "XXXXXXXXXXXX";
|
||||||
|
(function() {
|
||||||
|
var loadDeviceJs = function() {
|
||||||
|
var element = document.createElement('script');
|
||||||
|
element.src = 'https://device.maxmind.com/js/device.js';
|
||||||
|
document.body.appendChild(element);
|
||||||
|
};
|
||||||
|
if (window.addEventListener) {
|
||||||
|
window.addEventListener('load', loadDeviceJs, false);
|
||||||
|
} else if (window.attachEvent) {
|
||||||
|
window.attachEvent('onload', loadDeviceJs);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user