From 0314a1ebb868134554b163178c71fdef6d31e741 Mon Sep 17 00:00:00 2001 From: Miguel Michelson Date: Sat, 13 Jul 2024 02:46:32 -0400 Subject: [PATCH] backstage admin --- Gemfile | 3 +- Gemfile.lock | 6 +- .../admin/categories_controller.rb | 2 +- app/controllers/admin/dashboard_controller.rb | 3 +- app/controllers/admin/posts_controller.rb | 2 +- .../admin/terms_and_conditions_controller.rb | 2 +- app/controllers/admin/users_controller.rb | 2 +- app/models/admin.rb | 84 ---------- app/models/backstage_config.rb | 85 ++++++++++ app/views/admin/dashboard/index.html.erb | 12 +- .../default--/add_filter.turbo_stream.erb | 8 - app/views/admin/default--/edit.html.erb | 10 -- app/views/admin/default--/index.html.erb | 26 --- app/views/admin/default--/new.html.erb | 9 - app/views/admin/default--/show.html.erb | 27 --- app/views/admin/shared--/_form.erb | 19 --- .../admin/shared--/_scopes_menu.html.erb | 11 -- app/views/admin/shared--/_table.erb | 32 ---- app/views/layouts/admin.html.erb | 154 +++++++++++++++--- .../assets/config/backstage_rails_manifest.js | 1 - .../backstage/rails/application_controller.rb | 6 - .../rails/default/add_filter.turbo_stream.erb | 8 - .../backstage/rails/default/edit.html.erb | 10 -- .../backstage/rails/default/index.html.erb | 26 --- .../backstage/rails/default/new.html.erb | 9 - .../backstage/rails/default/show.html.erb | 27 --- .../backstage/rails/shared/_actions.erb | 10 -- .../rails/shared/_filter_form.html.erb | 27 --- .../rails/shared/_filter_item.html.erb | 27 --- .../backstage/rails/shared/_filters.erb | 19 --- .../backstage/rails/shared/_form.erb | 19 --- .../rails/shared/_scopes_menu.html.erb | 11 -- .../backstage/rails/shared/_table.erb | 32 ---- .../backstage/rails/application_helper.rb | 6 - .../jobs/backstage/rails/application_job.rb | 6 - .../backstage/rails/application_mailer.rb | 8 - .../backstage/rails/application_record.rb | 7 - .../backstage/rails/dashboard/index.html.erb | 7 - .../rails/default/add_filter.turbo_stream.erb | 8 - .../backstage/rails/default/edit.html.erb | 10 -- .../backstage/rails/default/index.html.erb | 26 --- .../backstage/rails/default/new.html.erb | 9 - .../backstage/rails/default/show.html.erb | 27 --- .../views/backstage/rails/shared/_actions.erb | 10 -- .../rails/shared/_filter_form.html.erb | 27 --- .../rails/shared/_filter_item.html.erb | 27 --- .../views/backstage/rails/shared/_filters.erb | 19 --- .../views/backstage/rails/shared/_form.erb | 19 --- .../rails/shared/_scopes_menu.html.erb | 11 -- .../views/backstage/rails/shared/_table.erb | 32 ---- backstage-rails/backstage-rails.gemspec | 19 --- backstage-rails/config/routes.rb | 2 - backstage-rails/lib/backstage/rails.rb | 8 - backstage-rails/lib/backstage/rails/engine.rb | 12 -- .../lib/backstage/rails/version.rb | 5 - backstage-rails/test/backstage/rails_test.rb | 7 - backstage-rails/test/dummy/config/routes.rb | 3 - {backstage-rails => backstage}/.gitignore | 0 {backstage-rails => backstage}/Gemfile | 2 +- {backstage-rails => backstage}/README.md | 6 +- {backstage-rails => backstage}/Rakefile | 0 .../app/assets/config/backstager_manifest.js | 1 + .../app/assets/images/backstager}/.keep | 0 .../stylesheets/backstager}/application.css | 0 .../backstage/application_controller.rb | 4 + .../controllers/backstage}/base_controller.rb | 12 +- .../app/controllers/concerns/.keep | 0 .../app/forms/backstage}/filter_form.rb | 10 +- .../helpers/backstage/application_helper.rb | 4 + .../app/jobs/backstage/application_job.rb | 4 + .../mailers/backstage/application_mailer.rb | 6 + .../models/backstage/application_record.rb | 5 + .../app/models/concerns/.keep | 0 .../views/backstage}/dashboard/index.html.erb | 0 .../default/add_filter.turbo_stream.erb | 8 + .../app/views/backstage/default/edit.html.erb | 8 + .../views/backstage/default/index.html.erb | 28 ++++ .../app/views/backstage/default/new.html.erb | 7 + .../app/views/backstage/default/show.html.erb | 69 ++++++++ .../app/views/backstage/shared}/_actions.erb | 0 .../views/backstage/shared/_data_group.erb | 38 +++++ .../backstage/shared}/_filter_form.html.erb | 4 +- .../backstage/shared}/_filter_item.html.erb | 0 .../app/views/backstage/shared}/_filters.erb | 0 .../app/views/backstage/shared/_form.erb | 19 +++ .../backstage/shared/_scopes_menu.html.erb | 29 ++++ .../app/views/backstage/shared/_table.erb | 33 ++++ .../layouts/backstage}/application.html.erb | 4 +- backstage/backstage.gemspec | 27 +++ {backstage-rails => backstage}/bin/rails | 2 +- backstage/config/routes.rb | 2 + backstage/lib/backstage.rb | 7 + .../lib/backstage}/config.rb | 2 +- backstage/lib/backstage/engine.rb | 5 + .../lib/backstage}/form_builder.rb | 7 +- backstage/lib/backstage/version.rb | 3 + .../lib/tasks/backstage_tasks.rake | 2 +- backstage/test/backstager_test.rb | 7 + .../test/controllers/.keep | 0 .../test/dummy/Rakefile | 0 .../test/dummy/app/assets/config/manifest.js | 2 +- .../test/dummy/app/assets/images/.keep | 0 .../app/assets/stylesheets/application.css | 0 .../app/channels/application_cable/channel.rb | 0 .../channels/application_cable/connection.rb | 0 .../app/controllers/application_controller.rb | 0 .../test/dummy/app/controllers/concerns/.keep | 0 .../dummy/app/helpers/application_helper.rb | 0 .../test/dummy/app/jobs/application_job.rb | 0 .../dummy/app/mailers/application_mailer.rb | 0 .../dummy/app/models/application_record.rb | 0 .../test/dummy/app/models/concerns/.keep | 0 .../app/views/layouts/application.html.erb | 0 .../dummy/app/views/layouts/mailer.html.erb | 0 .../dummy/app/views/layouts/mailer.text.erb | 0 .../test/dummy/bin/rails | 0 .../test/dummy/bin/rake | 0 .../test/dummy/bin/setup | 0 .../test/dummy/config.ru | 0 .../test/dummy/config/application.rb | 0 .../test/dummy/config/boot.rb | 0 .../test/dummy/config/cable.yml | 0 .../test/dummy/config/database.yml | 0 .../test/dummy/config/environment.rb | 0 .../dummy/config/environments/development.rb | 0 .../dummy/config/environments/production.rb | 0 .../test/dummy/config/environments/test.rb | 0 .../test/dummy/config/initializers/assets.rb | 0 .../initializers/content_security_policy.rb | 0 .../initializers/filter_parameter_logging.rb | 0 .../dummy/config/initializers/inflections.rb | 0 .../config/initializers/permissions_policy.rb | 0 .../test/dummy/config/locales/en.yml | 0 .../test/dummy/config/puma.rb | 0 backstage/test/dummy/config/routes.rb | 3 + .../test/dummy/config/storage.yml | 0 .../test/dummy/lib/assets/.keep | 0 .../test/dummy/log/.keep | 0 .../test/dummy/public/404.html | 0 .../test/dummy/public/422.html | 0 .../test/dummy/public/500.html | 0 .../public/apple-touch-icon-precomposed.png | 0 .../test/dummy/public/apple-touch-icon.png | 0 .../test/dummy/public/favicon.ico | 0 .../test/fixtures/files/.keep | 0 .../test/helpers/.keep | 0 .../test/integration/.keep | 0 .../test/integration/navigation_test.rb | 0 .../test/mailers/.keep | 0 .../test/models/.keep | 0 .../test/test_helper.rb | 0 151 files changed, 578 insertions(+), 836 deletions(-) delete mode 100644 app/models/admin.rb create mode 100644 app/models/backstage_config.rb delete mode 100644 app/views/admin/default--/add_filter.turbo_stream.erb delete mode 100644 app/views/admin/default--/edit.html.erb delete mode 100644 app/views/admin/default--/index.html.erb delete mode 100644 app/views/admin/default--/new.html.erb delete mode 100644 app/views/admin/default--/show.html.erb delete mode 100644 app/views/admin/shared--/_form.erb delete mode 100644 app/views/admin/shared--/_scopes_menu.html.erb delete mode 100644 app/views/admin/shared--/_table.erb delete mode 100644 backstage-rails/app/assets/config/backstage_rails_manifest.js delete mode 100644 backstage-rails/app/controllers/backstage/rails/application_controller.rb delete mode 100644 backstage-rails/app/controllers/backstage/rails/default/add_filter.turbo_stream.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/default/edit.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/default/index.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/default/new.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/default/show.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_actions.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_filter_form.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_filter_item.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_filters.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_form.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_scopes_menu.html.erb delete mode 100644 backstage-rails/app/controllers/backstage/rails/shared/_table.erb delete mode 100644 backstage-rails/app/helpers/backstage/rails/application_helper.rb delete mode 100644 backstage-rails/app/jobs/backstage/rails/application_job.rb delete mode 100644 backstage-rails/app/mailers/backstage/rails/application_mailer.rb delete mode 100644 backstage-rails/app/models/backstage/rails/application_record.rb delete mode 100644 backstage-rails/app/views/backstage/rails/dashboard/index.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/default/add_filter.turbo_stream.erb delete mode 100644 backstage-rails/app/views/backstage/rails/default/edit.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/default/index.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/default/new.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/default/show.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_actions.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_filter_form.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_filter_item.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_filters.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_form.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_scopes_menu.html.erb delete mode 100644 backstage-rails/app/views/backstage/rails/shared/_table.erb delete mode 100644 backstage-rails/backstage-rails.gemspec delete mode 100644 backstage-rails/config/routes.rb delete mode 100644 backstage-rails/lib/backstage/rails.rb delete mode 100644 backstage-rails/lib/backstage/rails/engine.rb delete mode 100644 backstage-rails/lib/backstage/rails/version.rb delete mode 100644 backstage-rails/test/backstage/rails_test.rb delete mode 100644 backstage-rails/test/dummy/config/routes.rb rename {backstage-rails => backstage}/.gitignore (100%) rename {backstage-rails => backstage}/Gemfile (79%) rename {backstage-rails => backstage}/README.md (84%) rename {backstage-rails => backstage}/Rakefile (100%) create mode 100644 backstage/app/assets/config/backstager_manifest.js rename {backstage-rails/app/assets/images/backstage/rails => backstage/app/assets/images/backstager}/.keep (100%) rename {backstage-rails/app/assets/stylesheets/backstage/rails => backstage/app/assets/stylesheets/backstager}/application.css (100%) create mode 100644 backstage/app/controllers/backstage/application_controller.rb rename {backstage-rails/app/controllers/backstage/rails => backstage/app/controllers/backstage}/base_controller.rb (92%) rename {backstage-rails => backstage}/app/controllers/concerns/.keep (100%) rename {backstage-rails/app/forms/backstage/rails => backstage/app/forms/backstage}/filter_form.rb (87%) create mode 100644 backstage/app/helpers/backstage/application_helper.rb create mode 100644 backstage/app/jobs/backstage/application_job.rb create mode 100644 backstage/app/mailers/backstage/application_mailer.rb create mode 100644 backstage/app/models/backstage/application_record.rb rename {backstage-rails => backstage}/app/models/concerns/.keep (100%) rename {backstage-rails/app/controllers/backstage/rails => backstage/app/views/backstage}/dashboard/index.html.erb (100%) create mode 100644 backstage/app/views/backstage/default/add_filter.turbo_stream.erb create mode 100644 backstage/app/views/backstage/default/edit.html.erb create mode 100644 backstage/app/views/backstage/default/index.html.erb create mode 100644 backstage/app/views/backstage/default/new.html.erb create mode 100644 backstage/app/views/backstage/default/show.html.erb rename {app/views/admin/shared-- => backstage/app/views/backstage/shared}/_actions.erb (100%) create mode 100644 backstage/app/views/backstage/shared/_data_group.erb rename {app/views/admin/shared-- => backstage/app/views/backstage/shared}/_filter_form.html.erb (89%) rename {app/views/admin/shared-- => backstage/app/views/backstage/shared}/_filter_item.html.erb (100%) rename {app/views/admin/shared-- => backstage/app/views/backstage/shared}/_filters.erb (100%) create mode 100644 backstage/app/views/backstage/shared/_form.erb create mode 100644 backstage/app/views/backstage/shared/_scopes_menu.html.erb create mode 100644 backstage/app/views/backstage/shared/_table.erb rename {backstage-rails/app/views/layouts/backstage/rails => backstage/app/views/layouts/backstage}/application.html.erb (53%) create mode 100644 backstage/backstage.gemspec rename {backstage-rails => backstage}/bin/rails (86%) create mode 100644 backstage/config/routes.rb create mode 100644 backstage/lib/backstage.rb rename {backstage-rails/lib/backstage/rails => backstage/lib/backstage}/config.rb (98%) create mode 100644 backstage/lib/backstage/engine.rb rename {backstage-rails/lib/backstage/rails => backstage/lib/backstage}/form_builder.rb (88%) create mode 100644 backstage/lib/backstage/version.rb rename backstage-rails/lib/tasks/backstage/rails_tasks.rake => backstage/lib/tasks/backstage_tasks.rake (70%) create mode 100644 backstage/test/backstager_test.rb rename {backstage-rails => backstage}/test/controllers/.keep (100%) rename {backstage-rails => backstage}/test/dummy/Rakefile (100%) rename {backstage-rails => backstage}/test/dummy/app/assets/config/manifest.js (63%) rename {backstage-rails => backstage}/test/dummy/app/assets/images/.keep (100%) rename {backstage-rails => backstage}/test/dummy/app/assets/stylesheets/application.css (100%) rename {backstage-rails => backstage}/test/dummy/app/channels/application_cable/channel.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/channels/application_cable/connection.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/controllers/application_controller.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/controllers/concerns/.keep (100%) rename {backstage-rails => backstage}/test/dummy/app/helpers/application_helper.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/jobs/application_job.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/mailers/application_mailer.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/models/application_record.rb (100%) rename {backstage-rails => backstage}/test/dummy/app/models/concerns/.keep (100%) rename {backstage-rails => backstage}/test/dummy/app/views/layouts/application.html.erb (100%) rename {backstage-rails => backstage}/test/dummy/app/views/layouts/mailer.html.erb (100%) rename {backstage-rails => backstage}/test/dummy/app/views/layouts/mailer.text.erb (100%) rename {backstage-rails => backstage}/test/dummy/bin/rails (100%) rename {backstage-rails => backstage}/test/dummy/bin/rake (100%) rename {backstage-rails => backstage}/test/dummy/bin/setup (100%) rename {backstage-rails => backstage}/test/dummy/config.ru (100%) rename {backstage-rails => backstage}/test/dummy/config/application.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/boot.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/cable.yml (100%) rename {backstage-rails => backstage}/test/dummy/config/database.yml (100%) rename {backstage-rails => backstage}/test/dummy/config/environment.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/environments/development.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/environments/production.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/environments/test.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/initializers/assets.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/initializers/content_security_policy.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/initializers/filter_parameter_logging.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/initializers/inflections.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/initializers/permissions_policy.rb (100%) rename {backstage-rails => backstage}/test/dummy/config/locales/en.yml (100%) rename {backstage-rails => backstage}/test/dummy/config/puma.rb (100%) create mode 100644 backstage/test/dummy/config/routes.rb rename {backstage-rails => backstage}/test/dummy/config/storage.yml (100%) rename {backstage-rails => backstage}/test/dummy/lib/assets/.keep (100%) rename {backstage-rails => backstage}/test/dummy/log/.keep (100%) rename {backstage-rails => backstage}/test/dummy/public/404.html (100%) rename {backstage-rails => backstage}/test/dummy/public/422.html (100%) rename {backstage-rails => backstage}/test/dummy/public/500.html (100%) rename {backstage-rails => backstage}/test/dummy/public/apple-touch-icon-precomposed.png (100%) rename {backstage-rails => backstage}/test/dummy/public/apple-touch-icon.png (100%) rename {backstage-rails => backstage}/test/dummy/public/favicon.ico (100%) rename {backstage-rails => backstage}/test/fixtures/files/.keep (100%) rename {backstage-rails => backstage}/test/helpers/.keep (100%) rename {backstage-rails => backstage}/test/integration/.keep (100%) rename {backstage-rails => backstage}/test/integration/navigation_test.rb (100%) rename {backstage-rails => backstage}/test/mailers/.keep (100%) rename {backstage-rails => backstage}/test/models/.keep (100%) rename {backstage-rails => backstage}/test/test_helper.rb (100%) diff --git a/Gemfile b/Gemfile index 8543d46..6f79e82 100644 --- a/Gemfile +++ b/Gemfile @@ -170,4 +170,5 @@ gem "sequel", "~> 5.71" gem "mrsk", "~> 0.15.1" -gem 'backstage-rails', path: 'backstage-rails' \ No newline at end of file +# gem 'backstage-rails', path: 'backstage-rails' +gem 'backstage', path: 'backstage' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index fcf6bda..260b139 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -88,9 +88,9 @@ GIT rspec-support (3.13.0.pre) PATH - remote: backstage-rails + remote: backstage specs: - backstage-rails (0.1.0) + backstage (0.1.0) rails (>= 7.1.3.2) GEM @@ -655,7 +655,7 @@ DEPENDENCIES acts_as_list (~> 0.9.19) aws-sdk-rails aws-sdk-s3 (~> 1.48) - backstage-rails! + backstage! bootsnap browser (~> 5.3) capybara diff --git a/app/controllers/admin/categories_controller.rb b/app/controllers/admin/categories_controller.rb index 63fd1e3..b5f7f35 100644 --- a/app/controllers/admin/categories_controller.rb +++ b/app/controllers/admin/categories_controller.rb @@ -1,4 +1,4 @@ -class Admin::CategoriesController < Backstage::Rails::BaseController +class Admin::CategoriesController < Backstage::BaseController private diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb index 043003d..a803388 100644 --- a/app/controllers/admin/dashboard_controller.rb +++ b/app/controllers/admin/dashboard_controller.rb @@ -1,6 +1,7 @@ -class Admin::DashboardController < Backstage::Rails::BaseController +class Admin::DashboardController < Backstage::BaseController def index readme_path = Rails.root.join('app', 'views', 'admin', 'README.md') @readme_content = File.exist?(readme_path) ? File.read(readme_path) : "Welcome to the Admin Panel" + render "index" end end \ No newline at end of file diff --git a/app/controllers/admin/posts_controller.rb b/app/controllers/admin/posts_controller.rb index a28a8b7..0229772 100644 --- a/app/controllers/admin/posts_controller.rb +++ b/app/controllers/admin/posts_controller.rb @@ -1,4 +1,4 @@ -class Admin::PostsController < Backstage::Rails::BaseController +class Admin::PostsController < Backstage::BaseController private diff --git a/app/controllers/admin/terms_and_conditions_controller.rb b/app/controllers/admin/terms_and_conditions_controller.rb index 2d5c1c6..593ee23 100644 --- a/app/controllers/admin/terms_and_conditions_controller.rb +++ b/app/controllers/admin/terms_and_conditions_controller.rb @@ -1,4 +1,4 @@ -class Admin::TermsAndConditionsController < Backstage::Rails::BaseController +class Admin::TermsAndConditionsController < Backstage::BaseController private diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 3a0ef31..1865071 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -1,4 +1,4 @@ -class Admin::UsersController < Backstage::Rails::BaseController +class Admin::UsersController < Backstage::BaseController private diff --git a/app/models/admin.rb b/app/models/admin.rb deleted file mode 100644 index c162f0b..0000000 --- a/app/models/admin.rb +++ /dev/null @@ -1,84 +0,0 @@ -require "backstage/rails/config" - - -class Admin -end - -Backstage::Rails::Config.configure do - resource :users do - column :id - column :email - column :username - column :role - column :editor - - scope :all - scope :admins, -> { where(role: 'admin') } - scope :recent, -> { where('created_at > ?', 1.week.ago) } - - filter :email_cont, :string, label: 'Email contains' - filter :username_cont, :string, label: 'Username contains' - filter :role_cont, :select, collection: -> { User.roles.keys } - - filterable_field :username, :string - filterable_field :email, :string - filterable_field :role, :select, collection: -> { [:admin, :artist] } - - form_field :email, :email - form_field :username, :string - form_field :role, :select, collection: -> { User.roles.keys }, include_blank: false - form_field :editor, :check_box - - action :view - action :edit - action :delete - end - - resource :categories do - column :id - column :name - - filter :name, :string, label: 'Name contains' - - form_field :name_cont, :string - - action :view - action :edit - action :delete - end - - resource :posts do - column :id - column :title - column :author do |post, view| - view.link_to post.user.full_name, view.admin_user_path(post.user) - end - - scope :all - scope :published, -> { where(published: true) } - scope :draft, -> { where(published: false) } - scope :recent, -> { where('created_at > ?', 1.week.ago) } - - filter :title, :string, label: 'Name contains' - - form_field :title_cont, :string - - action :view - action :edit - action :delete - end - - resource :terms_and_conditions do - - column :id - column :title - - form_field :title, :string - form_field :category, :string - form_field :content, :custom, ->(view, form) { view.render("shared/simple_editor", form: form, field: :content) } - - action :view - action :edit - action :delete - end -end \ No newline at end of file diff --git a/app/models/backstage_config.rb b/app/models/backstage_config.rb new file mode 100644 index 0000000..7bacde8 --- /dev/null +++ b/app/models/backstage_config.rb @@ -0,0 +1,85 @@ +require "backstage/config" + +module BackstageConfig + + Backstage::Config.configure do + resource :users do + column :id + column :email + column :username + column :role + column :editor + + scope :all + scope :admins, -> { where(role: 'admin') } + scope :recent, -> { where('created_at > ?', 1.week.ago) } + + filter :email_cont, :string, label: 'Email contains' + filter :username_cont, :string, label: 'Username contains' + filter :role_cont, :select, collection: -> { User.roles.keys } + + filterable_field :username, :string + filterable_field :email, :string + filterable_field :role, :select, collection: -> { [:admin, :artist] } + + form_field :email, :email + form_field :username, :string + form_field :role, :select, collection: -> { User.roles.keys }, include_blank: false + form_field :seller, :boolean + form_field :editor, :check_box + + action :view + action :edit + action :delete + end + + resource :categories do + column :id + column :name + + filter :name, :string, label: 'Name contains' + + form_field :name_cont, :string + + action :view + action :edit + action :delete + end + + resource :posts do + column :id + column :title + column :author do |post, view| + view.link_to post.user.full_name, view.admin_user_path(post.user) + end + + scope :all + scope :published, -> { where(published: true) } + scope :draft, -> { where(published: false) } + scope :recent, -> { where('created_at > ?', 1.week.ago) } + + filter :title, :string, label: 'Name contains' + + form_field :title_cont, :string + + action :view + action :edit + action :delete + end + + resource :terms_and_conditions do + + column :id + column :title + + form_field :title, :string + form_field :category, :string + form_field :content, :custom, ->(view, form) { view.render("shared/simple_editor", form: form, field: :content) } + + action :view + action :edit + action :delete + end + end + +end \ No newline at end of file diff --git a/app/views/admin/dashboard/index.html.erb b/app/views/admin/dashboard/index.html.erb index 6a12ebd..c667123 100644 --- a/app/views/admin/dashboard/index.html.erb +++ b/app/views/admin/dashboard/index.html.erb @@ -1,7 +1,5 @@ -
-

