talonframework / talon

An app builder framework for Phoenix
MIT License
164 stars 9 forks source link

Build Status Stories in Ready License

Talon

This is the new ExAdmin project, located under the new Github Group talonframework. This is a complete redesign of ExAdmin, renamed Talon. See the justification and goals below.

IMPORTANT NOTE

This project is still is a work in progress and it not ready for public use yet. Please use this project if you would to contribute to the new archecture.

The project is still in the exploratory stage. Much of the API has not been documented yet, nor any real test coverage added. When we finalized on the overall architecture, we will go back and complete the docs and tests.

Contributors are very welcome. We can use your help!

Project Overview

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

Ideas being kicked around

NOTE:

This is a break point release. No backwards compatibility with ExAdmin!!

See this issue for more details.

Customize the View Template for a Resource

All the view templates can be customized for any resource by creating a resource level .eex generator template using the talon.gen.template mix task.

Examples

# Create a index.html.eex generator for the User resource default theme
mix talon.gen.template index User

# Create a form.html.eex generator for the Contact resource my_custom_theme theme
mix talon.gen.template form Contact --theme=my_custom_theme

# Create all the xxx.html.eex generators for the User resource for all configured themes
mix talon.gen.template User --all --all-themes

# Create show.html.eex generator for all resources
mix talon.gen.template show --all-resources

# Create all generators for all resources and all themes
mix talon.gen.template --everything

Run mix help gen.talon.template for more options.

Once the override template generator is created, simply edit the .eex template and customize it as designed.

When you compile the project, the new slim template generated. The talon compiler first checks to see if a template is defined in the templates/admin-lte/theme/resource/generators path. It will be compiled instead of the global template if it exists.

TODO

Examples

Refer to the following projects for examples of using Talon.

Contributing

The new Talon architecture is under very active development. So, expect significant changes as we explore architectural and feature ideas.

Before starting to work on anything, please have a quick conversation with @smpallen99 on the relevant issue on talonframework/talon. If an issues does not exist, please create one.

Please review CONTRIUBITING and CODE OF CONDUCT for additional information.

License

talon is Copyright (c) 2017-2018 Bracket7, LLC and E-MetroTel

The source code is released under the MIT License.

Check LICENSE for more information.