administration-zero 0.0.12 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/administration_zero/version.rb +1 -1
  4. data/lib/generators/admin/install/templates/controllers/admin/{application_controller.rb → base_controller.rb} +3 -3
  5. data/lib/generators/admin/install/templates/controllers/admin/home_controller.rb +1 -1
  6. data/lib/generators/admin/install/templates/controllers/admin/password_resets_controller.rb +9 -9
  7. data/lib/generators/admin/install/templates/controllers/admin/sessions_controller.rb +5 -5
  8. data/lib/generators/admin/install/templates/controllers/admin/users_controller.rb +13 -13
  9. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_flash_messages.html.erb +0 -0
  10. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_footer.html.erb +0 -0
  11. data/lib/generators/admin/install/templates/erb/admin/base/_javascript_tags.html.erb +39 -0
  12. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_page_header.html.erb +0 -0
  13. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_page_header_actions.html.erb +0 -0
  14. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_page_header_breadcrumb.html.erb +0 -0
  15. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_pagination.html.erb +0 -0
  16. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_primary_navbar.html.erb +2 -2
  17. data/lib/generators/admin/install/templates/erb/admin/{application → base}/_secondary_navbar.html.erb +0 -0
  18. data/lib/generators/admin/install/templates/erb/admin/base/_stylesheet_link_tags.html.erb +7 -0
  19. data/lib/generators/admin/install/templates/erb/admin/password_resets/edit.html.erb +0 -2
  20. data/lib/generators/admin/install/templates/erb/admin/user_mailer/password_reset.html.erb +1 -1
  21. data/lib/generators/admin/install/templates/erb/admin/user_mailer/password_reset.text.erb +1 -1
  22. data/lib/generators/admin/install/templates/erb/admin/users/_form.html.erb +5 -5
  23. data/lib/generators/admin/install/templates/erb/admin/users/edit.html.erb +2 -2
  24. data/lib/generators/admin/install/templates/erb/admin/users/index.html.erb +9 -9
  25. data/lib/generators/admin/install/templates/erb/admin/users/new.html.erb +1 -1
  26. data/lib/generators/admin/install/templates/erb/admin/users/show.html.erb +6 -6
  27. data/lib/generators/admin/install/templates/erb/layouts/admin/{application.html.erb → base.html.erb} +0 -0
  28. data/lib/generators/admin/install/templates/mailers/admin/user_mailer.rb +3 -3
  29. data/lib/generators/admin/install/templates/test_unit/controllers/admin/home_controller_test.rb +1 -1
  30. data/lib/generators/admin/install/templates/test_unit/controllers/admin/password_resets_controller_test.rb +5 -5
  31. data/lib/generators/admin/install/templates/test_unit/controllers/admin/sessions_controller_test.rb +5 -5
  32. data/lib/generators/admin/install/templates/test_unit/controllers/admin/users_controller_test.rb +6 -6
  33. data/lib/generators/admin/install/templates/test_unit/system/admin/password_resets_test.rb +3 -3
  34. data/lib/generators/admin/install/templates/test_unit/system/admin/sessions_test.rb +4 -4
  35. data/lib/generators/admin/install/templates/test_unit/system/admin/users_test.rb +5 -5
  36. data/lib/generators/admin/scaffold/templates/controller.rb.tt +1 -1
  37. data/lib/generators/admin/scaffold/templates/erb/_form.html.erb.tt +2 -2
  38. data/lib/generators/admin/scaffold/templates/erb/index.html.erb.tt +6 -6
  39. data/lib/generators/admin/scaffold/templates/erb/show.html.erb.tt +1 -1
  40. data/lib/generators/admin/scaffold/templates/system_test.rb.tt +1 -1
  41. metadata +14 -14
  42. data/lib/generators/admin/install/templates/erb/admin/application/_javascript_tags.html.erb +0 -47
  43. data/lib/generators/admin/install/templates/erb/admin/application/_stylesheet_link_tags.html.erb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7acbcb69df24a8f4cc70e5679ddee87b6ae96a031fa16eefdbe364aca086127e
4
- data.tar.gz: 494132b0b91cf59fde8afb705768824af1aa6ec7ccae6cbaa00aa1ff385595f9
3
+ metadata.gz: 0ddf1c47cb20c004e23f87a749887cca995b415764ba24799692a42e9d4b13ca
4
+ data.tar.gz: 34666d42bd99a7d088fc43332171b33176b7b64ae65918104caf55d13adfa6f4
5
5
  SHA512:
6
- metadata.gz: bab4269085274c79c172220c6f19e3e5c061f75f63e46efddc45dca0208f59aa8c78fa6b1c88862585fe1b4d9fef0b503bb531ff9d3bdda5bf64271052b5f2c7
7
- data.tar.gz: fab03417c2685ece0c56a4d5d169ebdb6fb2c78d708987618074ae12120cb2fa3a183f3a72561e484e4b5e3b79ce888ed87ba0daf18a22bbcc59af3690a1d047
6
+ metadata.gz: 3e0bcf1bdef4df5a3febdffac660073bc5d7c53976b6af83dd1ec36901ecdc6d663abae987de089eef03ed6ffbd4e8b36a63673026a8134c2744294fbf925eb5
7
+ data.tar.gz: 8c017ac485dda3c9e57db9241aa7632078cf89b9a26b60efd1bc1d4b24430c988c84901a0562d1b65a8f1746e19539a4f992f3674507036b176eaab743d69de8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- administration-zero (0.0.12)
4
+ administration-zero (0.0.15)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,3 +1,3 @@
1
1
  module AdministrationZero
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.15"
3
3
  end
