alchemy-devise 8.1.1 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9b2649108be8e4999deee326d2222e5f799fd5eda0ad47f53ef96340b58fa2a
4
- data.tar.gz: 8ea2edc4830c429a18657ebb0d7baf05710b663c96ceac0367a443f0230ebe6a
3
+ metadata.gz: 9cf0b606ca435cbea3b017b1585034201aa28e2bfbc20ec30533fa7cc4c23311
4
+ data.tar.gz: 9ec0a3c91ff2260c708dbda96aaee91d27d56688aaea1c8ed27136d2bdb2e8e2
5
5
  SHA512:
6
- metadata.gz: 4c8830ceeb4119a108cceda886f14f6b77f2d8a0cf4c8bf3e458b00a3a0a90e6c73a4e06f1ff6f81c30a53a0f45ec67667b848f60fba8032cd78a8234005d07c
7
- data.tar.gz: 262d849e42f6ea3993fd2af820ff987e832952e3c04d38630d290fa081bfc0964e9b8a7b495626f1bab5fb77f9e5be8b653f88711cb661face3511d0c04dd65d
6
+ metadata.gz: 8f9c7b8fb5f6dff4eb7671833a01a8071fea6af6fbb66b09909e78df1ec34fc04f6c81ecf3f0317563d9561a47a2592bcaaed2bd4777190de2bdf77181e5233f
7
+ data.tar.gz: 25bca78c7c9f51dc686b4c23d272b5af68256551a9c54b89f0b92a08525e737fac3e8c338421077ebb79efa80baa6d42e3a662b40b575a872e44d66dbdb6cec4
data/CHANGELOG.md CHANGED
@@ -1,16 +1,28 @@
1
1
  # Changelog
2
2
 
3
- ## 8.1.1 (2026-03-25)
3
+ ## 8.2.0 (2026-04-13)
4
4
 
5
- <!-- Release notes generated using configuration in .github/release.yml at 8.1-stable -->
5
+ <!-- Release notes generated using configuration in .github/release.yml at main -->
6
6
 
7
7
  ## What's Changed
8
+ ### New Features
9
+ * feat: Add timezone to users by @tvdeyen in https://github.com/AlchemyCMS/alchemy-devise/pull/269
10
+ * feat: Add edit user link to user info by @tvdeyen in https://github.com/AlchemyCMS/alchemy-devise/pull/270
11
+ ### Bug Fixes
12
+ * fix: remove duplicate pagination in users resource table by @blish-guenzler in https://github.com/AlchemyCMS/alchemy-devise/pull/256
13
+ * Don't render link when user login is nil by @blish-guenzler in https://github.com/AlchemyCMS/alchemy-devise/pull/259
14
+ * fix: user table pagination by @tvdeyen in https://github.com/AlchemyCMS/alchemy-devise/pull/265
15
+ ### Dependencies
16
+ * Bump immutable from 4.3.6 to 4.3.8 by @dependabot[bot] in https://github.com/AlchemyCMS/alchemy-devise/pull/254
17
+ * Bump picomatch from 2.3.1 to 2.3.2 by @dependabot[bot] in https://github.com/AlchemyCMS/alchemy-devise/pull/264
18
+ * chore(deps): update local dev puma to 8.0 by @dependabot[bot] in https://github.com/AlchemyCMS/alchemy-devise/pull/271
8
19
  ### Other Changes
9
- * [8.1-stable] Merge pull request #256 from blish-guenzler/fix-double-pagination by @alchemycms-bot[bot] in https://github.com/AlchemyCMS/alchemy-devise/pull/258
10
- * [8.1-stable] Merge pull request #259 from blish-guenzler/fix-login-link-to-dialog by @alchemycms-bot[bot] in https://github.com/AlchemyCMS/alchemy-devise/pull/261
20
+ * CI: Test Alchemy 8.2 by @tvdeyen in https://github.com/AlchemyCMS/alchemy-devise/pull/268
11
21
 
22
+ ## New Contributors
23
+ * @blish-guenzler made their first contribution in https://github.com/AlchemyCMS/alchemy-devise/pull/256
12
24
 
13
- **Full Changelog**: https://github.com/AlchemyCMS/alchemy-devise/compare/v8.1.0...v8.1.1
25
+ **Full Changelog**: https://github.com/AlchemyCMS/alchemy-devise/compare/v8.1.1...v8.2.0
14
26
 
