From f4c328257989ef6cd232cea7662f325df5a520bf Mon Sep 17 00:00:00 2001 From: Marc Ducobu Date: Tue, 6 Mar 2018 10:46:48 +0100 Subject: [PATCH 1/7] Adding class diagram for docStore --- .../bundles/docStore/doc_store_classes.png | Bin 0 -> 30498 bytes .../bundles/docStore/doc_store_classes.puml | 46 ++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 source/_static/bundles/docStore/doc_store_classes.png create mode 100644 source/_static/bundles/docStore/doc_store_classes.puml diff --git a/source/_static/bundles/docStore/doc_store_classes.png b/source/_static/bundles/docStore/doc_store_classes.png new file mode 100644 index 0000000000000000000000000000000000000000..9c038b928161d73ab748d0244a9d941a5a314ebf GIT binary patch literal 30498 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 Date: Tue, 6 Mar 2018 18:28:45 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Maj=20du=20sch=C3=A9ma=20des=20classes=20de?= =?UTF-8?q?=20docStoreBundle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_static/bundles/docStore/doc_store_classes.puml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_static/bundles/docStore/doc_store_classes.puml b/source/_static/bundles/docStore/doc_store_classes.puml index 426f76ac3..431d268c0 100644 --- a/source/_static/bundles/docStore/doc_store_classes.puml +++ b/source/_static/bundles/docStore/doc_store_classes.puml @@ -12,7 +12,7 @@ package "PersonBundle" { } package "DocStoreBundle" { - Document "many" --- "many" DocumentCategory + Document "many" --- "1" DocumentCategory } Document <|-- "herite" PersonDocument @@ -24,7 +24,7 @@ class "Document" { - ArrayCollection_DocumentCategory categories - varchar_150 content #link to openstack - Center center - - Scope scope + - Cercle cercle - User user - DateTime date # Creation date } From 2d760505891528aad095863eee6944cdb4c9472a Mon Sep 17 00:00:00 2001 From: nobohan Date: Wed, 18 Apr 2018 12:34:59 +0200 Subject: [PATCH 3/7] add some documentation for managing assets using webpack --- source/development/assets.rst | 104 ++++++++++++++++++++++++++++++++++ source/development/index.rst | 3 +- 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 source/development/assets.rst diff --git a/source/development/assets.rst b/source/development/assets.rst new file mode 100644 index 000000000..3584ef3f6 --- /dev/null +++ b/source/development/assets.rst @@ -0,0 +1,104 @@ + +.. Copyright (C) 2014 Champs Libres Cooperative SCRLFS + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +.. _forms: + +Assets +####### + +The Chill assets (js, css, images, …) can be managed by `Webpack Encore`_, which is a thin wrapper for `Webpack`_ in Symfony applications. + +Installation +************ + +Webpack Encore needs to be run in a Node.js environment, using the Yarn package manager. This Node.js environment can be set up using a node docker image. The bash script `docker-node.sh` set up a Node.js environment with an adequate configuration. Launch this container by typing: + + +.. code-block:: bash + + $ bash docker-node.sh + +In this NodeJS environment, install all the assets required by Chill with: + +.. code-block:: bash + + node@b91cab4f7cfc:/app$ yarn install + +This command will install all the packages that are listed in `package.json`. + +Any further required dependencies can be installed using the Yarn package. For instance, jQuery is installed by: + +.. code-block:: bash + + node@b91cab4f7cfc:/app$ yarn add jquery --dev + + +Usage +***** + +Organize your assets +-------------------- + +Chill assets usually lives under the `/Resources/public` folder of each Chill bundle. The Webpack configuration set up in `webpack.config.js` automatically loads the required assets from the Chill bundles that are used. + +For adding your own assets to Webpack, you must add an entry in the `webpack.config.js` file. For instance, the following entry will output a file `main.js` collecting the js code (and possibly css, image, etc.) from `./assets/main.js`. + +.. code-block:: js + + .addEntry('main', './assets/main.js') + +To gather the css files, simply connect them to your js file, using `require`. The css file is seen as a dependency of your js file. : + +.. code-block:: js + + // assets/js/main.js + require('../css/app.css'); + +For finer configuration of webpack encore, we refer to the above-linked documentation. + + +Compile the assets +------------------ + +To compile the assets, run this line in the NodeJS container: + +.. code-block:: bash + + node@b91cab4f7cfc:/app$ yarn run encore dev + +While developing, you can tell Webpack Encore to continuously watch the files you are modifying: + +.. code-block:: bash + + node@b91cab4f7cfc:/app$ yarn run encore dev --watch + + +Use the assets in the templates +-------------------------------- + +Any entry defined in the webpack.config.js file can be linked to your application using the symfony `asset` helper: + +.. code-block:: html + + + ... + + + + ... + + + + + + + + +.. _Webpack Encore: https://www.npmjs.com/package/@symfony/webpack-encore +.. _Webpack: https://webpack.js.org/ diff --git a/source/development/index.rst b/source/development/index.rst index b4b6786c2..245824c4e 100644 --- a/source/development/index.rst +++ b/source/development/index.rst @@ -31,13 +31,14 @@ As Chill rely on the `symfony `_ framework, reading the fram Testing Useful snippets manual/index.rst + Assets Layout and UI ************** .. toctree:: :maxdepth: 2 - + Layout / Template usage Classes and mixins Widgets From 0337f252cdc89a58ddb32ebd0f3a7e29d4f0ecd6 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 17 Jan 2019 14:29:45 +0100 Subject: [PATCH 4/7] correct twig condition to display pagination --- source/development/pagination.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/development/pagination.rst b/source/development/pagination.rst index cc223a5ef..44c06b308 100644 --- a/source/development/pagination.rst +++ b/source/development/pagination.rst @@ -38,7 +38,7 @@ Then, render the pagination using the dedicated twig function. - {% if items|length > paginator.getTotalItems %} + {% if items|length < paginator.getTotalItems %} {{ chill_pagination(paginator) }} {% endif %} From cbb50013b3f090ef6eaa551f174561eb0c31c758 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 17 Jan 2019 15:09:49 +0100 Subject: [PATCH 5/7] correct DQL query --- source/development/pagination/example.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/development/pagination/example.php b/source/development/pagination/example.php index bfcac41eb..6ed1e68ef 100644 --- a/source/development/pagination/example.php +++ b/source/development/pagination/example.php @@ -13,7 +13,7 @@ class ItemController extends Controller { $em = $this->getDoctrine()->getManager(); // first, get the number of total item are available $total = $em - ->createQuery("COUNT (item.id) FROM ChillMyBundle:Item item") + ->createQuery("SELECT COUNT (item.id) FROM ChillMyBundle:Item item") ->getSingleScalarResult(); // get the PaginatorFactory From 57bbf63d28c85418fe84bae7d4058df09e6f6112 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Wed, 6 Feb 2019 15:57:34 +0100 Subject: [PATCH 6/7] correction --- source/development/timelines.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/development/timelines.rst b/source/development/timelines.rst index ca1d2e317..a8d0ff0be 100644 --- a/source/development/timelines.rst +++ b/source/development/timelines.rst @@ -164,12 +164,14 @@ The `fetchQuery` function ^^^^^^^^^^^^^^^^^^^^^^^^^ The fetchQuery function help to build the UNION query to gather events. This function should return an associative array MUST have the following key : + * `id` : the name of the id column * `type`: a string to indicate the type * `date`: the name of the datetime column, used to order entities by date * `FROM` (in capital) : the FROM clause. May contains JOIN instructions Those key are optional: + * `WHERE` (in capital) : the WHERE clause. Where relevant, the data must be quoted to avoid SQL injection. From 3131b55f35b7eb0f637793836101cc82f125a647 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Mon, 11 Feb 2019 15:47:06 +0100 Subject: [PATCH 7/7] corrections --- source/development/migrations.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/development/migrations.rst b/source/development/migrations.rst index 5a3252160..db4745bd3 100644 --- a/source/development/migrations.rst +++ b/source/development/migrations.rst @@ -87,7 +87,7 @@ You can generate migration file from the command line, using those commands: * `php app/console doctrine:migrations:diff` to generate a migration file by comparing your current database to your mapping information * `php app/console doctrine:migrations:generate` to generate a blank migration file. -Those files will be located into `app/DoctrineMigrations` directory. You will have to copy those file to your the directory `Resource/migrations` into your bundle directory. +Those files will be located into `app/DoctrineMigrations` directory. You will have to copy those file to your the directory `Resources/migrations` into your bundle directory. Comments and documentation -------------------------- @@ -97,4 +97,5 @@ As files are copied from your bundle to the `app/DoctrineMigrations` directory, Inside the script ----------------- -The script which move the migrations files to app directory `might be found here `_. +The script which move the migrations files to app directory `might be found here +