@@ -1,4 +1,4 @@
1
- class Admin::ApplicationController < ActionController::Base
1
+ class Admin::BaseController < ActionController::Base
2
2
  include Pagy::Backend
3
3
 
4
4
  before_action :set_time_zone
@@ -9,8 +9,8 @@ class Admin::ApplicationController < ActionController::Base
9
9
  end
10
10
 
11
11
  def authenticate
12
- if admin_user = Admin::User.find_by_id(session[:admin_user_id])
13
- Admin::Current.user = admin_user
12
+ if user = Admin::User.find_by_id(session[:admin_user_id])
13
+ Admin::Current.user = user
14
14
  else
15
15
  redirect_to admin_sign_in_path
16
16
  end
@@ -1,4 +1,4 @@
1
- class Admin::HomeController < Admin::ApplicationController
1
+ class Admin::HomeController < Admin::BaseController
2
2
  def index
3
3
  end
4
4
  end
@@ -1,7 +1,7 @@
1
- class Admin::PasswordResetsController < Admin::ApplicationController
1
+ class Admin::PasswordResetsController < Admin::BaseController
2
2
  skip_before_action :authenticate
3
3
 
4
- before_action :set_admin_user, only: %i[ edit update ]
4
+ before_action :set_user, only: %i[ edit update ]
5
5
 
6
6
  layout "admin/authentication"
7
7
 
@@ -12,8 +12,8 @@ class Admin::PasswordResetsController < Admin::ApplicationController
12
12
  end
13
13
 
14
14
  def create
15
- if @admin_user = Admin::User.find_by(email: params[:email])
16
- Admin::UserMailer.with(admin_user: @admin_user).password_reset.deliver_later
15
+ if @user = Admin::User.find_by(email: params[:email])
16
+ Admin::UserMailer.with(user: @user).password_reset.deliver_later
17
17
  redirect_to admin_sign_in_path, notice: "Check your email for reset instructions"
18
18
  else
19
19
  redirect_to new_admin_password_reset_path, alert: "Sorry, we didn't recognize that email address"
@@ -21,21 +21,21 @@ class Admin::PasswordResetsController < Admin::ApplicationController
21
21
  end
22
22
 
23
23
  def update
24
- if @admin_user.update(admin_user_params)
24
+ if @user.update(user_params)
25
25
  redirect_to admin_sign_in_path, notice: "Your password was reset successfully. Please sign in"
26
26
  else
27
- render :edit, status: :unprocessable_entity
27
+ redirect_to edit_admin_password_reset_path(token: params[:token]), alert: @user.errors.first.full_message
28
28
  end
29
29
  end
30
30
 
31
31
  private
32
- def set_admin_user
33
- @admin_user = Admin::User.find_signed!(params[:token], purpose: :password_reset)
32
+ def set_user
33
+ @user = Admin::User.find_signed!(params[:token], purpose: :password_reset)
34
34
  rescue
35
35
  redirect_to new_admin_password_reset_path, alert: "That password reset link is invalid"
36
36
  end
37
37
 
38
- def admin_user_params
38
+ def user_params
39
39
  params.permit(:password, :password_confirmation)
40
40
  end
41
41
  end
@@ -1,17 +1,17 @@
1
- class Admin::SessionsController < Admin::ApplicationController
1
+ class Admin::SessionsController < Admin::BaseController
2
2
  skip_before_action :authenticate, only: %i[ new create ]
3
3
 
4
4
  layout "admin/authentication"
5
5
 
6
6
  def new
7
- @admin_user = Admin::User.new
7
+ @user = Admin::User.new
8
8
  end
9
9
 
10
10
  def create
11
- @admin_user = Admin::User.find_by(email: params[:email])
11
+ @user = Admin::User.find_by(email: params[:email])
12
12
 
13
- if @admin_user && @admin_user.authenticate(params[:password])
14
- session[:admin_user_id] = @admin_user.id; redirect_to(admin_path)
13
+ if @user && @user.authenticate(params[:password])
14
+ session[:admin_user_id] = @user.id; redirect_to(admin_path)
15
15
  else
16
16
  redirect_to admin_sign_in_path(email_hint: params[:email]), alert: "That email or password is incorrect"
17
17
  end
@@ -1,11 +1,11 @@
1
- class Admin::UsersController < Admin::ApplicationController
2
- before_action :set_admin_user, only: %i[ show edit update destroy ]
1
+ class Admin::UsersController < Admin::BaseController
2
+ before_action :set_user, only: %i[ show edit update destroy ]
3
3
 
4
4
  def index
5
5
  @search = Admin::User.all.ransack(params[:q])
6
6
 
7
7
  respond_to do |format|
8
- format.html { @pagy, @admin_users = pagy(@search.result) }
8
+ format.html { @pagy, @users = pagy(@search.result) }
9
9
  format.csv { render csv: @search.result }
10
10
  end
11
11
  end
@@ -14,41 +14,41 @@ class Admin::UsersController < Admin::ApplicationController
14
14
  end
15
15
 
16
16
  def new
17
- @admin_user = Admin::User.new
17
+ @user = Admin::User.new
18
18
  end
19
19
 
20
20
  def edit
21
21
  end
22
22
 
23
23
  def create
24
- @admin_user = Admin::User.new(admin_user_params)
24
+ @user = Admin::User.new(user_params)
25
25
 
