Compare commits
8 Commits
843bcd8cb9
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
3bd07472b2
|
|||
|
32b1c2748a
|
|||
|
fc6cac8368
|
|||
| eefdc88a47 | |||
|
f2e8ca790c
|
|||
|
32cd4d896d
|
|||
|
67c450860a
|
|||
|
f1d9cf1e3d
|
@@ -7,7 +7,6 @@
|
||||
@import "components/buttons";
|
||||
@import "components/dashboard_services";
|
||||
@import "components/forms";
|
||||
@import "components/links";
|
||||
@import "components/notifications";
|
||||
@import "components/pagination";
|
||||
@import "components/tables";
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
body {
|
||||
@apply leading-none bg-cover bg-fixed;
|
||||
background-image: linear-gradient(35deg, rgba(255,0,255,0.2) 0, rgba(13,79,153,0.8) 100%), url('/img/bg-1.jpg');
|
||||
color: black;
|
||||
}
|
||||
|
||||
body#admin {
|
||||
@@ -59,4 +60,11 @@
|
||||
main ul li {
|
||||
@apply leading-6;
|
||||
}
|
||||
|
||||
main a:not(nav > *) {
|
||||
@apply text-blue-600;
|
||||
&:hover { @apply underline; }
|
||||
&:visited { @apply text-indigo-600; }
|
||||
&:active { @apply text-red-600; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
@layer components {
|
||||
.btn-text-dark { @apply text-black; }
|
||||
.btn-text-dark:hover { @apply text-black no-underline; }
|
||||
.btn-text-dark:visited { @apply text-black; }
|
||||
.btn-text-dark:active { @apply text-black; }
|
||||
.btn-text-light { @apply text-white; }
|
||||
.btn-text-light:hover { @apply text-white no-underline; }
|
||||
.btn-text-light:visited { @apply text-white; }
|
||||
.btn-text-light:active { @apply text-white; }
|
||||
|
||||
.btn {
|
||||
@apply btn-text-dark;
|
||||
@apply inline-block font-semibold rounded-md leading-none cursor-pointer text-center
|
||||
transition-colors duration-75 focus:outline-none focus:ring-4;
|
||||
}
|
||||
@@ -28,17 +38,20 @@
|
||||
}
|
||||
|
||||
.btn-blue {
|
||||
@apply bg-blue-500 hover:bg-blue-600 text-white
|
||||
@apply btn-text-light;
|
||||
@apply bg-blue-500 hover:bg-blue-600
|
||||
focus:ring-blue-400 focus:ring-opacity-75;
|
||||
}
|
||||
|
||||
.btn-emerald {
|
||||
@apply bg-emerald-500 hover:bg-emerald-600 text-white
|
||||
@apply btn-text-light;
|
||||
@apply bg-emerald-500 hover:bg-emerald-600
|
||||
focus:ring-emerald-400 focus:ring-opacity-75;
|
||||
}
|
||||
|
||||
.btn-red {
|
||||
@apply bg-red-600 hover:bg-red-700 text-white
|
||||
@apply btn-text-light;
|
||||
@apply bg-red-600 hover:bg-red-700
|
||||
focus:ring-red-500 focus:ring-opacity-75;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
@layer components {
|
||||
.ks-text-link {
|
||||
@apply text-blue-600;
|
||||
&:hover { @apply underline; }
|
||||
&:visited { @apply text-indigo-600; }
|
||||
&:active { @apply text-red-600; }
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
.pagy-nav .page a, .page.gap {
|
||||
@apply bg-white border-gray-300 text-gray-500 hover:bg-gray-100 relative
|
||||
inline-flex items-center border px-4 py-2 text-sm font-medium
|
||||
focus:z-20;
|
||||
no-underline focus:z-20;
|
||||
}
|
||||
|
||||
.pagy-nav .page.active {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<main class="w-full max-w-xl mx-auto pb-12 px-4 sm:px-6 lg:px-8">
|
||||
<main class="w-full max-w-xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="bg-white rounded-lg shadow px-6 sm:px-12 py-8 sm:py-12">
|
||||
<%= content %>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<main class="w-full max-w-6xl mx-auto pb-12 px-4 md:px-6 lg:px-8">
|
||||
<main class="w-full max-w-6xl mx-auto px-4 md:px-6 lg:px-8">
|
||||
<div class="md:min-h-[50vh] bg-white rounded-lg shadow px-6 sm:px-12 py-8 sm:py-12">
|
||||
<%= content %>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<main class="w-full max-w-6xl mx-auto pb-12 px-4 md:px-6 lg:px-8">
|
||||
<main class="w-full max-w-6xl mx-auto px-4 md:px-6 lg:px-8">
|
||||
<div class="bg-white rounded-lg shadow">
|
||||
<div class="md:min-h-[50vh] divide-y divide-gray-200 lg:grid lg:grid-cols-12 lg:divide-y-0 lg:divide-x">
|
||||
<aside class="py-6 sm:py-8 lg:col-span-3">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<main class="w-full max-w-6xl mx-auto pb-12 px-4 md:px-6 lg:px-8">
|
||||
<main class="w-full max-w-6xl mx-auto px-4 md:px-6 lg:px-8">
|
||||
<div class="md:min-h-[50vh] bg-white rounded-lg shadow">
|
||||
<div class="px-6 sm:px-12 pt-2 sm:pt-4">
|
||||
<%= render partial: @tabnav_partial %>
|
||||
|
||||
9
app/controllers/pages_controller.rb
Normal file
9
app/controllers/pages_controller.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
class PagesController < ApplicationController
|
||||
def privacy
|
||||
@current_section = :privacy
|
||||
end
|
||||
|
||||
def tos
|
||||
@current_section = :tos
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@ module EjabberdManager
|
||||
def call
|
||||
unless @overwrite
|
||||
current_avatar = EjabberdManager::GetAvatar.call(user: @user)
|
||||
Rails.logger.info { "User #{user.cn} already has an avatar set" }
|
||||
Rails.logger.info { "User #{@user.cn} already has an avatar set" }
|
||||
return if current_avatar.present?
|
||||
end
|
||||
|
||||
|
||||
@@ -38,8 +38,7 @@
|
||||
<tr>
|
||||
<td><%= web_app.name %></td>
|
||||
<td><%= link_to web_app.url, web_app.url,
|
||||
target: "_blank", rel: "nofollow noopener",
|
||||
class: "ks-text-link" %></td>
|
||||
target: "_blank", rel: "nofollow noopener" %></td>
|
||||
<td class="hidden md:table-cell"><%= web_app.remote_storage_authorizations.count %></td>
|
||||
<td class="hidden md:table-cell">
|
||||
<span title="<%= web_app.created_at %>" class="cursor-help">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<tbody>
|
||||
<% donations.each do |donation| %>
|
||||
<tr>
|
||||
<td><%= link_to donation.user.cn, admin_user_path(donation.user.cn), class: 'ks-text-link' %></td>
|
||||
<td><%= link_to donation.user.cn, admin_user_path(donation.user.cn) %></td>
|
||||
<td class="text-right"><% if donation.amount_sats.present? %><%= number_with_delimiter donation.amount_sats %><% end %></td>
|
||||
<td class="text-right"><% if donation.fiat_amount.present? %><%= number_to_currency donation.fiat_amount.to_f / 100, unit: "" %> <%= donation.fiat_currency %><% end %></td>
|
||||
<td class="pl-2"><%= donation.public_name %></td>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>User</th>
|
||||
<td><%= link_to @donation.user.cn, admin_user_path(@donation.user.cn), class: 'ks-text-link' %></td>
|
||||
<td><%= link_to @donation.user.cn, admin_user_path(@donation.user.cn) %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Donation Method</th>
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
<tr>
|
||||
<td class="overflow-ellipsis font-mono"><%= invitation.token %></td>
|
||||
<td><%= invitation.used_at.strftime("%Y-%m-%d (%H:%M UTC)") %></td>
|
||||
<td><%= link_to invitation.user.cn, admin_user_path(invitation.user.cn), class: "ks-text-link" %></td>
|
||||
<td><%= link_to invitation.invitee.cn, admin_user_path(invitation.invitee.cn), class: "ks-text-link" %></td>
|
||||
<td><%= link_to invitation.user.cn, admin_user_path(invitation.user.cn) %></td>
|
||||
<td><%= link_to invitation.invitee.cn, admin_user_path(invitation.invitee.cn) %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<% if user = @users.find{ |u| u[2] == account.login } %>
|
||||
<%= link_to user[0], admin_user_path(user[0]), class: "ks-text-link" %>
|
||||
<%= link_to user[0], admin_user_path(user[0]) %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= number_with_delimiter account.balance.to_i.to_s %></td>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<tbody>
|
||||
<% @users.each do |user| %>
|
||||
<tr>
|
||||
<td><%= link_to(user.cn, admin_user_path(user.cn), class: 'ks-text-link') %></td>
|
||||
<td><%= link_to(user.cn, admin_user_path(user.cn)) %></td>
|
||||
<td>
|
||||
<%= user.confirmed_at.nil? ? badge("pending", :yellow) : "" %>
|
||||
<% if @show_contributors %><%= @contributors.include?(user.cn) ? badge("contributor", :green) : "" %><% end %>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<th>Donations</th>
|
||||
<td>
|
||||
<% if @user.donations.any? %>
|
||||
<%= link_to admin_donations_path(username: @user.cn), class: "ks-text-link" do %>
|
||||
<%= link_to admin_donations_path(username: @user.cn) do %>
|
||||
<%= @user.donations.completed.count %> for
|
||||
<%= number_with_delimiter @user.donations.completed.sum("amount_sats") %> sats
|
||||
<% end %>
|
||||
@@ -60,7 +60,7 @@
|
||||
<th>Invited by</th>
|
||||
<td>
|
||||
<% if @user.inviter %>
|
||||
<%= link_to @user.inviter.cn, admin_user_path(@user.inviter.cn), class: 'ks-text-link' %>
|
||||
<%= link_to @user.inviter.cn, admin_user_path(@user.inviter.cn) %>
|
||||
<% else %>—<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -102,10 +102,10 @@
|
||||
<% if @invitees.any? %>
|
||||
<ul class="mb-0">
|
||||
<% @recent_invitees.each do |invitee| %>
|
||||
<li class="leading-none mb-2 last:mb-0"><%= link_to invitee.cn, admin_user_path(invitee.cn), class: "ks-text-link" %></li>
|
||||
<li class="leading-none mb-2 last:mb-0"><%= link_to invitee.cn, admin_user_path(invitee.cn) %></li>
|
||||
<% end %>
|
||||
<% if @more_invitees > 0 %>
|
||||
<li>and <%= link_to "#{@more_invitees} more", admin_invitations_path(username: @user.cn), class: "ks-text-link" %></li>
|
||||
<li>and <%= link_to "#{@more_invitees} more", admin_invitations_path(username: @user.cn) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% else %>—<% end %>
|
||||
@@ -168,7 +168,7 @@
|
||||
<span class="font-mono" title="<%= @user.pgp_fpr %>">
|
||||
<% if @user.pgp_pubkey_contains_user_address? %>
|
||||
<%= link_to wkd_key_url(hashed_username: @user.wkd_hash, l: @user.cn, format: :txt),
|
||||
class: "ks-text-link", target: "_blank" do %>
|
||||
target: "_blank" do %>
|
||||
<%= "#{@user.pgp_fpr[0, 8]}…#{@user.pgp_fpr[-8..-1]}" %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
bg-[length:86%] bg-[center_top_-40px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_xmpp.svg)]">
|
||||
<%= link_to services_chat_path,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Chat</h3>
|
||||
<p class="text-gray-600">
|
||||
Federated chat rooms and instant messaging
|
||||
@@ -20,7 +20,8 @@
|
||||
<div class="border border-gray-300 rounded-md hover:border-gray-400
|
||||
bg-[length:88%] bg-[center_top_-40px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_mastodon.svg)]">
|
||||
<%= link_to services_mastodon_path, class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
<%= link_to services_mastodon_path,
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Mastodon</h3>
|
||||
<p class="text-gray-600">
|
||||
Your account on the Open Social Web
|
||||
@@ -33,7 +34,8 @@
|
||||
<div class="border border-gray-300 rounded-md hover:border-gray-400
|
||||
bg-[length:90%] bg-[center_top_-160px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_mail.svg)]">
|
||||
<%= link_to services_email_path, class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
<%= link_to services_email_path,
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">E-Mail</h3>
|
||||
<p class="text-gray-600">
|
||||
A no-bullshit email account
|
||||
@@ -47,7 +49,7 @@
|
||||
bg-[length:80%] bg-[center_top_-156px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_remotestorage.svg)]">
|
||||
<%= link_to services_storage_path,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Storage</h3>
|
||||
<p class="text-gray-600">
|
||||
Sync your data between apps and devices
|
||||
@@ -60,7 +62,7 @@
|
||||
bg-cover bg-center sm:bg-[center_top_-140px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_lightning.svg)]">
|
||||
<%= link_to services_lightning_index_path,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Lightning Network</h3>
|
||||
<p class="text-gray-600">
|
||||
Send and receive sats over the Bitcoin Lightning Network
|
||||
@@ -73,7 +75,7 @@
|
||||
bg-[length:80%] bg-center bg-no-repeat
|
||||
bg-[url(/img/logos/icon_discourse.svg)]">
|
||||
<%= link_to "#{Setting.discourse_public_url}/session/sso?return_path=/",
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Discourse</h3>
|
||||
<p class="text-gray-600">
|
||||
Community forums and support/help site
|
||||
@@ -86,7 +88,7 @@
|
||||
bg-[length:92%] bg-center bg-no-repeat
|
||||
bg-[url(/img/logos/icon_gitea.png)]">
|
||||
<%= link_to Setting.gitea_public_url,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Gitea</h3>
|
||||
<p class="text-gray-600">
|
||||
Code hosting and collaboration for software projects
|
||||
@@ -99,7 +101,7 @@
|
||||
bg-[length:86%] bg-[center_top_-60px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_droneci.svg)]">
|
||||
<%= link_to Setting.droneci_public_url,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Drone CI</h3>
|
||||
<p class="text-gray-600">
|
||||
Continuous integration for software projects on Gitea
|
||||
@@ -112,7 +114,7 @@
|
||||
bg-cover bg-[center_top_-20px] bg-no-repeat
|
||||
bg-[url(/img/logos/icon_mediawiki.svg)]">
|
||||
<%= link_to Setting.mediawiki_public_url,
|
||||
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||
class: "block h-full px-6 py-6 rounded-md btn-text-dark" do %>
|
||||
<h3 class="mb-3.5">Wiki</h3>
|
||||
<p class="text-gray-600">
|
||||
Documentation and knowledge base
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
data: { action: "click->settings--toggle#toggleSwitch" } %>
|
||||
<p class="grow text-sm text-right">
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name),
|
||||
class: "text-gray-500 underline" %><br />
|
||||
class: "text-gray-500 visited:text-gray-500 underline" %><br />
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -2,28 +2,28 @@
|
||||
<%- if controller_name != 'sessions' %>
|
||||
<p class="mb-2">
|
||||
<%= link_to "Log in", new_session_path(resource_name),
|
||||
class: "text-gray-500 underline" %>
|
||||
class: "text-gray-500 visited:text-gray-500 underline" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
|
||||
<p class="mb-2">
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name),
|
||||
class: "text-gray-500 underline" %>
|
||||
class: "text-gray-500 visited:text-gray-500 underline" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%- if devise_mapping.confirmable? && !controller_name.match(/^(confirmations|sessions)$/) %>
|
||||
<p class="mb-2">
|
||||
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name),
|
||||
class: "text-gray-500 underline" %>
|
||||
class: "text-gray-500 visited:text-gray-500 underline" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
||||
<p class="mb-2">
|
||||
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name),
|
||||
class: "text-gray-500 underline" %>
|
||||
class: "text-gray-500 visited:text-gray-500 underline" %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<%= javascript_importmap_tags %>
|
||||
</head>
|
||||
<body <%= @context.present? ? "id=#{@context}" : "" %> class="h-full <%= @context == :admin ? "bg-red-500" : "bg-sky-900" %>">
|
||||
<div class="min-h-full">
|
||||
<div class="min-h-full flex flex-col">
|
||||
<nav data-controller="topbar">
|
||||
<div class="max-w-6xl mx-auto sm:px-6 lg:px-8">
|
||||
<div class="border-b border-gray-200/10">
|
||||
@@ -96,7 +96,18 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= yield %>
|
||||
<div class="flex-grow">
|
||||
<%= yield %>
|
||||
</div>
|
||||
|
||||
<% if user_signed_in? && current_user.confirmed? %>
|
||||
<nav id="footer" class="max-w-6xl mx-auto pt-4 sm:px-6 lg:px-8">
|
||||
<div class="flex justify-end items-center space-x-4 h-16">
|
||||
<%= link_to "Terms", tos_page_path, class: main_nav_class(@current_section, :tos) %>
|
||||
<%= link_to "Privacy", privacy_page_path, class: main_nav_class(@current_section, :privacy) %>
|
||||
</div>
|
||||
</nav>
|
||||
<% end %>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
17
app/views/pages/privacy.html.erb
Normal file
17
app/views/pages/privacy.html.erb
Normal file
@@ -0,0 +1,17 @@
|
||||
<%= render HeaderComponent.new(title: "Privacy Policy") %>
|
||||
|
||||
<%= render MainSimpleComponent.new do %>
|
||||
<section>
|
||||
<%= render EditableContentComponent.new(
|
||||
context: "privacy", key: "body", rich_text: true,
|
||||
default: "No content yet. Please add a privacy policy.") %>
|
||||
|
||||
<% if user_signed_in? && current_user.is_admin? %>
|
||||
<div class="mt-8 pt-6 border-t border-gray-200 text-right">
|
||||
<%= render EditContentButtonComponent.new(
|
||||
context: "privacy", key: "body", rich_text: true,
|
||||
redirect_to: request.path) do %>Edit content<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</section>
|
||||
<% end %>
|
||||
17
app/views/pages/tos.html.erb
Normal file
17
app/views/pages/tos.html.erb
Normal file
@@ -0,0 +1,17 @@
|
||||
<%= render HeaderComponent.new(title: "Terms of Service") %>
|
||||
|
||||
<%= render MainSimpleComponent.new do %>
|
||||
<section>
|
||||
<%= render EditableContentComponent.new(
|
||||
context: "tos", key: "body", rich_text: true,
|
||||
default: "No content yet. Please add your terms of service.") %>
|
||||
|
||||
<% if user_signed_in? && current_user.is_admin? %>
|
||||
<div class="mt-8 pt-6 border-t border-gray-200 text-right">
|
||||
<%= render EditContentButtonComponent.new(
|
||||
context: "tos", key: "body", rich_text: true,
|
||||
redirect_to: request.path) do %>Edit content<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</section>
|
||||
<% end %>
|
||||
@@ -4,7 +4,7 @@
|
||||
<section class="permissions">
|
||||
<p class="mb-8">
|
||||
The app on
|
||||
<%= link_to @client_id, "https://#{@client_id}", class: "ks-text-link" %>
|
||||
<%= link_to @client_id, "https://#{@client_id}" %>
|
||||
is asking for access to these folders:
|
||||
</p>
|
||||
|
||||
|
||||
@@ -62,35 +62,30 @@
|
||||
</select>
|
||||
<ul class="hidden sm:flex list-reset mb-8 border-gray-200 border-b">
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Android
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
iOS
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Linux
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Windows
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
macOS
|
||||
</a>
|
||||
</li>
|
||||
<!-- <li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change"> -->
|
||||
<!-- <a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline"> -->
|
||||
<!-- Web -->
|
||||
<!-- </a> -->
|
||||
<!-- </li> -->
|
||||
</ul>
|
||||
|
||||
<div id="apps-android" class="hidden grid grid-cols-1 gap-6"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<p>
|
||||
Your email password is different from your main account password. You can
|
||||
reset your email password in the
|
||||
<%= link_to "email settings", setting_path(:email), class: "ks-text-link" %>.
|
||||
<%= link_to "email settings", setting_path(:email) %>.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
@@ -56,22 +56,22 @@
|
||||
</select>
|
||||
<ul class="hidden sm:flex list-reset mb-8 border-gray-200 border-b">
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Android
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Linux
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Windows
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
macOS
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<h3>Lightning Address</h3>
|
||||
<p class="mb-6">
|
||||
Your user address is also a
|
||||
<a class="ks-text-link" href="https://lightningaddress.com/" target="_blank">Lightning Address</a>!
|
||||
<a href="https://lightningaddress.com/" target="_blank">Lightning Address</a>!
|
||||
The easiest way to receive sats is by just giving out your address:
|
||||
</p>
|
||||
<p data-controller="clipboard" class="flex gap-1 sm:w-2/5">
|
||||
@@ -34,7 +34,7 @@
|
||||
<p>
|
||||
You can connect various wallet apps to your account. This allows
|
||||
you to both receive and send sats. Any wallet that supports
|
||||
<a href="https://bluewallet.io/lndhub/" class="ks-text-link" target="_blank">LNDHub</a>
|
||||
<a href="https://bluewallet.io/lndhub/" target="_blank">LNDHub</a>
|
||||
accounts should be able to add/import your account using our setup
|
||||
code/URL:
|
||||
</p>
|
||||
@@ -57,7 +57,7 @@
|
||||
<div class="w-full grid grid-cols-1 gap-y-4 md:grid-cols-12
|
||||
md:gap-y-6 md:gap-x-4 md:items-center">
|
||||
<h4 class="md:col-span-3">
|
||||
<a href="https://getalby.com/" class="ks-text-link text-xl"
|
||||
<a href="https://getalby.com/" class="text-xl"
|
||||
title="Alby" target="_blank">
|
||||
<%= image_tag("/img/logos/alby.svg", class: 'h-16') %>
|
||||
</a>
|
||||
@@ -70,7 +70,7 @@
|
||||
URL in the "LNDHub Export URI" field.
|
||||
</p>
|
||||
<h4 class="md:col-span-3 mt-4 mb:mt-0">
|
||||
<a href="https://bluewallet.io" class="ks-text-link text-xl"
|
||||
<a href="https://bluewallet.io" class="text-xl"
|
||||
title="Blue Wallet" target="_blank">
|
||||
<%= image_tag("/img/logos/bluewallet.svg", class: 'h-16') %>
|
||||
</a>
|
||||
@@ -83,7 +83,7 @@
|
||||
then scan the setup QR code.
|
||||
</p>
|
||||
<h4 class="md:col-span-3 mt-4 mb:mt-0">
|
||||
<a href="https://zeusln.app" class="ks-text-link text-xl"
|
||||
<a href="https://zeusln.app" class="text-xl"
|
||||
title="Zeus" target="_blank">
|
||||
<%= image_tag("/img/logos/zeus.svg", class: 'h-16') %>
|
||||
</a>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<p>
|
||||
Use your Mastodon account with many different apps, and on any devices
|
||||
you wish! When adding your account to an app, you will log in via
|
||||
<a href="https://kosmos.social" target="_blank" class="ks-text-link">kosmos.social</a>.
|
||||
<a href="https://kosmos.social" target="_blank">kosmos.social</a>.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
@@ -61,32 +61,32 @@
|
||||
</select>
|
||||
<ul class="hidden sm:flex list-reset mb-8 border-gray-200 border-b">
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Web
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-5 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Android
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
iOS
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Linux
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Windows
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
macOS
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -37,17 +37,15 @@
|
||||
<h3>Compatible Apps</h3>
|
||||
<p>
|
||||
Your Storage account is based on a new open standard called
|
||||
<a href="https://remotestorage.io" target="_blank">
|
||||
<img src="/img/logos/icon_remotestorage.svg" class="h-4 w-4 inline">
|
||||
<strong>remoteStorage</strong>
|
||||
</a>, which is not yet widely supported. Look
|
||||
<img src="/img/logos/icon_remotestorage.svg" class="h-4 w-4 inline">
|
||||
<strong>remoteStorage</strong>, which is not yet widely supported. Look
|
||||
for the remoteStorage icon, or check the Sync settings in apps.
|
||||
</p>
|
||||
<p>
|
||||
If you want your favorite apps to support syncing data with your own
|
||||
Storage account, let the developers know! All relevant information is
|
||||
available on the <a href="https://remotestorage.io"
|
||||
target="_blank" class="ks-text-link">remoteStorage website</a>.
|
||||
available on the
|
||||
<a href="https://remotestorage.io" target="_blank">remoteStorage website</a>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -67,27 +65,27 @@
|
||||
</select>
|
||||
<ul class="hidden sm:flex list-reset mb-8 border-gray-200 border-b">
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Productivity
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Bookmarks
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Reading
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
File sharing
|
||||
</a>
|
||||
</li>
|
||||
<li class="mr-2" data-tabs-target="tab" data-action="click->tabs#change:prevent">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline">
|
||||
<a href="#" class="bg-white inline-block py-2 px-4 font-semibold no-underline hover:no-underline text-inherit active:text-inherit">
|
||||
Learning
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<label class="block">
|
||||
<p class="font-bold mb-1">Avatar</p>
|
||||
<p class="text-gray-500">Default profile picture</p>
|
||||
<div class="flex items-center gap-6">
|
||||
<div class="flex flex-col sm:flex-row items-center gap-6">
|
||||
<% if @user.avatar.attached? %>
|
||||
<p class="flex-none">
|
||||
<%= image_tag image_url_for(@user.avatar), class: "h-24 w-24 rounded-lg" %>
|
||||
|
||||
@@ -15,6 +15,8 @@ Rails.application.routes.draw do
|
||||
match 'signup/:step', to: 'signup#steps', as: :signup_steps, via: [:get, :post]
|
||||
post 'signup_validate', to: 'signup#validate'
|
||||
|
||||
get 'privacy', to: 'pages#privacy', as: :privacy_page
|
||||
get 'tos', to: 'pages#tos', as: :tos_page
|
||||
|
||||
get "users/:username/avatars/:hash", to: "avatars#show", as: :user_avatar
|
||||
|
||||
|
||||
Reference in New Issue
Block a user