From c470018a4eb0adc8e9ad63ef611423bda4b44e6a Mon Sep 17 00:00:00 2001 From: Damian Legawiec Date: Thu, 2 May 2024 23:08:35 +0200 Subject: [PATCH] added new admin branding (#315) * added new admin branding * added favicon * Update _account_nav.html.erb * header fixes * [skip ci] spec fixes --- Gemfile | 2 +- app/assets/images/admin/logo.png | Bin 26466 -> 0 bytes app/assets/images/favicon.png | Bin 0 -> 10629 bytes app/assets/images/favicon_dark_bg.png | Bin 0 -> 13508 bytes app/assets/images/logo_dark.png | Bin 0 -> 4075 bytes app/assets/images/logo_light.png | Bin 0 -> 3835 bytes app/assets/images/spark_solutions_logo.png | Bin 0 -> 17319 bytes app/assets/images/vendo_logo.png | Bin 0 -> 13849 bytes .../spree/backend/components/_buttons.scss | 4 -- .../spree/backend/components/_navbar.scss | 11 ++-- .../spree/backend/components/_tables.scss | 1 - .../spree/backend/global/_variables.scss | 18 ++++++- .../backend/plugins/_sweetalert2_custom.scss | 2 +- app/helpers/spree/admin/base_helper.rb | 4 ++ app/helpers/spree/admin/navigation_helper.rb | 2 +- app/helpers/spree/admin/stores_helper.rb | 6 +-- app/models/spree/admin/actions/action.rb | 2 +- app/models/spree/admin/updater.rb | 35 +++++++++++++ .../adjustments/_adjustments_table.html.erb | 2 +- .../spree/admin/cms_pages/_form.html.erb | 6 +-- .../cms_pages/_live_preview_area.html.erb | 2 +- .../spree/admin/cms_pages/index.html.erb | 2 +- .../spree/admin/countries/index.html.erb | 2 +- .../_return_item_decision.html.erb | 2 +- .../admin/customer_returns/index.html.erb | 2 +- .../admin/dashboard/_getting_started.html.erb | 2 +- .../spree/admin/data_feeds/index.html.erb | 2 +- app/views/spree/admin/images/index.html.erb | 2 +- app/views/spree/admin/menus/edit.html.erb | 2 +- app/views/spree/admin/menus/index.html.erb | 2 +- .../admin/oauth_applications/index.html.erb | 4 +- .../_option_value_fields.html.erb | 2 +- .../spree/admin/option_types/edit.html.erb | 2 +- .../spree/admin/option_types/index.html.erb | 4 +- .../spree/admin/orders/_channel_form.html.erb | 2 +- .../spree/admin/orders/_line_items.html.erb | 2 +- .../spree/admin/orders/_shipment.html.erb | 26 +++++----- .../admin/orders/_shipment_manifest.html.erb | 2 +- .../admin/payment_methods/index.html.erb | 4 +- .../_product_property_fields.html.erb | 6 +-- .../spree/admin/products/_autocomplete.js.erb | 2 +- .../admin/promotion_categories/index.html.erb | 2 +- .../spree/admin/promotions/_actions.html.erb | 2 +- .../spree/admin/promotions/_rules.html.erb | 2 +- .../tiered_flat_rate/_fields.html.erb | 2 +- .../tiered_percent/_fields.html.erb | 2 +- .../spree/admin/promotions/index.html.erb | 2 +- .../promotions/rules/_option_value.html.erb | 2 +- .../spree/admin/properties/index.html.erb | 2 +- .../admin/prototypes/_prototypes.html.erb | 2 +- .../spree/admin/prototypes/index.html.erb | 2 +- .../admin/reimbursement_types/index.html.erb | 2 +- .../return_authorizations/index.html.erb | 2 +- app/views/spree/admin/roles/index.html.erb | 2 +- .../spree/admin/shared/_account_nav.html.erb | 48 +++++++++++------- .../shared/_edit_resource_links.html.erb | 2 +- app/views/spree/admin/shared/_head.html.erb | 6 +++ app/views/spree/admin/shared/_header.html.erb | 46 ++++++++++------- .../admin/shared/_new_resource_links.html.erb | 2 +- .../admin/shared/_store_switcher.html.erb | 10 ++-- .../spree/admin/shared/_version.html.erb | 25 ++++++--- .../admin/shared/named_types/_index.html.erb | 2 +- .../admin/shipping_categories/index.html.erb | 2 +- .../admin/shipping_methods/index.html.erb | 2 +- app/views/spree/admin/states/index.html.erb | 2 +- .../admin/stock_locations/index.html.erb | 2 +- .../admin/stock_movements/index.html.erb | 2 +- .../admin/stock_transfers/index.html.erb | 2 +- .../spree/admin/stock_transfers/show.html.erb | 2 +- .../store_credit_categories/index.html.erb | 2 +- app/views/spree/admin/stores/edit.html.erb | 2 +- app/views/spree/admin/stores/index.html.erb | 2 +- .../spree/admin/tax_categories/index.html.erb | 2 +- .../spree/admin/tax_rates/index.html.erb | 2 +- .../spree/admin/taxonomies/_list.html.erb | 2 +- .../spree/admin/taxonomies/edit.html.erb | 2 +- .../spree/admin/taxonomies/index.html.erb | 2 +- .../_autocomplete_line_items_stock.js.erb | 6 +-- .../admin/variants/_autocomplete_stock.js.erb | 4 +- app/views/spree/admin/variants/_split.js.erb | 2 +- app/views/spree/admin/variants/index.html.erb | 2 +- .../admin/webhooks_subscribers/index.html.erb | 4 +- app/views/spree/admin/zones/index.html.erb | 2 +- app/views/spree/layouts/admin.html.erb | 2 +- spec/features/admin/menus/new_menu_spec.rb | 2 - .../admin/products/edit/properties_spec.rb | 2 +- .../admin/products/variant_prices_spec.rb | 2 +- .../models/spree/admin/actions/action_spec.rb | 2 +- 88 files changed, 242 insertions(+), 156 deletions(-) delete mode 100644 app/assets/images/admin/logo.png create mode 100644 app/assets/images/favicon.png create mode 100644 app/assets/images/favicon_dark_bg.png create mode 100644 app/assets/images/logo_dark.png create mode 100644 app/assets/images/logo_light.png create mode 100644 app/assets/images/spark_solutions_logo.png create mode 100644 app/assets/images/vendo_logo.png create mode 100644 app/models/spree/admin/updater.rb diff --git a/Gemfile b/Gemfile index 63ba1d3513..f4074a3d0a 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,7 @@ platforms :ruby do elsif ENV['DB'] == 'postgres' gem 'pg' else - gem 'sqlite3' + gem 'sqlite3', '~> 1.4' end end diff --git a/app/assets/images/admin/logo.png b/app/assets/images/admin/logo.png deleted file mode 100644 index 51a360c77ddda10ca51086137be4ee5966c9eb09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26466 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 diff --git a/app/assets/images/favicon.png b/app/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8b0f91aae80635844592758d3eb3a410e6f162 GIT binary patch literal 10629 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 YDW{8k>En@K*Sk5uK*w0SM$-ZDe*zBLYXATM literal 0 HcmV?d00001 diff --git a/app/assets/images/logo_light.png b/app/assets/images/logo_light.png new file mode 100644 index 0000000000000000000000000000000000000000..ff125cfe16bdcfe457cc8e34ef8017fbb70ae307 GIT binary patch literal 3835 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/spark_solutions_logo.png b/app/assets/images/spark_solutions_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7f872c7d397082817179b7b4d3b9a44690947e21 GIT binary patch literal 17319 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 DI9F=v literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/spree/backend/components/_buttons.scss b/app/assets/stylesheets/spree/backend/components/_buttons.scss index 06273b78d7..3d91786b92 100644 --- a/app/assets/stylesheets/spree/backend/components/_buttons.scss +++ b/app/assets/stylesheets/spree/backend/components/_buttons.scss @@ -1,7 +1,3 @@ -.payment-action-save { - @include button-variant(theme-color('success'), theme-color('success'), theme-color('success') ); -} - .btn, .nav-pills > li > a { vertical-align: middle; diff --git a/app/assets/stylesheets/spree/backend/components/_navbar.scss b/app/assets/stylesheets/spree/backend/components/_navbar.scss index 25998e8bb2..81fdc90789 100644 --- a/app/assets/stylesheets/spree/backend/components/_navbar.scss +++ b/app/assets/stylesheets/spree/backend/components/_navbar.scss @@ -1,3 +1,7 @@ +.dropdown-menu { + @extend .shadow; +} + .header { .navbar { min-height:54px; @@ -16,13 +20,6 @@ } } - #accountNav { - i { - font-size: 1.3em; - line-height: 1rem; - } - } - #storeSwitcherDropdown { .dropdown-menu.show { min-width: 250px; diff --git a/app/assets/stylesheets/spree/backend/components/_tables.scss b/app/assets/stylesheets/spree/backend/components/_tables.scss index a276593ac0..5e615a66d3 100644 --- a/app/assets/stylesheets/spree/backend/components/_tables.scss +++ b/app/assets/stylesheets/spree/backend/components/_tables.scss @@ -19,7 +19,6 @@ table.table { thead { th { - text-transform: uppercase; font-size: $small-font-size; padding: 0.5rem; padding-top: 14px; diff --git a/app/assets/stylesheets/spree/backend/global/_variables.scss b/app/assets/stylesheets/spree/backend/global/_variables.scss index 3516d532e5..cd2efc17cb 100644 --- a/app/assets/stylesheets/spree/backend/global/_variables.scss +++ b/app/assets/stylesheets/spree/backend/global/_variables.scss @@ -1,8 +1,22 @@ +// https://github.com/twbs/bootstrap/blob/v4.6.2/scss/_variables.scss + $theme-colors: ( - "primary": #4C75BA, + "primary": #000, ); -$enable-shadows: true; +$enable-responsive-font-sizes: true; +$font-family-sans-serif: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif !default; +$font-size-base: 0.813rem !default; +$font-size-plus: 0.875rem !default; +$font-size-sm: 0.75rem !default; +$font-size-lg: 1rem !default; + +$border-radius: 0.5rem !default; +$border-radius-sm: 0.4rem !default; +$border-radius-lg: 0.75rem !default; + +$dropdown-item-padding-y: .5rem !default; +$dropdown-item-padding-x: 1rem !default; // https://github.com/twbs/bootstrap/issues/32019 // we need this hotfix for sassc diff --git a/app/assets/stylesheets/spree/backend/plugins/_sweetalert2_custom.scss b/app/assets/stylesheets/spree/backend/plugins/_sweetalert2_custom.scss index 74faa46947..6e4d028bf5 100644 --- a/app/assets/stylesheets/spree/backend/plugins/_sweetalert2_custom.scss +++ b/app/assets/stylesheets/spree/backend/plugins/_sweetalert2_custom.scss @@ -5,7 +5,7 @@ body.swal2-shown { } .swal2-html-container { text-align: left; - font-size: 0.9em; + font-size: 0.813rem !important; .alert-link { font-weight: 400; diff --git a/app/helpers/spree/admin/base_helper.rb b/app/helpers/spree/admin/base_helper.rb index 5a7ac10bfb..ad054c383f 100644 --- a/app/helpers/spree/admin/base_helper.rb +++ b/app/helpers/spree/admin/base_helper.rb @@ -286,6 +286,10 @@ def product_wysiwyg_editor_enabled? def taxon_wysiwyg_editor_enabled? Spree::Backend::Config[:taxon_wysiwyg_editor_enabled] end + + def spree_update_available? + @spree_update_available ||= Spree::Admin::Updater.update_available? + end end end end diff --git a/app/helpers/spree/admin/navigation_helper.rb b/app/helpers/spree/admin/navigation_helper.rb index dfecab836c..c13f7b9832 100644 --- a/app/helpers/spree/admin/navigation_helper.rb +++ b/app/helpers/spree/admin/navigation_helper.rb @@ -301,7 +301,7 @@ def wrapper_classes end def page_header_back_button(url) - link_to url, class: 'btn btn-outline-info mr-3 pr-1' do + link_to url, class: 'btn btn-light mr-3 pr-1' do svg_icon name: 'chevron-left.svg', width: 15, height: 15 end end diff --git a/app/helpers/spree/admin/stores_helper.rb b/app/helpers/spree/admin/stores_helper.rb index 2cfb88dead..3ab5ba5d03 100644 --- a/app/helpers/spree/admin/stores_helper.rb +++ b/app/helpers/spree/admin/stores_helper.rb @@ -16,14 +16,14 @@ def stores_dropdown_values def store_switcher_link(store) if current_store.id == store.id classes = 'disabled bg-light' - icon = svg_icon name: 'circle-fill.svg', width: '18', height: '18' + icon = svg_icon name: 'circle-fill.svg', width: '14', height: '14' else classes = nil - icon = svg_icon name: 'circle.svg', width: '18', height: '18' + icon = svg_icon name: 'circle.svg', width: '14', height: '14' end link_to icon + store.unique_name, spree.admin_url(host: store.formatted_url), - class: "#{classes} py-3 px-4 dropdown-item rounded", id: store.code, data: { turbo: false } + class: "#{classes} dropdown-item", id: store.code, data: { turbo: false } end end end diff --git a/app/models/spree/admin/actions/action.rb b/app/models/spree/admin/actions/action.rb index 4b6b46e8e8..b854b9a232 100644 --- a/app/models/spree/admin/actions/action.rb +++ b/app/models/spree/admin/actions/action.rb @@ -3,7 +3,7 @@ module Admin module Actions class Action STYLE_CLASSES = { - ::Spree::Admin::Actions::ActionStyle::PRIMARY => 'btn-success', + ::Spree::Admin::Actions::ActionStyle::PRIMARY => 'btn-primary', ::Spree::Admin::Actions::ActionStyle::SECONDARY => 'btn-secondary', ::Spree::Admin::Actions::ActionStyle::LIGHT => 'btn-light' } diff --git a/app/models/spree/admin/updater.rb b/app/models/spree/admin/updater.rb new file mode 100644 index 0000000000..a396a3acbb --- /dev/null +++ b/app/models/spree/admin/updater.rb @@ -0,0 +1,35 @@ +require 'net/http' +require 'json' +require 'uri' + +module Spree + module Admin + class Updater + SPREE_CLOUD_UPDATES_URL = 'https://spreecloud.io/updates.json' + + @updates = nil + + def self.update_available? + fetch_updates.any? + end + + def self.fetch_updates + @updates ||= Rails.cache.fetch("spree/admin/updater/fetch_updates/#{Spree.version}", expires_in: 1.day) do + uri = URI(SPREE_CLOUD_UPDATES_URL) + params = { version: Spree.version } + uri.query = URI.encode_www_form(params) + + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = uri.scheme == 'https' + http.open_timeout = 1 # 1s timeout for opening the connection + http.read_timeout = 1 # 1s timeout for reading the response + + response = http.get(uri) + return {} unless response.is_a?(Net::HTTPSuccess) + + JSON.parse(response.body) + end + end + end + end +end diff --git a/app/views/spree/admin/adjustments/_adjustments_table.html.erb b/app/views/spree/admin/adjustments/_adjustments_table.html.erb index fb2757eb55..67d3de90c3 100644 --- a/app/views/spree/admin/adjustments/_adjustments_table.html.erb +++ b/app/views/spree/admin/adjustments/_adjustments_table.html.erb @@ -21,7 +21,7 @@