15
27
  ## 8.1.0 (2026-02-02)
16
28
 
@@ -35,6 +47,7 @@
35
47
 
36
48
  **Full Changelog**: https://github.com/AlchemyCMS/alchemy-devise/compare/v8.0.0...v8.1.0
37
49
 
50
+
38
51
  ## 8.0.0 (2025-11-28)
39
52
 
40
53
  - Enable rememberable module [#237](https://github.com/AlchemyCMS/alchemy-devise/pull/237) ([tvdeyen](https://github.com/tvdeyen))
@@ -14,7 +14,8 @@ module Alchemy
14
14
  :password,
15
15
  :password_confirmation,
16
16
  :send_credentials,
17
- :tag_list
17
+ :tag_list,
18
+ :timezone
18
19
  ]
19
20
 
20
21
  devise(*Alchemy::Devise.config.devise_modules)
@@ -1,7 +1,7 @@
1
1
  <%= f.input :firstname, input_html: {autocomplete: "given-name"} %>
2
2
  <%= f.input :lastname, input_html: {autocomplete: "family-name"} %>
3
- <%= f.input :login, autofocus: true, required: @user.login_required?, input_html: {autocomplete: "username"} %>
4
- <%= f.input :email, required: @user.email_required?, input_html: {autocomplete: "email"} %>
3
+ <%= f.input :login, autofocus: true, required: f.object.login_required?, input_html: {autocomplete: "username"} %>
4
+ <%= f.input :email, required: f.object.email_required?, input_html: {autocomplete: "email"} %>
5
5
  <% if Alchemy::I18n.available_locales.many? %>
6
6
  <div class="input select">
7
7
  <%= f.label(:language) %>
@@ -10,9 +10,15 @@
10
10
  <% end %>
11
11
  <%= f.input :password, required: while_signup?, input_html: {autocomplete: "new-password"} %>
12
12
  <%= f.input :password_confirmation, required: while_signup?, input_html: {autocomplete: "new-password"} %>
13
- <% if can_update_role? %>
13
+ <%= f.input :timezone,
14
+ collection: ActiveSupport::TimeZone.all, label_method: :to_s, value_method: :name,
15
+ input_html: {
16
+ is: "alchemy-select",
17
+ data: {allow_clear: true}
18
+ } %>
19
+ <% if local_assigns[:user_roles] && can_update_role? %>
14
20
  <%= f.input :alchemy_roles,
15
- collection: @user_roles,
21
+ collection: user_roles,
16
22
  input_html: {
17
23
  multiple: true,
18
24
  is: 'alchemy-select',
@@ -26,7 +32,7 @@
26
32
  <%= f.label :tag_list %>
27
33
  <%= render 'alchemy/admin/partials/autocomplete_tag_list',
28
34
  f: f,
29
- object: @user %>
35
+ object: f.object %>
30
36
  </div>
31
37
  <% end %>
32
38
  <%= f.input :send_credentials, as: 'boolean' %>
@@ -1,4 +1,4 @@
1
- <%= render Alchemy::Admin::Resource::Table.new(@users, query: @query) do |table| %>
1
+ <%= render Alchemy::Admin::Resource::Table.new(users, query: query) do |table| %>
2
2
  <% table.icon_column do |user| %>
3
3
  <%= render_icon(:user, style: user.logged_in? ? "solid" : "regular") %>
4
4
  <% end %>
@@ -8,7 +8,7 @@
8
8
  alchemy.edit_admin_user_path(user), {
9
9
  title: Alchemy.t(:edit_user),
10
10
  overflow: true,
11
- size: "430x500"
11
+ size: "430x530"
12
12
  },
13
13
  title: Alchemy.t(:edit_user) %>
14
14
  <% else %>
@@ -28,5 +28,5 @@
28
28
  <%= user.human_roles_string %>
29
29
  <% end %>
30
30
  <% table.delete_button tooltip: Alchemy.t(:delete_user), confirm_message: Alchemy.t(:confirm_to_delete_user) %>
31
- <% table.edit_button tooltip: Alchemy.t(:edit_user), dialog_size: "430x500" %>
31
+ <% table.edit_button tooltip: Alchemy.t(:edit_user), dialog_size: "430x530" %>
32
32
  <% end %>
@@ -1,3 +1,22 @@
1
- <%= alchemy_form_for [:admin, @user] do |f| %>
2
- <%= render 'fields', f: f %>
1
+ <% if request.xhr? || turbo_frame_request? %>
2
+ <%= alchemy_form_for [:admin, @user] do |f| %>
3
+ <%= render "fields", f: f, user_roles: @user_roles %>
4
+ <% end %>
5
+ <% else %>
6
+ <%= content_for :toolbar do %>
7
+ <sl-tooltip content="<%= Alchemy.t(:back) %>">
8
+ <%= link_to request.referer || alchemy.admin_dashboard_path, class: "icon_button" do %>
9
+ <alchemy-icon name="arrow-left-s"></alchemy-icon>
10
+ <% end %>
11
+ </sl-tooltip>
12
+ <% end %>
13
+
14
+ <div class="panel">
15
+ <alchemy-message type="info">
16
+ <%= Alchemy.t(:edit_user) %>
17
+ </alchemy-message>
18
+ <%= alchemy_form_for [:admin, @user] do |f| %>
19
+ <%= render "fields", f: f, user_roles: @user_roles %>
20
+ <% end %>
21
+ </div>
3
22
  <% end %>
@@ -12,7 +12,7 @@
12
12
  tooltip_placement: "top-start",
13
13
  dialog_options: {
14
14
  title: Alchemy.t(:create_user),
15
- size: "430x500"
15
+ size: "430x530"
16
16
  },
17
17
  if_permitted_to: [:create, Alchemy::User]
18
18
  ) %>