Admin Dashboard

- -
- <%= markdown(@readme_content) %> -
-
\ No newline at end of file +

Admin Dashboard

+ +
+ <%= markdown(@readme_content) %> +
diff --git a/app/views/admin/default--/add_filter.turbo_stream.erb b/app/views/admin/default--/add_filter.turbo_stream.erb deleted file mode 100644 index 711a9e0..0000000 --- a/app/views/admin/default--/add_filter.turbo_stream.erb +++ /dev/null @@ -1,8 +0,0 @@ - -<%= form_with(model: @filter_form, url: "") do |f| %> - <%= f.fields_for :filter_items, Backstage::Rails::FilterFormItem.new, :child_index => @index do |ff| %> - <%= turbo_stream.append 'filterList' do %> - <%= render 'admin/shared/filter_item', f: ff, resource: @resource, index: ff.index %> - <% end %> - <% end %> -<% end %> \ No newline at end of file diff --git a/app/views/admin/default--/edit.html.erb b/app/views/admin/default--/edit.html.erb deleted file mode 100644 index 918d97c..0000000 --- a/app/views/admin/default--/edit.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
-

Edit <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to 'Show', [:admin, @resource], class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/app/views/admin/default--/index.html.erb b/app/views/admin/default--/index.html.erb deleted file mode 100644 index 9067d89..0000000 --- a/app/views/admin/default--/index.html.erb +++ /dev/null @@ -1,26 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
- -