26
- if @admin_user.save
27
- redirect_to @admin_user, notice: "User was successfully created."
26
+ if @user.save
27
+ redirect_to @user, notice: "User was successfully created."
28
28
  else
29
29
  render :new, status: :unprocessable_entity
30
30
  end
31
31
  end
32
32
 
33
33
  def update
34
- if @admin_user.update(admin_user_params)
35
- redirect_to @admin_user, notice: "User was successfully updated."
34
+ if @user.update(user_params)
35
+ redirect_to @user, notice: "User was successfully updated."
36
36
  else
37
37
  render :edit, status: :unprocessable_entity
38
38
  end
39
39
  end
40
40
 
41
41
  def destroy
42
- @admin_user.destroy
42
+ @user.destroy
43
43
  redirect_to admin_users_url, notice: "User was successfully destroyed."
44
44
  end
45
45
 
46
46
  private
47
- def set_admin_user
48
- @admin_user = Admin::User.find(params[:id])
47
+ def set_user
48
+ @user = Admin::User.find(params[:id])
49
49
  end
50
50
 
51
- def admin_user_params
51
+ def user_params
52
52
  params.require(:admin_user).permit(:email, :password, :password_confirmation)
53
53
  end
54
54
  end
@@ -0,0 +1,39 @@
1
+ <!-- Tabler Core -->
2
+ <script src="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/js/tabler.min.js"></script>
3
+
4
+ <!-- Time zone cookie -->
5
+ <script type="module">
6
+ import cookies from "https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.mjs"
7
+ const { timeZone } = new Intl.DateTimeFormat().resolvedOptions()
8
+ cookies.set("time_zone", timeZone, { expires: 365 })
9
+ </script>
10
+
11
+ <!-- Data confirm -->
12
+ <script type="module">
13
+ document.addEventListener("click", (event) => {
14
+ if (!event.target.matches("[data-confirm]")) return
15
+ if (!window.confirm(event.target.dataset["confirm"])) event.preventDefault()
16
+ })
17
+ </script>
18
+
19
+ <!-- Stimulus controllers -->
20
+ <script type="module">
21
+ import { Application, Controller } from "https://cdn.jsdelivr.net/npm/@hotwired/stimulus@3.1.0/dist/stimulus.min.js"
22
+ const stimulus = Application.start()
23
+
24
+ stimulus.register("validation", class extends Controller {
25
+ connect() {
26
+ this.element.querySelectorAll(".field_with_errors").forEach((element) => {
27
+ element.firstChild.classList.add("is-invalid")
28
+ element.parentNode.insertBefore(element.firstChild, element)
29
+ element.parentNode.removeChild(element)
30
+ })
31
+ }
32
+ })
33
+
34
+ stimulus.register("flash-message", class extends Controller {
35
+ connect() {
36
+ new bootstrap.Toast(this.element).show()
37
+ }
38
+ })
39
+ </script>
@@ -4,9 +4,9 @@
4
4
  <span class="navbar-toggler-icon"></span>
5
5
  </button>
6
6
  <h1 class="navbar-brand navbar-brand-autodark d-none-navbar-horizontal pe-0 pe-md-3">
7
- <a href=".">
7
+ <%= link_to admin_path do %>
8
8
  <%= image_tag "admin/logo.svg", width: 110, height: 32, alt: "Tabler", class: "navbar-brand-image" %>
9
- </a>
9
+ <% end %>
10
10
  </h1>
11
11
  <div class="navbar-nav flex-row order-md-last">
12
12
  <div class="nav-item d-none d-md-flex me-3">
@@ -0,0 +1,7 @@
1
+ <!-- Tabler Core -->
2
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta11/dist/css/tabler.min.css">
3
+
4
+ <!-- Customize tabler here -->
5
+ <style>body {
6
+ --tblr-body-bg: #f5f7fb;
7
+ }</style>
@@ -7,13 +7,11 @@
7
7
  <div class="mb-3">
8
8
  <%= form.label :password, "New password", class: "form-label" %>
9
9
  <%= form.password_field :password, required: true, autofocus: true, autocomplete: "new-password", class: "form-control" %>
10
- <%= tag.div @admin_user.errors[:password].first, class: "invalid-feedback d-block" %>
11
10
  </div>
12
11
 
13
12
  <div>
14
13
  <%= form.label :password_confirmation, "Confirm new password", class: "form-label" %>
15
14
  <%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", class: "form-control" %>
16
- <%= tag.div @admin_user.errors[:password_confirmation].first, class: "invalid-feedback d-block" %>
17
15
  </div>
18
16
 
19
17
  <div class="form-footer">
@@ -5,7 +5,7 @@
5
5
  </head>
6
6
  <body>
7
7
  <p>Hey there,</p>
8
- <p>Can't remember your password for <strong><%= @admin_user.email %></strong>? That's OK, it happens. Just hit the link below to set a new one.</p>
8
+ <p>Can't remember your password for <strong><%= @user.email %></strong>? That's OK, it happens. Just hit the link below to set a new one.</p>
9
9
  <p><%= link_to "Reset my password", edit_admin_password_reset_url(token: @signed_id) %></p>
10
10
  <p>If you did not request a password reset you can safely ignore this email, it expires in 20 minutes. Only someone with access to this email account can reset your password.</p>
11
11
  <hr>
@@ -1,6 +1,6 @@
1
1
  Hey there,
2
2
 
3
- Can't remember your password for <%= @admin_user.email %>? That's OK, it happens. Just hit the link below to set a new one.
3
+ Can't remember your password for <%= @user.email %>? That's OK, it happens. Just hit the link below to set a new one.
4
4
 
