ruby rework with contact form
This commit is contained in:
parent
90402ae14a
commit
1ab09043ee
26 changed files with 932 additions and 221 deletions
52
views/index.erb
Normal file
52
views/index.erb
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
<div class="header">
|
||||
<h1>DevOps & infrastructure engineering — IE Sergei Poljanski, Tbilisi.</h1>
|
||||
<span class="ka">ინდ. მეწარმე სერგეი პოლჯანსკი</span>
|
||||
</div>
|
||||
|
||||
<section class="section">
|
||||
<h2>Services</h2>
|
||||
<ul class="services">
|
||||
<li>IT infrastructure management</li>
|
||||
<li>System administration</li>
|
||||
<li>DevOps engineering</li>
|
||||
<li>Software deployment & configuration</li>
|
||||
<li>CI/CD pipeline development</li>
|
||||
<li>Container orchestration (Docker, Kubernetes)</li>
|
||||
<li>Infrastructure as Code (Terraform, Ansible)</li>
|
||||
<li>Monitoring & observability (Prometheus, Grafana, Loki)</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<h2>Legal</h2>
|
||||
<dl class="kv">
|
||||
<dt>Legal name</dt><dd>IE Sergei Poljanski</dd>
|
||||
<dt>Latin form</dt><dd class="mono">SERGEI POLJANSKI</dd>
|
||||
<dt>Legal form</dt><dd>Individual Entrepreneur (Georgia)</dd>
|
||||
<dt>Tax ID</dt><dd class="mono">304813343</dd>
|
||||
<dt>Registered</dt><dd>2026-05-04</dd>
|
||||
<dt>Address</dt><dd>Ilia and Nino Nakashidze St, N 1, Building N3, Apt N3, Krtsanisi, Tbilisi, Georgia</dd>
|
||||
</dl>
|
||||
<div class="ka-note">ინდ. მეწარმე სერგეი პოლჯანსკი</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<h2>Keys</h2>
|
||||
<pre id="myPGP">gpg --recv-keys 85F7AFEDAB7D97BE667F99F24F8851660FA4121B</pre>
|
||||
<pre id="mySSH">ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMZ+/5F7SxdTVW47iiStLpGK77oWfR5NgaK4tTSR/aVB ie+2026@asxp.io</pre>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<h2>Contact</h2>
|
||||
|
||||
<%== erb :'partials/_contact_form', layout: false %>
|
||||
|
||||
<dl class="kv contact-direct">
|
||||
<dt>Email</dt><dd><a href="mailto:ie@asxp.io">ie@asxp.io</a></dd>
|
||||
<dt>Telegram</dt><dd><a href="https://t.me/ie_asxpi">t.me/ie_asxpi</a></dd>
|
||||
<dt>Phone</dt><dd class="mono">+995 595 026 471</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<script src="/copyPGP.js"></script>
|
||||
<script src="/copySSH.js"></script>
|
||||
21
views/layout.erb
Normal file
21
views/layout.erb
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>IE Sergei Poljanski</title>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
|
||||
<link rel='stylesheet' href='//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack-subset.css'>
|
||||
<link rel="icon" type="image/png" href="/hedgehog.png" sizes="32x32" />
|
||||
<link rel="stylesheet" href="/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<%== yield %>
|
||||
</main>
|
||||
|
||||
<div class="footer">
|
||||
IE Sergei Poljanski · Tbilisi, Georgia · ID 304813343
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
42
views/partials/_contact_form.erb
Normal file
42
views/partials/_contact_form.erb
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<% errors = (defined?(@form_errors) && @form_errors) || {} %>
|
||||
<% values = (defined?(@form_values) && @form_values) || {} %>
|
||||
|
||||
<form class="contact-form" method="post" action="/contact" autocomplete="on">
|
||||
<input type="hidden" name="authenticity_token" value="<%= csrf_token %>" />
|
||||
|
||||
<div class="hp" aria-hidden="true">
|
||||
<label>Website<input type="text" name="website" tabindex="-1" autocomplete="off" /></label>
|
||||
</div>
|
||||
|
||||
<% if errors[:base] %>
|
||||
<div class="form-error form-error-base"><%= errors[:base] %></div>
|
||||
<% end %>
|
||||
|
||||
<div class="field">
|
||||
<label for="cf-name">Name</label>
|
||||
<input id="cf-name" type="text" name="name" maxlength="100" required value="<%= values[:name] %>" />
|
||||
<% if errors[:name] %><span class="form-error"><%= errors[:name] %></span><% end %>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label for="cf-email">Email</label>
|
||||
<input id="cf-email" type="email" name="email" maxlength="200" required value="<%= values[:email] %>" />
|
||||
<% if errors[:email] %><span class="form-error"><%= errors[:email] %></span><% end %>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label for="cf-subject">Subject <span class="optional">(optional)</span></label>
|
||||
<input id="cf-subject" type="text" name="subject" maxlength="200" value="<%= values[:subject] %>" />
|
||||
<% if errors[:subject] %><span class="form-error"><%= errors[:subject] %></span><% end %>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label for="cf-message">Message</label>
|
||||
<textarea id="cf-message" name="message" rows="6" maxlength="5000" required><%= values[:message] %></textarea>
|
||||
<% if errors[:message] %><span class="form-error"><%= errors[:message] %></span><% end %>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<button type="submit">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
13
views/thanks.erb
Normal file
13
views/thanks.erb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<div class="header">
|
||||
<h1>Thanks — your message is on its way.</h1>
|
||||
<span class="ka">A confirmation copy has been sent to your inbox.</span>
|
||||
</div>
|
||||
|
||||
<section class="section">
|
||||
<p>I'll get back to you as soon as possible. If you don't hear back within a few days, feel free to reach out directly:</p>
|
||||
<dl class="kv">
|
||||
<dt>Email</dt><dd><a href="mailto:ie@asxp.io">ie@asxp.io</a></dd>
|
||||
<dt>Telegram</dt><dd><a href="https://t.me/ie_asxpi">t.me/ie_asxpi</a></dd>
|
||||
</dl>
|
||||
<p><a href="/">← Back to the front page</a></p>
|
||||
</section>
|
||||
Loading…
Add table
Add a link
Reference in a new issue