<%= resource.name.to_s.titleize %>

- - <%= render 'admin/shared/filter_form', resource: resource %> - <%= render 'admin/shared/scopes_menu', resource: resource %> - - -
-
-
- <%= render 'admin/shared/table', resource: resource, resources: @resources %> -
-
- <%= paginate @resources %> -
-
-
- <% #= render 'admin/shared/filters', resource: resource %> -
-
- - <%= link_to "New #{resource.name.to_s.singularize.titleize}", new_polymorphic_path([:admin, resource.name.to_s.singularize.classify.constantize]), class: "mt-4 inline-block bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" %> -
\ No newline at end of file diff --git a/app/views/admin/default--/new.html.erb b/app/views/admin/default--/new.html.erb deleted file mode 100644 index 6ac9d4d..0000000 --- a/app/views/admin/default--/new.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
-

New <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/app/views/admin/default--/show.html.erb b/app/views/admin/default--/show.html.erb deleted file mode 100644 index 786f7be..0000000 --- a/app/views/admin/default--/show.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
-

<%= controller_name.singularize.titleize %> Details

- -
- <% resource.columns.each do |column| %> -
-
- <%= column[:name].to_s.titleize %> -
-
- <% if column[:block] %> - <%= column[:block].call(@resource, self) %> - <% else %> - <%= @resource.send(column[:name]) %> - <% end %> -
-
- <% end %> -
- -
- <%= link_to 'Edit', edit_polymorphic_path([:admin, @resource]), class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/app/views/admin/shared--/_form.erb b/app/views/admin/shared--/_form.erb deleted file mode 100644 index c0d712a..0000000 --- a/app/views/admin/shared--/_form.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= form_with(model: [:admin, resource], builder: Admin::FormBuilder, local: true, class: "space-y-6") do |form| %> - <% if resource.errors.any? %> - - <% end %> - - <%= form.generate_fields(@resource_config) %> - -
- <%= form.submit class: "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" %> -
-<% end %> \ No newline at end of file diff --git a/app/views/admin/shared--/_scopes_menu.html.erb b/app/views/admin/shared--/_scopes_menu.html.erb deleted file mode 100644 index f07e881..0000000 --- a/app/views/admin/shared--/_scopes_menu.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -<% if resource.scopes.any? %> -
- -
-<% end %> \ No newline at end of file diff --git a/app/views/admin/shared--/_table.erb b/app/views/admin/shared--/_table.erb deleted file mode 100644 index a8c92f3..0000000 --- a/app/views/admin/shared--/_table.erb +++ /dev/null @@ -1,32 +0,0 @@ - - - - <% resource.columns.each do |column| %> - - <% end %> - - - - - <% resources.each do |item| %> - - <% resource.columns.each do |column| %> - - <% end %> - - - <% end %> - -
- <% # sort_link(@q, column[:name], column[:options][:label] || column[:name].to_s.titleize, { class: "text-gray-600 hover:text-gray-900" }) %> - - Actions -
- <% if column[:block] %> - <%= column[:block].call(item, self) %> - <% else %> - <%= item.send(column[:name]) %> - <% end %> - - <%= render 'admin/shared/actions', resource: resource, item: item %> -
\ No newline at end of file diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index 46a49cf..1aa14b6 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb @@ -12,34 +12,140 @@ -
- - +
+
+
+ + + +
+
+ +
+
- -
-
- <%= yield %> +
+
+
+ <%= yield %> + <%= render "shared/turbo_delete_modal" %> +
- <%= render "shared/turbo_delete_modal" %> - - \ No newline at end of file + + + + + + diff --git a/backstage-rails/app/assets/config/backstage_rails_manifest.js b/backstage-rails/app/assets/config/backstage_rails_manifest.js deleted file mode 100644 index 485db61..0000000 --- a/backstage-rails/app/assets/config/backstage_rails_manifest.js +++ /dev/null @@ -1 +0,0 @@ -//= link_directory ../stylesheets/backstage/rails .css diff --git a/backstage-rails/app/controllers/backstage/rails/application_controller.rb b/backstage-rails/app/controllers/backstage/rails/application_controller.rb deleted file mode 100644 index 4735b42..0000000 --- a/backstage-rails/app/controllers/backstage/rails/application_controller.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Backstage - module Rails - class ApplicationController < ActionController::Base - end - end -end diff --git a/backstage-rails/app/controllers/backstage/rails/default/add_filter.turbo_stream.erb b/backstage-rails/app/controllers/backstage/rails/default/add_filter.turbo_stream.erb deleted file mode 100644 index 711a9e0..0000000 --- a/backstage-rails/app/controllers/backstage/rails/default/add_filter.turbo_stream.erb +++ /dev/null @@ -1,8 +0,0 @@ - -<%= form_with(model: @filter_form, url: "") do |f| %> - <%= f.fields_for :filter_items, Backstage::Rails::FilterFormItem.new, :child_index => @index do |ff| %> - <%= turbo_stream.append 'filterList' do %> - <%= render 'admin/shared/filter_item', f: ff, resource: @resource, index: ff.index %> - <% end %> - <% end %> -<% end %> \ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/default/edit.html.erb b/backstage-rails/app/controllers/backstage/rails/default/edit.html.erb deleted file mode 100644 index 918d97c..0000000 --- a/backstage-rails/app/controllers/backstage/rails/default/edit.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
-

Edit <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to 'Show', [:admin, @resource], class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/default/index.html.erb b/backstage-rails/app/controllers/backstage/rails/default/index.html.erb deleted file mode 100644 index a67602b..0000000 --- a/backstage-rails/app/controllers/backstage/rails/default/index.html.erb +++ /dev/null @@ -1,26 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
- -

<%= resource.name.to_s.titleize %>

- - <%= render 'backstage/rails/shared/filter_form', resource: resource %> - <%= render 'backstage/rails/shared/scopes_menu', resource: resource %> - - -
-
-
- <%= render 'backstage/rails/shared/table', resource: resource, resources: @resources %> -
-
- <%= paginate @resources %> -
-
-
- <% #= render 'backstage/rails/shared/filters', resource: resource %> -
-
- - <%= link_to "New #{resource.name.to_s.singularize.titleize}", new_polymorphic_path([:admin, resource.name.to_s.singularize.classify.constantize]), class: "mt-4 inline-block bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" %> -
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/default/new.html.erb b/backstage-rails/app/controllers/backstage/rails/default/new.html.erb deleted file mode 100644 index 6ac9d4d..0000000 --- a/backstage-rails/app/controllers/backstage/rails/default/new.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
-

New <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/default/show.html.erb b/backstage-rails/app/controllers/backstage/rails/default/show.html.erb deleted file mode 100644 index 786f7be..0000000 --- a/backstage-rails/app/controllers/backstage/rails/default/show.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
-

<%= controller_name.singularize.titleize %> Details

