WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,11 @@ jobs:
fail-fast: false
matrix:
alchemy_branch:
- 7.2-stable
- 7.3-stable
- 7.4-stable
- 8.0-stable
ruby:
- "3.2"
- "3.3"
- "3.4"
exclude:
- alchemy_branch: 7.2-stable
ruby: "3.4"
- alchemy_branch: 7.3-stable
ruby: "3.4"
env:
ALCHEMY_BRANCH: ${{ matrix.alchemy_branch }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ jobs:
Standard:
runs-on: ubuntu-latest
env:
ALCHEMY_BRANCH: 7.4-stable
ALCHEMY_BRANCH: 8.0-stable
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
ruby-version: "3.4"
bundler-cache: true
- name: Lint Ruby files
run: bundle exec standardrb
Expand Down
6 changes: 4 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ gemspec
# gem 'byebug', group: [:development, :test]
gem "sqlite3", "~> 2.2"

alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "7.4-stable")
alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "8.0-stable")
gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: alchemy_branch
gem "alchemy-devise", github: "AlchemyCMS/alchemy-devise", branch: "7.4-stable"
gem "alchemy-devise", github: "AlchemyCMS/alchemy-devise", branch: alchemy_branch

gem "rubocop", require: false
gem "standard", "~> 1.25", require: false
gem "pry-byebug"

gem "propshaft", "~> 1.3"
2 changes: 1 addition & 1 deletion alchemy-json_api.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Gem::Specification.new do |spec|

spec.files = Dir["{app,config,db,lib}/**/*", "LICENSE", "Rakefile", "README.md"]

spec.add_dependency "alchemy_cms", [">= 7.2.0", "< 8"]
spec.add_dependency "alchemy_cms", [">= 8.0.0.b", "< 9"]
spec.add_dependency "jsonapi.rb", [">= 1.6.0", "< 2.2"]

spec.add_development_dependency "factory_bot"
Expand Down
2 changes: 1 addition & 1 deletion app/serializers/alchemy/json_api/element_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class ElementSerializer < BaseSerializer
cache_options store: Rails.cache, namespace: "alchemy-jsonapi"

attribute :deprecated do |element|
!!element.definition[:deprecated]
!!element.definition.deprecated
end

has_many :ingredients,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class IngredientPictureSerializer < BaseSerializer
end

attribute :image_mime_type do |ingredient|
"image/#{ingredient.picture.image_file_format}"
ingredient.picture.image_file_format
end

attribute :image_file_size do |ingredient|
Expand Down
2 changes: 0 additions & 2 deletions spec/dummy/config/alchemy/page_layouts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,10 @@
autogenerate: [all_you_can_eat, right_column, left_column]

- name: news
feed: true
unique: true
insert_elements_at: top
elements: [headline, news]
autogenerate: [news]
feed_elements: [news]

- name: contact
unique: true
Expand Down
272 changes: 270 additions & 2 deletions spec/dummy/config/initializers/alchemy.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,271 @@
# frozen_string_literal: true
Alchemy.configure do |config|
# == This is the global Alchemy configuration file
#

Alchemy.signup_path = "/admin/pages" unless Rails.env.test?
# === Auto Log Out Time
#
# The amount of time of inactivity in minutes after which the user is kicked out of his current session.
#
# NOTE: This is only active in production environments
#
# config.auto_logout_time = 30

# === Page caching
#
# Enable/Disable page caching globally.
#
# NOTE: You can enable/disable page caching for single Alchemy::Definitions in the page_layout.yml file.
#
# config.cache_pages = true

# === Sitemap
#
# Alchemy creates a XML, Google compatible, sitemap for you.
#
# The url is: http://your-domain.tld/sitemap.xml
#
# ==== Config Options:
#
# show_root [Boolean] # Show language root page in sitemap?
# show_flag [Boolean] # Enables the Checkbox in Page#update overlay. So your customer can set the visibility of pages in the sitemap.
#
# config.sitemap.tap do |sitemap|
# sitemap.show_root = true
# sitemap.show_flag = false
# end

# === Default items per page in admin views
#
# In Alchemy's Admin, change how many items you would get shown per page by Kaminari
# config.items_per_page = 15

# === Preview window URL configuration
#
# By default Alchemy uses its internal page preview renderer,
# but you can configure it to be any URL instead.
#
# Basic Auth is supported.
#
# config.preview = {
# host: https://www.my-static-site.com
# auth:
# username: <%= ENV["BASIC_AUTH_USERNAME"] %%>
# password: <%= ENV["BASIC_AUTH_PASSWORD"] %%>
# }
# Preview config per site is supported as well.
#
# config.preview = {
# My site name:
# host: https://www.my-static-site.com
# auth:
# username: <%= ENV["BASIC_AUTH_USERNAME"] %%>
# password: <%= ENV["BASIC_AUTH_PASSWORD"] %%>
# }

# === Picture rendering settings
#
# Alchemy uses Dragonfly to render images. Settings for image rendering are specific to elements and are defined in elements.yml
#
# Example:
# - name: some_element
# ingredients:
# - role: some_picture
# type: Picture
# settings:
# hint: true
# crop: true # turns on image cropping
# size: '500x500' # image will be cropped to this size
#
# See http://markevans.github.com/dragonfly for further info.
#
# ==== Global Options:
#
# output_image_quality [Integer] # If image gets rendered as JPG or WebP this is the quality setting for it. (Default 85)
# preprocess_image_resize [String] # Use this option to resize images to the given size when they are uploaded to the image library. Downsizing example: '1000x1000>' (Default nil)
# image_output_format [String] # The global image output format setting. (Default +original+)
#
# NOTE: You can always override the output format in the settings of your ingredients in elements.yml, I.E. {format: 'gif'}
#
# config.output_image_quality = 85
# config.preprocess_image_resize = nil
# config.image_output_format = "original"

