mirror of
https://github.com/qdrant/landing_page.git
synced 2026-09-30 00:18:32 +02:00
Gdpr (#3)
* gdpr popup * gdpr + google analytics + small fixes * privacy policy Co-authored-by: trean <trean.mi@gmail.com>
This commit is contained in:
co-authored by
trean
parent
57b09f9ab3
commit
b9b8417c62
@@ -3,7 +3,7 @@ languageCode = "en-us"
|
|||||||
title = "Qdrant - Vector Search Engine"
|
title = "Qdrant - Vector Search Engine"
|
||||||
theme = "qdrant"
|
theme = "qdrant"
|
||||||
|
|
||||||
googleAnalytics = ""
|
googleAnalytics = "G-NZYW2651NE"
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
canonifyURLs = true
|
canonifyURLs = true
|
||||||
|
|
||||||
@@ -44,6 +44,8 @@ keywords = "search engine, neural network, matching, filter, SaaS, approximate n
|
|||||||
|
|
||||||
mailchimp_subscribe_id = "b_69617d79374ac6280dd2230b2_acb2b876fc"
|
mailchimp_subscribe_id = "b_69617d79374ac6280dd2230b2_acb2b876fc"
|
||||||
|
|
||||||
|
gdpr = "We use cookies to learn more about you. At any time you can delete or block cookies through your browser settings."
|
||||||
|
|
||||||
|
|
||||||
[menu]
|
[menu]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
title: Privacy Policy
|
||||||
|
---
|
||||||
|
|
||||||
|
# Privacy Policy
|
||||||
|
|
||||||
|
At qdrant.tech, accessible from qdrant.tech, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by qdrant.tech and how we use it.
|
||||||
|
|
||||||
|
If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us. Our Privacy Policy was generated with the help of <a href="https://www.gdprprivacynotice.com/">GDPR Privacy Policy Generator from GDPRPrivacyNotice.com</a>
|
||||||
|
|
||||||
|
## General Data Protection Regulation (GDPR)
|
||||||
|
|
||||||
|
We are a Data Controller of your information.
|
||||||
|
|
||||||
|
Qdrant legal basis for collecting and using the personal information described in this Privacy Policy depends on the Personal Information we collect and the specific context in which we collect the information:
|
||||||
|
|
||||||
|
* Qdrant needs to perform a contract with you
|
||||||
|
* You have given Qdrant permission to do so
|
||||||
|
* Processing your personal information is in Qdrant legitimate interests
|
||||||
|
* Qdrant needs to comply with the law
|
||||||
|
|
||||||
|
|
||||||
|
Qdrant will retain your personal information only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your information to the extent necessary to comply with our legal obligations, resolve disputes, and enforce our policies.
|
||||||
|
|
||||||
|
If you are a resident of the European Economic Area (EEA), you have certain data protection rights. If you wish to be informed what Personal Information we hold about you and if you want it to be removed from our systems, please contact us.
|
||||||
|
In certain circumstances, you have the following data protection rights:
|
||||||
|
|
||||||
|
* The right to access, update or to delete the information we have on you.
|
||||||
|
* The right of rectification.
|
||||||
|
* The right to object.
|
||||||
|
* The right of restriction.
|
||||||
|
* The right to data portability
|
||||||
|
* The right to withdraw consent
|
||||||
|
|
||||||
|
|
||||||
|
## Log Files
|
||||||
|
|
||||||
|
qdrant.tech follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information.
|
||||||
|
|
||||||
|
## Cookies and Web Beacons
|
||||||
|
|
||||||
|
Like any other website, qdrant.tech uses 'cookies'. These cookies are used to store information including visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information.
|
||||||
|
|
||||||
|
For more general information on cookies, please read <a href="https://www.privacypolicyonline.com/what-are-cookies/">"What Are Cookies"</a>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Privacy Policies
|
||||||
|
|
||||||
|
You may consult this list to find the Privacy Policy for each of the advertising partners of qdrant.tech.
|
||||||
|
|
||||||
|
Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on qdrant.tech, which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit.
|
||||||
|
|
||||||
|
Note that qdrant.tech has no access to or control over these cookies that are used by third-party advertisers.
|
||||||
|
|
||||||
|
## Third Party Privacy Policies
|
||||||
|
|
||||||
|
qdrant.tech's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt-out of certain options.
|
||||||
|
|
||||||
|
You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites.
|
||||||
|
|
||||||
|
## Children's Information
|
||||||
|
|
||||||
|
Another part of our priority is adding protection for children while using the internet. We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity.
|
||||||
|
|
||||||
|
qdrant.tech does not knowingly collect any Personal Identifiable Information from children under the age of 13. If you think that your child provided this kind of information on our website, we strongly encourage you to contact us immediately and we will do our best efforts to promptly remove such information from our records.
|
||||||
|
|
||||||
|
## Online Privacy Policy Only
|
||||||
|
|
||||||
|
Our Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in qdrant.tech. This policy is not applicable to any information collected offline or via channels other than this website.
|
||||||
|
|
||||||
|
## Consent
|
||||||
|
|
||||||
|
By using our website, you hereby consent to our Privacy Policy and agree to its terms.
|
||||||
@@ -4,11 +4,8 @@ icon: bot
|
|||||||
tabid: chatbot
|
tabid: chatbot
|
||||||
image: /content/images/chat_bots.png
|
image: /content/images/chat_bots.png
|
||||||
image_caption: Automated FAQ
|
image_caption: Automated FAQ
|
||||||
source_link:
|
default_link:
|
||||||
demo_link:
|
default_link_name:
|
||||||
tutorial_link:
|
|
||||||
custom_link:
|
|
||||||
custom_link_name:
|
|
||||||
weight: 40
|
weight: 40
|
||||||
short_description: |
|
short_description: |
|
||||||
Semantic search for similar phrases is one of the key technologies for building chatbots.
|
Semantic search for similar phrases is one of the key technologies for building chatbots.
|
||||||
|
|||||||
@@ -5,13 +5,8 @@ tabid: imagesearch
|
|||||||
landing_image: /content/images/abstract_cubes_2.svg
|
landing_image: /content/images/abstract_cubes_2.svg
|
||||||
image: /content/images/image_search.png
|
image: /content/images/image_search.png
|
||||||
image_caption: Visual Food Discovery
|
image_caption: Visual Food Discovery
|
||||||
source_link:
|
|
||||||
demo_link: https://food-discovery.qdrant.tech/
|
|
||||||
default_link: https://food-discovery.qdrant.tech/
|
default_link: https://food-discovery.qdrant.tech/
|
||||||
default_link_name: Demo
|
default_link_name: Demo
|
||||||
tutorial_link:
|
|
||||||
custom_link:
|
|
||||||
custom_link_name:
|
|
||||||
weight: 20
|
weight: 20
|
||||||
short_description: |
|
short_description: |
|
||||||
Find similar images, detect duplicates, or even find a picture by text description - all of that you can do with Qdrant.
|
Find similar images, detect duplicates, or even find a picture by text description - all of that you can do with Qdrant.
|
||||||
|
|||||||
@@ -4,11 +4,8 @@ icon: compare-1
|
|||||||
tabid: matching
|
tabid: matching
|
||||||
image: /content/images/matching_engines.png
|
image: /content/images/matching_engines.png
|
||||||
image_caption: Matching Engines
|
image_caption: Matching Engines
|
||||||
source_link:
|
default_link:
|
||||||
demo_link:
|
default_link_name:
|
||||||
tutorial_link:
|
|
||||||
custom_link:
|
|
||||||
custom_link_name:
|
|
||||||
weight: 40
|
weight: 40
|
||||||
short_description: |
|
short_description: |
|
||||||
Matching semantically complex objects is a special case of search.
|
Matching semantically complex objects is a special case of search.
|
||||||
|
|||||||
@@ -5,11 +5,8 @@ tabid: recommendations
|
|||||||
landing_image: /content/images/abstract_cubes_3.svg
|
landing_image: /content/images/abstract_cubes_3.svg
|
||||||
image: /content/images/recommendations.png
|
image: /content/images/recommendations.png
|
||||||
image_caption: History-based Recommendations
|
image_caption: History-based Recommendations
|
||||||
source_link:
|
default_link:
|
||||||
demo_link:
|
default_link_name:
|
||||||
tutorial_link:
|
|
||||||
custom_link:
|
|
||||||
custom_link_name:
|
|
||||||
weight: 30
|
weight: 30
|
||||||
short_description: |
|
short_description: |
|
||||||
User behavior can be represented as a semantic vector is similar way as text or images.
|
User behavior can be represented as a semantic vector is similar way as text or images.
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{{- partial "header.html" . -}}
|
{{- partial "header.html" . -}}
|
||||||
|
|
||||||
|
{{- partial "second_header.html" . -}}
|
||||||
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
{{- block "main" . }}{{- end }}
|
{{ block "main" . }}{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{- partial "footer.html" . -}}
|
{{- partial "footer.html" . -}}
|
||||||
@@ -1,2 +1,10 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<div class="auto-container mb-5 mt-5">
|
||||||
|
{{ .Content }}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
<link href="{{ "css/main.css" | absURL }}" rel="stylesheet">
|
<link href="{{ "css/main.css" | absURL }}" rel="stylesheet">
|
||||||
<link href="{{ "css/qdrant.css" | absURL }}" rel="stylesheet">
|
<link href="{{ "css/qdrant.css" | absURL }}" rel="stylesheet">
|
||||||
<link href="{{ "css/responsive.css" | absURL }}" rel="stylesheet">
|
<link href="{{ "css/responsive.css" | absURL }}" rel="stylesheet">
|
||||||
|
<link href="{{ "css/cookit.css" | absURL }}" rel="stylesheet">
|
||||||
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<ul class="contact-list">
|
<ul class="contact-list">
|
||||||
<li> <span class="icon fa fa-star"></span> Icons made by <a href="https://www.flaticon.com/authors/srip" title="srip">srip</a> from <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a></li>
|
<li> <span class="icon fa fa-star"></span> Icons made by <a href="https://www.flaticon.com/authors/srip" title="srip">srip</a> from <a href="https://www.flaticon.com/" title="Flaticon">flaticon.com</a></li>
|
||||||
|
<li> <span class="icon fa fa-file"></span> <a href="/legal/privacy-policy">Privacy Policy </a> </li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
<script src="{{ "js/jquery.mCustomScrollbar.concat.min.js" | absURL }}"></script>
|
<script src="{{ "js/jquery.mCustomScrollbar.concat.min.js" | absURL }}"></script>
|
||||||
<script src="{{ "js/jquery.fancybox.js" | absURL }}"></script>
|
<script src="{{ "js/jquery.fancybox.js" | absURL }}"></script>
|
||||||
<script src="{{ "js/appear.js" | absURL }}"></script>
|
<script src="{{ "js/appear.js" | absURL }}"></script>
|
||||||
|
<script src="{{ "js/cookit.js" | absURL }}"></script>
|
||||||
<!-- <script src="{{ "js/swiper.min.js" | absURL }}"></script> -->
|
<!-- <script src="{{ "js/swiper.min.js" | absURL }}"></script> -->
|
||||||
<!-- <script src="{{ "js/jquery.paroller.min.js" | absURL }}"></script> -->
|
<!-- <script src="{{ "js/jquery.paroller.min.js" | absURL }}"></script> -->
|
||||||
<!-- <script src="{{ "js/parallax.min.js" | absURL }}"></script> -->
|
<!-- <script src="{{ "js/parallax.min.js" | absURL }}"></script> -->
|
||||||
@@ -45,4 +46,16 @@
|
|||||||
console.error('Action:', e.action);
|
console.error('Action:', e.action);
|
||||||
console.error('Trigger:', e.trigger);
|
console.error('Trigger:', e.trigger);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(function(){
|
||||||
|
$.cookit({
|
||||||
|
messageText: "{{ .Site.Params.gdpr }}",
|
||||||
|
linkText: "Learn more",
|
||||||
|
linkUrl: "/legal/privacy-policy",
|
||||||
|
buttonText: "I accept",
|
||||||
|
backgroundColor: '#1c1c1c',
|
||||||
|
messageColor: '#fff',
|
||||||
|
linkColor: '#fad04c',
|
||||||
|
buttonColor: '#fad04c'
|
||||||
|
}); });
|
||||||
</script>
|
</script>
|
||||||
@@ -5,6 +5,13 @@
|
|||||||
<h1> {{ .Params.title | safeHTML }}</h1>
|
<h1> {{ .Params.title | safeHTML }}</h1>
|
||||||
<ul class="bread-crumb clearfix">
|
<ul class="bread-crumb clearfix">
|
||||||
<li><a href="/"><i class="flaticon-home small"></i> Home</a></li>
|
<li><a href="/"><i class="flaticon-home small"></i> Home</a></li>
|
||||||
|
{{ $paths := (split .URL "/") }}
|
||||||
|
{{ $len := sub (len $paths) 2 }}
|
||||||
|
{{ range first $len $paths }}
|
||||||
|
{{ if gt (len . ) 0 }}
|
||||||
|
<li><a href="/{{ . }}">{{ humanize . }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
<li>{{ .Params.title | safeHTML }}</li>
|
<li>{{ .Params.title | safeHTML }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,11 @@
|
|||||||
<!-- <div class="category">{{ .Params.subtitle }}</div> -->
|
<!-- <div class="category">{{ .Params.subtitle }}</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="image">
|
<div class="image">
|
||||||
<a data-caption="{{ .Params.image_caption }}"><img src="{{ .Params.image }}" alt="" /></a>
|
{{ if .Params.default_link }}
|
||||||
|
<a href="{{ .Params.default_link }}" data-caption="{{ .Params.image_caption }}"><img src="{{ .Params.image }}" alt="" /></a>
|
||||||
|
{{ else }}
|
||||||
|
<img src="{{ .Params.image }}" alt="" />
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="lower-box">
|
<div class="lower-box">
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
body { margin: 0;}
|
||||||
|
|
||||||
|
#cookit {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 0;
|
||||||
|
padding: .6rem 2rem;
|
||||||
|
display: flex;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cookit #cookit-container {
|
||||||
|
margin: auto;
|
||||||
|
width: 1200px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cookit #cookit-container > * { margin: .4rem; }
|
||||||
|
#cookit #cookit-container p { line-height: 1.4rem; }
|
||||||
|
|
||||||
|
#cookit #cookit-container a { text-decoration: none; }
|
||||||
|
#cookit #cookit-container a:hover { opacity: .9; }
|
||||||
|
|
||||||
|
#cookit #cookit-container #cookit-button {
|
||||||
|
padding: .5rem 1rem;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
@@ -90,4 +90,10 @@ article img {
|
|||||||
display: block;
|
display: block;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
article ul li {
|
||||||
|
list-style: circle;
|
||||||
|
padding: 0;
|
||||||
|
margin: 1em;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
(function($) {
|
||||||
|
$.cookit = function(options) {
|
||||||
|
|
||||||
|
// 🎛️ SETTINGS
|
||||||
|
var settings = $.extend({
|
||||||
|
backgroundColor: '#1c1c1c',
|
||||||
|
messageColor: '#fff',
|
||||||
|
linkColor: '#fad04c',
|
||||||
|
buttonColor: '#fad04c',
|
||||||
|
messageText: "<b>Do you hungry ?</b> 🍪 Pursuing navigation on this site, you accept the use of cookies.",
|
||||||
|
linkText: "Learn more",
|
||||||
|
linkUrl: "https://www.cookiesandyou.com",
|
||||||
|
buttonText: "I accept",
|
||||||
|
lifetime: 365
|
||||||
|
}, options);
|
||||||
|
|
||||||
|
// 🎯 DOM ITEMS
|
||||||
|
const body = $("body");
|
||||||
|
const banner = $("<div id='cookit'></div>");
|
||||||
|
const container = $("<div id='cookit-container'></div>");
|
||||||
|
const message = $("<p id='cookit-message'>"+ settings.messageText +"</p>");
|
||||||
|
const link = $("<a id='cookit-link' href='" + settings.linkUrl + "' target='_blank'>" + settings.linkText + "</a>");
|
||||||
|
const button = $("<a id='cookit-button' href='#'>" + settings.buttonText + "</a>");
|
||||||
|
|
||||||
|
// ✔️ CHECK IF COOKIE ALREADY EXISTS
|
||||||
|
if (!getCookie('cookie-consent')) { init(); }
|
||||||
|
|
||||||
|
// ▶️ INITIALISATION
|
||||||
|
function init() {
|
||||||
|
body.append(banner);
|
||||||
|
banner.append(container).css({'background-color': settings.backgroundColor});
|
||||||
|
container.append(message.css({'color': settings.messageColor})).append(link.css({'color': settings.linkColor})).append(button.css({'background-color': settings.buttonColor,'color': settings.backgroundColor}));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 👀 EVENT LISTENER (click)
|
||||||
|
button.on('click', () => {
|
||||||
|
banner.remove();
|
||||||
|
setCookie('cookie-consent', 1, settings.lifetime);
|
||||||
|
});
|
||||||
|
|
||||||
|
// ⚙️ GET COOKIE
|
||||||
|
function getCookie(name) {
|
||||||
|
const decodedCookie = decodeURIComponent(document.cookie);
|
||||||
|
const ca = decodedCookie.split(';');
|
||||||
|
name = name + "=";
|
||||||
|
for(let i = 0; i < ca.length; i++) {
|
||||||
|
let c = ca[i];
|
||||||
|
while (c.charAt(0) === ' ') {
|
||||||
|
c = c.substring(1);
|
||||||
|
}
|
||||||
|
if (c.indexOf(name) === 0) {
|
||||||
|
return c.substring(name.length, c.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ⚙️ SET COOKIE
|
||||||
|
function setCookie(name, value, days) {
|
||||||
|
const date = new Date();
|
||||||
|
date.setTime(date.getTime() + (days*24*60*60*1000));
|
||||||
|
const expires = "expires=" + date.toUTCString();
|
||||||
|
document.cookie = name + "=" + value + ";" + expires + ";path=/;Secure";
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
})(jQuery);
|
||||||
Reference in New Issue
Block a user