- -
- <% resource.columns.each do |column| %> -
-
- <%= column[:name].to_s.titleize %> -
-
- <% if column[:block] %> - <%= column[:block].call(@resource, self) %> - <% else %> - <%= @resource.send(column[:name]) %> - <% end %> -
-
- <% end %> -
- -
- <%= link_to 'Edit', edit_polymorphic_path([:admin, @resource]), class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_actions.erb b/backstage-rails/app/controllers/backstage/rails/shared/_actions.erb deleted file mode 100644 index 65308e3..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_actions.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% resource.actions.each do |action| %> - <% case action[:name] %> - <% when :view %> - <%= link_to 'View', polymorphic_path([:admin, item]), class: "text-blue-600 hover:text-blue-900 mr-2" %> - <% when :edit %> - <%= link_to 'Edit', edit_polymorphic_path([:admin, item]), class: "text-green-600 hover:text-green-900 mr-2" %> - <% when :delete %> - <%= link_to 'Delete', polymorphic_path([:admin, item]), data: {turbo_method: :delete, turbo_confirm: 'Are you sure?' }, class: "text-red-600 hover:text-red-900" %> - <% end %> -<% end %> \ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_filter_form.html.erb b/backstage-rails/app/controllers/backstage/rails/shared/_filter_form.html.erb deleted file mode 100644 index cfd585a..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_filter_form.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<%= @filter_form.as_json %> - -
- <%= form_with(model: @filter_form, url: url_for(action: 'index'), method: :get, data: { filter_manager_target: 'filterForm', turbo_frame: 'results' }) do |f| %> -
- - <%= f.fields_for :filter_items do |filter_form| %> - <%= render 'backstage/rails/shared/filter_item', f: filter_form, resource: resource, index: filter_form.index %> - <% end %> - -
- -
- -
- - <% # f.select :filter_combine, [['AND', 'AND'], ['OR', 'OR']], {}, class: "mr-2" %> - <% # f.select :scope, options_for_select(resource.scopes.map { |s| [s[:name].to_s.titleize, s[:name]] }, @filter_form.scope), { include_blank: 'All' }, class: "mr-2" %> - -
- <%= f.submit 'Apply', class: 'bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded' %> - -
- <% end %> -
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_filter_item.html.erb b/backstage-rails/app/controllers/backstage/rails/shared/_filter_item.html.erb deleted file mode 100644 index 7e4fdf1..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_filter_item.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -
- <% if index != 0 %> -
- <%= f.select :condition, [['AND', 'AND'], ['OR', 'OR']], {}, class: "mr-2" %> -
- <% end %> -
- - <%= f.select :field, resource.filterable_fields.map { |field| - [field[:options][:label] || field[:name].to_s.titleize, field[:name].to_s ] }, - {}, class: "mr-2" - %> - - <%= f.select :operator, [ - ['Is', 'eq'], - ['Is not', 'not_eq'], - ['Greater than', 'gt'], - ['Less than', 'lt'], - ['Greater than or equal to', 'gteq'], - ['Less than or equal to', 'lteq'], - ['Contains', 'matches'] - ], {}, class: "mr-2" %> - - <%= f.text_field :value, class: "mr-2", label: false %> - -
-
\ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_filters.erb b/backstage-rails/app/controllers/backstage/rails/shared/_filters.erb deleted file mode 100644 index b520111..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_filters.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= search_form_for @q, url: url_for(action: 'index'), class: "mb-6" do |f| %> -
- <% resource.filters.each do |filter| %> -
- <%= f.label filter[:name], filter[:options][:label], class: "block text-gray-700 text-sm font-bold mb-2" %> - <% case filter[:type] %> - <% when :string %> - <%= f.search_field filter[:name], class: "shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" %> - <% when :select %> - <% collection = filter[:options][:collection].is_a?(Proc) ? filter[:options][:collection].call : filter[:options][:collection] %> - <%= f.select filter[:name], collection, { include_blank: 'All' }, class: "shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" %> - <% end %> -
- <% end %> -
- <%= f.submit "Search", class: "bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" %> -
-
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_form.erb b/backstage-rails/app/controllers/backstage/rails/shared/_form.erb deleted file mode 100644 index c0d712a..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_form.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= form_with(model: [:admin, resource], builder: Admin::FormBuilder, local: true, class: "space-y-6") do |form| %> - <% if resource.errors.any? %> - - <% end %> - - <%= form.generate_fields(@resource_config) %> - -
- <%= form.submit class: "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" %> -
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_scopes_menu.html.erb b/backstage-rails/app/controllers/backstage/rails/shared/_scopes_menu.html.erb deleted file mode 100644 index f07e881..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_scopes_menu.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -<% if resource.scopes.any? %> -
- -
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/controllers/backstage/rails/shared/_table.erb b/backstage-rails/app/controllers/backstage/rails/shared/_table.erb deleted file mode 100644 index a8c92f3..0000000 --- a/backstage-rails/app/controllers/backstage/rails/shared/_table.erb +++ /dev/null @@ -1,32 +0,0 @@ - - - - <% resource.columns.each do |column| %> - - <% end %> - - - - - <% resources.each do |item| %> - - <% resource.columns.each do |column| %> - - <% end %> - - - <% end %> - -
- <% # sort_link(@q, column[:name], column[:options][:label] || column[:name].to_s.titleize, { class: "text-gray-600 hover:text-gray-900" }) %> - - Actions -
- <% if column[:block] %> - <%= column[:block].call(item, self) %> - <% else %> - <%= item.send(column[:name]) %> - <% end %> - - <%= render 'admin/shared/actions', resource: resource, item: item %> -
\ No newline at end of file diff --git a/backstage-rails/app/helpers/backstage/rails/application_helper.rb b/backstage-rails/app/helpers/backstage/rails/application_helper.rb deleted file mode 100644 index 7837025..0000000 --- a/backstage-rails/app/helpers/backstage/rails/application_helper.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Backstage - module Rails - module ApplicationHelper - end - end -end diff --git a/backstage-rails/app/jobs/backstage/rails/application_job.rb b/backstage-rails/app/jobs/backstage/rails/application_job.rb deleted file mode 100644 index 554dedf..0000000 --- a/backstage-rails/app/jobs/backstage/rails/application_job.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Backstage - module Rails - class ApplicationJob < ActiveJob::Base - end - end -end diff --git a/backstage-rails/app/mailers/backstage/rails/application_mailer.rb b/backstage-rails/app/mailers/backstage/rails/application_mailer.rb deleted file mode 100644 index 0aafcbf..0000000 --- a/backstage-rails/app/mailers/backstage/rails/application_mailer.rb +++ /dev/null @@ -1,8 +0,0 @@ -module Backstage - module Rails - class ApplicationMailer < ActionMailer::Base - default from: "from@example.com" - layout "mailer" - end - end -end diff --git a/backstage-rails/app/models/backstage/rails/application_record.rb b/backstage-rails/app/models/backstage/rails/application_record.rb deleted file mode 100644 index fdb3117..0000000 --- a/backstage-rails/app/models/backstage/rails/application_record.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Backstage - module Rails - class ApplicationRecord < ActiveRecord::Base - self.abstract_class = true - end - end -end diff --git a/backstage-rails/app/views/backstage/rails/dashboard/index.html.erb b/backstage-rails/app/views/backstage/rails/dashboard/index.html.erb deleted file mode 100644 index 6a12ebd..0000000 --- a/backstage-rails/app/views/backstage/rails/dashboard/index.html.erb +++ /dev/null @@ -1,7 +0,0 @@ -
-

Admin Dashboard

- -
- <%= markdown(@readme_content) %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/default/add_filter.turbo_stream.erb b/backstage-rails/app/views/backstage/rails/default/add_filter.turbo_stream.erb deleted file mode 100644 index f003733..0000000 --- a/backstage-rails/app/views/backstage/rails/default/add_filter.turbo_stream.erb +++ /dev/null @@ -1,8 +0,0 @@ - -<%= form_with(model: @filter_form, url: "") do |f| %> - <%= f.fields_for :filter_items, Backstage::Rails::FilterFormItem.new, :child_index => @index do |ff| %> - <%= turbo_stream.append 'filterList' do %> - <%= render 'backstage/rails/shared/filter_item', f: ff, resource: @resource, index: ff.index %> - <% end %> - <% end %> -<% end %> \ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/default/edit.html.erb b/backstage-rails/app/views/backstage/rails/default/edit.html.erb deleted file mode 100644 index 918d97c..0000000 --- a/backstage-rails/app/views/backstage/rails/default/edit.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
-

Edit <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to 'Show', [:admin, @resource], class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/default/index.html.erb b/backstage-rails/app/views/backstage/rails/default/index.html.erb deleted file mode 100644 index a67602b..0000000 --- a/backstage-rails/app/views/backstage/rails/default/index.html.erb +++ /dev/null @@ -1,26 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
- -

<%= resource.name.to_s.titleize %>

- - <%= render 'backstage/rails/shared/filter_form', resource: resource %> - <%= render 'backstage/rails/shared/scopes_menu', resource: resource %> - - -
-
-
- <%= render 'backstage/rails/shared/table', resource: resource, resources: @resources %> -
-
- <%= paginate @resources %> -
-
-
- <% #= render 'backstage/rails/shared/filters', resource: resource %> -
-
- - <%= link_to "New #{resource.name.to_s.singularize.titleize}", new_polymorphic_path([:admin, resource.name.to_s.singularize.classify.constantize]), class: "mt-4 inline-block bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" %> -
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/default/new.html.erb b/backstage-rails/app/views/backstage/rails/default/new.html.erb deleted file mode 100644 index 6ac9d4d..0000000 --- a/backstage-rails/app/views/backstage/rails/default/new.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
-

New <%= controller_name.singularize.titleize %>

- - <%= render 'admin/shared/form', resource: @resource %> - -
- <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/default/show.html.erb b/backstage-rails/app/views/backstage/rails/default/show.html.erb deleted file mode 100644 index 786f7be..0000000 --- a/backstage-rails/app/views/backstage/rails/default/show.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% resource = Backstage::Rails::Config.resources[controller_name.to_sym] %> - -
-

<%= controller_name.singularize.titleize %> Details

