mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 01:08:26 +00:00 
			
		
		
		
	Merge branch 'master' into features/activity-form
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,7 @@ | ||||
| composer.phar | ||||
| composer.lock | ||||
|  | ||||
| docs/build/ | ||||
|  | ||||
| ###> symfony/framework-bundle ### | ||||
| /.env.local | ||||
|   | ||||
| @@ -30,6 +30,10 @@ variables: | ||||
|   POSTGRES_PASSWORD: postgres | ||||
|   # fetch the chill-app using git submodules | ||||
|   GIT_SUBMODULE_STRATEGY: recursive | ||||
|   REDIS_HOST: redis | ||||
|   REDIS_PORT: 6379 | ||||
|   REDIS_URL: redis://redis:6379 | ||||
|  | ||||
|  | ||||
| # Run our tests | ||||
| test: | ||||
|   | ||||
							
								
								
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| # Chill framework | ||||
|  | ||||
| Documentation of the Chill software. | ||||
|  | ||||
| The online documentation can be found at http://docs.chill.social | ||||
|  | ||||
| See the [`docs`][1] directory for more. | ||||
|  | ||||
| [1]: docs/README.md | ||||
| @@ -42,6 +42,7 @@ | ||||
|         "symfony/validator": "4.*", | ||||
|         "sensio/framework-extra-bundle": "^5.5", | ||||
|         "symfony/yaml": "4.*", | ||||
|         "symfony/webpack-encore-bundle": "^1.11", | ||||
|         "knplabs/knp-menu": "^3.1", | ||||
|         "knplabs/knp-menu-bundle": "^3.0", | ||||
|         "symfony/templating": "4.*", | ||||
| @@ -56,7 +57,8 @@ | ||||
|         "symfony/browser-kit": "^5.2", | ||||
|         "symfony/css-selector": "^5.2", | ||||
|         "twig/markdown-extra": "^3.3", | ||||
|         "erusev/parsedown": "^1.7" | ||||
|         "erusev/parsedown": "^1.7", | ||||
|         "symfony/serializer": "^5.2" | ||||
|     }, | ||||
|     "conflict": { | ||||
|         "symfony/symfony": "*" | ||||
|   | ||||
| @@ -10,10 +10,19 @@ Compilation into HTML | ||||
|  | ||||
| To compile this documentation : | ||||
|  | ||||
| 1. Install [sphinx-doc](http://sphinx-doc.org) (eg. pip install sphinx &  pip install sphinx_rtd_theme) | ||||
| 1. Install [sphinx-doc](http://sphinx-doc.org) | ||||
|     ``` bash | ||||
|             $ virtualenv .venv # creation of the virtual env (only the first time) | ||||
|             $ source .venv/bin/activate # activate the virtual env | ||||
|     (.venv) $ pip install -r requirements.txt | ||||
|     ``` | ||||
| 2. Install submodules : $ git submodule update --init; | ||||
| 3. run `make html` from the root directory | ||||
| 4. The base file is located on build/html/index.html | ||||
|     ``` bash | ||||
|     $ cd build/html | ||||
|     $ python -m http.server 8888 # will serve the site on the port 8888 | ||||
|     ``` | ||||
|  | ||||
| Contribute | ||||
| =========== | ||||
|   | ||||
| @@ -18,11 +18,11 @@ | ||||
|        <testsuite name="MainBundle"> | ||||
|          <directory suffix="Test.php">src/Bundle/ChillMainBundle/Tests/</directory> | ||||
|        </testsuite> | ||||
|  | ||||
|        <!-- | ||||
|        <testsuite name="PersonBundle"> | ||||
|          <directory suffix="Test.php">src/Bundle/ChillPersonBundle/Tests/</directory> | ||||
|         </testsuite> | ||||
|  | ||||
|       --> | ||||
|       </testsuites> | ||||
|  | ||||
|     <listeners> | ||||
|   | ||||
| @@ -47,11 +47,11 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
| { | ||||
|     /** | ||||
|      * widget factory | ||||
|      *  | ||||
|      * | ||||
|      * @var WidgetFactoryInterface[] | ||||
|      */ | ||||
|     protected $widgetFactories = array(); | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * @param WidgetFactoryInterface $factory | ||||
|      */ | ||||
| @@ -59,7 +59,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|     { | ||||
|         $this->widgetFactories[] = $factory; | ||||
|     } | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * @return WidgetFactoryInterface[] | ||||
|      */ | ||||
| @@ -67,7 +67,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|     { | ||||
|         return $this->widgetFactories; | ||||
|     } | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * {@inheritDoc} | ||||
|      * @param array $configs | ||||
| @@ -79,31 +79,31 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|         // configuration for main bundle | ||||
|         $configuration = $this->getConfiguration($configs, $container); | ||||
|         $config = $this->processConfiguration($configuration, $configs); | ||||
|          | ||||
|  | ||||
|         $container->setParameter('chill_main.installation_name', | ||||
|             $config['installation_name']); | ||||
|  | ||||
|         $container->setParameter('chill_main.available_languages', | ||||
|             $config['available_languages']); | ||||
|          | ||||
|         $container->setParameter('chill_main.routing.resources',  | ||||
|             $config['routing']['resources']);  | ||||
|          | ||||
|  | ||||
|         $container->setParameter('chill_main.routing.resources', | ||||
|             $config['routing']['resources']); | ||||
|  | ||||
|         $container->setParameter('chill_main.pagination.item_per_page', | ||||
|             $config['pagination']['item_per_page']); | ||||
|          | ||||
|         $container->setParameter('chill_main.notifications',  | ||||
|  | ||||
|         $container->setParameter('chill_main.notifications', | ||||
|             $config['notifications']); | ||||
|          | ||||
|         $container->setParameter('chill_main.redis',  | ||||
|  | ||||
|         $container->setParameter('chill_main.redis', | ||||
|             $config['redis']); | ||||
|          | ||||
|         $container->setParameter('chill_main.phone_helper',  | ||||
|  | ||||
|         $container->setParameter('chill_main.phone_helper', | ||||
|             $config['phone_helper'] ?? []); | ||||
|          | ||||
|  | ||||
|         // add the key 'widget' without the key 'enable' | ||||
|         $container->setParameter('chill_main.widgets',  | ||||
|             isset($config['widgets']['homepage']) ?  | ||||
|         $container->setParameter('chill_main.widgets', | ||||
|             isset($config['widgets']['homepage']) ? | ||||
|                 array('homepage' => $config['widgets']['homepage']): | ||||
|                 array() | ||||
|                 ); | ||||
| @@ -131,10 +131,11 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|         $loader->load('services/templating.yaml'); | ||||
|         $loader->load('services/timeline.yaml'); | ||||
|         $loader->load('services/search.yaml'); | ||||
|          | ||||
|         $loader->load('services/serializer.yaml'); | ||||
|  | ||||
|         $this->configureCruds($container, $config['cruds'], $loader); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * @param array $config | ||||
|      * @param ContainerBuilder $container | ||||
| @@ -144,11 +145,11 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|     { | ||||
|         return new Configuration($this->widgetFactories, $container); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * @param ContainerBuilder $container | ||||
|      */ | ||||
|     public function prepend(ContainerBuilder $container)  | ||||
|     public function prepend(ContainerBuilder $container) | ||||
|     { | ||||
|         //add installation_name and date_format to globals | ||||
|         $chillMainConfig = $container->getExtensionConfig($this->getAlias()); | ||||
| @@ -163,7 +164,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|             'form_themes' => array('@ChillMain/Form/fields.html.twig') | ||||
|         ); | ||||
|         $container->prependExtensionConfig('twig', $twigConfig); | ||||
|          | ||||
|  | ||||
|         //add DQL function to ORM (default entity_manager) | ||||
|         $container->prependExtensionConfig('doctrine', array( | ||||
|            'orm' => array( | ||||
| @@ -182,7 +183,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|               ) | ||||
|            ) | ||||
|         )); | ||||
|          | ||||
|  | ||||
|         //add dbal types (default entity_manager) | ||||
|         $container->prependExtensionConfig('doctrine', array( | ||||
|            'dbal' => [ | ||||
| @@ -191,23 +192,23 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|                ] | ||||
|            ] | ||||
|         )); | ||||
|          | ||||
|  | ||||
|         //add current route to chill main | ||||
|         $container->prependExtensionConfig('chill_main', array( | ||||
|            'routing' => array( | ||||
|               'resources' => array( | ||||
|                  '@ChillMainBundle/config/routes.yaml' | ||||
|               ) | ||||
|                | ||||
|  | ||||
|            ) | ||||
|         )); | ||||
|          | ||||
|  | ||||
|         //add a channel to log app events | ||||
|         $container->prependExtensionConfig('monolog', array( | ||||
|             'channels' => array('chill') | ||||
|         )); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * @param ContainerBuilder $container | ||||
|      * @param array $config the config under 'cruds' key | ||||
| @@ -218,31 +219,31 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|         if (count($config) === 0) { | ||||
|             return; | ||||
|         } | ||||
|          | ||||
|  | ||||
|         $loader->load('services/crud.yaml'); | ||||
|          | ||||
|  | ||||
|         $container->setParameter('chill_main_crud_route_loader_config', $config); | ||||
|          | ||||
|  | ||||
|         $definition = new Definition(); | ||||
|         $definition | ||||
|             ->setClass(\Chill\MainBundle\CRUD\Routing\CRUDRoutesLoader::class) | ||||
|             ->addArgument('%chill_main_crud_route_loader_config%') | ||||
|             ; | ||||
|          | ||||
|  | ||||
|         $container->setDefinition('chill_main_crud_route_loader', $definition); | ||||
|          | ||||
|  | ||||
|         $alreadyExistingNames = []; | ||||
|          | ||||
|  | ||||
|         foreach ($config as $crudEntry) { | ||||
|             $controller = $crudEntry['controller']; | ||||
|             $controllerServiceName = 'cscrud_'.$crudEntry['name'].'_controller'; | ||||
|             $name = $crudEntry['name']; | ||||
|              | ||||
|  | ||||
|             // check for existing crud names | ||||
|             if (\in_array($name, $alreadyExistingNames)) { | ||||
|                 throw new LogicException(sprintf("the name %s is defined twice in CRUD", $name)); | ||||
|             } | ||||
|              | ||||
|  | ||||
|             if (!$container->has($controllerServiceName)) { | ||||
|                 $controllerDefinition = new Definition($controller); | ||||
|                 $controllerDefinition->addTag('controller.service_arguments'); | ||||
| @@ -250,7 +251,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, | ||||
|                 $controllerDefinition->setClass($crudEntry['controller']); | ||||
|                 $container->setDefinition($controllerServiceName, $controllerDefinition); | ||||
|             } | ||||
|              | ||||
|  | ||||
|             $container->setParameter('chill_main_crud_config_'.$name, $crudEntry); | ||||
|             $container->getDefinition($controllerServiceName) | ||||
|                 ->addMethodCall('setCrudConfig', ['%chill_main_crud_config_'.$name.'%']); | ||||
|   | ||||
| @@ -104,7 +104,7 @@ class Mailer | ||||
|      * @param \User $to | ||||
|      * @param array $subject Subject of the message [ 0 => $message (required), 1 => $parameters (optional), 3 => $domain (optional) ] | ||||
|      * @param array $bodies The bodies. An array where keys are the contentType and values the bodies | ||||
|      * @param \callable $callback a callback to customize the message (add attachment, etc.) | ||||
|      * @param callable $callback a callback to customize the message (add attachment, etc.) | ||||
|      */ | ||||
|     public function sendNotification( | ||||
|         $recipient, | ||||
|   | ||||
| @@ -21,9 +21,7 @@ global.chill = chill; | ||||
| /* | ||||
|  * load requirements in chill entrypoint | ||||
|  */ | ||||
|  | ||||
| require('./sass/scratch.scss'); | ||||
|  | ||||
| require('./scss/chillmain.scss'); | ||||
| require('./css/chillmain.css'); | ||||
| require('./css/pikaday.css'); | ||||
|  | ||||
| @@ -37,10 +35,11 @@ require('./modules/download-report/index.js'); | ||||
| require('./modules/select_interactive_loading/index.js'); | ||||
| require('./modules/export-list/export-list.scss'); | ||||
| require('./modules/entity/index.js'); | ||||
| //require('./modules/tabs/index.js'); | ||||
|  | ||||
| /* | ||||
|  * load img | ||||
|  */ | ||||
| require('./img/favicon.ico'); | ||||
| require('./img/logo-chill-sans-slogan_white.png'); | ||||
| require('./img/logo-chill-outil-accompagnement_white.png'); | ||||
| require('./img/logo-chill-outil-accompagnement_white.png'); | ||||
|   | ||||
| @@ -0,0 +1,4 @@ | ||||
| /* | ||||
|  *  These custom styles will override bootstrap enabled stylesheets | ||||
|  */ | ||||
|  | ||||
							
								
								
									
										47
									
								
								src/Bundle/ChillMainBundle/Resources/public/modules/bootstrap/bootstrap.scss
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/Bundle/ChillMainBundle/Resources/public/modules/bootstrap/bootstrap.scss
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| /* | ||||
|  *  Enable / disable bootstrap assets | ||||
|  */ | ||||
|  | ||||
| @import "bootstrap/scss/functions"; | ||||
|  | ||||
| /* replace variables */ | ||||
| // @import "bootstrap/scss/variables"; | ||||
| @import "custom/_variables"; | ||||
|  | ||||
| @import "bootstrap/scss/mixins"; | ||||
| // @import "bootstrap/scss/root"; | ||||
| // @import "bootstrap/scss/reboot"; | ||||
| // @import "bootstrap/scss/type"; | ||||
| // @import "bootstrap/scss/images"; | ||||
| // @import "bootstrap/scss/code"; | ||||
| // @import "bootstrap/scss/grid"; | ||||
| // @import "bootstrap/scss/tables"; | ||||
| // @import "bootstrap/scss/forms"; | ||||
| // @import "bootstrap/scss/buttons"; | ||||
| // @import "bootstrap/scss/transitions"; | ||||
| // @import "bootstrap/scss/dropdown"; | ||||
| // @import "bootstrap/scss/button-group"; | ||||
| // @import "bootstrap/scss/input-group"; | ||||
| // @import "bootstrap/scss/custom-forms"; | ||||
| // @import "bootstrap/scss/nav"; | ||||
| // @import "bootstrap/scss/navbar"; | ||||
| // @import "bootstrap/scss/card"; | ||||
| // @import "bootstrap/scss/breadcrumb"; | ||||
| // @import "bootstrap/scss/pagination"; | ||||
| // @import "bootstrap/scss/badge"; | ||||
| // @import "bootstrap/scss/jumbotron"; | ||||
| // @import "bootstrap/scss/alert"; | ||||
| // @import "bootstrap/scss/progress"; | ||||
| // @import "bootstrap/scss/media"; | ||||
| // @import "bootstrap/scss/list-group"; | ||||
| // @import "bootstrap/scss/close"; | ||||
| // @import "bootstrap/scss/toasts"; | ||||
| @import "bootstrap/scss/modal"; | ||||
| // @import "bootstrap/scss/tooltip"; | ||||
| // @import "bootstrap/scss/popover"; | ||||
| // @import "bootstrap/scss/carousel"; | ||||
| // @import "bootstrap/scss/spinners"; | ||||
| // @import "bootstrap/scss/utilities"; | ||||
| // @import "bootstrap/scss/print"; | ||||
|  | ||||
| @import "custom"; | ||||
| @@ -1,42 +0,0 @@ | ||||
| /* | ||||
| *   when bootstrap.css comes after chill.css | ||||
| *   we have to disable conflict classes | ||||
| */ | ||||
|  | ||||
| @import "bootstrap/scss/functions"; | ||||
| @import "bootstrap/scss/variables"; | ||||
| @import "bootstrap/scss/mixins"; | ||||
| @import "bootstrap/scss/root"; | ||||
| //@import "bootstrap/scss/reboot";  // h1, h2, h3, ... | ||||
| //@import "bootstrap/scss/type";    // h1, h2, h3, ... | ||||
| @import "bootstrap/scss/images"; | ||||
| @import "bootstrap/scss/code"; | ||||
| //@import "bootstrap/scss/grid";    // container | ||||
| @import "bootstrap/scss/tables"; | ||||
| @import "bootstrap/scss/forms"; | ||||
| @import "bootstrap/scss/buttons"; | ||||
| @import "bootstrap/scss/transitions"; | ||||
| @import "bootstrap/scss/dropdown"; | ||||
| @import "bootstrap/scss/button-group"; | ||||
| @import "bootstrap/scss/input-group"; | ||||
| @import "bootstrap/scss/custom-forms"; | ||||
| @import "bootstrap/scss/nav"; | ||||
| @import "bootstrap/scss/navbar"; | ||||
| @import "bootstrap/scss/card"; | ||||
| @import "bootstrap/scss/breadcrumb"; | ||||
| @import "bootstrap/scss/pagination"; | ||||
| @import "bootstrap/scss/badge"; | ||||
| @import "bootstrap/scss/jumbotron"; | ||||
| @import "bootstrap/scss/alert"; | ||||
| @import "bootstrap/scss/progress"; | ||||
| @import "bootstrap/scss/media"; | ||||
| @import "bootstrap/scss/list-group"; | ||||
| @import "bootstrap/scss/close"; | ||||
| @import "bootstrap/scss/toasts"; | ||||
| @import "bootstrap/scss/modal"; | ||||
| @import "bootstrap/scss/tooltip"; | ||||
| @import "bootstrap/scss/popover"; | ||||
| @import "bootstrap/scss/carousel"; | ||||
| @import "bootstrap/scss/spinners"; | ||||
| @import "bootstrap/scss/utilities"; | ||||
| @import "bootstrap/scss/print"; | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,9 +1,9 @@ | ||||
| // Compile all bootstrap assets from nodes-modules | ||||
| //require('bootstrap/scss/bootstrap.scss') | ||||
|  | ||||
| // Compile custom styles to adapt bootstrap in chill context | ||||
| require('./custom.scss') | ||||
| // Or compile bootstrap only enabled assets | ||||
| require('./bootstrap.scss'); | ||||
|  | ||||
| // You can specify which plugins you need | ||||
| //import { Tooltip, Toast, Popover } from 'bootstrap'; | ||||
| //import Alert from 'bootstrap/js/dist/alert'; | ||||
| import Modal from 'bootstrap/js/dist/modal'; | ||||
|   | ||||
| @@ -1,3 +1,9 @@ | ||||
| /* | ||||
|  * NOTE 2021.04 | ||||
|  * scss/chill.scss is the main sass file for the new chill.2 | ||||
|  * scratch will be replaced by bootstrap, please avoid to edit in modules/scratch/_custom.scss | ||||
|  */ | ||||
| 
 | ||||
| // YOUR CUSTOM SCSS | ||||
| @import 'custom/config/colors'; | ||||
| @import 'custom/config/variables'; | ||||
| @@ -156,7 +162,6 @@ dl.chill_view_data { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| blockquote.chill-user-quote, | ||||
| div.chill-user-quote { | ||||
|     border-left: 10px solid $chill-yellow; | ||||
| @@ -164,12 +169,12 @@ div.chill-user-quote { | ||||
|     padding: 0.5em 10px; | ||||
|     quotes: "\201C""\201D""\2018""\2019"; | ||||
|     background-color: $chill-llight-gray; | ||||
|      | ||||
| 
 | ||||
|     blockquote { | ||||
|         margin: 1.5em 10px; | ||||
|         padding: 0.5em 10px; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     blockquote:before { | ||||
|         color: #ccc; | ||||
|         content: open-quote; | ||||
| @@ -182,5 +187,4 @@ div.chill-user-quote { | ||||
| 
 | ||||
| .chill-no-data-statement { | ||||
|     font-style: italic; | ||||
| 
 | ||||
| } | ||||
| @@ -1,42 +1,42 @@ | ||||
| @charset "UTF-8"; | ||||
| 
 | ||||
| /// Outputs the spec and prefixed versions of the `::selection` pseudo-element. | ||||
| /// | ||||
| /// @param {Bool} $current-selector [false] | ||||
| ///   If set to `true`, it takes the current element into consideration. | ||||
| /// | ||||
| /// @example scss - Usage | ||||
| ///   .element { | ||||
| ///     @include selection(true) { | ||||
| ///       background-color: #ffbb52; | ||||
| ///     } | ||||
| ///   } | ||||
| /// | ||||
| /// @example css - CSS Output | ||||
| ///   .element::-moz-selection { | ||||
| ///     background-color: #ffbb52; | ||||
| ///   } | ||||
| /// | ||||
| ///   .element::selection { | ||||
| ///     background-color: #ffbb52; | ||||
| ///   } | ||||
| 
 | ||||
| @mixin selection($current-selector: false) { | ||||
|   @if $current-selector { | ||||
|     &::-moz-selection { | ||||
|       @content; | ||||
|     } | ||||
| 
 | ||||
|     &::selection { | ||||
|       @content; | ||||
|     } | ||||
|   } @else { | ||||
|     ::-moz-selection { | ||||
|       @content; | ||||
|     } | ||||
| 
 | ||||
|     ::selection { | ||||
|       @content; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @charset "UTF-8"; | ||||
| 
 | ||||
| /// Outputs the spec and prefixed versions of the `::selection` pseudo-element. | ||||
| /// | ||||
| /// @param {Bool} $current-selector [false] | ||||
| ///   If set to `true`, it takes the current element into consideration. | ||||
| /// | ||||
| /// @example scss - Usage | ||||
| ///   .element { | ||||
| ///     @include selection(true) { | ||||
| ///       background-color: #ffbb52; | ||||
| ///     } | ||||
| ///   } | ||||
| /// | ||||
| /// @example css - CSS Output | ||||
| ///   .element::-moz-selection { | ||||
| ///     background-color: #ffbb52; | ||||
| ///   } | ||||
| /// | ||||
| ///   .element::selection { | ||||
| ///     background-color: #ffbb52; | ||||
| ///   } | ||||
| 
 | ||||
| @mixin selection($current-selector: false) { | ||||
|   @if $current-selector { | ||||
|     &::-moz-selection { | ||||
|       @content; | ||||
|     } | ||||
| 
 | ||||
|     &::selection { | ||||
|       @content; | ||||
|     } | ||||
|   } @else { | ||||
|     ::-moz-selection { | ||||
|       @content; | ||||
|     } | ||||
| 
 | ||||
|     ::selection { | ||||
|       @content; | ||||
|     } | ||||
|   } | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user