5
5
  [Reset my password]<%= edit_admin_password_reset_url(token: @signed_id) %>
6
6
 
@@ -1,9 +1,9 @@
1
- <%= form_with(model: admin_user) do |form| %>
1
+ <%= form_with(model: user, html: { "data-controller": "validation" }) do |form| %>
2
2
  <div class="form-group row mb-2">
3
3
  <%= form.label :email, class: "form-label col-md-3 col-form-label" %>
4
4
  <div class="col-md px-0">
5
5
  <%= form.email_field :email, autocomplete: "email", class: "form-control" %>
6
- <%= tag.div admin_user.errors[:email].first, class: "invalid-feedback" %>
6
+ <%= tag.div user.errors[:email].first, class: "invalid-feedback" %>
7
7
  </div>
8
8
  </div>
9
9
 
@@ -11,7 +11,7 @@
11
11
  <%= form.label :password, class: "form-label col-md-3 col-form-label" %>
12
12
  <div class="col-md px-0">
13
13
  <%= form.password_field :password, required: true, autocomplete: "new-password", class: "form-control" %>
14
- <%= tag.div admin_user.errors[:password].first, class: "invalid-feedback" %>
14
+ <%= tag.div user.errors[:password].first, class: "invalid-feedback" %>
15
15
  </div>
16
16
  </div>
17
17
 
@@ -19,12 +19,12 @@
19
19
  <%= form.label :password_confirmation, class: "form-label col-md-3 col-form-label" %>
20
20
  <div class="col-md px-0">
21
21
  <%= form.password_field :password_confirmation, required: true, autocomplete: "new-password", class: "form-control" %>
22
- <%= tag.div admin_user.errors[:password_confirmation].first, class: "invalid-feedback" %>
22
+ <%= tag.div user.errors[:password_confirmation].first, class: "invalid-feedback" %>
23
23
  </div>
24
24
  </div>
25
25
 
26
26
  <div class="form-footer">
27
27
  <%= form.submit class: "btn btn-primary" %>
28
- <%= link_to "Cancel", admin_users_path, class: "btn btn-light" %>
28
+ <%= link_to "Cancel", admin_users_path, class: "btn btn-white" %>
29
29
  </div>
30
30
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <%= render "page_header_breadcrumb", title: "Editing user" do %>
3
3
  <li class="breadcrumb-item"><%= link_to "Admin", admin_path %></li>
4
4
  <li class="breadcrumb-item"><%= link_to "Users", admin_users_path %></li>
5
- <li class="breadcrumb-item"><%= link_to @admin_user.email, @admin_user %></li>
5
+ <li class="breadcrumb-item"><%= link_to @user.email, @user %></li>
6
6
  <% end %>
7
7
  <% end %>
8
8
 
@@ -10,7 +10,7 @@
10
10
  <div class="container-xl">
11
11
  <div class="card">
12
12
  <div class="card-body">
13
- <%= render "form", admin_user: @admin_user %>
13
+ <%= render "form", user: @user %>
14
14
  </div>
15
15
  </div>
16
16
  </div>
@@ -4,7 +4,7 @@
4
4
  <% end %>
5
5
 
6
6
  <%= render "page_header_actions" do %>
7
- <%= link_to "Filters", "#offcanvas_filters", "data-bs-toggle": "offcanvas", class: "btn btn-light" %>
7
+ <%= link_to "Filters", "#offcanvas_filters", "data-bs-toggle": "offcanvas", class: "btn btn-white" %>
8
8
  <%= link_to "New user", new_admin_user_path, class: "btn btn-primary" %>
9
9
  <% end %>
10
10
  <% end %>
@@ -23,15 +23,15 @@
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody>
26
- <% @admin_users.each do |admin_user| %>
26
+ <% @users.each do |user| %>
27
27
  <tr>
28
- <td><%= link_to admin_user.id, admin_user %></td>
29
- <td><%= admin_user.email %></td>
30
- <td><%= l(admin_user.created_at, format: :long) %></td>
28
+ <td><%= link_to user.id, user %></td>
29
+ <td><%= user.email %></td>
30
+ <td><%= l(user.created_at, format: :long) %></td>
31
31
  <td>
32
- <%= link_to "View", admin_user, class: "btn btn-light btn-sm" %>
33
- <%= link_to "Edit", edit_admin_user_path(admin_user), class: "btn btn-light btn-sm" %>
34
- <%= button_to "Delete", admin_user, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-light btn-sm" %>
32
+ <%= link_to "View", user, class: "btn btn-white btn-sm" %>
33
+ <%= link_to "Edit", edit_admin_user_path(user), class: "btn btn-white btn-sm" %>
34
+ <%= button_to "Delete", user, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-white btn-sm" %>
35
35
  </td>
36
36
  </tr>
37
37
  <% end %>
@@ -67,6 +67,6 @@
67
67
  </div>
68
68
 
69
69
  <%= f.submit "Filter", class: "btn btn-primary" %>
70
- <%= link_to "Clear Filter", admin_users_path, class: "btn btn-light" %>
70
+ <%= link_to "Clear Filter", admin_users_path, class: "btn btn-white" %>
71
71
  <% end %>
72
72
  </div>
@@ -9,7 +9,7 @@
9
9
  <div class="container-xl">
10
10
  <div class="card">
11
11
  <div class="card-body">
12
- <%= render "form", admin_user: @admin_user %>
12
+ <%= render "form", user: @user %>
13
13
  </div>
14
14
  </div>