- -
- <% resource.columns.each do |column| %> -
-
- <%= column[:name].to_s.titleize %> -
-
- <% if column[:block] %> - <%= column[:block].call(@resource, self) %> - <% else %> - <%= @resource.send(column[:name]) %> - <% end %> -
-
- <% end %> -
- -
- <%= link_to 'Edit', edit_polymorphic_path([:admin, @resource]), class: "text-indigo-600 hover:text-indigo-900 mr-2" %> - <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> -
-
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_actions.erb b/backstage-rails/app/views/backstage/rails/shared/_actions.erb deleted file mode 100644 index 65308e3..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_actions.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% resource.actions.each do |action| %> - <% case action[:name] %> - <% when :view %> - <%= link_to 'View', polymorphic_path([:admin, item]), class: "text-blue-600 hover:text-blue-900 mr-2" %> - <% when :edit %> - <%= link_to 'Edit', edit_polymorphic_path([:admin, item]), class: "text-green-600 hover:text-green-900 mr-2" %> - <% when :delete %> - <%= link_to 'Delete', polymorphic_path([:admin, item]), data: {turbo_method: :delete, turbo_confirm: 'Are you sure?' }, class: "text-red-600 hover:text-red-900" %> - <% end %> -<% end %> \ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_filter_form.html.erb b/backstage-rails/app/views/backstage/rails/shared/_filter_form.html.erb deleted file mode 100644 index cfd585a..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_filter_form.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<%= @filter_form.as_json %> - -
- <%= form_with(model: @filter_form, url: url_for(action: 'index'), method: :get, data: { filter_manager_target: 'filterForm', turbo_frame: 'results' }) do |f| %> -
- - <%= f.fields_for :filter_items do |filter_form| %> - <%= render 'backstage/rails/shared/filter_item', f: filter_form, resource: resource, index: filter_form.index %> - <% end %> - -
- -
- -
- - <% # f.select :filter_combine, [['AND', 'AND'], ['OR', 'OR']], {}, class: "mr-2" %> - <% # f.select :scope, options_for_select(resource.scopes.map { |s| [s[:name].to_s.titleize, s[:name]] }, @filter_form.scope), { include_blank: 'All' }, class: "mr-2" %> - -
- <%= f.submit 'Apply', class: 'bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded' %> - -
- <% end %> -
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_filter_item.html.erb b/backstage-rails/app/views/backstage/rails/shared/_filter_item.html.erb deleted file mode 100644 index 7e4fdf1..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_filter_item.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -
- <% if index != 0 %> -
- <%= f.select :condition, [['AND', 'AND'], ['OR', 'OR']], {}, class: "mr-2" %> -
- <% end %> -
- - <%= f.select :field, resource.filterable_fields.map { |field| - [field[:options][:label] || field[:name].to_s.titleize, field[:name].to_s ] }, - {}, class: "mr-2" - %> - - <%= f.select :operator, [ - ['Is', 'eq'], - ['Is not', 'not_eq'], - ['Greater than', 'gt'], - ['Less than', 'lt'], - ['Greater than or equal to', 'gteq'], - ['Less than or equal to', 'lteq'], - ['Contains', 'matches'] - ], {}, class: "mr-2" %> - - <%= f.text_field :value, class: "mr-2", label: false %> - -
-
\ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_filters.erb b/backstage-rails/app/views/backstage/rails/shared/_filters.erb deleted file mode 100644 index b520111..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_filters.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= search_form_for @q, url: url_for(action: 'index'), class: "mb-6" do |f| %> -
- <% resource.filters.each do |filter| %> -
- <%= f.label filter[:name], filter[:options][:label], class: "block text-gray-700 text-sm font-bold mb-2" %> - <% case filter[:type] %> - <% when :string %> - <%= f.search_field filter[:name], class: "shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" %> - <% when :select %> - <% collection = filter[:options][:collection].is_a?(Proc) ? filter[:options][:collection].call : filter[:options][:collection] %> - <%= f.select filter[:name], collection, { include_blank: 'All' }, class: "shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" %> - <% end %> -
- <% end %> -
- <%= f.submit "Search", class: "bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline" %> -
-
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_form.erb b/backstage-rails/app/views/backstage/rails/shared/_form.erb deleted file mode 100644 index c0d712a..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_form.erb +++ /dev/null @@ -1,19 +0,0 @@ -<%= form_with(model: [:admin, resource], builder: Admin::FormBuilder, local: true, class: "space-y-6") do |form| %> - <% if resource.errors.any? %> - - <% end %> - - <%= form.generate_fields(@resource_config) %> - -
- <%= form.submit class: "inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" %> -
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_scopes_menu.html.erb b/backstage-rails/app/views/backstage/rails/shared/_scopes_menu.html.erb deleted file mode 100644 index f07e881..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_scopes_menu.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -<% if resource.scopes.any? %> -
- -
-<% end %> \ No newline at end of file diff --git a/backstage-rails/app/views/backstage/rails/shared/_table.erb b/backstage-rails/app/views/backstage/rails/shared/_table.erb deleted file mode 100644 index 66e755d..0000000 --- a/backstage-rails/app/views/backstage/rails/shared/_table.erb +++ /dev/null @@ -1,32 +0,0 @@ - - - - <% resource.columns.each do |column| %> - - <% end %> - - - - - <% resources.each do |item| %> - - <% resource.columns.each do |column| %> - - <% end %> - - - <% end %> - -
- <% # sort_link(@q, column[:name], column[:options][:label] || column[:name].to_s.titleize, { class: "text-gray-600 hover:text-gray-900" }) %> - - Actions -
- <% if column[:block] %> - <%= column[:block].call(item, self) %> - <% else %> - <%= item.send(column[:name]) %> - <% end %> - - <%= render 'backstage/rails/shared/actions', resource: resource, item: item %> -
\ No newline at end of file diff --git a/backstage-rails/backstage-rails.gemspec b/backstage-rails/backstage-rails.gemspec deleted file mode 100644 index ce55ab5..0000000 --- a/backstage-rails/backstage-rails.gemspec +++ /dev/null @@ -1,19 +0,0 @@ -require_relative "lib/backstage/rails/version" - - -Gem::Specification.new do |spec| - spec.name = "backstage-rails" - spec.version = Backstage::Rails::VERSION - spec.authors = ["Miguel Michelson Martinez"] - spec.email = ["miguelmichelson@gmail.com"] - spec.homepage = "https://github.com/yourusername/backstage-rails" - spec.summary = "A flexible and powerful admin panel for Rails applications" - spec.description = "Backstage Rails provides a customizable admin interface for Rails applications, with advanced filtering and management capabilities." - spec.license = "MIT" - - spec.files = Dir.chdir(File.expand_path(__dir__)) do - Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"] - end - - spec.add_dependency "rails", ">= 7.1.3.2" -end diff --git a/backstage-rails/config/routes.rb b/backstage-rails/config/routes.rb deleted file mode 100644 index 0360f13..0000000 --- a/backstage-rails/config/routes.rb +++ /dev/null @@ -1,2 +0,0 @@ -Backstage::Rails::Engine.routes.draw do -end diff --git a/backstage-rails/lib/backstage/rails.rb b/backstage-rails/lib/backstage/rails.rb deleted file mode 100644 index 7975312..0000000 --- a/backstage-rails/lib/backstage/rails.rb +++ /dev/null @@ -1,8 +0,0 @@ -require "backstage/rails/version" -require "backstage/rails/engine" - -module Backstage - module Rails - # Your code goes here... - end -end diff --git a/backstage-rails/lib/backstage/rails/engine.rb b/backstage-rails/lib/backstage/rails/engine.rb deleted file mode 100644 index 0824af7..0000000 --- a/backstage-rails/lib/backstage/rails/engine.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Backstage - module Rails - class Engine < ::Rails::Engine - isolate_namespace Backstage::Rails - - initializer "backstage.assets.precompile" do |app| - app.config.assets.precompile += %w( backstage/application.css backstage/application.js ) - end - - end - end -end diff --git a/backstage-rails/lib/backstage/rails/version.rb b/backstage-rails/lib/backstage/rails/version.rb deleted file mode 100644 index 4dae9d7..0000000 --- a/backstage-rails/lib/backstage/rails/version.rb +++ /dev/null @@ -1,5 +0,0 @@ -module Backstage - module Rails - VERSION = "0.1.0" - end -end diff --git a/backstage-rails/test/backstage/rails_test.rb b/backstage-rails/test/backstage/rails_test.rb deleted file mode 100644 index c6c3e7a..0000000 --- a/backstage-rails/test/backstage/rails_test.rb +++ /dev/null @@ -1,7 +0,0 @@ -require "test_helper" - -class Backstage::RailsTest < ActiveSupport::TestCase - test "it has a version number" do - assert Backstage::Rails::VERSION - end -end diff --git a/backstage-rails/test/dummy/config/routes.rb b/backstage-rails/test/dummy/config/routes.rb deleted file mode 100644 index 943aa9a..0000000 --- a/backstage-rails/test/dummy/config/routes.rb +++ /dev/null @@ -1,3 +0,0 @@ -Rails.application.routes.draw do - mount Backstage::Rails::Engine => "/backstage-rails" -end diff --git a/backstage-rails/.gitignore b/backstage/.gitignore similarity index 100% rename from backstage-rails/.gitignore rename to backstage/.gitignore diff --git a/backstage-rails/Gemfile b/backstage/Gemfile similarity index 79% rename from backstage-rails/Gemfile rename to backstage/Gemfile index b2cf356..bc8c748 100644 --- a/backstage-rails/Gemfile +++ b/backstage/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } -# Specify your gem's dependencies in backstage-rails.gemspec. +# Specify your gem's dependencies in backstage.gemspec. gemspec gem "puma" diff --git a/backstage-rails/README.md b/backstage/README.md similarity index 84% rename from backstage-rails/README.md rename to backstage/README.md index b45cf25..effa871 100644 --- a/backstage-rails/README.md +++ b/backstage/README.md @@ -1,4 +1,4 @@ -# Backstage::Rails +# Backstage Short description and motivation. ## Usage @@ -8,7 +8,7 @@ How to use my plugin. Add this line to your application's Gemfile: ```ruby -gem "backstage-rails" +gem "backstage" ``` And then execute: @@ -18,7 +18,7 @@ $ bundle Or install it yourself as: ```bash -$ gem install backstage-rails +$ gem install backstage ``` ## Contributing diff --git a/backstage-rails/Rakefile b/backstage/Rakefile similarity index 100% rename from backstage-rails/Rakefile rename to backstage/Rakefile diff --git a/backstage/app/assets/config/backstager_manifest.js b/backstage/app/assets/config/backstager_manifest.js new file mode 100644 index 0000000..b1b6193 --- /dev/null +++ b/backstage/app/assets/config/backstager_manifest.js @@ -0,0 +1 @@ +//= link_directory ../stylesheets/backstage .css diff --git a/backstage-rails/app/assets/images/backstage/rails/.keep b/backstage/app/assets/images/backstager/.keep similarity index 100% rename from backstage-rails/app/assets/images/backstage/rails/.keep rename to backstage/app/assets/images/backstager/.keep diff --git a/backstage-rails/app/assets/stylesheets/backstage/rails/application.css b/backstage/app/assets/stylesheets/backstager/application.css similarity index 100% rename from backstage-rails/app/assets/stylesheets/backstage/rails/application.css rename to backstage/app/assets/stylesheets/backstager/application.css diff --git a/backstage/app/controllers/backstage/application_controller.rb b/backstage/app/controllers/backstage/application_controller.rb new file mode 100644 index 0000000..dd06ffc --- /dev/null +++ b/backstage/app/controllers/backstage/application_controller.rb @@ -0,0 +1,4 @@ +module Backstage + class ApplicationController < ActionController::Base + end +end diff --git a/backstage-rails/app/controllers/backstage/rails/base_controller.rb b/backstage/app/controllers/backstage/base_controller.rb similarity index 92% rename from backstage-rails/app/controllers/backstage/rails/base_controller.rb rename to backstage/app/controllers/backstage/base_controller.rb index b141f36..1f3ae0f 100644 --- a/backstage-rails/app/controllers/backstage/rails/base_controller.rb +++ b/backstage/app/controllers/backstage/base_controller.rb @@ -1,4 +1,4 @@ -class Backstage::Rails::BaseController < ApplicationController +class Backstage::BaseController < ApplicationController layout 'admin' before_action :authenticate_admin! before_action :set_resource_config @@ -15,7 +15,7 @@ def indexxx end def index - @filter_form = Backstage::Rails::FilterForm.new(filter_params) + @filter_form = Backstage::FilterForm.new(filter_params) #ransack_params = build_ransack_params(@filter_form) @@ -66,7 +66,7 @@ def destroy end def add_filter - @resource = Backstage::Rails::Config.resources[controller_name.to_sym] + @resource = Backstage::Config.resources[controller_name.to_sym] @index = @filter_form.filter_items.size + 1 end @@ -91,7 +91,7 @@ def build_ransack_params(filter_form) end def set_filter_form - @filter_form = Backstage::Rails::FilterForm.new(filter_params) + @filter_form = Backstage::FilterForm.new(filter_params) end def filter_params @@ -106,7 +106,7 @@ def default_render if lookup_context.template_exists?(action_name, "admin/#{controller_name}", true) super else - render template: "backstage/rails/default/#{action_name}" + render template: "backstage/default/#{action_name}" end end @@ -115,7 +115,7 @@ def authenticate_admin! end def set_resource_config - @resource_config = Backstage::Rails::Config.resources[controller_name.to_sym] + @resource_config = Backstage::Config.resources[controller_name.to_sym] end def set_resource_scope diff --git a/backstage-rails/app/controllers/concerns/.keep b/backstage/app/controllers/concerns/.keep similarity index 100% rename from backstage-rails/app/controllers/concerns/.keep rename to backstage/app/controllers/concerns/.keep diff --git a/backstage-rails/app/forms/backstage/rails/filter_form.rb b/backstage/app/forms/backstage/filter_form.rb similarity index 87% rename from backstage-rails/app/forms/backstage/rails/filter_form.rb rename to backstage/app/forms/backstage/filter_form.rb index 66bca61..5cf175c 100644 --- a/backstage-rails/app/forms/backstage/rails/filter_form.rb +++ b/backstage/app/forms/backstage/filter_form.rb @@ -1,5 +1,5 @@ # app/forms/admin_filter_form.rb -class Backstage::Rails::FilterForm +class Backstage::FilterForm include ActiveModel::Model include ActiveModel::Attributes # include ActiveModel::NestedAttributes @@ -15,15 +15,15 @@ class Backstage::Rails::FilterForm def initialize(attributes = {}) super self.filter_items = [] if filter_items.nil? - self.filter_items << Backstage::Rails::FilterFormItem.new if filter_items.empty? + self.filter_items << Backstage::FilterFormItem.new if filter_items.empty? end def filter_items_attributes=(attributes) - self.filter_items = attributes.values.map { |attrs| Backstage::Rails::FilterFormItem.new(attrs) } + self.filter_items = attributes.values.map { |attrs| Backstage::FilterFormItem.new(attrs) } end def add_filter_item - filter_items << Backstage::Rails::FilterFormItem.new + filter_items << Backstage::FilterFormItem.new end def apply(relation) @@ -69,7 +69,7 @@ def apply_filters(relation) # app/models/admin_filter_form_item.rb -class Backstage::Rails::FilterFormItem +class Backstage::FilterFormItem include ActiveModel::Model include ActiveModel::Attributes diff --git a/backstage/app/helpers/backstage/application_helper.rb b/backstage/app/helpers/backstage/application_helper.rb new file mode 100644 index 0000000..ad34065 --- /dev/null +++ b/backstage/app/helpers/backstage/application_helper.rb @@ -0,0 +1,4 @@ +module Backstage + module ApplicationHelper + end +end diff --git a/backstage/app/jobs/backstage/application_job.rb b/backstage/app/jobs/backstage/application_job.rb new file mode 100644 index 0000000..13a5f4d --- /dev/null +++ b/backstage/app/jobs/backstage/application_job.rb @@ -0,0 +1,4 @@ +module Backstage + class ApplicationJob < ActiveJob::Base + end +end diff --git a/backstage/app/mailers/backstage/application_mailer.rb b/backstage/app/mailers/backstage/application_mailer.rb new file mode 100644 index 0000000..d9e4f65 --- /dev/null +++ b/backstage/app/mailers/backstage/application_mailer.rb @@ -0,0 +1,6 @@ +module Backstage + class ApplicationMailer < ActionMailer::Base + default from: "from@example.com" + layout "mailer" + end +end diff --git a/backstage/app/models/backstage/application_record.rb b/backstage/app/models/backstage/application_record.rb new file mode 100644 index 0000000..aea3c05 --- /dev/null +++ b/backstage/app/models/backstage/application_record.rb @@ -0,0 +1,5 @@ +module Backstage + class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true + end +end diff --git a/backstage-rails/app/models/concerns/.keep b/backstage/app/models/concerns/.keep similarity index 100% rename from backstage-rails/app/models/concerns/.keep rename to backstage/app/models/concerns/.keep diff --git a/backstage-rails/app/controllers/backstage/rails/dashboard/index.html.erb b/backstage/app/views/backstage/dashboard/index.html.erb similarity index 100% rename from backstage-rails/app/controllers/backstage/rails/dashboard/index.html.erb rename to backstage/app/views/backstage/dashboard/index.html.erb diff --git a/backstage/app/views/backstage/default/add_filter.turbo_stream.erb b/backstage/app/views/backstage/default/add_filter.turbo_stream.erb new file mode 100644 index 0000000..2ae090d --- /dev/null +++ b/backstage/app/views/backstage/default/add_filter.turbo_stream.erb @@ -0,0 +1,8 @@ + +<%= form_with(model: @filter_form, url: "") do |f| %> + <%= f.fields_for :filter_items, Backstage::FilterFormItem.new, :child_index => @index do |ff| %> + <%= turbo_stream.append 'filterList' do %> + <%= render 'backstage/shared/filter_item', f: ff, resource: @resource, index: ff.index %> + <% end %> + <% end %> +<% end %> \ No newline at end of file diff --git a/backstage/app/views/backstage/default/edit.html.erb b/backstage/app/views/backstage/default/edit.html.erb new file mode 100644 index 0000000..a76b34e --- /dev/null +++ b/backstage/app/views/backstage/default/edit.html.erb @@ -0,0 +1,8 @@ +

