=========================== = Fullstack Admin Roadmap = =========================== - Fix assets compilation issues (and lock assets-related gems to working versions only) ✓ Fix positionable/_collection.html.erb not working - Has many nested: has_many_nested = has_many + accepts_nested_attributes_for + :allow_destroy => true [CORE] - Fix problem that prevent link to be inserted in sequence [CMS] - Remove Jquery datepiker and UI [ADMIN] - Add shorthands scopes for ordering: desc, asc [CORE] - Better navigation interface/ More similar to wordpress ✓ fix delete not removing rows/thumbnails on success ✓ Better rendering for boolean input ✓ Nested forms for Has Many associations ✓ Sorting ✓ autogenerate from has_many ✓ skip input for associated model ✓ Fix production issues ✓ Multiple choice input with chosen ✓ Image inputs NB. Changed to file_input ✓ detect smaller image size for thumbnails ✓ inference of input type from model ✓ Ckeditor: upload assets to S3 according to app.config ✓ Localizable models ✓ Create Localized module: a model is localizable if has a :locale field (cms?) ✓ Add a scope to Localized to find models within the current locale (cms?) ✓ Create an option to specify the admin_locale ✓ add a before filter to Admin::BaseController that uses the default locale for the admin ✓ Split localized models index into tabs (either through ajax?) ✓ Let the programmer decide a default locale and a set of available locales ✓ Translations for locale codes - Form for accepts_nested_attributes_for and has_one (NOT TESTED?) - Optional tracking of author/updaters for every model (CMS?) ================== = Long Run Goals = ================== - Use only twitter bootstrap (drop jquery-ui) - switch to bootstrap datepicker - find alternative to sortable - Multiple scopes - Tags input with select2 - Conditional fields and Virtual Fields: = Group of fields that can be setted exclusively = eg = field :age = field :car, :string, :meaningful_if => :age.gt(18) # <- translated into javascript validation = virtual_field :link_method, :in => %W(page external) = belongs_to :related_page, :meaningful_when => :link_method.eq("page") = field :url, :meaningful_when => :link_method.eq("external") - Validation DSL = field :name, :string, :required = field :email, :required, :unique