15
15
  </div>
@@ -1,12 +1,12 @@
1
1
  <%= render "page_header" do %>
2
- <%= render "page_header_breadcrumb", title: @admin_user.email do %>
2
+ <%= render "page_header_breadcrumb", title: @user.email do %>
3
3
  <li class="breadcrumb-item"><%= link_to "Admin", admin_path %></li>
4
4
  <li class="breadcrumb-item"><%= link_to "Users", admin_users_path %></li>
5
5
  <% end %>
6
6
 
7
7
  <%= render "page_header_actions" do %>
8
- <%= link_to "Edit user", edit_admin_user_path(@admin_user), class: "btn btn-primary" %>
9
- <%= button_to "Delete user", @admin_user, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-light" %>
8
+ <%= link_to "Edit user", edit_admin_user_path(@user), class: "btn btn-primary" %>
9
+ <%= button_to "Delete user", @user, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-white" %>
10
10
  <% end %>
11
11
  <% end %>
12
12
 
@@ -19,13 +19,13 @@
19
19
  <div class="card-body">
20
20
  <dl class="row">
21
21
  <dt class="col-md-3">Email</dt>
22
- <dd class="col-md-9"><%= @admin_user.email %></dd>
22
+ <dd class="col-md-9"><%= @user.email %></dd>
23
23
 
24
24
  <dt class="col-md-3">Created at</dt>
25
- <dd class="col-md-9"><%= l(@admin_user.created_at, format: :long) %></dd>
25
+ <dd class="col-md-9"><%= l(@user.created_at, format: :long) %></dd>
26
26
 
27
27
  <dt class="col-md-3">Updated at</dt>
28
- <dd class="col-md-9"><%= l(@admin_user.updated_at, format: :long) %></dd>
28
+ <dd class="col-md-9"><%= l(@user.updated_at, format: :long) %></dd>
29
29
  </dl>
30
30
  </div>
31
31
  </div>
@@ -1,8 +1,8 @@
1
1
  class Admin::UserMailer < Admin::ApplicationMailer
2
2
  def password_reset
3
- @admin_user = params[:admin_user]
4
- @signed_id = @admin_user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
3
+ @user = params[:user]
4
+ @signed_id = @user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
5
5
 
6
- mail to: @admin_user.email, subject: "Reset your password"
6
+ mail to: @user.email, subject: "Reset your password"
7
7
  end
8
8
  end
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  class Admin::HomeControllerTest < ActionDispatch::IntegrationTest
4
4
  setup do
5
- @admin_user = sign_in_admin_as(admin_users(:lazaro_nixon))
5
+ @user = sign_in_admin_as(admin_users(:lazaro_nixon))
6
6
  end
7
7
 
8
8
  test "should get index" do
@@ -2,9 +2,9 @@ require "test_helper"
2
2
 
3
3
  class Admin::PasswordResetsControllerTest < ActionDispatch::IntegrationTest
4
4
  setup do
5
- @admin_user = admin_users(:lazaro_nixon)
6
- @sid = @admin_user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
7
- @sid_exp = @admin_user.signed_id(purpose: :password_reset, expires_in: 0.minutes)
5
+ @user = admin_users(:lazaro_nixon)
6
+ @sid = @user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
7
+ @sid_exp = @user.signed_id(purpose: :password_reset, expires_in: 0.minutes)
8
8
  end
9
9
 
10
10
  test "should get new" do
@@ -18,8 +18,8 @@ class Admin::PasswordResetsControllerTest < ActionDispatch::IntegrationTest
18
18
  end
19
19
 
20
20
  test "should send a password reset email" do
21
- assert_enqueued_email_with Admin::UserMailer, :password_reset, args: { admin_user: @admin_user } do
22
- post admin_password_reset_url, params: { email: @admin_user.email }
21
+ assert_enqueued_email_with Admin::UserMailer, :password_reset, args: { user: @user } do
22
+ post admin_password_reset_url, params: { email: @user.email }
23
23
  end
24
24
 
25
25
  assert_redirected_to admin_sign_in_url
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  class Admin::SessionsControllerTest < ActionDispatch::IntegrationTest
4
4
  setup do
5
- @admin_user = admin_users(:lazaro_nixon)
5
+ @user = admin_users(:lazaro_nixon)
6
6
  end
7
7
 
8
8
  test "should get new" do
@@ -11,7 +11,7 @@ class Admin::SessionsControllerTest < ActionDispatch::IntegrationTest
11
11
  end
12
12
 
13
13
  test "should sign in" do
14
- post admin_sign_in_url, params: { email: @admin_user.email, password: "Secret1*3*5*" }
14
+ post admin_sign_in_url, params: { email: @user.email, password: "Secret1*3*5*" }
15
15
  assert_redirected_to admin_url
16
16
 
17
17
  get admin_url
@@ -19,8 +19,8 @@ class Admin::SessionsControllerTest < ActionDispatch::IntegrationTest
19
19
  end
20
20
 
21
21
  test "should not sign in with wrong credentials" do
22
- post admin_sign_in_url, params: { email: @admin_user.email, password: "SecretWrong1*3" }
23
- assert_redirected_to admin_sign_in_url(email_hint: @admin_user.email)
22
+ post admin_sign_in_url, params: { email: @user.email, password: "SecretWrong1*3" }
23
+ assert_redirected_to admin_sign_in_url(email_hint: @user.email)
24
24
  assert_equal "That email or password is incorrect", flash[:alert]
25
25
 
26
26
  get admin_url
