mirror of
https://github.com/we-promise/sure.git
synced 2026-05-12 15:15:01 +00:00
Sure uses Tailwind v4 with the design system tokens but several views still carried Bootstrap-style class names that don't render anything because no Bootstrap stylesheet is loaded. They're effectively dead markup. Replacements: - text-muted, text-muted-foreground -> text-subdued - bg-light -> bg-surface - font-italic -> italic - text-uppercase -> uppercase - font-weight-bold -> font-bold Touched files: - app/views/doorkeeper/applications/_form.html.erb - app/views/doorkeeper/applications/show.html.erb - app/views/pages/privacy.html.erb - app/views/pages/terms.html.erb - app/views/pages/redis_configuration_error.html.erb - app/views/settings/providers/_mercury_panel.html.erb Also tightening application.css: - The .hw-combobox__label rule used raw text-gray-500 / text-gray-400 via @apply. Now uses the text-secondary / text-subdued tokens so the combobox label responds to the theme. - Custom scrollbar thumbs in .windows and .scrollbar used hardcoded #d6d6d6 / #a6a6a6 hex values. Now reference var(--color-gray-300) / var(--color-gray-400). Slight color shift (the hex values were close to but not identical to those tokens), so this needs a quick visual check. And reports/print.html.erb had four <span style="color: #666"> elements on the metric cards. Replaced with class="text-secondary" merged into the existing tufte-metric-card-change class, so print uses the same secondary-text color the rest of the app uses.
74 lines
3.7 KiB
Plaintext
74 lines
3.7 KiB
Plaintext
<div class="space-y-4">
|
|
<div class="prose prose-sm text-secondary">
|
|
<p class="text-primary font-medium">Setup instructions:</p>
|
|
<ol>
|
|
<li>Visit <a href="https://mercury.com" target="_blank" rel="noopener noreferrer" class="link">Mercury</a> and log in to your account</li>
|
|
<li>Go to Settings > Developer > API Tokens</li>
|
|
<li>Create a new API token with "Read Only" access</li>
|
|
<li><strong>Important:</strong> Add your server's IP address to the token's whitelist</li>
|
|
<li>Copy the <strong>full token</strong> (including the <code>secret-token:</code> prefix) and paste it below</li>
|
|
<li>After a successful connection, go to the Accounts tab to set up new accounts</li>
|
|
</ol>
|
|
|
|
<p class="text-primary font-medium">Field descriptions:</p>
|
|
<ul>
|
|
<li><strong>API Token:</strong> Your full Mercury API token including the <code>secret-token:</code> prefix (required)</li>
|
|
<li><strong>Base URL:</strong> Mercury API URL (optional, defaults to https://api.mercury.com/api/v1)</li>
|
|
</ul>
|
|
|
|
<p class="text-sm text-subdued mt-2">
|
|
<strong>Note:</strong> For sandbox testing, use <code>https://api-sandbox.mercury.com/api/v1</code> as the Base URL.
|
|
Mercury requires IP whitelisting - make sure to add your IP in the Mercury dashboard.
|
|
</p>
|
|
</div>
|
|
|
|
<% error_msg = local_assigns[:error_message] || @error_message %>
|
|
<% if error_msg.present? %>
|
|
<div class="p-2 rounded-md bg-destructive/10 text-destructive text-sm overflow-hidden">
|
|
<p class="line-clamp-3" title="<%= error_msg %>"><%= error_msg %></p>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%
|
|
# Get or initialize a mercury_item for this family
|
|
# - If family has an item WITH credentials, use it (for updates)
|
|
# - If family has an item WITHOUT credentials, use it (to add credentials)
|
|
# - If family has no items at all, create a new one
|
|
mercury_item = Current.family.mercury_items.first_or_initialize(name: "Mercury Connection")
|
|
is_new_record = mercury_item.new_record?
|
|
%>
|
|
|
|
<%= styled_form_with model: mercury_item,
|
|
url: is_new_record ? mercury_items_path : mercury_item_path(mercury_item),
|
|
scope: :mercury_item,
|
|
method: is_new_record ? :post : :patch,
|
|
data: { turbo: true },
|
|
class: "space-y-3" do |form| %>
|
|
<%= form.text_field :token,
|
|
label: "Token",
|
|
placeholder: is_new_record ? "Paste token here" : "Enter new token to update",
|
|
type: :password %>
|
|
|
|
<%= form.text_field :base_url,
|
|
label: "Base Url (Optional)",
|
|
placeholder: "https://api.mercury.com/api/v1 (default)",
|
|
value: mercury_item.base_url %>
|
|
|
|
<div class="flex justify-end">
|
|
<%= form.submit is_new_record ? "Save Configuration" : "Update Configuration",
|
|
class: "inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium text-white bg-gray-900 hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-gray-900 focus:ring-offset-2 transition-colors" %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% items = local_assigns[:mercury_items] || @mercury_items || Current.family.mercury_items.where.not(token: [nil, ""]) %>
|
|
<div class="flex items-center gap-2">
|
|
<% if items&.any? %>
|
|
<div class="w-2 h-2 bg-success rounded-full"></div>
|
|
<p class="text-sm text-secondary">Configured and ready to use. Visit the <a href="<%= accounts_path %>" class="link">Accounts</a> tab to manage and set up accounts.</p>
|
|
<% else %>
|
|
<div class="w-2 h-2 bg-gray-400 rounded-full"></div>
|
|
<p class="text-sm text-secondary">Not configured</p>
|
|
<% end %>
|
|
</div>
|
|
</div>
|