@@ -22,10 +22,8 @@
22
22
  <div id="archive_all" class="resources-table-wrapper">
23
23
  <% if @users.any? %>
24
24
  <%= render "alchemy/admin/resources/table_header" %>
25
- <%= render "resource_table" %>
26
-
27
- <%= paginate @users, theme: 'alchemy' %>
28
-
25
+ <%= render "resource_table", users: @users, query: @query %>
26
+ <%= render "alchemy/admin/resources/pagination", resources: @users %>
29
27
  <% elsif params[:query] %>
30
28
 
31
29
  <div class="info">
@@ -1,3 +1,3 @@
1
1
  <%= alchemy_form_for [:admin, @user] do |f| %>
2
- <%= render 'fields', f: f %>
2
+ <%= render 'fields', f: f, user_roles: @user_roles %>
3
3
  <% end %>
@@ -19,4 +19,5 @@ Rails.application.config.to_prepare do
19
19
  Alchemy.config.login_path = "/admin/login"
20
20
  Alchemy.config.logout_path = "/admin/logout"
21
21
  Alchemy.config.logout_method = Devise.sign_out_via.to_s
22
+ Alchemy.config.edit_user_path = "/admin/users/:id/edit"
22
23
  end
@@ -0,0 +1,6 @@
1
+ class AddTimezoneToAlchemyUsers < ActiveRecord::Migration[7.2]
2
+ def change
3
+ add_column :alchemy_users, :timezone, :string, if_not_exists: true,
4
+ comment: "The timezone of the user, used for displaying dates in the user's timezone"
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
2
  module Devise
3
- VERSION = "8.1.1"
3
+ VERSION = "8.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy-devise
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.1.1
4
+ version: 8.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -15,7 +15,7 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 8.1.0.a
18
+ version: 8.2.0
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '9.0'
@@ -25,7 +25,7 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 8.1.0.a
28
+ version: 8.2.0
29
29
  - - "<"
30
30
  - !ruby/object:Gem::Version
31
31
  version: '9.0'
@@ -236,6 +236,7 @@ files:
236
236
  - db/migrate/20131225232042_add_alchemy_roles_to_alchemy_users.rb
237
237
  - db/migrate/20141209144532_add_indexes_to_alchemy_users.rb
238
238
  - db/migrate/20251127170649_add_rememberable_column.rb
239
+ - db/migrate/20260410115756_add_timezone_to_alchemy_users.rb
239
240
  - lib/alchemy/devise.rb
240
241
  - lib/alchemy/devise/configuration.rb
241
242
  - lib/alchemy/devise/engine.rb