fix folder name

This commit is contained in:
2021-03-18 13:37:13 +01:00
parent a2f6773f5a
commit eaa0ad925f
1578 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
<?php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
return array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Chill\CustomFieldsBundle\ChillCustomFieldsBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new \Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new \Chill\MainBundle\ChillMainBundle,
new \Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
new Chill\PersonBundle\ChillPersonBundle(),
#add here all the required bundle (some bundle are not required)
);
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
/**
* @return string
*/
public function getCacheDir()
{
return sys_get_temp_dir().'/CustomFieldsBundle/cache';
}
/**
* @return string
*/
public function getLogDir()
{
return $this->getRootDir().'/../logs';
}
}

View File

@@ -0,0 +1,2 @@
*
!.gitignore

View File

@@ -0,0 +1,7 @@
{% if inputKeys is defined %}
{% for key in inputKeys %}
{{ form_row(form[key]) }}
{% endfor %}
{% else %}
{{ form(form) }}
{% endif %}

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
{% block javascripts_head %}<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
</html>

View File

@@ -0,0 +1,11 @@
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;
/** @var ClassLoader $loader */
$loader = require __DIR__.'/../../../../../vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;

View File

@@ -0,0 +1,76 @@
imports:
- { resource: parameters.yml }
framework:
secret: Not very secret
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
session: ~
default_locale: fr
translator: { fallback: fr }
profiler: { only_exceptions: false }
templating:
engines: ['twig']
doctrine:
dbal:
driver: pdo_pgsql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
chill_main:
available_languages: [ fr, nl, en ]
security:
providers:
chain_provider:
chain :
providers: [in_memory, users]
in_memory:
memory:
users:
admin: { password: olala, roles: 'ROLE_ADMIN' }
users:
entity:
class: Chill\MainBundle\Entity\User
property: username
encoders:
Chill\MainBundle\Entity\User:
algorithm: bcrypt
Symfony\Component\Security\Core\User\User: plaintext
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
anonymous: ~
form_login:
csrf_parameter: _csrf_token
csrf_token_id: authenticate
csrf_provider: form.csrf_provider
logout: ~
access_control:
#disable authentication for tests
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
#- { path: ^/admin, roles: ROLE_ADMIN }
#- { path: ^/, roles: ROLE_USER }

View File

@@ -0,0 +1,11 @@
imports:
- { resource: config.yml } #here we import a config.yml file, this is not required
framework:
test: ~
session:
storage_id: session.storage.filesystem
chill_custom_fields:
customizables_entities:
- { class: TEST, name: test }

View File

@@ -0,0 +1,8 @@
# config/config_test.yml
imports:
- { resource: config.yml } #here we import a config.yml file, this is not required
framework:
test: ~
session:
storage_id: session.storage.filesystem

View File

@@ -0,0 +1,9 @@
#required by ConfigCustomizablesEntitiesTest::testNotEmptyConfig
imports:
- { resource: config_test.yml }
chill_custom_fields:
customizables_entities:
- { class: Test\With\A\Dummy\Entity, name: test }

View File

@@ -0,0 +1,7 @@
parameters:
database_host: chill__database
database_port: 5432
database_name: postgres
database_user: postgres
database_password: postgres
locale: fr

View File

@@ -0,0 +1,7 @@
parameters:
database_host: 127.0.0.1
database_port: 5434
database_name: symfony
database_user: symfony
database_password: symfony
locale: fr

View File

@@ -0,0 +1,10 @@
cl_custom_fields:
resource: .
type: chill_routes
chill_main:
resource: "@ChillMainBundle/Resources/config/routing.yml"
test_custom_field_form_render:
path: /customfieldsgroup/test/render/{id}
defaults: { _controller: ChillCustomFieldsBundle:CustomFieldsGroup:renderForm }

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
// for more information
//umask(0000);
set_time_limit(0);
require __DIR__.'/autoload.php';
$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
if ($debug) {
Debug::enable();
}
$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);

View File

@@ -0,0 +1,30 @@
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
Debug::enable();
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

View File

