smpallen99/ex_admin

Complete Refactor of ExAdmin

Open

#367 建立於 2017年5月13日

在 GitHub 查看
 (21 留言) (7 反應) (1 負責人)Elixir (1,203 star) (271 fork)batch import
enhancementhelp wanted

描述

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

貢獻者指南

Complete Refactor of ExAdmin · smpallen99/ex_admin#367 | Good First Issue