@@ -28,7 +28,7 @@ class Admin::SessionsControllerTest < ActionDispatch::IntegrationTest
28
28
  end
29
29
 
30
30
  test "should sign out" do
31
- sign_in_admin_as @admin_user
31
+ sign_in_admin_as @user
32
32
 
33
33
  delete admin_sign_out_url
34
34
  assert_redirected_to admin_sign_in_url
@@ -2,7 +2,7 @@ require "test_helper"
2
2
 
3
3
  class Admin::UsersControllerTest < ActionDispatch::IntegrationTest
4
4
  setup do
5
- @admin_user = sign_in_admin_as(admin_users(:lazaro_nixon))
5
+ @user = sign_in_admin_as(admin_users(:lazaro_nixon))
6
6
  end
7
7
 
8
8
  test "should get index" do
@@ -24,23 +24,23 @@ class Admin::UsersControllerTest < ActionDispatch::IntegrationTest
24
24
  end
25
25
 
26
26
  test "should show admin_user" do
27
- get admin_user_url(@admin_user)
27
+ get admin_user_url(@user)
28
28
  assert_response :success
29
29
  end
30
30
 
31
31
  test "should get edit" do
32
- get edit_admin_user_url(@admin_user)
32
+ get edit_admin_user_url(@user)
33
33
  assert_response :success
34
34
  end
35
35
 
36
36
  test "should update admin_user" do
37
- patch admin_user_url(@admin_user), params: { admin_user: { email: @admin_user.email, password: "NewSecret1*3*5*", password_confirmation: "NewSecret1*3*5*" } }
38
- assert_redirected_to admin_user_url(@admin_user)
37
+ patch admin_user_url(@user), params: { admin_user: { email: @user.email, password: "NewSecret1*3*5*", password_confirmation: "NewSecret1*3*5*" } }
38
+ assert_redirected_to admin_user_url(@user)
39
39
  end
40
40
 
41
41
  test "should destroy admin_user" do
42
42
  assert_difference("Admin::User.count", -1) do
43
- delete admin_user_url(@admin_user)
43
+ delete admin_user_url(@user)
44
44
  end
45
45
 
46
46
  assert_redirected_to admin_users_url
@@ -2,15 +2,15 @@ require "application_system_test_case"
2
2
 
3
3
  class Admin::PasswordResetsTest < ApplicationSystemTestCase
4
4
  setup do
5
- @admin_user = admin_users(:lazaro_nixon)
6
- @sid = @admin_user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
5
+ @user = admin_users(:lazaro_nixon)
6
+ @sid = @user.signed_id(purpose: :password_reset, expires_in: 20.minutes)
7
7
  end
8
8
 
9
9
  test "sending a password reset email" do
10
10
  visit admin_sign_in_url
11
11
  click_on "I forgot password"
12
12
 
13
- fill_in "Email", with: @admin_user.email
13
+ fill_in "Email", with: @user.email
14
14
  click_on "Send me new password"
15
15
 
16
16
  assert_text "Check your email for reset instructions"
@@ -2,12 +2,12 @@ require "application_system_test_case"
2
2
 
3
3
  class Admin::SessionsTest < ApplicationSystemTestCase
4
4
  setup do
5
- @admin_user = admin_users(:lazaro_nixon)
5
+ @user = admin_users(:lazaro_nixon)
6
6
  end
7
7
 
8
8
  test "signing in" do
9
9
  visit admin_sign_in_url
10
- fill_in "Email", with: @admin_user.email
10
+ fill_in "Email", with: @user.email
11
11
  fill_in "Password", with: "Secret1*3*5*"
12
12
  click_on "Sign in"
13
13
 
@@ -15,10 +15,10 @@ class Admin::SessionsTest < ApplicationSystemTestCase
15
15
  end
16
16
 
17
17
  test "signing out" do
18
- sign_in_admin_as @admin_user
18
+ sign_in_admin_as @user
19
19
  click_on "Paweł Kuna"
20
20
  click_on "Logout"
21
21
 
22
- assert_selector "h2", text: "Login to your account"
22
+ assert_selector "h1", text: "Login to your account"
23
23
  end
24
24
  end
@@ -2,12 +2,12 @@ require "application_system_test_case"
2
2
 
3
3
  class Admin::UsersTest < ApplicationSystemTestCase
4
4
  setup do
5
- @admin_user = sign_in_admin_as(admin_users(:lazaro_nixon))
5
+ @user = sign_in_admin_as(admin_users(:lazaro_nixon))
6
6
  end
7
7
 
8
8
  test "visiting the index" do
9
9
  visit admin_users_url
10
- assert_selector "h2", text: "Users"
10
+ assert_selector "h1", text: "Users"
11
11
  end
12
12
 
13
13
  test "should create user" do
@@ -23,10 +23,10 @@ class Admin::UsersTest < ApplicationSystemTestCase
23
23
  end
24
24
 
25
25
  test "should update user" do
26
- visit admin_user_url(@admin_user)
26
+ visit admin_user_url(@user)
27
27
  click_on "Edit user"
28
28
 
29
- fill_in "Email", with: @admin_user.email
29
+ fill_in "Email", with: @user.email
30
30
  fill_in "Password", with: "NewSecret1*3*5*"
31
31
  fill_in "Password confirmation", with: "NewSecret1*3*5*"
32
32
  click_on "Update User"
@@ -35,7 +35,7 @@ class Admin::UsersTest < ApplicationSystemTestCase
35
35
  end
36
36
 
37
37
  test "should destroy user" do