@@ -0,0 +1,31 @@
{#
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
<info@champs-libres.coop> / <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillMain/Admin/layoutWithVerticalMenu.html.twig" %}
{% block vertical_menu_content %}
{{ chill_menu('admin_custom_fields', {
'layout': '@ChillCustomFields/Admin/menu.html.twig',
}) }}
{% endblock %}
{% block layout_wvm_content %}
{% block admin_content %}<!-- block personcontent empty -->
<h1>{{ 'CustomFields configuration' |trans }}</h1>
{% endblock %}
{% endblock %}

View File

@@ -0,0 +1,20 @@
{#
* Copyright (C) 2014-2015, Champs Libres Cooperative SCRLFS,
<info@champs-libres.coop> / <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillMain/Menu/verticalMenu.html.twig" %}
{% block v_menu_title %}{{ 'Custom fields configuration menu'|trans }}{% endblock %}

View File

@@ -0,0 +1,49 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block title %}{{ 'CustomField edit'|trans }}{% endblock title %}
{% block admin_content %}
<h1>{{ 'CustomField edit'|trans }}</h1>
<h2>{{ 'General informations'|trans }}</h2>
{{ form_start(edit_form) }}
{{ form_row(edit_form.name) }}
{{ form_row(edit_form.active) }}
{% if edit_form.customFieldsGroup is defined %}
{{ form_row(edit_form.customFieldsGroup) }}
{% endif %}
{{ form_row(edit_form.ordering) }}
{{ form_row(edit_form.required) }}
{% if edit_form.options is not empty %}
<h2>{{ 'Options'|trans }}</h2>
{% for option in edit_form.options %}
{{ form_row(option) }}
{% endfor %}
{% endif %}
{{ form_row(edit_form.submit, {'attr': { 'class': 'sc-button btn-update' } } ) }}
{{ form_end(edit_form) }}
<ul class="record_actions">
<li>
<a href="{{ path('customfieldsgroup_show', { 'id': entity.customFieldsGroup.id }) }}" class="sc-button btn-reset">
{{ 'Back to the group'|trans }}
</a>
</li>
</ul>
{% endblock %}

View File

@@ -0,0 +1,7 @@
{% extends '::base.html.twig' %}
{% block javascripts_head %}<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>{% endblock %}
{% block body -%}
{{ form(form) }}
{% endblock %}

View File

@@ -0,0 +1,56 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block title %}{{ 'CustomField creation'|trans }}{% endblock title %}
{% block admin_content %}
<h1>{{ 'CustomField creation'|trans }}</h1>
<h2>{{ 'General informations'|trans }}</h2>
{{ form_start(form) }}
{{ form_row(form.name) }}
{{ form_row(form.active) }}
{{ form_row(form.slug) }}
{% if form.customFieldsGroup is defined %}
{{ form_row(form.customFieldsGroup) }}
{% endif %}
{{ form_row(form.ordering) }}
{{ form_row(form.required) }}
{% if form.options is not empty %}
<h2>{{ 'Options'|trans }}</h2>
{% for option in form.options %}
{{ form_row(option) }}
{% endfor %}
{% endif %}
{{ form_row(form.submit, {'attr': { 'class': 'sc-button btn-create' } } ) }}
{{ form_end(form) }}
<ul class="record_actions">
<li>
{% if entity.customFieldsGroup is not null %}
<a href="{{ path('customfieldsgroup_show', { 'id': entity.customFieldsGroup.id }) }}" class="sc-button btn-reset">
{{ 'Back to the group'|trans }}
</a>
{% else %}
<a href="{{ path('customfieldsgroup') }}" class="sc-button btn-reset">
{{ 'Back to the list'|trans }}
</a>
{% endif %}
</li>
</ul>
{% endblock %}

View File

@@ -0,0 +1 @@
{{ customField.name|localize_translatable_string }}

View File

@@ -0,0 +1,56 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block admin_content %}
<h1>CustomField</h1>
<table class="record_properties">
<tbody>
<tr>
<th>Id</th>
<td>{{ entity.id }}</td>
</tr>
<tr>
<th>Label</th>
<td>{{ entity.name(app.request.locale) }}</td>
</tr>
<tr>
<th>Type</th>
<td>{{ entity.type }}</td>
</tr>
<tr>
<th>Active</th>
<td>{{ entity.active }}</td>
</tr>
</tbody>
</table>
<ul class="record_actions">
<li>
<a href="{{ path('customfield') }}">
Back to the list
</a>
</li>
<li>
<a href="{{ path('customfield_edit', { 'id': entity.id }) }}">
Edit
</a>
</li>
<li>{{ form(delete_form) }}</li>
</ul>
{% endblock %}

View File

