Skip to content

2lenet/CruditBundle

Repository files navigation

CruditBundle

Build Status Build Status

Crudit bundle for 2le.

Installation

Webpack Encore is required and you need to have a security on your application.

require 2lenet/crudit-bundle
npm install bootstrap@5 sass sass-loader @fortawesome/fontawesome-free easymde --save

Just add the following lines in your template/base.html.twig

{% extends '@LleCrudit/layout/sb_admin/layout.html.twig' %}

{% block stylesheets %}
    {{ encore_entry_link_tags('app') }}
{% endblock %}

{% block javascripts %}
    {{ parent() }}
    {{ encore_entry_script_tags('app') }}
{% endblock %}

Then, in your assets/js/app.js, you have to add this line :

import '../styles/app.scss';

And in your assets/styles/app.scss, add this :

@import '../../vendor/2lenet/crudit-bundle/assets/sb-admin/css/app.scss';

All new SCSS files must be imported before the import of Crudit SCSS.

Recipes

Principle

A crud is composed by

  • an independent controller
  • a crud config class
  • a datasource
  • a filterset if needed

The layout and menu are independent from the crud. You can integrate easily your own controller in a Crudit Layout

Feature

List view

The list view has the following features :

  • Pagination
  • Sorting
  • Item Actions ( Show, Edit and Delete as standard )
  • List Actions ( Add and Export csv and excel as standard )
  • List grouping ( to save space in repeating values )
  • Batch Action ( see Batch actions )
  • Possibility to color the lines according to a class passed to the entity ( see Coloring the rows in a list )
  • Layout customisation is possible ( doc TODO / Block principle )

The list view need a Datasource but is not bounded to Doctrine or any ORM.

Show view

The show view has the following feature :

  • Show all fields
  • Title can use the entity to title the object by its name
  • Tabs (see Tabs)
  • Sublists to show related data ( see Sublist )
  • Possibility to color the main card and the title of the show view ( the principle is the same as for the list view: Coloring the rows in a list )
  • Layout customisation is possible ( doc TODO / Block principle )

Form view

The edit view is a classical Symfony Form. You write your own FormType

Crudit provides some help to be nicely integrated :

  • Many FormType ( Datetime, Entity, etc ...)
  • Entity Dropdown based on TomSelect with autocomplete
  • DoctrineFormGuesser to automatically use Crudit FormType.
  • Markdown editor based on EasyMDE
  • Layout customisation is possible ( doc TODO / Block principle )

JS Format input helper

Some help to check the input validity ( upper, email, ip, etc... )

Dependencies

Crudit wants to minimise dependencies on not really popular bundles or components in order to be able to maintain this bundle for many years and to follow the Symfony Stack development without dependency problems.

The layout is inspired by SB Admin 2 but partially rewritten. Many of the features of SB Admin wasn't useful for this project.

The CSS framework used is Bootstrap 5.

Excel export uses phpoffice/phpspreadsheet.

Doctrine is needed for the pre-version but the project is designed to work without it. Feel free to contact us if you want to use other dataprovider.

Development

TO COMPLETE

JS / CSS Developpement

To update the JS or the CSS please run in the bundle

npm install
npm run build