# see https://symfony.com/doc/current/reference/configuration/framework.html | # see https://symfony.com/doc/current/reference/configuration/framework.html | ||||
lc_sov: | lc_sov: | ||||
homepage_route: 'app_homepage' | |||||
homepage_route: 'app_homepage' | |||||
login_redirection: | |||||
redirect_referer: false | |||||
roles_redirection: | |||||
- { role: "ROLE_ADMIN", redirect: "admin_dashboard" } | |||||
- { role: "ROLE_ANIMATOR", redirect: "admin_dashboard_animator" } | |||||
- { role: "ROLE_SUPER_ADMIN", redirect: "admin_dashboard" } |
path: /admin | path: /admin | ||||
controller: App\Controller\Admin\DashboardController::index | controller: App\Controller\Admin\DashboardController::index | ||||
admin_dashboard_animator: | |||||
path: /admin-animator | |||||
controller: App\Controller\Admin\DashboardAnimatorController::index | |||||
app_homepage: | app_homepage: | ||||
path: / | path: / | ||||
controller: App\Controller\Frontend\DefaultController:home | controller: App\Controller\Frontend\DefaultController:home |
<?php | |||||
declare(strict_types=1); | |||||
namespace DoctrineMigrations; | |||||
use Doctrine\DBAL\Schema\Schema; | |||||
use Doctrine\Migrations\AbstractMigration; | |||||
/** | |||||
* Auto-generated Migration: Please modify to your needs! | |||||
*/ | |||||
final class Version20210602130250 extends AbstractMigration | |||||
{ | |||||
public function getDescription(): string | |||||
{ | |||||
return ''; | |||||
} | |||||
public function up(Schema $schema): void | |||||
{ | |||||
// this up() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE territory ADD dev_alias VARCHAR(255) DEFAULT NULL'); | |||||
} | |||||
public function down(Schema $schema): void | |||||
{ | |||||
// this down() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE territory DROP dev_alias'); | |||||
} | |||||
} |
/*! | |||||
* Sizzle CSS Selector Engine v2.3.6 | |||||
* https://sizzlejs.com/ | |||||
* | |||||
* Copyright JS Foundation and other contributors | |||||
* Released under the MIT license | |||||
* https://js.foundation/ | |||||
* | |||||
* Date: 2021-02-16 | |||||
*/ |
/*! | |||||
* jQuery Color Animations v2.1.2 | |||||
* https://github.com/jquery/jquery-color | |||||
* | |||||
* Copyright 2014 jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
* | |||||
* Date: Wed Jan 16 08:47:09 2013 -0600 | |||||
*/ | |||||
/*! | |||||
* jQuery UI :data 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Autocomplete 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Button 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Checkboxradio 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Controlgroup 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Datepicker 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Dialog 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Draggable 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Droppable 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Focusable 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Position 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
* | |||||
* http://api.jqueryui.com/position/ | |||||
*/ | |||||
/*! | |||||
* jQuery UI Resizable 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Spinner 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Support for jQuery core 1.7.x 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
* | |||||
*/ | |||||
/*! | |||||
* jQuery UI Tabs 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Tooltip 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! | |||||
* jQuery UI Widget 1.12.1 | |||||
* http://jqueryui.com | |||||
* | |||||
* Copyright jQuery Foundation and other contributors | |||||
* Released under the MIT license. | |||||
* http://jquery.org/license | |||||
*/ | |||||
/*! jQuery UI - v1.12.1 - 2016-09-14 | |||||
* http://jqueryui.com | |||||
* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js | |||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */ |
/*! | |||||
* Bootstrap v4.6.0 (https://getbootstrap.com/) | |||||
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) | |||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) | |||||
*/ | |||||
/*! | |||||
* AdminLTE v3.1.0 (https://adminlte.io) | |||||
* Copyright 2014-2021 Colorlib <https://colorlib.com> | |||||
* Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) | |||||
*/ | |||||
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ | |||||
/**! | |||||
* @fileOverview Kickass library to create and place poppers near their reference elements. | |||||
* @version 1.16.1 | |||||
* @license | |||||
* Copyright (c) 2016 Federico Zivolo and contributors | |||||
* | |||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
* of this software and associated documentation files (the "Software"), to deal | |||||
* in the Software without restriction, including without limitation the rights | |||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
* copies of the Software, and to permit persons to whom the Software is | |||||
* furnished to do so, subject to the following conditions: | |||||
* | |||||
* The above copyright notice and this permission notice shall be included in all | |||||
* copies or substantial portions of the Software. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||||
* SOFTWARE. | |||||
*/ |
(self.webpackChunk=self.webpackChunk||[]).push([[146],{5967:(e,i,t)=>{"use strict";t(9826),t(4916),t(5306),t(1704);function n(e){e.data("allow-delete")&&(e.find(".field-collection-delete").off("click"),e.find(".field-collection-delete").on("click",(function(){$(this).parents(".form-group:first").remove(),l(e),0==o(e)&&e.find(".collection-empty").show()})))}function o(e){return e.data("reindex-key")?e.find(".field-collection-item").length:e.data("num-items")}function l(e){e.data("reindex-key")&&e.find(".field-collection-item").each((function(e,i){$(i).find("input,textarea").each((function(i,t){var n=$(t),o=Tools.indexOfLastDigit(n.prop("id")),l=n.prop("id").substr(0,o),d=n.prop("id").substr(o+1);n.prop("id",l+e+d);var c=Tools.indexOfLastDigit(n.prop("name")),a=n.prop("name").substr(0,c),f=n.prop("name").substr(c+1);n.prop("name",a+e+f)}))}))}$(document).ready((function(){$(".field-collection[data-prototype]").each((function(e,i){var t;(t=$(i)).data("sortable")&&(t.find(".field-collection-group").sortable({handle:".lc-btn-sortable",cancel:""}),t.find(".field-collection-group").on("sortupdate",(function(e,i){t.find(".field-collection-group>div").each((function(e,i){$(i).find(".field-position").val(e)}))}))),l($(i)),function(e){e.data("allow-add")&&e.find(".field-collection-add").on("click",(function(i){var t=e.attr("data-prototype");t=t.replace(/__name__/g,o(e)),e.find(".form-widget-compound .field-collection-group").append(t),e.find(".field-collection-item:last").find(".field-position").val(o(e)),l(e),n(e),e.trigger("collection-add-item"),e.data("num-items",e.data("num-items")+1),e.find(".collection-empty").hide()}))}($(i)),n($(i))}))}))}},e=>{"use strict";e.O(0,[381,855,2,968],(()=>{return i=5967,e(e.s=i);var i}));e.O()}]); |
(self.webpackChunk=self.webpackChunk||[]).push([[459],{8406:(e,a,t)=>{"use strict";t(4812);function n(){$(".lc-filemanager-delete").off("click"),$(".lc-filemanager-delete").on("click",(function(e){var a=$(this);$("#"+a.data("id")).val(""),$("#"+a.data("id")+"_preview").prop("src",""),$("#"+a.data("id")+"_preview_text").html("Aucun fichier")})),$(".lc-filemanager-open").off("click"),$(".lc-filemanager-open").on("click",(function(e){var a=$(this);$("#lc-filemanager-frame").off("load"),$("#lc-filemanager-frame").on("load",(function(){$("#lc-filemanager-frame").contents().on("click",".select",(function(){var e=$(this).attr("data-path");$("#"+a.data("id")).val(e),$("#"+a.data("id")+"_preview").prop("src",e),$("#"+a.data("id")+"_preview_text").html(e),$("#lc-filemanager-modal").modal("hide")}))})),$("#lc-filemanager-frame").prop("src",a.data("target")),$("#lc-filemanager-modal").modal("show")}))}$(document).ready((function(){n()})),$(".field-collection").bind("collection-add-item",(function(){n()}))},7065:(e,a,t)=>{"use strict";var n=t(3099),i=t(111),c=[].slice,r={},l=function(e,a,t){if(!(a in r)){for(var n=[],i=0;i<a;i++)n[i]="a["+i+"]";r[a]=Function("C,a","return new C("+n.join(",")+")")}return r[a](e,t)};e.exports=Function.bind||function(e){var a=n(this),t=c.call(arguments,1),r=function(){var n=t.concat(c.call(arguments));return this instanceof r?l(a,n.length,n):a.apply(e,n)};return i(a.prototype)&&(r.prototype=a.prototype),r}},4812:(e,a,t)=>{t(694)({target:"Function",proto:!0},{bind:t(7065)})}},e=>{"use strict";e.O(0,[381],(()=>{return a=8406,e(e.s=a);var a}));e.O()}]); |
.lc-filemenager-preview{min-height:80px;object-fit:contain;position:relative;width:100%}.lc-filemenager-preview .no-image{font-size:3rem;height:100%;left:0;margin:auto;position:absolute;right:0;text-align:center;top:0;width:100%;z-index:1}.lc-filemenager-preview img{object-fit:contain;position:relative;width:100%;z-index:2} |
.lc-filemenager-preview { | |||||
width: 100%; | |||||
object-fit: contain; | |||||
position: relative; | |||||
min-height: 80px; | |||||
} | |||||
.lc-filemenager-preview .no-image { | |||||
position: absolute; | |||||
font-size: 3rem; | |||||
width: 100%; | |||||
height: 100%; | |||||
z-index: 1; | |||||
top: 0; | |||||
text-align: center; | |||||
left: 0; | |||||
right: 0; | |||||
margin: auto; | |||||
} | |||||
.lc-filemenager-preview img { | |||||
width: 100%; | |||||
z-index: 2; | |||||
position: relative; | |||||
object-fit: contain; | |||||
} | |||||
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mb3JtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBQUNGOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDRjs7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBRUYsQyIsImZpbGUiOiJhZG1pbmx0ZS1maWVsZC1maWxlbWFuYWdlci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubGMtZmlsZW1lbmFnZXItcHJldmlldyB7XG4gIHdpZHRoOiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG59XG5cbi5sYy1maWxlbWVuYWdlci1wcmV2aWV3IC5uby1pbWFnZXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDNyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmxjLWZpbGVtZW5hZ2VyLXByZXZpZXcgaW1ne1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufSJdLCJzb3VyY2VSb290IjoiIn0=*/ |
.form-sent .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='m0 0 3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");background-position:center right calc(.375em + .1875rem);background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#dc3545;padding-right:2.25rem}.form-sent select.form-control:invalid+.select2 .select2-selection{border-color:#dc3545}.form-sent select.form-control:invalid+.select2 .select2-selection b{border-color:#dc3545 transparent transparent}.form-sent .form-check-label input:invalid~.checkmark{border-color:#dc3545}.nav-item .nav-link{position:relative}.nav-item .nav-link .invalid-form{background:#fff;border-radius:10px;color:#dc3545;display:none;font-size:1.2rem;position:absolute;right:-6px;top:-7px}.nav-item.has-invalid .nav-link .invalid-form{display:inline-block;z-index:2}.field-collection{padding-top:15px}.field-collection legend{font-size:18px;font-weight:700}.field-collection .field-collection-item{background-color:#dcdcdc;border-radius:5px;padding:10px;position:relative}.field-collection .field-collection-item .field-collection-delete{position:absolute;right:0;top:0} |
(self.webpackChunk=self.webpackChunk||[]).push([[460],{1474:(r,t,e)=>{"use strict";e(5502)},5502:(r,t,e)=>{e(9826),$('button[type="submit"]').on("click",(function(r){$("form").addClass("form-sent"),$("form").find(".tab-pane").length&&$("form").find(".tab-pane").each((function(r,t){$(t).find(":invalid").length?$("#nav-params").find(".nav-item:eq("+r+")").addClass("has-invalid"):$("#nav-params").find(".nav-item:eq("+r+")").removeClass("has-invalid")}))}))},1223:(r,t,e)=>{var n=e(5112),o=e(30),a=e(3070),i=n("unscopables"),c=Array.prototype;null==c[i]&&a.f(c,i,{configurable:!0,value:o(null)}),r.exports=function(r){c[i][r]=!0}},2092:(r,t,e)=>{var n=e(9974),o=e(8361),a=e(7908),i=e(7466),c=e(5417),s=[].push,u=function(r){var t=1==r,e=2==r,u=3==r,l=4==r,f=6==r,p=7==r,v=5==r||f;return function(d,m,y,h){for(var b,g,w=a(d),x=o(w),O=n(m,y,3),S=i(x.length),A=0,j=h||c,k=t?j(d,S):e||p?j(d,0):void 0;S>A;A++)if((v||A in x)&&(g=O(b=x[A],A,w),r))if(t)k[A]=g;else if(g)switch(r){case 3:return!0;case 5:return b;case 6:return A;case 2:s.call(k,b)}else switch(r){case 4:return!1;case 7:s.call(k,b)}return f?-1:u||l?l:k}};r.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},5417:(r,t,e)=>{var n=e(111),o=e(3157),a=e(5112)("species");r.exports=function(r,t){var e;return o(r)&&("function"!=typeof(e=r.constructor)||e!==Array&&!o(e.prototype)?n(e)&&null===(e=e[a])&&(e=void 0):e=void 0),new(void 0===e?Array:e)(0===t?0:t)}},8113:(r,t,e)=>{var n=e(5005);r.exports=n("navigator","userAgent")||""},7392:(r,t,e)=>{var n,o,a=e(7854),i=e(8113),c=a.process,s=c&&c.versions,u=s&&s.v8;u?o=(n=u.split("."))[0]<4?1:n[0]+n[1]:i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=n[1]),r.exports=o&&+o},9974:(r,t,e)=>{var n=e(3099);r.exports=function(r,t,e){if(n(r),void 0===t)return r;switch(e){case 0:return function(){return r.call(t)};case 1:return function(e){return r.call(t,e)};case 2:return function(e,n){return r.call(t,e,n)};case 3:return function(e,n,o){return r.call(t,e,n,o)}}return function(){return r.apply(t,arguments)}}},490:(r,t,e)=>{var n=e(5005);r.exports=n("document","documentElement")},3157:(r,t,e)=>{var n=e(4326);r.exports=Array.isArray||function(r){return"Array"==n(r)}},133:(r,t,e)=>{var n=e(7392),o=e(7293);r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},30:(r,t,e)=>{var n,o=e(9670),a=e(6048),i=e(748),c=e(3501),s=e(490),u=e(317),l=e(6200),f=l("IE_PROTO"),p=function(){},v=function(r){return"<script>"+r+"</"+"script>"},d=function(){try{n=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var r,t;d=n?function(r){r.write(v("")),r.close();var t=r.parentWindow.Object;return r=null,t}(n):((t=u("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(r=t.contentWindow.document).open(),r.write(v("document.F=Object")),r.close(),r.F);for(var e=i.length;e--;)delete d.prototype[i[e]];return d()};c[f]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(p.prototype=o(r),e=new p,p.prototype=null,e[f]=r):e=d(),void 0===t?e:a(e,t)}},6048:(r,t,e)=>{var n=e(9781),o=e(3070),a=e(9670),i=e(1956);r.exports=n?Object.defineProperties:function(r,t){a(r);for(var e,n=i(t),c=n.length,s=0;c>s;)o.f(r,e=n[s++],t[e]);return r}},1956:(r,t,e)=>{var n=e(6324),o=e(748);r.exports=Object.keys||function(r){return n(r,o)}},3307:(r,t,e)=>{var n=e(133);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},5112:(r,t,e)=>{var n=e(7854),o=e(2309),a=e(6656),i=e(9711),c=e(133),s=e(3307),u=o("wks"),l=n.Symbol,f=s?l:l&&l.withoutSetter||i;r.exports=function(r){return a(u,r)&&(c||"string"==typeof u[r])||(c&&a(l,r)?u[r]=l[r]:u[r]=f("Symbol."+r)),u[r]}},9826:(r,t,e)=>{"use strict";var n=e(694),o=e(2092).find,a=e(1223),i="find",c=!0;i in[]&&Array(1).find((function(){c=!1})),n({target:"Array",proto:!0,forced:c},{find:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}}),a(i)}},r=>{"use strict";r.O(0,[381],(()=>{return t=1474,r(r.s=t);var t}));r.O()}]); |
.form-sent .form-control:invalid { | |||||
border-color: #dc3545; | |||||
padding-right: 2.25rem; | |||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); | |||||
background-repeat: no-repeat; | |||||
background-position: center right calc(.375em + .1875rem); | |||||
background-size: calc(.75em + .375rem) calc(.75em + .375rem); | |||||
} | |||||
.form-sent select.form-control:invalid + .select2 .select2-selection { | |||||
border-color: #dc3545; | |||||
} | |||||
.form-sent select.form-control:invalid + .select2 .select2-selection b { | |||||
border-color: #dc3545 transparent transparent transparent; | |||||
} | |||||
.form-sent .form-check-label input:invalid ~ .checkmark { | |||||
border-color: #dc3545; | |||||
} | |||||
.nav-item .nav-link { | |||||
position: relative; | |||||
} | |||||
.nav-item .nav-link .invalid-form { | |||||
display: none; | |||||
position: absolute; | |||||
top: -7px; | |||||
right: -6px; | |||||
color: #dc3545; | |||||
background: #fff; | |||||
border-radius: 10px; | |||||
font-size: 1.2rem; | |||||
} | |||||
.nav-item.has-invalid .nav-link .invalid-form { | |||||
display: inline-block; | |||||
z-index: 2; | |||||
} | |||||
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mb3JtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjtBQUlFO0VBQ0U7QUFGSjtBQUtFO0VBQ0U7QUFISjtBQU1FO0VBQ0U7QUFKSjs7QUFRQTtFQUNFO0FBTEY7QUFPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFMSjs7QUFTQTtFQUNFO0VBQ0E7QUFORixDIiwiZmlsZSI6ImFkbWlubHRlLWZvcm0uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4uZm9ybS1zZW50IHtcbiAgLmZvcm0tY29udHJvbDppbnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZGMzNTQ1JyB2aWV3Qm94PSctMiAtMiA3IDcnJTNlJTNjcGF0aCBzdHJva2U9JyUyM2RjMzU0NScgZD0nTTAgMGwzIDNtMC0zTDAgMycvJTNlJTNjY2lyY2xlIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3k9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIGN5PSczJyByPScuNScvJTNlJTNjL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCBjYWxjKC4zNzVlbSArIC4xODc1cmVtKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoLjc1ZW0gKyAuMzc1cmVtKSBjYWxjKC43NWVtICsgLjM3NXJlbSk7XG4gIH1cblxuICBzZWxlY3QuZm9ybS1jb250cm9sOmludmFsaWQgKyAuc2VsZWN0MiAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xuICAgIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbiAgfVxuXG4gIHNlbGVjdC5mb3JtLWNvbnRyb2w6aW52YWxpZCArIC5zZWxlY3QyIC5zZWxlY3QyLXNlbGVjdGlvbiBiIHtcbiAgICBib3JkZXItY29sb3I6ICNkYzM1NDUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuZm9ybS1jaGVjay1sYWJlbCBpbnB1dDppbnZhbGlkIH4gLmNoZWNrbWFyayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xuICB9XG59XG5cbi5uYXYtaXRlbSAubmF2LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmludmFsaWQtZm9ybSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtN3B4O1xuICAgIHJpZ2h0OiAtNnB4O1xuICAgIGNvbG9yOiAjZGMzNTQ1O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxufVxuXG4ubmF2LWl0ZW0uaGFzLWludmFsaWQgLm5hdi1saW5rIC5pbnZhbGlkLWZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHotaW5kZXg6IDI7XG59XG5cblxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ |
(self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-form"],{ | |||||
<<<<<<< HEAD | |||||
/***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/app.form.js": | |||||
/*!********************************************************************************!*\ | |||||
!*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/app.form.js ***! | |||||
\********************************************************************************/ | |||||
======= | |||||
/***/ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/app.form.js": | |||||
/*!*********************************************************************************!*\ | |||||
!*** ../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/app.form.js ***! | |||||
\*********************************************************************************/ | |||||
>>>>>>> e36ac0b2225ac3f104d96aaae3ed40fc8b33ce6a | |||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |||||
"use strict"; | |||||
__webpack_require__.r(__webpack_exports__); | |||||
<<<<<<< HEAD | |||||
/* harmony import */ var _form_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.js"); | |||||
/* harmony import */ var _form_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_form_js__WEBPACK_IMPORTED_MODULE_0__); | |||||
/* harmony import */ var _form_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.scss"); | |||||
======= | |||||
/* harmony import */ var _form_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form.js */ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.js"); | |||||
/* harmony import */ var _form_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_form_js__WEBPACK_IMPORTED_MODULE_0__); | |||||
/* harmony import */ var _form_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form.scss */ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.scss"); | |||||
>>>>>>> e36ac0b2225ac3f104d96aaae3ed40fc8b33ce6a | |||||
/***/ }), | |||||
<<<<<<< HEAD | |||||
/***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.js": | |||||
/*!****************************************************************************!*\ | |||||
!*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.js ***! | |||||
\****************************************************************************/ | |||||
======= | |||||
/***/ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.js": | |||||
/*!*****************************************************************************!*\ | |||||
!*** ../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.js ***! | |||||
\*****************************************************************************/ | |||||
>>>>>>> e36ac0b2225ac3f104d96aaae3ed40fc8b33ce6a | |||||
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { | |||||
__webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); | |||||
function checkForm() { | |||||
$('form').addClass('form-sent'); //Panel vues js | |||||
if ($('form').find('.tab-pane').length) { | |||||
$('form').find('.tab-pane').each(function (i, panel) { | |||||
if ($(panel).find(':invalid').length) { | |||||
$('#nav-params').find('.nav-item:eq(' + i + ')').addClass('has-invalid'); | |||||
} else { | |||||
$('#nav-params').find('.nav-item:eq(' + i + ')').removeClass('has-invalid'); | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
$('button[type="submit"]').on('click', function (e) { | |||||
checkForm(); | |||||
}); | |||||
/***/ }), | |||||
<<<<<<< HEAD | |||||
/***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.scss": | |||||
/*!******************************************************************************!*\ | |||||
!*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/form.scss ***! | |||||
\******************************************************************************/ | |||||
======= | |||||
/***/ "../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.scss": | |||||
/*!*******************************************************************************!*\ | |||||
!*** ../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/form.scss ***! | |||||
\*******************************************************************************/ | |||||
>>>>>>> e36ac0b2225ac3f104d96aaae3ed40fc8b33ce6a | |||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |||||
"use strict"; | |||||
__webpack_require__.r(__webpack_exports__); | |||||
// extracted by mini-css-extract-plugin | |||||
/***/ }) | |||||
}, | |||||
/******/ __webpack_require__ => { // webpackRuntimeModules | |||||
/******/ "use strict"; | |||||
/******/ | |||||
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) | |||||
<<<<<<< HEAD | |||||
/******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_array_find_js"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/form/app.form.js"))); | |||||
/******/ var __webpack_exports__ = __webpack_require__.O(); | |||||
/******/ } | |||||
]); | |||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9mb3JtL2FwcC5mb3JtLmpzIiwid2VicGFjazovLy8uLi9MYUNsaWNCdW5kbGUvU292QnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYXBwL2FkbWlubHRlL2Zvcm0vZm9ybS5qcyIsIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9mb3JtL2Zvcm0uc2NzcyJdLCJuYW1lcyI6WyJjaGVja0Zvcm0iLCIkIiwiYWRkQ2xhc3MiLCJmaW5kIiwibGVuZ3RoIiwiZWFjaCIsImkiLCJwYW5lbCIsInJlbW92ZUNsYXNzIiwib24iLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNDQSxTQUFTQSxTQUFULEdBQXFCO0FBQ2pCQyxHQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLFFBQVYsQ0FBbUIsV0FBbkIsRUFEaUIsQ0FFakI7O0FBQ0EsTUFBSUQsQ0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVRSxJQUFWLENBQWUsV0FBZixFQUE0QkMsTUFBaEMsRUFBd0M7QUFDcENILEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUUsSUFBVixDQUFlLFdBQWYsRUFBNEJFLElBQTVCLENBQWlDLFVBQVVDLENBQVYsRUFBYUMsS0FBYixFQUFvQjtBQUNqRCxVQUFJTixDQUFDLENBQUNNLEtBQUQsQ0FBRCxDQUFTSixJQUFULENBQWMsVUFBZCxFQUEwQkMsTUFBOUIsRUFBc0M7QUFDbENILFNBQUMsQ0FBQyxhQUFELENBQUQsQ0FBaUJFLElBQWpCLENBQXNCLGtCQUFrQkcsQ0FBbEIsR0FBc0IsR0FBNUMsRUFBaURKLFFBQWpELENBQTBELGFBQTFEO0FBQ0gsT0FGRCxNQUVPO0FBQ0hELFNBQUMsQ0FBQyxhQUFELENBQUQsQ0FBaUJFLElBQWpCLENBQXNCLGtCQUFrQkcsQ0FBbEIsR0FBc0IsR0FBNUMsRUFBaURFLFdBQWpELENBQTZELGFBQTdEO0FBQ0g7QUFDSixLQU5EO0FBT0g7QUFDSjs7QUFFRFAsQ0FBQyxDQUFDLHVCQUFELENBQUQsQ0FBMkJRLEVBQTNCLENBQThCLE9BQTlCLEVBQXVDLFVBQVVDLENBQVYsRUFBYTtBQUVoRFYsV0FBUztBQUNaLENBSEQsRTs7Ozs7Ozs7Ozs7O0FDaEJBIiwiZmlsZSI6ImFkbWlubHRlLWZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAnLi9mb3JtLmpzJ1xuaW1wb3J0ICcuL2Zvcm0uc2NzcyciLCJcblxuZnVuY3Rpb24gY2hlY2tGb3JtKCkge1xuICAgICQoJ2Zvcm0nKS5hZGRDbGFzcygnZm9ybS1zZW50Jyk7XG4gICAgLy9QYW5lbCB2dWVzIGpzXG4gICAgaWYgKCQoJ2Zvcm0nKS5maW5kKCcudGFiLXBhbmUnKS5sZW5ndGgpIHtcbiAgICAgICAgJCgnZm9ybScpLmZpbmQoJy50YWItcGFuZScpLmVhY2goZnVuY3Rpb24gKGksIHBhbmVsKSB7XG4gICAgICAgICAgICBpZiAoJChwYW5lbCkuZmluZCgnOmludmFsaWQnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAkKCcjbmF2LXBhcmFtcycpLmZpbmQoJy5uYXYtaXRlbTplcSgnICsgaSArICcpJykuYWRkQ2xhc3MoJ2hhcy1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJyNuYXYtcGFyYW1zJykuZmluZCgnLm5hdi1pdGVtOmVxKCcgKyBpICsgJyknKS5yZW1vdmVDbGFzcygnaGFzLWludmFsaWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG5cbiQoJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcblxuICAgIGNoZWNrRm9ybSgpO1xufSkiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9 | |||||
======= | |||||
/******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_array_find_js"], () => (__webpack_exec__("../LaclicBundles/SovBundle/Resources/assets/app/adminlte/form/app.form.js"))); | |||||
/******/ var __webpack_exports__ = __webpack_require__.O(); | |||||
/******/ } | |||||
]); | |||||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFjbGljQnVuZGxlcy9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvZm9ybS9hcHAuZm9ybS5qcyIsIndlYnBhY2s6Ly8vLi4vTGFjbGljQnVuZGxlcy9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvZm9ybS9mb3JtLmpzIiwid2VicGFjazovLy8uLi9MYWNsaWNCdW5kbGVzL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9mb3JtL2Zvcm0uc2NzcyJdLCJuYW1lcyI6WyJjaGVja0Zvcm0iLCIkIiwiYWRkQ2xhc3MiLCJmaW5kIiwibGVuZ3RoIiwiZWFjaCIsImkiLCJwYW5lbCIsInJlbW92ZUNsYXNzIiwib24iLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNDQSxTQUFTQSxTQUFULEdBQXFCO0FBQ2pCQyxHQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLFFBQVYsQ0FBbUIsV0FBbkIsRUFEaUIsQ0FFakI7O0FBQ0EsTUFBSUQsQ0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVRSxJQUFWLENBQWUsV0FBZixFQUE0QkMsTUFBaEMsRUFBd0M7QUFDcENILEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUUsSUFBVixDQUFlLFdBQWYsRUFBNEJFLElBQTVCLENBQWlDLFVBQVVDLENBQVYsRUFBYUMsS0FBYixFQUFvQjtBQUNqRCxVQUFJTixDQUFDLENBQUNNLEtBQUQsQ0FBRCxDQUFTSixJQUFULENBQWMsVUFBZCxFQUEwQkMsTUFBOUIsRUFBc0M7QUFDbENILFNBQUMsQ0FBQyxhQUFELENBQUQsQ0FBaUJFLElBQWpCLENBQXNCLGtCQUFrQkcsQ0FBbEIsR0FBc0IsR0FBNUMsRUFBaURKLFFBQWpELENBQTBELGFBQTFEO0FBQ0gsT0FGRCxNQUVPO0FBQ0hELFNBQUMsQ0FBQyxhQUFELENBQUQsQ0FBaUJFLElBQWpCLENBQXNCLGtCQUFrQkcsQ0FBbEIsR0FBc0IsR0FBNUMsRUFBaURFLFdBQWpELENBQTZELGFBQTdEO0FBQ0g7QUFDSixLQU5EO0FBT0g7QUFDSjs7QUFFRFAsQ0FBQyxDQUFDLHVCQUFELENBQUQsQ0FBMkJRLEVBQTNCLENBQThCLE9BQTlCLEVBQXVDLFVBQVVDLENBQVYsRUFBYTtBQUVoRFYsV0FBUztBQUNaLENBSEQsRTs7Ozs7Ozs7Ozs7O0FDaEJBIiwiZmlsZSI6ImFkbWlubHRlLWZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAnLi9mb3JtLmpzJ1xuaW1wb3J0ICcuL2Zvcm0uc2NzcyciLCJcblxuZnVuY3Rpb24gY2hlY2tGb3JtKCkge1xuICAgICQoJ2Zvcm0nKS5hZGRDbGFzcygnZm9ybS1zZW50Jyk7XG4gICAgLy9QYW5lbCB2dWVzIGpzXG4gICAgaWYgKCQoJ2Zvcm0nKS5maW5kKCcudGFiLXBhbmUnKS5sZW5ndGgpIHtcbiAgICAgICAgJCgnZm9ybScpLmZpbmQoJy50YWItcGFuZScpLmVhY2goZnVuY3Rpb24gKGksIHBhbmVsKSB7XG4gICAgICAgICAgICBpZiAoJChwYW5lbCkuZmluZCgnOmludmFsaWQnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAkKCcjbmF2LXBhcmFtcycpLmZpbmQoJy5uYXYtaXRlbTplcSgnICsgaSArICcpJykuYWRkQ2xhc3MoJ2hhcy1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJyNuYXYtcGFyYW1zJykuZmluZCgnLm5hdi1pdGVtOmVxKCcgKyBpICsgJyknKS5yZW1vdmVDbGFzcygnaGFzLWludmFsaWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG5cbiQoJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcblxuICAgIGNoZWNrRm9ybSgpO1xufSkiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9 | |||||
>>>>>>> e36ac0b2225ac3f104d96aaae3ed40fc8b33ce6a |
table.table .dropdown-actions{display:inline-block} |
table.table .dropdown-actions { | |||||
display: inline-block; | |||||
} | |||||
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmRleC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVFO0VBQ0U7QUFESixDIiwiZmlsZSI6ImFkbWlubHRlLWluZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxudGFibGUudGFibGUge1xuICAuZHJvcGRvd24tYWN0aW9ucyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrIDtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ |
(self.webpackChunk=self.webpackChunk||[]).push([[121],{9430:(t,r,e)=>{"use strict";e(1704),e(9415)},9415:(t,r,e)=>{e(4916),e(5306),e(9826),e(3112),e(3710),e(1539),e(9714),jQuery(document).ready((function(){$(".sov-sortable").length>0&&($(".sov-sortable tbody").sortable({placeholder:"ui-state-highlight"}),$(".sov-sortable tbody").on("sortupdate",(function(t,r){prototype=$("#form_entities").data("prototype"),$(".sov-sortable tr.sov-draggable").each((function(t,r){var e=prototype.replace(/__name__/g,t);$(r).find("div:last-child").remove(),$(r).append(e),$(r).find("#form_entities_"+t+"_id").val($(r).data("id")),""!==$(".sov-sortable").data("parent-position")?(indexAsString=t.toString().padStart(2,"0"),val=$(".sov-sortable").data("parent-position")+"."+indexAsString):val=t,$(r).find("#form_entities_"+t+"_position").val(val)}))})))}))},648:(t,r,e)=>{var n=e(1694),o=e(4326),i=e(5112)("toStringTag"),a="Arguments"==o(function(){return arguments}());t.exports=n?o:function(t){var r,e,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,r){try{return t[r]}catch(t){}}(r=Object(t),i))?e:a?o(r):"Object"==(n=o(r))&&"function"==typeof r.callee?"Arguments":n}},288:(t,r,e)=>{"use strict";var n=e(1694),o=e(648);t.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},4986:(t,r,e)=>{var n=e(8113);t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)},6650:(t,r,e)=>{var n=e(7466),o=e(8415),i=e(4488),a=Math.ceil,s=function(t){return function(r,e,s){var l,u,c=String(i(r)),g=c.length,p=void 0===s?" ":String(s),f=n(e);return f<=g||""==p?c:(l=f-g,(u=o.call(p,a(l/p.length))).length>l&&(u=u.slice(0,l)),t?c+u:u+c)}};t.exports={start:s(!1),end:s(!0)}},8415:(t,r,e)=>{"use strict";var n=e(9958),o=e(4488);t.exports=function(t){var r=String(o(this)),e="",i=n(t);if(i<0||i==1/0)throw RangeError("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(r+=r))1&i&&(e+=r);return e}},1694:(t,r,e)=>{var n={};n[e(5112)("toStringTag")]="z",t.exports="[object z]"===String(n)},3710:(t,r,e)=>{var n=e(1320),o=Date.prototype,i="Invalid Date",a="toString",s=o.toString,l=o.getTime;new Date(NaN)+""!=i&&n(o,a,(function(){var t=l.call(this);return t==t?s.call(this):i}))},1539:(t,r,e)=>{var n=e(1694),o=e(1320),i=e(288);n||o(Object.prototype,"toString",i,{unsafe:!0})},9714:(t,r,e)=>{"use strict";var n=e(1320),o=e(9670),i=e(7293),a=e(7066),s="toString",l=RegExp.prototype,u=l.toString,c=i((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),g=u.name!=s;(c||g)&&n(RegExp.prototype,s,(function(){var t=o(this),r=String(t.source),e=t.flags;return"/"+r+"/"+String(void 0===e&&t instanceof RegExp&&!("flags"in l)?a.call(t):e)}),{unsafe:!0})},3112:(t,r,e)=>{"use strict";var n=e(694),o=e(6650).start;n({target:"String",proto:!0,forced:e(4986)},{padStart:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})}},t=>{"use strict";t.O(0,[381,855,2,968],(()=>{return r=9430,t(t.s=r);var r}));t.O()}]); |
.form-sent .form-control:invalid{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='m0 0 3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");background-position:center right calc(.375em + .1875rem);background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:#dc3545;padding-right:2.25rem}.form-sent select.form-control:invalid+.select2 .select2-selection{border-color:#dc3545}.form-sent select.form-control:invalid+.select2 .select2-selection b{border-color:#dc3545 transparent transparent}.form-sent .form-check-label input:invalid~.checkmark{border-color:#dc3545}.nav-item .nav-link{position:relative}.nav-item .nav-link .invalid-form{background:#fff;border-radius:10px;color:#dc3545;display:none;font-size:1.2rem;position:absolute;right:-6px;top:-7px}.nav-item.has-invalid .nav-link .invalid-form{display:inline-block;z-index:2} |
.form-sent .form-control:invalid { | |||||
border-color: #dc3545; | |||||
padding-right: 2.25rem; | |||||
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); | |||||
background-repeat: no-repeat; | |||||
background-position: center right calc(.375em + .1875rem); | |||||
background-size: calc(.75em + .375rem) calc(.75em + .375rem); | |||||
} | |||||
.form-sent select.form-control:invalid + .select2 .select2-selection { | |||||
border-color: #dc3545; | |||||
} | |||||
.form-sent select.form-control:invalid + .select2 .select2-selection b { | |||||
border-color: #dc3545 transparent transparent transparent; | |||||
} | |||||
.form-sent .form-check-label input:invalid ~ .checkmark { | |||||
border-color: #dc3545; | |||||
} | |||||
.nav-item .nav-link { | |||||
position: relative; | |||||
} | |||||
.nav-item .nav-link .invalid-form { | |||||
display: none; | |||||
position: absolute; | |||||
top: -7px; | |||||
right: -6px; | |||||
color: #dc3545; | |||||
background: #fff; | |||||
border-radius: 10px; | |||||
font-size: 1.2rem; | |||||
} | |||||
.nav-item.has-invalid .nav-link .invalid-form { | |||||
display: inline-block; | |||||
z-index: 2; | |||||
} | |||||
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zb3J0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjtBQUlFO0VBQ0U7QUFGSjtBQUtFO0VBQ0U7QUFISjtBQU1FO0VBQ0U7QUFKSjs7QUFRQTtFQUNFO0FBTEY7QUFPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFMSjs7QUFTQTtFQUNFO0VBQ0E7QUFORixDIiwiZmlsZSI6ImFkbWlubHRlLXNvcnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG4uZm9ybS1zZW50IHtcbiAgLmZvcm0tY29udHJvbDppbnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gICAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZGMzNTQ1JyB2aWV3Qm94PSctMiAtMiA3IDcnJTNlJTNjcGF0aCBzdHJva2U9JyUyM2RjMzU0NScgZD0nTTAgMGwzIDNtMC0zTDAgMycvJTNlJTNjY2lyY2xlIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3k9JzMnIHI9Jy41Jy8lM2UlM2NjaXJjbGUgY3g9JzMnIGN5PSczJyByPScuNScvJTNlJTNjL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCBjYWxjKC4zNzVlbSArIC4xODc1cmVtKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoLjc1ZW0gKyAuMzc1cmVtKSBjYWxjKC43NWVtICsgLjM3NXJlbSk7XG4gIH1cblxuICBzZWxlY3QuZm9ybS1jb250cm9sOmludmFsaWQgKyAuc2VsZWN0MiAuc2VsZWN0Mi1zZWxlY3Rpb24ge1xuICAgIGJvcmRlci1jb2xvcjogI2RjMzU0NTtcbiAgfVxuXG4gIHNlbGVjdC5mb3JtLWNvbnRyb2w6aW52YWxpZCArIC5zZWxlY3QyIC5zZWxlY3QyLXNlbGVjdGlvbiBiIHtcbiAgICBib3JkZXItY29sb3I6ICNkYzM1NDUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuZm9ybS1jaGVjay1sYWJlbCBpbnB1dDppbnZhbGlkIH4gLmNoZWNrbWFyayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1O1xuICB9XG59XG5cbi5uYXYtaXRlbSAubmF2LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmludmFsaWQtZm9ybSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtN3B4O1xuICAgIHJpZ2h0OiAtNnB4O1xuICAgIGNvbG9yOiAjZGMzNTQ1O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxufVxuXG4ubmF2LWl0ZW0uaGFzLWludmFsaWQgLm5hdi1saW5rIC5pbnZhbGlkLWZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHotaW5kZXg6IDI7XG59XG5cblxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ |
"entrypoints": { | "entrypoints": { | ||||
"adminlte-common": { | "adminlte-common": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"/build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js", | |||||
"/build/vendors-node_modules_jquery_src_jquery_js.js", | |||||
"/build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.js", | |||||
"/build/adminlte-common.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/855.1a90cf0b.js", | |||||
"/build/2.82318c17.js", | |||||
"/build/adminlte-common.13795801.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.css", | |||||
"/build/adminlte-common.css" | |||||
"/build/397.22e80764.css", | |||||
"/build/adminlte-common.b38e2a69.css" | |||||
] | ] | ||||
}, | }, | ||||
"adminlte-index": { | "adminlte-index": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"/build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-87c47e.js", | |||||
"/build/adminlte-index.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/855.1a90cf0b.js", | |||||
"/build/adminlte-index.165b6d5f.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/adminlte-index.css" | |||||
"/build/adminlte-index.6da7c845.css" | |||||
] | ] | ||||
}, | }, | ||||
"adminlte-form": { | "adminlte-form": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"/build/adminlte-form.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/adminlte-form.955283cf.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/adminlte-form.css" | |||||
"/build/adminlte-form.91ae0001.css" | |||||
] | ] | ||||
}, | }, | ||||
"adminlte-sort": { | "adminlte-sort": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"/build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js", | |||||
"/build/vendors-node_modules_jquery_src_jquery_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js-node_modules_jquery-ui-dist_jquery-ui_js.js", | |||||
"/build/adminlte-sort.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/855.1a90cf0b.js", | |||||
"/build/2.82318c17.js", | |||||
"/build/968.afff9075.js", | |||||
"/build/adminlte-sort.18ffe03a.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/adminlte-sort.css" | |||||
"/build/adminlte-sort.ceced0e5.css" | |||||
] | ] | ||||
}, | }, | ||||
"adminlte-field-filemanager": { | "adminlte-field-filemanager": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/adminlte-field-filemanager.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/adminlte-field-filemanager.646380ef.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/adminlte-field-filemanager.css" | |||||
"/build/adminlte-field-filemanager.a5cf5a0e.css" | |||||
] | ] | ||||
}, | }, | ||||
"adminlte-field-collection": { | "adminlte-field-collection": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.js", | |||||
"/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"/build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js", | |||||
"/build/vendors-node_modules_jquery_src_jquery_js.js", | |||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js-node_modules_jquery-ui-dist_jquery-ui_js.js", | |||||
"/build/adminlte-field-collection.js" | |||||
"/build/runtime.fc216495.js", | |||||
"/build/381.e96f5205.js", | |||||
"/build/855.1a90cf0b.js", | |||||
"/build/2.82318c17.js", | |||||
"/build/968.afff9075.js", | |||||
"/build/adminlte-field-collection.2d46c31c.js" | |||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/adminlte-field-collection.css" | |||||
"/build/adminlte-field-collection.31d6cfe0.css" | |||||
] | ] | ||||
} | } | ||||
} | } |
{ | { | ||||
"build/adminlte-common.css": "/build/adminlte-common.css", | |||||
"build/adminlte-common.js": "/build/adminlte-common.js", | |||||
"build/adminlte-index.css": "/build/adminlte-index.css", | |||||
"build/adminlte-index.js": "/build/adminlte-index.js", | |||||
"build/adminlte-form.css": "/build/adminlte-form.css", | |||||
"build/adminlte-form.js": "/build/adminlte-form.js", | |||||
"build/adminlte-sort.css": "/build/adminlte-sort.css", | |||||
"build/adminlte-sort.js": "/build/adminlte-sort.js", | |||||
"build/adminlte-field-filemanager.css": "/build/adminlte-field-filemanager.css", | |||||
"build/adminlte-field-filemanager.js": "/build/adminlte-field-filemanager.js", | |||||
"build/adminlte-field-collection.css": "/build/adminlte-field-collection.css", | |||||
"build/adminlte-field-collection.js": "/build/adminlte-field-collection.js", | |||||
"build/runtime.js": "/build/runtime.js", | |||||
"build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js": "/build/vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js.js", | |||||
"build/vendors-node_modules_core-js_modules_es_array_find_js.js": "/build/vendors-node_modules_core-js_modules_es_array_find_js.js", | |||||
"build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js": "/build/vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0.js", | |||||
"build/vendors-node_modules_jquery_src_jquery_js.js": "/build/vendors-node_modules_jquery_src_jquery_js.js", | |||||
"build/vendors-node_modules_core-js_modules_es_string_replace_js-node_modules_jquery-ui-dist_jquery-ui_js.js": "/build/vendors-node_modules_core-js_modules_es_string_replace_js-node_modules_jquery-ui-dist_jquery-ui_js.js", | |||||
"build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.css": "/build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.css", | |||||
"build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.js": "/build/vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64.js", | |||||
"build/vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-87c47e.js": "/build/vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-87c47e.js", | |||||
"build/adminlte-common.css": "/build/adminlte-common.b38e2a69.css", | |||||
"build/adminlte-common.js": "/build/adminlte-common.13795801.js", | |||||
"build/adminlte-index.css": "/build/adminlte-index.6da7c845.css", | |||||
"build/adminlte-index.js": "/build/adminlte-index.165b6d5f.js", | |||||
"build/adminlte-form.css": "/build/adminlte-form.91ae0001.css", | |||||
"build/adminlte-form.js": "/build/adminlte-form.955283cf.js", | |||||
"build/adminlte-sort.css": "/build/adminlte-sort.ceced0e5.css", | |||||
"build/adminlte-sort.js": "/build/adminlte-sort.18ffe03a.js", | |||||
"build/adminlte-field-filemanager.css": "/build/adminlte-field-filemanager.a5cf5a0e.css", | |||||
"build/adminlte-field-filemanager.js": "/build/adminlte-field-filemanager.646380ef.js", | |||||
"build/adminlte-field-collection.css": "/build/adminlte-field-collection.31d6cfe0.css", | |||||
"build/adminlte-field-collection.js": "/build/adminlte-field-collection.2d46c31c.js", | |||||
"build/runtime.js": "/build/runtime.fc216495.js", | |||||
"build/381.e96f5205.js": "/build/381.e96f5205.js", | |||||
"build/855.1a90cf0b.js": "/build/855.1a90cf0b.js", | |||||
"build/2.82318c17.js": "/build/2.82318c17.js", | |||||
"build/968.afff9075.js": "/build/968.afff9075.js", | |||||
"build/397.22e80764.css": "/build/397.22e80764.css", | |||||
"build/images/fa-solid-900.svg": "/build/images/fa-solid-900.13de59f1.svg", | "build/images/fa-solid-900.svg": "/build/images/fa-solid-900.13de59f1.svg", | ||||
"build/images/fa-brands-400.svg": "/build/images/fa-brands-400.216edb96.svg", | "build/images/fa-brands-400.svg": "/build/images/fa-brands-400.216edb96.svg", | ||||
"build/fonts/fa-solid-900.eot": "/build/fonts/fa-solid-900.efbd5d20.eot", | "build/fonts/fa-solid-900.eot": "/build/fonts/fa-solid-900.efbd5d20.eot", |
(()=>{"use strict";var e,r={},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var i=t[e]={exports:{}};return r[e].call(i.exports,i,i.exports,n),i.exports}n.m=r,n.amdD=function(){throw new Error("define cannot be used indirect")},e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(f=0;f<e.length;f++){for(var[t,o,i]=e[f],l=!0,u=0;u<t.length;u++)(!1&i||a>=i)&&Object.keys(n.O).every((e=>n.O[e](t[u])))?t.splice(u--,1):(l=!1,i<a&&(a=i));l&&(e.splice(f--,1),r=o())}return r}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={666:0,397:0};n.O.j=r=>0===e[r];var r=(r,t)=>{var o,i,[a,l,u]=t,f=0;for(o in l)n.o(l,o)&&(n.m[o]=l[o]);if(u)var c=u(n);for(r&&r(t);f<a.length;f++)i=a[f],n.o(e,i)&&e[i]&&e[i][0](),e[a[f]]=0;return n.O(c)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})(); |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\CollectifData; | use App\Entity\CollectifData; | ||||
use Lc\SovBundle\Controller\Admin\AbstractCrudController; | |||||
use App\Entity\Configuration; | |||||
use App\Type\DreamsType; | |||||
use App\Type\ProjectsBoostType; | |||||
use App\Type\ProjectsInspiringType; | |||||
use App\Type\RevoltsType; | |||||
use Doctrine\ORM\EntityManagerInterface; | |||||
use Doctrine\ORM\QueryBuilder; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Filters; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\HiddenField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
use Lc\SovBundle\Doctrine\Extension\TreeInterface; | |||||
use Lc\SovBundle\Field\CollectionField; | |||||
use Lc\SovBundle\Field\StatusField; | |||||
class CollectifDataCrudController extends AbstractCrudController | class CollectifDataCrudController extends AbstractCrudController | ||||
{ | { | ||||
return CollectifData::class; | return CollectifData::class; | ||||
} | } | ||||
/* | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | |||||
IdField::new('id'), | |||||
TextField::new('title'), | |||||
TextEditorField::new('description'), | |||||
]; | |||||
$fields = array(); | |||||
$fields[] = AssociationField::new('territory') | |||||
->setTemplatePath('crud/field/association.html.twig'); | |||||
$fields[] = IntegerField::new('nbParticipant'); | |||||
$fields[] = TextField::new('nbDreams') | |||||
->onlyOnIndex(); | |||||
$fields[] = TextField::new('nbRevolts') | |||||
->onlyOnIndex(); | |||||
$fields[] = TextField::new('nbProjectsBoost') | |||||
->onlyOnIndex(); | |||||
$fields[] = TextField::new('nbProjectsInspiring') | |||||
->onlyOnIndex(); | |||||
$fields[] = CollectionField::new('revolts') | |||||
->setFormTypeOption('entry_type', RevoltsType::class) | |||||
->setFormTypeOption('by_reference', false) | |||||
->setRequired(false) | |||||
->hideOnIndex(); | |||||
$fields[] = CollectionField::new('dreams') | |||||
->setFormTypeOption('entry_type', DreamsType::class) | |||||
->setFormTypeOption('by_reference', false) | |||||
->setRequired(false) | |||||
->hideOnIndex(); | |||||
$fields[] = CollectionField::new('projectsboost') | |||||
->setFormTypeOption('entry_type', ProjectsBoostType::class) | |||||
->setFormTypeOption('by_reference', false) | |||||
->setRequired(false) | |||||
->hideOnIndex(); | |||||
$fields[] = CollectionField::new('projectsinspiring') | |||||
->setFormTypeOption('entry_type', ProjectsInspiringType::class) | |||||
->setFormTypeOption('by_reference', false) | |||||
->setRequired(false) | |||||
->hideOnIndex(); | |||||
$hasAccess = $this->isGranted('ROLE_ADMIN'); | |||||
if ($hasAccess) { | |||||
$fields[] = StatusField::new('status') | |||||
->setFormTypeOption('data', 0) | |||||
->setFormTypeOption('choices', ['Validé' => 1, 'En attente' => 0]) | |||||
->setCustomOption('toggle_label', 'Valider') | |||||
->hideOnIndex(); | |||||
} else { | |||||
$fields[] = HiddenField::new('status') | |||||
->setFormTypeOption('data', 0) | |||||
->hideOnIndex(); | |||||
} | |||||
return $fields; | |||||
} | |||||
public function createIndexQueryBuilder( | |||||
SearchDto $searchDto, | |||||
EntityDto $entityDto, | |||||
FieldCollection $fields, | |||||
FilterCollection $filters | |||||
): QueryBuilder | |||||
{ | |||||
$queryBuilder = parent::createIndexQueryBuilder( | |||||
$searchDto, | |||||
$entityDto, | |||||
$fields, | |||||
$filters | |||||
); | |||||
$queryBuilder->andWhere('entity.status = ' . $searchDto->getRequest()->get('status')); | |||||
return $queryBuilder; | |||||
} | |||||
public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void | |||||
{ | |||||
$entityInstance->setUser($this->getUser()); | |||||
$entityManager->persist($entityInstance); | |||||
$entityManager->flush(); | |||||
parent::persistEntity($entityManager, $entityInstance); | |||||
} | } | ||||
*/ | |||||
} | } |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\Configuration; | use App\Entity\Configuration; | ||||
use Lc\SovBundle\Controller\Admin\AbstractCrudController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
class ConfigurationCrudController extends AbstractCrudController | class ConfigurationCrudController extends AbstractCrudController | ||||
{ | { | ||||
return Configuration::class; | return Configuration::class; | ||||
} | } | ||||
/* | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | return [ | ||||
IdField::new('id'), | |||||
TextField::new('title'), | |||||
TextEditorField::new('description'), | |||||
TextField::new('devAlias'), | |||||
TextField::new('value'), | |||||
]; | ]; | ||||
} | } | ||||
*/ | |||||
} | } |
<?php | |||||
namespace App\Controller\Admin; | |||||
use App\Entity\CollectifData; | |||||
use App\Entity\Common\TaxRate; | |||||
use App\Entity\Configuration; | |||||
use App\Entity\IndividualData; | |||||
use App\Entity\Site\Page; | |||||
use App\Entity\Territory; | |||||
use App\Entity\Thematic; | |||||
use App\Entity\User\GroupUser; | |||||
use App\Entity\User\User; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Action; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator; | |||||
use Lc\SovBundle\Controller\Dashboard\DashboardController as SovDashboardController; | |||||
use Symfony\Component\HttpFoundation\Response; | |||||
class DashboardAnimatorController extends SovDashboardController | |||||
{ | |||||
protected $adminUrlGenerator; | |||||
public function __construct(AdminUrlGenerator $adminUrlGenerator) | |||||
{ | |||||
$this->adminUrlGenerator = $adminUrlGenerator; | |||||
} | |||||
public function index(): Response | |||||
{ | |||||
$urlCreate = $this->adminUrlGenerator | |||||
->setController(CollectifDataCrudController::class) | |||||
->setAction(Action::NEW) | |||||
->generateUrl(); | |||||
$nbForm = $this->getDoctrine() | |||||
->getRepository(CollectifData::class) | |||||
->findByUser($this->getUser()); | |||||
return $this->render('/adminlte/dashboard-animator.html.twig', | |||||
[ | |||||
'urlCreate' => $urlCreate, | |||||
'nbForm' => count($nbForm), | |||||
]); | |||||
} | |||||
public function configureMenuItems(): iterable | |||||
{ | |||||
$urlCreate = $this->adminUrlGenerator | |||||
->setController(CollectifDataCrudController::class) | |||||
->setAction(Action::NEW) | |||||
->generateUrl(); | |||||
yield MenuItem::linkToDashboard('dashboard', 'far fa-circle'); | |||||
yield MenuItem::linkToUrl('data_collectif_create', 'fas fa-plus', $urlCreate); | |||||
yield MenuItem::subMenu('account', 'fas fa-user') | |||||
->setSubItems( | |||||
[ | |||||
MenuItem::linkToRoute('account_profile', 'fas fa-user-cog', 'sov_admin_account_profile'), | |||||
MenuItem::linkToRoute('account_password', 'fas fa-key', 'sov_admin_account_password'), | |||||
] | |||||
); | |||||
} | |||||
} |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\CollectifData; | |||||
use App\Entity\Common\TaxRate; | use App\Entity\Common\TaxRate; | ||||
use App\Entity\Configuration; | |||||
use App\Entity\Dreams; | |||||
use App\Entity\IndividualData; | use App\Entity\IndividualData; | ||||
use App\Entity\ProjectsBoost; | |||||
use App\Entity\ProjectsInspiring; | |||||
use App\Entity\Revolts; | |||||
use App\Entity\Site\Page; | use App\Entity\Site\Page; | ||||
use App\Entity\Territory; | |||||
use App\Entity\Thematic; | |||||
use App\Entity\User\GroupUser; | use App\Entity\User\GroupUser; | ||||
use App\Entity\User\User; | use App\Entity\User\User; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Action; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets; | use EasyCorp\Bundle\EasyAdminBundle\Config\Assets; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; | use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem; | use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem; | ||||
use Lc\SovBundle\Controller\Admin\DashboardController as SovDashboardController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator; | |||||
use Lc\SovBundle\Controller\Dashboard\DashboardController as SovDashboardController; | |||||
use Symfony\Component\HttpFoundation\Response; | |||||
class DashboardController extends SovDashboardController | class DashboardController extends SovDashboardController | ||||
{ | { | ||||
const ROLE_ADMIN = "ROLE_ADMIN"; | |||||
const ROLE_SUPER_ADMIN = "ROLE_SUPER_ADMIN"; | |||||
const ROLE_ANIMATOR = "ROLE_ANIMATOR"; | |||||
private $adminUrlGenerator; | |||||
public function __construct(AdminUrlGenerator $adminUrlGenerator) | |||||
{ | |||||
$this->adminUrlGenerator = $adminUrlGenerator; | |||||
} | |||||
public function index(): Response | |||||
{ | |||||
$repoCollectifData = $this->getDoctrine()->getRepository(CollectifData::class); | |||||
$repoDreams = $this->getDoctrine()->getRepository(Dreams::class); | |||||
$repoRevolts = $this->getDoctrine()->getRepository(Revolts::class); | |||||
$repoProjectsBoost = $this->getDoctrine()->getRepository(ProjectsBoost::class); | |||||
$repoProjectsInsp = $this->getDoctrine()->getRepository(ProjectsInspiring::class); | |||||
$repoUser = $this->getDoctrine()->getRepository(User::class); | |||||
$formUnvalid = $repoCollectifData->findByStatus(0); | |||||
$formValid = $repoCollectifData->findByStatus(1); | |||||
$dreams = $repoDreams->findAll(); | |||||
$revolts = $repoRevolts->findAll(); | |||||
$projectsBoost = $repoProjectsBoost->findAll(); | |||||
$projectsInsp = $repoProjectsInsp->findAll(); | |||||
$animators = $repoUser->findByRole(self::ROLE_ANIMATOR); | |||||
return $this->render('/adminlte/dashboard.html.twig', | |||||
[ | |||||
'nbFormUnvalid' => count($formUnvalid), | |||||
'nbFormValid' => count($formValid), | |||||
'nbDreams' => count($dreams), | |||||
'nbRevolts' => count($revolts), | |||||
'nbProjectsBoost' => count($projectsBoost), | |||||
'nbProjectsInsp' => count($projectsInsp), | |||||
'nbAnimator' => count($animators) | |||||
]); | |||||
} | |||||
public function configureMenuItems(): iterable | public function configureMenuItems(): iterable | ||||
{ | { | ||||
yield MenuItem::linkToDashboard('dashboard', 'circle'); | |||||
yield MenuItem::linkToCrud('page', 'copy', Page::class); | |||||
yield MenuItem::subMenu('user', 'user')->setSubItems( | |||||
[ | |||||
MenuItem::linkToCrud('user_index', '', User::class), | |||||
] | |||||
); | |||||
yield MenuItem::subMenu('account', 'user')->setSubItems( | |||||
[ | |||||
MenuItem::linkToRoute('account_profile', '', 'sov_admin_account_profile'), | |||||
MenuItem::linkToRoute('account_password', '', 'sov_admin_account_password'), | |||||
] | |||||
); | |||||
yield MenuItem::subMenu('data_individual', 'user')->setSubItems( | |||||
[ | |||||
MenuItem::linkToCrud('data_individual_validate', '', IndividualData::class), | |||||
MenuItem::linkToCrud('data_individual_waiting', '', IndividualData::class), | |||||
] | |||||
); | |||||
yield MenuItem::subMenu('data_collectif', 'user')->setSubItems( | |||||
[ | |||||
MenuItem::linkToCrud('data_individual_validate', '', IndividualData::class), | |||||
MenuItem::linkToCrud('data_individual_waiting', '', IndividualData::class), | |||||
] | |||||
); | |||||
$urlNewCollectif = $this->adminUrlGenerator | |||||
->setController(CollectifDataCrudController::class) | |||||
->setAction(Action::NEW) | |||||
->set('menuIndex', 3) | |||||
->set('submenuIndex', 0) | |||||
->generateUrl(); | |||||
$urlOnlineCollectif = $this->adminUrlGenerator | |||||
->setController(CollectifDataCrudController::class) | |||||
->setAction(Action::INDEX) | |||||
->set('status', 1) | |||||
->set('menuIndex', 3) | |||||
->set('submenuIndex', 2) | |||||
->generateUrl(); | |||||
$urlOfflineCollectif = $this->adminUrlGenerator | |||||
->setController(CollectifDataCrudController::class) | |||||
->setAction(Action::INDEX) | |||||
->set('status', 0) | |||||
->set('menuIndex', 3) | |||||
->set('submenuIndex', 1) | |||||
->generateUrl(); | |||||
$urlOnlineIndividuel = $this->adminUrlGenerator | |||||
->setController(IndividualDataCrudController::class) | |||||
->setAction(Action::INDEX) | |||||
->set('status', 1) | |||||
->set('menuIndex', 3) | |||||
->set('submenuIndex', 1) | |||||
->generateUrl(); | |||||
$urlOfflineIndividuel = $this->adminUrlGenerator | |||||
->setController(IndividualDataCrudController::class) | |||||
->setAction(Action::INDEX) | |||||
->set('status', 0) | |||||
->set('menuIndex', 3) | |||||
->set('submenuIndex', 0) | |||||
->generateUrl(); | |||||
$menuItems = [ | |||||
MenuItem::linkToDashboard('dashboard', 'far fa-circle'), | |||||
MenuItem::subMenu('account', 'fas fa-user') | |||||
->setSubItems( | |||||
[ | |||||
MenuItem::linkToRoute('account_profile', 'fas fa-user-cog', 'sov_admin_account_profile'), | |||||
MenuItem::linkToRoute('account_password', 'fas fa-key', 'sov_admin_account_password'), | |||||
] | |||||
), | |||||
MenuItem::linkToCrud('user', 'fas fa-users', User::class) | |||||
->setPermission(self::ROLE_ADMIN), | |||||
/*MenuItem::subMenu('data_individual', 'user') | |||||
->setPermission(self::ROLE_ADMIN) | |||||
->setSubItems( | |||||
[ | |||||
MenuItem::linkToUrl('data_individual_waiting', '', $urlOfflineIndividuel), | |||||
MenuItem::linkToUrl('data_individual_validate', '', $urlOnlineIndividuel), | |||||
] | |||||
),*/ | |||||
MenuItem::subMenu('data_collectif', 'fas fa-database') | |||||
->setPermission(self::ROLE_ADMIN) | |||||
->setSubItems( | |||||
[ | |||||
MenuItem::linkToUrl('data_collectif_new', 'fas fa-plus', $urlNewCollectif), | |||||
MenuItem::linkToUrl('data_collectif_waiting', 'fas fa-hourglass-half', $urlOfflineCollectif), | |||||
MenuItem::linkToUrl('data_collectif_validate', 'fas fa-check', $urlOnlineCollectif), | |||||
] | |||||
), | |||||
MenuItem::linkToCrud('thematic', 'fas fa-book', Thematic::class) | |||||
->setPermission(self::ROLE_ADMIN), | |||||
MenuItem::linkToCrud('territory', 'far fa-copy', Territory::class) | |||||
->setPermission(self::ROLE_SUPER_ADMIN), | |||||
MenuItem::linkToCrud('configuration', 'far fa-copy', Configuration::class) | |||||
->setPermission(self::ROLE_SUPER_ADMIN), | |||||
MenuItem::linkToCrud('page', 'far fa-copy', Page::class) | |||||
->setPermission(self::ROLE_ADMIN), | |||||
]; | |||||
/*$this->setMenuIndexes($menuItems);*/ | |||||
return $menuItems; | |||||
} | } | ||||
} | } |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\Configuration; | |||||
use App\Entity\IndividualData; | use App\Entity\IndividualData; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController; | |||||
use Doctrine\ORM\EntityManagerInterface; | |||||
use Doctrine\ORM\QueryBuilder; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\EmailField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Field\StatusField; | |||||
class IndividualDataCrudController extends AbstractCrudController | class IndividualDataCrudController extends AbstractCrudController | ||||
{ | { | ||||
return IndividualData::class; | return IndividualData::class; | ||||
} | } | ||||
/* | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | return [ | ||||
IdField::new('id'), | |||||
TextField::new('title'), | |||||
TextEditorField::new('description'), | |||||
TextField::new('firstname'), | |||||
TextField::new('lastname'), | |||||
EmailField::new('email'), | |||||
TextField::new('introAnswer'), | |||||
StatusField::new('status')->setRequired(false) | |||||
]; | ]; | ||||
} | } | ||||
*/ | |||||
public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void | |||||
{ | |||||
$configurationRepository = $this->getDoctrine()->getRepository(Configuration::class); | |||||
$configuration = $configurationRepository->findOneByDevAlias('intro_question'); | |||||
$entityInstance->setIntroQuestion($configuration->getValue()); | |||||
$entityManager->persist($entityInstance); | |||||
$entityManager->flush(); | |||||
parent::persistEntity($entityManager, $entityInstance); // TODO: Change the autogenerated stub | |||||
} | |||||
public function createIndexQueryBuilder( | |||||
SearchDto $searchDto, | |||||
EntityDto $entityDto, | |||||
FieldCollection $fields, | |||||
FilterCollection $filters | |||||
): QueryBuilder | |||||
{ | |||||
$queryBuilder = parent::createIndexQueryBuilder( | |||||
$searchDto, | |||||
$entityDto, | |||||
$fields, | |||||
$filters | |||||
); | |||||
$queryBuilder->andWhere('entity.status = ' . $searchDto->getRequest()->get('status')); | |||||
return $queryBuilder; | |||||
} | |||||
} | } |
use EasyCorp\Bundle\EasyAdminBundle\Field\FormField; | use EasyCorp\Bundle\EasyAdminBundle\Field\FormField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; | ||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | ||||
use Lc\SovBundle\Controller\Admin\AbstractCrudController; | |||||
use Lc\SovBundle\Field\BooleanField; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController;; | |||||
use Lc\SovBundle\Field\CKEditorField; | use Lc\SovBundle\Field\CKEditorField; | ||||
use Lc\SovBundle\Field\FileManagerField; | use Lc\SovBundle\Field\FileManagerField; | ||||
use Lc\SovBundle\Field\GalleryManagerField; | use Lc\SovBundle\Field\GalleryManagerField; |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\Territory; | use App\Entity\Territory; | ||||
use Lc\SovBundle\Controller\Admin\AbstractCrudController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
class TerritoryCrudController extends AbstractCrudController | class TerritoryCrudController extends AbstractCrudController | ||||
{ | { | ||||
return Territory::class; | return Territory::class; | ||||
} | } | ||||
/* | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | return [ | ||||
IdField::new('id'), | |||||
TextField::new('title'), | |||||
TextEditorField::new('description'), | |||||
TextField::new('devAlias'), | |||||
TextField::new('name'), | |||||
]; | ]; | ||||
} | } | ||||
*/ | |||||
} | } |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\Thematic; | use App\Entity\Thematic; | ||||
use Lc\SovBundle\Controller\Admin\AbstractCrudController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\FormField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
class ThematicCrudController extends AbstractCrudController | class ThematicCrudController extends AbstractCrudController | ||||
{ | { | ||||
return Thematic::class; | return Thematic::class; | ||||
} | } | ||||
/* | |||||
public function configureFields(string $pageName): iterable | public function configureFields(string $pageName): iterable | ||||
{ | { | ||||
return [ | return [ | ||||
IdField::new('id'), | |||||
TextField::new('title'), | |||||
TextEditorField::new('description'), | |||||
TextField::new('name'), | |||||
]; | ]; | ||||
} | } | ||||
*/ | |||||
} | } |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\User\User; | use App\Entity\User\User; | ||||
use Lc\SovBundle\Controller\Admin\UserCrudController as AbstractUserCrudController; | |||||
use Doctrine\ORM\EntityManagerInterface; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\ArrayField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\EmailField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Controller\User\UserAdminController as AbstractUserCrudController; | |||||
use Lc\SovBundle\Definition\RolesDefinitionInterface; | |||||
use Lc\SovBundle\Doctrine\EntityManager; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | |||||
use Symfony\Bridge\Twig\Mime\TemplatedEmail; | |||||
use Symfony\Component\HttpFoundation\RequestStack; | |||||
use Symfony\Component\HttpFoundation\Session\SessionInterface; | |||||
use Symfony\Component\Mailer\MailerInterface; | |||||
use Symfony\Component\Mime\Email; | |||||
use Symfony\Component\Mime\Message; | |||||
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface; | |||||
use Twig\Environment; | |||||
class UserCrudController extends AbstractUserCrudController | class UserCrudController extends AbstractUserCrudController | ||||
{ | { | ||||
public static function getEntityFqcn(): string | |||||
{ | |||||
return User::class; | |||||
protected $passwordEncoder; | |||||
protected $entityManager; | |||||
protected $mailerInterface; | |||||
public function __construct( | |||||
SessionInterface $session, | |||||
RequestStack $request, | |||||
EntityManager $em, | |||||
TranslatorAdmin $translatorAdmin, | |||||
RolesDefinitionInterface $rolesDefinition, | |||||
UserPasswordEncoderInterface $passwordEncoder, | |||||
EntityManager $entityManager, | |||||
MailerInterface $mailerInterface | |||||
) | |||||
{ | |||||
$this->passwordEncoder = $passwordEncoder; | |||||
$this->entityManager = $entityManager; | |||||
$this->mailerInterface = $mailerInterface; | |||||
parent::__construct($session, $request, $em, $translatorAdmin, $rolesDefinition); | |||||
} | |||||
public static function getEntityFqcn(): string | |||||
{ | |||||
return User::class; | |||||
} | |||||
public function configureFields(string $pageName): iterable | |||||
{ | |||||
return [ | |||||
TextField::new('firstname'), | |||||
TextField::new('lastname'), | |||||
EmailField::new('email'), | |||||
ChoiceField::new('roles') | |||||
->allowMultipleChoices() | |||||
->autocomplete() | |||||
->setChoices(["Utilisateur" => "ROLE_USER", "Animateur" => "ROLE_ANIMATOR", "Admin" => "ROLE_ADMIN"]), | |||||
]; | |||||
} | |||||
public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void | |||||
{ | |||||
// @TODO : gérer avec UserManager | |||||
$plainPassword = $this->generatePassword(12, 'azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN123456789#!?+=-/%'); | |||||
$newPasswordEncoded = $this->passwordEncoder->encodePassword($entityInstance, $plainPassword); | |||||
$entityInstance->setPassword($newPasswordEncoded); | |||||
$this->entityManager->create($entityInstance); | |||||
$this->entityManager->flush(); | |||||
$email = (new TemplatedEmail()) | |||||
->from('contact@laclic.fr') | |||||
->to($entityInstance->getEmail()) | |||||
->subject('Mot de passe Aux Actes Citoyens') | |||||
->htmlTemplate('emails/password.html.twig') | |||||
->context([ | |||||
'password' => $plainPassword, | |||||
'firstname' => $entityInstance->getFirstname(), | |||||
'lastname' => $entityInstance->getLastname(), | |||||
]); | |||||
$this->mailerInterface->send($email); | |||||
parent::persistEntity($entityManager, $entityInstance); | |||||
} | |||||
function generatePassword($caracteres = 12, $chaine = 'azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN123456789#!?+=-/%') | |||||
{ | |||||
$nb_lettres = strlen($chaine) - 1; | |||||
$generation = ''; | |||||
for ($i = 0; $i < $caracteres; $i++) { | |||||
$pos = mt_rand(0, $nb_lettres); | |||||
$car = $chaine[$pos]; | |||||
$generation .= $car; | |||||
} | } | ||||
return $generation; | |||||
} | |||||
} | } |
use Doctrine\Common\Collections\ArrayCollection; | use Doctrine\Common\Collections\ArrayCollection; | ||||
use Doctrine\Common\Collections\Collection; | use Doctrine\Common\Collections\Collection; | ||||
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\StatusInterface; | use Lc\SovBundle\Doctrine\Extension\StatusInterface; | ||||
use Lc\SovBundle\Doctrine\Extension\StatusTrait; | use Lc\SovBundle\Doctrine\Extension\StatusTrait; | ||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=CollectifDataRepository::class) | * @ORM\Entity(repositoryClass=CollectifDataRepository::class) | ||||
*/ | */ | ||||
class CollectifData implements StatusInterface | |||||
class CollectifData implements StatusInterface, EntityInterface | |||||
{ | { | ||||
use StatusTrait; | use StatusTrait; | ||||
private $user; | private $user; | ||||
/** | /** | ||||
* @ORM\OneToMany(targetEntity=Revolts::class, mappedBy="collectifData") | |||||
* @ORM\OneToMany(targetEntity=Revolts::class, mappedBy="collectifData", cascade={"persist", "remove"}) | |||||
*/ | */ | ||||
private $revolts; | private $revolts; | ||||
/** | /** | ||||
* @ORM\OneToMany(targetEntity=Dreams::class, mappedBy="collectifData") | |||||
* @ORM\OneToMany(targetEntity=Dreams::class, mappedBy="collectifData", cascade={"persist", "remove"}) | |||||
*/ | */ | ||||
private $dreams; | private $dreams; | ||||
/** | /** | ||||
* @ORM\OneToMany(targetEntity=ProjectsBoost::class, mappedBy="collectifData") | |||||
* @ORM\OneToMany(targetEntity=ProjectsBoost::class, mappedBy="collectifData", cascade={"persist", "remove"}) | |||||
*/ | */ | ||||
private $projectsBoost; | private $projectsBoost; | ||||
/** | /** | ||||
* @ORM\OneToMany(targetEntity=ProjectsInspiring::class, mappedBy="collectifData") | |||||
* @ORM\OneToMany(targetEntity=ProjectsInspiring::class, mappedBy="collectifData", cascade={"persist", "remove"}) | |||||
*/ | */ | ||||
private $projectsInspiring; | private $projectsInspiring; | ||||
$this->projectsInspiring = new ArrayCollection(); | $this->projectsInspiring = new ArrayCollection(); | ||||
} | } | ||||
public function __toString() | |||||
{ | |||||
return $this->nbParticipant . " participants"; | |||||
} | |||||
public function getResume() | |||||
{ | |||||
return count($this->getRevolts()) . " révolte(s) - " . count($this->getDreams()) . " rêve(s) - " . count($this->getProjectsBoost()) . " projet(s) boosté(s) - " . count($this->getProjectsInspiring()) . " projets inspirants"; | |||||
} | |||||
public function getNbDreams():string | |||||
{ | |||||
return count($this->getDreams()); | |||||
} | |||||
public function getNbRevolts():string | |||||
{ | |||||
return count($this->getRevolts()); | |||||
} | |||||
public function getNbProjectsBoost():string | |||||
{ | |||||
return count($this->getProjectsBoost()); | |||||
} | |||||
public function getNbProjectsInspiring():string | |||||
{ | |||||
return count($this->getProjectsInspiring()); | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use App\Repository\ConfigurationRepository; | use App\Repository\ConfigurationRepository; | ||||
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\DevAliasInterface; | use Lc\SovBundle\Doctrine\Extension\DevAliasInterface; | ||||
use Lc\SovBundle\Doctrine\Extension\DevAliasTrait; | use Lc\SovBundle\Doctrine\Extension\DevAliasTrait; | ||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=ConfigurationRepository::class) | * @ORM\Entity(repositoryClass=ConfigurationRepository::class) | ||||
*/ | */ | ||||
class Configuration implements DevAliasInterface | |||||
class Configuration implements DevAliasInterface, EntityInterface | |||||
{ | { | ||||
use DevAliasTrait; | use DevAliasTrait; | ||||
*/ | */ | ||||
private $value; | private $value; | ||||
public function __toString() | |||||
{ | |||||
return $this->value; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use App\Doctrine\Extension\DescriptionProjectInterface; | use App\Doctrine\Extension\DescriptionProjectInterface; | ||||
use App\Doctrine\Extension\DescriptionProjectTrait; | use App\Doctrine\Extension\DescriptionProjectTrait; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=DreamsRepository::class) | * @ORM\Entity(repositoryClass=DreamsRepository::class) | ||||
*/ | */ | ||||
class Dreams implements DescriptionProjectInterface | |||||
class Dreams implements DescriptionProjectInterface, EntityInterface | |||||
{ | { | ||||
use DescriptionProjectTrait; | use DescriptionProjectTrait; | ||||
*/ | */ | ||||
private $collectifData; | private $collectifData; | ||||
public function __toString() | |||||
{ | |||||
return $this->description; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\Common\Collections\ArrayCollection; | use Doctrine\Common\Collections\ArrayCollection; | ||||
use Doctrine\Common\Collections\Collection; | use Doctrine\Common\Collections\Collection; | ||||
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\StatusInterface; | use Lc\SovBundle\Doctrine\Extension\StatusInterface; | ||||
use Lc\SovBundle\Doctrine\Extension\StatusTrait; | use Lc\SovBundle\Doctrine\Extension\StatusTrait; | ||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=IndividualDataRepository::class) | * @ORM\Entity(repositoryClass=IndividualDataRepository::class) | ||||
*/ | */ | ||||
class IndividualData implements StatusInterface | |||||
class IndividualData implements StatusInterface, EntityInterface | |||||
{ | { | ||||
use StatusTrait; | use StatusTrait; | ||||
$this->territory = new ArrayCollection(); | $this->territory = new ArrayCollection(); | ||||
} | } | ||||
public function __toString() | |||||
{ | |||||
return $this->firstname . " " . $this->lastname; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use App\Doctrine\Extension\DescriptionProjectInterface; | use App\Doctrine\Extension\DescriptionProjectInterface; | ||||
use App\Doctrine\Extension\DescriptionProjectTrait; | use App\Doctrine\Extension\DescriptionProjectTrait; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=ProjectsBoostRepository::class) | * @ORM\Entity(repositoryClass=ProjectsBoostRepository::class) | ||||
*/ | */ | ||||
class ProjectsBoost implements DescriptionProjectInterface | |||||
class ProjectsBoost implements DescriptionProjectInterface, EntityInterface | |||||
{ | { | ||||
use DescriptionProjectTrait; | use DescriptionProjectTrait; | ||||
*/ | */ | ||||
private $collectifData; | private $collectifData; | ||||
public function __toString() | |||||
{ | |||||
return $this->description; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use App\Doctrine\Extension\DescriptionProjectInterface; | use App\Doctrine\Extension\DescriptionProjectInterface; | ||||
use App\Doctrine\Extension\DescriptionProjectTrait; | use App\Doctrine\Extension\DescriptionProjectTrait; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=ProjectsInspiringRepository::class) | * @ORM\Entity(repositoryClass=ProjectsInspiringRepository::class) | ||||
*/ | */ | ||||
class ProjectsInspiring implements DescriptionProjectInterface | |||||
class ProjectsInspiring implements DescriptionProjectInterface, EntityInterface | |||||
{ | { | ||||
use DescriptionProjectTrait; | use DescriptionProjectTrait; | ||||
*/ | */ | ||||
private $collectifData; | private $collectifData; | ||||
public function __toString() | |||||
{ | |||||
return $this->description; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use App\Doctrine\Extension\DescriptionProjectInterface; | use App\Doctrine\Extension\DescriptionProjectInterface; | ||||
use App\Doctrine\Extension\DescriptionProjectTrait; | use App\Doctrine\Extension\DescriptionProjectTrait; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=RevoltsRepository::class) | * @ORM\Entity(repositoryClass=RevoltsRepository::class) | ||||
*/ | */ | ||||
class Revolts implements DescriptionProjectInterface | |||||
class Revolts implements DescriptionProjectInterface, EntityInterface | |||||
{ | { | ||||
use DescriptionProjectTrait; | use DescriptionProjectTrait; | ||||
*/ | */ | ||||
private $collectifData; | private $collectifData; | ||||
public function __toString() | |||||
{ | |||||
return $this->description; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use Doctrine\Common\Collections\ArrayCollection; | use Doctrine\Common\Collections\ArrayCollection; | ||||
use Doctrine\Common\Collections\Collection; | use Doctrine\Common\Collections\Collection; | ||||
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\DevAliasInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\DevAliasTrait; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=TerritoryRepository::class) | * @ORM\Entity(repositoryClass=TerritoryRepository::class) | ||||
*/ | */ | ||||
class Territory | |||||
class Territory implements EntityInterface, DevAliasInterface | |||||
{ | { | ||||
use DevAliasTrait; | |||||
/** | /** | ||||
* @ORM\Id | * @ORM\Id | ||||
* @ORM\GeneratedValue | * @ORM\GeneratedValue | ||||
$this->collectifData = new ArrayCollection(); | $this->collectifData = new ArrayCollection(); | ||||
} | } | ||||
public function __toString() | |||||
{ | |||||
return $this->name; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
use App\Repository\ThematicRepository; | use App\Repository\ThematicRepository; | ||||
use Doctrine\ORM\Mapping as ORM; | use Doctrine\ORM\Mapping as ORM; | ||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
/** | /** | ||||
* @ORM\Entity(repositoryClass=ThematicRepository::class) | * @ORM\Entity(repositoryClass=ThematicRepository::class) | ||||
*/ | */ | ||||
class Thematic | |||||
class Thematic implements EntityInterface | |||||
{ | { | ||||
/** | /** | ||||
* @ORM\Id | * @ORM\Id | ||||
*/ | */ | ||||
private $name; | private $name; | ||||
public function __toString() | |||||
{ | |||||
return $this->name; | |||||
} | |||||
public function getId(): ?int | public function getId(): ?int | ||||
{ | { | ||||
return $this->id; | return $this->id; |
*/ | */ | ||||
class User extends SovUserModel implements UserInterface | class User extends SovUserModel implements UserInterface | ||||
{ | { | ||||
/** | |||||
* @ORM\Id | |||||
* @ORM\GeneratedValue | |||||
* @ORM\Column(type="integer") | |||||
*/ | |||||
private $id; | |||||
/** | |||||
* @ORM\Id | |||||
* @ORM\GeneratedValue | |||||
* @ORM\Column(type="integer") | |||||
*/ | |||||
private $id; | |||||
/** | |||||
* @ORM\OneToMany(targetEntity=CollectifData::class, mappedBy="user") | |||||
*/ | |||||
private $collectifData; | |||||
/** | |||||
* @ORM\OneToMany(targetEntity=CollectifData::class, mappedBy="user") | |||||
*/ | |||||
private $collectifData; | |||||
public function __construct() | |||||
{ | |||||
$this->collectifData = new ArrayCollection(); | |||||
} | |||||
public function __construct() | |||||
{ | |||||
$this->collectifData = new ArrayCollection(); | |||||
} | |||||
public function getId(): ?int | |||||
{ | |||||
return $this->id; | |||||
} | |||||
public function __toString() | |||||
{ | |||||
return $this->firstname . " " . $this->lastname; | |||||
} | |||||
/** | |||||
* @return Collection|CollectifData[] | |||||
*/ | |||||
public function getCollectifData(): Collection | |||||
{ | |||||
return $this->collectifData; | |||||
} | |||||
public function getId(): ?int | |||||
{ | |||||
return $this->id; | |||||
} | |||||
public function addCollectifData(CollectifData $collectifData): self | |||||
{ | |||||
if (!$this->collectifData->contains($collectifData)) { | |||||
$this->collectifData[] = $collectifData; | |||||
$collectifData->setUser($this); | |||||
} | |||||
/** | |||||
* @return Collection|CollectifData[] | |||||
*/ | |||||
public function getCollectifData(): Collection | |||||
{ | |||||
return $this->collectifData; | |||||
} | |||||
return $this; | |||||
public function addCollectifData(CollectifData $collectifData): self | |||||
{ | |||||
if (!$this->collectifData->contains($collectifData)) { | |||||
$this->collectifData[] = $collectifData; | |||||
$collectifData->setUser($this); | |||||
} | } | ||||
public function removeCollectifData(CollectifData $collectifData): self | |||||
{ | |||||
if ($this->collectifData->removeElement($collectifData)) { | |||||
// set the owning side to null (unless already changed) | |||||
if ($collectifData->getUser() === $this) { | |||||
$collectifData->setUser(null); | |||||
} | |||||
} | |||||
return $this; | |||||
} | |||||
return $this; | |||||
public function removeCollectifData(CollectifData $collectifData): self | |||||
{ | |||||
if ($this->collectifData->removeElement($collectifData)) { | |||||
// set the owning side to null (unless already changed) | |||||
if ($collectifData->getUser() === $this) { | |||||
$collectifData->setUser(null); | |||||
} | |||||
} | } | ||||
return $this; | |||||
} | |||||
} | } |
<?php | |||||
namespace App\Type; | |||||
use App\Entity\Dreams; | |||||
use App\Entity\Thematic; | |||||
use Lc\SovBundle\Doctrine\EntityManager; | |||||
use Lc\SovBundle\Model\User\UserInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | |||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | |||||
use Symfony\Component\Form\AbstractType; | |||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType; | |||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | |||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType; | |||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType; | |||||
use Symfony\Component\Form\FormBuilderInterface; | |||||
use Symfony\Component\OptionsResolver\OptionsResolver; | |||||
use Symfony\Component\Security\Core\Validator\Constraints\UserPassword; | |||||
use Symfony\Component\Validator\Constraints\NotBlank; | |||||
class DreamsType extends AbstractType | |||||
{ | |||||
protected $em; | |||||
protected $translatorAdmin; | |||||
public function __construct(EntityManager $em, TranslatorAdmin $translatorAdmin) | |||||
{ | |||||
$this->em = $em; | |||||
$this->translatorAdmin = $translatorAdmin; | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function buildForm(FormBuilderInterface $builder, array $options) | |||||
{ | |||||
$builder->add( | |||||
'description', | |||||
TextareaType::class, | |||||
[ | |||||
'label' => 'form.field.dreams.description', | |||||
'constraints' => [ | |||||
new NotBlank(), | |||||
], | |||||
] | |||||
) | |||||
->add( | |||||
'thematic', | |||||
EntityType::class, | |||||
[ | |||||
'label' => 'form.field.dreams.thematic', | |||||
'class' => Thematic::class, | |||||
'required' => false, | |||||
] | |||||
); | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function configureOptions(OptionsResolver $resolver) | |||||
{ | |||||
$resolver->setDefaults( | |||||
[ | |||||
'data_class' => $this->em->getEntityName(Dreams::class), | |||||
] | |||||
); | |||||
} | |||||
} | |||||
<?php | |||||
namespace App\Type; | |||||
use App\Entity\ProjectsBoost; | |||||
use App\Entity\Thematic; | |||||
use Lc\SovBundle\Doctrine\EntityManager; | |||||
use Lc\SovBundle\Model\User\UserInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | |||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | |||||
use Symfony\Component\Form\AbstractType; | |||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType; | |||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | |||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType; | |||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType; | |||||
use Symfony\Component\Form\FormBuilderInterface; | |||||
use Symfony\Component\OptionsResolver\OptionsResolver; | |||||
use Symfony\Component\Security\Core\Validator\Constraints\UserPassword; | |||||
use Symfony\Component\Validator\Constraints\NotBlank; | |||||
class ProjectsBoostType extends AbstractType | |||||
{ | |||||
protected $em; | |||||
protected $translatorAdmin; | |||||
public function __construct(EntityManager $em, TranslatorAdmin $translatorAdmin) | |||||
{ | |||||
$this->em = $em; | |||||
$this->translatorAdmin = $translatorAdmin; | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function buildForm(FormBuilderInterface $builder, array $options) | |||||
{ | |||||
$builder->add( | |||||
'description', | |||||
TextareaType::class, | |||||
[ | |||||
'label' => 'form.field.projectsboost.description', | |||||
'constraints' => [ | |||||
new NotBlank(), | |||||
], | |||||
] | |||||
) | |||||
->add( | |||||
'thematic', | |||||
EntityType::class, | |||||
[ | |||||
'label' => 'form.field.projectsboost.thematic', | |||||
'class' => Thematic::class, | |||||
'required' => false, | |||||
] | |||||
); | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function configureOptions(OptionsResolver $resolver) | |||||
{ | |||||
$resolver->setDefaults( | |||||
[ | |||||
'data_class' => $this->em->getEntityName(ProjectsBoost::class), | |||||
] | |||||
); | |||||
} | |||||
} | |||||
<?php | |||||
namespace App\Type; | |||||
use App\Entity\ProjectsInspiring; | |||||
use App\Entity\Thematic; | |||||
use Lc\SovBundle\Doctrine\EntityManager; | |||||
use Lc\SovBundle\Model\User\UserInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | |||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | |||||
use Symfony\Component\Form\AbstractType; | |||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType; | |||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | |||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType; | |||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType; | |||||
use Symfony\Component\Form\FormBuilderInterface; | |||||
use Symfony\Component\OptionsResolver\OptionsResolver; | |||||
use Symfony\Component\Security\Core\Validator\Constraints\UserPassword; | |||||
use Symfony\Component\Validator\Constraints\NotBlank; | |||||
class ProjectsInspiringType extends AbstractType | |||||
{ | |||||
protected $em; | |||||
protected $translatorAdmin; | |||||
public function __construct(EntityManager $em, TranslatorAdmin $translatorAdmin) | |||||
{ | |||||
$this->em = $em; | |||||
$this->translatorAdmin = $translatorAdmin; | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function buildForm(FormBuilderInterface $builder, array $options) | |||||
{ | |||||
$builder->add( | |||||
'description', | |||||
TextareaType::class, | |||||
[ | |||||
'label' => 'form.field.projectsinspiring.description', | |||||
'constraints' => [ | |||||
new NotBlank(), | |||||
], | |||||
] | |||||
) | |||||
->add( | |||||
'thematic', | |||||
EntityType::class, | |||||
[ | |||||
'label' => 'form.field.projectsinspiring.thematic', | |||||
'class' => Thematic::class, | |||||
'required' => false, | |||||
] | |||||
); | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function configureOptions(OptionsResolver $resolver) | |||||
{ | |||||
$resolver->setDefaults( | |||||
[ | |||||
'data_class' => $this->em->getEntityName(ProjectsInspiring::class), | |||||
] | |||||
); | |||||
} | |||||
} | |||||
<?php | |||||
namespace App\Type; | |||||
use App\Entity\Revolts; | |||||
use App\Entity\Thematic; | |||||
use Lc\SovBundle\Doctrine\EntityManager; | |||||
use Lc\SovBundle\Model\User\UserInterface; | |||||
use Lc\SovBundle\Translation\TranslatorAdmin; | |||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | |||||
use Symfony\Component\Form\AbstractType; | |||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType; | |||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | |||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType; | |||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType; | |||||
use Symfony\Component\Form\FormBuilderInterface; | |||||
use Symfony\Component\OptionsResolver\OptionsResolver; | |||||
use Symfony\Component\Security\Core\Validator\Constraints\UserPassword; | |||||
use Symfony\Component\Validator\Constraints\NotBlank; | |||||
class RevoltsType extends AbstractType | |||||
{ | |||||
protected $em; | |||||
protected $translatorAdmin; | |||||
public function __construct(EntityManager $em, TranslatorAdmin $translatorAdmin) | |||||
{ | |||||
$this->em = $em; | |||||
$this->translatorAdmin = $translatorAdmin; | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function buildForm(FormBuilderInterface $builder, array $options) | |||||
{ | |||||
$builder->add( | |||||
'description', | |||||
TextareaType::class, | |||||
[ | |||||
'label' => 'form.field.revolts.description', | |||||
'constraints' => [ | |||||
new NotBlank(), | |||||
], | |||||
] | |||||
) | |||||
->add( | |||||
'thematic', | |||||
EntityType::class, | |||||
[ | |||||
'label' => 'form.field.revolts.thematic', | |||||
'class' => Thematic::class, | |||||
'required' => false, | |||||
] | |||||
); | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function configureOptions(OptionsResolver $resolver) | |||||
{ | |||||
$resolver->setDefaults( | |||||
[ | |||||
'data_class' => $this->em->getEntityName(Revolts::class), | |||||
] | |||||
); | |||||
} | |||||
} | |||||
{% extends '@LcSov/adminlte/layout.html.twig' %} | |||||
{% import '@LcSov/adminlte/macro/infobox.html.twig' as minfobox %} | |||||
{% block content_title %} | |||||
{{ 'dashboard'|lc_trans_admin_title }} | |||||
{% endblock %} | |||||
{% block main %} | |||||
<a class="btn btn-primary" style="margin-bottom: 40px;" href="{{ urlCreate }}" role="button" title="formulaire collectif">Accéder au formulaire collectif</a> | |||||
{{ minfobox.infobox("Nombre de formulaires collectifs", nbForm, "red", "fas fa-database") }} | |||||
{% endblock %} |
{% extends '@LcSov/adminlte/layout.html.twig' %} | |||||
{% import '@LcSov/adminlte/macro/infobox.html.twig' as minfobox %} | |||||
{% block content_title %} | |||||
{{ 'dashboard'|lc_trans_admin_title }} | |||||
{% endblock %} | |||||
{% block main %} | |||||
<div class="row"> | |||||
<div class="col-sm-3 col-xs-12"> | |||||
{{ minfobox.infobox("Nombre d'animateurs", nbAnimator, "blue", "fas fa-user") }} | |||||
</div> | |||||
</div> | |||||
<div class="row"> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Formulaires collectifs en attente de validation", nbFormUnvalid, "red", "fas fa-database") }} | |||||
</div> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Formulaires collectifs validés", nbFormValid, "green", "fas fa-database") }} | |||||
</div> | |||||
</div> | |||||
<div class="row"> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Nombre de rêves ", nbDreams, "blue", "far fa-lightbulb") }} | |||||
</div> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Nombre de révoltes ", nbRevolts, "red", "fas fa-bullhorn") }} | |||||
</div> | |||||
</div> | |||||
<div class="row"> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Nombre de projets boostés ", nbProjectsBoost, "indigo", "fas fa-thumbs-up") }} | |||||
</div> | |||||
<div class="col-sm-6 col-xs-12"> | |||||
{{ minfobox.infobox("Nombre de projets inspirants ", nbProjectsInsp, "blue", "fas fa-smile") }} | |||||
</div> | |||||
</div> | |||||
{% endblock %} |
{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #} | |||||
{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #} | |||||
{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #} | |||||
{% if 'toMany' == field.customOptions.get('associationType') %} | |||||
<span class="badge badge-secondary">{{ field.formattedValue }}</span> | |||||
{% else %} | |||||
{{ field.formattedValue }} | |||||
{% endif %} |
{% block content %} | |||||
{% endblock %} | |||||
{% block signature %} | |||||
{% include 'emails/signature.html.twig' %} | |||||
{% endblock %} |
{% extends 'emails/layout.html.twig' %} | |||||
{% block content %} | |||||
<p>Bonjour {{ firstname }} {{ lastname }},</p> | |||||
<p> | |||||
Vous trouverez ci-dessous vos informations de connexion pour accéder a votre compte. | |||||
</p> | |||||
<p> | |||||
Nom d'utilisateur : {{ email.to[0].address }}<br> | |||||
Mot de passe : {{ password }} | |||||
</p> | |||||
<p>Cordialement,</p> | |||||
{% endblock %} |
Aux Actes Citoyens |
menu: | menu: | ||||
data_individual: Formulaire individuel | data_individual: Formulaire individuel | ||||
data_individual_validate: Données validées | data_individual_validate: Données validées | ||||
data_individual_waiting: Données en attente de validation | |||||
data_individual_waiting: Données en attente | |||||
data_collectif: Formulaire collectif | |||||
data_collectif_new: Créer | |||||
data_collectif_validate: Données validées | |||||
data_collectif_waiting: Données en attente | |||||
data_collectif_create: Formulaire collectif | |||||
territory: Territoires | |||||
thematic: Thématiques | |||||
configuration: Configuration | |||||
entity: | |||||
User: | |||||
fields: | |||||
roles: Rôle(s) | |||||
CollectifData: | |||||
label: Données collectif | |||||
label_plurial: Données du formulaire collectif | |||||
fields: | |||||
territory: Territoire | |||||
nbParticipant: Nombre de participants | |||||
revolts: Les révoltes | |||||
dreams: Les rêves | |||||
projectsboost: Les projets boostés | |||||
projectsinspiring: Les projets inspirants | |||||
resume: Résumé | |||||
nbDreams: Rêve(s) | |||||
nbRevolts: Révolte(s) | |||||
nbProjectsBoost: Projet(s) boosté(s) | |||||
nbProjectsInspiring: Projet(s) inspirant(s) | |||||
IndividualData: | |||||
label: Données individuel | |||||
label_plurial: Données du formulaire individuel | |||||
fields: | |||||
firstname: Prénom | |||||
lastname: Nom | |||||
Thematic: | |||||
label_plurial: Les thémes | |||||
label: Thématique | |||||
fields: | |||||
name: Nom | |||||
Territory: | |||||
label_plurial: Les territoires | |||||
label: Territoire | |||||
fields: | |||||
name: Nom | |||||
Configuration: | |||||
label_plurial: Les configurations | |||||
label: Configuration | |||||
form: | |||||
field: | |||||
dreams: | |||||
description: Description | |||||
thematic: Thématique | |||||
projectsboost: | |||||
description: Description | |||||
thematic: Thématique | |||||
projectsinspiring: | |||||
description: Description | |||||
thematic: Thématique | |||||
revolts: | |||||
description: Description | |||||
thematic: Thématique |