Edit <%= controller_name.singularize.titleize %>

+ +<%= render 'backstage/shared/form', resource: @resource %> + +
+ <%= link_to 'Show', [:admin, @resource], class: "text-indigo-600 hover:text-indigo-900 mr-2" %> + <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> +
diff --git a/backstage/app/views/backstage/default/index.html.erb b/backstage/app/views/backstage/default/index.html.erb new file mode 100644 index 0000000..c393e87 --- /dev/null +++ b/backstage/app/views/backstage/default/index.html.erb @@ -0,0 +1,28 @@ +<% resource = Backstage::Config.resources[controller_name.to_sym] %> + +
+

<%= resource.name.to_s.titleize %>

+ + <%= link_to "New #{resource.name.to_s.singularize.titleize}", new_polymorphic_path([:admin, resource.name.to_s.singularize.classify.constantize]), + class: "relative isolate inline-flex items-center justify-center gap-x-2 rounded-lg border text-base/6 font-semibold px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing.3)-1px)] sm:py-[calc(theme(spacing[1.5])-1px)] sm:text-sm/6 focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-blue-500 data-[disabled]:opacity-50 [&>[data-slot=icon]]:-mx-0.5 [&>[data-slot=icon]]:my-0.5 [&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-[--btn-icon] [&>[data-slot=icon]]:sm:my-1 [&>[data-slot=icon]]:sm:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:data-[hover]:[--btn-icon:ButtonText] border-transparent bg-[--btn-border] dark:bg-[--btn-bg] before:absolute before:inset-0 before:-z-10 before:rounded-[calc(theme(borderRadius.lg)-1px)] before:bg-[--btn-bg] before:shadow dark:before:hidden dark:border-white/5 after:absolute after:inset-0 after:-z-10 after:rounded-[calc(theme(borderRadius.lg)-1px)] after:shadow-[shadow:inset_0_1px_theme(colors.white/15%)] after:data-[active]:bg-[--btn-hover-overlay] after:data-[hover]:bg-[--btn-hover-overlay] dark:after:-inset-px dark:after:rounded-lg before:data-[disabled]:shadow-none after:data-[disabled]:shadow-none text-white [--btn-bg:theme(colors.zinc.900)] [--btn-border:theme(colors.zinc.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)] dark:text-white dark:[--btn-bg:theme(colors.zinc.600)] dark:[--btn-hover-overlay:theme(colors.white/5%)] [--btn-icon:theme(colors.zinc.400)] data-[active]:[--btn-icon:theme(colors.zinc.300)] data-[hover]:[--btn-icon:theme(colors.zinc.300)] cursor-default" %> +
+ +<% # render "backstage/shared/data_group" %> + +<%= render 'backstage/shared/scopes_menu', resource: resource %> + +
+
+
+ <%= render 'backstage/shared/table', resource: resource, resources: @resources %> +
+
+ <%= paginate @resources %> +
+
+
+ <%= render 'backstage/shared/filter_form', resource: resource %> + + <% #= render 'backstage/shared/filters', resource: resource %> +
+
\ No newline at end of file diff --git a/backstage/app/views/backstage/default/new.html.erb b/backstage/app/views/backstage/default/new.html.erb new file mode 100644 index 0000000..1d3ae09 --- /dev/null +++ b/backstage/app/views/backstage/default/new.html.erb @@ -0,0 +1,7 @@ +

New <%= controller_name.singularize.titleize %>

+ +<%= render 'backstage/shared/form', resource: @resource %> + +
+ <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> +
diff --git a/backstage/app/views/backstage/default/show.html.erb b/backstage/app/views/backstage/default/show.html.erb new file mode 100644 index 0000000..08a979e --- /dev/null +++ b/backstage/app/views/backstage/default/show.html.erb @@ -0,0 +1,69 @@ + + +
+ + +
+ +
+

+ <%= resource.name %> #<%= @resource.id %> +

+ Successful +
+ +
+ +
+ + +
+
+ +
+ +
+ +

+ Summary +