# This is used by the seeder to create the default site.
# config.default_site.tap do |default_site|
# default_site.name = "Default Site"
# default_site.host = "*"
# end

# This is the default language when seeding.
config.default_language.tap do |default_language|
default_language.code = "en"
default_language.name = "English"
# default_language.page_layout = "index"
# default_language.frontpage_name = "Index"
end

# === Mailer Settings:
#
# To send emails via contact forms, you can create your form fields here and set which fields are to be validated.
#
# === Validating fields:
#
# Pass the field name as a symbol and a message_id (will be translated) to :validate_fields:
#
# ==== Options:
#
# page_layout_name: [String] # A +Alchemy::PageDefinition+ name. Used to render the contactform on a page with this layout.
# fields: [Array] # An Array of fieldnames.
# validate_fields: [Array] # An Array of fieldnames to be validated on presence.
#
# ==== Translating validation messages:
#
# The validation messages are passed through ::I18n.t so you can translate it in your language yml file.
#
# ==== Example:
#
# de:
# activemodel:
# attributes:
# alchemy/message:
# firstname: Vorname
#
# config.mailer.tap do |mailer|
# mailer.page_layout_name = "contact"
# mailer.forward_to_page = false
# mailer.mail_success_page = "thanks"
# mailer.mail_from = "[email protected]"
# mailer.mail_to = "[email protected]"
# mailer.subject = "A new contact form message"
# mailer.fields = ["salutation", "firstname", "lastname", "address", "zip", "city", "phone", "email", "message"]
# mailer.validate_fields = ["lastname", "email"]
# end

# === User roles
#
# You can add own user roles.
#
# Further documentation for the auth system used please visit:
#
# https://github.com/ryanb/cancan/wiki
#
# ==== Translating User roles
#
# Userroles can be translated inside your the language yml file under:
#
# alchemy:
# user_roles:
# rolename: Name of the role
#
# config.user_roles = ["member", "author", "editor", "admin"]

# === Uploader Settings
#
# upload_limit [Integer] # Set an amount of files upload limit of files which can be uploaded at once. Set 0 for unlimited.
# file_size_limit* [Integer] # Set a file size limit in mega bytes for a per file limit.
#
# *) Allow filetypes to upload. Pass * to allow all kind of files.
#
# config.uploader.tap do |uploader|
# uploader.upload_limit = 50
# uploader.file_size_limit = 100
# uploader.allowed_filetypes.tap do |file_types|
# file_types.alchemy_attachments = ["*"]
# file_types.alchemy_pictures = ["jpg", "jpeg", "gif", "png", "svg", "webp"]
# end
# end

# === Link Target Options
#
# Values for the link target selectbox inside the page link overlay.
# The value gets attached as a data-link-target attribute to the link.
#
# == Example:
#
# Open all links set to overlay inside an jQuery UI Dialog Window.
#
# jQuery(a[data-link-target="overlay"]).dialog();
#
# config.link_target_options = ["blank"]

# === Format matchers
#
# Named aliases for regular expressions that can be used in various places.
# The most common use case is the format validation of ingredients, or attribute validations of your individual models.
#
# == Example:
#
# validates_format_of :url, with: Alchemy.config.format_matchers.url
#
# config.format_matchers.tap do |format|
# format.email = /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
# format.url = /\A[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?\z/ix
# format.link_url = /^(tel:|mailto:|\/|[a-z]+:\/\/)/
# end

# The layout used for rendering the +alchemy/admin/pages#show+ action.
# config.admin_page_preview_layout = "application"

# The sizes for the preview size select in the page editor.
# config.page_preview_sizes = ["360", "640", "768", "1024", "1280", "1440"]

# Enable full text search configuration
#
# It enables a searchable checkbox in the page form to toggle
# the searchable field. These information can used in a search
# plugin (e.g. https://github.com/AlchemyCMS/alchemy-pg_search).
#
# == Example
#
# # config/initializers/alchemy.rb
# Alchemy.config.page_searchable_checkbox = true
#
# config.show_page_searchable_checkbox = false

# The storage adapter for Pictures and Attachments
#
config.storage_adapter = "dragonfly"

# Additional JS modules to be imported in the Alchemy admin UI
#
# Be sure to also pin the modules with +Alchemy.importmap+.
#
# == Example
#
# Alchemy.importmap.pin "flatpickr/de",
# to: "https://ga.jspm.io/npm:[email protected]/dist/l10n/de.js"
#
# config.admin_js_imports << "flatpickr/de"

# Additional importmaps to be included in the Alchemy admin UI
#
# Be sure to also pin modules with +Alchemy.importmap+.
#
# config.admin_importmaps.add(
# importmap_path: root.join("config/importmap.rb"),
# source_paths: [
# root.join("app/javascript")
# ],
# name: "admin_extension"
# )

# Additional stylesheets to be included in the Alchemy admin UI
# config.admin_stylesheets.add("my_app/admin_extension")

# Define page publish targets
#
# A publish target is a ActiveJob that gets performed
# whenever a user clicks the publish page button.
#
# Use this to trigger deployment hooks of external
# services in an asychronous way.
#
# config.publish_targets << "MyPublishJob"

# Configure tabs in the link dialog
#
# With this configuration that tabs in the link dialog can be extended
# without overwriting or defacing the Admin Interface.
#
# config.link_dialog_tabs << "Acme::LinkTab"
end
Loading
Loading