38
- visit admin_user_url(@admin_user)
38
+ visit admin_user_url(@user)
39
39
  page.accept_confirm { click_on "Delete user" }
40
40
 
41
41
  assert_text "User was successfully destroyed"
@@ -1,4 +1,4 @@
1
- class <%= controller_class_name %>Controller < Admin::ApplicationController
1
+ class <%= controller_class_name %>Controller < Admin::BaseController
2
2
  before_action :set_<%= singular_table_name %>, only: %i[ show edit update destroy ]
3
3
 
4
4
  def index
@@ -1,4 +1,4 @@
1
- <%%= form_with(model: <%= model_resource_name %>) do |form| %>
1
+ <%%= form_with(model: <%= model_resource_name %>, html: { "data-controller": "validation" }) do |form| %>
2
2
  <% attributes.each do |attribute| -%>
3
3
  <div class="form-group row mb-2">
4
4
  <% if attribute.password_digest? -%>
@@ -36,6 +36,6 @@
36
36
  <% end -%>
37
37
  <div class="form-footer">
38
38
  <%%= form.submit class: "btn btn-primary" %>
39
- <%%= link_to "Cancel", <%= index_helper(type: :path) %>, class: "btn btn-light" %>
39
+ <%%= link_to "Cancel", <%= index_helper(type: :path) %>, class: "btn btn-white" %>
40
40
  </div>
41
41
  <%% end %>
@@ -4,7 +4,7 @@
4
4
  <%% end %>
5
5
 
6
6
  <%%= render "page_header_actions" do %>
7
- <%%= link_to "Filters", "#offcanvas_filters", "data-bs-toggle": "offcanvas", class: "btn btn-light" %>
7
+ <%%= link_to "Filters", "#offcanvas_filters", "data-bs-toggle": "offcanvas", class: "btn btn-white" %>
8
8
  <%%= link_to "New <%= human_name.downcase %>", <%= new_helper(type: :path) %>, class: "btn btn-primary" %>
9
9
  <%% end %>
10
10
  <%% end %>
@@ -37,9 +37,9 @@
37
37
  <% end -%>
38
38
  <% end -%>
39
39
  <td>
40
- <%%= link_to "View", <%= model_resource_name %>, class: "btn btn-light btn-sm" %>
41
- <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "btn btn-light btn-sm" %>
42
- <%%= button_to "Delete", <%= model_resource_name %>, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-light btn-sm" %>
40
+ <%%= link_to "View", <%= model_resource_name %>, class: "btn btn-white btn-sm" %>
41
+ <%%= link_to "Edit", <%= edit_helper(singular_table_name, type: :path) %>, class: "btn btn-white btn-sm" %>
42
+ <%%= button_to "Delete", <%= model_resource_name %>, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-white btn-sm" %>
43
43
  </td>
44
44
  </tr>
45
45
  <%% end %>
@@ -48,7 +48,7 @@
48
48
  </div>
49
49
  <div class="card-footer d-flex align-items-center fs-5">
50
50
  <div class="d-none d-md-block">
51
- <div>Download: <%%= link_to "CSV", <%= index_helper(type: :path) %>(format: :csv, q: request.params[:q]) %></div>
51
+ <div>Download: <%%= link_to "CSV", url_for(format: :csv, q: request.params[:q]) %></div>
52
52
  <%%= raw pagy_info(@pagy) %>
53
53
  </div>
54
54
  <div class="ms-auto">
@@ -69,6 +69,6 @@
69
69
  <%%# f.text_field :name_cont, class: "form-control mb-3" %>
70
70
 
71
71
  <%%= f.submit "Filter", class: "btn btn-primary" %>
72
- <%%= link_to "Clear Filter", <%= index_helper(type: :path) %>, class: "btn btn-light" %>
72
+ <%%= link_to "Clear Filter", <%= index_helper(type: :path) %>, class: "btn btn-white" %>
73
73
  <%% end %>
74
74
  </div>
@@ -6,7 +6,7 @@
6
6
 
7
7
  <%%= render "page_header_actions" do %>
8
8
  <%%= link_to "Edit <%= human_name.downcase %>", <%= edit_helper(type: :path) %>, class: "btn btn-primary" %>
9
- <%%= button_to "Delete <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-light" %>
9
+ <%%= button_to "Delete <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete, "data-confirm": "Are you sure?", form_class: "d-inline", class: "btn btn-white" %>
10
10
  <%% end %>
11
11
  <%% end %>
12
12
 
@@ -8,7 +8,7 @@ class <%= class_name.pluralize %>Test < ApplicationSystemTestCase
8
8
 
9
9
  test "visiting the index" do
10
10
  visit <%= index_helper(type: :url) %>
11
- assert_selector "h2", text: "<%= human_name.pluralize %>"
11
+ assert_selector "h1", text: "<%= human_name.pluralize %>"
12
12
  end
13
13
 
14
14
  test "should create <%= human_name.downcase %>" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: administration-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nixon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-11 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -33,21 +33,21 @@ files:
33
33
  - lib/administration_zero/version.rb
34
34
  - lib/generators/admin/install/USAGE
35
35
  - lib/generators/admin/install/install_generator.rb
36
- - lib/generators/admin/install/templates/controllers/admin/application_controller.rb
36
+ - lib/generators/admin/install/templates/controllers/admin/base_controller.rb
37
37
  - lib/generators/admin/install/templates/controllers/admin/home_controller.rb
38
38
  - lib/generators/admin/install/templates/controllers/admin/password_resets_controller.rb
