1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 15:49:39 +02:00

Fix auto upgrade logic (#758)

This commit is contained in:
Zach Gollwitzer 2024-05-17 17:25:15 -04:00 committed by GitHub
parent ddf26cd5e5
commit 0d0f766ca1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 61 additions and 23 deletions

View file

@ -1,12 +1,12 @@
module UpgradesHelper
def upgrade_notification
def get_upgrade_for_notification(user, upgrades_mode)
return nil unless ENV["UPGRADES_ENABLED"] == "true"
completed_upgrade = Upgrader.completed_upgrade
return completed_upgrade if completed_upgrade && Current.user.last_alerted_upgrade_commit_sha != completed_upgrade.commit_sha
return completed_upgrade if completed_upgrade && user.last_alerted_upgrade_commit_sha != completed_upgrade.commit_sha
available_upgrade = Upgrader.available_upgrade
if available_upgrade && Setting.upgrades_mode == "manual" && Current.user.last_prompted_upgrade_commit_sha != available_upgrade.commit_sha
if available_upgrade && upgrades_mode == "manual" && user.last_prompted_upgrade_commit_sha != available_upgrade.commit_sha
available_upgrade
end
end

View file

@ -13,7 +13,9 @@ class Upgrader::Upgrade
end
def available?
version > Maybe.version || (version == Maybe.version && commit_sha != Maybe.commit_sha)
return false if commit_sha == Maybe.commit_sha || version < Maybe.version
return false if version == Maybe.version && type == "release"
true
end
def to_s

View file

@ -12,7 +12,9 @@
</main>
</div>
<%= render "shared/upgrade_notification" %>
<% if (upgrade = get_upgrade_for_notification(Current.user, Setting.upgrades_mode)) %>
<%= render partial: "shared/upgrade_notification", locals: { upgrade: upgrade } %>
<% end %>
<% end %>
<%= render template: "layouts/application" %>

View file

@ -1,19 +1,17 @@
<% if upgrade_notification %>
<% upgrade = upgrade_notification %>
<div class="bg-white space-y-4 text-right fixed bottom-10 right-10 p-5 border border-alpha-black-200 shadow-xs rounded-md z-50 max-w-[350px]">
<div>
<p><%= link_to upgrade.to_s, upgrade.url, class: "text-sm text-blue-500 underline hover:text-blue-700", target: "_blank" %></p>
<% if upgrade.complete? %>
<p class="text-gray-900"><%= t(".app_upgraded", version: upgrade.to_s) %></p>
<% else %>
<p class="text-gray-900"><%= t(".new_version_available") %></p>
<% end %>
</div>
<div class="flex justify-end items-center gap-2">
<%= button_to t(".dismiss"), acknowledge_upgrade_path(upgrade.commit_sha), method: :post, class: "#{upgrade.complete? ? 'bg-gray-900 text-white' : 'bg-gray-100 text-gray-900'} text-sm font-bold p-2 rounded-lg" %>
<% if upgrade.available? %>
<%= button_to t(".upgrade_now"), deploy_upgrade_path(upgrade.commit_sha), method: :post, class: "bg-gray-900 hover:bg-gray-700 text-white font-medium text-sm p-2 rounded-lg" %>
<% end %>
</div>
<%# locals: (upgrade:) %>
<div class="bg-white space-y-4 text-right fixed bottom-10 right-10 p-5 border border-alpha-black-200 shadow-xs rounded-md z-50 max-w-[350px]">
<div>
<p><%= link_to upgrade.to_s, upgrade.url, class: "text-sm text-blue-500 underline hover:text-blue-700", target: "_blank" %></p>
<% if upgrade.complete? %>
<p class="text-gray-900"><%= t(".app_upgraded", version: upgrade.to_s) %></p>
<% else %>
<p class="text-gray-900"><%= t(".new_version_available") %></p>
<% end %>
</div>
<% end %>
<div class="flex justify-end items-center gap-2">
<%= button_to t(".dismiss"), acknowledge_upgrade_path(upgrade.commit_sha), method: :post, class: "#{upgrade.complete? ? 'bg-gray-900 text-white' : 'bg-gray-100 text-gray-900'} text-sm font-bold p-2 rounded-lg" %>
<% if upgrade.available? %>
<%= button_to t(".upgrade_now"), deploy_upgrade_path(upgrade.commit_sha), method: :post, class: "bg-gray-900 hover:bg-gray-700 text-white font-medium text-sm p-2 rounded-lg" %>
<% end %>
</div>
</div>