@@ -0,0 +1,45 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block title %}{{ 'CustomFieldsGroup edit'|trans }}{% endblock %}
{% block admin_content %}
<h1>{{ 'CustomFieldsGroup edit'|trans }}</h1>
{{ form_start(edit_form) }}
{{ form_row(edit_form.name) }}
{{ form_row(edit_form.entity) }}
{% if edit_form.options is defined %}
{{ form_row(edit_form.options) }}
{% endif %}
{{ form_row(edit_form.submit, { 'attr': { 'class': 'sc-button bt-edit' } } ) }}
{{ form_end(edit_form) }}
<ul class="record_actions">
<li>
<a href="{{ path('customfieldsgroup') }}" class="sc-button bt-cancel">
{{ 'Back to the list'|trans }}
</a>
</li>
<li>
<a href="{{ path('customfieldsgroup_show', { 'id' : entity.id }) }}" class="sc-button bt-cancel">
{{ 'show'|trans|capitalize }}
</a>
</li>
</ul>
{% endblock %}

View File

@@ -0,0 +1,67 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block title %}{{ 'CustomFieldsGroup list'|trans }}{% endblock %}
{% block admin_content %}
<h1>{{ 'CustomFieldsGroup list'|trans }}</h1>
<table class="records_list">
<thead>
<tr>
<th>{{ 'Name'|trans }}</th>
<th>{{ 'Entity'|trans }}</th>
<th>{{ 'Is default ?'|trans }} <i class="fa fa-info-circle" title="{{ 'Some module select default groups for some usage. Example: the default person group is shown under person page.'|trans|escape('html_attr') }}"></i></th>
<th>{{ 'Actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr>
<td><a href="{{ path('customfieldsgroup_show', { 'id': entity.id }) }}">{{ entity.name|localize_translatable_string }}</a></td>
<td>{{ entity.entity|trans }}</td>
<td style="text-align: center;">
{%- if entity.id in default_groups -%}
<i class="fa fa-star"></i>
{%- else -%}
{{ form_start(make_default_forms[entity.id]) }}
{{ form_widget(make_default_forms[entity.id].submit, { 'attr' : { 'class' : 'sc-button bt-action' } } ) }}
{{ form_end(make_default_forms[entity.id]) }}
{%- endif -%}
</td>
<td>
<ul class="record_actions">
<li>
<a href="{{ path('customfieldsgroup_show', { 'id': entity.id }) }}" class="sc-button">{{ 'show'|trans|capitalize }}</a>
</li>
<li>
<a href="{{ path('customfieldsgroup_edit', { 'id': entity.id }) }}" class="sc-button btn-edit">{{ 'edit'|trans|capitalize }}</a>
</li>
</ul>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<p>
<a href="{{ path('customfieldsgroup_new') }}" class="sc-button bt-create">
{{ 'Create a new group'|trans }}
</a>
</p>
{% endblock %}

View File

@@ -0,0 +1,32 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block admin_content %}
<h1>{{ 'CustomFieldsGroup creation'|trans }}</h1>
{{ form_start(form) }}
{{ form_row(form.name) }}
{{ form_row(form.entity) }}
<p>
{{ form_widget(form.submit, { 'attr' : { 'class': 'sc-button bt-create' } } ) }}
<a href="{{ path('customfieldsgroup') }}" class="sc-button bt-cancel">
{{ 'Back to the list'|trans }}
</a>
</p>
{{ form_end(form) }}
{% endblock %}

View File

@@ -0,0 +1,86 @@
{#- a customField element will be stored in title variable -#}
{%- set title = null -%}
{#- a customField element will be stored in subtitle variable -#}
{%- set subtitle = null -%}
{%- set type = constant('Chill\\CustomFieldsBundle\\CustomFields\\CustomFieldTitle::TYPE') -%}
{%- set type_subtitle = constant('Chill\\CustomFieldsBundle\\CustomFields\\CustomFieldTitle::TYPE_SUBTITLE') -%}
{%- set type_title = constant('Chill\\CustomFieldsBundle\\CustomFields\\CustomFieldTitle::TYPE_TITLE') -%}
{# a variable to store that "something has been printed #}
{%- set something_has_been_printed = false -%}
{%- set title_div_opened = false -%}
{%- set subtitle_div_opened = false -%}
{% for customField in cFGroup.activeCustomFields %}
{% if customField.type == 'title' %}
{%- if show_empty == true %}
{%- if customField.options[type] == type_title -%}
{%- if title_div_opened == false -%}
<div class="cf_title_box">
{%- set title_div_opened = true -%}
{%- else -%}
{%- if subtitle_div_opened == true -%}
</div> <!-- closing cf_subtitle_box -->
{%- set title_div_opened = false -%}
{%- endif -%}
</div><div class="cf_title_box">
{%- endif -%}
{%- else -%}
{%- if subtitle_div_opened == false -%}
<div class="cf_subtitle_box">
{%- set subtitle_div_opened = true -%}
{%- else -%}
</div><div class="cf_subtitle_box">
{%- endif -%}
{%- endif -%}
{{ chill_custom_field_widget(cFData , customField) }}
{%- else -%}
{# we keep the customfield in memory, and print it only if 'something' has been filled after the title #}
{%- if customField.options[type] == type_title -%}
{%- set title = customField -%}
{# we have to reset the title hierarchy if we misused titles hierarchy #}
{%- set subtitle = null -%}
{%- elseif customField.options[type] == type_subtitle -%}
{%- set subtitle = customField -%}
{%- endif -%}
{%- endif -%}
{% else %}
{%- if show_empty == true or (chill_custom_field_is_empty(cFData, customField) == false) -%}
{%- if title is not empty -%}
{%- if title_div_opened == false -%}
<div class="cf_title_box">
{%- set title_div_opened = true -%}
{%- else -%}
{%- if subtitle_div_opened == true -%}
</div> <!-- closing cf_subtitle_box -->
{%- set title_div_opened = false -%}
{%- endif -%}
</div><div class="cf_title_box">
{%- endif -%}
{{ chill_custom_field_widget(cFData, title) }}
{%- set title = null -%}
{%- endif -%}
{%- if subtitle is not empty -%}
{%- if subtitle_div_opened == false -%}
<div class="cf_subtitle_box">
{%- set subtitle_div_opened = true -%}
{%- else -%}
</div><div class="cf_subtitle_box">
{%- endif -%}
{{ chill_custom_field_widget(cFData, subtitle) }}
{%- set subtitle = null -%}
{%- endif -%}
<dt class="custom_fields_group_rendering">{{ chill_custom_field_label(customField) }}</dt>
<dd class="custom_fields_group_rendering">{{ chill_custom_field_widget(cFData , customField) }}</dd>
{%- set something_has_been_printed = true -%}
{%- endif -%}
{%- endif -%}
{% endfor %}
{%- if subtitle_div_opened == true -%}
</div> <!-- closing cf_subtitle_box -->
{%- endif -%}
{%- if title_div_opened == true -%}
</div> <!-- closing cf_title_box -->
{%- endif -%}
{% if something_has_been_printed == false %}
<dt class="custom_field_no_data custom_fields_group_rendering">{{ 'Empty data'|trans }}</dt>
<dd class="custom_field_no_data custom_fields_group_rendering">{{ 'No data to show' | trans }}</dd>
{% endif %}

View File

@@ -0,0 +1,7 @@
<dl class="custom_fields_group_rendering">
<span class="custom_fields_group_name">{{ customFieldsGroup.name(app.request.locale) }}</span>
{% for customField in customFieldsGroup.customFields %}
<dt>{{ chill_custom_field_label(customField) }}</dt>
<dd>{{ chill_custom_field_widget(fields, customField) }}</dd>
{% endfor %}
</dl>

View File

@@ -0,0 +1,116 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "@ChillCustomFields/Admin/layout.html.twig" %}
{% block title %}{{ 'CustomFieldsGroup details'|trans }}{% endblock %}
{% block admin_content %}
<h1>{{ 'CustomFieldsGroup details'|trans }}</h1>
<table class="record_properties">
<tbody>
<tr>
<th>{{ 'Name'|trans }}</th>
<td>{{ entity.getName|localize_translatable_string }}</td>
</tr>
<tr>
<th>{{ 'Entity'|trans }}</th>
<td>{{ entity.entity|trans }}</td>
</tr>
{%- for key in options -%}
<tr>
<th>{{ key ~ '_label'|trans }}</th>
<td>
{%- if entity.options[key] is not defined -%}
{{ 'No value defined for this option'|trans }}
{%- elseif entity.options[key] is iterable -%}
{{ entity.options[key]|join(', ') }}
{% else %}
{{ entity.options[key] }}
{%- endif -%}
</td>
</tr>
{%- else -%}
<!-- no option available for this entity -->
{%- endfor -%}
</tbody>
</table>
<ul class="record_actions">
<li>
<a href="{{ path('customfieldsgroup') }}" class="sc-button bt-cancel">
{{ 'Back to the list'|trans }}
</a>
</li>
<li>
<a href="{{ path('customfieldsgroup_edit', { 'id': entity.id }) }}" class="sc-button bt-edit">
{{ 'Edit'|trans }}
</a>
</li>
</ul>
<h2>{{ 'Fields associated with this group'|trans }}</h2>
{%- if entity.customFields|length > 0 -%}
<table>
<thead>
<tr>
<th>{{ 'ordering'|trans|capitalize }}</th>
<th>{{ 'label_field'|trans|capitalize }}</th>
<th>{{ 'type'|trans|capitalize }}</th>
<th>{{ 'active'|trans|capitalize }}</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{%- for field in entity.customFields -%}
<tr>
<td>{{ field.ordering }}</td>
<td>{{ field.name|localize_translatable_string }}</td>
<td>{{ field.type|trans }}</td>
<td style="text-align:center;">
{%- if field.active -%}
<i class="fa fa-check-square-o"></i>
{%- else -%}
<i class="fa fa-square-o"></i>
{%- endif -%}
</td>
<td style="text-align:center">
<a href="{{ path('customfield_edit', { 'id' : field.id }) }}" class="sc-button bt-edit">{{ 'edit'|trans|capitalize }}</a>
</td>
</tr>
{%- endfor -%}
</tbody>
</table>
{{ form_start(create_field_form) }}
<div class="grid-4">
{{ form_widget(create_field_form.type) }}
</div>
{{ form_widget(create_field_form.submit, { 'attr': { 'class': 'sc-button bt-create' }, 'label': 'Add a new field' } ) }}
{{ form_end(create_field_form) }}
{%- else -%}
<p>
{{ 'Any field is currently associated with this group'|trans }}
</p>
{{ form_start(create_field_form) }}
<div class="grid-4">
{{ form_widget(create_field_form.type) }}
</div>
{{ form_widget(create_field_form.submit, { 'attr': { 'class': 'sc-button bt-create' }, 'label': 'Create a new field' } ) }}
{{ form_end(create_field_form) }}
{%- endif -%}
{% endblock %}

View File

@@ -0,0 +1,13 @@
{% if selected|length > 0 %}
{%- for choice in choices -%}
{% if choice['slug'] in selected %}
{%- if choice['slug'] is not same as('_other') -%}
{{ choice['name']|localize_translatable_string|csv_cell }}
{%- else -%}
{{ choice['name']|csv_cell }}
{%- endif -%}
{% endif %}
{%- endfor -%}
{% else %}
{{ 'None'|trans }}
{% endif %}

View File

@@ -0,0 +1,29 @@
{% if selected|length > 0 %}
<ul class="custom_fields choice">
{%- for choice in choices -%}
{% if choice['slug'] in selected %}
{%- set is_selected = true -%}
{%- else -%}
{%- set is_selected = false -%}
{%- endif -%}
{%- if is_selected -%}
<li class="{% if is_selected or expanded == 1 %} selected {% endif %}">
{%- if is_selected -%}
<i class="fa fa-check-square-o"></i>&nbsp;
{%- else -%}
<i class="fa fa-square-o"></i>&nbsp;
{%- endif -%}
{%- if choice['slug'] is not same as('_other') -%}
{{ choice['name']|localize_translatable_string }}
{%- else -%}
{{ choice['name'] }}
{%- endif -%}
</li>
{%- endif -%}
{%- endfor -%}
</ul>
{% else %}
<div class="custom_fields_choice empty">{{ 'None'|trans }}</div>
{% endif %}

View File

@@ -0,0 +1 @@
{% if values|length == 1 %}{{ values[0].text|localize_translatable_string|default("")|csv_cell }}{% elseif values|length ==0 %}{{ 'emtpy'|csv_cell }}{% else %}{{ 'pas de rendu multiple'|csv_cell }}{% endif %}

View File

@@ -0,0 +1,11 @@
{% if values|length > 0 %}
<ul class="custom_fields long_choice {% if values|length == 1 %}unique{% endif %}">
{%- for value in values -%}
<li class="long_choice_item long_choice-key-{{ value.key }} long_choice-ikey-{{ value.internalKey }} long_choice-parent-ikey-{{ value.parent.internalKey }}">
<i class="fa fa-check-square-o"></i>&nbsp;{{ value.text|localize_translatable_string }}
</li>
{%- endfor -%}
</ul>
{% else %}
<div class="custom_fields_choice long_choice empty">{{ 'None'|trans }}</div>
{% endif %}

View File

@@ -0,0 +1 @@
{% if value is not empty %}{{ value|format_date(format)}}{% endif %}

View File

@@ -0,0 +1 @@
{% if number is not empty %}{{ number|number_format(scale)|csv_cell }}{% endif %}

View File

@@ -0,0 +1 @@
{% if number is not empty %}{{ number|number_format(scale) }}&nbsp;{{ post|default('') }}{% endif %}

View File

@@ -0,0 +1 @@
{% if text is not empty %}{{ text|csv_cell}}{% else %}{{ 'None'|trans }}{% endif %}

View File

@@ -0,0 +1 @@
{% if text is not empty %}{{ text|nl2br }}{% else %}<span class="custom_fields_text empty">{{ 'None'|trans }}</span>{% endif %}

View File

@@ -0,0 +1,5 @@
{% if type == "title"%}
<h2>{{ title | localize_translatable_string }}</h2>
{% else %}
<h3>{{ title | localize_translatable_string }}</h3>
{% endif %}

View File

@@ -0,0 +1,111 @@
{#
* Copyright (C) 2014, Champs Libres Cooperative SCRLFS, <http://www.champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{# CustomFields Title #}
{% block custom_field_title_widget %}
<span class="cf-{{ form.vars.attr.type }}">
{{ form.vars.attr.title }}
</span>
{% endblock custom_field_title_widget %}
{# CustomFields Choice #}
{# render an alement in a choice list #}
{% block cf_choices_list_widget %}
{{ form_row(form.name) }}
{{ form_row(form.active) }}
{{ form_row(form.slug) }}
{% endblock cf_choices_list_widget %}
{# CFChoice : render the different elements in a choice list #}
{% block cf_choices_row %}
<h3>{{ 'Choices'|trans }}</h3>
<div id="{{ form.vars.id }}" data-prototype="{{- form_row(form.vars.prototype.children.name)
~ form_row(form.vars.prototype.children.active)
~ form_row(form.vars.prototype.children.slug) -}}">
<table><tbody>
{% for choice in form %}
<tr><td>
{{ form_row(choice.name) }}
{{ form_row(choice.active) }}
{{ form_row(choice.slug) }}
</td></tr>
{% endfor %}
</tbody></table>
</div>
{# we use javascrit to add an additional element. All functions are personnalized with the id ( = form.vars.id) #}
<script type="text/javascript">
function addElementInDiv(div_id) {
var div = $('#' + div_id);console.log(div);
var prototype = div.data('prototype');console.log(prototype);
var index = div.data('index');console.log(index);
var add_element_link = $('#' + div_id + '_add_element_link');
var new_fields = prototype.replace(/__name__label__/g, index);
var new_fields = prototype.replace(/__name__/g, index);
div.data('index', index + 1);
console.log(index);
add_element_link.before(new_fields);
}
function initializeCFChoiceOptionsChoices(div_id) {
var add_element_link = $('<a id="' + div_id + '_add_element_link"" href="#" class="sc-button bt-submit">{{ 'Add an element'|trans }}</a>');
var div = $('#' + div_id);
div.append(add_element_link);
div.data('index', div.find('td').length);
console.log(div.data('index'));
add_element_link.on('click', function (e) {
e.preventDefault();
addElementInDiv(div_id);
});
}
document.addEventListener('DOMContentLoaded', function(event) {
jQuery(document).ready(initializeCFChoiceOptionsChoices('{{ form.vars.id }}'));
});
</script>
{% endblock cf_choices_row %}
{# extend the number type to add post_text extension #}
{% block number_widget %}
{%- if post_text is defined and post_text is not empty-%}
<div class="input_with_post_text">
{%- endif -%}
{{ block('form_widget') }}
{%- if post_text is defined and post_text is not empty-%}
<span class="post_text">{{ post_text }}</span>
</div>
{%- endif -%}
{% endblock %}
{# extend the number type to add post_text extension #}
{% block integer_widget %}
{%- if post_text is defined and post_text is not empty-%}
<div class="input_with_post_text">
{%- endif -%}
{{ block('form_widget') }}
{%- if post_text is defined and post_text is not empty-%}
<span class="post_text">{{ post_text }}</span>
</div>
{%- endif -%}
{% endblock %}
{# The choice_with_other_widget widget is defined in the main bundle #}