maquina 0.5.2 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +2 -0
- data/Gemfile.lock +3 -35
- data/app/assets/javascripts/controllers/alert_controller.js +22 -0
- data/app/assets/stylesheets/maquina/application.tailwind.css +4 -101
- data/app/assets/stylesheets/maquina.css +114 -0
- data/app/controllers/concerns/maquina/authenticate.rb +29 -1
- data/app/controllers/concerns/maquina/index.rb +81 -2
- data/app/controllers/concerns/maquina/resourceful.rb +95 -9
- data/app/controllers/maquina/application_controller.rb +1 -1
- data/app/controllers/maquina/dashboard_controller.rb +10 -5
- data/app/controllers/maquina/invitations_controller.rb +0 -2
- data/app/controllers/maquina/plans_controller.rb +13 -23
- data/app/controllers/maquina/sessions_controller.rb +1 -1
- data/app/controllers/maquina/users_controller.rb +0 -2
- data/app/helpers/maquina/application_helper.rb +0 -8
- data/app/helpers/maquina/navbar_menu_helper.rb +1 -1
- data/app/models/concerns/maquina/blockeable.rb +64 -0
- data/app/models/concerns/maquina/organization_scoped.rb +26 -0
- data/app/models/concerns/maquina/retain_passwords.rb +44 -0
- data/app/models/concerns/maquina/sqlite_search.rb +92 -0
- data/app/models/concerns/maquina/user_scoped.rb +26 -0
- data/app/models/maquina/active_session.rb +40 -0
- data/app/models/maquina/current.rb +39 -2
- data/app/models/maquina/invitation.rb +28 -0
- data/app/models/maquina/membership.rb +23 -1
- data/app/models/maquina/organization.rb +19 -2
- data/app/models/maquina/plan.rb +26 -6
- data/app/models/maquina/used_password.rb +30 -0
- data/app/models/maquina/user.rb +50 -8
- data/app/policies/maquina/application_policy.rb +1 -1
- data/app/policies/maquina/dashboard_policy.rb +7 -0
- data/app/views/layouts/maquina/application.html.erb +2 -2
- data/app/views/layouts/maquina/sessions.html.erb +1 -1
- data/app/views/maquina/application/_navbar.html.erb +8 -3
- data/app/views/maquina/application/components/checkbox_component.rb +3 -3
- data/app/views/maquina/application/components/component_base.rb +3 -2
- data/app/views/maquina/application/edit.html.erb +10 -7
- data/app/views/maquina/application/filters.rb +118 -0
- data/app/views/maquina/application/index.html.erb +6 -3
- data/app/views/maquina/application/index_header.rb +5 -2
- data/app/views/maquina/application/index_table.rb +71 -6
- data/app/views/maquina/application/index_tools.rb +17 -0
- data/app/views/maquina/application/new.html.erb +10 -7
- data/app/views/maquina/application/search.rb +42 -0
- data/app/views/maquina/application/sessions_header.rb +3 -9
- data/app/views/maquina/dashboard/index.html.erb +4 -0
- data/app/views/maquina/dashboard/stats.rb +35 -0
- data/app/views/maquina/dashboard/tasks.rb +124 -0
- data/app/views/maquina/first_runs/form.rb +0 -2
- data/app/views/maquina/first_runs/show.html.erb +4 -1
- data/app/views/maquina/navbar/title.rb +4 -2
- data/config/importmap.rb +1 -13
- data/config/locales/flash.en.yml +6 -0
- data/config/locales/flash.es.yml +6 -0
- data/config/locales/forms.en.yml +33 -4
- data/config/locales/forms.es.yml +22 -11
- data/config/locales/models.en.yml +10 -0
- data/config/locales/models.es.yml +10 -0
- data/config/locales/views.en.yml +33 -5
- data/config/locales/views.es.yml +28 -10
- data/config/routes.rb +1 -0
- data/db/migrate/20221109010726_create_maquina_plans.rb +1 -1
- data/db/migrate/20221113000409_create_maquina_users.rb +1 -1
- data/db/migrate/20221113020108_create_maquina_used_passwords.rb +1 -1
- data/db/migrate/20221115223414_create_maquina_active_sessions.rb +1 -3
- data/db/migrate/20230201203922_create_maquina_invitations.rb +1 -1
- data/db/migrate/20230829183530_create_maquina_organizations.rb +1 -1
- data/db/migrate/20230829192656_create_maquina_memberships.rb +2 -4
- data/db/migrate/20241109191405_add_counter_cache_to_plans.rb +5 -0
- data/lib/generators/maquina/install_generator.rb +67 -1
- data/lib/generators/maquina/tailwind_config/templates/lib/generators/tailwind_config/templates/config/tailwind.config.js.tt +9 -5
- data/lib/generators/maquina/tailwind_config/templates/lib/tasks/tailwind.rake.tt +2 -0
- data/lib/generators/maquina/templates/config/initializers/maquina.rb.tt +2 -1
- data/lib/maquina/engine.rb +6 -3
- data/lib/maquina/version.rb +1 -1
- data/lib/maquina.rb +2 -9
- metadata +20 -76
- data/app/assets/javascripts/maquina/application.js +0 -4
- data/app/assets/javascripts/maquina/controllers/alert_controller.js +0 -29
- data/app/assets/javascripts/maquina/controllers/application.js +0 -9
- data/app/assets/javascripts/maquina/controllers/index.js +0 -11
- data/app/models/concerns/maquina/authenticate_by.rb +0 -33
- data/app/views/maquina/navbar/search.rb +0 -40
- data/lib/generators/maquina/install_templates/install_templates_generator.rb +0 -31
- /data/app/assets/javascripts/{maquina/controllers → controllers}/backdrop_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/file_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/mobile_menu_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/modal_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/modal_open_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/popup_menu_controller.js +0 -0
- /data/app/assets/javascripts/{maquina/controllers → controllers}/submit_form_controller.js +0 -0
@@ -1,29 +0,0 @@
|
|
1
|
-
import { Controller } from "@hotwired/stimulus"
|
2
|
-
import { useTransition } from "stimulus-use"
|
3
|
-
|
4
|
-
/**
|
5
|
-
* Alert Controller
|
6
|
-
*
|
7
|
-
* Cuando hay información en el objeto Flash de Rails se muestra con una animación
|
8
|
-
* el mensaje y desaparece solo después de 10 segundos o cerrándolo con la X.
|
9
|
-
*/
|
10
|
-
|
11
|
-
export default class extends Controller {
|
12
|
-
static targets = ["alert"];
|
13
|
-
|
14
|
-
connect() {
|
15
|
-
let element = this.element;
|
16
|
-
if (this.hasAlertTarget) {
|
17
|
-
element = this.alertTarget
|
18
|
-
}
|
19
|
-
useTransition(this, { element: element })
|
20
|
-
|
21
|
-
this.enter()
|
22
|
-
|
23
|
-
setTimeout(this.close.bind(this), 10000)
|
24
|
-
}
|
25
|
-
|
26
|
-
close() {
|
27
|
-
this.leave()
|
28
|
-
}
|
29
|
-
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
// Import and register all your controllers from the importmap under controllers/*
|
2
|
-
|
3
|
-
import { application } from "controllers/application"
|
4
|
-
|
5
|
-
// Eager load all controllers defined in the import map under controllers/**/*_controller
|
6
|
-
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
|
7
|
-
eagerLoadControllersFrom("controllers", application)
|
8
|
-
|
9
|
-
// Lazy load controllers as they appear in the DOM (remember not to preload controllers in import map!)
|
10
|
-
// import { lazyLoadControllersFrom } from "@hotwired/stimulus-loading"
|
11
|
-
// lazyLoadControllersFrom("controllers", application)
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Maquina
|
4
|
-
module AuthenticateBy
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
included do
|
7
|
-
add_authenticate_by
|
8
|
-
end
|
9
|
-
|
10
|
-
class_methods do
|
11
|
-
def add_authenticate_by
|
12
|
-
version = Gem::Version.new(Rails::VERSION::STRING)
|
13
|
-
return if version.to_s.to_f >= 7.1
|
14
|
-
|
15
|
-
Rails.logger.warn "[#{self}] Adding class method authenticate_by"
|
16
|
-
self.class.define_method(:authenticate_by) do |attributes|
|
17
|
-
passwords, identifiers = attributes.to_h.partition do |name, value|
|
18
|
-
!has_attribute?(name) && has_attribute?("#{name}_digest")
|
19
|
-
end.map(&:to_h)
|
20
|
-
|
21
|
-
raise ArgumentError, "One or more password arguments are required" if passwords.empty?
|
22
|
-
raise ArgumentError, "One or more finder arguments are required" if identifiers.empty?
|
23
|
-
if (record = find_by(identifiers))
|
24
|
-
record if passwords.count { |name, value| record.public_send(:"authenticate_#{name}", value) } == passwords.size
|
25
|
-
else
|
26
|
-
new(passwords)
|
27
|
-
nil
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Maquina
|
4
|
-
module Navbar
|
5
|
-
class Search < Phlex::HTML
|
6
|
-
include ApplicationView
|
7
|
-
include Phlex::Rails::Helpers::FormWith
|
8
|
-
|
9
|
-
delegate :t, to: :helpers
|
10
|
-
|
11
|
-
def initialize(url: nil, query: "")
|
12
|
-
@url = url
|
13
|
-
@query = query
|
14
|
-
end
|
15
|
-
|
16
|
-
def view_template
|
17
|
-
div class: "flex-1 flex items-center justify-center px-2 lg:ml-6 lg:justify-end" do
|
18
|
-
div class: "max-w-lg w-full lg:max-w-xs" do
|
19
|
-
form_with(url: @url, method: :get, data: {controller: "submit-form"}) do |form|
|
20
|
-
form.label :search, t("search.search"), class: "sr-only"
|
21
|
-
|
22
|
-
div class: "relative" do
|
23
|
-
div class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" do
|
24
|
-
svg_icon(:fill, view_box: "0 0 20 20", css_class: "h-5 w-5 text-skin-dimmed", icon: search_icon)
|
25
|
-
end
|
26
|
-
form.text_field :q, value: @query, placeholder: t("search.search"), class: "block w-full font-sans", maxlength: 15, type: :search, data: {action: "input->submit-form#clear"}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def search_icon
|
36
|
-
"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Maquina
|
4
|
-
module Generators
|
5
|
-
class InstallTemplatesGenerator < Rails::Generators::Base
|
6
|
-
source_root File.expand_path("../../../../app/views", __FILE__)
|
7
|
-
|
8
|
-
def copy_layout
|
9
|
-
empty_directory "app/views/layouts/maquina"
|
10
|
-
directory File.join(engine_views_path, "layouts", "maquina"),
|
11
|
-
File.join(app_views_path, "layouts", "maquina")
|
12
|
-
end
|
13
|
-
|
14
|
-
def copy_views
|
15
|
-
empty_directory "app/views/maquina"
|
16
|
-
directory File.join(engine_views_path, "maquina"),
|
17
|
-
File.join(app_views_path, "maquina")
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
def engine_views_path
|
23
|
-
@engine_views_path ||= File.join(Maquina::Engine.root, "app", "views")
|
24
|
-
end
|
25
|
-
|
26
|
-
def app_views_path
|
27
|
-
@app_views_path ||= File.join(Rails.root, "app", "views")
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|