+ +
+ <% resource.columns.each do |column| %> +
+
+ <%= column[:name].to_s.titleize %> +
+
+ <% if column[:block] %> + <%= column[:block].call(@resource, self) %> + <% else %> + <%= @resource.send(column[:name]) %> + <% end %> +
+
+ <% end %> +
+
+ +
+ + + + +
+ <%= link_to 'Edit', edit_polymorphic_path([:admin, @resource]), class: "text-indigo-600 hover:text-indigo-900 mr-2" %> + <%= link_to "Back to #{controller_name.titleize}", polymorphic_path([:admin, controller_name.classify.constantize]), class: "text-gray-600 hover:text-gray-900" %> +
diff --git a/app/views/admin/shared--/_actions.erb b/backstage/app/views/backstage/shared/_actions.erb similarity index 100% rename from app/views/admin/shared--/_actions.erb rename to backstage/app/views/backstage/shared/_actions.erb diff --git a/backstage/app/views/backstage/shared/_data_group.erb b/backstage/app/views/backstage/shared/_data_group.erb new file mode 100644 index 0000000..e46062e --- /dev/null +++ b/backstage/app/views/backstage/shared/_data_group.erb @@ -0,0 +1,38 @@ +
+
+ +
Total revenue
+
$2.6M
+
+ +4.5% + from last week +
+
+
+ +
Average order value
+
$455
+
+ -0.5% + from last week +
+
+
+ +
Tickets sold
+
5,888
+
+ +4.5% + from last week +
+
+
+ +
Pageviews
+
823,067
+
+ +21.2% + from last week +
+
+
diff --git a/app/views/admin/shared--/_filter_form.html.erb b/backstage/app/views/backstage/shared/_filter_form.html.erb similarity index 89% rename from app/views/admin/shared--/_filter_form.html.erb rename to backstage/app/views/backstage/shared/_filter_form.html.erb index d3683c7..1949998 100644 --- a/app/views/admin/shared--/_filter_form.html.erb +++ b/backstage/app/views/backstage/shared/_filter_form.html.erb @@ -1,3 +1,5 @@ +<% # @filter_form.as_json %> +
@@ -5,7 +7,7 @@
<%= f.fields_for :filter_items do |filter_form| %> - <%= render 'backstage/rails/shared/filter_item', f: filter_form, resource: resource, index: filter_form.index %> + <%= render 'backstage/shared/filter_item', f: filter_form, resource: resource, index: filter_form.index %> <% end %>
diff --git a/app/views/admin/shared--/_filter_item.html.erb b/backstage/app/views/backstage/shared/_filter_item.html.erb similarity index 100% rename from app/views/admin/shared--/_filter_item.html.erb rename to backstage/app/views/backstage/shared/_filter_item.html.erb diff --git a/app/views/admin/shared--/_filters.erb b/backstage/app/views/backstage/shared/_filters.erb similarity index 100% rename from app/views/admin/shared--/_filters.erb rename to backstage/app/views/backstage/shared/_filters.erb diff --git a/backstage/app/views/backstage/shared/_form.erb b/backstage/app/views/backstage/shared/_form.erb new file mode 100644 index 0000000..2ff6ec4 --- /dev/null +++ b/backstage/app/views/backstage/shared/_form.erb @@ -0,0 +1,19 @@ +<%= form_with(model: [:admin, resource], builder: Backstage::FormBuilder, local: true, class: "space-y-6") do |form| %> + <% if resource.errors.any? %> + + <% end %> + + <%= form.generate_fields(@resource_config) %> + +
+ <%= form.submit class: "relative isolate inline-flex items-center justify-center gap-x-2 rounded-lg border text-base/6 font-semibold px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing.3)-1px)] sm:py-[calc(theme(spacing[1.5])-1px)] sm:text-sm/6 focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-blue-500 data-[disabled]:opacity-50 [&>[data-slot=icon]]:-mx-0.5 [&>[data-slot=icon]]:my-0.5 [&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-[--btn-icon] [&>[data-slot=icon]]:sm:my-1 [&>[data-slot=icon]]:sm:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:data-[hover]:[--btn-icon:ButtonText] border-transparent bg-[--btn-border] dark:bg-[--btn-bg] before:absolute before:inset-0 before:-z-10 before:rounded-[calc(theme(borderRadius.lg)-1px)] before:bg-[--btn-bg] before:shadow dark:before:hidden dark:border-white/5 after:absolute after:inset-0 after:-z-10 after:rounded-[calc(theme(borderRadius.lg)-1px)] after:shadow-[shadow:inset_0_1px_theme(colors.white/15%)] after:data-[active]:bg-[--btn-hover-overlay] after:data-[hover]:bg-[--btn-hover-overlay] dark:after:-inset-px dark:after:rounded-lg before:data-[disabled]:shadow-none after:data-[disabled]:shadow-none text-white [--btn-bg:theme(colors.zinc.900)] [--btn-border:theme(colors.zinc.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)] dark:text-white dark:[--btn-bg:theme(colors.zinc.600)] dark:[--btn-hover-overlay:theme(colors.white/5%)] [--btn-icon:theme(colors.zinc.400)] data-[active]:[--btn-icon:theme(colors.zinc.300)] data-[hover]:[--btn-icon:theme(colors.zinc.300)] cursor-default" %> +
+<% end %> \ No newline at end of file diff --git a/backstage/app/views/backstage/shared/_scopes_menu.html.erb b/backstage/app/views/backstage/shared/_scopes_menu.html.erb new file mode 100644 index 0000000..fa06410 --- /dev/null +++ b/backstage/app/views/backstage/shared/_scopes_menu.html.erb @@ -0,0 +1,29 @@ +<% if resource.scopes.any? %> + +
+ +
+ +<% end %> + + diff --git a/backstage/app/views/backstage/shared/_table.erb b/backstage/app/views/backstage/shared/_table.erb new file mode 100644 index 0000000..ccb6d1b --- /dev/null +++ b/backstage/app/views/backstage/shared/_table.erb @@ -0,0 +1,33 @@ + + + + <% resource.columns.each do |column| %> + + <% end %> + + + + + <% resources.each do |item| %> + + <% resource.columns.each do |column| %> + + <% end %> + + + <% end %> + +
+ <%= column[:name] %> + <% # sort_link(@q, column[:name], column[:options][:label] || column[:name].to_s.titleize, { class: "text-gray-600 hover:text-gray-900" }) %> + + Actions +
+ <% if column[:block] %> + <%= column[:block].call(item, self) %> + <% else %> + <%= item.send(column[:name]) %> + <% end %> + + <%= render 'backstage/shared/actions', resource: resource, item: item %> +
\ No newline at end of file diff --git a/backstage-rails/app/views/layouts/backstage/rails/application.html.erb b/backstage/app/views/layouts/backstage/application.html.erb similarity index 53% rename from backstage-rails/app/views/layouts/backstage/rails/application.html.erb rename to backstage/app/views/layouts/backstage/application.html.erb index 75b8c25..a76331f 100644 --- a/backstage-rails/app/views/layouts/backstage/rails/application.html.erb +++ b/backstage/app/views/layouts/backstage/application.html.erb @@ -1,11 +1,11 @@ - Backstage rails + Backstage <%= csrf_meta_tags %> <%= csp_meta_tag %> - <%= stylesheet_link_tag "backstage/rails/application", media: "all" %> + <%= stylesheet_link_tag "backstage/application", media: "all" %> diff --git a/backstage/backstage.gemspec b/backstage/backstage.gemspec new file mode 100644 index 0000000..ef195c6 --- /dev/null +++ b/backstage/backstage.gemspec @@ -0,0 +1,27 @@ +require_relative "lib/backstage/version" + +Gem::Specification.new do |spec| + spec.name = "backstage" + spec.version = Backstage::VERSION + spec.authors = ["Miguel Michelson Martinez"] + spec.email = ["miguelmichelson@gmail.com"] + spec.homepage = "https://github.com/rauversion/backstage" + spec.summary = "A flexible and powerful admin panel for Rails applications" + spec.description = "Backstage Rails provides a customizable admin interface for Rails applications, with advanced filtering and management capabilities." + spec.license = "MIT" + + + # Prevent pushing this gem to RubyGems.org. To allow pushes either set the "allowed_push_host" + # to allow pushing to a single host or delete this section to allow pushing to any host. + # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'" + + #spec.metadata["homepage_uri"] = spec.homepage + #spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here." + #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here." + + spec.files = Dir.chdir(File.expand_path(__dir__)) do + Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"] + end + + spec.add_dependency "rails", ">= 7.1.3.2" +end diff --git a/backstage-rails/bin/rails b/backstage/bin/rails similarity index 86% rename from backstage-rails/bin/rails rename to backstage/bin/rails index 01ce760..02497b3 100755 --- a/backstage-rails/bin/rails +++ b/backstage/bin/rails @@ -3,7 +3,7 @@ # installed from the root of your application. ENGINE_ROOT = File.expand_path("..", __dir__) -ENGINE_PATH = File.expand_path("../lib/backstage/rails/engine", __dir__) +ENGINE_PATH = File.expand_path("../lib/backstage/engine", __dir__) APP_PATH = File.expand_path("../test/dummy/config/application", __dir__) # Set up gems listed in the Gemfile. diff --git a/backstage/config/routes.rb b/backstage/config/routes.rb new file mode 100644 index 0000000..d3df868 --- /dev/null +++ b/backstage/config/routes.rb @@ -0,0 +1,2 @@ +Backstage::Engine.routes.draw do +end diff --git a/backstage/lib/backstage.rb b/backstage/lib/backstage.rb new file mode 100644 index 0000000..4d5f367 --- /dev/null +++ b/backstage/lib/backstage.rb @@ -0,0 +1,7 @@ +require "backstage/version" +require "backstage/engine" +require "backstage/form_builder" + +module Backstage + # Your code goes here... +end diff --git a/backstage-rails/lib/backstage/rails/config.rb b/backstage/lib/backstage/config.rb similarity index 98% rename from backstage-rails/lib/backstage/rails/config.rb rename to backstage/lib/backstage/config.rb index c076b30..b446935 100644 --- a/backstage-rails/lib/backstage/rails/config.rb +++ b/backstage/lib/backstage/config.rb @@ -1,4 +1,4 @@ -module Backstage::Rails +module Backstage class Config class << self def configure(&block) diff --git a/backstage/lib/backstage/engine.rb b/backstage/lib/backstage/engine.rb new file mode 100644 index 0000000..de8dd9b --- /dev/null +++ b/backstage/lib/backstage/engine.rb @@ -0,0 +1,5 @@ +module Backstage + class Engine < ::Rails::Engine + isolate_namespace Backstage + end +end diff --git a/backstage-rails/lib/backstage/rails/form_builder.rb b/backstage/lib/backstage/form_builder.rb similarity index 88% rename from backstage-rails/lib/backstage/rails/form_builder.rb rename to backstage/lib/backstage/form_builder.rb index b8c614b..5f87420 100644 --- a/backstage-rails/lib/backstage/rails/form_builder.rb +++ b/backstage/lib/backstage/form_builder.rb @@ -1,4 +1,4 @@ -module Backstage::Rails +module Backstage class FormBuilder < ActionView::Helpers::FormBuilder def generate_fields(resource) fields = resource.form_fields.map do |field| @@ -18,6 +18,11 @@ def string_field(name, options) text_field(name, class: input_classes) end + def boolean_field(name, options) + label(name, options[:label] || name.to_s.titleize) + + check_box_field(name, class: input_classes) + end + def text_area_field(name, options) label(name, options[:label] || name.to_s.titleize) + text_area(name, class: input_classes) diff --git a/backstage/lib/backstage/version.rb b/backstage/lib/backstage/version.rb new file mode 100644 index 0000000..7f028af --- /dev/null +++ b/backstage/lib/backstage/version.rb @@ -0,0 +1,3 @@ +module Backstage + VERSION = "0.1.0" +end diff --git a/backstage-rails/lib/tasks/backstage/rails_tasks.rake b/backstage/lib/tasks/backstage_tasks.rake similarity index 70% rename from backstage-rails/lib/tasks/backstage/rails_tasks.rake rename to backstage/lib/tasks/backstage_tasks.rake index cc7ec87..9e3b508 100644 --- a/backstage-rails/lib/tasks/backstage/rails_tasks.rake +++ b/backstage/lib/tasks/backstage_tasks.rake @@ -1,4 +1,4 @@ # desc "Explaining what the task does" -# task :backstage_rails do +# task :backstage do # # Task goes here # end diff --git a/backstage/test/backstager_test.rb b/backstage/test/backstager_test.rb new file mode 100644 index 0000000..a94f3c6 --- /dev/null +++ b/backstage/test/backstager_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class BackstageTest < ActiveSupport::TestCase + test "it has a version number" do + assert Backstage::VERSION + end +end diff --git a/backstage-rails/test/controllers/.keep b/backstage/test/controllers/.keep similarity index 100% rename from backstage-rails/test/controllers/.keep rename to backstage/test/controllers/.keep diff --git a/backstage-rails/test/dummy/Rakefile b/backstage/test/dummy/Rakefile similarity index 100% rename from backstage-rails/test/dummy/Rakefile rename to backstage/test/dummy/Rakefile diff --git a/backstage-rails/test/dummy/app/assets/config/manifest.js b/backstage/test/dummy/app/assets/config/manifest.js similarity index 63% rename from backstage-rails/test/dummy/app/assets/config/manifest.js rename to backstage/test/dummy/app/assets/config/manifest.js index be2ad6f..152151f 100644 --- a/backstage-rails/test/dummy/app/assets/config/manifest.js +++ b/backstage/test/dummy/app/assets/config/manifest.js @@ -1,3 +1,3 @@ //= link_tree ../images //= link_directory ../stylesheets .css -//= link backstage_rails_manifest.js +//= link backstage_manifest.js diff --git a/backstage-rails/test/dummy/app/assets/images/.keep b/backstage/test/dummy/app/assets/images/.keep similarity index 100% rename from backstage-rails/test/dummy/app/assets/images/.keep rename to backstage/test/dummy/app/assets/images/.keep diff --git a/backstage-rails/test/dummy/app/assets/stylesheets/application.css b/backstage/test/dummy/app/assets/stylesheets/application.css similarity index 100% rename from backstage-rails/test/dummy/app/assets/stylesheets/application.css rename to backstage/test/dummy/app/assets/stylesheets/application.css diff --git a/backstage-rails/test/dummy/app/channels/application_cable/channel.rb b/backstage/test/dummy/app/channels/application_cable/channel.rb similarity index 100% rename from backstage-rails/test/dummy/app/channels/application_cable/channel.rb rename to backstage/test/dummy/app/channels/application_cable/channel.rb diff --git a/backstage-rails/test/dummy/app/channels/application_cable/connection.rb b/backstage/test/dummy/app/channels/application_cable/connection.rb similarity index 100% rename from backstage-rails/test/dummy/app/channels/application_cable/connection.rb rename to backstage/test/dummy/app/channels/application_cable/connection.rb diff --git a/backstage-rails/test/dummy/app/controllers/application_controller.rb b/backstage/test/dummy/app/controllers/application_controller.rb similarity index 100% rename from backstage-rails/test/dummy/app/controllers/application_controller.rb rename to backstage/test/dummy/app/controllers/application_controller.rb diff --git a/backstage-rails/test/dummy/app/controllers/concerns/.keep b/backstage/test/dummy/app/controllers/concerns/.keep similarity index 100% rename from backstage-rails/test/dummy/app/controllers/concerns/.keep rename to backstage/test/dummy/app/controllers/concerns/.keep diff --git a/backstage-rails/test/dummy/app/helpers/application_helper.rb b/backstage/test/dummy/app/helpers/application_helper.rb similarity index 100% rename from backstage-rails/test/dummy/app/helpers/application_helper.rb rename to backstage/test/dummy/app/helpers/application_helper.rb diff --git a/backstage-rails/test/dummy/app/jobs/application_job.rb b/backstage/test/dummy/app/jobs/application_job.rb similarity index 100% rename from backstage-rails/test/dummy/app/jobs/application_job.rb rename to backstage/test/dummy/app/jobs/application_job.rb diff --git a/backstage-rails/test/dummy/app/mailers/application_mailer.rb b/backstage/test/dummy/app/mailers/application_mailer.rb similarity index 100% rename from backstage-rails/test/dummy/app/mailers/application_mailer.rb rename to backstage/test/dummy/app/mailers/application_mailer.rb diff --git a/backstage-rails/test/dummy/app/models/application_record.rb b/backstage/test/dummy/app/models/application_record.rb similarity index 100% rename from backstage-rails/test/dummy/app/models/application_record.rb rename to backstage/test/dummy/app/models/application_record.rb diff --git a/backstage-rails/test/dummy/app/models/concerns/.keep b/backstage/test/dummy/app/models/concerns/.keep similarity index 100% rename from backstage-rails/test/dummy/app/models/concerns/.keep rename to backstage/test/dummy/app/models/concerns/.keep diff --git a/backstage-rails/test/dummy/app/views/layouts/application.html.erb b/backstage/test/dummy/app/views/layouts/application.html.erb similarity index 100% rename from backstage-rails/test/dummy/app/views/layouts/application.html.erb rename to backstage/test/dummy/app/views/layouts/application.html.erb diff --git a/backstage-rails/test/dummy/app/views/layouts/mailer.html.erb b/backstage/test/dummy/app/views/layouts/mailer.html.erb similarity index 100% rename from backstage-rails/test/dummy/app/views/layouts/mailer.html.erb rename to backstage/test/dummy/app/views/layouts/mailer.html.erb diff --git a/backstage-rails/test/dummy/app/views/layouts/mailer.text.erb b/backstage/test/dummy/app/views/layouts/mailer.text.erb similarity index 100% rename from backstage-rails/test/dummy/app/views/layouts/mailer.text.erb rename to backstage/test/dummy/app/views/layouts/mailer.text.erb diff --git a/backstage-rails/test/dummy/bin/rails b/backstage/test/dummy/bin/rails similarity index 100% rename from backstage-rails/test/dummy/bin/rails rename to backstage/test/dummy/bin/rails diff --git a/backstage-rails/test/dummy/bin/rake b/backstage/test/dummy/bin/rake similarity index 100% rename from backstage-rails/test/dummy/bin/rake rename to backstage/test/dummy/bin/rake diff --git a/backstage-rails/test/dummy/bin/setup b/backstage/test/dummy/bin/setup similarity index 100% rename from backstage-rails/test/dummy/bin/setup rename to backstage/test/dummy/bin/setup diff --git a/backstage-rails/test/dummy/config.ru b/backstage/test/dummy/config.ru similarity index 100% rename from backstage-rails/test/dummy/config.ru rename to backstage/test/dummy/config.ru diff --git a/backstage-rails/test/dummy/config/application.rb b/backstage/test/dummy/config/application.rb similarity index 100% rename from backstage-rails/test/dummy/config/application.rb rename to backstage/test/dummy/config/application.rb diff --git a/backstage-rails/test/dummy/config/boot.rb b/backstage/test/dummy/config/boot.rb similarity index 100% rename from backstage-rails/test/dummy/config/boot.rb rename to backstage/test/dummy/config/boot.rb diff --git a/backstage-rails/test/dummy/config/cable.yml b/backstage/test/dummy/config/cable.yml similarity index 100% rename from backstage-rails/test/dummy/config/cable.yml rename to backstage/test/dummy/config/cable.yml diff --git a/backstage-rails/test/dummy/config/database.yml b/backstage/test/dummy/config/database.yml similarity index 100% rename from backstage-rails/test/dummy/config/database.yml rename to backstage/test/dummy/config/database.yml diff --git a/backstage-rails/test/dummy/config/environment.rb b/backstage/test/dummy/config/environment.rb similarity index 100% rename from backstage-rails/test/dummy/config/environment.rb rename to backstage/test/dummy/config/environment.rb diff --git a/backstage-rails/test/dummy/config/environments/development.rb b/backstage/test/dummy/config/environments/development.rb similarity index 100% rename from backstage-rails/test/dummy/config/environments/development.rb rename to backstage/test/dummy/config/environments/development.rb diff --git a/backstage-rails/test/dummy/config/environments/production.rb b/backstage/test/dummy/config/environments/production.rb similarity index 100% rename from backstage-rails/test/dummy/config/environments/production.rb rename to backstage/test/dummy/config/environments/production.rb diff --git a/backstage-rails/test/dummy/config/environments/test.rb b/backstage/test/dummy/config/environments/test.rb similarity index 100% rename from backstage-rails/test/dummy/config/environments/test.rb rename to backstage/test/dummy/config/environments/test.rb diff --git a/backstage-rails/test/dummy/config/initializers/assets.rb b/backstage/test/dummy/config/initializers/assets.rb similarity index 100% rename from backstage-rails/test/dummy/config/initializers/assets.rb rename to backstage/test/dummy/config/initializers/assets.rb diff --git a/backstage-rails/test/dummy/config/initializers/content_security_policy.rb b/backstage/test/dummy/config/initializers/content_security_policy.rb similarity index 100% rename from backstage-rails/test/dummy/config/initializers/content_security_policy.rb rename to backstage/test/dummy/config/initializers/content_security_policy.rb diff --git a/backstage-rails/test/dummy/config/initializers/filter_parameter_logging.rb b/backstage/test/dummy/config/initializers/filter_parameter_logging.rb similarity index 100% rename from backstage-rails/test/dummy/config/initializers/filter_parameter_logging.rb rename to backstage/test/dummy/config/initializers/filter_parameter_logging.rb diff --git a/backstage-rails/test/dummy/config/initializers/inflections.rb b/backstage/test/dummy/config/initializers/inflections.rb similarity index 100% rename from backstage-rails/test/dummy/config/initializers/inflections.rb rename to backstage/test/dummy/config/initializers/inflections.rb diff --git a/backstage-rails/test/dummy/config/initializers/permissions_policy.rb b/backstage/test/dummy/config/initializers/permissions_policy.rb similarity index 100% rename from backstage-rails/test/dummy/config/initializers/permissions_policy.rb rename to backstage/test/dummy/config/initializers/permissions_policy.rb diff --git a/backstage-rails/test/dummy/config/locales/en.yml b/backstage/test/dummy/config/locales/en.yml similarity index 100% rename from backstage-rails/test/dummy/config/locales/en.yml rename to backstage/test/dummy/config/locales/en.yml diff --git a/backstage-rails/test/dummy/config/puma.rb b/backstage/test/dummy/config/puma.rb similarity index 100% rename from backstage-rails/test/dummy/config/puma.rb rename to backstage/test/dummy/config/puma.rb diff --git a/backstage/test/dummy/config/routes.rb b/backstage/test/dummy/config/routes.rb new file mode 100644 index 0000000..a947a0e --- /dev/null +++ b/backstage/test/dummy/config/routes.rb @@ -0,0 +1,3 @@ +Rails.application.routes.draw do + mount Backstage::Engine => "/backstage" +end diff --git a/backstage-rails/test/dummy/config/storage.yml b/backstage/test/dummy/config/storage.yml similarity index 100% rename from backstage-rails/test/dummy/config/storage.yml rename to backstage/test/dummy/config/storage.yml diff --git a/backstage-rails/test/dummy/lib/assets/.keep b/backstage/test/dummy/lib/assets/.keep similarity index 100% rename from backstage-rails/test/dummy/lib/assets/.keep rename to backstage/test/dummy/lib/assets/.keep diff --git a/backstage-rails/test/dummy/log/.keep b/backstage/test/dummy/log/.keep similarity index 100% rename from backstage-rails/test/dummy/log/.keep rename to backstage/test/dummy/log/.keep diff --git a/backstage-rails/test/dummy/public/404.html b/backstage/test/dummy/public/404.html similarity index 100% rename from backstage-rails/test/dummy/public/404.html rename to backstage/test/dummy/public/404.html diff --git a/backstage-rails/test/dummy/public/422.html b/backstage/test/dummy/public/422.html similarity index 100% rename from backstage-rails/test/dummy/public/422.html rename to backstage/test/dummy/public/422.html diff --git a/backstage-rails/test/dummy/public/500.html b/backstage/test/dummy/public/500.html similarity index 100% rename from backstage-rails/test/dummy/public/500.html rename to backstage/test/dummy/public/500.html diff --git a/backstage-rails/test/dummy/public/apple-touch-icon-precomposed.png b/backstage/test/dummy/public/apple-touch-icon-precomposed.png similarity index 100% rename from backstage-rails/test/dummy/public/apple-touch-icon-precomposed.png rename to backstage/test/dummy/public/apple-touch-icon-precomposed.png diff --git a/backstage-rails/test/dummy/public/apple-touch-icon.png b/backstage/test/dummy/public/apple-touch-icon.png similarity index 100% rename from backstage-rails/test/dummy/public/apple-touch-icon.png rename to backstage/test/dummy/public/apple-touch-icon.png diff --git a/backstage-rails/test/dummy/public/favicon.ico b/backstage/test/dummy/public/favicon.ico similarity index 100% rename from backstage-rails/test/dummy/public/favicon.ico rename to backstage/test/dummy/public/favicon.ico diff --git a/backstage-rails/test/fixtures/files/.keep b/backstage/test/fixtures/files/.keep similarity index 100% rename from backstage-rails/test/fixtures/files/.keep rename to backstage/test/fixtures/files/.keep diff --git a/backstage-rails/test/helpers/.keep b/backstage/test/helpers/.keep similarity index 100% rename from backstage-rails/test/helpers/.keep rename to backstage/test/helpers/.keep diff --git a/backstage-rails/test/integration/.keep b/backstage/test/integration/.keep similarity index 100% rename from backstage-rails/test/integration/.keep rename to backstage/test/integration/.keep diff --git a/backstage-rails/test/integration/navigation_test.rb b/backstage/test/integration/navigation_test.rb similarity index 100% rename from backstage-rails/test/integration/navigation_test.rb rename to backstage/test/integration/navigation_test.rb diff --git a/backstage-rails/test/mailers/.keep b/backstage/test/mailers/.keep similarity index 100% rename from backstage-rails/test/mailers/.keep rename to backstage/test/mailers/.keep diff --git a/backstage-rails/test/models/.keep b/backstage/test/models/.keep similarity index 100% rename from backstage-rails/test/models/.keep rename to backstage/test/models/.keep diff --git a/backstage-rails/test/test_helper.rb b/backstage/test/test_helper.rb similarity index 100% rename from backstage-rails/test/test_helper.rb rename to backstage/test/test_helper.rb