moduler 0.2.0 → 0.3.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 +4 -4
- data/app/assets/builds/moduler/tailwind.css +1358 -1
- data/app/assets/javascripts/moduler/application.js +1 -0
- data/app/assets/javascripts/moduler/controllers/flash_controller.js +19 -0
- data/app/assets/stylesheets/moduler/tailwind.css +3 -0
- data/app/components/moduler/administration/page_component.html.erb +7 -0
- data/app/components/moduler/administration/page_component.rb +6 -0
- data/app/components/moduler/badge_component.html.erb +8 -0
- data/app/components/moduler/badge_component.rb +10 -0
- data/app/components/moduler/button_component.html.erb +7 -0
- data/app/components/moduler/button_component.rb +19 -0
- data/app/components/moduler/button_link_component.html.erb +5 -0
- data/app/components/moduler/button_link_component.rb +15 -0
- data/app/components/moduler/filter_component.html.erb +12 -0
- data/app/components/moduler/filter_component.rb +15 -0
- data/app/components/moduler/form/base_error_component.html.erb +1 -0
- data/app/components/moduler/form/base_error_component.rb +9 -0
- data/app/components/moduler/form/email_component.html.erb +14 -0
- data/app/components/moduler/form/email_component.rb +11 -0
- data/app/components/moduler/form/password_component.html.erb +14 -0
- data/app/components/moduler/form/password_component.rb +11 -0
- data/app/components/moduler/form/section_component.html.erb +5 -0
- data/app/components/moduler/form/section_component.rb +14 -0
- data/app/components/moduler/form/select_component.html.erb +14 -0
- data/app/components/moduler/form/select_component.rb +12 -0
- data/app/components/moduler/form/submit_component.html.erb +3 -0
- data/app/components/moduler/form/submit_component.rb +10 -0
- data/app/components/moduler/form/text_component.html.erb +14 -0
- data/app/components/moduler/form/text_component.rb +11 -0
- data/app/components/moduler/list_component.html.erb +15 -0
- data/app/components/moduler/list_component.rb +18 -0
- data/app/components/moduler/list_item_component.html.erb +23 -0
- data/app/components/moduler/list_item_component.rb +14 -0
- data/app/components/moduler/page_header_component.html.erb +16 -0
- data/app/components/moduler/page_header_component.rb +12 -0
- data/app/components/moduler/sidebar_action_component.html.erb +5 -0
- data/app/components/moduler/sidebar_action_component.rb +15 -0
- data/app/controllers/concerns/moduler/authentication.rb +10 -2
- data/app/controllers/moduler/administration/application_controller.rb +7 -0
- data/app/controllers/moduler/administration/home_controller.rb +9 -0
- data/app/controllers/moduler/administration/sessions_controller.rb +34 -0
- data/app/controllers/moduler/administration/users_controller.rb +56 -0
- data/app/controllers/moduler/application_controller.rb +15 -0
- data/app/controllers/moduler/profile/sessions/revocation_controller.rb +14 -0
- data/app/controllers/moduler/profile/sessions_controller.rb +21 -0
- data/app/controllers/moduler/profile_controller.rb +27 -0
- data/app/controllers/moduler/sessions_controller.rb +8 -1
- data/app/controllers/moduler/users_controller.rb +7 -0
- data/app/filters/application_filter.rb +41 -0
- data/app/filters/query_filter.rb +18 -0
- data/app/lib/moduler/form_builder.rb +2 -2
- data/app/models/moduler/session.rb +12 -0
- data/app/models/moduler/user.rb +9 -0
- data/app/policies/moduler/administration/base_policy.rb +11 -0
- data/app/policies/moduler/administration/home_policy.rb +9 -0
- data/app/policies/moduler/administration/session_policy.rb +13 -0
- data/app/policies/moduler/administration/user_policy.rb +25 -0
- data/app/policies/moduler/application_policy.rb +38 -0
- data/app/views/kaminari/_gap.html.erb +1 -0
- data/app/views/kaminari/_next_page.html.erb +1 -0
- data/app/views/kaminari/_page.html.erb +3 -0
- data/app/views/kaminari/_paginator.html.erb +13 -0
- data/app/views/kaminari/_prev_page.html.erb +1 -0
- data/app/views/layouts/moduler/application.html.erb +5 -6
- data/app/views/moduler/administration/home/index.html.erb +6 -0
- data/app/views/moduler/administration/sessions/_session.html.erb +30 -0
- data/app/views/moduler/administration/sessions/index.html.erb +9 -0
- data/app/views/moduler/administration/users/_user.html.erb +13 -0
- data/app/views/moduler/administration/users/edit.html.erb +14 -0
- data/app/views/moduler/administration/users/index.html.erb +13 -0
- data/app/views/moduler/administration/users/new.html.erb +18 -0
- data/app/views/moduler/common/_flash.html.erb +16 -0
- data/app/views/moduler/common/_header.html.erb +12 -3
- data/app/views/moduler/common/_sidebar.html.erb +6 -0
- data/app/views/moduler/common/administration/_sidebar.html.erb +6 -0
- data/app/views/moduler/profile/edit.html.erb +28 -0
- data/app/views/moduler/profile/sessions/_session.html.erb +52 -0
- data/app/views/moduler/profile/sessions/index.html.erb +26 -0
- data/app/views/moduler/sessions/new.html.erb +4 -18
- data/app/views/moduler/users/new.html.erb +5 -32
- data/config/importmap.rb +1 -0
- data/config/locales/moduler/administration/sessions/en.yml +24 -0
- data/config/locales/moduler/administration/users/en.yml +43 -0
- data/config/locales/moduler/common/en.yml +5 -0
- data/config/locales/moduler/components/en.yml +11 -0
- data/config/locales/moduler/en.yml +4 -0
- data/config/locales/moduler/profile/en.yml +26 -0
- data/config/locales/moduler/profile/sessions/en.yml +25 -0
- data/config/locales/moduler/sessions/en.yml +1 -0
- data/config/locales/moduler/users/en.yml +7 -1
- data/config/routes.rb +14 -1
- data/db/migrate/20261015171504_add_role_to_moduler_users.rb +5 -0
- data/db/migrate/20261020191709_enable_pg_trgm.rb +5 -0
- data/lib/moduler/engine.rb +2 -0
- data/lib/moduler/version.rb +1 -1
- data/lib/moduler.rb +4 -0
- data/lib/tasks/moduler_tasks.rake +2 -4
- metadata +151 -5
- data/app/assets/javascripts/moduler/controllers/hello_controller.js +0 -6
- data/app/controllers/moduler/hello_controller.rb +0 -5
- data/app/views/moduler/hello/index.html.erb +0 -5
|
@@ -18,25 +18,11 @@
|
|
|
18
18
|
|
|
19
19
|
<div>
|
|
20
20
|
<%= form_for @user, url: moduler.session_path, class: "space-y-6", data: { turbo: false } do |form| %>
|
|
21
|
-
<%= form
|
|
21
|
+
<%= render(::Moduler::Form::BaseErrorComponent.new(form)) %>
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
<%= form.email_field :email_address, autofocus: true, placeholder: t(".placeholder.email_address"), value: params[:email_address], class: "block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-custom sm:text-sm/6" %>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<div class="mt-2">
|
|
31
|
-
<label for="password" class="block text-sm/6 font-medium text-gray-900"><%= t(".label.password") %></label>
|
|
32
|
-
<div class="mt-2">
|
|
33
|
-
<%= form.password_field :password, placeholder: t(".placeholder.password"), class: "block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-custom sm:text-sm/6" %>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<div class="mt-4">
|
|
38
|
-
<button type="submit" class="cursor-pointer flex w-full justify-center rounded-md bg-custom px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-custom focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-custom"><%= t(".action.sign_in") %></button>
|
|
39
|
-
</div>
|
|
23
|
+
<%= render(::Moduler::Form::EmailComponent.new(form, :email_address, label: t(".label.email_address"), placeholder: t(".placeholder.email_address"))) %>
|
|
24
|
+
<%= render(::Moduler::Form::PasswordComponent.new(form, :password, label: t(".label.password"), placeholder: t(".placeholder.password"))) %>
|
|
25
|
+
<%= render(::Moduler::Form::SubmitComponent.new(form, text: t(".action.sign_in"))) %>
|
|
40
26
|
<% end %>
|
|
41
27
|
</div>
|
|
42
28
|
</div>
|
|
@@ -12,39 +12,12 @@
|
|
|
12
12
|
<div class="mt-10">
|
|
13
13
|
<div>
|
|
14
14
|
<%= form_for @user, url: moduler.user_path, class: "space-y-6", data: { turbo: false } do |form| %>
|
|
15
|
-
|
|
16
|
-
<label for="email" class="block text-sm/6 font-medium text-gray-900"><%= t(".label.email_address") %></label>
|
|
17
|
-
<div class="mt-2">
|
|
18
|
-
<%= form.email_field :email_address, autofocus: true, placeholder: t(".placeholder.email_address"), class: "block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-custom sm:text-sm/6" %>
|
|
19
|
-
</div>
|
|
20
|
-
<% if form.error?(:email_address) %>
|
|
21
|
-
<%= form.error(:email_address, class: "text-red-500 text-sm mt-1") %>
|
|
22
|
-
<% end %>
|
|
23
|
-
</div>
|
|
15
|
+
<%= render(::Moduler::Form::BaseErrorComponent.new(form)) %>
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</div>
|
|
30
|
-
<% if form.error?(:password) %>
|
|
31
|
-
<%= form.error(:password, class: "text-red-500 text-sm mt-1") %>
|
|
32
|
-
<% end %>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div class="mt-2">
|
|
36
|
-
<label for="password_confirmation" class="block text-sm/6 font-medium text-gray-900"><%= t(".label.password_confirmation") %></label>
|
|
37
|
-
<div class="mt-2">
|
|
38
|
-
<%= form.password_field :password_confirmation, placeholder: t(".placeholder.password_confirmation"), class: "block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-custom sm:text-sm/6" %>
|
|
39
|
-
</div>
|
|
40
|
-
<% if form.error?(:password_confirmation) %>
|
|
41
|
-
<%= form.error(:password_confirmation, class: "text-red-500 text-sm mt-1") %>
|
|
42
|
-
<% end %>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
<div class="mt-4">
|
|
46
|
-
<button type="submit" class="cursor-pointer flex w-full justify-center rounded-md bg-custom px-3 py-1.5 text-sm/6 font-semibold text-white shadow-sm hover:bg-custom focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-custom"><%= t(".action.sign_up") %></button>
|
|
47
|
-
</div>
|
|
17
|
+
<%= render(::Moduler::Form::EmailComponent.new(form, :email_address, label: t(".label.email_address"), placeholder: t(".placeholder.email_address"))) %>
|
|
18
|
+
<%= render(::Moduler::Form::PasswordComponent.new(form, :password, label: t(".label.password"), placeholder: t(".placeholder.password"), description: t(".description.password"))) %>
|
|
19
|
+
<%= render(::Moduler::Form::PasswordComponent.new(form, :password_confirmation, placeholder: t(".placeholder.password_confirmation"))) %>
|
|
20
|
+
<%= render(::Moduler::Form::SubmitComponent.new(form, text: t(".action.sign_up"))) %>
|
|
48
21
|
<% end %>
|
|
49
22
|
</div>
|
|
50
23
|
</div>
|
data/config/importmap.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
pin "moduler/application"
|
|
2
|
+
pin "@hotwired/turbo-rails", to: "turbo.min.js"
|
|
2
3
|
pin "@hotwired/stimulus", to: "stimulus.min.js"
|
|
3
4
|
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js"
|
|
4
5
|
pin_all_from File.expand_path("../app/assets/javascripts/moduler/controllers", __dir__), under: "moduler/controllers"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
en:
|
|
2
|
+
moduler:
|
|
3
|
+
administration:
|
|
4
|
+
sessions:
|
|
5
|
+
index:
|
|
6
|
+
title: Sessions
|
|
7
|
+
description: Sessions of all users. Search sessions by email address, IP address or device and revoke any of them.
|
|
8
|
+
empty: No sessions found.
|
|
9
|
+
destroy:
|
|
10
|
+
notice: Session has been revoked
|
|
11
|
+
session:
|
|
12
|
+
action:
|
|
13
|
+
destroy: Revoke
|
|
14
|
+
status:
|
|
15
|
+
active: Active
|
|
16
|
+
signed_out: Signed out
|
|
17
|
+
current: This device
|
|
18
|
+
signed_in: Signed in %{time} ago
|
|
19
|
+
signed_out: Signed out %{time} ago
|
|
20
|
+
unknown_ip: Unknown IP address
|
|
21
|
+
unknown_device: Unknown device
|
|
22
|
+
confirmation:
|
|
23
|
+
destroy: The user will be signed out of this session. Are you sure?
|
|
24
|
+
destroy_current: You will be signed out of this device. Are you sure?
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
en:
|
|
2
|
+
moduler:
|
|
3
|
+
administration:
|
|
4
|
+
users:
|
|
5
|
+
roles:
|
|
6
|
+
member: Member
|
|
7
|
+
administrator: Administrator
|
|
8
|
+
index:
|
|
9
|
+
title: Users
|
|
10
|
+
description: Manage user accounts and their roles. Search users by email address.
|
|
11
|
+
empty: No users found.
|
|
12
|
+
action:
|
|
13
|
+
new: Create
|
|
14
|
+
new:
|
|
15
|
+
title: New user
|
|
16
|
+
label:
|
|
17
|
+
email_address: Email address
|
|
18
|
+
role: Role
|
|
19
|
+
password: Password
|
|
20
|
+
description:
|
|
21
|
+
password: Use at least 8 characters.
|
|
22
|
+
section:
|
|
23
|
+
data: User data
|
|
24
|
+
password: Password
|
|
25
|
+
action:
|
|
26
|
+
create: Create
|
|
27
|
+
create:
|
|
28
|
+
notice: User has been created
|
|
29
|
+
edit:
|
|
30
|
+
title: Edit user
|
|
31
|
+
label:
|
|
32
|
+
email_address: Email address
|
|
33
|
+
role: Role
|
|
34
|
+
section:
|
|
35
|
+
data: User data
|
|
36
|
+
action:
|
|
37
|
+
save: Save
|
|
38
|
+
update:
|
|
39
|
+
notice: User has been updated
|
|
40
|
+
user:
|
|
41
|
+
action:
|
|
42
|
+
edit: Edit
|
|
43
|
+
created: Created %{time} ago
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
en:
|
|
2
|
+
moduler:
|
|
3
|
+
profile:
|
|
4
|
+
edit:
|
|
5
|
+
title: Profile
|
|
6
|
+
label:
|
|
7
|
+
email_address: Email address
|
|
8
|
+
password: New password
|
|
9
|
+
password_confirmation: Confirm new password
|
|
10
|
+
password_challenge: Current password
|
|
11
|
+
description:
|
|
12
|
+
password_confirmation: Leave blank to keep your current password. Changing it signs out your other active sessions.
|
|
13
|
+
password_challenge: Required to save changes to password.
|
|
14
|
+
action:
|
|
15
|
+
save: Save
|
|
16
|
+
section:
|
|
17
|
+
data: Your data
|
|
18
|
+
password: Change password
|
|
19
|
+
current_password: Confirm changes
|
|
20
|
+
sidebar:
|
|
21
|
+
profile: Profile
|
|
22
|
+
notifications: Notifications
|
|
23
|
+
security: Security
|
|
24
|
+
billing: Billing
|
|
25
|
+
update:
|
|
26
|
+
notice: Your profile has been updated
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
en:
|
|
2
|
+
moduler:
|
|
3
|
+
profile:
|
|
4
|
+
sessions:
|
|
5
|
+
index:
|
|
6
|
+
title: Sessions
|
|
7
|
+
description: Devices where you are signed in to your account. Revoke any session you don't recognize.
|
|
8
|
+
action:
|
|
9
|
+
revoke_all: Revoke all
|
|
10
|
+
confirmation:
|
|
11
|
+
revoke: You will be signed out of all sessions, including this one. Are you sure?
|
|
12
|
+
session:
|
|
13
|
+
action:
|
|
14
|
+
destroy: Revoke
|
|
15
|
+
status:
|
|
16
|
+
active: Active
|
|
17
|
+
signed_out: Signed out
|
|
18
|
+
current: This device
|
|
19
|
+
signed_in: Signed in %{time} ago
|
|
20
|
+
signed_out: Signed out %{time} ago
|
|
21
|
+
unknown_ip: Unknown IP address
|
|
22
|
+
unknown_device: Unknown device
|
|
23
|
+
confirmation:
|
|
24
|
+
destroy: Are you sure?
|
|
25
|
+
destroy_current: You will be signed out of this device. Are you sure?
|
|
@@ -7,9 +7,15 @@ en:
|
|
|
7
7
|
action:
|
|
8
8
|
sign_in: "Sign in"
|
|
9
9
|
sign_up: "Sign up"
|
|
10
|
+
label:
|
|
11
|
+
email_address: "Email address"
|
|
12
|
+
password: "Password"
|
|
10
13
|
placeholder:
|
|
11
14
|
email_address: "Email address"
|
|
12
15
|
password: "Password"
|
|
13
|
-
password_confirmation: "
|
|
16
|
+
password_confirmation: "Confirm password"
|
|
17
|
+
description:
|
|
18
|
+
password: "Use at least 8 characters containing at least 1 number and 1 lowercase letter"
|
|
14
19
|
create:
|
|
15
20
|
success: "User created successfully."
|
|
21
|
+
rate_limited: "Too many sign-up attempts. Please try again in a few minutes."
|
data/config/routes.rb
CHANGED
|
@@ -2,7 +2,20 @@ Moduler::Engine.routes.draw do
|
|
|
2
2
|
resource :session, only: %i[new create destroy]
|
|
3
3
|
resource :user, only: %i[new create]
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
resource :profile, only: %i[ edit update ], controller: :profile
|
|
6
|
+
namespace :profile do
|
|
7
|
+
namespace :sessions do
|
|
8
|
+
resource :revocation, only: :destroy, controller: :revocation
|
|
9
|
+
end
|
|
10
|
+
resources :sessions, only: %i[ index destroy ]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
namespace :administration do
|
|
14
|
+
resources :users, only: %i[ index new create edit update ]
|
|
15
|
+
resources :sessions, only: %i[ index destroy ]
|
|
16
|
+
|
|
17
|
+
root "home#index"
|
|
18
|
+
end
|
|
6
19
|
|
|
7
20
|
root "home#index"
|
|
8
21
|
end
|
data/lib/moduler/engine.rb
CHANGED
data/lib/moduler/version.rb
CHANGED
data/lib/moduler.rb
CHANGED
|
@@ -12,8 +12,7 @@ namespace :moduler do
|
|
|
12
12
|
command = [
|
|
13
13
|
Tailwindcss::Ruby.executable,
|
|
14
14
|
"--input", input_path,
|
|
15
|
-
"--output", output_path
|
|
16
|
-
"--minify"
|
|
15
|
+
"--output", output_path
|
|
17
16
|
]
|
|
18
17
|
|
|
19
18
|
Dir.chdir(Moduler::Engine.root) do
|
|
@@ -32,8 +31,7 @@ namespace :moduler do
|
|
|
32
31
|
Tailwindcss::Ruby.executable,
|
|
33
32
|
"--input", input_path,
|
|
34
33
|
"--output", output_path,
|
|
35
|
-
"--watch"
|
|
36
|
-
"--minify"
|
|
34
|
+
"--watch"
|
|
37
35
|
]
|
|
38
36
|
|
|
39
37
|
Dir.chdir(Moduler::Engine.root) do
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: moduler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tomasz Kowalewski
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-10-25 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|
|
@@ -69,6 +69,26 @@ dependencies:
|
|
|
69
69
|
- - ">="
|
|
70
70
|
- !ruby/object:Gem::Version
|
|
71
71
|
version: 1.3.4
|
|
72
|
+
- !ruby/object:Gem::Dependency
|
|
73
|
+
name: turbo-rails
|
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
|
75
|
+
requirements:
|
|
76
|
+
- - "~>"
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: '2.0'
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 2.0.23
|
|
82
|
+
type: :runtime
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '2.0'
|
|
89
|
+
- - ">="
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: 2.0.23
|
|
72
92
|
- !ruby/object:Gem::Dependency
|
|
73
93
|
name: tailwindcss-rails
|
|
74
94
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -103,6 +123,62 @@ dependencies:
|
|
|
103
123
|
- - ">="
|
|
104
124
|
- !ruby/object:Gem::Version
|
|
105
125
|
version: 3.1.22
|
|
126
|
+
- !ruby/object:Gem::Dependency
|
|
127
|
+
name: view_component
|
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
|
129
|
+
requirements:
|
|
130
|
+
- - ">="
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: '4.15'
|
|
133
|
+
type: :runtime
|
|
134
|
+
prerelease: false
|
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
136
|
+
requirements:
|
|
137
|
+
- - ">="
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: '4.15'
|
|
140
|
+
- !ruby/object:Gem::Dependency
|
|
141
|
+
name: kaminari
|
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
|
143
|
+
requirements:
|
|
144
|
+
- - "~>"
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: '1.2'
|
|
147
|
+
type: :runtime
|
|
148
|
+
prerelease: false
|
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - "~>"
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: '1.2'
|
|
154
|
+
- !ruby/object:Gem::Dependency
|
|
155
|
+
name: pg_search
|
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '2.4'
|
|
161
|
+
type: :runtime
|
|
162
|
+
prerelease: false
|
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
164
|
+
requirements:
|
|
165
|
+
- - ">="
|
|
166
|
+
- !ruby/object:Gem::Version
|
|
167
|
+
version: '2.4'
|
|
168
|
+
- !ruby/object:Gem::Dependency
|
|
169
|
+
name: pundit
|
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
|
171
|
+
requirements:
|
|
172
|
+
- - "~>"
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '2.5'
|
|
175
|
+
type: :runtime
|
|
176
|
+
prerelease: false
|
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
178
|
+
requirements:
|
|
179
|
+
- - "~>"
|
|
180
|
+
- !ruby/object:Gem::Version
|
|
181
|
+
version: '2.5'
|
|
106
182
|
email:
|
|
107
183
|
- me@tkowalewski.pl
|
|
108
184
|
executables: []
|
|
@@ -115,15 +191,55 @@ files:
|
|
|
115
191
|
- app/assets/builds/moduler/tailwind.css
|
|
116
192
|
- app/assets/config/moduler/manifest.js
|
|
117
193
|
- app/assets/javascripts/moduler/application.js
|
|
118
|
-
- app/assets/javascripts/moduler/controllers/
|
|
194
|
+
- app/assets/javascripts/moduler/controllers/flash_controller.js
|
|
119
195
|
- app/assets/stylesheets/moduler/application.css
|
|
120
196
|
- app/assets/stylesheets/moduler/tailwind.css
|
|
197
|
+
- app/components/moduler/administration/page_component.html.erb
|
|
198
|
+
- app/components/moduler/administration/page_component.rb
|
|
199
|
+
- app/components/moduler/badge_component.html.erb
|
|
200
|
+
- app/components/moduler/badge_component.rb
|
|
201
|
+
- app/components/moduler/button_component.html.erb
|
|
202
|
+
- app/components/moduler/button_component.rb
|
|
203
|
+
- app/components/moduler/button_link_component.html.erb
|
|
204
|
+
- app/components/moduler/button_link_component.rb
|
|
205
|
+
- app/components/moduler/filter_component.html.erb
|
|
206
|
+
- app/components/moduler/filter_component.rb
|
|
207
|
+
- app/components/moduler/form/base_error_component.html.erb
|
|
208
|
+
- app/components/moduler/form/base_error_component.rb
|
|
209
|
+
- app/components/moduler/form/email_component.html.erb
|
|
210
|
+
- app/components/moduler/form/email_component.rb
|
|
211
|
+
- app/components/moduler/form/password_component.html.erb
|
|
212
|
+
- app/components/moduler/form/password_component.rb
|
|
213
|
+
- app/components/moduler/form/section_component.html.erb
|
|
214
|
+
- app/components/moduler/form/section_component.rb
|
|
215
|
+
- app/components/moduler/form/select_component.html.erb
|
|
216
|
+
- app/components/moduler/form/select_component.rb
|
|
217
|
+
- app/components/moduler/form/submit_component.html.erb
|
|
218
|
+
- app/components/moduler/form/submit_component.rb
|
|
219
|
+
- app/components/moduler/form/text_component.html.erb
|
|
220
|
+
- app/components/moduler/form/text_component.rb
|
|
221
|
+
- app/components/moduler/list_component.html.erb
|
|
222
|
+
- app/components/moduler/list_component.rb
|
|
223
|
+
- app/components/moduler/list_item_component.html.erb
|
|
224
|
+
- app/components/moduler/list_item_component.rb
|
|
225
|
+
- app/components/moduler/page_header_component.html.erb
|
|
226
|
+
- app/components/moduler/page_header_component.rb
|
|
227
|
+
- app/components/moduler/sidebar_action_component.html.erb
|
|
228
|
+
- app/components/moduler/sidebar_action_component.rb
|
|
121
229
|
- app/controllers/concerns/moduler/authentication.rb
|
|
230
|
+
- app/controllers/moduler/administration/application_controller.rb
|
|
231
|
+
- app/controllers/moduler/administration/home_controller.rb
|
|
232
|
+
- app/controllers/moduler/administration/sessions_controller.rb
|
|
233
|
+
- app/controllers/moduler/administration/users_controller.rb
|
|
122
234
|
- app/controllers/moduler/application_controller.rb
|
|
123
|
-
- app/controllers/moduler/hello_controller.rb
|
|
124
235
|
- app/controllers/moduler/home_controller.rb
|
|
236
|
+
- app/controllers/moduler/profile/sessions/revocation_controller.rb
|
|
237
|
+
- app/controllers/moduler/profile/sessions_controller.rb
|
|
238
|
+
- app/controllers/moduler/profile_controller.rb
|
|
125
239
|
- app/controllers/moduler/sessions_controller.rb
|
|
126
240
|
- app/controllers/moduler/users_controller.rb
|
|
241
|
+
- app/filters/application_filter.rb
|
|
242
|
+
- app/filters/query_filter.rb
|
|
127
243
|
- app/helpers/moduler/application_helper.rb
|
|
128
244
|
- app/jobs/moduler/application_job.rb
|
|
129
245
|
- app/lib/moduler/form_builder.rb
|
|
@@ -132,19 +248,49 @@ files:
|
|
|
132
248
|
- app/models/moduler/current.rb
|
|
133
249
|
- app/models/moduler/session.rb
|
|
134
250
|
- app/models/moduler/user.rb
|
|
251
|
+
- app/policies/moduler/administration/base_policy.rb
|
|
252
|
+
- app/policies/moduler/administration/home_policy.rb
|
|
253
|
+
- app/policies/moduler/administration/session_policy.rb
|
|
254
|
+
- app/policies/moduler/administration/user_policy.rb
|
|
255
|
+
- app/policies/moduler/application_policy.rb
|
|
256
|
+
- app/views/kaminari/_gap.html.erb
|
|
257
|
+
- app/views/kaminari/_next_page.html.erb
|
|
258
|
+
- app/views/kaminari/_page.html.erb
|
|
259
|
+
- app/views/kaminari/_paginator.html.erb
|
|
260
|
+
- app/views/kaminari/_prev_page.html.erb
|
|
135
261
|
- app/views/layouts/moduler/application.html.erb
|
|
262
|
+
- app/views/moduler/administration/home/index.html.erb
|
|
263
|
+
- app/views/moduler/administration/sessions/_session.html.erb
|
|
264
|
+
- app/views/moduler/administration/sessions/index.html.erb
|
|
265
|
+
- app/views/moduler/administration/users/_user.html.erb
|
|
266
|
+
- app/views/moduler/administration/users/edit.html.erb
|
|
267
|
+
- app/views/moduler/administration/users/index.html.erb
|
|
268
|
+
- app/views/moduler/administration/users/new.html.erb
|
|
269
|
+
- app/views/moduler/common/_flash.html.erb
|
|
136
270
|
- app/views/moduler/common/_header.html.erb
|
|
137
|
-
- app/views/moduler/
|
|
271
|
+
- app/views/moduler/common/_sidebar.html.erb
|
|
272
|
+
- app/views/moduler/common/administration/_sidebar.html.erb
|
|
138
273
|
- app/views/moduler/home/index.html.erb
|
|
274
|
+
- app/views/moduler/profile/edit.html.erb
|
|
275
|
+
- app/views/moduler/profile/sessions/_session.html.erb
|
|
276
|
+
- app/views/moduler/profile/sessions/index.html.erb
|
|
139
277
|
- app/views/moduler/sessions/new.html.erb
|
|
140
278
|
- app/views/moduler/users/new.html.erb
|
|
141
279
|
- config/importmap.rb
|
|
280
|
+
- config/locales/moduler/administration/sessions/en.yml
|
|
281
|
+
- config/locales/moduler/administration/users/en.yml
|
|
142
282
|
- config/locales/moduler/common/en.yml
|
|
283
|
+
- config/locales/moduler/components/en.yml
|
|
284
|
+
- config/locales/moduler/en.yml
|
|
285
|
+
- config/locales/moduler/profile/en.yml
|
|
286
|
+
- config/locales/moduler/profile/sessions/en.yml
|
|
143
287
|
- config/locales/moduler/sessions/en.yml
|
|
144
288
|
- config/locales/moduler/users/en.yml
|
|
145
289
|
- config/routes.rb
|
|
146
290
|
- db/migrate/20260322152259_create_moduler_users.rb
|
|
147
291
|
- db/migrate/20260322153744_create_moduler_sessions.rb
|
|
292
|
+
- db/migrate/20261015171504_add_role_to_moduler_users.rb
|
|
293
|
+
- db/migrate/20261020191709_enable_pg_trgm.rb
|
|
148
294
|
- lib/moduler.rb
|
|
149
295
|
- lib/moduler/configuration.rb
|
|
150
296
|
- lib/moduler/engine.rb
|