smpallen99/ex_admin

Complete Refactor of ExAdmin

Open

#367 aperta il 13 mag 2017

Vedi su GitHub
 (21 commenti) (7 reazioni) (1 assegnatario)Elixir (271 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (1203 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

We've had issue #166 open for a long time. @dsnider and I have been working on some ideas that we think will make ExAdmin much more extensible, and fit better with the "Phoenix and Elixir" way. I have started working on prototyping of a complete overhaul of the ExAdmin architecture.

Justification

ExAdmin was developed for my first Phoenix Application. The approach I took, although functional, does not align very well with the Phoenix way. Furthermore, I feel that we can do better without the heavy use of DSLs. Finally, I've never been happy with the theme support implementation.

Design Goals

  • break the package apart into a series of composable components
  • make it simple to customize every part of the package
  • remove the dependency on Ecto Schema. .i.e json objects, etc.
  • easy to drop in new themes
  • easy to update with extensive customization
  • still works out of the box, without the need to configure anything
  • intelligent defaults
  • optimize the architecture to support large data (no association drop-downs with thousands of entries)
  • support multiple themes/layouts in a single application (front facing layout and a back office "admin" interface)

Ideas being kicked around

  • Use JS data tables for the index page
    • live search/filtering
  • Revamped sidebar filter
    • live updates
    • more inline with product filters on an eCommerce site
  • Resource modules based on behaviours instead of config
  • Perhaps more of a plug architecture (not sure what that looks like yet
  • Remove the html DSL and replace it with Slim templates
    • Could use eex, but I much prefer indentation based templates
    • Could use both if we get pushback on Slim
  • Customization with generators that create templates of templates
    • prototyping this now
    • avoid the sensitivity of direct generators when updating ExAdmin
    • might making theming much easier
  • componentize each concern (views/templates, controllers, schema)
  • buffer the dependency on Ecto to support other approaches to describe and reflect the schema of resources

This will be a break point release. No backwards compatibility.

I welcome your ideas and feedback. Steve

Guida contributor