39
39
  - lib/generators/admin/install/templates/controllers/admin/sessions_controller.rb
40
40
  - lib/generators/admin/install/templates/controllers/admin/users_controller.rb
41
- - lib/generators/admin/install/templates/erb/admin/application/_flash_messages.html.erb
42
- - lib/generators/admin/install/templates/erb/admin/application/_footer.html.erb
43
- - lib/generators/admin/install/templates/erb/admin/application/_javascript_tags.html.erb
44
- - lib/generators/admin/install/templates/erb/admin/application/_page_header.html.erb
45
- - lib/generators/admin/install/templates/erb/admin/application/_page_header_actions.html.erb
46
- - lib/generators/admin/install/templates/erb/admin/application/_page_header_breadcrumb.html.erb
47
- - lib/generators/admin/install/templates/erb/admin/application/_pagination.html.erb
48
- - lib/generators/admin/install/templates/erb/admin/application/_primary_navbar.html.erb
49
- - lib/generators/admin/install/templates/erb/admin/application/_secondary_navbar.html.erb
50
- - lib/generators/admin/install/templates/erb/admin/application/_stylesheet_link_tags.html.erb
41
+ - lib/generators/admin/install/templates/erb/admin/base/_flash_messages.html.erb
42
+ - lib/generators/admin/install/templates/erb/admin/base/_footer.html.erb
43
+ - lib/generators/admin/install/templates/erb/admin/base/_javascript_tags.html.erb
44
+ - lib/generators/admin/install/templates/erb/admin/base/_page_header.html.erb
45
+ - lib/generators/admin/install/templates/erb/admin/base/_page_header_actions.html.erb
46
+ - lib/generators/admin/install/templates/erb/admin/base/_page_header_breadcrumb.html.erb
47
+ - lib/generators/admin/install/templates/erb/admin/base/_pagination.html.erb
48
+ - lib/generators/admin/install/templates/erb/admin/base/_primary_navbar.html.erb
49
+ - lib/generators/admin/install/templates/erb/admin/base/_secondary_navbar.html.erb
50
+ - lib/generators/admin/install/templates/erb/admin/base/_stylesheet_link_tags.html.erb
51
51
  - lib/generators/admin/install/templates/erb/admin/home/index.html.erb
52
52
  - lib/generators/admin/install/templates/erb/admin/password_resets/edit.html.erb
53
53
  - lib/generators/admin/install/templates/erb/admin/password_resets/new.html.erb
@@ -59,8 +59,8 @@ files:
59
59
  - lib/generators/admin/install/templates/erb/admin/users/index.html.erb
60
60
  - lib/generators/admin/install/templates/erb/admin/users/new.html.erb
61
61
  - lib/generators/admin/install/templates/erb/admin/users/show.html.erb
62
- - lib/generators/admin/install/templates/erb/layouts/admin/application.html.erb
63
62
  - lib/generators/admin/install/templates/erb/layouts/admin/authentication.html.erb
63
+ - lib/generators/admin/install/templates/erb/layouts/admin/base.html.erb
64
64
  - lib/generators/admin/install/templates/helpers/admin/application_helper.rb
65
65
  - lib/generators/admin/install/templates/images/admin/000m.jpg
66
66
  - lib/generators/admin/install/templates/images/admin/logo.svg
@@ -1,47 +0,0 @@
1
- <!-- Tabler Core -->
2
- <script src="https://unpkg.com/@tabler/core@1.0.0-beta9/dist/js/tabler.min.js"></script>
3
-
4
- <!-- set time zone cookie -->
5
- <script>
6
- const { timeZone } = new Intl.DateTimeFormat().resolvedOptions();
7
- setCookie("time_zone", timeZone);
8
-
9
- function setCookie(name, value) {
10
- const twentyYears = 20 * 365 * 24 * 60 * 60 * 1000;
11
- const body = [ name, value ].map(encodeURIComponent).join("=");
12
- const expires = new Date(Date.now() + twentyYears).toUTCString();
13
- const cookie = `${body}; path=/; expires=${expires}`;
14
- document.cookie = cookie;
15
- }
16
- </script>
17
-
18
- <!-- bring back data-confirm -->
19
- <script>
20
- document.addEventListener("click", (event) => {
21
- if (!event.target.matches("[data-confirm]")) return;
22
- if (!window.confirm(event.target.dataset["confirm"])) event.preventDefault();
23
- });
24
- </script>
25
-
26
- <!-- validation rails -->
27
- <script>
28
- document.addEventListener("DOMContentLoaded", () => {
29
- document.querySelectorAll(".field_with_errors").forEach((element) => {
30
- element.firstChild.classList.add("is-invalid");
31
-
32
- element.parentNode.insertBefore(element.firstChild, element);
33
- element.parentNode.removeChild(element);
34
- });
35
- });
36
- </script>
37
-
38
- <!-- flash message -->
39
- <script>
40
- document.addEventListener("DOMContentLoaded", () => {
41
- const selector = "[data-controller='flash-message']";
42
-
43
- document.querySelectorAll(selector).forEach((thiz) => {
44
- new bootstrap.Toast(thiz).show();
45
- });
46
- });
47
- </script>
@@ -1,7 +0,0 @@
1
- <!-- Tabler Core -->
2
- <link rel="stylesheet" href="https://unpkg.com/@tabler/core@1.0.0-beta9/dist/css/tabler.min.css">
3
-
4
- <!-- Customize tabler here -->
5
- <style>body {
6
- --tblr-body-bg: #f5f7fb;
7
- }</style>