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 @@ -
- <% # sort_link(@q, column[:name], column[:options][:label] || column[:name].to_s.titleize, { class: "text-gray-600 hover:text-gray-900" }) %> - | - <% end %> -- Actions - | -
---|---|
- <% if column[:block] %> - <%= column[:block].call(item, self) %> - <% else %> - <%= item.send(column[:name]) %> - <% end %> - | - <% end %> -- <%= render 'admin/shared/actions', resource: resource, item: item %> - | -