ninegate
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
Details
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
46c3f9ca12
commit
800945e44b
4
.env
4
.env
|
@ -7,7 +7,7 @@ APP_SESSIONTIME=1440
|
|||
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
|
||||
|
||||
# Database
|
||||
DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/app?serverVersion=13&charset=utf8"
|
||||
DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8"
|
||||
|
||||
# Redis Session
|
||||
REDIS_HOST=127.0.0.1
|
||||
|
@ -169,7 +169,7 @@ HYDRA_CONSENTCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/consent?conse
|
|||
HYDRA_CONSENTCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/consent/accept?consent_challenge="
|
||||
|
||||
# Lock
|
||||
LOCK_DSN="postgresql://symfony:ChangeMe@127.0.0.1:5432/app?serverVersion=13&charset=utf8"
|
||||
LOCK_DSN="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8"
|
||||
|
||||
# Sentry
|
||||
SENTRY_DSN=
|
||||
|
|
|
@ -41,6 +41,10 @@ require('spectrum-colorpicker2/dist/spectrum.min.css');
|
|||
require('crop-select-js/crop-select-js.min.css');
|
||||
window.CropSelectJs = require('crop-select-js/crop-select-js.min.js');
|
||||
|
||||
// iframe-resizer
|
||||
require('iframe-resizer/js/iframeResizer.min.js');
|
||||
require('iframe-resizer/js/iframeResizer.contentWindow.min.js');
|
||||
|
||||
// Start the Stimulus application
|
||||
import './bootstrap';
|
||||
|
||||
|
|
|
@ -2,13 +2,16 @@ $(document).ready(function() {
|
|||
// Color
|
||||
$(".pick-a-color").spectrum(
|
||||
{
|
||||
type: "text",
|
||||
showAlpha: false
|
||||
preferredFormat: "hex",
|
||||
type: "string",
|
||||
showPalette: true,
|
||||
allowEmpty: true,
|
||||
showAlpha: false,
|
||||
}
|
||||
);
|
||||
$(".pick-a-color").attr("autocomplete","off");
|
||||
|
||||
// method confirm
|
||||
// Method confirm
|
||||
var doit = true;
|
||||
$("a[data-method]").on('click',function(){
|
||||
if($(this).data('confirm')){
|
||||
|
@ -57,33 +60,45 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
// Resize
|
||||
resize();
|
||||
// select2-icon
|
||||
function iformat(icon) {
|
||||
return $('<span><i class="' + icon.id + '"></i> ' + icon.text + '</span>');
|
||||
}
|
||||
$('.select2-icon').select2({
|
||||
width: "100%",
|
||||
placeholder: 'choisir un icône',
|
||||
allowClear: true,
|
||||
templateSelection: iformat,
|
||||
templateResult: iformat,
|
||||
formatResult: iformat,
|
||||
allowHtml: true,
|
||||
escapeMarkup: function(m) {
|
||||
return m;
|
||||
}
|
||||
})
|
||||
|
||||
// Menu
|
||||
$(".dropdown-toggle").click(function(){
|
||||
$(this).parent().find(".dropdown-menu").toggle();
|
||||
})
|
||||
$(".nav-toogle").click(function(){
|
||||
$("#selmenu").modal("toggle");
|
||||
})
|
||||
|
||||
|
||||
|
||||
// Forcer le resize des objects
|
||||
Resize();
|
||||
|
||||
// Focus
|
||||
$("#page").focus();
|
||||
});
|
||||
|
||||
$( window ).resize(function() {
|
||||
resize();
|
||||
Resize();
|
||||
});
|
||||
|
||||
|
||||
|
||||
function resize() {
|
||||
if($("#header").is(":visible")){
|
||||
$(".navbar-logo").hide();
|
||||
$("#menulink").hide();
|
||||
$("#header").hide();
|
||||
}
|
||||
else {
|
||||
$(".navbar-logo").show();
|
||||
$("#menulink").show();
|
||||
$("#header").show();
|
||||
}
|
||||
|
||||
$("main").css("height",$(window).height()-$(".header").height());
|
||||
$("#page").css("height",$(window).height()-$(".header").height());
|
||||
$("#sidebar").css("min-height",$("body").height()-$(".header").height());
|
||||
}
|
||||
|
||||
|
|
|
@ -114,53 +114,112 @@ border-width: 1px;
|
|||
padding: 0 0 0 0.5rem !important;
|
||||
}
|
||||
.navbar-logo img{
|
||||
height:20px;
|
||||
height:30px;
|
||||
}
|
||||
|
||||
.navbar i {
|
||||
font-size: 20px;
|
||||
min-width: 30px;
|
||||
height:20px;
|
||||
#menulink {
|
||||
zoom:150%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* MENU */
|
||||
#menu {
|
||||
height:50px;
|
||||
min-height:44px;
|
||||
padding: 0px 0px 0px 10px !important;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#menu .navbar-logo {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#menuapp {
|
||||
background-color: var(--colorbgbodydark);
|
||||
}
|
||||
|
||||
#menuuser {
|
||||
min-width: 100px;
|
||||
display:flex;
|
||||
justify-content: end;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
padding:10px 10px;
|
||||
}
|
||||
|
||||
|
||||
.nav-item.active {
|
||||
background-color: var(--colorbgbodydark-darker);
|
||||
}
|
||||
|
||||
.menupage a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.menupage a i{
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
background-color: var(--colorbgbodydark);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.dropdown-item:hover, .dropdown-item:focus {
|
||||
background-color: var(--colorbgbodydark-darker);
|
||||
color: var(--colorftbodydark);
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 991px) {
|
||||
#menu {
|
||||
display:flex !important;
|
||||
height: auto;
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
#menuapp {
|
||||
position: absolute;
|
||||
top:50px;
|
||||
left:0px;
|
||||
width:100%;
|
||||
overflow-y: auto;
|
||||
height:500px;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#menuapp .nav {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#menuapp .navbar-nav {
|
||||
flex-direction: column;
|
||||
padding:15px;
|
||||
}
|
||||
|
||||
#menu .nav-toogle {
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
#pagesportal {
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
#pagesuser {
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
.navbar-logo {
|
||||
padding: 10px 5px 10px 10px !important;
|
||||
}
|
||||
|
||||
.navbar-logo img {
|
||||
height:40px;
|
||||
}
|
||||
|
||||
.navbar i {
|
||||
font-size: 20px;
|
||||
min-width: 30px;
|
||||
height:20px;
|
||||
}
|
||||
|
||||
#switchHeader {
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* SIDEBAR */
|
||||
#sidebar {
|
||||
background-color: var(--colorbgbodydark);
|
||||
|
@ -230,6 +289,10 @@ border-width: 1px;
|
|||
display: none !important;
|
||||
}
|
||||
|
||||
.card-body .form-group:first-child {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
|
||||
/* ITEM */
|
||||
.itemframe {
|
||||
|
@ -239,6 +302,7 @@ border-width: 1px;
|
|||
.items-list {
|
||||
display:flex;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.item {
|
||||
|
@ -247,7 +311,7 @@ border-width: 1px;
|
|||
text-align: center;
|
||||
justify-content: center;
|
||||
margin-right:5px;
|
||||
margin-top:5px;
|
||||
margin-bottom:5px;
|
||||
flex-wrap: wrap;
|
||||
color: var(--colorftbodydark) !important;
|
||||
}
|
||||
|
@ -287,7 +351,7 @@ border-width: 1px;
|
|||
}
|
||||
|
||||
.item-subtitle {
|
||||
font-size: 12px;
|
||||
font-size: 10px;
|
||||
margin:0px;
|
||||
color: var(--colorftbodydark);
|
||||
}
|
||||
|
@ -295,9 +359,16 @@ border-width: 1px;
|
|||
.item-description {
|
||||
color: var(--colorftbodydark);
|
||||
text-align: left;
|
||||
padding: 0px 10px;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
.item-description img {
|
||||
max-width: 100% !important;
|
||||
height: auto !important;
|
||||
}
|
||||
.item-description p:last-child {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.item-verysmall {
|
||||
width: 80px;
|
||||
|
@ -433,3 +504,67 @@ border-width: 1px;
|
|||
.item-list .item-action {
|
||||
width:auto;
|
||||
}
|
||||
|
||||
.item-list .item-description {
|
||||
padding:10px 0px 5px 0px;
|
||||
}
|
||||
|
||||
/* WIDGET */
|
||||
.widget{
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.widget-bordered {
|
||||
border:1px solid;
|
||||
}
|
||||
.widget-menu {
|
||||
float: right;
|
||||
color: #fff;
|
||||
margin: 10px 5px 0px 0px;
|
||||
display:none;
|
||||
}
|
||||
.widget-menu i {
|
||||
cursor:pointer;
|
||||
}
|
||||
.widget-header {
|
||||
padding:10px 10px 5px 10px;
|
||||
font-family: var(--fonttitle);
|
||||
font-size: 25px;
|
||||
}
|
||||
.widget-logo {
|
||||
height:40px;
|
||||
margin-right:5px;
|
||||
margin-top:-5px;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
.widget-title {
|
||||
cursor: pointer;
|
||||
}
|
||||
.widget-body {
|
||||
padding: 5px 0px 0px 0px;
|
||||
}
|
||||
.widget-bordered .widget-body {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.widget-body .items-list {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.widget-body .item-list:first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
.widget-body .items-list:last-child {
|
||||
margin-bottom: -5px;
|
||||
}
|
||||
.widget-body .item-description {
|
||||
padding:10px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.cat-list {
|
||||
color: var(--colorfttitledark);
|
||||
background-color: var(--colorbgbodydark);
|
||||
padding: 5px 10px;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
|
|
@ -913,11 +913,6 @@ app_admin_alert_order:
|
|||
controller: App\Controller\AlertController::order
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_ajax_alert_seleclist:
|
||||
path: /admin/alert/ajax/selectlist
|
||||
controller: App\Controller\AlertController::seleclist
|
||||
defaults: { access: admin }
|
||||
|
||||
#-- Access all
|
||||
app_all_alert_read:
|
||||
path: /all/alert/read
|
||||
|
@ -970,11 +965,6 @@ app_admin_item_order:
|
|||
controller: App\Controller\ItemController::order
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_item_selectlist:
|
||||
path: /admin/item/selectlist
|
||||
controller: App\Controller\ItemController::seleclist
|
||||
defaults: { access: admin }
|
||||
|
||||
|
||||
#== ITEM CATEGORY ========================================================================================================================================
|
||||
|
||||
|
@ -1004,19 +994,24 @@ app_admin_itemcategory_order:
|
|||
#-- Access config
|
||||
app_admin_bookmark_submit:
|
||||
path: /admin/bookmark/submit/{idpage}/{idwidget}/{touser}
|
||||
controller: App\Controller\BookmarkController::order
|
||||
controller: App\Controller\BookmarkController::submit
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_bookmark_update:
|
||||
path: /admin/bookmark/update/{idpage}/{id}
|
||||
path: /admin/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
|
||||
controller: App\Controller\BookmarkController::update
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_bookmark_delete:
|
||||
path: /admin/bookmark/delete/{idpage}/{id}
|
||||
path: /admin/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
|
||||
controller: App\Controller\BookmarkController::delete
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_bookmark_heart:
|
||||
path: /admin/bookmark/heart
|
||||
controller: App\Controller\BookmarkController::heart
|
||||
defaults: { access: admin }
|
||||
|
||||
#-- Access all
|
||||
app_all_bookmark_submit:
|
||||
path: /all/bookmark/submit/{idpage}/{idwidget}/{touser}
|
||||
|
@ -1024,12 +1019,12 @@ app_all_bookmark_submit:
|
|||
defaults: { access: all }
|
||||
|
||||
app_all_bookmark_update:
|
||||
path: /all/bookmark/update/{idpage}/{id}
|
||||
path: /all/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
|
||||
controller: App\Controller\BookmarkController::update
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_bookmark_delete:
|
||||
path: /all/bookmark/delete/{idpage}/{id}
|
||||
path: /all/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
|
||||
controller: App\Controller\BookmarkController::delete
|
||||
defaults: { access: all }
|
||||
|
||||
|
@ -1233,148 +1228,149 @@ app_all_message_see:
|
|||
#== PAGE TEMPLATE ========================================================================================================================================
|
||||
|
||||
#-- Access admin
|
||||
app_admin_pagetemplate:
|
||||
app_admin_page_template:
|
||||
path: /admin/template
|
||||
controller: App\Controller\PagetemplateController::list
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
app_admin_pagetemplate_tablelist:
|
||||
app_admin_page_template_tablelist:
|
||||
path: /admin/template/tablelist
|
||||
controller: App\Controller\PagetemplateController::tablelist
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
app_admin_pagetemplate_submit:
|
||||
app_admin_template_submit:
|
||||
path: /admin/template/submit
|
||||
controller: App\Controller\PagetemplateController::submit
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
app_admin_pagetemplate_update:
|
||||
app_admin_page_template_update:
|
||||
path: /admin/template/update/{id}
|
||||
controller: App\Controller\PagetemplateController::update
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
app_admin_pagetemplate_delete:
|
||||
app_admin_page_template_delete:
|
||||
path: /admin/template/delete/{id}
|
||||
controller: App\Controller\PagetemplateController::delete
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
app_admin_pagetemplate_view:
|
||||
app_admin_page_template_view:
|
||||
path: /admin/template/view/{id}
|
||||
controller: App\Controller\PagetemplateController::view
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
#-- Access all
|
||||
app_all_pagetemplate_selectlist:
|
||||
app_all_page_template_selectlist:
|
||||
path: /all/template/selectlist
|
||||
controller: App\Controller\PagetemplateController::selectlist
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: template }
|
||||
|
||||
|
||||
#== PAGE =================================================================================================================================================
|
||||
|
||||
#-- Access admin
|
||||
app_admin_page:
|
||||
app_admin_page_portal:
|
||||
path: /admin/page/
|
||||
controller: App\Controller\PageController::list
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_page_ajax_list:
|
||||
path: /admin/page/ajax/list
|
||||
app_admin_page_portal_tablelist:
|
||||
path: /admin/page/tablelist
|
||||
controller: App\Controller\PageController::tablelist
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_ajax_page_seleclist:
|
||||
path: /admin/page//ajax/selectlist
|
||||
controller: App\Controller\PageController::selectlist
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_page_submit:
|
||||
app_admin_page_portal_submit:
|
||||
path: /admin/page/submit
|
||||
controller: App\Controller\PageController::submit
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_page_update:
|
||||
app_admin_page_portal_update:
|
||||
path: /admin/page/update/{id}
|
||||
controller: App\Controller\PageController::update
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_page_delete:
|
||||
app_admin_page_portal_delete:
|
||||
path: /admin/page/delete/{id}
|
||||
controller: App\Controller\PageController::delete
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_page_view:
|
||||
app_admin_page_portal_view:
|
||||
path: /admin/page/view/{id}
|
||||
controller: App\Controller\PageController::view
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
app_admin_page_order:
|
||||
app_admin_page_portal_order:
|
||||
path: /admin/page/order
|
||||
controller: App\Controller\PageController::order
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_page_upload:
|
||||
path: /admin/page/upload
|
||||
controller: App\Controller\PageController::upload
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_page_upload_direct:
|
||||
path: /admin/page//upload&responseType=json
|
||||
controller: App\Controller\PageController::upload
|
||||
defaults: { access: admin }
|
||||
defaults: { access: admin, usage: portal }
|
||||
|
||||
#-- Access all
|
||||
app_all_page_submit:
|
||||
path: /all/page/submit
|
||||
# usage=user
|
||||
app_all_page_user_submit:
|
||||
path: /all/page/user/submit
|
||||
controller: App\Controller\PageController::submit
|
||||
defaults: { access: all }
|
||||
defaults: { access: all, usage: user }
|
||||
|
||||
app_all_page_update:
|
||||
path: /all/page/update/{id}
|
||||
app_all_page_user_update:
|
||||
path: /all/page/user/update/{id}
|
||||
controller: App\Controller\PageController::update
|
||||
defaults: { access: all }
|
||||
defaults: { access: all, usage: user }
|
||||
|
||||
app_all_page_delete:
|
||||
path: /all/page/delete/{id}
|
||||
app_all_page_user_delete:
|
||||
path: /all/page/user/delete/{id}
|
||||
controller: App\Controller\PageController::delete
|
||||
defaults: { access: all }
|
||||
defaults: { access: all, usage: user }
|
||||
|
||||
app_all_page_share:
|
||||
path: /all/page/share/{id}
|
||||
controller: App\Controller\PageController::share
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_page_view:
|
||||
path: /page/view/{id}
|
||||
controller: App\Controller\PageController::view
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_page_order:
|
||||
path: /all/page/order
|
||||
app_all_page_user_order:
|
||||
path: /all/page/user/order
|
||||
controller: App\Controller\PageController::order
|
||||
defaults: { access: all }
|
||||
defaults: { access: all, usage: user }
|
||||
|
||||
app_all_page_upload:
|
||||
path: /all/page/upload
|
||||
controller: App\Controller\PageController::selectlist
|
||||
defaults: { access: all }
|
||||
# usage=group
|
||||
app_all_page_group_submit:
|
||||
path: /all/page/group/submit
|
||||
controller: App\Controller\PageController::submit
|
||||
defaults: { access: all, usage: group }
|
||||
|
||||
app_all_page_upload_direct:
|
||||
path: /all/page/upload&responseType=json
|
||||
controller: App\Controller\PageController::upload
|
||||
defaults: { access: all }
|
||||
app_all_page_group_update:
|
||||
path: /all/page/group/update/{id}
|
||||
controller: App\Controller\PageController::update
|
||||
defaults: { access: all, usage: group }
|
||||
|
||||
# Page spécifique
|
||||
app_all_page_group_delete:
|
||||
path: /all/page/group/delete/{id}
|
||||
controller: App\Controller\PageController::delete
|
||||
defaults: { access: all, usage: group }
|
||||
|
||||
app_all_page_group_order:
|
||||
path: /all/page/group/order
|
||||
controller: App\Controller\PageController::order
|
||||
defaults: { access: all, usage: group }
|
||||
|
||||
#-- Access visitor
|
||||
# usage=portal
|
||||
app_all_page_portal_view:
|
||||
path: /page/portal/view/{id}
|
||||
controller: App\Controller\PageController::view
|
||||
defaults: { access: all, usage: portal }
|
||||
|
||||
# usage=user
|
||||
app_all_page_user_view:
|
||||
path: /page/user/view/{id}
|
||||
controller: App\Controller\PageController::view
|
||||
defaults: { access: all, usage: user }
|
||||
|
||||
# usage=group
|
||||
app_all_page_group_view:
|
||||
path: /page/group/view/{id}
|
||||
controller: App\Controller\PageController::view
|
||||
defaults: { access: all, usage: group }
|
||||
|
||||
#-- Page spécifique
|
||||
app_all_page_application:
|
||||
path: /page/application
|
||||
controller: App\Controller\PageController::application
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_page_ajax_msgcounter:
|
||||
path: /page/msgcounter
|
||||
controller: App\Controller\PageController::msgcounter
|
||||
defaults: { access: all }
|
||||
|
||||
|
||||
|
||||
#== PAGE WIDGET ==========================================================================================================================================
|
||||
|
@ -1397,22 +1393,12 @@ app_admin_pagewidget_delete:
|
|||
|
||||
app_admin_pagewidget_order:
|
||||
path: /admin/pagewidget/order
|
||||
controller: App\Controller\PageController::order
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_pagewidget_upload:
|
||||
path: /admin/pagewidget/upload
|
||||
controller: App\Controller\PagewidgetController::upload
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_pagewidget_upload_direct:
|
||||
path: /admin/pagewidget/upload&responseType=json
|
||||
controller: App\Controller\PagewidgetController::upload
|
||||
controller: App\Controller\PagewidgetController::order
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_pagewidget_view_url:
|
||||
path: /admin/pagewidget/view/url/{id}
|
||||
controller: App\Controller\PageController::viewurl
|
||||
controller: App\Controller\PagewidgetController::viewurl
|
||||
defaults: { access: admin }
|
||||
|
||||
app_admin_pagewidget_view_urlfixe:
|
||||
|
@ -1512,35 +1498,25 @@ app_admin_pagewidget_view_groupmessage:
|
|||
|
||||
#-- Access all
|
||||
app_all_pagewidget_widget_sumbit:
|
||||
path: /user/pagewidget/submit/{idpage}/{idwidgettype}
|
||||
path: /all/pagewidget/submit/{idpage}/{idwidgettype}
|
||||
controller: App\Controller\PagewidgetController::submit
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_widget_update:
|
||||
path: /user/pagewidget/update/{idpage}/{idwidget}
|
||||
path: /all/pagewidget/update/{idpage}/{idwidget}
|
||||
controller: App\Controller\PagewidgetController::update
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_delete:
|
||||
path: /user/pagewidget/delete/{idwidget}
|
||||
path: /all/pagewidget/delete/{idwidget}
|
||||
controller: App\Controller\PagewidgetController::delete
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_order:
|
||||
path: /user/pagewidget/order
|
||||
path: /all/pagewidget/order
|
||||
controller: App\Controller\PagewidgetController::order
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_upload:
|
||||
path: /user/pagewidget/upload
|
||||
controller: App\Controller\PagewidgetController::upload
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_upload_direct:
|
||||
path: /user/pagewidget/upload&responseType=json
|
||||
controller: App\Controller\PagewidgetController::upload
|
||||
defaults: { access: all }
|
||||
|
||||
app_all_pagewidget_view_url:
|
||||
path: /pagewidget/view/url/{id}
|
||||
controller: App\Controller\PagewidgetController::viewurl
|
||||
|
|
|
@ -31,7 +31,7 @@ services:
|
|||
container_name: nineskeletor-postgresql
|
||||
hostname: nineskeletor-postgresql
|
||||
environment:
|
||||
POSTGRES_MULTIPLE_DATABASES: app,hydra
|
||||
POSTGRES_MULTIPLE_DATABASES: ninegate,hydra
|
||||
POSTGRES_PASSWORD: ChangeMe
|
||||
POSTGRES_USER: symfony
|
||||
ports:
|
||||
|
|
|
@ -1,156 +0,0 @@
|
|||
<?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 Version20221002124137 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('CREATE SEQUENCE audit_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE cron_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE groupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau01_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau02_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau03_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau04_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE registration_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE useraccount_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE usergroupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE usermodo_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE whitelist_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE TABLE audit (id INT NOT NULL, entityname VARCHAR(250) NOT NULL, entityid VARCHAR(250) NOT NULL, datesubmit TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, username VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, detail TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX search_idx ON audit (entityname, entityid, datesubmit)');
|
||||
$this->addSql('COMMENT ON COLUMN audit.detail IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE config (id VARCHAR(255) NOT NULL, title VARCHAR(250) NOT NULL, value TEXT DEFAULT NULL, defaultvalue TEXT NOT NULL, roworder VARCHAR(255) NOT NULL, visible BOOLEAN NOT NULL, changeable BOOLEAN NOT NULL, required BOOLEAN NOT NULL, type VARCHAR(255) NOT NULL, grouped VARCHAR(255) NOT NULL, category VARCHAR(255) NOT NULL, help TEXT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE cron (id INT NOT NULL, command VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, statut INT DEFAULT NULL, submitdate TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, startexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, endexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, nextexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, repeatinterval INT DEFAULT NULL, jsonargument TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE groupe (id INT NOT NULL, owner_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, email VARCHAR(250) DEFAULT NULL, isopen BOOLEAN DEFAULT false NOT NULL, isworkgroup BOOLEAN DEFAULT false NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_4B98C21EA750E8 ON groupe (label)');
|
||||
$this->addSql('CREATE INDEX IDX_4B98C217E3C61F9 ON groupe (owner_id)');
|
||||
$this->addSql('CREATE TABLE niveau01 (id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6DFC7E23EA750E8 ON niveau01 (label)');
|
||||
$this->addSql('CREATE TABLE niveau02 (id INT NOT NULL, niveau01_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_F4F52F99EA750E8 ON niveau02 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_F4F52F9959FDD7AB ON niveau02 (niveau01_id)');
|
||||
$this->addSql('CREATE TABLE niveau03 (id INT NOT NULL, niveau02_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_83F21F0FEA750E8 ON niveau03 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_83F21F0F4B487845 ON niveau03 (niveau02_id)');
|
||||
$this->addSql('CREATE TABLE niveau04 (id INT NOT NULL, niveau03_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1D968AACEA750E8 ON niveau04 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_1D968AACF3F41F20 ON niveau04 (niveau03_id)');
|
||||
$this->addSql('CREATE TABLE registration (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, isvisible BOOLEAN NOT NULL, postaladress VARCHAR(250) DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, statut INT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7F85E0677 ON registration (username)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7E7927C74 ON registration (email)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A759FDD7AB ON registration (niveau01_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A74B487845 ON registration (niveau02_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A7F3F41F20 ON registration (niveau03_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A76E232799 ON registration (niveau04_id)');
|
||||
$this->addSql('CREATE TABLE useraccount (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, apikey VARCHAR(255) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, roles TEXT NOT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, isactive BOOLEAN NOT NULL, email VARCHAR(128) NOT NULL, avatar VARCHAR(250) DEFAULT \'0\', isvisible BOOLEAN NOT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, preference TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AF85E0677 ON useraccount (username)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AE7927C74 ON useraccount (email)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A59FDD7AB ON useraccount (niveau01_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A4B487845 ON useraccount (niveau02_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1AF3F41F20 ON useraccount (niveau03_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A6E232799 ON useraccount (niveau04_id)');
|
||||
$this->addSql('COMMENT ON COLUMN useraccount.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN useraccount.preference IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE usergroupe (id INT NOT NULL, user_id INT DEFAULT NULL, group_id INT DEFAULT NULL, rolegroup INT NOT NULL, apikey VARCHAR(60) NOT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_6C439BE5A76ED395 ON usergroupe (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_6C439BE5FE54D947 ON usergroupe (group_id)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6C439BE5A76ED395FE54D947 ON usergroupe (user_id, group_id)');
|
||||
$this->addSql('CREATE TABLE usermodo (id INT NOT NULL, user_id INT NOT NULL, niveau01_id INT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_D162D6C4A76ED395 ON usermodo (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_D162D6C459FDD7AB ON usermodo (niveau01_id)');
|
||||
$this->addSql('CREATE TABLE whitelist (id INT NOT NULL, label VARCHAR(250) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_CB069864EA750E8 ON whitelist (label)');
|
||||
$this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)');
|
||||
$this->addSql('CREATE OR REPLACE FUNCTION notify_messenger_messages() RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
PERFORM pg_notify(\'messenger_messages\', NEW.queue_name::text);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;');
|
||||
$this->addSql('DROP TRIGGER IF EXISTS notify_trigger ON messenger_messages;');
|
||||
$this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();');
|
||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C217E3C61F9 FOREIGN KEY (owner_id) REFERENCES useraccount (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau02 ADD CONSTRAINT FK_F4F52F9959FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau03 ADD CONSTRAINT FK_83F21F0F4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau04 ADD CONSTRAINT FK_1D968AACF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A759FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A74B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A7F3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A76E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A59FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1AF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A6E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5FE54D947 FOREIGN KEY (group_id) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C4A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C459FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('DROP SEQUENCE audit_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE cron_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE groupe_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau01_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau02_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau03_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau04_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE registration_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE useraccount_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE usergroupe_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE usermodo_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE whitelist_id_seq CASCADE');
|
||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C217E3C61F9');
|
||||
$this->addSql('ALTER TABLE niveau02 DROP CONSTRAINT FK_F4F52F9959FDD7AB');
|
||||
$this->addSql('ALTER TABLE niveau03 DROP CONSTRAINT FK_83F21F0F4B487845');
|
||||
$this->addSql('ALTER TABLE niveau04 DROP CONSTRAINT FK_1D968AACF3F41F20');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A759FDD7AB');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A74B487845');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A7F3F41F20');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A76E232799');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A59FDD7AB');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A4B487845');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1AF3F41F20');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A6E232799');
|
||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5A76ED395');
|
||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5FE54D947');
|
||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C4A76ED395');
|
||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C459FDD7AB');
|
||||
$this->addSql('DROP TABLE audit');
|
||||
$this->addSql('DROP TABLE config');
|
||||
$this->addSql('DROP TABLE cron');
|
||||
$this->addSql('DROP TABLE groupe');
|
||||
$this->addSql('DROP TABLE niveau01');
|
||||
$this->addSql('DROP TABLE niveau02');
|
||||
$this->addSql('DROP TABLE niveau03');
|
||||
$this->addSql('DROP TABLE niveau04');
|
||||
$this->addSql('DROP TABLE registration');
|
||||
$this->addSql('DROP TABLE useraccount');
|
||||
$this->addSql('DROP TABLE usergroupe');
|
||||
$this->addSql('DROP TABLE usermodo');
|
||||
$this->addSql('DROP TABLE whitelist');
|
||||
$this->addSql('DROP TABLE messenger_messages');
|
||||
}
|
||||
}
|
|
@ -1,193 +0,0 @@
|
|||
<?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 Version20230105192629 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('CREATE SEQUENCE alert_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE alertcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE bookmark_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE icon_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE item_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE itemcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE page_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE pagecategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE pagewidget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE slide_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE widget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE TABLE alert (id INT NOT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, publishedat DATE NOT NULL, unpublishedat DATE DEFAULT NULL, fghideable BOOLEAN NOT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_17FD46C164C19C1 ON alert (category)');
|
||||
$this->addSql('COMMENT ON COLUMN alert.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE alertgroupe (alert INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(alert, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_64DB975617FD46C1 ON alertgroupe (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_64DB97564B98C21 ON alertgroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE alertniveau01 (alert INT NOT NULL, niveau01 INT NOT NULL, PRIMARY KEY(alert, niveau01))');
|
||||
$this->addSql('CREATE INDEX IDX_87E7389C17FD46C1 ON alertniveau01 (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_87E7389C6DFC7E23 ON alertniveau01 (niveau01)');
|
||||
$this->addSql('CREATE TABLE alertuserread (alert INT NOT NULL, "user" INT NOT NULL, PRIMARY KEY(alert, "user"))');
|
||||
$this->addSql('CREATE INDEX IDX_D4317FA917FD46C1 ON alertuserread (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_D4317FA98D93D649 ON alertuserread ("user")');
|
||||
$this->addSql('CREATE TABLE alertitem (alert INT NOT NULL, item INT NOT NULL, PRIMARY KEY(alert, item))');
|
||||
$this->addSql('CREATE INDEX IDX_873C473817FD46C1 ON alertitem (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_873C47381F1B251E ON alertitem (item)');
|
||||
$this->addSql('CREATE TABLE alertcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_EC575F7E54B9D732 ON alertcategory (icon_id)');
|
||||
$this->addSql('CREATE TABLE bookmark (id INT NOT NULL, icon_id INT DEFAULT NULL, user_id INT DEFAULT NULL, pagewidget_id INT DEFAULT NULL, item_id INT DEFAULT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, rowOrder INT DEFAULT NULL, color VARCHAR(24) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D54B9D732 ON bookmark (icon_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921DA76ED395 ON bookmark (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D55B7C7A2 ON bookmark (pagewidget_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D126F525E ON bookmark (item_id)');
|
||||
$this->addSql('CREATE TABLE icon (id INT NOT NULL, user_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, tags VARCHAR(250) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_659429DBEA750E8 ON icon (label)');
|
||||
$this->addSql('CREATE INDEX IDX_659429DBA76ED395 ON icon (user_id)');
|
||||
$this->addSql('CREATE TABLE item (id INT NOT NULL, icon_id INT DEFAULT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, slug VARCHAR(128) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, essential BOOLEAN DEFAULT false, protected BOOLEAN DEFAULT false, color VARCHAR(24) DEFAULT NULL, badgeurl VARCHAR(250) DEFAULT NULL, roles TEXT DEFAULT NULL, ssoitem VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1F1B251E989D9B62 ON item (slug)');
|
||||
$this->addSql('CREATE INDEX IDX_1F1B251E54B9D732 ON item (icon_id)');
|
||||
$this->addSql('CREATE INDEX IDX_1F1B251E64C19C1 ON item (category)');
|
||||
$this->addSql('COMMENT ON COLUMN item.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE itemgroupe (item INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(item, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_A4267B6D1F1B251E ON itemgroupe (item)');
|
||||
$this->addSql('CREATE INDEX IDX_A4267B6D4B98C21 ON itemgroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE itemniveau01 (item INT NOT NULL, niveau01 INT NOT NULL, PRIMARY KEY(item, niveau01))');
|
||||
$this->addSql('CREATE INDEX IDX_12E9B90A1F1B251E ON itemniveau01 (item)');
|
||||
$this->addSql('CREATE INDEX IDX_12E9B90A6DFC7E23 ON itemniveau01 (niveau01)');
|
||||
$this->addSql('CREATE TABLE itemcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(24) DEFAULT NULL, rowOrder INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_7959DEE854B9D732 ON itemcategory (icon_id)');
|
||||
$this->addSql('CREATE TABLE page (id INT NOT NULL, pagecategory_id INT DEFAULT NULL, user_id INT DEFAULT NULL, page_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, roworder INT NOT NULL, maxwidth INT NOT NULL, fonticon VARCHAR(255) DEFAULT NULL, url TEXT DEFAULT NULL, toreload BOOLEAN DEFAULT NULL, html TEXT DEFAULT NULL, template TEXT DEFAULT NULL, parentfor VARCHAR(255) DEFAULT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_140AB6207AED5C04 ON page (pagecategory_id)');
|
||||
$this->addSql('CREATE INDEX IDX_140AB620A76ED395 ON page (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_140AB620C4663E4 ON page (page_id)');
|
||||
$this->addSql('COMMENT ON COLUMN page.template IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN page.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE pagegroupe (page INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(page, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_E8009F6B140AB620 ON pagegroupe (page)');
|
||||
$this->addSql('CREATE INDEX IDX_E8009F6B4B98C21 ON pagegroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE pagecategory (id INT NOT NULL, name VARCHAR(100) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE pagewidget (id INT NOT NULL, page_id INT DEFAULT NULL, widget_id INT DEFAULT NULL, icon_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, loc VARCHAR(255) NOT NULL, roworder INT NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9AC4663E4 ON pagewidget (page_id)');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9AFBE885E2 ON pagewidget (widget_id)');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9A54B9D732 ON pagewidget (icon_id)');
|
||||
$this->addSql('COMMENT ON COLUMN pagewidget.parameter IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE slide (id INT NOT NULL, pagewidget_id INT DEFAULT NULL, title VARCHAR(100) DEFAULT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) DEFAULT NULL, target VARCHAR(32) NOT NULL, roworder INT DEFAULT NULL, image VARCHAR(100) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_72EFEE6255B7C7A2 ON slide (pagewidget_id)');
|
||||
$this->addSql('CREATE TABLE widget (id INT NOT NULL, icon_id INT DEFAULT NULL, roworder INT NOT NULL, name VARCHAR(100) NOT NULL, description TEXT DEFAULT NULL, routeview VARCHAR(255) NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, access TEXT DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_85F91ED054B9D732 ON widget (icon_id)');
|
||||
$this->addSql('COMMENT ON COLUMN widget.access IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN widget.parameter IS \'(DC2Type:array)\'');
|
||||
$this->addSql('ALTER TABLE alert ADD CONSTRAINT FK_17FD46C164C19C1 FOREIGN KEY (category) REFERENCES alertcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB975617FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB97564B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertniveau01 ADD CONSTRAINT FK_87E7389C17FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertniveau01 ADD CONSTRAINT FK_87E7389C6DFC7E23 FOREIGN KEY (niveau01) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA917FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA98D93D649 FOREIGN KEY ("user") REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertitem ADD CONSTRAINT FK_873C473817FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertitem ADD CONSTRAINT FK_873C47381F1B251E FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertcategory ADD CONSTRAINT FK_EC575F7E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921DA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D55B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D126F525E FOREIGN KEY (item_id) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE icon ADD CONSTRAINT FK_659429DBA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E64C19C1 FOREIGN KEY (category) REFERENCES itemcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D1F1B251E FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemniveau01 ADD CONSTRAINT FK_12E9B90A1F1B251E FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemniveau01 ADD CONSTRAINT FK_12E9B90A6DFC7E23 FOREIGN KEY (niveau01) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemcategory ADD CONSTRAINT FK_7959DEE854B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB6207AED5C04 FOREIGN KEY (pagecategory_id) REFERENCES pagecategory (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620C4663E4 FOREIGN KEY (page_id) REFERENCES page (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B140AB620 FOREIGN KEY (page) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AC4663E4 FOREIGN KEY (page_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AFBE885E2 FOREIGN KEY (widget_id) REFERENCES widget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9A54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE slide ADD CONSTRAINT FK_72EFEE6255B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE widget ADD CONSTRAINT FK_85F91ED054B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('DROP SEQUENCE alert_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE alertcategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE bookmark_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE icon_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE item_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE itemcategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE page_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE pagecategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE pagewidget_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE slide_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE widget_id_seq CASCADE');
|
||||
$this->addSql('ALTER TABLE alert DROP CONSTRAINT FK_17FD46C164C19C1');
|
||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB975617FD46C1');
|
||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB97564B98C21');
|
||||
$this->addSql('ALTER TABLE alertniveau01 DROP CONSTRAINT FK_87E7389C17FD46C1');
|
||||
$this->addSql('ALTER TABLE alertniveau01 DROP CONSTRAINT FK_87E7389C6DFC7E23');
|
||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA917FD46C1');
|
||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA98D93D649');
|
||||
$this->addSql('ALTER TABLE alertitem DROP CONSTRAINT FK_873C473817FD46C1');
|
||||
$this->addSql('ALTER TABLE alertitem DROP CONSTRAINT FK_873C47381F1B251E');
|
||||
$this->addSql('ALTER TABLE alertcategory DROP CONSTRAINT FK_EC575F7E54B9D732');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D54B9D732');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921DA76ED395');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D55B7C7A2');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D126F525E');
|
||||
$this->addSql('ALTER TABLE icon DROP CONSTRAINT FK_659429DBA76ED395');
|
||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E54B9D732');
|
||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E64C19C1');
|
||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D1F1B251E');
|
||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D4B98C21');
|
||||
$this->addSql('ALTER TABLE itemniveau01 DROP CONSTRAINT FK_12E9B90A1F1B251E');
|
||||
$this->addSql('ALTER TABLE itemniveau01 DROP CONSTRAINT FK_12E9B90A6DFC7E23');
|
||||
$this->addSql('ALTER TABLE itemcategory DROP CONSTRAINT FK_7959DEE854B9D732');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB6207AED5C04');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620A76ED395');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620C4663E4');
|
||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B140AB620');
|
||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B4B98C21');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AC4663E4');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AFBE885E2');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9A54B9D732');
|
||||
$this->addSql('ALTER TABLE slide DROP CONSTRAINT FK_72EFEE6255B7C7A2');
|
||||
$this->addSql('ALTER TABLE widget DROP CONSTRAINT FK_85F91ED054B9D732');
|
||||
$this->addSql('DROP TABLE alert');
|
||||
$this->addSql('DROP TABLE alertgroupe');
|
||||
$this->addSql('DROP TABLE alertniveau01');
|
||||
$this->addSql('DROP TABLE alertuserread');
|
||||
$this->addSql('DROP TABLE alertitem');
|
||||
$this->addSql('DROP TABLE alertcategory');
|
||||
$this->addSql('DROP TABLE bookmark');
|
||||
$this->addSql('DROP TABLE icon');
|
||||
$this->addSql('DROP TABLE item');
|
||||
$this->addSql('DROP TABLE itemgroupe');
|
||||
$this->addSql('DROP TABLE itemniveau01');
|
||||
$this->addSql('DROP TABLE itemcategory');
|
||||
$this->addSql('DROP TABLE page');
|
||||
$this->addSql('DROP TABLE pagegroupe');
|
||||
$this->addSql('DROP TABLE pagecategory');
|
||||
$this->addSql('DROP TABLE pagewidget');
|
||||
$this->addSql('DROP TABLE slide');
|
||||
$this->addSql('DROP TABLE widget');
|
||||
}
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
<?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 Version20230111095833 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 alertniveau01 DROP CONSTRAINT fk_87e7389c17fd46c1');
|
||||
$this->addSql('ALTER TABLE alertniveau01 DROP CONSTRAINT fk_87e7389c6dfc7e23');
|
||||
$this->addSql('ALTER TABLE itemniveau01 DROP CONSTRAINT fk_12e9b90a1f1b251e');
|
||||
$this->addSql('ALTER TABLE itemniveau01 DROP CONSTRAINT fk_12e9b90a6dfc7e23');
|
||||
$this->addSql('ALTER TABLE alertitem DROP CONSTRAINT fk_873c473817fd46c1');
|
||||
$this->addSql('ALTER TABLE alertitem DROP CONSTRAINT fk_873c47381f1b251e');
|
||||
$this->addSql('DROP TABLE alertniveau01');
|
||||
$this->addSql('DROP TABLE itemniveau01');
|
||||
$this->addSql('DROP TABLE alertitem');
|
||||
$this->addSql('ALTER TABLE groupe ADD pagetemplate_id INT DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C216D71CE5E FOREIGN KEY (pagetemplate_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('CREATE INDEX IDX_4B98C216D71CE5E ON groupe (pagetemplate_id)');
|
||||
$this->addSql('ALTER TABLE item DROP badgeurl');
|
||||
$this->addSql('ALTER TABLE item DROP ssoitem');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('CREATE TABLE alertniveau01 (alert INT NOT NULL, niveau01 INT NOT NULL, PRIMARY KEY(alert, niveau01))');
|
||||
$this->addSql('CREATE INDEX idx_87e7389c6dfc7e23 ON alertniveau01 (niveau01)');
|
||||
$this->addSql('CREATE INDEX idx_87e7389c17fd46c1 ON alertniveau01 (alert)');
|
||||
$this->addSql('CREATE TABLE itemniveau01 (item INT NOT NULL, niveau01 INT NOT NULL, PRIMARY KEY(item, niveau01))');
|
||||
$this->addSql('CREATE INDEX idx_12e9b90a6dfc7e23 ON itemniveau01 (niveau01)');
|
||||
$this->addSql('CREATE INDEX idx_12e9b90a1f1b251e ON itemniveau01 (item)');
|
||||
$this->addSql('CREATE TABLE alertitem (alert INT NOT NULL, item INT NOT NULL, PRIMARY KEY(alert, item))');
|
||||
$this->addSql('CREATE INDEX idx_873c47381f1b251e ON alertitem (item)');
|
||||
$this->addSql('CREATE INDEX idx_873c473817fd46c1 ON alertitem (alert)');
|
||||
$this->addSql('ALTER TABLE alertniveau01 ADD CONSTRAINT fk_87e7389c17fd46c1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertniveau01 ADD CONSTRAINT fk_87e7389c6dfc7e23 FOREIGN KEY (niveau01) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemniveau01 ADD CONSTRAINT fk_12e9b90a1f1b251e FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemniveau01 ADD CONSTRAINT fk_12e9b90a6dfc7e23 FOREIGN KEY (niveau01) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertitem ADD CONSTRAINT fk_873c473817fd46c1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertitem ADD CONSTRAINT fk_873c47381f1b251e FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C216D71CE5E');
|
||||
$this->addSql('DROP INDEX IDX_4B98C216D71CE5E');
|
||||
$this->addSql('ALTER TABLE groupe DROP pagetemplate_id');
|
||||
$this->addSql('ALTER TABLE item ADD badgeurl VARCHAR(250) DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE item ADD ssoitem VARCHAR(255) DEFAULT NULL');
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
<?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 Version20230112085854 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 pagewidget ADD viewheader BOOLEAN DEFAULT true NOT NULL');
|
||||
$this->addSql('ALTER TABLE widget ADD viewheader BOOLEAN DEFAULT true NOT NULL');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('ALTER TABLE widget DROP viewheader');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP viewheader');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,298 @@
|
|||
<?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 Version20230123084600 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('CREATE SEQUENCE alert_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE alertcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE audit_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE bookmark_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE cron_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE groupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE icon_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE item_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE itemcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau01_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau02_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau03_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE niveau04_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE page_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE pagecategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE pagewidget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE registration_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE slide_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE useraccount_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE usergroupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE usermodo_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE whitelist_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE SEQUENCE widget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
||||
$this->addSql('CREATE TABLE alert (id INT NOT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, publishedat DATE NOT NULL, unpublishedat DATE DEFAULT NULL, fghideable BOOLEAN NOT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_17FD46C164C19C1 ON alert (category)');
|
||||
$this->addSql('COMMENT ON COLUMN alert.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE alertgroupe (alert INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(alert, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_64DB975617FD46C1 ON alertgroupe (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_64DB97564B98C21 ON alertgroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE alertuserread (alert INT NOT NULL, useraccount INT NOT NULL, PRIMARY KEY(alert, useraccount))');
|
||||
$this->addSql('CREATE INDEX IDX_D4317FA917FD46C1 ON alertuserread (alert)');
|
||||
$this->addSql('CREATE INDEX IDX_D4317FA9E157AA1A ON alertuserread (useraccount)');
|
||||
$this->addSql('CREATE TABLE alertcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_EC575F7E54B9D732 ON alertcategory (icon_id)');
|
||||
$this->addSql('CREATE TABLE audit (id INT NOT NULL, entityname VARCHAR(250) NOT NULL, entityid VARCHAR(250) NOT NULL, datesubmit TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, username VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, detail TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX search_idx ON audit (entityname, entityid, datesubmit)');
|
||||
$this->addSql('COMMENT ON COLUMN audit.detail IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE bookmark (id INT NOT NULL, icon_id INT DEFAULT NULL, user_id INT DEFAULT NULL, pagewidget_id INT DEFAULT NULL, item_id INT DEFAULT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, rowOrder INT DEFAULT NULL, color VARCHAR(24) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D54B9D732 ON bookmark (icon_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921DA76ED395 ON bookmark (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D55B7C7A2 ON bookmark (pagewidget_id)');
|
||||
$this->addSql('CREATE INDEX IDX_DA62921D126F525E ON bookmark (item_id)');
|
||||
$this->addSql('CREATE TABLE config (id VARCHAR(255) NOT NULL, title VARCHAR(250) NOT NULL, value TEXT DEFAULT NULL, defaultvalue TEXT NOT NULL, roworder VARCHAR(255) NOT NULL, visible BOOLEAN NOT NULL, changeable BOOLEAN NOT NULL, required BOOLEAN NOT NULL, type VARCHAR(255) NOT NULL, grouped VARCHAR(255) NOT NULL, category VARCHAR(255) NOT NULL, help TEXT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE cron (id INT NOT NULL, command VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, statut INT DEFAULT NULL, submitdate TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, startexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, endexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, nextexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, repeatinterval INT DEFAULT NULL, jsonargument TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE groupe (id INT NOT NULL, owner_id INT DEFAULT NULL, pagetemplate_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, email VARCHAR(250) DEFAULT NULL, isopen BOOLEAN DEFAULT false NOT NULL, isworkgroup BOOLEAN DEFAULT false NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_4B98C21EA750E8 ON groupe (label)');
|
||||
$this->addSql('CREATE INDEX IDX_4B98C217E3C61F9 ON groupe (owner_id)');
|
||||
$this->addSql('CREATE INDEX IDX_4B98C216D71CE5E ON groupe (pagetemplate_id)');
|
||||
$this->addSql('CREATE TABLE icon (id INT NOT NULL, user_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, tags VARCHAR(250) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_659429DBEA750E8 ON icon (label)');
|
||||
$this->addSql('CREATE INDEX IDX_659429DBA76ED395 ON icon (user_id)');
|
||||
$this->addSql('CREATE TABLE item (id INT NOT NULL, icon_id INT DEFAULT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, slug VARCHAR(128) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, essential BOOLEAN DEFAULT false, protected BOOLEAN DEFAULT false, color VARCHAR(24) DEFAULT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1F1B251E989D9B62 ON item (slug)');
|
||||
$this->addSql('CREATE INDEX IDX_1F1B251E54B9D732 ON item (icon_id)');
|
||||
$this->addSql('CREATE INDEX IDX_1F1B251E64C19C1 ON item (category)');
|
||||
$this->addSql('COMMENT ON COLUMN item.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE itemgroupe (item INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(item, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_A4267B6D1F1B251E ON itemgroupe (item)');
|
||||
$this->addSql('CREATE INDEX IDX_A4267B6D4B98C21 ON itemgroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE itemcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(24) DEFAULT NULL, rowOrder INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_7959DEE854B9D732 ON itemcategory (icon_id)');
|
||||
$this->addSql('CREATE TABLE niveau01 (id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6DFC7E23EA750E8 ON niveau01 (label)');
|
||||
$this->addSql('CREATE TABLE niveau02 (id INT NOT NULL, niveau01_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_F4F52F99EA750E8 ON niveau02 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_F4F52F9959FDD7AB ON niveau02 (niveau01_id)');
|
||||
$this->addSql('CREATE TABLE niveau03 (id INT NOT NULL, niveau02_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_83F21F0FEA750E8 ON niveau03 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_83F21F0F4B487845 ON niveau03 (niveau02_id)');
|
||||
$this->addSql('CREATE TABLE niveau04 (id INT NOT NULL, niveau03_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1D968AACEA750E8 ON niveau04 (label)');
|
||||
$this->addSql('CREATE INDEX IDX_1D968AACF3F41F20 ON niveau04 (niveau03_id)');
|
||||
$this->addSql('CREATE TABLE page (id INT NOT NULL, pagecategory_id INT DEFAULT NULL, user_id INT DEFAULT NULL, page_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, roworder INT NOT NULL, maxwidth INT NOT NULL, fonticon VARCHAR(255) DEFAULT NULL, url TEXT DEFAULT NULL, toreload BOOLEAN DEFAULT NULL, html TEXT DEFAULT NULL, template TEXT DEFAULT NULL, parentfor VARCHAR(255) DEFAULT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_140AB6207AED5C04 ON page (pagecategory_id)');
|
||||
$this->addSql('CREATE INDEX IDX_140AB620A76ED395 ON page (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_140AB620C4663E4 ON page (page_id)');
|
||||
$this->addSql('COMMENT ON COLUMN page.template IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN page.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE pagegroupe (page INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(page, groupe))');
|
||||
$this->addSql('CREATE INDEX IDX_E8009F6B140AB620 ON pagegroupe (page)');
|
||||
$this->addSql('CREATE INDEX IDX_E8009F6B4B98C21 ON pagegroupe (groupe)');
|
||||
$this->addSql('CREATE TABLE pagecategory (id INT NOT NULL, name VARCHAR(100) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE TABLE pagewidget (id INT NOT NULL, page_id INT DEFAULT NULL, widget_id INT DEFAULT NULL, icon_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, loc VARCHAR(255) NOT NULL, roworder INT NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, viewheader BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9AC4663E4 ON pagewidget (page_id)');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9AFBE885E2 ON pagewidget (widget_id)');
|
||||
$this->addSql('CREATE INDEX IDX_69400D9A54B9D732 ON pagewidget (icon_id)');
|
||||
$this->addSql('COMMENT ON COLUMN pagewidget.parameter IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE registration (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, isvisible BOOLEAN NOT NULL, postaladress VARCHAR(250) DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, statut INT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7F85E0677 ON registration (username)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7E7927C74 ON registration (email)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A759FDD7AB ON registration (niveau01_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A74B487845 ON registration (niveau02_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A7F3F41F20 ON registration (niveau03_id)');
|
||||
$this->addSql('CREATE INDEX IDX_62A8A7A76E232799 ON registration (niveau04_id)');
|
||||
$this->addSql('CREATE TABLE slide (id INT NOT NULL, pagewidget_id INT DEFAULT NULL, title VARCHAR(100) DEFAULT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) DEFAULT NULL, target VARCHAR(32) NOT NULL, roworder INT DEFAULT NULL, image VARCHAR(100) DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_72EFEE6255B7C7A2 ON slide (pagewidget_id)');
|
||||
$this->addSql('CREATE TABLE useraccount (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, apikey VARCHAR(255) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, roles TEXT NOT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, isactive BOOLEAN NOT NULL, email VARCHAR(128) NOT NULL, avatar VARCHAR(250) DEFAULT \'0\', isvisible BOOLEAN NOT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, preference TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AF85E0677 ON useraccount (username)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AE7927C74 ON useraccount (email)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A59FDD7AB ON useraccount (niveau01_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A4B487845 ON useraccount (niveau02_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1AF3F41F20 ON useraccount (niveau03_id)');
|
||||
$this->addSql('CREATE INDEX IDX_E157AA1A6E232799 ON useraccount (niveau04_id)');
|
||||
$this->addSql('COMMENT ON COLUMN useraccount.roles IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN useraccount.preference IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE usergroupe (id INT NOT NULL, user_id INT DEFAULT NULL, group_id INT DEFAULT NULL, rolegroup INT NOT NULL, apikey VARCHAR(60) NOT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_6C439BE5A76ED395 ON usergroupe (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_6C439BE5FE54D947 ON usergroupe (group_id)');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6C439BE5A76ED395FE54D947 ON usergroupe (user_id, group_id)');
|
||||
$this->addSql('CREATE TABLE usermodo (id INT NOT NULL, user_id INT NOT NULL, niveau01_id INT NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_D162D6C4A76ED395 ON usermodo (user_id)');
|
||||
$this->addSql('CREATE INDEX IDX_D162D6C459FDD7AB ON usermodo (niveau01_id)');
|
||||
$this->addSql('CREATE TABLE whitelist (id INT NOT NULL, label VARCHAR(250) NOT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_CB069864EA750E8 ON whitelist (label)');
|
||||
$this->addSql('CREATE TABLE widget (id INT NOT NULL, icon_id INT DEFAULT NULL, roworder INT NOT NULL, name VARCHAR(100) NOT NULL, description TEXT DEFAULT NULL, routeview VARCHAR(255) NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, viewheader BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, access TEXT DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_85F91ED054B9D732 ON widget (icon_id)');
|
||||
$this->addSql('COMMENT ON COLUMN widget.access IS \'(DC2Type:array)\'');
|
||||
$this->addSql('COMMENT ON COLUMN widget.parameter IS \'(DC2Type:array)\'');
|
||||
$this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)');
|
||||
$this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)');
|
||||
$this->addSql('CREATE OR REPLACE FUNCTION notify_messenger_messages() RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
PERFORM pg_notify(\'messenger_messages\', NEW.queue_name::text);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;');
|
||||
$this->addSql('DROP TRIGGER IF EXISTS notify_trigger ON messenger_messages;');
|
||||
$this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();');
|
||||
$this->addSql('ALTER TABLE alert ADD CONSTRAINT FK_17FD46C164C19C1 FOREIGN KEY (category) REFERENCES alertcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB975617FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB97564B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA917FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA9E157AA1A FOREIGN KEY (useraccount) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE alertcategory ADD CONSTRAINT FK_EC575F7E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921DA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D55B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D126F525E FOREIGN KEY (item_id) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C217E3C61F9 FOREIGN KEY (owner_id) REFERENCES useraccount (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C216D71CE5E FOREIGN KEY (pagetemplate_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE icon ADD CONSTRAINT FK_659429DBA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E64C19C1 FOREIGN KEY (category) REFERENCES itemcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D1F1B251E FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE itemcategory ADD CONSTRAINT FK_7959DEE854B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau02 ADD CONSTRAINT FK_F4F52F9959FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau03 ADD CONSTRAINT FK_83F21F0F4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE niveau04 ADD CONSTRAINT FK_1D968AACF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB6207AED5C04 FOREIGN KEY (pagecategory_id) REFERENCES pagecategory (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620C4663E4 FOREIGN KEY (page_id) REFERENCES page (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B140AB620 FOREIGN KEY (page) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AC4663E4 FOREIGN KEY (page_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AFBE885E2 FOREIGN KEY (widget_id) REFERENCES widget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9A54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A759FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A74B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A7F3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A76E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE slide ADD CONSTRAINT FK_72EFEE6255B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A59FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1AF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A6E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5FE54D947 FOREIGN KEY (group_id) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C4A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C459FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
$this->addSql('ALTER TABLE widget ADD CONSTRAINT FK_85F91ED054B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('DROP SEQUENCE alert_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE alertcategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE audit_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE bookmark_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE cron_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE groupe_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE icon_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE item_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE itemcategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau01_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau02_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau03_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE niveau04_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE page_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE pagecategory_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE pagewidget_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE registration_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE slide_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE useraccount_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE usergroupe_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE usermodo_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE whitelist_id_seq CASCADE');
|
||||
$this->addSql('DROP SEQUENCE widget_id_seq CASCADE');
|
||||
$this->addSql('ALTER TABLE alert DROP CONSTRAINT FK_17FD46C164C19C1');
|
||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB975617FD46C1');
|
||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB97564B98C21');
|
||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA917FD46C1');
|
||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA9E157AA1A');
|
||||
$this->addSql('ALTER TABLE alertcategory DROP CONSTRAINT FK_EC575F7E54B9D732');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D54B9D732');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921DA76ED395');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D55B7C7A2');
|
||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D126F525E');
|
||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C217E3C61F9');
|
||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C216D71CE5E');
|
||||
$this->addSql('ALTER TABLE icon DROP CONSTRAINT FK_659429DBA76ED395');
|
||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E54B9D732');
|
||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E64C19C1');
|
||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D1F1B251E');
|
||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D4B98C21');
|
||||
$this->addSql('ALTER TABLE itemcategory DROP CONSTRAINT FK_7959DEE854B9D732');
|
||||
$this->addSql('ALTER TABLE niveau02 DROP CONSTRAINT FK_F4F52F9959FDD7AB');
|
||||
$this->addSql('ALTER TABLE niveau03 DROP CONSTRAINT FK_83F21F0F4B487845');
|
||||
$this->addSql('ALTER TABLE niveau04 DROP CONSTRAINT FK_1D968AACF3F41F20');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB6207AED5C04');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620A76ED395');
|
||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620C4663E4');
|
||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B140AB620');
|
||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B4B98C21');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AC4663E4');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AFBE885E2');
|
||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9A54B9D732');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A759FDD7AB');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A74B487845');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A7F3F41F20');
|
||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A76E232799');
|
||||
$this->addSql('ALTER TABLE slide DROP CONSTRAINT FK_72EFEE6255B7C7A2');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A59FDD7AB');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A4B487845');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1AF3F41F20');
|
||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A6E232799');
|
||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5A76ED395');
|
||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5FE54D947');
|
||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C4A76ED395');
|
||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C459FDD7AB');
|
||||
$this->addSql('ALTER TABLE widget DROP CONSTRAINT FK_85F91ED054B9D732');
|
||||
$this->addSql('DROP TABLE alert');
|
||||
$this->addSql('DROP TABLE alertgroupe');
|
||||
$this->addSql('DROP TABLE alertuserread');
|
||||
$this->addSql('DROP TABLE alertcategory');
|
||||
$this->addSql('DROP TABLE audit');
|
||||
$this->addSql('DROP TABLE bookmark');
|
||||
$this->addSql('DROP TABLE config');
|
||||
$this->addSql('DROP TABLE cron');
|
||||
$this->addSql('DROP TABLE groupe');
|
||||
$this->addSql('DROP TABLE icon');
|
||||
$this->addSql('DROP TABLE item');
|
||||
$this->addSql('DROP TABLE itemgroupe');
|
||||
$this->addSql('DROP TABLE itemcategory');
|
||||
$this->addSql('DROP TABLE niveau01');
|
||||
$this->addSql('DROP TABLE niveau02');
|
||||
$this->addSql('DROP TABLE niveau03');
|
||||
$this->addSql('DROP TABLE niveau04');
|
||||
$this->addSql('DROP TABLE page');
|
||||
$this->addSql('DROP TABLE pagegroupe');
|
||||
$this->addSql('DROP TABLE pagecategory');
|
||||
$this->addSql('DROP TABLE pagewidget');
|
||||
$this->addSql('DROP TABLE registration');
|
||||
$this->addSql('DROP TABLE slide');
|
||||
$this->addSql('DROP TABLE useraccount');
|
||||
$this->addSql('DROP TABLE usergroupe');
|
||||
$this->addSql('DROP TABLE usermodo');
|
||||
$this->addSql('DROP TABLE whitelist');
|
||||
$this->addSql('DROP TABLE widget');
|
||||
$this->addSql('DROP TABLE messenger_messages');
|
||||
}
|
||||
}
|
|
@ -27,6 +27,7 @@
|
|||
"datatables.net-bs4": "^1.12.1",
|
||||
"dropzone": "^6.0.0-beta.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"iframe-resizer": "^4.3.2",
|
||||
"jquery": "^3.6.0",
|
||||
"jquery-ui": "^1.13.1",
|
||||
"jqueryui": "^1.11.1",
|
||||
|
|
|
@ -7,7 +7,9 @@ use App\Entity\Cron;
|
|||
use App\Entity\Group;
|
||||
use App\Entity\Icon;
|
||||
use App\Entity\Niveau01;
|
||||
use App\Entity\Page;
|
||||
use App\Entity\Pagecategory;
|
||||
use App\Entity\Pagewidget;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Widget;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
@ -68,10 +70,18 @@ class InitCommand extends Command
|
|||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$metadata = $this->em->getClassMetaData('App\Entity\Page');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$metadata = $this->em->getClassMetaData('App\Entity\Pagecategory');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$metadata = $this->em->getClassMetaData('App\Entity\Pagewidget');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
||||
$metadata = $this->em->getClassMetaData('App\Entity\Widget');
|
||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadata->setIdGenerator(new AssignedGenerator());
|
||||
|
@ -573,6 +583,72 @@ class InitCommand extends Command
|
|||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
// Widget Bureau Essentiel
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1850);
|
||||
if (!$entityWidget) {
|
||||
$entityWidget = new Widget();
|
||||
}
|
||||
$entityicon = $this->em->getRepository('App\Entity\Icon')->findoneby(['label' => 'icon/icon_computer.png']);
|
||||
$entityWidget->setId(-1850);
|
||||
$entityWidget->setRoworder(0);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Bureau Essentiel');
|
||||
$entityWidget->setDescription('Affiche les items de bureau essentiel');
|
||||
$entityWidget->setRouteview('app_admin_pagewidget_view_itemessential');
|
||||
$entityWidget->setHeight('630');
|
||||
$entityWidget->setAutoajust(true);
|
||||
$entityWidget->setBorder(false);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setViewheader(true);
|
||||
$entityWidget->setAccess(['admin', 'all', 'group']);
|
||||
$parameter = ['fields' => [['id' => 'modedesktop', 'loc' => 'col1', 'type' => 'desktopmode', 'label' => 'Mode Affichage', 'value' => '2', 'mandatory' => 'true']]];
|
||||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
// Widget Liens
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1960);
|
||||
if (!$entityWidget) {
|
||||
$entityWidget = new Widget();
|
||||
}
|
||||
$entityicon = $this->em->getRepository('App\Entity\Icon')->findoneby(['label' => 'icon/icon_star.png']);
|
||||
$entityWidget->setId(-1960);
|
||||
$entityWidget->setRoworder(0);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Liens');
|
||||
$entityWidget->setDescription('Bibliothèque de Liens');
|
||||
$entityWidget->setRouteview('app_admin_pagewidget_view_bookmark');
|
||||
$entityWidget->setHeight('630');
|
||||
$entityWidget->setAutoajust(true);
|
||||
$entityWidget->setBorder(false);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setViewheader(true);
|
||||
$entityWidget->setAccess(['admin', 'all', 'group']);
|
||||
$parameter = ['fields' => [['id' => 'modedesktop', 'loc' => 'col1', 'type' => 'desktopmode', 'label' => 'Mode Affichage', 'value' => '2', 'mandatory' => 'true']]];
|
||||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
// Widget Lien
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1950);
|
||||
if (!$entityWidget) {
|
||||
$entityWidget = new Widget();
|
||||
}
|
||||
$entityicon = $this->em->getRepository('App\Entity\Icon')->findoneby(['label' => 'icon/icon_bolt.png']);
|
||||
$entityWidget->setId(-1950);
|
||||
$entityWidget->setRoworder(0);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Lien');
|
||||
$entityWidget->setDescription("Création d'un Lien unique");
|
||||
$entityWidget->setRouteview('app_admin_pagewidget_view_link');
|
||||
$entityWidget->setHeight('200');
|
||||
$entityWidget->setAutoajust(true);
|
||||
$entityWidget->setBorder(true);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setViewheader(false);
|
||||
$entityWidget->setAccess(['admin', 'all', 'group']);
|
||||
$parameter = ['fields' => [['id' => 'url', 'loc' => 'col1', 'type' => 'string', 'label' => 'URL', 'value' => '', 'mandatory' => 'true'], ['id' => 'target', 'loc' => 'col1', 'type' => 'target', 'label' => 'Ouvrir le lien dans', 'value' => '0', 'mandatory' => 'true']]];
|
||||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
// Widget Annonce
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1980);
|
||||
if (!$entityWidget) {
|
||||
|
@ -589,14 +665,134 @@ class InitCommand extends Command
|
|||
$entityWidget->setAutoajust(true);
|
||||
$entityWidget->setBorder(false);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setViewheader(true);
|
||||
$entityWidget->setViewheader(false);
|
||||
$entityWidget->setAccess(['admin', 'all', 'group']);
|
||||
$parameter = ['fields' => [['id' => 'alertcategory', 'loc' => 'col1', 'type' => 'alertcategory', 'label' => 'Catégorie Affichée', 'value' => '', 'mandatory' => 'false']]];
|
||||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
// Widget Informations
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1860);
|
||||
if (!$entityWidget) {
|
||||
$entityWidget = new Widget();
|
||||
}
|
||||
$entityicon = $this->em->getRepository('App\Entity\Icon')->findoneby(['label' => 'icon/icon_info.png']);
|
||||
$entityWidget->setId(-1860);
|
||||
$entityWidget->setRoworder(0);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Informations');
|
||||
$entityWidget->setDescription('Afficher les informations associées à la page');
|
||||
$entityWidget->setRouteview('app_admin_pagewidget_view_info');
|
||||
$entityWidget->setHeight('630');
|
||||
$entityWidget->setAutoajust(true);
|
||||
$entityWidget->setBorder(true);
|
||||
$entityWidget->setOpened(false);
|
||||
$entityWidget->setViewheader(true);
|
||||
$entityWidget->setViewheader(true);
|
||||
$entityWidget->setColorheaderback('#5b5b5b');
|
||||
$entityWidget->setColorheaderfont('#ffffff');
|
||||
$entityWidget->setColorbodyback('#5b5b5b');
|
||||
$entityWidget->setColorbodyfont('#ffffff');
|
||||
$entityWidget->setAccess(['admin', 'all', 'group']);
|
||||
$parameter = ['fields' => []];
|
||||
$entityWidget->setParameter($parameter);
|
||||
$this->em->persist($entityWidget);
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
// == PAGETEMPALTE =======================================================================================================================================
|
||||
// Template app
|
||||
$entityPage = $this->em->getRepository('App\Entity\Page')->find(-100);
|
||||
if (!$entityPage) {
|
||||
$entityPagecategory = $this->em->getRepository('App\Entity\Pagecategory')->find(2);
|
||||
$entityGroup = $this->em->getRepository("App\Entity\Group")->find(-1);
|
||||
|
||||
$entityPage = new Page();
|
||||
$entityPage->setId(-100);
|
||||
$entityPage->setRowOrder(0);
|
||||
$entityPage->setName('Applications');
|
||||
$entityPage->setParentfor('app');
|
||||
$entityPage->setMaxwidth(1000);
|
||||
$entityPage->setPagecategory($entityPagecategory);
|
||||
$entityPage->addGroup($entityGroup);
|
||||
$entityPage->setTemplate('{"rows":[{"id":0,"cols":[{"id":0,"size": 12,"rows":[]}]}]}');
|
||||
|
||||
$this->em->persist($entityPage);
|
||||
$this->em->flush();
|
||||
|
||||
$entityPagewidget = $this->em->getRepository('App\Entity\Pagewidget')->find(-110);
|
||||
if (!$entityPagewidget) {
|
||||
$entityWidget = $this->em->getRepository('App\Entity\Widget')->find(-1990);
|
||||
|
||||
$entityPagewidget = new Pagewidget();
|
||||
$entityPagewidget->setId(-110);
|
||||
$entityPagewidget->setLoc('R1C1');
|
||||
$entityPagewidget->setRoworder(0);
|
||||
$entityPagewidget->setName('Applications');
|
||||
$entityPagewidget->setHeight($entityWidget->getHeight());
|
||||
$entityPagewidget->setAutoajust($entityWidget->isAutoajust());
|
||||
$entityPagewidget->setBorder($entityWidget->isBorder());
|
||||
$entityPagewidget->setOpened($entityWidget->isOpened());
|
||||
$entityPagewidget->setViewheader($entityWidget->isViewheader());
|
||||
$entityPagewidget->setIcon($entityWidget->getIcon());
|
||||
$entityPagewidget->setPage($entityPage);
|
||||
$entityPagewidget->setWidget($entityWidget);
|
||||
|
||||
$param['fields'] = ['fields' => [['id' => 'modedesktop', 'value' => 2], ['id' => 'withbookmark', 'value' => 0], ['id' => 'itemcategory', 'value' => null], ['id' => 'menu', 'value' => 1], ['id' => 'search', 'value' => 1], ['id' => 'menuall', 'value' => 1]]];
|
||||
$entityPagewidget->setParameter($param['fields']);
|
||||
|
||||
$this->em->persist($entityPagewidget);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
// Template Group
|
||||
$entityPage = $this->em->getRepository('App\Entity\Page')->find(-110);
|
||||
if (!$entityPage) {
|
||||
$entityPagecategory = $this->em->getRepository('App\Entity\Pagecategory')->find(2);
|
||||
$entityPage = new Page();
|
||||
$entityPage->setId(-110);
|
||||
$entityPage->setRowOrder(0);
|
||||
$entityPage->setName('Groupe Template');
|
||||
$entityPage->setParentfor('group');
|
||||
$entityPage->setMaxwidth(0);
|
||||
$entityPage->setPagecategory($entityPagecategory);
|
||||
$entityPage->setTemplate('{"rows":[{"id":0,"cols":[{"id":0,"size": 3,"rows":[]},{"id":1,"size": 6,"rows":[{"id":0,"cols":[{"id":0,"size": 6},{"id":1,"size": 6}]}]},{"id":2,"size": 3,"rows":[]}]}]}');
|
||||
|
||||
$this->em->persist($entityPage);
|
||||
$this->em->flush();
|
||||
|
||||
// Widget Nos Liens
|
||||
$fields = ['fields' => [['id' => 'modedesktop', 'value' => 2]]];
|
||||
$this->addWidget(-120, $entityPage, -1960, 'R1C2R1C1', 0, 'Nos Liens', true, $fields);
|
||||
|
||||
// Widget Nos Fichiers
|
||||
/*
|
||||
$fields=["fields"=>[]];
|
||||
$this->addWidget(-130,$entityPage,-1920,"R1C2R1C2",0,"Nos Fichiers",true,$fields);
|
||||
|
||||
// Widget Info Page
|
||||
$fields=["fields"=>[]];
|
||||
$this->addWidget(-140,$entityPage,-1860,"R1C1",0,"Information Page",true,$fields);
|
||||
|
||||
// Widget Tâche
|
||||
$fields=["fields"=>[]];
|
||||
$this->addWidget(-145,$entityPage,-1800,"R1C1",1,"Taches du groupe",true,$fields);
|
||||
|
||||
// Widget Notre Blog
|
||||
$fields=["fields"=>[["id"=>"nbarticle","value"=>5]]];
|
||||
$this->addWidget(-150,$entityPage,-1890,"R1C2",0,"Notre Blog",false,$fields);
|
||||
|
||||
// Widget Notre Calendrier
|
||||
$fields=["fields"=>[["id"=>"nbday","value"=>30]]];
|
||||
$this->addWidget(-160,$entityPage,-1900,"R1C2R1C1",1,"Notre Calendrier",true,$fields);
|
||||
|
||||
// Chat
|
||||
$fields=["fields"=>[]];
|
||||
$this->addWidget(-170,$entityPage,-1840,"R1C3",0,"Chat",false,$fields);
|
||||
*/
|
||||
}
|
||||
|
||||
$output->writeln('');
|
||||
|
||||
return Command::SUCCESS;
|
||||
|
|
|
@ -35,27 +35,6 @@ class AlertController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function selectlist($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$output = [];
|
||||
$page_limit = $request->query->get('page_limit');
|
||||
$q = $request->query->get('q');
|
||||
|
||||
$qb = $em->getManager()->createQueryBuilder();
|
||||
$qb->select('table')->from($this->entity, 'table')
|
||||
->where('table.title LIKE :value')
|
||||
->setParameter('value', '%'.$q.'%')
|
||||
->orderBy('table.title');
|
||||
|
||||
$datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
|
||||
foreach ($datas as $data) {
|
||||
array_push($output, ['id' => $data->getId(), 'text' => $data->getLabel()]);
|
||||
}
|
||||
$ret_string['results'] = $output;
|
||||
|
||||
return new JsonResponse($ret_string);
|
||||
}
|
||||
|
||||
public function submit($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
|
|
|
@ -14,42 +14,45 @@ class BookmarkController extends AbstractController
|
|||
{
|
||||
private $data = 'bookmark';
|
||||
private $entity = "App\Entity\Bookmark";
|
||||
private $twig = 'bookmark/';
|
||||
private $twig = 'Bookmark/';
|
||||
private $route = 'app_admin_bookmark';
|
||||
|
||||
public function submitAction(Request $request, $idpage, $idwidget, $touser, $access = 'config')
|
||||
public function submit($access, $idpage, $idwidget, $touser, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$usage = $request->query->get('usage');
|
||||
$group = $request->query->get('group');
|
||||
|
||||
// Initialisation de l'enregistrement
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = new Bookmark();
|
||||
|
||||
// On s'assure que le widget existe
|
||||
$pagewidget = null;
|
||||
if ('false' == $touser) {
|
||||
$pagewidget = $em->getRepository('CadolesPortalBundle:Pagewidget')->find($idwidget);
|
||||
$pagewidget = $em->getRepository('App\Entity\Pagewidget')->find($idwidget);
|
||||
if (!$pagewidget) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
}
|
||||
|
||||
// Vérifier que cet enregistrement est modifiable
|
||||
if ('user' == $access) {
|
||||
if ('all' == $access) {
|
||||
if ('user' == $usage) {
|
||||
$user = $pagewidget->getPage()->getUser();
|
||||
if ($user != $this->getUser()) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
} elseif ('group' == $usage) {
|
||||
$groupentity = $this->getDoctrine()->getRepository('CadolesCoreBundle:Group')->find($group);
|
||||
$usergroup = $this->getDoctrine()->getRepository('CadolesCoreBundle:UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $groupentity]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() < 50) {
|
||||
$canadd = false;
|
||||
foreach ($pagewidget->getPage()->getGroups() as $group) {
|
||||
$usergroup = $em->getRepository('App\Entity\UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $group]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() >= 50) {
|
||||
$canadd = true;
|
||||
}
|
||||
}
|
||||
if (!$canadd) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(BookmarkType::class, $data, ['mode' => 'submit']);
|
||||
|
@ -57,9 +60,6 @@ class BookmarkController extends AbstractController
|
|||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null, $form, $request, $data, 'submit');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
|
@ -73,83 +73,76 @@ class BookmarkController extends AbstractController
|
|||
|
||||
// Icon
|
||||
$idicon = $form->get('idicon')->getData();
|
||||
$icon = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findoneby(['id' => $idicon]);
|
||||
$icon = $em->getRepository('App\Entity\Icon')->findoneby(['id' => $idicon]);
|
||||
$data->setIcon($icon);
|
||||
|
||||
// Sauvegarde
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
if ($pagewidget) {
|
||||
foreach ($pagewidget->getPage()->getGroups() as $groupchat) {
|
||||
if ($groupchat->getFgcanshare()) {
|
||||
$message = "Création favoris<br><a href='".$data->getUrl()."' target='_blank'>".$data->getTitle().'</a>';
|
||||
$usergroup = $em->getRepository('CadolesCoreBundle:Usergroup')->findOneBy(['group' => $groupchat, 'user' => $this->getUser()]);
|
||||
if ($usergroup) {
|
||||
$key = $usergroup->getKeyvalue();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key, $this->getUser()->getId(), $groupchat->getId(), $message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$em->getManager()->persist($data);
|
||||
$em->getManager()->flush();
|
||||
|
||||
// Retour à la page
|
||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view', ['id' => $idpage, 'usage' => $usage, 'group' => $group]));
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage]));
|
||||
}
|
||||
|
||||
$icons = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findBy(['user' => null]);
|
||||
$icons = $em->getRepository('App\Entity\Icon')->findBy(['user' => null]);
|
||||
$iconsuser = null;
|
||||
if ('user' == $access) {
|
||||
$iconsuser = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findBy(['user' => $this->getUser()]);
|
||||
if ('all' == $access) {
|
||||
$iconsuser = $em->getRepository('App\Entity\Icon')->findBy(['user' => $this->getUser()]);
|
||||
}
|
||||
|
||||
return $this->render($this->labelentity.':edit.html.twig', [
|
||||
'useheader' => ('config' == $access),
|
||||
return $this->render($this->twig.'edit.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('config' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'entity' => $data,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'mode' => 'submit',
|
||||
'access' => $access,
|
||||
'idpage' => $idpage,
|
||||
'idwidget' => $idwidget,
|
||||
'touser' => $touser,
|
||||
'form' => $form->createView(),
|
||||
'usage' => $usage,
|
||||
'group' => $group,
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateAction(Request $request, $idpage, $id, $access = 'config')
|
||||
public function update($id, $access, $idpage, $idwidget, $touser, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$usage = $request->query->get('usage');
|
||||
$group = $request->query->get('group');
|
||||
|
||||
// Récupération de l'enregistrement courant
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $this->getData($id);
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
if (!$data) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// On s'assure que le widget existe
|
||||
$pagewidget = null;
|
||||
if ('false' == $touser) {
|
||||
$pagewidget = $em->getRepository('App\Entity\Pagewidget')->find($idwidget);
|
||||
if (!$pagewidget) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// Vérifier que cet enregistrement est modifiable
|
||||
$user = $data->getUser();
|
||||
if ($user) {
|
||||
if ('all' == $access) {
|
||||
if ('user' == $usage) {
|
||||
$user = $pagewidget->getPage()->getUser();
|
||||
if ($user != $this->getUser()) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
} elseif ('group' == $usage) {
|
||||
$canadd = false;
|
||||
foreach ($pagewidget->getPage()->getGroups() as $group) {
|
||||
$usergroup = $em->getRepository('App\Entity\UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $group]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() >= 50) {
|
||||
$canadd = true;
|
||||
}
|
||||
} elseif ('user' == $access) {
|
||||
if ('user' == $usage) {
|
||||
$user = $data->getPagewidget()->getPage()->getUser();
|
||||
if ($user != $this->getUser()) {
|
||||
}
|
||||
if (!$canadd) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
} else {
|
||||
$groupentity = $this->getDoctrine()->getRepository('CadolesCoreBundle:Group')->find($group);
|
||||
$usergroup = $this->getDoctrine()->getRepository('CadolesCoreBundle:UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $groupentity]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() < 50) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -163,103 +156,92 @@ class BookmarkController extends AbstractController
|
|||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm($id, $form, $request, $data, 'update');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
|
||||
// Icon
|
||||
$idicon = $form->get('idicon')->getData();
|
||||
$icon = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findoneby(['id' => $idicon]);
|
||||
$icon = $em->getRepository('App\Entity\Icon')->findoneby(['id' => $idicon]);
|
||||
$data->setIcon($icon);
|
||||
|
||||
// Sauvegarde
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
$pagewidget = $data->getPagewidget();
|
||||
if ($pagewidget) {
|
||||
foreach ($pagewidget->getPage()->getGroups() as $groupchat) {
|
||||
if ($groupchat->getFgcanshare()) {
|
||||
$message = "Modification favoris<br><a href='".$data->getUrl()."' target='_blank'>".$data->getTitle().'</a>';
|
||||
$usergroup = $em->getRepository('CadolesCoreBundle:Usergroup')->findOneBy(['group' => $groupchat, 'user' => $this->getUser()]);
|
||||
if ($usergroup) {
|
||||
$key = $usergroup->getKeyvalue();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key, $this->getUser()->getId(), $groupchat->getId(), $message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$em->getManager()->flush();
|
||||
|
||||
// Retour à la page
|
||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view', ['id' => $idpage, 'usage' => $usage, 'group' => $group]));
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage]));
|
||||
}
|
||||
|
||||
$icons = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findBy(['user' => null]);
|
||||
$icons = $em->getRepository('App\Entity\Icon')->findBy(['user' => null]);
|
||||
$iconsuser = null;
|
||||
if ('user' == $access) {
|
||||
$iconsuser = $this->getDoctrine()->getRepository('CadolesPortalBundle:Icon')->findBy(['user' => $this->getUser()]);
|
||||
if ('all' == $access) {
|
||||
$iconsuser = $em->getRepository('App\Entity\Icon')->findBy(['user' => $this->getUser()]);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->labelentity.':edit.html.twig', [
|
||||
'useheader' => ('config' == $access),
|
||||
return $this->render($this->twig.'edit.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('config' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'entity' => $data,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
'idpage' => $idpage,
|
||||
'idwidget' => $idwidget,
|
||||
'touser' => $touser,
|
||||
'form' => $form->createView(),
|
||||
'usage' => $usage,
|
||||
'group' => $group,
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteAction(Request $request, $idpage, $id, $access = 'config')
|
||||
public function delete($id, $access, $idpage, $idwidget, $touser, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$usage = $request->query->get('usage');
|
||||
$group = $request->query->get('group');
|
||||
|
||||
// Récupération de l'enregistrement courant
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $this->getData($id);
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
if (!$data) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// Vérifier que cet enregistrement est supprimable
|
||||
$user = $data->getUser();
|
||||
if ($user) {
|
||||
if ($user != $this->getUser()) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
// On s'assure que le widget existe
|
||||
$pagewidget = null;
|
||||
if ('false' == $touser) {
|
||||
$pagewidget = $em->getRepository('App\Entity\Pagewidget')->find($idwidget);
|
||||
if (!$pagewidget) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
} elseif ('user' == $access) {
|
||||
|
||||
// Vérifier que cet enregistrement est modifiable
|
||||
if ('all' == $access) {
|
||||
if ('user' == $usage) {
|
||||
$user = $data->getPagewidget()->getPage()->getUser();
|
||||
$user = $pagewidget->getPage()->getUser();
|
||||
if ($user != $this->getUser()) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
} else {
|
||||
$groupentity = $this->getDoctrine()->getRepository('CadolesCoreBundle:Group')->find($group);
|
||||
$usergroup = $this->getDoctrine()->getRepository('CadolesCoreBundle:UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $groupentity]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() < 50) {
|
||||
} elseif ('group' == $usage) {
|
||||
$canadd = false;
|
||||
foreach ($pagewidget->getPage()->getGroups() as $group) {
|
||||
$usergroup = $em->getRepository('App\Entity\UserGroup')->findoneby(['user' => $this->getUser(), 'group' => $group]);
|
||||
if (!$usergroup or $usergroup->getRolegroup() >= 50) {
|
||||
$canadd = true;
|
||||
}
|
||||
}
|
||||
if (!$canadd) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Supprimer la donnée
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
$em->getManager()->remove($data);
|
||||
$em->getManager()->flush();
|
||||
|
||||
// Retour à la page
|
||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view', ['id' => $idpage, 'usage' => $usage, 'group' => $group]));
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage]));
|
||||
}
|
||||
|
||||
public function heart(Request $request, ManagerRegistry $em): Response
|
||||
|
@ -295,47 +277,4 @@ class BookmarkController extends AbstractController
|
|||
|
||||
return new JsonResponse($output);
|
||||
}
|
||||
|
||||
protected function getDatas()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$datas = $em->getRepository($this->labelentity)->findAll();
|
||||
|
||||
return $datas;
|
||||
}
|
||||
|
||||
protected function getData($id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->getRepository($this->labelentity)->find($id);
|
||||
|
||||
if (!$data) {
|
||||
throw $this->createNotFoundException('Unable to find '.$this->labeldata);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function getErrorForm($id, $form, $request, $data, $mode)
|
||||
{
|
||||
if ($form->get('submit')->isClicked() && 'delete' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && 'submit' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($data);
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ use App\Form\GroupType as Form;
|
|||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
@ -237,10 +238,17 @@ class GroupController extends AbstractController
|
|||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur validation
|
||||
// Controle
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
if ($data->isIsworkgroup() && is_null($data->getPagetemplate())) {
|
||||
$form->addError(new FormError('Un groupe de travail doit avoir un modèle de page'));
|
||||
$request->getSession()->getFlashBag()->add('error', 'Un groupe de travail doit avoir un modèle de page');
|
||||
}
|
||||
}
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
// Les groupes opé ne sont pas ouvert
|
||||
if (!$data->isIsworkgroup()) {
|
||||
$data->setIsopen(false);
|
||||
|
@ -250,6 +258,9 @@ class GroupController extends AbstractController
|
|||
$em->getManager()->persist($data);
|
||||
$em->getManager()->flush();
|
||||
|
||||
// S'assurer que le groupe de travail a les elements portail associé
|
||||
$this->ctrlWorkgroup($em, $data, $access);
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
|
||||
}
|
||||
|
@ -288,6 +299,15 @@ class GroupController extends AbstractController
|
|||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Controle
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
if ($data->isIsworkgroup() && is_null($data->getPagetemplate())) {
|
||||
$form->addError(new FormError('Un groupe de travail doit avoir un modèle de page'));
|
||||
$request->getSession()->getFlashBag()->add('error', 'Un groupe de travail doit avoir un modèle de page');
|
||||
}
|
||||
}
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
|
@ -299,6 +319,9 @@ class GroupController extends AbstractController
|
|||
|
||||
$em->getManager()->flush();
|
||||
|
||||
// S'assurer que le groupe de travail a les elements portail associé
|
||||
$this->ctrlWorkgroup($em, $data, $access);
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
|
||||
}
|
||||
|
@ -342,6 +365,9 @@ class GroupController extends AbstractController
|
|||
|
||||
public function users($id, $access, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
$idpage = $request->query->get('idpage');
|
||||
$usage = $request->query->get('usage');
|
||||
|
||||
// Récupération de l'enregistrement courant
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
if (!$data) {
|
||||
|
@ -358,6 +384,8 @@ class GroupController extends AbstractController
|
|||
'usesidebar' => ('all' != $access),
|
||||
'access' => $access,
|
||||
$this->data => $data,
|
||||
'idpage' => $idpage,
|
||||
'usage' => $usage,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -953,4 +981,34 @@ class GroupController extends AbstractController
|
|||
|
||||
return $toreturn;
|
||||
}
|
||||
|
||||
protected function ctrlWorkgroup($em, $group, $access)
|
||||
{
|
||||
if ($group->isIsworkgroup()) {
|
||||
// On regarde s'il a au moins une page
|
||||
if ($group->getPages()->isEmpty()) {
|
||||
$page = $em->getRepository("App\Entity\Page")->clonePage(null, $group->getPagetemplate());
|
||||
$group->addPage($page);
|
||||
$page->setName($group->getLabel());
|
||||
if ('all' == $access) {
|
||||
$page->setUser($this->getUser());
|
||||
}
|
||||
|
||||
$em->getManager()->persist($page);
|
||||
$em->getManager()->persist($group);
|
||||
$em->getManager()->flush();
|
||||
}
|
||||
$pages = $group->getPages();
|
||||
if ($pages[0]->getName() != $group->getLabel()) {
|
||||
$pages[0]->setName($group->getLabel());
|
||||
$em->getManager()->persist($pages[0]);
|
||||
$em->getManager()->flush();
|
||||
}
|
||||
foreach ($pages as $page) {
|
||||
$page->setUser($group->getOwner());
|
||||
$em->getManager()->persist($page);
|
||||
$em->getManager()->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,17 +15,29 @@ class HomeController extends AbstractController
|
|||
return $this->redirectToRoute('app_login');
|
||||
}
|
||||
|
||||
$em->getRepository("App\Entity\Item")->getUserItems($this->getUser(), $bookmarks, $items, $itemscategorys);
|
||||
// Récupération de la page encours
|
||||
$id = $request->query->get('id');
|
||||
|
||||
return $this->render('Home/page.html.twig', [
|
||||
// Calcul des pages de l'utilisateur
|
||||
$em->getRepository("App\Entity\Page")->getPagesUser($this->getUser(), $id, $pagecurrent, $pagesportal, $pagesuser, $groups);
|
||||
dump($groups);
|
||||
|
||||
// si aucune page = page par défaut
|
||||
if ($pagecurrent) {
|
||||
return $this->render('Page/pages.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usemenu' => true,
|
||||
'usesidebar' => false,
|
||||
'maxsize' => 1000,
|
||||
'bookmarks' => $bookmarks,
|
||||
'items' => $items,
|
||||
'itemcategorys' => $itemscategorys,
|
||||
'entity' => $pagecurrent,
|
||||
'access' => 'all',
|
||||
'pagesportal' => $pagesportal,
|
||||
'pagesuser' => $pagesuser,
|
||||
'groups' => $groups,
|
||||
'canadd' => true,
|
||||
'widgetsuser' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('all'),
|
||||
'widgetsgroup' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('group'),
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$this->getUser()) {
|
||||
return $this->render('Home/home.html.twig', [
|
||||
|
@ -58,21 +70,19 @@ class HomeController extends AbstractController
|
|||
|
||||
public function homeuser($access): Response
|
||||
{
|
||||
return $this->render('Home/home.html.twig', [
|
||||
return $this->render('Page/default.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'maxsize' => 1000,
|
||||
]);
|
||||
}
|
||||
|
||||
public function homemaster($access): Response
|
||||
{
|
||||
return $this->render('Home/home.html.twig', [
|
||||
return $this->render('Page/default.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'maxsize' => 1000,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,27 +32,6 @@ class ItemController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function selectlist($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$output = [];
|
||||
$page_limit = $request->query->get('page_limit');
|
||||
$q = $request->query->get('q');
|
||||
|
||||
$qb = $em->getManager()->createQueryBuilder();
|
||||
$qb->select('table')->from($this->entity, 'table')
|
||||
->where('table.title LIKE :value')
|
||||
->setParameter('value', '%'.$q.'%')
|
||||
->orderBy('table.title');
|
||||
|
||||
$datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
|
||||
foreach ($datas as $data) {
|
||||
array_push($output, ['id' => $data->getId(), 'text' => $data->getLabel()]);
|
||||
}
|
||||
$ret_string['results'] = $output;
|
||||
|
||||
return new JsonResponse($ret_string);
|
||||
}
|
||||
|
||||
public function submit($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
// Initialisation de l'enregistrement
|
||||
|
|
|
@ -0,0 +1,548 @@
|
|||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Page;
|
||||
use App\Form\PageSubmitType;
|
||||
use App\Form\PageUpdateEditorType;
|
||||
use App\Form\PageUpdateToolType;
|
||||
use App\Form\PageUpdateURLType;
|
||||
use App\Form\PageUpdateWidgetType;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class PageController extends AbstractController
|
||||
{
|
||||
private $data = 'page';
|
||||
private $entity = "App\Entity\Page";
|
||||
private $twig = 'Page/';
|
||||
private $route = 'app_admin_page_usage';
|
||||
|
||||
public function list($access, $usage)
|
||||
{
|
||||
return $this->render($this->twig.'list.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'access' => $access,
|
||||
'usage' => $usage,
|
||||
'istemplate' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
public function tablelist($access, $usage, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$query = $request->query->all();
|
||||
$start = $query['start'];
|
||||
$length = $query['length'];
|
||||
$search = $query['search'];
|
||||
$draw = $query['draw'];
|
||||
$ordercolumn = $query['order'][0]['column'];
|
||||
$orderdir = $query['order'][0]['dir'];
|
||||
$alluser = $query['alluser'];
|
||||
|
||||
// On sauvegarde en session le flag alluser
|
||||
$request->getSession()->set('alluserpage', $alluser);
|
||||
|
||||
// Query de base
|
||||
$qbase = $em->getManager()->createQueryBuilder()->from($this->entity, 'table');
|
||||
$qsearch = $em->getManager()->createQueryBuilder()->from($this->entity, 'table');
|
||||
|
||||
if ('false' == $alluser) {
|
||||
$qbase->where('table.user is null');
|
||||
$qbase->andWhere('table.parentfor is null');
|
||||
$qsearch->where('table.user is null');
|
||||
$qsearch->andWhere('table.parentfor is null');
|
||||
} else {
|
||||
$qbase->from('App:User', 'user')
|
||||
->where('table.user=user');
|
||||
|
||||
$qsearch->from('App:User', 'user')
|
||||
->where('table.user=user');
|
||||
}
|
||||
|
||||
if ('false' == $alluser) {
|
||||
$qsearch->andwhere('table.id LIKE :value OR table.name LIKE :value');
|
||||
} else {
|
||||
$qsearch->andWhere('table.id LIKE :value OR table.name LIKE :value OR user.username LIKE :value');
|
||||
}
|
||||
|
||||
$qsearch->setParameter('value', '%'.$search['value'].'%');
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
$total = $qbase->select('COUNT(table)')->getQuery()->getSingleScalarResult();
|
||||
|
||||
// Nombre d'enregistrement filtré
|
||||
if ('' == $search['value']) {
|
||||
$totalf = $total;
|
||||
} else {
|
||||
$totalf = $qsearch->select('COUNT(table)')->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
|
||||
// Parcours des Enregistrement
|
||||
if ('' == $search['value']) {
|
||||
$qb = $qbase->select('table');
|
||||
} else {
|
||||
$qb = $qsearch->select('table');
|
||||
}
|
||||
|
||||
// Order
|
||||
if ($ordercolumn) {
|
||||
switch ($ordercolumn) {
|
||||
case 1:
|
||||
$qb->orderBy('table.roworder', $orderdir);
|
||||
break;
|
||||
case 2:
|
||||
$qb->orderBy('table.name', $orderdir);
|
||||
break;
|
||||
case 4:
|
||||
if ('true' == $alluser) {
|
||||
$qb->orderBy('user.username', $orderdir);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Execution de la requete d'affichage
|
||||
$datas = $qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
|
||||
|
||||
// Construction du tableau de retour
|
||||
$output = [
|
||||
'draw' => $draw,
|
||||
'recordsFiltered' => $totalf,
|
||||
'recordsTotal' => $total,
|
||||
'data' => [],
|
||||
];
|
||||
foreach ($datas as $data) {
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
$route = str_replace('_usage', '_'.$usage, $route);
|
||||
|
||||
$action = '';
|
||||
// $action.="<a href='".$this->generateUrl($route.'_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-fw'></i></a>";
|
||||
$action .= "<a href='".$this->generateUrl($route.'_update', ['id' => $data->getId()])."'><i class='fa fa-cog fa-fw fa-2x'></i></a>";
|
||||
$action .= "<a href='".$this->generateUrl($route.'_view', ['id' => $data->getId()])."'><i class='fa fa-eye fa-fw fa-2x'></i></a>";
|
||||
$action .= "<a href='".$this->generateUrl($route.'_delete', ['id' => $data->getId()])."' data-method='delete'><i class='fa fa-trash fa-fw fa-2x'></i></a>";
|
||||
|
||||
$user = '';
|
||||
if ($data->getUser()) {
|
||||
$user .= "<img src='".$this->generateUrl('app_minio_image', ['file' => 'avatar/'.$data->getUser()->getAvatar()])."' class='avatar' style='margin:0px 5px 0px 0px;display:inline-block;'>";
|
||||
$user .= $data->getUser()->getUsername();
|
||||
}
|
||||
|
||||
$icon = '';
|
||||
if ($data->getFonticon()) {
|
||||
$icon .= "<i class='".$data->getFonticon()." fa-fw'></i> ";
|
||||
}
|
||||
|
||||
array_push($output['data'], [
|
||||
$action,
|
||||
$data->getRoworder(),
|
||||
$icon.$data->getName(),
|
||||
$data->getPagecategory()->getName(),
|
||||
$user,
|
||||
]);
|
||||
}
|
||||
|
||||
// Retour
|
||||
return new Response(json_encode($output), 200);
|
||||
}
|
||||
|
||||
private function entityForm(Page $entity, $access, $em)
|
||||
{
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
|
||||
if ($em->getManager()->contains($entity)) {
|
||||
// Type Tools
|
||||
if ($entity->getPagecategory()->getId() < 0) {
|
||||
return $this->createForm(PageUpdateToolType::class, $entity, [
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type URL
|
||||
if (1 == $entity->getPagecategory()->getId()) {
|
||||
return $this->createForm(PageUpdateURLType::class, $entity, [
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type Widget
|
||||
elseif (2 == $entity->getPagecategory()->getId()) {
|
||||
return $this->createForm(PageUpdateWidgetType::class, $entity, [
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type Editeur
|
||||
elseif (3 == $entity->getPagecategory()->getId()) {
|
||||
return $this->createForm(PageUpdateEditorType::class, $entity, [
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
return $this->createForm(PageSubmitType::class, $entity, [
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
'user' => $this->getUser(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function submit($access, $usage, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$entity = new Page();
|
||||
$entity->setMaxwidth(0);
|
||||
$entity->setRoworder(0);
|
||||
|
||||
$form = $this->entityForm($entity, $access, $em);
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Une page d'usage groupe doit avoir au moins un group de selectionné
|
||||
$datausage = $form->get('usage')->getData();
|
||||
if ('group' == $datausage && $entity->getGroups()->isEmpty()) {
|
||||
$form->addError(new FormError('Vous devez selectionner au minimum un groupe'));
|
||||
}
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
if ('all' == $access) {
|
||||
$entity->setUser($this->getUser());
|
||||
}
|
||||
|
||||
// Si template on duplique le template
|
||||
if ($entity->getPage()) {
|
||||
$page = $em->getRepository("App\Entity\Page")->clonePage($this->getUser(), $entity->getPage());
|
||||
$page->setName($entity->getName());
|
||||
$page->setRoworder($entity->getRoworder());
|
||||
$page->setMaxwidth($entity->getMaxwidth());
|
||||
foreach ($entity->getGroups() as $group) {
|
||||
$page->addGroup($group);
|
||||
}
|
||||
$em->getManager()->persist($page);
|
||||
$em->getManager()->flush();
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
$route = str_replace('_usage', '_'.$usage, $route);
|
||||
|
||||
return $this->redirect($this->generateUrl($route.'_update', ['id' => $page->getId()]));
|
||||
} else {
|
||||
$em->getManager()->persist($entity);
|
||||
$em->getManager()->flush();
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
$route = str_replace('_usage', '_'.$usage, $route);
|
||||
|
||||
return $this->redirect($this->generateUrl($route.'_update', ['id' => $entity->getId()]));
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render($this->twig.'submit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'maxwidth' => ('user' == $access),
|
||||
$this->data => $entity,
|
||||
'mode' => 'submit',
|
||||
'usage' => $usage,
|
||||
'access' => $access,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function update($id, $access, $usage, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$entity = $em->getRepository($this->entity)->find($id);
|
||||
|
||||
if (!$entity) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// On s'assure que l'utilisateur à la permission de modifier
|
||||
if ('all' == $access) {
|
||||
$em->getRepository($this->entity)->getPermission($this->getUser(), $entity, $cansee, $canupdate, $canadd);
|
||||
if (!$canupdate) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->entityForm($entity, $access, $em);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$em->getManager()->flush();
|
||||
|
||||
if ('admin' == $access) {
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
$route = str_replace('_usage', '_'.$usage, $route);
|
||||
|
||||
return $this->redirect($this->generateUrl($route.'_view', ['id' => $id]));
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl('app_home', ['id' => $id]));
|
||||
}
|
||||
}
|
||||
|
||||
// Type URL
|
||||
if (1 == $entity->getPagecategory()->getId()) {
|
||||
return $this->render($this->twig.'updateurl.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'maxwidth' => ('all' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'usage' => $usage,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
// Type Widget
|
||||
elseif (2 == $entity->getPagecategory()->getId()) {
|
||||
return $this->render($this->twig.'updatewidget.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'maxwidth' => ('all' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'mode' => 'update',
|
||||
'usage' => $usage,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
// Type Editeur
|
||||
elseif (3 == $entity->getPagecategory()->getId()) {
|
||||
return $this->render($this->twig.'updateeditor.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'maxwidth' => ('all' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'usage' => $usage,
|
||||
'mode' => 'update',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($id, $access, $usage, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$data = $em->getRepository($this->entity)->find($id);
|
||||
if (!$data) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// On s'assure que l'utilisateur à la permission de supprimer
|
||||
if ('all' == $access) {
|
||||
$em->getRepository($this->entity)->getPermission($this->getUser(), $data, $cansee, $canupdate, $canadd);
|
||||
if (!$canupdate) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
|
||||
// Tentative de suppression
|
||||
try {
|
||||
$em->getManager()->remove($data);
|
||||
$em->getManager()->flush();
|
||||
} catch (\Exception $e) {
|
||||
$request->getSession()->getFlashBag()->add('error', $e->getMessage());
|
||||
|
||||
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route).'_update', ['id' => $id]);
|
||||
}
|
||||
|
||||
// Retour
|
||||
if ('admin' == $access) {
|
||||
$route = str_replace('_admin_', '_'.$access.'_', $this->route);
|
||||
$route = str_replace('_usage', '_'.$usage, $route);
|
||||
|
||||
return $this->redirect($this->generateUrl($route));
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl('app_home'));
|
||||
}
|
||||
}
|
||||
|
||||
public function order($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$output = [];
|
||||
$id = $request->request->get('id');
|
||||
$order = $request->request->get('order');
|
||||
|
||||
$entity = $em->getRepository($this->entity)->find($id);
|
||||
if (!$entity) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
}
|
||||
|
||||
// On s'assure que l'utilisateur à la permission
|
||||
if ('all' == $access) {
|
||||
$em->getRepository($this->entity)->getPermission($this->getUser(), $entity, $cansee, $canupdate, $canadd);
|
||||
if (!$canupdate) {
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
}
|
||||
|
||||
$entity->setRoworder($order);
|
||||
$em->getManager()->flush();
|
||||
|
||||
return new JsonResponse($output);
|
||||
}
|
||||
|
||||
public function view($id, $access, $usage, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$entity = $em->getRepository($this->entity)->find($id);
|
||||
if (!$entity) {
|
||||
return $this->redirect($this->generateUrl('app_home'));
|
||||
}
|
||||
|
||||
// Permissions
|
||||
if ('admin' == $access) {
|
||||
$canupdate = true;
|
||||
} else {
|
||||
// On s'assure que l'utilisateur à la permission de voir
|
||||
$em->getRepository($this->entity)->getPermission($this->getUser(), $entity, $cansee, $canupdate, $canadd);
|
||||
if (!$cansee) {
|
||||
return $this->redirect($this->generateUrl('app_home'));
|
||||
}
|
||||
}
|
||||
|
||||
// Type Calendrier
|
||||
if (-100 == $entity->getPageCategory()->getId()) {
|
||||
$entity->setUrl($this->generateUrl('app_user_calendar_view'));
|
||||
|
||||
return $this->render($this->twig.'viewurl.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => ('admin' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'usage' => $usage,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type Blob
|
||||
if (-90 == $entity->getPageCategory()->getId()) {
|
||||
$entity->setUrl($this->generateUrl('app_user_blog_view'));
|
||||
|
||||
return $this->render($this->twig.'viewurl.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => ('admin' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'usage' => $usage,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type URL
|
||||
if (1 == $entity->getPageCategory()->getId()) {
|
||||
return $this->render($this->twig.'viewurl.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => ('admin' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'usage' => $usage,
|
||||
]);
|
||||
}
|
||||
|
||||
// Type Widgets
|
||||
if (2 == $entity->getPageCategory()->getId()) {
|
||||
return $this->render($this->twig.'viewwidget.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => ('admin' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'widgets' => $em->getRepository("App\Entity\Widget")->getWidgetAccess($access, 'config'),
|
||||
'usage' => "$usage",
|
||||
]);
|
||||
}
|
||||
// Type Editeur
|
||||
if (3 == $entity->getPageCategory()->getId()) {
|
||||
return $this->render($this->twig.'vieweditor.html.twig', [
|
||||
'useheader' => ('config' == $access),
|
||||
'usemenu' => ('admin' == $access),
|
||||
'usesidebar' => ('config' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'usage' => $usage,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function application($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$entity = $em->getRepository($this->entity)->findOneBy(['parentfor' => 'app']);
|
||||
if (!$entity) {
|
||||
return $this->redirect($this->generateUrl('app_home'));
|
||||
}
|
||||
|
||||
$canupdate = false;
|
||||
|
||||
return $this->render($this->twig.'viewwidget.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
$this->data => $entity,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'mode' => 'view',
|
||||
'widgets' => $em->getRepository('App\Entity\Widget')->getWidgetAccess($access, 'config'),
|
||||
'usage' => 'portal',
|
||||
'selwidget' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
protected function getPreference($user, $key, $id, $default)
|
||||
{
|
||||
$preference = $user->getPreference();
|
||||
$return = $default;
|
||||
|
||||
if (is_array($preference)) {
|
||||
if (array_key_exists($key, $preference)) {
|
||||
if (array_key_exists($id, $preference[$key])) {
|
||||
$return = $preference[$key][$id];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
protected function setPreference($user, $key, $id, $value)
|
||||
{
|
||||
$preference = $user->getPreference();
|
||||
$toupdate = false;
|
||||
if (!array_key_exists($key, $preference)) {
|
||||
$toupdate = true;
|
||||
$preference[$key] = [];
|
||||
}
|
||||
if (!array_key_exists($id, $preference[$key])) {
|
||||
$toupdate = true;
|
||||
$preference[$key][$id] = $value;
|
||||
}
|
||||
if ($value && $preference[$key][$id] != $value) {
|
||||
$toupdate = true;
|
||||
$preference[$key][$id] = $value;
|
||||
}
|
||||
|
||||
// Mise à jour des préferences
|
||||
if ($toupdate) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user->setPreference($preference);
|
||||
$em->persist($this->getUser());
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ use App\Form\PageUpdateWidgetType;
|
|||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
|
@ -16,7 +17,7 @@ class PagetemplateController extends AbstractController
|
|||
private $data = 'page';
|
||||
private $entity = "App\Entity\Page";
|
||||
private $twig = 'Pagetemplate/';
|
||||
private $route = 'app_admin_pagetemplate';
|
||||
private $route = 'app_admin_page_template';
|
||||
|
||||
public function list($access): Response
|
||||
{
|
||||
|
@ -166,6 +167,7 @@ class PagetemplateController extends AbstractController
|
|||
$this->data => $data,
|
||||
'mode' => 'submit',
|
||||
'access' => $access,
|
||||
'usage' => 'template',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
@ -194,7 +196,8 @@ class PagetemplateController extends AbstractController
|
|||
'usesidebar' => true,
|
||||
$this->data => $data,
|
||||
'access' => $access,
|
||||
'mode' => 'updatetemplate',
|
||||
'mode' => 'update',
|
||||
'usage' => 'template',
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
@ -220,7 +223,6 @@ class PagetemplateController extends AbstractController
|
|||
if ($group) {
|
||||
throw new \Exception('Impossible de supprimer ce modèle, il est utilisé par au moins un groupe');
|
||||
}
|
||||
|
||||
if ('app' == $data->getParentfor()) {
|
||||
throw new \Exception('Vous ne pouvez pas supprimer un template de type Application');
|
||||
}
|
||||
|
@ -237,36 +239,26 @@ class PagetemplateController extends AbstractController
|
|||
return $this->redirect($this->generateUrl($this->route));
|
||||
}
|
||||
|
||||
public function seleclist(Request $request)
|
||||
public function selectlist($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(['message' => 'Interdit'], 400);
|
||||
}
|
||||
|
||||
$output = [];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$page_limit = $request->query->get('page_limit');
|
||||
$q = $request->query->get('q');
|
||||
$usage = $request->query->get('usage');
|
||||
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('table')->from('App:Page', 'table')
|
||||
$qb = $em->getManager()->createQueryBuilder();
|
||||
$qb->select('table')->from($this->entity, 'table')
|
||||
->where('table.name LIKE :value')
|
||||
->andWhere('table.parentfor=:usage')
|
||||
->andWhere('table.parentfor is not null')
|
||||
->setParameter('value', '%'.$q.'%')
|
||||
->setParameter('usage', $usage)
|
||||
->orderBy('table.name');
|
||||
|
||||
$datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
|
||||
foreach ($datas as $data) {
|
||||
array_push($output, ['id' => $data->getId(), 'text' => $data->getName()]);
|
||||
}
|
||||
$ret_string['results'] = $output;
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
|
||||
return $response;
|
||||
return new JsonResponse($ret_string);
|
||||
}
|
||||
|
||||
public function view($id, $access, Request $request, ManagerRegistry $em): Response
|
||||
|
@ -279,8 +271,6 @@ class PagetemplateController extends AbstractController
|
|||
// Permissions
|
||||
$canupdate = true;
|
||||
|
||||
dump($em->getRepository("App\Entity\Widget")->getWidgetAccess($access));
|
||||
|
||||
return $this->render('Page\viewwidget.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => true,
|
||||
|
@ -288,35 +278,9 @@ class PagetemplateController extends AbstractController
|
|||
$this->data => $data,
|
||||
'access' => $access,
|
||||
'canupdate' => $canupdate,
|
||||
'mode' => 'viewtemplate',
|
||||
'usage' => 'template',
|
||||
'widgets' => $em->getRepository("App\Entity\Widget")->getWidgetAccess($access),
|
||||
'usage' => 'config',
|
||||
'group' => '',
|
||||
'look' => 'view',
|
||||
'selwidget' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
protected function getErrorForm($id, $form, $request, $data, $mode)
|
||||
{
|
||||
if ($form->get('submit')->isClicked() && 'delete' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && ('submit' == $mode)) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($data);
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ use GuzzleHttp\Exception\RequestException;
|
|||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\File\File;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -28,9 +27,6 @@ class PagewidgetController extends AbstractController
|
|||
private $page;
|
||||
private $id;
|
||||
private $access;
|
||||
private $look;
|
||||
private $mini;
|
||||
private $selwidget;
|
||||
private $usage;
|
||||
private $group;
|
||||
|
||||
|
@ -55,7 +51,7 @@ class PagewidgetController extends AbstractController
|
|||
return $results;
|
||||
}
|
||||
|
||||
private function entityForm(ManagerRegistry $em, Pagewidget $entity, $idpage, $id, $access = 'config', $by = 'view')
|
||||
private function entityForm(ManagerRegistry $em, Pagewidget $entity, $idpage, $id, $access)
|
||||
{
|
||||
if ($em->getManager()->contains($entity)) {
|
||||
$widgettype = $em->getRepository('App\Entity\Pagewidget')->find($id)->getWidget();
|
||||
|
@ -90,12 +86,13 @@ class PagewidgetController extends AbstractController
|
|||
$entity->setColorbodyback($widgettype->getColorbodyback());
|
||||
$entity->setColorbodyfont($widgettype->getColorbodyfont());
|
||||
$entity->setIcon($widgettype->getIcon());
|
||||
$entity->setWidget($widgettype);
|
||||
|
||||
$param = $widgettype->getParameter();
|
||||
|
||||
return $this->createForm(PagewidgetType::class, $entity, [
|
||||
'param' => $param,
|
||||
'mode' => ('view' == $by ? 'submit' : 'submittemplate'),
|
||||
'mode' => 'submit',
|
||||
'access' => $access,
|
||||
'idicon' => $widgettype->getIcon()->getId(),
|
||||
'method' => 'POST',
|
||||
|
@ -105,9 +102,10 @@ class PagewidgetController extends AbstractController
|
|||
|
||||
public function submit($access, $idpage, $idwidgettype, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$by = $request->query->get('by');
|
||||
$usage = $request->query->get('usage');
|
||||
|
||||
$entity = new Pagewidget();
|
||||
$form = $this->entityForm($em, $entity, $idpage, $idwidgettype, $access, $by);
|
||||
$form = $this->entityForm($em, $entity, $idpage, $idwidgettype, $access, $usage);
|
||||
$form->handleRequest($request);
|
||||
|
||||
// On s'assure que la page où l'on souhaite insérer un widget est bien du bon type
|
||||
|
@ -119,9 +117,6 @@ class PagewidgetController extends AbstractController
|
|||
throw $this->createNotFoundException('Permission denied');
|
||||
}
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm(null, $form, $request, $idwidgettype, $page, $entity, 'submit');
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$idicon = $form->get('idicon')->getData();
|
||||
|
@ -154,24 +149,7 @@ class PagewidgetController extends AbstractController
|
|||
$em->persist($entity);
|
||||
$em->flush();
|
||||
|
||||
// Notification création widget
|
||||
$groups = $page->getGroups();
|
||||
if ($groups[0]) {
|
||||
if ($groups[0]->getFgcanshare()) {
|
||||
$message = 'Création Widget '.$entity->getName();
|
||||
$this->wss->addMessage($this->getuser()->getApikey(), $groups[0]->getId(), $message);
|
||||
}
|
||||
}
|
||||
|
||||
if ('admin' == $access) {
|
||||
if ('view' == $by) {
|
||||
return $this->redirect($this->generateUrl('app_admin_page_view', ['id' => $idpage]));
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl('app_admin_pagetemplate_view', ['id' => $idpage]));
|
||||
}
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl('app_home', ['id' => $idpage]));
|
||||
}
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage]));
|
||||
}
|
||||
|
||||
$icons = $em->getRepository('App\Entity\Icon')->findBy(['user' => null]);
|
||||
|
@ -181,14 +159,14 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
|
||||
return $this->render($this->twig.'edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('config' == $access),
|
||||
'maxwidth' => ('user' == $access),
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'entity' => $entity,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'mode' => ('view' == $by ? 'submit' : 'submittemplate'),
|
||||
'mode' => 'submit',
|
||||
'usage' => $usage,
|
||||
'access' => $access,
|
||||
'idpage' => $idpage,
|
||||
'form' => $form->createView(),
|
||||
|
@ -197,7 +175,6 @@ class PagewidgetController extends AbstractController
|
|||
|
||||
public function update($access, $idpage, $idwidget, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
$by = $request->query->get('by');
|
||||
$usage = $request->query->get('usage');
|
||||
$group = $request->query->get('group');
|
||||
|
||||
|
@ -216,7 +193,7 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->entityForm($em, $entity, $idpage, $idwidget, $access, $by);
|
||||
$form = $this->entityForm($em, $entity, $idpage, $idwidget, $access);
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Validation
|
||||
|
@ -250,28 +227,27 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
|
||||
// Retour
|
||||
if ('view' == $by) {
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_view', ['id' => $idpage, 'usage' => $usage, 'group' => $group]));
|
||||
if ($group) {
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage, 'group' => $group]));
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_pagetemplate_view', ['id' => $idpage]));
|
||||
return $this->redirect($this->generateUrl('app_'.$access.'_page_'.$usage.'_view', ['id' => $idpage]));
|
||||
}
|
||||
}
|
||||
|
||||
$icons = $em->getRepository('App\Entity\Icon')->findBy(['user' => null]);
|
||||
$iconsuser = null;
|
||||
if ('all' == $access) {
|
||||
$iconsuser = $this->getDoctrine()->getRepository('App:Icon')->findBy(['user' => $this->getUser()]);
|
||||
$iconsuser = $em->getRepository('App\Entity\Icon')->findBy(['user' => $this->getUser()]);
|
||||
}
|
||||
|
||||
return $this->render($this->twig.'edit.html.twig', [
|
||||
'useheader' => ('admin' == $access),
|
||||
'usemenu' => false,
|
||||
'usesidebar' => ('admin' == $access),
|
||||
'maxwidth' => ('all' == $access),
|
||||
'entity' => $entity,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'mode' => ('view' == $by ? 'update' : 'updatetemplate'),
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
'idpage' => $idpage,
|
||||
'form' => $form->createView(),
|
||||
|
@ -311,19 +287,12 @@ class PagewidgetController extends AbstractController
|
|||
return new JsonResponse($output);
|
||||
}
|
||||
|
||||
public function order(Request $request)
|
||||
public function order($access, Request $request, ManagerRegistry $em): Response
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(['message' => 'Interdit'], 400);
|
||||
}
|
||||
|
||||
$output = [];
|
||||
$idwidget = $request->request->get('idwidget');
|
||||
$order = $request->request->get('order');
|
||||
$idloc = $request->request->get('idloc');
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$entity = $em->getRepository($this->labelentity)->find($idwidget);
|
||||
if (!$entity) {
|
||||
throw $this->createNotFoundException('Unable to find entity.');
|
||||
|
@ -331,69 +300,9 @@ class PagewidgetController extends AbstractController
|
|||
|
||||
$entity->setRoworder($order);
|
||||
$entity->setLoc($idloc);
|
||||
$em->persist($entity);
|
||||
$em->flush();
|
||||
$em->getManager()->flush();
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function upload(Request $request, $access = null)
|
||||
{
|
||||
// Fichier temporaire uploadé
|
||||
$tmpfile = $request->files->get('upload');
|
||||
$extention = $tmpfile->getClientOriginalExtension();
|
||||
|
||||
// Répertoire de Destination
|
||||
$fs = new Filesystem();
|
||||
$rootdir = $this->get('kernel')->getRootDir().'/../web';
|
||||
$fs->mkdir($rootdir.'/uploads/ckeditor');
|
||||
|
||||
// Fichier cible
|
||||
$targetName = uniqid().'.'.$extention;
|
||||
$targetFile = $rootdir.'/uploads/ckeditor/'.$targetName;
|
||||
$targetUrl = '/'.$this->getParameter('alias').'/uploads/ckeditor/'.$targetName;
|
||||
$message = '';
|
||||
|
||||
move_uploaded_file($tmpfile, $targetFile);
|
||||
|
||||
$output['uploaded'] = 1;
|
||||
$output['fileName'] = $targetName;
|
||||
$output['url'] = $targetUrl;
|
||||
|
||||
return new Response(json_encode($output));
|
||||
}
|
||||
|
||||
protected function getErrorForm($id, $form, $request, $idwidgettype, $page, $data, $mode)
|
||||
{
|
||||
if ($form->get('submit')->isClicked() && 'delete' == $mode) {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && ('submit' == $mode || 'update' == $mode)) {
|
||||
// Interdire l'insertion de 2 chat dans la meme page
|
||||
if (-1840 == $idwidgettype) {
|
||||
$pagewidget = $this->getDoctrine()->getRepository('App\Entity\Pagewidget')->findoneby(['page' => $page, 'widget' => -1840]);
|
||||
if ($pagewidget) {
|
||||
$form->addError(new FormError('Vous ne pouvez pas insérer deux widgets de type Chat dans la même page'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($data);
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach ($errors as $error) {
|
||||
$request->getSession()->getFlashBag()->add('error', $error->getMessage());
|
||||
}
|
||||
}
|
||||
return new JsonResponse([]);
|
||||
}
|
||||
|
||||
protected function setRequest($em, $request, $id, $access)
|
||||
|
@ -402,8 +311,6 @@ class PagewidgetController extends AbstractController
|
|||
$this->user = $this->getUser();
|
||||
$this->id = $id;
|
||||
$this->access = $access;
|
||||
$this->look = $request->query->get('look');
|
||||
$this->selwidget = $request->query->get('selwidget');
|
||||
$this->usage = $request->query->get('usage');
|
||||
$this->group = $request->query->get('group');
|
||||
|
||||
|
@ -416,6 +323,7 @@ class PagewidgetController extends AbstractController
|
|||
// Permissions
|
||||
if ('admin' == $this->access) {
|
||||
$this->canupdate = true;
|
||||
$this->canadd = true;
|
||||
} else {
|
||||
// On s'assure que l'utilisateur à la permission de voir
|
||||
$this->page = $this->entity->getPage();
|
||||
|
@ -425,27 +333,18 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
}
|
||||
|
||||
// Affichage miniature ?
|
||||
$this->mini = ('list' == $this->look && $this->entity->getId() != $this->selwidget);
|
||||
|
||||
// Préference utilisateur
|
||||
if (!$this->mini) {
|
||||
$this->getPreference($this->entity);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getPreference(&$entity)
|
||||
{
|
||||
$user = $this->getUser();
|
||||
if ($user) {
|
||||
if ($entity->isViewheader()) {
|
||||
$preference = $user->getPreference();
|
||||
$id = $entity->getId();
|
||||
|
||||
// Preference widgetshowhide
|
||||
if ('list' == $this->look) {
|
||||
$entity->setOpened(true);
|
||||
$entity->setBorder(false);
|
||||
} else {
|
||||
if (is_array($preference)) {
|
||||
if (array_key_exists('widgetshowhide', $preference)) {
|
||||
if (array_key_exists($id, $preference['widgetshowhide'])) {
|
||||
|
@ -489,8 +388,6 @@ class PagewidgetController extends AbstractController
|
|||
'entity' => $this->entity,
|
||||
'canupdate' => $this->canupdate,
|
||||
'access' => $this->access,
|
||||
'look' => $this->look,
|
||||
'mini' => $this->mini,
|
||||
];
|
||||
|
||||
// Parametres spéficiques
|
||||
|
@ -500,17 +397,15 @@ class PagewidgetController extends AbstractController
|
|||
return $this->render($this->twig.'\\'.$view, $params);
|
||||
}
|
||||
|
||||
public function viewurl($id, $access, Request $request)
|
||||
public function viewurl($access, $id, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$url = '';
|
||||
$imagemedia = false;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
if ('url' == $parameter['id']) {
|
||||
|
@ -544,7 +439,6 @@ class PagewidgetController extends AbstractController
|
|||
if (false !== strpos($url, 'images-wixmp')) {
|
||||
$imagemedia = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->getRender('viewurl.html.twig', [
|
||||
'url' => $url,
|
||||
|
@ -552,17 +446,15 @@ class PagewidgetController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function viewurlfixe(Request $request, $id, $access = 'config')
|
||||
public function viewurlfixe($access, $id, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$url = '';
|
||||
$imagemedia = false;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
$widgettype = $this->entity->getWidget();
|
||||
$jsons = $widgettype->getParameter();
|
||||
|
@ -592,7 +484,6 @@ class PagewidgetController extends AbstractController
|
|||
if (false !== strpos($url, 'images-wixmp')) {
|
||||
$imagemedia = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->getRender('viewurl.html.twig', [
|
||||
'url' => $url,
|
||||
|
@ -615,8 +506,6 @@ class PagewidgetController extends AbstractController
|
|||
$itemsordered = null;
|
||||
$itemcategorys = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
$iditemcategory = null;
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
|
@ -652,7 +541,6 @@ class PagewidgetController extends AbstractController
|
|||
|
||||
// Profilage
|
||||
$this->em->getRepository('App\Entity\Item')->getUserItems($this->user, $bookmarks, $items, $itemcategorys, $iditemcategory, $withbookmark, false);
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewitem.html.twig', [
|
||||
|
@ -668,18 +556,16 @@ class PagewidgetController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function viewitemessential(Request $request, $id, $access = 'config')
|
||||
public function viewitemessential($access, $id, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$modedesktop = 0;
|
||||
$itemsordered = null;
|
||||
$bookmarks = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
|
@ -693,28 +579,25 @@ class PagewidgetController extends AbstractController
|
|||
$modedesktop = $this->getKeyPreference($this->entity, 'modedesktop', $modedesktop);
|
||||
|
||||
// Profilage
|
||||
$itemsordered = $this->em->getRepository('App:Item')->getUserItems($this->user, $bookmarks, $items, $itemcategorys, null, $this->get('session')->get('ssoitems'), 0, true);
|
||||
}
|
||||
$em->getRepository('App\Entity\Item')->getUserItems($this->user, $bookmarks, $items, $itemcategorys, null, 0, true);
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewitemessential.html.twig', [
|
||||
'canadd' => $this->user,
|
||||
'modedesktop' => $modedesktop,
|
||||
'items' => $itemsordered,
|
||||
'items' => $items,
|
||||
'bookmarks' => $bookmarks,
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewalert(Request $request, $id, $access = 'config')
|
||||
public function viewalert($id, $access, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$alertsordered = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
$idalertcategory = null;
|
||||
$alertcategoryfilter = null;
|
||||
|
@ -730,8 +613,7 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
|
||||
// Profilage
|
||||
$alertsordered = $this->em->getRepository('App:Alert')->getUserAlerts($this->user, $idalertcategory, $alertcategoryfilter, $this->get('session')->get('ssoitems'));
|
||||
}
|
||||
$alertsordered = $this->em->getRepository('App\Entity\Alert')->getUserAlerts($this->user, $idalertcategory, $alertcategoryfilter);
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewalert.html.twig', [
|
||||
|
@ -742,15 +624,13 @@ class PagewidgetController extends AbstractController
|
|||
public function viewflux(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$modelist = 0;
|
||||
$fluxsordered = null;
|
||||
$feeds = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
|
@ -945,7 +825,6 @@ class PagewidgetController extends AbstractController
|
|||
$libelle[$key] = $valeur['date'];
|
||||
}
|
||||
array_multisort($libelle, SORT_DESC, $feeds);
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewflux.html.twig', [
|
||||
|
@ -958,15 +837,13 @@ class PagewidgetController extends AbstractController
|
|||
public function viewrss(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$modelist = 0;
|
||||
$fluxs = ['id' => 0];
|
||||
$feeds = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
$url = '';
|
||||
$nbarticle = '_blank';
|
||||
|
@ -1148,7 +1025,6 @@ class PagewidgetController extends AbstractController
|
|||
$filesystem->dumpFile($filecache, serialize($feeds));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewflux.html.twig', [
|
||||
|
@ -1158,17 +1034,15 @@ class PagewidgetController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function viewbookmark(Request $request, $id, $access = 'config')
|
||||
public function viewbookmark($id, $access, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Valeur par défaut
|
||||
$modedesktop = 0;
|
||||
$bookmarks = null;
|
||||
|
||||
// Datas associées au widget
|
||||
if (!$this->mini) {
|
||||
// Récupération des paramétres du widget
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
|
@ -1179,8 +1053,10 @@ class PagewidgetController extends AbstractController
|
|||
}
|
||||
|
||||
// Bookmark du widget
|
||||
$bookmarks = $this->em->getRepository('App:Bookmark')->findBy(['pagewidget' => $this->entity]);
|
||||
}
|
||||
$bookmarks = $em->getRepository('App\Entity\Bookmark')->findBy(['pagewidget' => $this->entity]);
|
||||
|
||||
// Préference utilisateur
|
||||
$modedesktop = $this->getKeyPreference($this->entity, 'modedesktop', $modedesktop);
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewbookmark.html.twig', [
|
||||
|
@ -1190,10 +1066,10 @@ class PagewidgetController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function viewlink(Request $request, $id, $access = 'config')
|
||||
public function viewlink($id, $access, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$url = '';
|
||||
|
@ -1211,16 +1087,36 @@ class PagewidgetController extends AbstractController
|
|||
|
||||
// Render
|
||||
return $this->getRender('viewlink.html.twig', [
|
||||
'canadd' => false,
|
||||
'canadd' => $this->canadd,
|
||||
'url' => $url,
|
||||
'target' => $target,
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewinfo($id, $access, Request $request, ManagerRegistry $em)
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
if (1 == $this->entity->getPage()->getGroups()->count()) {
|
||||
$this->entity->setName($this->entity->getPage()->getGroups()[0]->getLabel());
|
||||
} elseif (0 == $this->entity->getPage()->getGroups()->count() && $this->entity->getPage()->getUser()) {
|
||||
$this->entity->setName($this->entity->getPage()->getName());
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewinfo.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'usage' => $this->usage,
|
||||
'id' => $id,
|
||||
'idpage' => $this->entity->getPage()->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function vieweditor(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$html = '';
|
||||
|
@ -1242,7 +1138,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewslide(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$interval = '2';
|
||||
|
@ -1268,7 +1164,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewfile(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$view = 'small';
|
||||
|
@ -1291,7 +1187,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewgalery(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
$directory = $this->get('kernel')->getRootDir().'/../uploads/file/widget-'.$id;
|
||||
$files = [];
|
||||
|
@ -1329,7 +1225,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewcalendar(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$nbday = '0';
|
||||
|
@ -1358,7 +1254,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewblog(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$nbarticle = 10;
|
||||
|
@ -1398,7 +1294,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewproject(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Parametres
|
||||
$nbarticle = 10;
|
||||
|
@ -1456,212 +1352,10 @@ class PagewidgetController extends AbstractController
|
|||
]);
|
||||
}
|
||||
|
||||
public function viewseparator(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
// Parametres
|
||||
$seetitle = false;
|
||||
$seeicon = false;
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
case 'seetitle':
|
||||
$seetitle = boolval($parameter['value']);
|
||||
break;
|
||||
case 'seeicon':
|
||||
$seeicon = boolval($parameter['value']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewseparator.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'seetitle' => $seetitle,
|
||||
'seeicon' => $seeicon,
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewclock(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
// Parametres
|
||||
$clock = '0';
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
case 'clock':
|
||||
$clock = $parameter['value'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewframe.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'onheader' => true,
|
||||
'tool' => (0 == $clock ? 'app_user_tool_clockanalogique' : 'app_user_tool_clocknumerique'),
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewcalculator(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewframe.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'onheader' => true,
|
||||
'tool' => 'app_user_tool_calculator',
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewappexternal(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$idappexternal = null;
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
case 'appexternal':
|
||||
$idappexternal = $parameter['value'];
|
||||
break;
|
||||
case 'modedesktop':
|
||||
$modedesktop = $parameter['value'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$user = $this->getUser();
|
||||
$items = [];
|
||||
$itemcategorys = [];
|
||||
if ($user) {
|
||||
if ($idappexternal) {
|
||||
$appextenals = $this->em->getRepository('App:Appexternal')->findBy(['id' => $idappexternal]);
|
||||
} else {
|
||||
$appextenals = $this->em->getRepository('App:Appexternal')->findAll();
|
||||
}
|
||||
foreach ($appextenals as $appexternal) {
|
||||
switch ($appexternal->getName()) {
|
||||
case 'Limesurvey':
|
||||
$category = ['id' => 0, 'label' => 'Limesurvey'];
|
||||
array_push($itemcategorys, $category);
|
||||
|
||||
$directory = $this->get('kernel')->getRootDir().'/../uploads/limesurvey/'.$user->getId();
|
||||
$files = [];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if ($fs->exists($directory.'/invitation.json')) {
|
||||
$file = file_get_contents($directory.'/invitation.json');
|
||||
$json = substr($file, 0, -2); // sup dernier ,
|
||||
$surveys = json_decode('{'.$json.'}', true);
|
||||
if (is_array($surveys)) {
|
||||
foreach ($surveys as $id => $survey) {
|
||||
array_push($items, ['id' => $id, 'title' => $survey['title'], 'subtitle' => 'Sondage', 'url' => $survey['url'], 'itemcategory' => $category, 'color' => '328637', 'icon' => 'icon_limesurvey.png']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'Moodle':
|
||||
$category = ['id' => 1, 'label' => 'Moodle'];
|
||||
array_push($itemcategorys, $category);
|
||||
|
||||
$directory = $this->get('kernel')->getRootDir().'/../uploads/moodle/'.$user->getId();
|
||||
$files = [];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if ($fs->exists($directory.'/invitation.json')) {
|
||||
$file = file_get_contents($directory.'/invitation.json');
|
||||
$json = substr($file, 0, -2); // sup dernier ,
|
||||
$courses = json_decode('{'.$json.'}', true);
|
||||
if (is_array($courses)) {
|
||||
foreach ($courses as $id => $course) {
|
||||
array_push($items, ['id' => $id, 'title' => $course['title'], 'subtitle' => 'Cours', 'url' => $course['url'], 'itemcategory' => $category, 'color' => 'f77f11', 'icon' => 'icon_moodle.png']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Trier les item par title
|
||||
$title = array_column($items, 'title');
|
||||
array_multisort($title, SORT_ASC, $items);
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewappexternal.html.twig', [
|
||||
'canadd' => $user,
|
||||
'modedesktop' => $modedesktop,
|
||||
'items' => $items,
|
||||
'itemcategorys' => $itemcategorys,
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewinfo(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
$icon = null;
|
||||
$title = null;
|
||||
$description = null;
|
||||
$members = [];
|
||||
if ('group' == $this->usage) {
|
||||
$groupentity = $this->em->getRepository('App:Group')->find($this->group);
|
||||
if ($groupentity) {
|
||||
$title = $this->entity->getPage()->getName();
|
||||
$id = $groupentity->getId();
|
||||
if ($groupentity->getDescription()) {
|
||||
$description = '<strong>Description</strong><br>'.$groupentity->getDescription();
|
||||
}
|
||||
if ($groupentity->getIcon()) {
|
||||
$icon = '/'.$groupentity->getIcon()->getLabel();
|
||||
} else {
|
||||
$icon = '/uploads/icon/icon_users.png';
|
||||
}
|
||||
|
||||
foreach ($groupentity->getUsers() as $usergroup) {
|
||||
array_push($members, $usergroup);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$title = $this->entity->getPage()->getName();
|
||||
$proprio = $this->entity->getPage()->getUser();
|
||||
$id = 0;
|
||||
if ($proprio) {
|
||||
$description = 'Propriétaire de la page<br>'.$proprio->getLastname().' '.$proprio->getLastname();
|
||||
$icon = '/uploads/avatar/'.$proprio->getAvatar();
|
||||
} else {
|
||||
$icon = '/uploads/avatar/noavatar.png';
|
||||
}
|
||||
}
|
||||
|
||||
// Render
|
||||
return $this->getRender('viewinfo.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'usage' => $this->usage,
|
||||
'icon' => $icon,
|
||||
'title' => $title,
|
||||
'description' => $description,
|
||||
'members' => $members,
|
||||
'id' => $id,
|
||||
'idpage' => $this->entity->getPage()->getId(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewchat(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
$group = $this->group;
|
||||
if ('group' != $this->usage || !$group) {
|
||||
|
@ -1681,7 +1375,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewgroup(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
$user = $this->getUser();
|
||||
$mygroups = [];
|
||||
|
@ -1711,7 +1405,7 @@ class PagewidgetController extends AbstractController
|
|||
public function viewgroupmessage(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
$this->setRequest($em, $request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$modelist = 1;
|
||||
|
@ -1770,30 +1464,4 @@ class PagewidgetController extends AbstractController
|
|||
'nbarticle' => $nbarticle,
|
||||
]);
|
||||
}
|
||||
|
||||
public function viewOnlydoc(Request $request, $id, $access = 'config')
|
||||
{
|
||||
// Récupération de la requete
|
||||
$this->setRequest($request, $id, $access);
|
||||
|
||||
// Récupération des paramétres du widget
|
||||
$apponly = 0;
|
||||
$view = 'small';
|
||||
foreach ($this->entity->getParameter()['fields'] as $parameter) {
|
||||
switch ($parameter['id']) {
|
||||
case 'apponly':
|
||||
$apponly = $parameter['value'];
|
||||
break;
|
||||
case 'modelist':
|
||||
$view = (0 == $parameter['value'] ? 'small' : 'list');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->getRender('viewonlydoc.html.twig', [
|
||||
'canadd' => $this->canupdate,
|
||||
'directory' => $id,
|
||||
'view' => $view,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ class Alert
|
|||
* @ORM\ManyToMany(targetEntity="User", inversedBy="alertreaders", cascade={"persist"})
|
||||
* @ORM\JoinTable(name="alertuserread",
|
||||
* joinColumns={@ORM\JoinColumn(name="alert", referencedColumnName="id")},
|
||||
* inverseJoinColumns={@ORM\JoinColumn(name="user", referencedColumnName="id")}
|
||||
* inverseJoinColumns={@ORM\JoinColumn(name="useraccount", referencedColumnName="id")}
|
||||
* )
|
||||
*/
|
||||
protected $readers;
|
||||
|
|
|
@ -103,11 +103,17 @@ class Group
|
|||
*/
|
||||
protected $items;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="Page", mappedBy="groups")
|
||||
*/
|
||||
protected $pages;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->users = new ArrayCollection();
|
||||
$this->alerts = new ArrayCollection();
|
||||
$this->items = new ArrayCollection();
|
||||
$this->pages = new ArrayCollection();
|
||||
}
|
||||
|
||||
// == CODE A NE PAS REGENERER
|
||||
|
@ -339,4 +345,31 @@ class Group
|
|||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Page>
|
||||
*/
|
||||
public function getPages(): Collection
|
||||
{
|
||||
return $this->pages;
|
||||
}
|
||||
|
||||
public function addPage(Page $page): self
|
||||
{
|
||||
if (!$this->pages->contains($page)) {
|
||||
$this->pages->add($page);
|
||||
$page->addGroup($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removePage(Page $page): self
|
||||
{
|
||||
if ($this->pages->removeElement($page)) {
|
||||
$page->removeGroup($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -191,11 +191,17 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
|
|||
*/
|
||||
private $modos;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="App\Entity\Alert", mappedBy="readers")
|
||||
*/
|
||||
protected $alertreaders;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->groups = new ArrayCollection();
|
||||
$this->ownergroups = new ArrayCollection();
|
||||
$this->modos = new ArrayCollection();
|
||||
$this->alertreaders = new ArrayCollection();
|
||||
}
|
||||
|
||||
// == CODE A NE PAS REGENERER
|
||||
|
@ -677,4 +683,31 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
|
|||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Alert>
|
||||
*/
|
||||
public function getAlertreaders(): Collection
|
||||
{
|
||||
return $this->alertreaders;
|
||||
}
|
||||
|
||||
public function addAlertreader(Alert $alertreader): self
|
||||
{
|
||||
if (!$this->alertreaders->contains($alertreader)) {
|
||||
$this->alertreaders->add($alertreader);
|
||||
$alertreader->addReader($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeAlertreader(Alert $alertreader): self
|
||||
{
|
||||
if ($this->alertreaders->removeElement($alertreader)) {
|
||||
$alertreader->removeReader($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class BookmarkType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('submit', SubmitType::class, [
|
||||
'label' => ('delete' == $options['mode'] ? 'Confirmer la Suppression' : 'Valider'),
|
||||
'attr' => ('delete' == $options['mode'] ? ['class' => 'btn btn-danger'] : ['class' => 'btn btn-success']),
|
||||
])
|
||||
|
||||
->add('title', TextType::class, [
|
||||
'label' => 'Titre',
|
||||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
])
|
||||
|
||||
->add('subtitle', TextareaType::class, [
|
||||
'label' => 'Sous Titre',
|
||||
'required' => false,
|
||||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
'attr' => ['rows' => '4'],
|
||||
])
|
||||
|
||||
->add('color', TextType::class, [
|
||||
'label' => 'Couleur',
|
||||
'required' => false,
|
||||
'attr' => ['class' => 'pick-a-color'],
|
||||
])
|
||||
|
||||
->add('url')
|
||||
|
||||
->add('target', ChoiceType::class, [
|
||||
'label' => 'Ouvrir le lien dans',
|
||||
'choices' => [
|
||||
'Nouvel onglet/fenêtre' => '_blank',
|
||||
'iFrame' => 'frame',
|
||||
'Onglet courant' => '_self',
|
||||
],
|
||||
])
|
||||
|
||||
->add('idicon', HiddenType::class, ['mapped' => false, 'data' => $options['idicon']]);
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => 'App\Entity\Bookmark',
|
||||
'mode' => 'string',
|
||||
'idicon' => null,
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace App\Form;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
|
@ -32,6 +34,18 @@ class GroupType extends AbstractType
|
|||
);
|
||||
}
|
||||
|
||||
$builder->add('pagetemplate',
|
||||
EntityType::class, [
|
||||
'class' => "App\Entity\Page",
|
||||
'label' => "Modèle de Page pour l'accueil du groupe",
|
||||
'required' => false,
|
||||
'choice_label' => 'name',
|
||||
'query_builder' => function (EntityRepository $er) {
|
||||
return $er->createQueryBuilder('page')->where('page.parentfor=:parentfor')->setParameter('parentfor', 'group');
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
if ('admin' == $options['access'] || 'update' == $options['mode']) {
|
||||
$builder->add('owner',
|
||||
Select2EntityType::class, [
|
||||
|
|
|
@ -58,7 +58,8 @@ class ItemType extends AbstractType
|
|||
'choices' => [
|
||||
'Visiteur' => 'ROLE_ANONYME',
|
||||
'Utilisateur' => 'ROLE_USER',
|
||||
'Animateur de Groupe' => 'ROLE_ANIM',
|
||||
'Manager' => 'ROLE_MANAGER',
|
||||
'Master' => 'ROLE_MASTER',
|
||||
'Modérateur' => 'ROLE_MODO',
|
||||
'Administateur' => 'ROLE_ADMIN',
|
||||
],
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Form\Type\FaChoiceType;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
class PageSubmitType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$access = $options['access'];
|
||||
$user = $options['user'];
|
||||
|
||||
$builder
|
||||
->add('submit', SubmitType::class, [
|
||||
'label' => ('delete' == $options['mode'] ? 'Confirmer la Suppression' : 'Valider'),
|
||||
'attr' => ('delete' == $options['mode'] ? ['class' => 'btn btn-danger'] : ['class' => 'btn btn-success']),
|
||||
])
|
||||
|
||||
->add('name', TextType::class, [
|
||||
'label' => 'Nom',
|
||||
])
|
||||
|
||||
->add('pagecategory', EntityType::class, [
|
||||
'label' => 'Catégorie de Page',
|
||||
'class' => 'App\Entity\Pagecategory',
|
||||
'choice_label' => 'name',
|
||||
'placeholder' => '-- Sélectionnez une catégorie --',
|
||||
'query_builder' => function (EntityRepository $er) use ($access) {
|
||||
if ('admin' == $access) {
|
||||
return $er->createQueryBuilder('pc')
|
||||
->select('pc');
|
||||
} else {
|
||||
return $er->createQueryBuilder('pc')
|
||||
->select('pc')
|
||||
->where('pc.id>0');
|
||||
}
|
||||
},
|
||||
])
|
||||
|
||||
->add('usage', ChoiceType::class, [
|
||||
'label' => 'Usage',
|
||||
'mapped' => false,
|
||||
'choices' => ['Personnel' => 'user', 'Groupe de Travail' => 'group'],
|
||||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
])
|
||||
|
||||
->add('fonticon', FaChoiceType::class, [
|
||||
'label' => 'Icône',
|
||||
'required' => false,
|
||||
])
|
||||
|
||||
->add('page',
|
||||
Select2EntityType::class, [
|
||||
'label' => 'Modèle de Page',
|
||||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
'required' => false,
|
||||
'multiple' => false,
|
||||
'remote_route' => 'app_all_page_template_selectlist',
|
||||
'class' => 'App\Entity\Page',
|
||||
'req_params' => ['usage' => 'parent.children[usage]'],
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 10,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000, // if 'cache' is true
|
||||
'language' => 'fr',
|
||||
'placeholder' => '-- Selectionner un modèle de page --',
|
||||
'attr' => ['class' => 'form-control', 'style' => 'margin-bottom:15px'],
|
||||
]
|
||||
)
|
||||
|
||||
->add('groups', EntityType::class, [
|
||||
'label' => 'Partager avec les Groupes',
|
||||
'class' => 'App\Entity\Group',
|
||||
'choice_label' => 'label',
|
||||
'required' => false,
|
||||
'multiple' => true,
|
||||
'expanded' => false,
|
||||
'placeholder' => '-- Selectionner un groupe --',
|
||||
'query_builder' => function (EntityRepository $er) use ($user) {
|
||||
return $er->createQueryBuilder('g')
|
||||
->select('g')
|
||||
->From('App:UserGroup', 'ug')
|
||||
->where('g.isworkgroup=:isworkgroup')
|
||||
->andWhere('g=ug.group')
|
||||
->andWhere('ug.user=:user')
|
||||
->andWhere('ug.rolegroup>=:role')
|
||||
->setParameter('isworkgroup', true)
|
||||
->setParameter('role', 90)
|
||||
->setParameter('user', $user);
|
||||
},
|
||||
])
|
||||
|
||||
->add('roworder', IntegerType::class, [
|
||||
'label' => 'Ordre',
|
||||
])
|
||||
|
||||
->add('maxwidth', IntegerType::class, [
|
||||
'label' => "Largeur maximum (0 pour largeur de l'écran)",
|
||||
]);
|
||||
|
||||
if ('admin' == $access) {
|
||||
$builder->add('user', Select2EntityType::class, [
|
||||
'label' => 'Propriétaire',
|
||||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
'required' => false,
|
||||
'multiple' => false,
|
||||
'remote_route' => 'app_admin_user_selectlist',
|
||||
'class' => 'App\Entity\User',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'username',
|
||||
'minimum_input_length' => 2,
|
||||
'page_limit' => 10,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000, // if 'cache' is true
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner un propriétaire',
|
||||
'attr' => ['class' => 'form-control', 'style' => 'margin-bottom:15px'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => 'App\Entity\Page',
|
||||
'mode' => 'string',
|
||||
'access' => 'string',
|
||||
'user' => 'App\Entity\User',
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -45,14 +45,15 @@ class PageUpdateWidgetType extends AbstractType
|
|||
'required' => false,
|
||||
]);
|
||||
|
||||
if ('config' == $options['access'] && 'group' != $options['for']) {
|
||||
if ('admin' == $options['access'] && 'group' != $options['for']) {
|
||||
$builder
|
||||
->add('roles', ChoiceType::class, [
|
||||
'label' => 'Visible pour les Rôles',
|
||||
'choices' => [
|
||||
'Visiteur' => 'ROLE_ANONYME',
|
||||
'Utilisateur' => 'ROLE_USER',
|
||||
'Animateur de Groupe' => 'ROLE_ANIM',
|
||||
'Manager' => 'ROLE_MANAGER',
|
||||
'Master' => 'ROLE_MASTER',
|
||||
'Modérateur' => 'ROLE_MODO',
|
||||
'Administateur' => 'ROLE_ADMIN',
|
||||
],
|
||||
|
@ -63,10 +64,10 @@ class PageUpdateWidgetType extends AbstractType
|
|||
|
||||
->add('groups', Select2EntityType::class, [
|
||||
'label' => 'Visible pour les Groupes',
|
||||
'class' => 'App:Group',
|
||||
'class' => 'App\Entity\Group',
|
||||
'text_property' => 'label',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'app_ajax_group_list',
|
||||
'remote_route' => 'app_admin_group_selectlist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'label',
|
||||
'minimum_input_length' => 0,
|
||||
|
@ -84,7 +85,7 @@ class PageUpdateWidgetType extends AbstractType
|
|||
'disabled' => ('delete' == $options['mode'] ? true : false),
|
||||
'required' => false,
|
||||
'multiple' => false,
|
||||
'remote_route' => 'app_config_user_ajax_selectlist',
|
||||
'remote_route' => 'app_admin_user_selectlist',
|
||||
'class' => 'App\Entity\User',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'username',
|
||||
|
|
|
@ -40,7 +40,6 @@ class FaChoiceType extends AbstractType
|
|||
'attr' => [
|
||||
// It's the key of the solution and can be done in many ways.
|
||||
// Now, the rendered <select> element will have a new font.
|
||||
'style' => "font-family: 'FontAwesome';",
|
||||
'class' => 'select2-icon',
|
||||
],
|
||||
'choices' => $this->getFontAwesomeIconChoices(),
|
||||
|
|
|
@ -40,11 +40,10 @@ class AlertRepository extends EntityRepository
|
|||
;
|
||||
}
|
||||
|
||||
public function getUserAlerts($user, $idalertcategory, $alertcategoryfilter, $ssoitems)
|
||||
public function getUserAlerts($user, $idalertcategory, $alertcategoryfilter)
|
||||
{
|
||||
// Profilage
|
||||
$roles = ($user ? $user->getRoles() : ['ROLE_ANONYME']);
|
||||
$niveau01 = ($user ? $user->getNiveau01() : null);
|
||||
$groups = ($user ? $user->getGroups() : []);
|
||||
|
||||
$userreads = ($user ? $user->getAlertreaders() : new ArrayCollection());
|
||||
|
@ -78,30 +77,6 @@ class AlertRepository extends EntityRepository
|
|||
}
|
||||
}
|
||||
|
||||
// Récupération par Niveau01
|
||||
$qb = $this->createQueryBuilder('a');
|
||||
$qb->select('alert')
|
||||
->from('App:Alert', 'alert')
|
||||
->where(':niveau01 MEMBER OF alert.niveau01s')
|
||||
->andWhere('alert.publishedat <= :today')
|
||||
->andWhere($qb->expr()->orX(
|
||||
$qb->expr()->gt('alert.unpublishedat', ':today'),
|
||||
$qb->expr()->isNull('alert.unpublishedat')
|
||||
))
|
||||
->setParameter('niveau01', $niveau01)
|
||||
->setParameter('today', date('Y-m-d'));
|
||||
|
||||
if ($idalertcategory && $alertcategoryfilter) {
|
||||
$qb->andWhere('alert.alertcategory=:alertcategory')
|
||||
->setParameter('alertcategory', $alertcategoryfilter);
|
||||
}
|
||||
$alertsniveau01s = $qb->getQuery()->getResult();
|
||||
foreach ($alertsniveau01s as $alertniveau01) {
|
||||
if (!$alerts->contains($alertniveau01) && !$userreads->contains($alertniveau01)) {
|
||||
$alerts->add($alertniveau01);
|
||||
}
|
||||
}
|
||||
|
||||
// Récupération des alerts par group
|
||||
foreach ($groups as $group) {
|
||||
$qb = $this->createQueryBuilder('a');
|
||||
|
@ -128,36 +103,6 @@ class AlertRepository extends EntityRepository
|
|||
}
|
||||
}
|
||||
|
||||
// Récupération des alerts par item
|
||||
$bookmarks = null;
|
||||
$items = null;
|
||||
$itemcategorys = null;
|
||||
$this->getEntityManager()->getRepository('App:Item')->getUserItems($user, $bookmarks, $items, $itemcategorys, null, $ssoitems, 4);
|
||||
foreach ($items as $item) {
|
||||
$qb = $this->createQueryBuilder('a');
|
||||
$qb->select('alert')
|
||||
->from('App:Alert', 'alert')
|
||||
->where(':item MEMBER OF alert.items')
|
||||
->andWhere('alert.publishedat <= :today')
|
||||
->andWhere($qb->expr()->orX(
|
||||
$qb->expr()->gt('alert.unpublishedat', ':today'),
|
||||
$qb->expr()->isNull('alert.unpublishedat')
|
||||
))
|
||||
->setParameter('item', $item)
|
||||
->setParameter('today', date('Y-m-d'));
|
||||
|
||||
if ($idalertcategory && $alertcategoryfilter) {
|
||||
$qb->andWhere('alert.alertcategory=:alertcategory')
|
||||
->setParameter('alertcategory', $alertcategoryfilter);
|
||||
}
|
||||
$alertsitems = $qb->getQuery()->getResult();
|
||||
foreach ($alertsitems as $alertitem) {
|
||||
if (!$alerts->contains($alertitem) && !$userreads->contains($alertitem)) {
|
||||
$alerts->add($alertitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Trie des alerts
|
||||
$alertsordered = $alerts->getIterator();
|
||||
$alertsordered->uasort(function ($first, $second) {
|
||||
|
|
|
@ -87,7 +87,7 @@ class ItemRepository extends ServiceEntityRepository
|
|||
$itemsroles = $qb->getQuery()->getResult();
|
||||
foreach ($itemsroles as $itemrole) {
|
||||
if (!$bookmarksitems->contains($itemrole) && !$items->contains($itemrole)) {
|
||||
if (!$fgessential || ($fgessential && $itemrole->getEssential())) {
|
||||
if (!$fgessential || ($fgessential && $itemrole->isEssential())) {
|
||||
$items->add($itemrole);
|
||||
}
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ class ItemRepository extends ServiceEntityRepository
|
|||
$itemsgroups = $qb->getQuery()->getResult();
|
||||
foreach ($itemsgroups as $itemgroup) {
|
||||
if (!$bookmarksitems->contains($itemgroup) && !$items->contains($itemgroup)) {
|
||||
if (!$fgessential || ($fgessential && $itemgroup->getEssential())) {
|
||||
if (!$fgessential || ($fgessential && $itemgroup->isEssential())) {
|
||||
$items->add($itemgroup);
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +166,6 @@ class ItemRepository extends ServiceEntityRepository
|
|||
}
|
||||
|
||||
// Catégories affichées
|
||||
dump($itemsordered);
|
||||
$itemcategorys = new ArrayCollection();
|
||||
if ($iditemcategory && $itemcategoryfilter) {
|
||||
$itemcategorys = $itemcategoryfilter;
|
||||
|
|
|
@ -3,17 +3,11 @@
|
|||
namespace App\Repository;
|
||||
|
||||
use App\Entity\Page;
|
||||
use App\Entity\Pagewidget;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
* @extends ServiceEntityRepository<Page>
|
||||
*
|
||||
* @method Page|null find($id, $lockMode = null, $lockVersion = null)
|
||||
* @method Page|null findOneBy(array $criteria, array $orderBy = null)
|
||||
* @method Page[] findAll()
|
||||
* @method Page[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
|
||||
*/
|
||||
class PageRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
|
@ -39,28 +33,386 @@ class PageRepository extends ServiceEntityRepository
|
|||
}
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return Page[] Returns an array of Page objects
|
||||
// */
|
||||
// public function findByExampleField($value): array
|
||||
// {
|
||||
// return $this->createQueryBuilder('p')
|
||||
// ->andWhere('p.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->orderBy('p.id', 'ASC')
|
||||
// ->setMaxResults(10)
|
||||
// ->getQuery()
|
||||
// ->getResult()
|
||||
// ;
|
||||
// }
|
||||
// getPagesUser
|
||||
// $user = l'utilisateur en cours
|
||||
// $id = la page en cours que l'on cherche à afficher
|
||||
// &$pagecurrent = l'entité de la page à afficher
|
||||
// &$pagesuser = les pages de l'utilisateur
|
||||
// &$pages = les pages système de l'utilistauer
|
||||
// &$pagesshared = les pages partagées pour l'utilisateur
|
||||
|
||||
// public function findOneBySomeField($value): ?Page
|
||||
// {
|
||||
// return $this->createQueryBuilder('p')
|
||||
// ->andWhere('p.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->getQuery()
|
||||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
public function getPagesUser($user, $id, &$pagecurrent, &$pagesportal, &$pagesuser, &$groupsshared)
|
||||
{
|
||||
// Profilage
|
||||
$roles = ($user ? $user->getRoles() : ['ROLE_ANONYME']);
|
||||
$groups = ($user ? $user->getGroups() : []);
|
||||
|
||||
// CREATION DES PAGES TEMPLATE UTILISATEUR
|
||||
if ($user) {
|
||||
// Initialisation du calcul des templates
|
||||
$templatesnotorder = new ArrayCollection();
|
||||
|
||||
// Récupération des templates par rôles
|
||||
foreach ($roles as $role) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where($qb->expr()->like('page.roles', $qb->expr()->literal("%$role%")))
|
||||
->andWhere('page.user is null')
|
||||
->andWhere("page.parentfor='user'");
|
||||
|
||||
$templatesroles = $qb->getQuery()->getResult();
|
||||
foreach ($templatesroles as $templaterole) {
|
||||
if (!$templatesnotorder->contains($templaterole)) {
|
||||
$templatesnotorder->add($templaterole);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Récupération des templates par group
|
||||
foreach ($groups as $group) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where(':group MEMBER OF page.groups')
|
||||
->andWhere('page.user is null')
|
||||
->andWhere("page.parentfor='user'")
|
||||
->setParameter('group', $group->getGroup());
|
||||
|
||||
$templatesgroups = $qb->getQuery()->getResult();
|
||||
foreach ($templatesgroups as $templategroup) {
|
||||
if (!$templatesnotorder->contains($templategroup)) {
|
||||
$templatesnotorder->add($templategroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Pour chaque template associé au profil de l'utilisateur on s'assure qu'il possède bien la page
|
||||
foreach ($templatesnotorder as $template) {
|
||||
$exist = $this->getEntityManager()->getRepository("App\Entity\Page")->findBy(['page' => $template]);
|
||||
if (!$exist) {
|
||||
$page = $this->clonePage($user, $template);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// GENERATION DES PAGES UTILISATEURS
|
||||
// Une page utilisateur est une page dont il est le propriétaire mais qui n'est pas partagé dans un groupe
|
||||
$pagesuser = false;
|
||||
if ($user) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where('page.user=:user')
|
||||
->setParameter('user', $user)
|
||||
->orderBy('page.roworder', 'ASC')
|
||||
->addOrderBy('page.name', 'ASC');
|
||||
$pagesuser = $qb->getQuery()->getResult();
|
||||
|
||||
foreach ($pagesuser as $key => $pageuser) {
|
||||
if (!$pageuser->getGroups()->isEmpty()) {
|
||||
unset($pagesuser[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Permission sur les pages = il a forcement le droit des les modifier : elles sont à lui
|
||||
if ($pagesuser) {
|
||||
foreach ($pagesuser as $pageuser) {
|
||||
$pageuser->setCanupdate(true);
|
||||
}
|
||||
}
|
||||
|
||||
// GENERATION DES PAGES GROUPES DE TRAVAIL
|
||||
// Une page groupe de travail est une page associée à un groupe isworkgroup sur lequel l'utilisateur est inscrit
|
||||
if ($user) {
|
||||
// En premier lieu on liste les groupes de travail de l'utilisateur
|
||||
$groupsshared = $this->getEntityManager()->createQueryBuilder()
|
||||
->select('g')
|
||||
->from('App\Entity\Group', 'g')
|
||||
->from('App\Entity\UserGroup', 'ug')
|
||||
->where('g.isworkgroup=:isworkgroup')
|
||||
->andWhere('g=ug.group')
|
||||
->andWhere('ug.user=:user')
|
||||
->setParameter('isworkgroup', true)
|
||||
->setParameter('user', $user)
|
||||
->orderBy('g.label')
|
||||
->getQuery()->getResult();
|
||||
|
||||
// Pour chaque groupe de travail : on s'assure que le groupe possède au moins une page
|
||||
// Sinon création de la page template associée au groupe
|
||||
foreach ($groupsshared as $key => $groupshared) {
|
||||
$pagesshared = $this->createQueryBuilder('page')
|
||||
->from('App\Entity\Group', 'g')
|
||||
->where('g.id=:id')
|
||||
->andWhere('g MEMBER OF page.groups')
|
||||
->setParameter('id', $groupshared->getId())
|
||||
->orderBy('page.roworder')
|
||||
->addOrderBy('page.name')
|
||||
->getQuery()->getResult();
|
||||
|
||||
if (empty($pagesshared)) {
|
||||
unset($groupsshared[$key]);
|
||||
} else {
|
||||
// Si l'utilisateur est manager du group il aura les permissions de modification sur la page
|
||||
$usergroup = $this->getEntityManager()->getRepository("App\Entity\UserGroup")->findOneBy(['user' => $user, 'group' => $groupshared]);
|
||||
if ($usergroup && $usergroup->getRolegroup() >= 90) {
|
||||
foreach ($pagesshared as $key2 => $pageshared) {
|
||||
$pagesshared[$key2]->setCanupdate(true);
|
||||
}
|
||||
}
|
||||
|
||||
$groupsshared[$key]->pagesshared = $pagesshared;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$pagesshared = false;
|
||||
if ($user) {
|
||||
$pagesshared = $this->createQueryBuilder('page')
|
||||
->from('App\Entity\Group', 'g')
|
||||
->from('App\Entity\UserGroup', 'ug')
|
||||
->from('App\Entity\UserGroup', 'proprio')
|
||||
->where('g.isworkgroup=:isworkgroup')
|
||||
->andWhere('g=ug.group')
|
||||
->andWhere('ug.user=:user')
|
||||
->andWhere('g MEMBER OF page.groups')
|
||||
->andWhere('page.user != :user')
|
||||
->andWhere('page.user is not null')
|
||||
->andWhere('proprio.user=page.user')
|
||||
->andWhere('proprio.group=g')
|
||||
->setParameter('isworkgroup', true)
|
||||
->setParameter('user', $user)
|
||||
->orderBy('page.roworder', 'ASC')
|
||||
->addOrderBy('page.name', 'ASC')
|
||||
->getQuery()->getResult();
|
||||
}
|
||||
|
||||
// GENERATION DES PAGES ADMINISTRATEUR
|
||||
// Initialisation du calcul des pages
|
||||
$pagesnotorder = new ArrayCollection();
|
||||
|
||||
// Récupération des pages par rôles
|
||||
foreach ($roles as $role) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where($qb->expr()->like('page.roles', $qb->expr()->literal("%$role%")))
|
||||
->andWhere('page.user is null')
|
||||
->andWhere('page.parentfor is null');
|
||||
|
||||
$pagesroles = $qb->getQuery()->getResult();
|
||||
foreach ($pagesroles as $pagerole) {
|
||||
if (!$pagesnotorder->contains($pagerole)) {
|
||||
$pagesnotorder->add($pagerole);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Récupération des pages par group
|
||||
foreach ($groups as $group) {
|
||||
if (!$group->getGroup()->isIsworkgroup()) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where(':group MEMBER OF page.groups')
|
||||
->andWhere('page.user is null')
|
||||
->andWhere('page.parentfor is null')
|
||||
->setParameter('group', $group->getGroup());
|
||||
|
||||
$pagesgroups = $qb->getQuery()->getResult();
|
||||
foreach ($pagesgroups as $pagegroup) {
|
||||
if (!$pagesnotorder->contains($pagegroup)) {
|
||||
$pagesnotorder->add($pagegroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Permission sur les pages
|
||||
foreach ($pagesnotorder as $pageadmin) {
|
||||
$pageadmin->setCanupdate(false);
|
||||
}
|
||||
|
||||
// Trie des pages
|
||||
$pagesportal = $pagesnotorder->getIterator();
|
||||
$pagesportal->uasort(function ($first, $second) {
|
||||
return (int) $first->getRowOrder() > (int) $second->getRowOrder() ? 1 : -1;
|
||||
});
|
||||
|
||||
// Afficher par défaut la pagebookmarké par l'utilisateur en préférence
|
||||
if ($user && !isset($id)) {
|
||||
$preference = $user->getPreference();
|
||||
if (is_array($preference) && array_key_exists('pagebookmark', $preference)) {
|
||||
$id = $preference['pagebookmark'][0];
|
||||
}
|
||||
}
|
||||
|
||||
// On récupère la page à afficher
|
||||
$pagecurrent = false;
|
||||
if (isset($id)) {
|
||||
$pagecurrent = $this->find($id);
|
||||
|
||||
// On s'assure que la page fait partie des pages du profil
|
||||
$have = false;
|
||||
foreach ($pagesportal as $v) {
|
||||
if ($v == $pagecurrent) {
|
||||
$have = true;
|
||||
}
|
||||
}
|
||||
if ($pagesuser) {
|
||||
foreach ($pagesuser as $v) {
|
||||
if ($v == $pagecurrent) {
|
||||
$have = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($groupsshared) {
|
||||
foreach ($groupsshared as $groupshared) {
|
||||
foreach ($groupshared->pagesshared as $v) {
|
||||
if ($v == $pagecurrent) {
|
||||
$have = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$have) {
|
||||
$pagecurrent = false;
|
||||
}
|
||||
}
|
||||
|
||||
// ou On récupère la premier page profilée comme page d'accueil
|
||||
if (!$pagecurrent) {
|
||||
$pagesportal->rewind();
|
||||
if ($pagesportal->current()) {
|
||||
$id = $pagesportal->current()->getId();
|
||||
$pagecurrent = $this->find($id);
|
||||
}
|
||||
|
||||
// Si aucune page profilé on récupère la premiere page perso
|
||||
if (!$pagecurrent) {
|
||||
if ($pagesuser) {
|
||||
$pagecurrent = $pagesuser[0];
|
||||
}
|
||||
}
|
||||
|
||||
// Si aucune page profilé on récupère la premiere page perso
|
||||
if (!$pagecurrent) {
|
||||
if ($groupsshared) {
|
||||
if ($groupsshared[0]) {
|
||||
$pagecurrent = $groupsshared[0]->pagesshared[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ou On récupère la premiere page de l'utilisateur
|
||||
if (!$pagecurrent && !empty($pagesuser)) {
|
||||
$pagecurrent = $pagesuser[$this->firstkey($pagesuser)];
|
||||
}
|
||||
|
||||
// ou On récupère la premiere page partagées
|
||||
if (!$pagecurrent && !empty($pagesshared)) {
|
||||
$pagecurrent = $pagesshared[$this->firstkey($pagesshared)];
|
||||
}
|
||||
}
|
||||
|
||||
public function getPermission($user, $page, &$cansee, &$canupdate, &$canadd)
|
||||
{
|
||||
// si page de l'utilisateur
|
||||
if ($page->getUser() == $user && !is_null($user)) {
|
||||
$cansee = true;
|
||||
$canupdate = true;
|
||||
$canadd = true;
|
||||
} else {
|
||||
$canupdate = false;
|
||||
$cansee = false;
|
||||
|
||||
// Profilage
|
||||
$roles = ($user ? $user->getRoles() : ['ROLE_ANONYME']);
|
||||
$groups = ($user ? $user->getGroups() : []);
|
||||
|
||||
// La page est-elle dans les pages associées au role de l'utilisateur ?
|
||||
foreach ($roles as $role) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where($qb->expr()->like('page.roles', $qb->expr()->literal("%$role%")))
|
||||
->andWhere('page.id=:id')
|
||||
->andWhere('page.user is null')
|
||||
->setParameter('id', $page->getId());
|
||||
$inpagerole = $qb->getQuery()->getResult();
|
||||
if ($inpagerole) {
|
||||
$cansee = true;
|
||||
}
|
||||
}
|
||||
|
||||
// La page est-elle dans les pages associées aux groupes de l'utilisateur ?
|
||||
foreach ($groups as $group) {
|
||||
$qb = $this->createQueryBuilder('page');
|
||||
$qb->where(':group MEMBER OF page.groups')
|
||||
->andWhere('page.id=:id')
|
||||
->setParameter('id', $page->getId())
|
||||
->setParameter('group', $group->getGroup());
|
||||
|
||||
$inpagegroup = $qb->getQuery()->getResult();
|
||||
|
||||
if ($inpagegroup) {
|
||||
$cansee = true;
|
||||
// Est-il manager du groupe
|
||||
if ($group->getGroup()->isIsworkgroup()) {
|
||||
if ($group->getRolegroup() >= 90) {
|
||||
$canupdate = true;
|
||||
}
|
||||
if ($group->getRolegroup() >= 50) {
|
||||
$canadd = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function clonePage($user, $template)
|
||||
{
|
||||
$page = new Page();
|
||||
$page->setName($template->getName());
|
||||
$page->setRoworder($template->getRoworder());
|
||||
$page->setMaxwidth($template->getMaxwidth());
|
||||
$page->setUrl($template->getUrl());
|
||||
$page->setHtml($template->getHtml());
|
||||
$page->setTemplate($template->getTemplate());
|
||||
$page->setPagecategory($template->getPagecategory());
|
||||
$page->setUser($user);
|
||||
$page->setPage($template);
|
||||
|
||||
$this->getEntityManager()->persist($page);
|
||||
$this->getEntityManager()->flush();
|
||||
|
||||
$widgets = $template->getPagewidgets();
|
||||
foreach ($widgets as $widget) {
|
||||
$pagewidget = new Pagewidget();
|
||||
$pagewidget->setName($widget->getName());
|
||||
$pagewidget->setLoc($widget->getLoc());
|
||||
$pagewidget->setRoworder($widget->getRoworder());
|
||||
$pagewidget->setHeight($widget->getHeight());
|
||||
$pagewidget->setAutoajust($widget->isAutoajust());
|
||||
$pagewidget->setBorder($widget->isBorder());
|
||||
$pagewidget->setOpened($widget->isOpened());
|
||||
$pagewidget->setViewheader($widget->isViewheader());
|
||||
$pagewidget->setColorheaderback($widget->getColorheaderback());
|
||||
$pagewidget->setColorheaderfont($widget->getColorheaderfont());
|
||||
$pagewidget->setColorbodyback($widget->getColorbodyback());
|
||||
$pagewidget->setColorbodyfont($widget->getColorbodyfont());
|
||||
$pagewidget->setParameter($widget->getParameter());
|
||||
$pagewidget->setPage($page);
|
||||
$pagewidget->setWidget($widget->getWidget());
|
||||
$pagewidget->setIcon($widget->getIcon());
|
||||
|
||||
$this->getEntityManager()->persist($pagewidget);
|
||||
$this->getEntityManager()->flush();
|
||||
|
||||
// dupliquer slide et bookmarks ??
|
||||
}
|
||||
|
||||
return $page;
|
||||
}
|
||||
|
||||
private function firstkey($array)
|
||||
{
|
||||
foreach ($array as $key => $unused) {
|
||||
return $key;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{{ form_start(form) }}
|
||||
<h1 class="page-header">
|
||||
{% if mode=="update" %}
|
||||
Modification {{ (touser=='false' ? "Lien" : "Favori") }}
|
||||
{% elseif mode=="submit" %}
|
||||
Création {{ (touser=='false' ? "Lien" : "Favori") }}
|
||||
{% endif %}
|
||||
</h1>
|
||||
|
||||
{{ form_widget(form.submit) }}
|
||||
<a class="btn btn-secondary" href="{{ path('app_'~access~'_page_'~usage~'_view',{id:idpage}) }}">Annuler</a>
|
||||
|
||||
|
||||
{% if mode=="update" %}
|
||||
<a href={{ path('app_'~access~'_bookmark_delete',{'id':entity.id,'idpage':idpage,'idwidget':idwidget,'touser':touser,usage:usage}) }}
|
||||
class="btn btn-danger float-end"
|
||||
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
|
||||
data-confirm="Êtes-vous sûr de vouloir supprimer ce favoris ?">
|
||||
Supprimer
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<br><br>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
<div class='alert alert-danger' style='margin: 5px 0px'>
|
||||
<strong>Erreur</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('error') %}
|
||||
{{ flashMessage }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if app.session.flashbag.has('notice') %}
|
||||
<div class='alert alert-info' style='margin: 5px 0px'>
|
||||
<strong>Information</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
{{ flashMessage }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="row clearfix">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-pencil-alt fa-fw"></i> Informations
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
{{ form_row(form.title) }}
|
||||
{{ form_row(form.subtitle) }}
|
||||
{{ form_row(form.url) }}
|
||||
<em>le mot clé #login# sera remplacé par le login de l'utilisateur</em><br>
|
||||
{{ form_row(form.target) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-glasses fa-fw"></i> Appararence
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
{{ form_row(form.color) }}
|
||||
<div id="diviconsel" class="col-md-12 text-center mb-1 mt-1" style="height:140px; padding:20px; background-color: {{ entity.color ? entity.color : 'var(--colorbgbodydark)' }};">
|
||||
{% if entity.icon %}
|
||||
<img src="{{ path('app_minio_image',{file:entity.icon.label}) }}" height="100" />
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-12" style="text-align:center;padding:0px">
|
||||
{{ form_row(form.idicon) }}
|
||||
<a class="btn btn-success btn-modal" data-modalid="mymodallarge" data-modaltitle="Icône" data-modalurl="{{ path('app_all_icon_select') }}" title='Selectionner un Icône'>Selectionner un Icône</a>
|
||||
<a class="btn btn-danger" onClick="delIcon()" title='Détacher'>Détacher l'Icône</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block localscript %}
|
||||
<script>
|
||||
$('document').ready(function(){
|
||||
showhide();
|
||||
});
|
||||
|
||||
$("#bookmark_color").bind("change paste keyup", function() {
|
||||
$("#diviconsel").css("background-color",$(this).val());
|
||||
});
|
||||
|
||||
|
||||
|
||||
function selIcon(idicon,url) {
|
||||
$("#bookmark_idicon").val(idicon);
|
||||
$("#diviconsel img").remove();
|
||||
|
||||
$("#diviconsel").append("<img src='"+url+"'>");
|
||||
$("#diviconsel img").attr("height","100px");
|
||||
$("#mymodallarge").modal("hide");
|
||||
}
|
||||
|
||||
function delIcon() {
|
||||
$("#diviconsel img").remove();
|
||||
$("#bookmark_idicon").val(null);
|
||||
}
|
||||
|
||||
function showhide() {
|
||||
$("#divhelp").hide();
|
||||
if($("#bookmark_target").val()=="frame") {
|
||||
$("#divhelp").show();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
|
@ -53,9 +53,11 @@
|
|||
{{ form_row(form.isworkgroup) }}
|
||||
{% endif %}
|
||||
|
||||
<div id="blockisopen">
|
||||
{% if form.pagetemplate is defined %}
|
||||
{{ form_row(form.pagetemplate) }}
|
||||
{% endif %}
|
||||
|
||||
{{ form_row(form.isopen) }}
|
||||
</div>
|
||||
|
||||
{{ form_row(form.description) }}
|
||||
|
||||
|
@ -95,8 +97,16 @@
|
|||
});
|
||||
|
||||
function showhide() {
|
||||
if($("#group_isworkgroup").val()==0) $("#blockisopen").hide();
|
||||
else $("#blockisopen").show();
|
||||
|
||||
if($("#group_isworkgroup").val()==0) {
|
||||
$("#groupfield_group_isopen").hide();
|
||||
$("#groupfield_group_pagetemplate").hide();
|
||||
}
|
||||
else {
|
||||
$("#groupfield_group_isopen").show();
|
||||
$("#groupfield_group_pagetemplate").show();
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
|
||||
{% block body %}
|
||||
<h1 class="page-header">Membres du Groupe = {{ group.label }}</h1>
|
||||
|
||||
{% if idpage=="" %}
|
||||
<a class="btn btn-secondary" href={{ path('app_'~access~'_group') }}>Fermer</a>
|
||||
{% else %}
|
||||
<a class="btn btn-secondary" href={{ path('app_home',{id:idpage}) }}>Fermer</a>
|
||||
{% endif %}
|
||||
|
||||
<br><br>
|
||||
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
{% extends "base.html.twig" %}
|
||||
|
||||
{% block body %}
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{% for bookmark in bookmarks %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% for itemcategory in itemcategorys %}
|
||||
{% if itemcategorys|length > 1 %} <h2 {% if not loop.first %} class="mt-3" {% endif %}>{{itemcategory.label}}</h2> {% endif %}
|
||||
|
||||
<div class="items-list">
|
||||
{% for item in items %}
|
||||
{% if item.itemcategory==itemcategory %}
|
||||
<div class="item item-large" style="background-color: {{ item.color ? item.color : "var(--colorbgbodydark)" }};">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<a class="item-link" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
|
||||
{% if item.icon %}
|
||||
<img height="35" src="{{ path('app_minio_image',{file:item.icon.label}) }}">
|
||||
{% else %}
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_pin.png"}) }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-title">
|
||||
<h3 >{{ item.title }}</h3>
|
||||
<div class="item-subtitle">{{ item.subtitle|nl2br }}</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="item-action">
|
||||
{% if item.content %}
|
||||
<a style="display:none"><i class="item-info fas fa-circle-info"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item-description hide">{{ item.content|raw }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
|
@ -71,10 +71,14 @@
|
|||
'items' : [
|
||||
{
|
||||
icon: 'fa fa-copy fa-fw',
|
||||
route: 'app_admin_pagetemplate',
|
||||
route: 'app_admin_page_template',
|
||||
name: 'Modèles de Page',
|
||||
},
|
||||
|
||||
{
|
||||
icon: 'fa fa-file fa-fw',
|
||||
route: 'app_admin_page_portal',
|
||||
name: 'Pages',
|
||||
},
|
||||
{
|
||||
icon: 'fa fa-desktop',
|
||||
route: 'app_admin_item',
|
||||
|
|
|
@ -87,7 +87,6 @@
|
|||
<div class="card-body">
|
||||
{{ form_row(form.color) }}
|
||||
|
||||
|
||||
<div id="diviconsel" class="col-md-12 text-center mb-1 mt-1" style="height:140px; padding:20px; background-color: {{ item.color ? item.color : 'var(--colorbgbodydark)' }};">
|
||||
{% if item.icon %}
|
||||
<img src="{{ path('app_minio_image',{file:item.icon.label}) }}" height="100" />
|
||||
|
|
|
@ -92,9 +92,15 @@
|
|||
<span class="badge bg-success float-end"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_ANIM" style="cursor:pointer">
|
||||
<a class="list-group-item" data-role="ROLE_MANAGER" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Animateur de Groupe
|
||||
Manager
|
||||
<span class="badge bg-success float-end"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_MASTER" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Master
|
||||
<span class="badge bg-success float-end"></span>
|
||||
</a>
|
||||
|
||||
|
@ -150,7 +156,8 @@
|
|||
|
||||
$("a[data-role='ROLE_ANONYME']").children("span").html($('.group-ROLE_ANONYME').length);
|
||||
$("a[data-role='ROLE_USER']").children("span").html($('.group-ROLE_USER').length);
|
||||
$("a[data-role='ROLE_ANIM']").children("span").html($('.group-ROLE_ANIM').length);
|
||||
$("a[data-role='ROLE_MANAGER']").children("span").html($('.group-ROLE_MANAGER').length);
|
||||
$("a[data-role='ROLE_MASTER']").children("span").html($('.group-ROLE_MASTER').length);
|
||||
$("a[data-role='ROLE_MODO']").children("span").html($('.group-ROLE_MODO').length);
|
||||
$("a[data-role='ROLE_ADMIN']").children("span").html($('.group-ROLE_ADMIN').length);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
Gestion des Pages
|
||||
</h1>
|
||||
|
||||
<a href="{{ path('app_config_page_submit') }}" class="btn btn-success">Ajouter une Page</a>
|
||||
<a href="{{ path('app_'~access~'_page_'~usage~'_submit') }}" class="btn btn-success">Ajouter une Page</a>
|
||||
|
||||
<div class="custom-control custom-switch float-right">
|
||||
<input id="alluser" type="checkbox" class="custom-control-input">
|
||||
|
@ -37,7 +37,8 @@
|
|||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
{% block localscript %}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
{% if not app.session.get('alluserpage') is empty %}
|
||||
var state={{ app.session.get('alluserpage') }};
|
||||
|
@ -55,7 +56,7 @@
|
|||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
"url": "{{ path('app_config_page_ajax_list') }}",
|
||||
"url": "{{ path('app_'~access~'_page_'~usage~'_tablelist') }}",
|
||||
"data": function ( d ) {
|
||||
return $.extend( {}, d, {
|
||||
"alluser": $('#alluser').is(':checked')
|
||||
|
@ -85,5 +86,5 @@
|
|||
$("#labelalluser").html("Afficher les pages créées par des utilisateurs");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,47 +1,7 @@
|
|||
{% if not inmenu %}
|
||||
<ul class="list-group" id="listgrouppage">
|
||||
{% for groupshared in groupsshared %}
|
||||
{% for page in groupshared.pagesshared %}
|
||||
{% set forcereload=true %}
|
||||
{% if page.pagecategory.id==1 %}
|
||||
{% set forcereload=page.toreload %}
|
||||
{% endif %}
|
||||
|
||||
{% set isactive="" %}
|
||||
{% if entity.id is defined and page.id==entity.id %}
|
||||
{% set isactive="active" %}
|
||||
{% endif %}
|
||||
|
||||
<li id="menupage-{{page.id}}" {{ isactive }} class="list-group-item {{isactive}}" onClick="$('#listgrouppage li').removeClass('active'); $(this).addClass('active') " style="cursor:pointer">
|
||||
<a data-group="{{groupshared.id}}" onClick="$('#selgrouppages').modal('hide'); showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{forcereload}}','{{groupshared.id}}','{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-faw"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-users fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
|
||||
{% if loop.first and page.counterread > 0 %}
|
||||
<span id="badge-{{groupshared.id}}" class="badge">{{page.counterread}}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
{% if loop.first and groupshared.pagesshared|length > 1 %}
|
||||
<ul class="list-group" style="margin-top:15px">
|
||||
{% endif %}
|
||||
|
||||
{% if groupshared.pagesshared|length > 1 and loop.last %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% if loop.last %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
{% for groupshared in groupsshared %}
|
||||
{% for groupshared in groups %}
|
||||
{% if groupshared.pagesshared|length == 1 %}
|
||||
{% set page = groupshared.pagesshared[0] %}
|
||||
{% set forcereload=true %}
|
||||
|
|
|
@ -1,334 +0,0 @@
|
|||
|
||||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
|
||||
{% set color = app.session.get('color') %}
|
||||
{% set colormain = color['main'] %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
<div id="pagecontainer" style="margin: 0px -30px;"></div>
|
||||
<div id="gridtemplate" style="max-width:1500px; margin:auto; margin-bottom:30px">
|
||||
<div class="col-md-3">qsdfqsdfqsd</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
{% if bookmarks is not empty %}
|
||||
<div class="bookmark-container">
|
||||
{% if items is not empty %}
|
||||
<h3 class="grid-title" data-idcategory="bookmark" style="{{ colorbodyfont }}">Favoris</h3>
|
||||
{% else %}
|
||||
<p></p>
|
||||
{% endif %}
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% for bookmark in bookmarks %}
|
||||
<div class="grid-item grid-small">
|
||||
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};">
|
||||
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url }}" target="{{ bookmark.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
{% if bookmark.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/{{ bookmark.icon.label }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ bookmark.title }}</h2>
|
||||
<span>{{ bookmark.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="bookmark-container" style="display:none">
|
||||
<h3 class="grid-title" data-idcategory="bookmark"">Favoris</h3>
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% set mycategs = [] %}
|
||||
{% for itemcategory in itemcategorys %}
|
||||
{% set haveitem=false %}
|
||||
|
||||
{% for item in items if item.itemcategory==itemcategory %}
|
||||
|
||||
{% if loop.index ==1 %}
|
||||
{% set mycategs = mycategs|merge({ (loop.index) : itemcategory}) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{% for itemcategory in mycategs %}
|
||||
{% set haveitem=false %}
|
||||
|
||||
{% for item in items if item.itemcategory==itemcategory %}
|
||||
|
||||
{% if loop.index ==1 %}
|
||||
{% set haveitem=true %}
|
||||
|
||||
{% if mycategs|length > 1 or bookmarks is not empty %}
|
||||
<h3 class="grid-title" data-idcategory="{{ itemcategory.id }}">{{ itemcategory.label }}</h3>
|
||||
{% else %}
|
||||
<p></p>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid-item grid-small" data-idcategory="{{ item.itemcategory.id }}" data-iditem="{{ item.id }}">
|
||||
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};">
|
||||
{% if item.content %}
|
||||
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if item.protected and not app.user %}
|
||||
{% if mode_auth == "SAML" %}
|
||||
<a href="{{ path('lightsaml_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "CAS" %}
|
||||
<a href="{{ path('cas_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "MYSQL" %}
|
||||
<a href="{{ path('cnous_portal_user_login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
{% if item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url }}')">
|
||||
{% elseif item.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
{% if item.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/{{ item.icon.label }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ item.title }}</h2>
|
||||
<span>{{ item.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="grid-item-body" style="display:none">
|
||||
{{ item.content|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% if haveitem %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
$('document').ready(function(){
|
||||
// Ajustement des frames
|
||||
$(window).resize(function() {
|
||||
AjustFrame();
|
||||
});
|
||||
|
||||
|
||||
// Création des grilles d'items
|
||||
var optiongrid={columnWidth: '.grid-sizer', itemSelector: '.grid-item', gutter: '.grid-gutter-sizer'};
|
||||
$('body').imagesLoaded(function() {
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
});
|
||||
|
||||
// Preview item de bureau
|
||||
$( ".grid .item-preview" ).click(function() {
|
||||
if($(this).parent().children(".grid-item-body").css('display') == 'none') {
|
||||
$(this).html('<i style="color: #FFF" class="fa fa-minus" title="Informations sur ce service"></i>');
|
||||
heightbody=$(this).parent().children(".grid-item-body").height()+30;
|
||||
heightitem=$(this).parent().parent().height();
|
||||
|
||||
|
||||
$(this).parent().children(".grid-item-body").show();
|
||||
$(this).parent().parent().css("width","100%");
|
||||
|
||||
$(this).parent().parent().css("height",heightitem+heightbody);
|
||||
$(this).parent().children(".grid-item-content").css("height",heightitem+heightbody);
|
||||
$(this).parent().children(".item-preview").css("height",heightitem+heightbody);
|
||||
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
}
|
||||
else {
|
||||
$(this).html('<i style="color: #FFF" class="fa fa-plus" title="Informations sur ce service"></i>');
|
||||
|
||||
$(this).parent().children(".grid-item-body").hide();
|
||||
$(this).parent().parent().css("width","");
|
||||
$(this).parent().parent().css("height","");
|
||||
$(this).parent().children(".grid-item-content").css("height","");
|
||||
$(this).parent().children(".item-preview").css("height","");
|
||||
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
}
|
||||
});
|
||||
|
||||
// Sur click item à sonder
|
||||
{% if activate_widsonde %}
|
||||
$( ".linktosonde" ).click(function() {
|
||||
title=$(this).attr("data-sonde");
|
||||
//$.getScript( "{{ widsonde_url }}?appli="+title );
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Ajout d'un bookmark
|
||||
function addBookmark(idwidget,touser) {
|
||||
var url="{{ path('cadoles_portal_user_bookmark_submit',{idpage:0,idwidget:'xx',touser:'yy'})}}";
|
||||
url=url.replace('xx',idwidget);
|
||||
url=url.replace('yy',touser);
|
||||
|
||||
$(location).attr('href', url);
|
||||
}
|
||||
|
||||
// Modifciation d'un bookmark
|
||||
function modBookmark(idbookmark) {
|
||||
var url="{{ path('cadoles_portal_user_bookmark_update',{idpage:0,id:'xx'})}}";
|
||||
|
||||
url=url.replace('xx',idbookmark);
|
||||
$(location).attr('href', url);
|
||||
}
|
||||
|
||||
// Ajouter un item aux bookmark
|
||||
function heartBookmark(iditem) {
|
||||
var idbookmark;
|
||||
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_portal_user_bookmark_heart') }}",
|
||||
data: {
|
||||
iditem:iditem
|
||||
},
|
||||
success: function(idbookmark) {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Supprimer un fichier
|
||||
function delFile(directory,filename) {
|
||||
var r = confirm("Confirmez-vous la suppression de ce fichier ?");
|
||||
if (r == true) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_core_user_file_delete') }}",
|
||||
data: {
|
||||
directory:directory,
|
||||
filename:filename
|
||||
},
|
||||
success: function() {
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Ajustement des frames
|
||||
function AjustFrame() {
|
||||
$('.frameajust').iframeAutoHeight({
|
||||
minHeight: 500, // Sets the iframe height to this value if the calculated value is less
|
||||
heightOffset: 0, // Optionally add some buffer to the bottom
|
||||
callback: function(callbackObject) { $(this).parent().css("height",callbackObject.newFrameHeight) ;}
|
||||
});
|
||||
|
||||
if($(".frameitem").length>0) {
|
||||
var heightbody = $('html').height();
|
||||
var heightheader = $('.header').height();
|
||||
if($('.pagemenu').css("display")=="none")
|
||||
var heightmenu = 0;
|
||||
else
|
||||
var heightmenu = $('.pagemenu').height();
|
||||
|
||||
var heightframe = heightbody-heightheader-heightmenu;
|
||||
|
||||
$(".frameitem").height(heightframe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Affichage d'un Flux
|
||||
function showFlux(idwidget, id) {
|
||||
if(id=="all")
|
||||
$(".widget[data-id="+idwidget+"]").find(".feed").show();
|
||||
else {
|
||||
$(".widget[data-id="+idwidget+"]").find(".feed").hide();
|
||||
$(".widget[data-id="+idwidget+"]").find(".flux-"+id).show();
|
||||
}
|
||||
|
||||
var optiongrid={columnWidth: '.grid-sizer',itemSelector: '.grid-item'};
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
}
|
||||
|
||||
// Affichage des frames associés aux items de bureau
|
||||
function resizeFrame() {
|
||||
var iFrame = document.getElementById('frameContent');
|
||||
|
||||
var heightbody = $('html').height();
|
||||
var heightheader = $('.header').height();
|
||||
if($('#appmenu').css("display")=="none")
|
||||
var heightmenu = 0;
|
||||
else
|
||||
var heightmenu = $('#appmenu').height();
|
||||
|
||||
|
||||
var heightframe = heightbody-heightheader-heightmenu;
|
||||
|
||||
$(".pageframe").each(function( index ) {
|
||||
$(this).height(heightframe);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function showFrameitem(id,url,forcereload) {
|
||||
$(".pageframe").hide();
|
||||
|
||||
// Si force le rechargement et frame existante on la détruit
|
||||
if(forcereload&&$("#frameitem-"+id).length)
|
||||
$("#frameitem-"+id).remove();
|
||||
|
||||
// Si la frame en cours existe déjà on l'affiche
|
||||
if($("#frameitem-"+id).length)
|
||||
$("#frameitem-"+id).show();
|
||||
// Sinon on la génère
|
||||
else
|
||||
$("#pagecontainer").append("<iframe id='frameitem-"+id+"' class='pageframe' src='"+url+"' style='border:none; width:100%'></iframe>");
|
||||
|
||||
|
||||
resizeFrame();
|
||||
}
|
||||
|
||||
{% endblock %}
|
|
@ -1,174 +1,219 @@
|
|||
|
||||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block localstyle %}
|
||||
body{overflow-y:hidden}
|
||||
<style>
|
||||
body{
|
||||
overflow-y:hidden
|
||||
}
|
||||
|
||||
#page{
|
||||
padding:0px !important;
|
||||
overflow-y:hidden;
|
||||
}
|
||||
</Style>
|
||||
{% endblock %}
|
||||
|
||||
{% block appmenu %}
|
||||
<ul class="nav navbar-top-links navbar-left">
|
||||
{% for page in pagesadmin %}
|
||||
{% set forcereload=true %}
|
||||
{% if page.pagecategory.id==1 %}
|
||||
{% set forcereload=page.toreload %}
|
||||
{% endif %}
|
||||
|
||||
{% set usage="portal" %}
|
||||
{% if loop.first %} {% set usage="accueil" %} {%endif %}
|
||||
|
||||
{% if entity.id is defined and page.id==entity.id %}
|
||||
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer">
|
||||
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','{{usage}}','{{forcereload}}',null,'{{page.name}}')">
|
||||
{% block menuapp %}
|
||||
<ul id="menupagesportal" class="navbar-nav">
|
||||
{% for page in pagesportal %}
|
||||
<li id="menupage-{{page.id}}" class="menupage nav-item" style="cursor:pointer">
|
||||
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{page.pagecategory.id==1?page.toreload:true}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-faw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
</a>
|
||||
</li>
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% elseif loop.first %}
|
||||
<i class="fas fa-home fa-fw"></i>
|
||||
{% else %}
|
||||
<li id="menupage-{{page.id}}">
|
||||
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{forcereload}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-faw"></i>
|
||||
<i class="fas fa-door-closed fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<ul id="pagesuser" class="nav navbar-top-links navbar-left">
|
||||
<ul id="menupagesuser" class="navbar-nav">
|
||||
{% for page in pagesuser %}
|
||||
{% set forcereload=true %}
|
||||
{% if page.pagecategory.id==1 %}
|
||||
{% set forcereload=page.toreload %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if entity.id is defined and page.id==entity.id %}
|
||||
<li id="menupage-{{page.id}}" class="active" style="cursor:pointer">
|
||||
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}',null,'{{page.name}}')">
|
||||
<li id="menupage-{{page.id}}" class="menupage nav-item" style="cursor:pointer">
|
||||
<a onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{page.pagecategory.id==1?page.toreload:true}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-faw"></i>
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-user fa-fw"></i>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
{{ page.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li id="menupage-{{page.id}}">
|
||||
<a style="cursor:pointer" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{forcereload}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-faw"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-user fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% if groups|length > 0 and groups|length < 10 %}
|
||||
<ul id="menupagesgroup" class="navbar-nav">
|
||||
{% for groupshared in groups %}
|
||||
{% if groupshared.pagesshared|length > 1 %}
|
||||
<li id="menugroup-{{groupshared.id}}" class="nav-item menupage dropdown">
|
||||
<a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fa fa-users fa-fw"></i>
|
||||
{{ groupshared.label }}
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
{% endif %}
|
||||
|
||||
{% for page in groupshared.pagesshared %}
|
||||
{% if groupshared.pagesshared|length == 1 %}
|
||||
<li id="menupage-{{page.id}}" class="menupage nav-item">
|
||||
{%endif%}
|
||||
|
||||
<a id="menupage-{{page.id}}" style="cursor:pointer" class="{{ groupshared.pagesshared|length > 1 ? "menupage dropdown-item" : "" }}" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{page.pagecategory.id==1?page.toreload:true}}',{{groupshared.id}},'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-users fa-fw"></i>
|
||||
{% endif %}
|
||||
|
||||
{{ page.name }}
|
||||
</a>
|
||||
|
||||
{% if groupshared.pagesshared|length == 1 %}
|
||||
</li>
|
||||
{%endif%}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% if groupshared.pagesshared|length > 1 %}
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<ul id="pagesgroup" class="nav navbar-top-links navbar-left">
|
||||
|
||||
<!-- On regroupe l'ensemble des pages si plus de x groupes -->
|
||||
{% set nbgroupregrouped=5 %}
|
||||
{% if groupsshared|length > nbgroupregrouped %}
|
||||
<ul id="pagesshared" class="nav navbar-top-links navbar-left">
|
||||
<li>
|
||||
<a id="menugrouppages" style='cursor:pointer' data-toggle='modal' data-target='#selgrouppages'>
|
||||
<i class="fa fa-users fa-fw"></i> Mes Groupes
|
||||
<span class="caret"></span>
|
||||
{% elseif groups|length > 0 %}
|
||||
<ul id="menupagesgroup" class="navbar-nav">
|
||||
<li class="nav-item" style="cursor:pointer">
|
||||
<a onclick="$('#selmenu').modal('show');">
|
||||
<i class="fa fa-users fa-fw"></i> Mes Groupes
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{%else%}
|
||||
{% set inmenu=true %}
|
||||
{{ include('@CadolesPortal/Page/menugroupe.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div id="menupageaction">
|
||||
<a id="menuname" style="cursor:pointer;font-size:80%" href=""></a>
|
||||
{% endblock %}
|
||||
|
||||
{% block menuuser %}
|
||||
{% if canadd %}
|
||||
<a id="menusubmit" style="cursor:pointer" onclick="submitPage()" title='Ajouter une page'><i class='fa fa-plus fa-fw'></i></a>
|
||||
{% endif %}
|
||||
<a id="menuupdate" style="cursor:pointer;display:none" onclick="updatePage()" title='Modifier une page'><i class='fa fa-file fa-fw'></i></a>
|
||||
<a id="menushare" style="cursor:pointer;display:none" onclick="sharePage()" title='Partager une page'><i class='fa fa-share-alt fa-fw'></i></a>
|
||||
<a id="menudelete" style="cursor:pointer;display:none" onclick="deletePage()" title='Supprimer une page'><i class='fa fa-trash fa-fw'></i></a>
|
||||
<a id="menubookmark" style="cursor:pointer;display:none" onclick="bookmarkPage()" title="Faire de cette page votre page d'accueil"><i class='fa fa-heart fa-fw'></i></a>
|
||||
<a id="menuwidgetuser" style='cursor:pointer;display:none' data-toggle='modal' data-target='#selwidgetuser' title='Ajouter un widget'><i class='fa fa-cubes fa-fw'></i></a>
|
||||
<a id="menuwidgetgroup" style='cursor:pointer;display:none' data-toggle='modal' data-target='#selwidgetgroup' title='Ajouter un widget'><i class='fa fa-cubes fa-fw'></i></a>
|
||||
</div>
|
||||
<a id="menuwidgetuser" class="btn-modal" style='cursor:pointer' data-modalid='selwidgetuser' title='Ajouter un widget'><i class='fa fa-cubes fa-fw'></i></a></li>
|
||||
<a id="menuwidgetgroup" class="btn-modal" style='cursor:pointer' data-modalid='selwidgetgroup' title='Ajouter un widget'><i class='fa fa-cubes fa-fw'></i></a></li>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div id="pagecontainer"></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
<div id="pagecontainer" style="margin: 0px -30px;"></div>
|
||||
|
||||
|
||||
{% if activate_widonlyoffice %}
|
||||
<iframe src="{{ widonlyoffice_url }}/sso/login" style="display:none"></iframe>
|
||||
{% endif %}
|
||||
|
||||
{% set nbgroupregrouped=5 %}
|
||||
{% if groupsshared|length > nbgroupregrouped %}
|
||||
<div id="selgrouppages" class="modal fade bs-item-modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div id="selmenu" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-xl" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">MES GROUPES</h4>
|
||||
<div id="mymodalheader" class="modal-header">
|
||||
<h4 class="modal-title">SELECTIONNER UNE PAGE</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<a onclick="$('#selgrouppages').modal('hide');" class="btn btn-default" style="margin-bottom:15px">
|
||||
Annuler
|
||||
</a>
|
||||
|
||||
{% set inmenu=false %}
|
||||
{{ include('@CadolesPortal/Page/menugroupe.html.twig') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pagesportal" style="display:none">
|
||||
{% for page in pagesportal %}
|
||||
{%if loop.first %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">PAGES PORTAIL</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
{%endif%}
|
||||
|
||||
<div id="selwidgetuser" class="modal fade bs-item-modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<a class="list-group-item" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','portal','{{page.pagecategory.id==1?page.toreload:true}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% elseif loop.first %}
|
||||
<i class="fas fa-home fa-fw"></i>
|
||||
{% else %}
|
||||
<i class="fas fa-door-closed fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
</a>
|
||||
|
||||
{%if loop.last %}
|
||||
</ul></div>
|
||||
{%endif%}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div id="pagesuser" style="display:none">
|
||||
{% for page in pagesuser %}
|
||||
{%if loop.first %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">PAGES PERSONNEL</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
{%endif%}
|
||||
|
||||
<a class="list-group-item" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','user','{{page.pagecategory.id==1?page.toreload:true}}',null,'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% else %}
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
{% endif %}
|
||||
{{ page.name }}
|
||||
</a>
|
||||
|
||||
{%if loop.last %}
|
||||
</ul></div>
|
||||
{%endif%}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div id="pagesgroup">
|
||||
{% for groupshared in groups %}
|
||||
{%if loop.first %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">PAGES GROUPE DE TRAVAIL</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
{%endif%}
|
||||
|
||||
{% for page in groupshared.pagesshared %}
|
||||
<a class="list-group-item" onClick="showPage({{ page.id }},{{ page.pagecategory.id }},'{{ page.canupdate }}','group','{{page.pagecategory.id==1?page.toreload:true}}',{{groupshared.id}},'{{page.name}}')">
|
||||
{% if page.fonticon %}
|
||||
<i class="{{ page.fonticon }} fa-fw"></i>
|
||||
{% else %}
|
||||
<i class="fas fa-users fa-fw"></i>
|
||||
{% endif %}
|
||||
|
||||
{{page.name == groupshared.label ? page.name : groupshared.label~" - "~page.name}}
|
||||
</a>
|
||||
{% endfor %}
|
||||
|
||||
{%if loop.last %}
|
||||
</ul></div>
|
||||
{%endif%}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="selwidgetuser" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-xl" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<div id="mymodalheader" class="modal-header">
|
||||
<h4 class="modal-title">SELECTIONNER UN WIDGET</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="form-group row clearfix">
|
||||
<div class="col-md-12" style="margin-bottom:15px">
|
||||
<a onclick="$('#selwidgetuser').modal('hide');" class="btn btn-default">
|
||||
Annuler
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="dataTable_wrapper col-md-12">
|
||||
<table id="dataTables" class="table table-bordered table-striped table-hover">
|
||||
<table id="dataTablesuser" class="table table-striped table-bordered table-hover" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="100px">#</th>
|
||||
<th>Nom</th>
|
||||
<th class="no-sort">Description</th>
|
||||
<th class="no-sort" width="80px"></th>
|
||||
<th width="100px">Nom</th>
|
||||
<th class="no-sort" width="500px">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
@ -176,8 +221,8 @@
|
|||
{% for widget in widgetsuser %}
|
||||
<tr>
|
||||
<td>
|
||||
<a onClick="selWidget({{ widget.id }})" style="cursor:pointer;">
|
||||
<img id="widgettype-{{ widget.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ widget.icon.label }}" style="padding:2px">
|
||||
<a onClick="selWidget({{ widget.id }},'user')" style="cursor:pointer;">
|
||||
<img id="widgettype-{{ widget.id }}" class="grid-item-img" height="40" src="{{path('app_minio_image',{file:widget.icon.label}) }}" style="padding:2px">
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ widget.name }}</td>
|
||||
|
@ -190,32 +235,22 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="selwidgetgroup" class="modal fade bs-item-modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div id="selwidgetgroup" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-xl" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<div id="mymodalheader" class="modal-header">
|
||||
<h4 class="modal-title">SELECTIONNER UN WIDGET</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="form-group row clearfix">
|
||||
<div class="col-md-12" style="margin-bottom:15px">
|
||||
<a onclick="$('#selwidgetgroup').modal('hide');" class="btn btn-default">
|
||||
Annuler
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="dataTable_wrapper col-md-12">
|
||||
<table id="dataTables" class="table table-bordered table-striped table-hover">
|
||||
<table id="dataTablesgroup" class="table table-striped table-bordered table-hover" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="100px">#</th>
|
||||
<th>Nom</th>
|
||||
<th class="no-sort">Description</th>
|
||||
<th class="no-sort" width="80px"></th>
|
||||
<th width="100px">Nom</th>
|
||||
<th class="no-sort" width="500px">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
@ -223,8 +258,8 @@
|
|||
{% for widget in widgetsgroup %}
|
||||
<tr>
|
||||
<td>
|
||||
<a onClick="selWidget({{ widget.id }})" style="cursor:pointer;">
|
||||
<img id="widgettype-{{ widget.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ widget.icon.label }}" style="padding:2px">
|
||||
<a onClick="selWidget({{ widget.id }},'group')" style="cursor:pointer;">
|
||||
<img id="widgettype-{{ widget.id }}" class="grid-item-img" height="40" src="{{path('app_minio_image',{file:widget.icon.label}) }}" style="padding:2px">
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ widget.name }}</td>
|
||||
|
@ -237,33 +272,17 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{%if app.user %}
|
||||
<a id="refreshcounter" data-event=""></a>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block localexternalscript %}
|
||||
{% if app.user %}
|
||||
<script src="/{{alias}}/bundles/goswebsocket/js/vendor/autobahn.min.js"></script>
|
||||
<script src="/{{alias}}/bundles/goswebsocket/js/gos_web_socket_client.js"></script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
{% block localscript %}
|
||||
<script>
|
||||
var idpage;
|
||||
pagebookmark="{{app.session.get("pagebookmark")}}";
|
||||
|
||||
$('document').ready(function(){
|
||||
{% if gotoroute is empty %}
|
||||
{% for page in pagesadmin %}
|
||||
|
||||
// Afficher la page courrante
|
||||
{% for page in pagesportal %}
|
||||
{% if page.id==entity.id %}
|
||||
{% set usage="portal" %}
|
||||
{% if loop.first %} {% set usage="accueil" %} {%endif %}
|
||||
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','{{usage}}',false,null,'{{page.name}}');
|
||||
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','portal',false,null,'{{page.name}}');
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
@ -273,20 +292,17 @@
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for groupshared in groupsshared %}
|
||||
{% for groupshared in groups %}
|
||||
{% for page in groupshared.pagesshared %}
|
||||
{% if page.id==entity.id %}
|
||||
showPage({{ page.id }}, {{ page.pagecategory.id }},'{{ page.canupdate }}','group',true,{{groupshared.id}},'{{page.name}}');
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
var url="{{ path(gotoroute,{id:gotoid}) }}";
|
||||
showGoto(url);
|
||||
{% endif %}
|
||||
|
||||
|
||||
// Rendre les pages user déplacable
|
||||
$("#pagesuser").sortable({
|
||||
$("#menupagesuser").sortable({
|
||||
axis: "x",
|
||||
forcePlaceholderSize: true,
|
||||
placeholder: "placeholder",
|
||||
|
@ -295,7 +311,7 @@
|
|||
var idpage=$(this).attr('id').replace("menupage-","");
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_portal_'~access~'_page_order') }}",
|
||||
url: "{{ path('app_'~access~'_page_user_order') }}",
|
||||
data: {
|
||||
id:idpage,
|
||||
order:order
|
||||
|
@ -308,47 +324,16 @@
|
|||
// Initialisation du tableau des widgets selectionnable à la création
|
||||
$('.table').DataTable({
|
||||
columnDefs: [ { "targets": 'no-sort', "orderable": false }, { "targets": 0, "className": "text-center" } ],
|
||||
responsive: true,
|
||||
iDisplayLength: 10,
|
||||
order: [[ 1, "asc" ]],
|
||||
scrollX: false,
|
||||
});
|
||||
|
||||
{% if app.user and app.session.get("timerefreshnotif") > 0%}
|
||||
setInterval(function(){
|
||||
loadmsgCounter()
|
||||
}, {{(app.session.get("timerefreshnotif")*1000)}});
|
||||
{% endif %}
|
||||
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
resizeFrame();
|
||||
});
|
||||
|
||||
function resizeFrame() {
|
||||
var iFrame = document.getElementById('frameContent');
|
||||
|
||||
var heightbody = $('html').height();
|
||||
|
||||
if($('.header').length)
|
||||
var heightheader = $('.header').height();
|
||||
else
|
||||
var heightheader = $('.navbarsmall').height();
|
||||
|
||||
if($('#appmenu').css("display")=="none")
|
||||
var heightmenu = 0;
|
||||
else
|
||||
var heightmenu = $('#appmenu').height();
|
||||
|
||||
var heightframe = heightbody-heightheader-heightmenu;
|
||||
|
||||
$(".pageframe").each(function( index ) {
|
||||
$(this).height(heightframe);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Affichage des frames associés aux items de bureau
|
||||
function showFrameitem(id,url,forcereload) {
|
||||
function showItemframe(id,url,forcereload) {
|
||||
$(".pageframereload").remove();
|
||||
$(".pageframe").hide();
|
||||
|
||||
|
@ -366,7 +351,7 @@
|
|||
$("#pagecontainer").append("<iframe onload='this.contentWindow.focus()' id='frameitem-"+id+"' class='pageframe "+myclass+"' src='"+url+"' style='border:none; width:100%'></iframe>");
|
||||
}
|
||||
|
||||
resizeFrame();
|
||||
Resize();
|
||||
}
|
||||
|
||||
// Affichages des pages
|
||||
|
@ -377,20 +362,26 @@
|
|||
// Cacher toutes les pages
|
||||
$(".pageframereload").remove();
|
||||
$(".pageframe").hide();
|
||||
$(".dropdown-menu").hide();
|
||||
|
||||
// Rendre actif le page en cours dans le menu
|
||||
$(".navbar-top-links li").removeClass("active");
|
||||
$(".dropdown-toggle").removeClass("dropdownactive");
|
||||
$(".menupage").removeClass("active");
|
||||
$(".dropdown-toggle").removeClass("active");
|
||||
|
||||
$("#menupage-"+id).addClass("active");
|
||||
$('a[data-group="'+groupid+'"][data-toggle="dropdown"]').addClass("dropdownactive");;
|
||||
$("#menugroup-"+groupid).addClass("active");
|
||||
|
||||
|
||||
if(usage=="portal")
|
||||
var url="{{ path('app_all_page_portal_view',{id:'xx'}) }}";
|
||||
else if(usage=="user")
|
||||
var url="{{ path('app_all_page_user_view',{id:'xx'}) }}";
|
||||
else
|
||||
var url="{{ path('app_all_page_group_view',{id:'xx'}) }}";
|
||||
|
||||
var url="{{ path('cadoles_portal_user_page_view',{id:'xx',usage:'yy','group':'zz'}) }}";
|
||||
url=url.replace('xx',id);
|
||||
url=url.replace('yy',usage);
|
||||
url=url.replace('zz',groupid);
|
||||
|
||||
passurl="{{ path('cadoles_core_home',{id:'xx'}) }}";
|
||||
passurl="{{ path('app_home',{id:'xx'}) }}";
|
||||
passurl=passurl.replace('xx',id);
|
||||
history.pushState('data to be passed', 'Title of the page', passurl);
|
||||
|
||||
|
@ -408,83 +399,36 @@
|
|||
$("#pagecontainer").append("<iframe onload='this.contentWindow.focus()' id='page-"+id+"' data-category='"+catid+"' class='pageframe "+myclass+"' src='"+url+"' style='border:none; width:100%'></iframe>");
|
||||
}
|
||||
|
||||
// Détruire le badge associé car normalement de fait on a lu les notif
|
||||
if(usage=="group") {
|
||||
$("#badge-"+groupid).remove()
|
||||
}
|
||||
|
||||
// Nom de la page
|
||||
console.log(pagename);
|
||||
$("#menuname").html(pagename);
|
||||
|
||||
// Cacher les actions possibles sur la page
|
||||
$("#menuupdate").hide();
|
||||
$("#menushare").hide();
|
||||
$("#menudelete").hide();
|
||||
$("#menubookmark").hide();
|
||||
$("#menuwidgetuser").hide();
|
||||
$("#menuwidgetgroup").hide();
|
||||
|
||||
if(canupdate) {
|
||||
$("#menuupdate").show();
|
||||
$("#menushare").show();
|
||||
$("#menudelete").show();
|
||||
}
|
||||
|
||||
{% if app.user %}
|
||||
|
||||
if(id==pagebookmark) {
|
||||
$("#menubookmark").css("color","red");
|
||||
$("#menubookmark").attr("title","Ne plus faire de cette page votre page d'accueil")
|
||||
}
|
||||
else {
|
||||
$("#menubookmark").css("color","");
|
||||
$("#menubookmark").attr("title","Faire de cette page votre page d'accueil")
|
||||
}
|
||||
|
||||
$("#menubookmark").show();
|
||||
{% endif %}
|
||||
|
||||
// Si page de type widget on affiche la selection des widgets à insérer
|
||||
if($("#page-"+id).data('category')==2&&canupdate) {
|
||||
if(usage=="user") $("#menuwidgetuser").show();
|
||||
if(usage=="group") $("#menuwidgetgroup").show();
|
||||
|
||||
}
|
||||
|
||||
// On resize les frame
|
||||
resizeFrame();
|
||||
|
||||
// Mettre le focus dans la frame
|
||||
//$("#page-"+id).contentWindow.focus();
|
||||
}
|
||||
|
||||
// Affichages des pages
|
||||
function showGoto(url) {
|
||||
$("#pagecontainer").append("<iframe onload='this.contentWindow.focus()' id='goto' class='pageframe pageframereload' src='"+url+"' style='border:none; width:100%'></iframe>");
|
||||
|
||||
// On resize les frame
|
||||
resizeFrame();
|
||||
Resize();
|
||||
}
|
||||
|
||||
|
||||
function submitPage() {
|
||||
var url="{{ path('cadoles_portal_'~access~'_page_submit') }}";
|
||||
var url="{{ path('app_'~access~'_page_user_submit') }}";
|
||||
$(location).attr('href',url);
|
||||
}
|
||||
|
||||
function updatePage() {
|
||||
if($("#page-"+idpage).length) {
|
||||
var url="{{ path('cadoles_portal_'~access~'_page_update',{id:'xx'}) }}";
|
||||
url=url.replace('xx',idpage);
|
||||
|
||||
$(location).attr('href',url);
|
||||
}
|
||||
}
|
||||
|
||||
function sharePage() {
|
||||
if($("#page-"+idpage).length) {
|
||||
var url="{{ path('cadoles_portal_'~access~'_page_share',{id:'xx'}) }}";
|
||||
var url="{{ path('app_'~access~'_page_user_update',{id:'xx'}) }}";
|
||||
url=url.replace('xx',idpage);
|
||||
|
||||
$(location).attr('href',url);
|
||||
|
@ -494,7 +438,7 @@
|
|||
function deletePage() {
|
||||
if($("#page-"+idpage).length) {
|
||||
if (confirm('Êtes-vous sûr de vouloir supprimer ?')) {
|
||||
var url="{{ path('cadoles_portal_'~access~'_page_delete',{id:'xx'}) }}";
|
||||
var url="{{ path('app_'~access~'_page_user_delete',{id:'xx'}) }}";
|
||||
url=url.replace('xx',idpage);
|
||||
|
||||
$(location).attr('href',url);
|
||||
|
@ -502,70 +446,16 @@
|
|||
}
|
||||
}
|
||||
|
||||
function bookmarkPage() {
|
||||
{% if app.user %}
|
||||
if($("#page-"+idpage).length) {
|
||||
if(pagebookmark==idpage)
|
||||
confirmtext="Votre page d'accueil redevient l'accueil général de {{ app.session.get("appname") }}.";
|
||||
else
|
||||
confirmtext="Cette page sera votre page d'acueil à l'ouverture de {{ app.session.get("appname") }}, vous pourrez à tout moment changer de page d'accueil.";
|
||||
|
||||
if (confirm(confirmtext)) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_core_user_preference') }}",
|
||||
data: {
|
||||
id:0,
|
||||
key:'pagebookmark',
|
||||
value: idpage
|
||||
},
|
||||
success: function() {
|
||||
if(pagebookmark==idpage) {
|
||||
pagebookmark="";
|
||||
$("#menubookmark").css("color","");
|
||||
$("#menubookmark").attr("title","Faire de cette page votre page d'accueil")
|
||||
}
|
||||
else {
|
||||
pagebookmark=idpage;
|
||||
$("#menubookmark").css("color","red");
|
||||
$("#menubookmark").attr("title","Ne plus faire de cette page votre page d'accueil")
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
// Création d'un widget selectionné
|
||||
function selWidget(idwidgettype) {
|
||||
var url="{{ path('cadoles_portal_user_pagewidget_widget_sumbit',{idpage:'yy',idwidgettype:'xx'})}}";
|
||||
function selWidget(idwidgettype,usage) {
|
||||
var url="{{ path('app_all_pagewidget_widget_sumbit',{idpage:'yy',idwidgettype:'xx',usage:'zz'})}}";
|
||||
url=url.replace('xx',idwidgettype);
|
||||
url=url.replace('yy',idpage);
|
||||
url=url.replace('zz',usage);
|
||||
|
||||
$(location).attr('href', url);
|
||||
$(".modal").modal("hide");
|
||||
$("#page-"+idpage).attr("src",url);
|
||||
};
|
||||
|
||||
function loadmsgCounter() {
|
||||
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_portal_user_page_ajax_msgcounter') }}",
|
||||
success: function(data) {
|
||||
$.each(data, function(group, counter) {
|
||||
menu=$("a[data-group='"+group+"']");
|
||||
if(menu.length) {
|
||||
if(menu.children(".badge").length) {
|
||||
if(counter==0)
|
||||
menu.remove();
|
||||
else
|
||||
menu.children(".badge").html(counter);
|
||||
}
|
||||
else if(counter>0)
|
||||
menu.append("<span id='badge-"+group+"' class='badge'>"+counter+"</span");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
{{ form_start(form) }}
|
||||
<h1>
|
||||
Partage Page
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
{{ form_widget(form.submit) }}
|
||||
{% if access=="config" %}
|
||||
<a class="btn btn-default" href="{{ path('cadoles_portal_config_page_view',{id:entity.id}) }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-default" href="{{ path('cadoles_core_home',{id:entity.id}) }}">Annuler</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
<div class='alert alert-danger' style='margin: 5px 0px'>
|
||||
<strong>Erreur</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('error') %}
|
||||
{{ flashMessage }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if app.session.flashbag.has('notice') %}
|
||||
<div class='alert alert-info' style='margin: 5px 0px'>
|
||||
<strong>Information</strong><br>
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
{{ flashMessage }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-pencil fa-fw"></i> Informations
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
{{ form_row(form.groups) }}
|
||||
</div>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
{% endblock %}
|
|
@ -1,6 +1,6 @@
|
|||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
{% block body %}
|
||||
{{ form_start(form) }}
|
||||
<h1>
|
||||
Nouvelle Page
|
||||
|
@ -8,10 +8,10 @@
|
|||
|
||||
<p>
|
||||
{{ form_widget(form.submit) }}
|
||||
{% if access=="config" %}
|
||||
<a class="btn btn-default" href="{{ path('cadoles_portal_config_page') }}">Annuler</a>
|
||||
{% if access=="admin" %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_admin_page_portal') }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-default" href="{{ path('cadoles_core_home') }}">Annuler</a>
|
||||
<a class="btn btn-secondary" href="{{ path('app_home') }}">Annuler</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
|
@ -33,12 +33,12 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fa fa-pencil fa-fw"></i> Informations
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="card-body">
|
||||
{{ form_row(form.name) }}
|
||||
{{ form_row(form.pagecategory) }}
|
||||
{{ form_row(form.usage) }}
|
||||
|
@ -46,8 +46,9 @@
|
|||
{{ form_row(form.user) }}
|
||||
{% endif %}
|
||||
|
||||
<div id="pagegroup">{{ form_row(form.page) }}</div>
|
||||
<div id="groupworkgroup">{{ form_row(form.groups) }}</div>
|
||||
{{ form_row(form.page) }}
|
||||
{{ form_row(form.groups) }}
|
||||
|
||||
{{ form_row(form.roworder) }}
|
||||
{{ form_row(form.fonticon) }}
|
||||
{{ form_row(form.maxwidth) }}
|
||||
|
@ -56,7 +57,8 @@
|
|||
{{ form_end(form) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block localjavascript %}
|
||||
{% block localscript %}
|
||||
<script>
|
||||
$('document').ready(function(){
|
||||
hideshow();
|
||||
});
|
||||
|
@ -71,16 +73,16 @@
|
|||
|
||||
function hideshow() {
|
||||
if($("#page_submit_pagecategory").val()==2)
|
||||
$("#pagegroup").show();
|
||||
$("#groupfield_page_submit_page").show();
|
||||
else {
|
||||
$("#pagegroup").hide();
|
||||
$("#groupfield_page_submit_page").hide();
|
||||
}
|
||||
|
||||
if($("#page_submit_usage").val()=="group")
|
||||
$("#groupworkgroup").show();
|
||||
$("#groupfield_page_submit_groups").show();
|
||||
else {
|
||||
$("#groupworkgroup").hide();
|
||||
$("#groupfield_page_submit_groups").hide();
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
|
@ -147,9 +147,11 @@
|
|||
{{ form_start(form) }}
|
||||
<h1 class="page-header">
|
||||
{% if mode=="update" %}
|
||||
Modification Page Widget = {{page.name}}
|
||||
{% elseif mode=="updatetemplate" %}
|
||||
{% if usage=="template" %}
|
||||
Modification Modèle de Page = {{page.name}}
|
||||
{% else %}
|
||||
Modification Page Widget = {{page.name}}
|
||||
{% endif %}
|
||||
{% elseif mode=="submit" %}
|
||||
Création Page Widget
|
||||
{% endif %}
|
||||
|
@ -157,33 +159,21 @@
|
|||
|
||||
<p>
|
||||
{{ form_widget(form.submit) }}
|
||||
{% if access=="config" %}
|
||||
{% if mode=="updatetemplate" %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_config_pagetemplate_view',{id:page.id}) }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_config_page_view',{id:page.id}) }}">Annuler</a>
|
||||
{% endif %}
|
||||
{% if access=="admin" %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_'~access~'_page_'~usage~'_view',{id:page.id}) }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_home',{id:page.id}) }}">Annuler</a>
|
||||
{% endif %}
|
||||
|
||||
{% if mode=="update" %}
|
||||
<a href={{ path('app_'~access~'_page_delete',{'id':page.id}) }}
|
||||
class="btn btn-danger float-right"
|
||||
<a href={{ path('app_'~access~'_page_'~usage~'_delete',{'id':page.id}) }}
|
||||
class="btn btn-danger float-end"
|
||||
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
|
||||
data-confirm="Êtes-vous sûr de vouloir supprimer cette page ?">
|
||||
Supprimer
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if mode=="updatetemplate" %}
|
||||
<a href={{ path('app_'~access~'_pagetemplate_delete',{'id':page.id}) }}
|
||||
class="btn btn-danger pull-right"
|
||||
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
|
||||
data-confirm="Êtes-vous sûr de vouloir supprimer ce modèle ?">
|
||||
Supprimer
|
||||
</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
|
@ -210,26 +200,45 @@
|
|||
{% else %}
|
||||
<div class="col-md-12">
|
||||
{% endif %}
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fa fa-pencil fa-fw"></i> Informations
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
{{ form_row(form.name) }}
|
||||
{{ form_row(form.roworder) }}
|
||||
{{ form_row(form.fonticon) }}
|
||||
{{ form_row(form.maxwidth) }}
|
||||
{{ form_row(form.template) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if form.roles is defined %}
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fa fa-link fa-fw"></i> Affectations
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ form_row(form.user) }}
|
||||
{{ form_row(form.roles) }}
|
||||
{{ form_row(form.groups) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<h3>Template de Mise en Page</h3>
|
||||
<div class="card mt-3">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-table-columns fa-fw"></i> Template de Mise en Page
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="gridtemplate">
|
||||
</div>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,30 +1,10 @@
|
|||
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block localstyle %}
|
||||
{% if look=="list" %}
|
||||
#R1C1:first-child {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.widget-mini .logo {
|
||||
background-color: {{app.session.get('colorbgbodydark')}};
|
||||
padding: 3px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block menuuser %}
|
||||
{% if access=="admin" %}
|
||||
{% set template="" %}
|
||||
{% if mode=="viewtemplate" %}
|
||||
{% set template="template" %}
|
||||
{% endif %}
|
||||
|
||||
<li><a href="{{ path('app_'~access~'_page'~template~'_view', {id:page.id})}}">{{ page.name }}</a></li>
|
||||
<li><a href='{{ path('app_'~access~'_page'~template~'_update', {id:page.id}) }}' title='Modifier la page'><i class='fa fa-cog fa-fw'></i></a></li>
|
||||
<li><a href='{{ path('app_'~access~'_page'~template~'_delete', { id: page.id }) }}' data-method='delete' data-confirm='Êtes-vous sûr de vouloir supprimer ?' title='Supprimer la page'><i class='fa fa-trash fa-fw'></i></a></li>
|
||||
<li><a href='{{ path('app_'~access~'_page_'~usage~'_update', {id:page.id}) }}' title='Modifier la page'><i class='fa fa-cog fa-fw'></i></a></li>
|
||||
<li><a href='{{ path('app_'~access~'_page_'~usage~'_delete', { id: page.id }) }}' data-method='delete' data-confirm='Êtes-vous sûr de vouloir supprimer ?' title='Supprimer la page'><i class='fa fa-trash fa-fw'></i></a></li>
|
||||
<li><a class="btn-modal" style='cursor:pointer' data-modalid='selwidget' title='Ajouter un widget'><i class='fa fa-cubes fa-fw'></i></a></li>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -37,8 +17,8 @@
|
|||
|
||||
<div id="tolocalize" style="display:none">
|
||||
{% for pagewidget in page.pagewidgets %}
|
||||
<a href="{{ url(pagewidget.widget.routeview|replace({'_admin_':'_'~access~'_'}),{id:pagewidget.id,by:mode,usage:usage,group:group,look:look,selwidget:selwidget}) }}"></a>
|
||||
{{ render(url(pagewidget.widget.routeview|replace({'_admin_':'_'~access~'_'}),{id:pagewidget.id,by:mode,usage:usage,group:group,look:look,selwidget:selwidget})) }}
|
||||
<a href="{{ url(pagewidget.widget.routeview|replace({'_admin_':'_'~access~'_'}),{id:pagewidget.id,usage:usage}) }}"></a>
|
||||
{{ render(url(pagewidget.widget.routeview|replace({'_admin_':'_'~access~'_'}),{id:pagewidget.id,usage:usage})) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
@ -84,9 +64,6 @@
|
|||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block localscript %}
|
||||
|
@ -191,7 +168,7 @@
|
|||
// Rendre les widgets déplacable
|
||||
$("#widget-container .mycol").sortable({
|
||||
connectWith: "#widget-container .mycol",
|
||||
handle: '.widgetheader',
|
||||
handle: '.widget-sortable',
|
||||
placeholder: "widget widgetplacehorder",
|
||||
tolerance: "pointer",
|
||||
cursor: "move",
|
||||
|
@ -206,9 +183,6 @@
|
|||
$(".widgetbody").show();
|
||||
$(".colcontainer .mycol").css("border","none");
|
||||
$(".colcontainer .mycol").css("padding-bottom","");
|
||||
|
||||
// Création des grilles d'items
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
},
|
||||
update: updateLocalisation
|
||||
});
|
||||
|
@ -219,19 +193,15 @@
|
|||
//slick();
|
||||
|
||||
// Sur le click des titres de widgets ouvrir / fermer le widget
|
||||
$( ".widgetheader .title" ).click(function() {
|
||||
$( ".widget-header .widget-title" ).click(function() {
|
||||
showhideWidget(this);
|
||||
});
|
||||
$( ".widgetheader .logo" ).click(function() {
|
||||
$( ".widget-header .widget-logo" ).click(function() {
|
||||
showhideWidget(this);
|
||||
});
|
||||
|
||||
// balise h des widget editor
|
||||
$(".widget-editor .widgetbody :header").css("color",$(".widgetbody").css("color"));
|
||||
|
||||
// cacher le loader
|
||||
$("#loader").hide();
|
||||
|
||||
});
|
||||
|
||||
// function slick
|
||||
|
@ -266,7 +236,7 @@
|
|||
function showhideWidget(elem) {
|
||||
widget=$(elem).parent().parent();
|
||||
idwidget= widget.data("id");
|
||||
if(widget.children(".widgetbody").css("display")=='block')
|
||||
if(widget.children(".widget-body").css("display")=='block')
|
||||
value=false;
|
||||
else
|
||||
value=true;
|
||||
|
@ -283,11 +253,7 @@
|
|||
success: function(idbookmark) {
|
||||
// on récupère le parent widget conteneur
|
||||
widget=$(elem).parent().parent();
|
||||
//console.log(widget.children(".widgetbody").css("display"));
|
||||
widget.children(".widgetbody" ).toggle();
|
||||
|
||||
// On recalcule les grilles
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
widget.find(".widget-body" ).toggle();
|
||||
}
|
||||
});
|
||||
{% endif %}
|
||||
|
@ -298,8 +264,10 @@
|
|||
function updateLocalisation() {
|
||||
$('.colcontainer .mycol').each(function(index) {
|
||||
var idloc=$(this).attr('id');
|
||||
console.log(idloc);
|
||||
$(this).children(".widget").each(function(order){
|
||||
var idwidget=$(this).data('id');
|
||||
console.log(idwidget);
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('app_'~access~'_pagewidget_order') }}",
|
||||
|
@ -315,7 +283,7 @@
|
|||
|
||||
// Création d'un widget selectionné
|
||||
function selWidget(idwidgettype) {
|
||||
var url="{{ path('app_'~access~'_pagewidget_widget_sumbit',{idpage:page.id,idwidgettype:'xx','by':mode})}}";
|
||||
var url="{{ path('app_'~access~'_pagewidget_widget_sumbit',{idpage:page.id,idwidgettype:'xx',usage:usage})}}";
|
||||
url=url.replace('xx',idwidgettype);
|
||||
|
||||
$(location).attr('href', url);
|
||||
|
@ -323,8 +291,7 @@
|
|||
|
||||
// Modifciation d'un widget
|
||||
function modWidget(idwidget) {
|
||||
|
||||
var url="{{ path('app_'~access~'_pagewidget_widget_update',{idpage:page.id,idwidget:'xx',group:group,usage:usage,by:mode})}}";
|
||||
var url="{{ path('app_'~access~'_pagewidget_widget_update',{idpage:page.id,idwidget:'xx',usage:usage})}}";
|
||||
url=url.replace('xx',idwidget);
|
||||
url=url.replace(/&/g,"&");
|
||||
|
||||
|
@ -372,19 +339,21 @@
|
|||
|
||||
// Ajout d'un bookmark
|
||||
function addBookmark(idwidget,touser) {
|
||||
var url="{{ path('app_'~access~'_bookmark_submit',{idpage:page.id,idwidget:'xx',touser:'yy',group:group,usage:usage,by:mode})}}";
|
||||
url=url.replace('xx',idwidget);
|
||||
url=url.replace('yy',touser);
|
||||
var url="{{ path('app_'~access~'_bookmark_submit',{idpage:page.id,idwidget:'yy',touser:'zz',usage:usage})}}";
|
||||
url=url.replace('yy',idwidget);
|
||||
url=url.replace('zz',touser);
|
||||
url=url.replace(/&/g,"&");
|
||||
|
||||
$(location).attr('href', url);
|
||||
}
|
||||
|
||||
// Modifciation d'un bookmark
|
||||
function modBookmark(idbookmark) {
|
||||
var url="{{ path('app_'~access~'_bookmark_update',{idpage:page.id,id:'xx',group:group,usage:usage,by:mode})}}";
|
||||
function modBookmark(idbookmark,idwidget,touser) {
|
||||
var url="{{ path('app_'~access~'_bookmark_update',{id:'xx',idpage:page.id,idwidget:'yy',touser:'zz',usage:usage})}}";
|
||||
|
||||
url=url.replace('xx',idbookmark);
|
||||
url=url.replace('yy',idwidget);
|
||||
url=url.replace('zz',touser);
|
||||
url=url.replace(/&/g,"&");
|
||||
|
||||
$(location).attr('href', url);
|
||||
|
@ -396,7 +365,7 @@
|
|||
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('app_all_bookmark_heart') }}",
|
||||
url: "{{ path('app_'~access~'_bookmark_heart') }}",
|
||||
data: {
|
||||
iditem:iditem
|
||||
},
|
||||
|
@ -408,11 +377,13 @@
|
|||
}
|
||||
|
||||
// Supprimer un bookmark
|
||||
function delBookmark(idbookmark) {
|
||||
if (confirm('Êtes-vous sûr de vouloir supprimer cet item ?')) {
|
||||
var url="{{ path('app_'~access~'_bookmark_delete',{idpage:page.id,id:'xx',group:group,usage:usage,by:mode})}}";
|
||||
function delBookmark(idbookmark,idwidget,touser) {
|
||||
if (confirm('Êtes-vous sûr de vouloir supprimer ce favoris ?')) {
|
||||
var url="{{ path('app_'~access~'_bookmark_delete',{id:'xx',idpage:page.id,idwidget:'yy',touser:'zz',usage:usage})}}";
|
||||
|
||||
url=url.replace('xx',idbookmark);
|
||||
url=url.replace('yy',idwidget);
|
||||
url=url.replace('zz',touser);
|
||||
url=url.replace(/&/g,"&");
|
||||
|
||||
$.ajax({
|
||||
|
@ -445,7 +416,7 @@
|
|||
|
||||
// Liste des slides
|
||||
function listSlide(idwidget) {
|
||||
var url="{{ path('app_'~access~'_slide_list',{idpage:page.id,idwidget:'xx',group:group,usage:usage,by:mode})}}";
|
||||
var url="{{ path('app_'~access~'_slide_list',{idpage:page.id,idwidget:'xx',usage:usage})}}";
|
||||
|
||||
url=url.replace('xx',idwidget);
|
||||
url=url.replace(/&/g,"&");
|
||||
|
@ -463,7 +434,7 @@
|
|||
// Affichage des frames associés aux items de bureau
|
||||
function showItemframe(id,url,forcereload) {
|
||||
{% if access=="all" %}
|
||||
window.parent.showItemframe(id,url,forcereload);
|
||||
parent.showItemframe(id,url,forcereload);
|
||||
{% else %}
|
||||
$("#page").hide();
|
||||
$("body").css("overflow-y","hidden");
|
||||
|
@ -555,7 +526,6 @@
|
|||
},
|
||||
success: function() {
|
||||
$("#alert-"+id).remove();
|
||||
var grid = $('.grid').masonry(optiongrid);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</h1>
|
||||
|
||||
<p>
|
||||
<a href="{{ path('app_'~access~'_pagetemplate_submit') }}" class="btn btn-success">Ajouter un Modèle</a>
|
||||
<a href="{{ path('app_'~access~'_template_submit') }}" class="btn btn-success">Ajouter un Modèle</a>
|
||||
</p>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
|
@ -51,7 +51,7 @@
|
|||
order: [[ 1, "asc" ]],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ path('app_'~access~'_pagetemplate_tablelist') }}",
|
||||
ajax: "{{ path('app_'~access~'_page_template_tablelist') }}",
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<p>
|
||||
{{ form_widget(form.submit) }}
|
||||
<a class="btn btn-default" href="{{ path('app_'~access~'_pagetemplate') }}">Annuler</a>
|
||||
<a class="btn btn-secondary" href="{{ path('app_'~access~'_page_template') }}">Annuler</a>
|
||||
</p>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
|
|
|
@ -1,238 +0,0 @@
|
|||
{% macro libmonth(month) %}
|
||||
{% if month==1 %} Janvier
|
||||
{% elseif month==2 %} Février
|
||||
{% elseif month==3 %} Mars
|
||||
{% elseif month==4 %} Avril
|
||||
{% elseif month==5 %} Mai
|
||||
{% elseif month==6 %} Juin
|
||||
{% elseif month==7 %} Juillet
|
||||
{% elseif month==8 %} Août
|
||||
{% elseif month==9 %} Septembre
|
||||
{% elseif month==10 %} Octobre
|
||||
{% elseif month==11 %} Novembre
|
||||
{% elseif month==12 %} Décembre
|
||||
{%endif%}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro libday(day) %}
|
||||
{% if day==1 %} Lundi
|
||||
{% elseif day==2 %} Mardi
|
||||
{% elseif day==3 %} Mercredi
|
||||
{% elseif day==4 %} Jeudi
|
||||
{% elseif day==5 %} Vendredi
|
||||
{% elseif day==6 %} Samedi
|
||||
{% elseif day==7 %} Dimanche
|
||||
{%endif%}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro mycolormain() %}
|
||||
{% set color = app.session.get('color') %}{% set colormain = app.session.get('colorbgbodydark') %}{{ colormain }}
|
||||
{% endmacro %}`
|
||||
|
||||
{% macro mystylewidget(entity) %}
|
||||
{% set colorheaderback = entity.colorheaderback %}
|
||||
{% if colorheaderback is null %}
|
||||
{% set colorheaderback = "var(--colorfttitledark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidget = "" %}
|
||||
{% if not entity.autoajust %}
|
||||
{% set stylewidget = stylewidget ~ "height: " ~ entity.height ~ "px; " %}
|
||||
{% endif %}
|
||||
|
||||
{% if entity.border %}
|
||||
{% set stylewidget = stylewidget ~ "border:1px solid " ~ colorheaderback ~ "; " %}
|
||||
{% endif %}
|
||||
|
||||
{{ stylewidget }}
|
||||
{% endmacro %}`
|
||||
|
||||
|
||||
{% macro mystylewidgetmenu(entity) %}
|
||||
{% set color = app.session.get('color') %}
|
||||
|
||||
{% set colorheaderfont = entity.colorheaderfont %}
|
||||
{% if colorheaderfont is null %}
|
||||
{% set colorheaderfont = "var(--colorfttitledark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetmenu = "" %}
|
||||
{% set stylewidgetmenu = stylewidgetmenu ~ "color: " ~ colorheaderfont ~ "; " %}
|
||||
{% set stylewidgetmenu = stylewidgetmenu ~ "cursor: pointer; " %}
|
||||
|
||||
{{ stylewidgetmenu }}
|
||||
{% endmacro %}`
|
||||
|
||||
|
||||
|
||||
{% macro mystylewidgetheader(entity) %}
|
||||
|
||||
{% set colorheaderback = entity.colorheaderback %}
|
||||
{% if colorheaderback is null %}
|
||||
{% set colorheaderback = "var(--colorbgbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorheaderfont = entity.colorheaderfont %}
|
||||
{% if colorheaderfont is null %}
|
||||
{% set colorheaderfont = "var(--colorfttitledark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetheader = "" %}
|
||||
{% set stylewidgetheader = stylewidgetheader ~ "background-color: " ~ colorheaderback ~ "; " %}
|
||||
{% set stylewidgetheader = stylewidgetheader ~ "color: " ~ colorheaderfont ~ "; " %}
|
||||
|
||||
{{ stylewidgetheader }}
|
||||
{% endmacro %}`
|
||||
|
||||
|
||||
|
||||
|
||||
{% macro mystylewidgetbody(entity) %}
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = "var(--colorbgbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = "var(--colorfttitledark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% if not entity.border %}
|
||||
{% set colorbodyback = "var(--colorbgbodylight)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetbody = "" %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "background-color: " ~ colorbodyback ~ "; " %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "color: " ~ colorbodyfont ~ "; " %}
|
||||
{% if not entity.autoajust %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "height: " ~ (entity.height-50-2) ~ "px; overflow-y: auto;" %}
|
||||
{% endif %}
|
||||
|
||||
{% if entity.border %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "padding:10px;" %}
|
||||
{% endif %}
|
||||
|
||||
{% if not entity.opened %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "display:none;" %}
|
||||
{% endif %}
|
||||
|
||||
{{ stylewidgetbody }}
|
||||
|
||||
{% endmacro %}`
|
||||
|
||||
{% macro mystylewidgetbodyreverse(entity) %}
|
||||
{% set color = app.session.get('color') %}
|
||||
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = app.session.get('colorfttitledark') %}
|
||||
{% endif %}
|
||||
|
||||
{% if colorbodyfont == colorbodyback %}
|
||||
{% if colorbodyfont == app.session.get('colorbgbodydark') %}
|
||||
{% set colorbodyfont=app.session.get('colorfttitledark') %}
|
||||
{% else %}
|
||||
{% set colorbodyfont=app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% set stylewidgetbody = "" %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "background-color: " ~ colorbodyback ~ "; " %}
|
||||
{% set stylewidgetbody = stylewidgetbody ~ "color: " ~ colorbodyfont ~ "; " %}
|
||||
|
||||
|
||||
{{ stylewidgetbody }}
|
||||
|
||||
{% endmacro %}`
|
||||
|
||||
|
||||
|
||||
{% macro mystylewidgetbodyframe(entity) %}
|
||||
{% set color = app.session.get('color') %}
|
||||
|
||||
{% set colorheaderback = entity.colorheaderback %}
|
||||
{% if colorheaderback is null %}
|
||||
{% set colorheaderback = app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorheaderfont = entity.colorheaderfont %}
|
||||
{% if colorheaderfont is null %}
|
||||
{% set colorheaderfont = app.session.get('colorfttitledark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = app.session.get('colorfttitledark') %}
|
||||
{% endif %}
|
||||
|
||||
{% if not entity.border %}
|
||||
{% set colorbodyback = app.session.get('colorbgbodylight') %}
|
||||
{% endif %}
|
||||
|
||||
{% if colorbodyfont == colorbodyback %}
|
||||
{% if colorbodyfont == app.session.get('colorbgbodydark') %}
|
||||
{% set colorbodyfont=app.session.get('colorfttitledark') %}
|
||||
{% else %}
|
||||
{% set colorbodyfont=app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetbodyframe = "" %}
|
||||
{% set stylewidgetbodyframe = stylewidgetbodyframe ~ "background-color: " ~ colorbodyback ~ "; " %}
|
||||
{% set stylewidgetbodyframe = stylewidgetbodyframe ~ "color: " ~ colorbodyfont ~ "; " %}
|
||||
{% if not entity.autoajust %}
|
||||
{% set stylewidgetbodyframe = stylewidgetbodyframe ~ "height: " ~ (entity.height-50-2) ~ "px;" %}
|
||||
{% endif %}
|
||||
|
||||
{{ stylewidgetbodyframe }}
|
||||
|
||||
{% endmacro %}`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% macro mystylewidgetbodyimage(entity) %}
|
||||
{% set color = app.session.get('color') %}
|
||||
|
||||
{% set colorheaderback = entity.colorheaderback %}
|
||||
{% if colorheaderback is null %}
|
||||
{% set colorheaderback = app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorheaderfont = entity.colorheaderfont %}
|
||||
{% if colorheaderfont is null %}
|
||||
{% set colorheaderfont = app.session.get('colorfttitledark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = app.session.get('colorbgbodydark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = app.session.get('colorfttitledark') %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetbodyimage = "" %}
|
||||
{% set stylewidgetbodyimage = stylewidgetbodyimage ~ "background-color: " ~ colorbodyback ~ "; " %}
|
||||
{% set stylewidgetbodyimage = stylewidgetbodyimage ~ "color: " ~ colorbodyfont ~ "; " %}
|
||||
{% if not entity.autoajust %}
|
||||
{% set stylewidgetbodyimage = stylewidgetbodyimage ~ "height: " ~ (entity.height-2) ~ "px; " %}
|
||||
{% endif %}
|
||||
|
||||
{{ stylewidgetbodyimage }}
|
||||
{% endmacro %}`
|
|
@ -12,22 +12,7 @@
|
|||
|
||||
<p>
|
||||
{{ form_widget(form.submit) }}
|
||||
|
||||
{% if access=="admin" %}
|
||||
{% if mode=="update" %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_admin_page_view',{id:idpage}) }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_admin_pagetemplate_view',{id:idpage}) }}">Annuler</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if mode=="update" %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_user_page_view',{id:idpage,usage:usage,group:group}) }}">Annuler</a>
|
||||
{% else %}
|
||||
<a class="btn btn-secondary" href="{{ path('app_home',{id:idpage}) }}">Annuler</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<a class="btn btn-secondary" href="{{ path('app_'~access~'_page_'~usage~'_view',{id:idpage}) }}">Annuler</a>
|
||||
</p>
|
||||
|
||||
{% if app.session.flashbag.has('error') %}
|
||||
|
@ -159,6 +144,7 @@
|
|||
function delIcon() {
|
||||
$("#diviconsel img").remove();
|
||||
$("#diviconsel").append("<img src='{{ path("app_minio_image",{file:entity.widget.icon.label}) }}'>");
|
||||
$("#diviconsel img").attr("height","100px");
|
||||
$("#pagewidget_idicon").val(null);
|
||||
}
|
||||
|
||||
|
@ -173,10 +159,13 @@
|
|||
if($("#pagewidget_viewheader").val()==1) {
|
||||
$("#groupfield_pagewidget_colorheaderback").show();
|
||||
$("#groupfield_pagewidget_colorheaderfont").show();
|
||||
$("#groupfield_pagewidget_opened").show();
|
||||
}
|
||||
else {
|
||||
$("#groupfield_pagewidget_colorheaderback").hide();
|
||||
$("#groupfield_pagewidget_colorheaderfont").hide();
|
||||
$("#groupfield_pagewidget_opened").hide();
|
||||
$("#pagewidget_opened").val(1);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,140 +1,42 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set colormain = constants.mycolormain() %}
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-projalertect" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{% if canupdate or alerts|length>0 %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-alert" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||
{% set widgetname="item" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
{% block widgetbody %}
|
||||
{% for alert in alerts %}
|
||||
<div id="alert-{{ alert.id }}" class="panel list-item" style="background: {{ alert.alertcategory.color ? '#'~alert.alertcategory.color : '#'~colormain }};">
|
||||
<div class="panel-heading" role="tab">
|
||||
{% if loop.first %}
|
||||
<div class="items-list">
|
||||
{% endif %}
|
||||
<div class="item item-list" id="alert-{{alert.id}}" style="color:var(--colorftbodydark); background: {{ alert.alertcategory.color ? alert.alertcategory.color : 'var(--colorbgbodydark)' }};">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<div class="item-link">
|
||||
{% if alert.alertcategory.icon %}
|
||||
<img height="25" src="/{{ alias }}/{{ alert.alertcategory.icon.label }}">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:alert.alertcategory.icon.label}) }}">
|
||||
{% else %}
|
||||
<img height="25" src="/{{ alias }}/uploads/icon/icon_megaphone.png">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_megaphone.png"}) }}">
|
||||
{% endif %}
|
||||
|
||||
{{ alert.title }}
|
||||
<div class="item-title">
|
||||
<h3 >{{ alert.title }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item-action">
|
||||
{% if alert.fghideable and app.user %}
|
||||
<a onClick="hideAlert({{alert.id}})" style="cursor:pointer;" title="Ne plus afficher"><i class="fa fa-eye-slash"></i></a>
|
||||
<a onClick="hideAlert({{alert.id}})" style="cursor:pointer;" title="Ne plus afficher"><i class="fa fa-eye-slash"></i></a>
|
||||
{%endif%}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="widget-ckeditor">{{ alert.content|raw }}</div>
|
||||
<div class="item-description">
|
||||
{{ alert.content|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if not alert.items is empty %}
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% if loop.last %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid clearfix fitWidth" style="width:auto; margin: 0 auto;">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
|
||||
{% for item in alert.items %}
|
||||
<div class="grid-item grid-list">
|
||||
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};">
|
||||
{% if item.protected and not app.user %}
|
||||
{% if mode_auth == "SAML" %}
|
||||
<a href="{{ path('lightsaml_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "CAS" %}
|
||||
<a href="{{ path('cas_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "MYSQL" %}
|
||||
<a href="{{ path('cnous_portal_user_login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
{% if item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
|
||||
{% elseif item.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo" title="{{ item.subtitle|nl2br }}">
|
||||
{% if item.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/{{ item.icon.label }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ item.title }}</h2>
|
||||
<span>{{ item.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="grid-item-body" style="display:none">
|
||||
{{ item.content|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,112 +0,0 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set colormain = constants.mycolormain() %}
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
|
||||
{% if modedesktop==0 %}
|
||||
{% set stylegrid="" %}
|
||||
{% elseif modedesktop==1 %}
|
||||
{% set stylegrid="grid-medium" %}
|
||||
{% elseif modedesktop==2 %}
|
||||
{% set stylegrid="grid-small" %}
|
||||
{% elseif modedesktop==3 %}
|
||||
{% set stylegrid="grid-list" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = "" %}
|
||||
{% if entity.colorbodyfont is not null %}
|
||||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-appexternal" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-appexternal" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||
{% for itemcategory in itemcategorys %}
|
||||
{% set haveitem=false %}
|
||||
|
||||
{% for item in items if item.itemcategory==itemcategory %}
|
||||
|
||||
{% if loop.index ==1 %}
|
||||
{% set haveitem=true %}
|
||||
|
||||
{% if itemcategorys|length > 1 %}
|
||||
<h3 class="grid-title" style="{{ colorbodyfont }}" data-idcategory="{{ itemcategory.id }}">{{ itemcategory.label }}</h3>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer {{ stylegrid }}"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% endif %}
|
||||
|
||||
<div class="grid-item {{ stylegrid }}" data-idcategory="{{ item.itemcategory.id }}" data-iditem="{{ item.id }}">
|
||||
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};">
|
||||
<a class="linktosonde" data-sonde="{{ item.itemcategory.label }}" href="{{ item.url }}" target="_blank">
|
||||
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/{{ item.icon }}">
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ item.title }}</h2>
|
||||
<span>{{ item.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% if haveitem %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
|
@ -1,132 +1,90 @@
|
|||
{% import "Pagewidget/constants.twig" as constants %}
|
||||
|
||||
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
|
||||
{% if modedesktop==0 %}
|
||||
{% set stylegrid="" %}
|
||||
{% elseif modedesktop==1 %}
|
||||
{% set stylegrid="grid-medium" %}
|
||||
{% elseif modedesktop==2 %}
|
||||
{% set stylegrid="grid-small" %}
|
||||
{% elseif modedesktop==3 %}
|
||||
{% set stylegrid="grid-list" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = "" %}
|
||||
{% if entity.colorbodyfont is not null %}
|
||||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-bookmark" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ appAlias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ appAlias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-bookmark" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
{% set widgetname="item" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% block widgetaction %}
|
||||
{% if canadd %}
|
||||
<i class="fa fa-plus fa-fw" title="Ajouter un Favori" onClick="addBookmark({{ entity.id }},false)" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})"></i>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ appAlias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ appAlias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
{% if bookmarks is not empty or canadd %}
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||
<div class="bookmark-container">
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer {{ stylegrid }}"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% block widgetbody %}
|
||||
<div class="items-list">
|
||||
{% for bookmark in bookmarks %}
|
||||
<div class="grid-item {{ stylegrid }}">
|
||||
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : app.session.get('colorbgbodydark') }};">
|
||||
{% if canadd %}
|
||||
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% set havebookmark=true %}
|
||||
{% if bookmark.item %}
|
||||
{% set bookmarktitle = bookmark.item.title %}
|
||||
{% set bookmarksubtitle = bookmark.item.subtitle %}
|
||||
{% set bookmarkbackgroundcolor = bookmark.item.color ? bookmark.item.color : app.session.get('colorbgbodydark')|raw %}
|
||||
{% set bookmarktarget = bookmark.item.target %}
|
||||
{% set bookmarkurl = ( bookmark.item.protected and not app.user ? path("app_login") : bookmark.item.url|replace({'#login#': username}) ) %}
|
||||
{% set bookmarkcontent = bookmark.item.content %}
|
||||
{% set bookmarkicon = (bookmark.item.icon ? bookmark.item.icon.label : "icon/icon_pin.png") %}
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
|
||||
{% set bookmarktitle = bookmark.title %}
|
||||
{% set bookmarksubtitle = bookmark.subtitle %}
|
||||
{% set bookmarkbackgroundcolor = bookmark.color ? bookmark.color : app.session.get('colorbgbodydark')|raw %}
|
||||
{% set bookmarktarget = bookmark.target %}
|
||||
{% set bookmarkurl = bookmark.url|replace({'#login#': username}) %}
|
||||
{% set bookmarkcontent = null %}
|
||||
{% set bookmarkicon = bookmark.icon ? bookmark.icon.label : "icon/icon_pin.png" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo" title="{{ bookmark.subtitle|nl2br }}">
|
||||
{% if bookmark.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ appAlias }}/{{ bookmark.icon.label }}">
|
||||
<div class="item {{itemsize}}" style="background-color: {{ bookmarkbackgroundcolor }};" data-idcategory="bookmark" data-title="{{bookmarktitle|lower}}">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
{% if bookmarktarget == 'frame' %}
|
||||
<a class="item-link" onClick="showItemframe('bookmark{{ bookmark.id }}','{{ bookmarkurl }}')">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ appAlias }}/uploads/icon/icon_pin.png">
|
||||
<a class="item-link" href="{{ bookmarkurl }}" target="{{bookmarktarget }}">
|
||||
{% endif %}
|
||||
</div>
|
||||
<img height="35" src="{{ path('app_minio_image',{file:bookmarkicon}) }}">
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ bookmark.title }}</h2>
|
||||
<span>{{ bookmark.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
<div class="item-title">
|
||||
<h3 >{{ bookmarktitle }}</h3>
|
||||
<div class="item-subtitle">{{ bookmarksubtitle|nl2br }}</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="item-action">
|
||||
{% if canadd %}
|
||||
{% if bookmark.item %}
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},false)"><i class="item-heart fas fa-heart-crack"></i></a>
|
||||
{% else %}
|
||||
<a style="display:none" onClick="modBookmark({{ bookmark.id }},{{ entity.id }},false)"><i class="item-mod fas fa-file"></i></a>
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},false)"><i class="item-trash fas fa-trash"></i></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if bookmarkcontent %}
|
||||
<a style="display:none"><i class="item-info fas fa-circle-info"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item-description hide">{{ bookmarkcontent|raw }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if canadd %}
|
||||
<div class="grid-item {{ stylegrid }}">
|
||||
<div title="Ajouter un Favori" onClick="addBookmark({{ entity.id }},false)" class="grid-item-content" style="background-color: app.session.get('colorbgbodydark')}};cursor:pointer;">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img imageshadow" height="110" src="/{{ appAlias }}/uploads/icon/icon_add.png">
|
||||
<div class="item {{ itemsize }}" style="background-color: var(--colorbgbodydark);" data-idcategory="bookmark">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<a class="item-link" onClick="addBookmark({{ entity.id }},false)">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_add.png"}) }}">
|
||||
<div class="item-title">
|
||||
<h3 >Ajouter</h3>
|
||||
<div class="item-subtitle">Ajouter un Lien</div>
|
||||
</div>
|
||||
<div class="grid-item-title">
|
||||
<h2>Ajouter</h2>
|
||||
</a>
|
||||
<div class="item-action">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,116 +0,0 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set colormain = constants.mycolormain() %}
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
{% set stylewidgetbodyreverse = constants.mystylewidgetbodyreverse(entity) %}
|
||||
|
||||
{% set permgroup = app.session.get('permgroup') %}
|
||||
{% set canadd = false %}
|
||||
{% if is_granted('ROLE_ADMIN') or (is_granted('ROLE_MODO') and (permgroup=="ROLE_MODO" or permgroup=="ROLE_ANIM" or permgroup=="ROLE_USER")) or (is_granted('ROLE_ANIM') and (permgroup=="ROLE_ANIM" or permgroup=="ROLE_USER")) or (is_granted('ROLE_USER') and permgroup=="ROLE_USER") %}
|
||||
{% set canadd = true %}
|
||||
{% endif %}
|
||||
|
||||
{% if mini %}
|
||||
<div class="widget widget-mini widget-group" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-group" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
|
||||
{% if canadd %}
|
||||
<a title="Ajouter un Groupe" href="{{ path('cadoles_core_user_group_submit') }}" target="_top">
|
||||
<i class="fa fa-plus fa-fw" style="{{ stylewidgetmenu }}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}; overflow-x:hidden; ">
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% for group in groups %}
|
||||
<div class="grid-item grid-small" >
|
||||
<div class="grid-item-content" style="background-color:{{ group.color ? "#"~group.color : '#'~colormain }}">
|
||||
<a href="{{path('cadoles_core_home',{id:group.id})}}" target="_top" style="{{ stylewidgetbodyreverse }};">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
{% if group.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}{{ group.icon }}" />
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_users.png" />
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ group.title }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if canadd %}
|
||||
<div class="grid-item grid-small">
|
||||
<div class="grid-item-content" style="{{ stylewidgetbodyreverse }};">
|
||||
<a title="Ajouter un Groupe" href="{{path('cadoles_core_user_group_submit')}}" target="_top" style="{{ stylewidgetbodyreverse }};">
|
||||
<div class="item-link clearfix">
|
||||
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img imageshadow" height="110" src="/{{ alias }}/uploads/icon/icon_add.png" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>Ajouter un Groupe</h2>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
|
@ -1,60 +1,64 @@
|
|||
{% extends 'widget.html.twig' %}
|
||||
{% set widgetname="info" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% block widgetmenu %}
|
||||
{% endblock %}
|
||||
|
||||
{% block widgetbody %}
|
||||
<div style="text-align: center;">
|
||||
{{ description | raw }}
|
||||
</div>
|
||||
|
||||
{%if usage=="group" %}
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-verysmall"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
|
||||
{% if canadd==true %}
|
||||
<div class="grid-item grid-verysmall" style="{{stylewidgetitem}}">
|
||||
<div class="grid-item-content">
|
||||
<a href="{{path('app_user_group_users',{'id':id,'idreturn':idpage})}}" target="_top">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img imageshadow" height="110" src="/{{ appAlias }}/uploads/icon/icon_add.png" />
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>Ajouter un membre</h2>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% for group in entity.page.groups %}
|
||||
{% if entity.page.groups|length > 1 or not widgethaveheader %}
|
||||
<h3 style="margin:0px; font-size:25px; {{colorbodyfont}} ">{{group.label}}</h3>
|
||||
{% endif %}
|
||||
|
||||
{% for member in members %}
|
||||
<div class="grid-item grid-verysmall" style="{{stylewidgetitem}}">
|
||||
<div class="grid-item-content">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img onclick="seeUser({{member.user.id}})" src="/{{ appAlias }}/uploads/avatar/{{ member.user.avatar}}" class="grid-item-img avatar" height="110" style="cursor:pointer;">
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>
|
||||
{{ member.user.lastname }} {{ member.user.firstname }}
|
||||
{% if group.description %}
|
||||
{{ group.description|nl2br}}
|
||||
<br><br>
|
||||
{% endif %}
|
||||
<div class="items-list">
|
||||
{% for member in group.users %}
|
||||
<div class="item item-verysmall" style="background-color: var(--colorbgbodydark);">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<div class="item-link">
|
||||
<img src="{{ path('app_minio_image',{file:"avatar/"~member.user.avatar}) }}" class="avatar" style="height:40px; width: 40px;">
|
||||
<div class="item-title">
|
||||
<h3>{{ member.user.lastname }} {{ member.user.firstname }}</h3>
|
||||
<div class="item-subtitle" style="display:block !important">
|
||||
{% if member.rolegroup==100 %}
|
||||
<br><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i>
|
||||
<i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i>
|
||||
{% elseif member.rolegroup==90 %}
|
||||
<br><i class="fa fa-star"></i><i class="fa fa-star"></i>
|
||||
<i class="fa fa-star"></i><i class="fa fa-star"></i>
|
||||
{% elseif member.rolegroup==50 %}
|
||||
<br><i class="fa fa-star"></i>
|
||||
<i class="fa fa-star"></i>
|
||||
{% endif %}
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{%if canadd %}
|
||||
<div class="item item-verysmall" style="background-color: var(--colorbgbodydark);">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<a class="item-link" href="{{path("app_all_group_users",{id:group.id,idpage:entity.page.id,usage:usage})}}" target="_top">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_add.png"}) }}">
|
||||
<div class="item-title">
|
||||
<h3 >Ajouter</h3>
|
||||
<div class="item-subtitle">Ajouter un Utilisateur</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if entity.page.groups|length == 0 and entity.page.user %}
|
||||
<center>
|
||||
<img src="{{ path('app_minio_image',{file:"avatar/"~entity.page.user.avatar}) }}" class="avatar" style="height:128px; width: 128px; margin-bottom:15px">
|
||||
</center>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,119 +1,25 @@
|
|||
<style>
|
||||
.widget{
|
||||
margin-bottom:30px;
|
||||
}
|
||||
.widget-bordered {
|
||||
border:1px solid;
|
||||
}
|
||||
.widget-menu {
|
||||
float: right;
|
||||
color: #fff;
|
||||
margin: 10px 5px 0px 0px;
|
||||
display:none;
|
||||
}
|
||||
.widget-menu i {
|
||||
cursor:pointer;
|
||||
}
|
||||
.widget-header {
|
||||
padding:10px;
|
||||
font-family: var(--fonttitle);
|
||||
}
|
||||
.widget-logo {
|
||||
height:30px;
|
||||
margin-right:5px;
|
||||
}
|
||||
.widget-body {
|
||||
padding: 5px 0px 0px 0px;
|
||||
}
|
||||
.widget-bordered .widget-body {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.cat-list {
|
||||
color: var(--colorfttitledark);
|
||||
background-color: var(--colorbgbodydark);
|
||||
padding: 5px 10px;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
{% set widgethaveheader=entity.viewheader %}
|
||||
{% set widgetname="item" %}
|
||||
{%if widgethaveheader %}
|
||||
{% set widgetstyle=(entity.colorheaderback ? "border-color:"~entity.colorheaderback~";" : "border-color:var(--colorbgbodydark);") %}
|
||||
{% set widgetstylemenu=(entity.colorheaderback ? "background-color:"~entity.colorheaderback~";" : "background-color:var(--colorbgbodydark);")~(entity.colorheaderfont ? "color:"~entity.colorheaderfont~";" : "color:var(--colorfttitledark);") %}
|
||||
{%else%}
|
||||
{% set widgetstyle=(entity.colorbodyback ? "border-color:"~entity.colorbodyback~";" : "border-color:var(--colorbgbodydark);") %}
|
||||
{% set widgetstylemenu="background-color:var(--colorbgbodydark); color: var(--colorfttitledark); padding:10px; border-radius: 5px;" %}
|
||||
{%endif%}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% set widgetstyleheader=(entity.colorheaderback ? "background-color:"~entity.colorheaderback~";" : "background-color:var(--colorbgbodydark);")~(entity.colorheaderfont ? "color:"~entity.colorheaderfont~";" : "color:var(--colorfttitledark);") %}
|
||||
{% set widgetstylebody=(entity.colorbodyback ? "background-color:"~entity.colorbodyback~";" : "background-color:var(--colorbgbodylight);")~(entity.colorbodyfont ? "color:"~entity.colorbodyfont~";" : "color:var(--colorfttitlelight);") %}
|
||||
{% set widgeicon= entity.icon ? path('app_minio_image',{file:entity.icon.label}) : path('app_minio_image',{file:"icon/icon_pin.png"}) %}
|
||||
|
||||
{% if modedesktop==0 %}
|
||||
{% set itemsize="item-verysmall" %}
|
||||
{% elseif modedesktop==1 %}
|
||||
{% set itemsize="item-small" %}
|
||||
{% elseif modedesktop==2 %}
|
||||
{% set itemsize="item-medium" %}
|
||||
{% elseif modedesktop==3 %}
|
||||
{% set itemsize="item-large" %}
|
||||
{% elseif modedesktop==4 %}
|
||||
{% set itemsize="item-list" %}
|
||||
{% endif %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% set colorbodyfont = "" %}
|
||||
{% if entity.colorbodyfont is not null %}
|
||||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="widget widget-{{widgetname}} {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} " data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ widgetstyle }}" height="{{ entity.height }}px">
|
||||
<div class="widget-menu" style="{{ widgetstylemenu }}">
|
||||
{% block widgetaction %}
|
||||
{% if canadd %}
|
||||
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})"></i>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" ></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})"></i>
|
||||
{% endif %}
|
||||
|
||||
{% if canadd and access!="admin"%}
|
||||
<i class="fa fa-plus fa-fw" title="Ajouter un Favori" onClick="addBookmark({{ entity.id }},true)" ></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{%if widgethaveheader %}
|
||||
<div class="widget-header" style="{{ widgetstyleheader }}">
|
||||
<img class="widget-logo" src="{{widgeicon}}" />
|
||||
<span class="widget-title">{{ entity.name }}</span>
|
||||
</div>
|
||||
{%endif%}
|
||||
|
||||
<div class="widget-body" style="{{ widgetstylebody }};">
|
||||
{% block widgetbody %}
|
||||
{% set havemenu=false %}
|
||||
{% set havebookmark=false %}
|
||||
|
||||
{% if menu and withbookmark!= 2 and bookmarks is not empty and itemcategorys|length > 1 %}
|
||||
{% if menu and withbookmark!= 2 and (canadd or bookmarks is not empty or itemcategorys|length > 1) %}
|
||||
{% set havemenu=true %}
|
||||
<div style="margin-bottom: 5px;">
|
||||
{% if menuall %}
|
||||
<div class="cat-list" onClick="showItemCat({{ entity.id}},'all')">Tout</div>
|
||||
{% endif %}
|
||||
|
||||
{% if bookmarks is not empty %}
|
||||
<div class="cat-list" onClick="showItemCat({{ entity.id}},'fav')"><i class="fa fa-heart"></i></div>
|
||||
{% if bookmarks is not empty or canadd %}
|
||||
<div class="cat-list" onClick="showItemCat({{ entity.id}},'bookmark')"><i class="fa fa-heart"></i></div>
|
||||
{% endif %}
|
||||
|
||||
{% for itemcategory in itemcategorys %}
|
||||
|
@ -133,10 +39,10 @@
|
|||
{% endif %}
|
||||
|
||||
{% if (bookmarks is not empty or canadd ) and (withbookmark==0 or withbookmark==2) %}
|
||||
{% if withbookmark==0 and itemcategorys|length > 1 %}
|
||||
{% if withbookmark==0 or itemcategorys|length > 1 %}
|
||||
<h3 class="itemcategory-title {{not havemenu ? "mt-1" : "mt-3"}} mb-0" style="{{ entity.colorbodyfont ? "color:"~entity.colorbodyfont~";" : "color:var(--colorfttitlelight);"}}" data-idcategory="bookmark">Favoris</h3>
|
||||
{% endif %}
|
||||
<div class="items-list" style="margin-top:-5px">
|
||||
<div class="items-list">
|
||||
{% for bookmark in bookmarks %}
|
||||
{% set havebookmark=true %}
|
||||
{% if bookmark.item %}
|
||||
|
@ -153,7 +59,7 @@
|
|||
{% set bookmarkbackgroundcolor = bookmark.color ? bookmark.color : app.session.get('colorbgbodydark')|raw %}
|
||||
{% set bookmarktarget = bookmark.target %}
|
||||
{% set bookmarkurl = bookmark.url|replace({'#login#': username}) %}
|
||||
{% set bookmarkcontent = bookmark.content %}
|
||||
{% set bookmarkcontent = null %}
|
||||
{% set bookmarkicon = bookmark.icon ? bookmark.icon.label : "icon/icon_pin.png" %}
|
||||
{% endif %}
|
||||
|
||||
|
@ -174,6 +80,15 @@
|
|||
</a>
|
||||
|
||||
<div class="item-action">
|
||||
{% if canadd %}
|
||||
{% if bookmark.item %}
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-heart fas fa-heart-crack"></i></a>
|
||||
{% else %}
|
||||
<a style="display:none" onClick="modBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-mod fas fa-file"></i></a>
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-trash fas fa-trash"></i></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if bookmarkcontent %}
|
||||
<a style="display:none"><i class="item-info fas fa-circle-info"></i></a>
|
||||
{% endif %}
|
||||
|
@ -206,8 +121,8 @@
|
|||
{% endif %}
|
||||
|
||||
{% for itemcategory in itemcategorys %}
|
||||
{% if itemcategorys|length > 1 or havebookmark %} <h3 class="itemcategory-title {{loop.first and not havemenu ? "mt-1" : "mt-3"}} mb-0" style="{{ entity.colorbodyfont ? "color:"~entity.colorbodyfont~";" : "color:var(--colorfttitlelight);"}}" data-idcategory="{{itemcategory.id}}">{{itemcategory.label}}</h3> {% endif %}
|
||||
<div class="items-list" style="margin-top:-5px">
|
||||
{% if itemcategorys|length > 1 or havebookmark or canadd %} <h3 class="itemcategory-title {{loop.first and not havemenu and not havebookmark ? "mt-1" : "mt-3"}} mb-0" style="{{ entity.colorbodyfont ? "color:"~entity.colorbodyfont~";" : "color:var(--colorfttitlelight);"}}" data-idcategory="{{itemcategory.id}}">{{itemcategory.label}}</h3> {% endif %}
|
||||
<div class="items-list">
|
||||
{% for item in items %}
|
||||
{% if item.itemcategory==itemcategory %}
|
||||
<div class="item {{itemsize}}" style="background-color: {{ item.color ? item.color : "var(--colorbgbodydark)" }};" data-idcategory="{{item.itemcategory.id}}" data-title="{{item.title|lower}}">
|
||||
|
@ -238,7 +153,7 @@
|
|||
|
||||
<div class="item-action">
|
||||
{% if canadd %}
|
||||
<a style="display:none" onClick="heartBookmark({{ item.id }})"><i class="item-heart fa fa-heart"></i></a></a>
|
||||
<a style="display:none" onClick="heartBookmark({{ item.id }})"><i class="item-heart fa fa-heart"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if item.content %}
|
||||
|
@ -254,10 +169,6 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
|
|
@ -1,249 +1,131 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
{% set widgetname="item" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set colormain = constants.mycolormain() %}
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
|
||||
|
||||
{% if modedesktop==0 %}
|
||||
{% set stylegrid="" %}
|
||||
{% elseif modedesktop==1 %}
|
||||
{% set stylegrid="grid-medium" %}
|
||||
{% elseif modedesktop==2 %}
|
||||
{% set stylegrid="grid-small" %}
|
||||
{% elseif modedesktop==3 %}
|
||||
{% set stylegrid="grid-list" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = "" %}
|
||||
{% if entity.colorbodyfont is not null %}
|
||||
{% set colorbodyfont = "color: #" ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-itemessential" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-itemessential" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% block widgetaction %}
|
||||
{% if canadd %}
|
||||
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fas fa-text-height" title="Changer taille des items" onClick="changeWidget({{ entity.id }},'modedesktop',{{modedesktop}})"></i>
|
||||
{% endif %}
|
||||
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
|
||||
{% if canadd and access!="config"%}
|
||||
<a title="Ajouter une Application" href="{{ path('cadoles_portal_user_page_application') }}">
|
||||
<i class="fa fa-plus fa-fw" style="{{ stylewidgetmenu }}"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
{% if canadd or bookmarks is not empty or items is not empty %}
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer {{ stylegrid }}"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
|
||||
{% block widgetbody %}
|
||||
<div class="items-list">
|
||||
{% for bookmark in bookmarks %}
|
||||
{% set havebookmark=true %}
|
||||
{% if bookmark.item %}
|
||||
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
|
||||
<div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
|
||||
{% if bookmark.item.content %}
|
||||
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
|
||||
{% set bookmarktitle = bookmark.item.title %}
|
||||
{% set bookmarksubtitle = bookmark.item.subtitle %}
|
||||
{% set bookmarkbackgroundcolor = bookmark.item.color ? bookmark.item.color : app.session.get('colorbgbodydark')|raw %}
|
||||
{% set bookmarktarget = bookmark.item.target %}
|
||||
{% set bookmarkurl = ( bookmark.item.protected and not app.user ? path("app_login") : bookmark.item.url|replace({'#login#': username}) ) %}
|
||||
{% set bookmarkcontent = bookmark.item.content %}
|
||||
{% set bookmarkicon = (bookmark.item.icon ? bookmark.item.icon.label : "icon/icon_pin.png") %}
|
||||
{% else %}
|
||||
{% set bookmarktitle = bookmark.title %}
|
||||
{% set bookmarksubtitle = bookmark.subtitle %}
|
||||
{% set bookmarkbackgroundcolor = bookmark.color ? bookmark.color : app.session.get('colorbgbodydark')|raw %}
|
||||
{% set bookmarktarget = bookmark.target %}
|
||||
{% set bookmarkurl = bookmark.url|replace({'#login#': username}) %}
|
||||
{% set bookmarkcontent = null %}
|
||||
{% set bookmarkicon = bookmark.icon ? bookmark.icon.label : "icon/icon_pin.png" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="item {{itemsize}}" style="background-color: {{ bookmarkbackgroundcolor }};" data-idcategory="bookmark" data-title="{{bookmarktitle|lower}}">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
{% if bookmarktarget == 'frame' %}
|
||||
<a class="item-link" onClick="showItemframe('bookmark{{ bookmark.id }}','{{ bookmarkurl }}')">
|
||||
{% else %}
|
||||
<a class="item-link" href="{{ bookmarkurl }}" target="{{bookmarktarget }}">
|
||||
{% endif %}
|
||||
<img height="35" src="{{ path('app_minio_image',{file:bookmarkicon}) }}">
|
||||
|
||||
<div class="item-title">
|
||||
<h3 >{{ bookmarktitle }}</h3>
|
||||
<div class="item-subtitle">{{ bookmarksubtitle|nl2br }}</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="item-action">
|
||||
{% if canadd %}
|
||||
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer des favoris"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if bookmark.item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.item.id }}','{{ bookmark.item.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.item.target }}{% endif %}">
|
||||
{% if bookmark.item %}
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-heart fas fa-heart-crack"></i></a>
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.item.title }}" href="{{ bookmark.item.url|replace({'#login#': username}) }}" target="{{ bookmark.item.target }}">
|
||||
<a style="display:none" onClick="modBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-mod fas fa-file"></i></a>
|
||||
<a style="display:none" onClick="delBookmark({{ bookmark.id }},{{ entity.id }},true)"><i class="item-trash fas fa-trash"></i></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo" title="{{ bookmark.item.subtitle|nl2br }}">
|
||||
{% if bookmark.item.icon %}
|
||||
<img class="grid-item-img" src="/{{ alias }}/{{ bookmark.item.icon.label }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ bookmark.item.title }}</h2>
|
||||
<span>{{ bookmark.item.subtitle|nl2br }}</span>
|
||||
{% if not bookmark.item.badgeurl is empty %}
|
||||
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
|
||||
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};"></div>
|
||||
</div>
|
||||
{% if bookmarkcontent %}
|
||||
<a style="display:none"><i class="item-info fas fa-circle-info"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="grid-item-body" style="display:none">
|
||||
{{ bookmark.item.content|raw }}
|
||||
<div class="item-description hide">{{ bookmarkcontent|raw }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{%else%}
|
||||
<div class="grid-item {{ stylegrid }}">
|
||||
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};">
|
||||
<a style="cursor:pointer" onClick="modBookmark({{ bookmark.id }})" class="item-update"><i style="color: #FFF" class="fa fa-file" title="Modifier le favori"></i></a>
|
||||
<a style="cursor:pointer" onClick="delBookmark({{ bookmark.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-trash" title="Supprimer le favori"></i></a>
|
||||
|
||||
{% if bookmark.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" style="cursor:pointer" onClick="showFrameitem('bookmark{{ bookmark.id }}','{{ bookmark.url|replace({'#login#': username}) }}')">
|
||||
{% elseif bookmark.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ bookmark.target }}{% endif %}">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ bookmark.title }}" href="{{ bookmark.url|replace({'#login#': username}) }}" target="{{ bookmark.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo" title="{{ bookmark.subtitle|nl2br }}">
|
||||
{% if bookmark.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/{{ bookmark.icon.label }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ bookmark.title }}</h2>
|
||||
<span>{{ bookmark.subtitle|nl2br }}</<span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{%endif%}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% for item in items %}
|
||||
<div class="grid-item {{ stylegrid }}" data-idcategory="{{ item.itemcategory.id }}" data-iditem="{{ item.id }}">
|
||||
<div class="grid-item-content" style="background-color: {{ item.color ? "#"~item.color : '#'~colormain }};">
|
||||
{% if item.content %}
|
||||
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
|
||||
{% endif %}
|
||||
{% if canadd %}
|
||||
<a style="cursor:pointer" onClick="heartBookmark({{ item.id }})" class="item-heart"><i style="color: #FFF" class="fa fa-heart" title="Ajouter aux favoris"></i></a>
|
||||
{% endif %}
|
||||
|
||||
<div class="item {{itemsize}}" style="background-color: {{ item.color ? item.color : "var(--colorbgbodydark)" }};" data-idcategory="{{item.itemcategory.id}}" data-title="{{item.title|lower}}">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
{% set url=item.url|replace({'#login#': username}) %}
|
||||
{% if item.protected and not app.user %}
|
||||
{% if mode_auth == "SAML" %}
|
||||
<a href="{{ path('lightsaml_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "CAS" %}
|
||||
<a href="{{ path('cas_sp.login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% elseif mode_auth == "MYSQL" %}
|
||||
<a href="{{ path('cnous_portal_user_login') }}" {% if access=="user" %}target="_top"{% endif %}>
|
||||
{% set url=path('app_login') %}
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
{% if item.target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" style="cursor:pointer" onClick="showFrameitem({{ item.id }},'{{ item.url|replace({'#login#': username}) }}')">
|
||||
{% elseif item.target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ item.target }}{% endif %}">
|
||||
<a class="item-link" onClick="showItemframe({{ item.id }},'{{ url }}')">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ item.title }}" href="{{ item.url|replace({'#login#': username}) }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
<a class="item-link" href="{{ url }}" target="{{ item.target }}">
|
||||
{% endif %}
|
||||
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo" title="{{ item.subtitle|nl2br }}">
|
||||
{% if item.icon %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/{{ item.icon.label }}">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:item.icon.label}) }}">
|
||||
{% else %}
|
||||
<img class="grid-item-img" height="110" src="/{{ alias }}/uploads/icon/icon_pin.png">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_pin.png"}) }}">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="grid-item-title">
|
||||
<h2>{{ item.title }}</h2>
|
||||
<span>{{ item.subtitle|nl2br }}</span>
|
||||
{% if not item.badgeurl is empty %}
|
||||
<div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
|
||||
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #ffffff; color: {{ item.color ? "#"~item.color : '#'~colormain }};"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="item-title">
|
||||
<h3 >{{ item.title }}</h3>
|
||||
<div class="item-subtitle">{{ item.subtitle|nl2br }}</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="grid-item-body" style="display:none">
|
||||
{{ item.content|raw }}
|
||||
<div class="item-action">
|
||||
{% if canadd %}
|
||||
<a style="display:none" onClick="heartBookmark({{ item.id }})"><i class="item-heart fa fa-heart"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if item.content %}
|
||||
<a style="display:none"><i class="item-info fas fa-circle-info"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item-description hide">{{ item.content|raw }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% if canadd %}
|
||||
<div class="grid-item {{ stylegrid }}">
|
||||
<div class="grid-item-content" style="background-color: #{{colormain}};cursor:pointer;">
|
||||
<a title="Ajouter une Application" href="{{ path('cadoles_portal_user_page_application') }}">
|
||||
<div class="item-link clearfix">
|
||||
<div class="grid-item-logo">
|
||||
<img class="grid-item-img imageshadow" height="110" src="/{{ alias }}/uploads/icon/icon_add.png">
|
||||
</div>
|
||||
<div class="grid-item-title">
|
||||
<h2>Ajouter</h2>
|
||||
<span>Ajouter une Application</<span>
|
||||
</div>
|
||||
<div class="item {{ itemsize }}" style="background-color: var(--colorbgbodydark);" data-idcategory="bookmark">
|
||||
<div class="item-container">
|
||||
<div class="item-content">
|
||||
<a class="item-link" href="{{path("app_all_page_application")}}">
|
||||
<img height="35" src="{{ path('app_minio_image',{file:"icon/icon_add.png"}) }}">
|
||||
<div class="item-title">
|
||||
<h3 >Voir Plus</h3>
|
||||
<div class="item-subtitle">Voir toutes les Applications</div>
|
||||
</div>
|
||||
</a>
|
||||
<div class="item-action">
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% set onlyheader=true %}
|
||||
{% extends 'widget.html.twig' %}
|
||||
{% set widgetname="link" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% block widgetheader %}
|
||||
{% block widgetbody %}
|
||||
{% set url=url|replace({'#login#': username}) %}
|
||||
{% if target == 'frame' %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{stylewidgetitem}}; font-family: var(--fonttitle); cursor:pointer;" onClick="showFrameitem('link{{ entity.id }}','{{ url|replace({'#login#': username}) }}')">
|
||||
{% elseif target == "_self" %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{stylewidgetitem}}; font-family: var(--fonttitle); cursor:pointer;" href="{{ url|replace({'#login#': username}) }}" target="{% if access=="user" %}_top{% else %}{{ target }}{% endif %}">
|
||||
<a class="item-link" onClick="showItemframe(link{{ entity.id }}','{{ url }}')">
|
||||
{% else %}
|
||||
<a class="linktosonde" data-sonde="{{ entity.name }}" style="{{stylewidgetitem}}; font-family: var(--fonttitle); cursor:pointer;" href="{{ url|replace({'#login#': username}) }}" target="{{ target }}">
|
||||
{% endif %}
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ appAlias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||
{% else %}
|
||||
<img src="/{{ appAlias }}/uploads/icon/icon_pin.png" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||
<a class="item-link" href="{{ url }}" target="{{ target }}">
|
||||
{% endif %}
|
||||
|
||||
<div style="text-align: center;">{{ entity.name }}</div>
|
||||
{% if entity.icon %}
|
||||
<img src="{{ path('app_minio_image',{file:entity.icon.label}) }}" style="max-width: 90%; width:128px; height: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||
{% else %}
|
||||
<img src=""{{ path('app_minio_image',{file:"icon/icon_pin.png"}) }}" style="max-width: 90%; width:128px; height: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="text-center mt-3 pb-1" style="font-size: 22px; font-family: var(--fonttitle); {{colorbodyfont}} !important">{{ entity.name }}</div>
|
||||
</a>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbody = constants.mystylewidgetbody(entity) %}
|
||||
{% set stylewidgetbodyreverse = constants.mystylewidgetbodyreverse(entity) %}
|
||||
{% set stylewidgetbodyframe = constants.mystylewidgetbodyframe(entity) %}
|
||||
|
||||
{% set color = app.session.get('color') %}
|
||||
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = color['main'] %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if entity.border and colorbodyfont is null %}
|
||||
{% set colorbodyfont = color['fontcolorhover'] %}
|
||||
{% endif %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = color['main'] %}
|
||||
{% endif %}
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-onlydoc" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-onlydoc" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||
|
||||
<iframe id="frame-{{directory}}" src="{{ path("cadoles_portal_"~access~"_frame_only",{'directory':directory,'defaultview':view}) }}" data-color="#{{colorbodyfont}}" style="{{ stylewidgetbodyframe }}" class="{% if not entity.autoajust %}notframeajust {% endif %}"></iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
|
@ -1,86 +1,11 @@
|
|||
{% set theme = app.session.get('theme') %}
|
||||
{% if theme is not empty %}
|
||||
{{ include('@Theme/'~theme~'/function.html.twig') }}
|
||||
{% endif %}
|
||||
|
||||
{% import "@CadolesPortal/Pagewidget/constants.twig" as constants %}
|
||||
|
||||
{% set stylewidget = constants.mystylewidget(entity) %}
|
||||
{% set stylewidgetmenu = constants.mystylewidgetmenu(entity) %}
|
||||
{% set stylewidgetheader = constants.mystylewidgetheader(entity) %}
|
||||
{% set stylewidgetbodyframe = constants.mystylewidgetbodyframe(entity) %}
|
||||
{% set stylewidgetbodyimage = constants.mystylewidgetbodyimage(entity) %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{%if mini %}
|
||||
<div class="widget widget-mini widget-project" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" title="{{ entity.name }}"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo" title="{{ entity.name }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widget {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} widget-url" data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ stylewidget }}" height="{{ entity.height }}px">
|
||||
<div class="widgetmenu">
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
{% if look=="list" %}
|
||||
<i class="glyphicon glyphicon-resize-small" title="Réduire le Widget" onClick="smallWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% else %}
|
||||
<i class="glyphicon glyphicon-resize-full" title="Agrandir le Widget" onClick="bigWidget({{ entity.id }})" style="{{ stylewidgetmenu }}"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% set widgetname="url" %}
|
||||
{% extends 'Pagewidget/widget.twig' %}
|
||||
|
||||
{% block widgetbody %}
|
||||
{% if imagemedia %}
|
||||
{% if entity.autoajust %}
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
||||
<img src="{{ url|replace({'#login#': username}) }}" width="100%" >
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="widgetheader" style="{{ stylewidgetbodyimage }} width:100%; background-image: url({{ url|replace({'#login#': username}) }}); background-size:cover; background-position:center;")></div>
|
||||
<iframe src="{{ url|replace({'#login#': username}) }}" class="{% if entity.autoajust %}frameajust {% endif %}" style="width:100%"></iframe>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||
{% if entity.icon %}
|
||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||
{% else %}
|
||||
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ entity.name }}</span>
|
||||
</div>
|
||||
|
||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
||||
{% set minheight="" %}
|
||||
{%if look=="list" %}
|
||||
{% set minheight="min-height:1300px;" %}
|
||||
{% endif %}
|
||||
<iframe src="{{ url|replace({'#login#': username}) }}" class="{% if entity.autoajust %}frameajust {% endif %}" style="{{ stylewidgetbodyframe }} {{minheight}}"></iframe>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
{% set widgethaveheader=entity.viewheader %}
|
||||
{%if widgethaveheader %}
|
||||
{% set widgetstyle=(entity.colorheaderback ? "border-color:"~entity.colorheaderback~";" : "border-color:var(--colorbgbodydark);") %}
|
||||
{% set widgetstylemenu=(entity.colorheaderback ? "background-color:"~entity.colorheaderback~";" : "background-color:var(--colorbgbodydark);")~(entity.colorheaderfont ? "color:"~entity.colorheaderfont~";" : "color:var(--colorfttitledark);") %}
|
||||
{%else%}
|
||||
{% set widgetstyle=(entity.colorbodyback ? "border-color:"~entity.colorbodyback~";" : "border-color:var(--colorbgbodydark);") %}
|
||||
{% set widgetstylemenu="margin:-26px 0px 0px 0px; padding: 1px 10px; background-color:var(--colorbgbodydark); color: var(--colorfttitledark); border-radius: 5px;" %}
|
||||
{%endif%}
|
||||
|
||||
{% set widgetstyleheader=(entity.colorheaderback ? "background-color:"~entity.colorheaderback~";" : "background-color:var(--colorbgbodydark);")~(entity.colorheaderfont ? "color:"~entity.colorheaderfont~";" : "color:var(--colorfttitledark);") %}
|
||||
{% set widgetstylebody=(entity.colorbodyback ? "background-color:"~entity.colorbodyback~";" : "background-color:var(--colorbgbodylight);")~(entity.colorbodyfont ? "color:"~entity.colorbodyfont~";" : "color:var(--colorfttitlelight);")~(entity.isopened ? "display:block;" : "display:none;")~(widgetname=="url" ? "padding:0px;" : "")~(not widgethaveheader and not entity.border ? "padding-top: 0px" : "")~(entity.autoajust ? "" : "height:"~entity.height~"px;") %}
|
||||
{% set widgeicon= entity.icon ? path('app_minio_image',{file:entity.icon.label}) : path('app_minio_image',{file:"icon/icon_pin.png"}) %}
|
||||
|
||||
{% if modedesktop is defined %}
|
||||
{% if modedesktop==0 %}
|
||||
{% set itemsize="item-verysmall" %}
|
||||
{% elseif modedesktop==1 %}
|
||||
{% set itemsize="item-small" %}
|
||||
{% elseif modedesktop==2 %}
|
||||
{% set itemsize="item-medium" %}
|
||||
{% elseif modedesktop==3 %}
|
||||
{% set itemsize="item-large" %}
|
||||
{% elseif modedesktop==4 %}
|
||||
{% set itemsize="item-list" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if app.user %}
|
||||
{% set username = app.user.username %}
|
||||
{% else %}
|
||||
{% set username = "" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = "color: var(--colorfttitlelight)" %}
|
||||
{% if entity.colorbodyfont is not null %}
|
||||
{% set colorbodyfont = "color: " ~ entity.colorbodyfont %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="widget widget-{{widgetname}} {%if entity.border %} widget-bordered {%else%} widget-notbordered {%endif%} " data-id="{{ entity.id }}" loc="{{ entity.loc }}" style="{{ widgetstyle }}">
|
||||
<div class="widget-menu" style="{{ widgetstylemenu }}">
|
||||
{% if canupdate and not widgethaveheader %}
|
||||
<i class="widget-sortable fas fa-up-down-left-right" title="Déplacer le widget"></i>
|
||||
{% endif %}
|
||||
|
||||
{% block widgetaction %}
|
||||
{% endblock %}
|
||||
|
||||
{% if canupdate %}
|
||||
<i class="fa fa-trash fa-fw" title="Supprimer le Widget" onClick="delWidget({{ entity.id }})" ></i>
|
||||
<i class="fa fa-file fa-fw" title="Modifier le Widget" onClick="modWidget({{ entity.id }})"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{%if widgethaveheader %}
|
||||
<div class="widget-header widget-sortable" style="{{ widgetstyleheader }}">
|
||||
<img class="widget-logo" src="{{widgeicon}}" />
|
||||
<span class="widget-title">{{ entity.name }}</span>
|
||||
</div>
|
||||
{%endif%}
|
||||
|
||||
<div class="widget-body" style="{{ widgetstylebody }};">
|
||||
{% block widgetbody %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
{%if not mini %}
|
||||
{# Récupération des couleurs #}
|
||||
{% set colorheaderback = entity.colorheaderback %}
|
||||
{% if colorheaderback is null %}
|
||||
{% set colorheaderback = "var(--colorbgbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorheaderfont = entity.colorheaderfont %}
|
||||
{% if colorheaderfont is null %}
|
||||
{% set colorheaderfont = "var(--colorftbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyback = entity.colorbodyback %}
|
||||
{% if colorbodyback is null %}
|
||||
{% set colorbodyback = "var(--colorbgbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% set colorbodyfont = entity.colorbodyfont %}
|
||||
{% if colorbodyfont is null %}
|
||||
{% set colorbodyfont = "var(--colorftbodydark)" %}
|
||||
{% endif %}
|
||||
|
||||
{% if not entity.border %}
|
||||
{% set colorbodyback = "var(--colorbgbodylight)" %}
|
||||
{% set colorbodyfont = "var(--colorftbodylight)" %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{# Definition style widget #}
|
||||
{% set widgetheight = "" %}
|
||||
{% if not entity.autoajust %}
|
||||
{% set widgetheight = "height: " ~ entity.height ~ "px; " %}
|
||||
{% endif %}
|
||||
|
||||
{# Definition style widgetheader #}
|
||||
{% set widgetheaderback = "background-color:"~colorheaderback~";" %}
|
||||
{% set widgetheaderfont = "color:"~colorheaderfont~";" %}
|
||||
|
||||
{% set widgetheaderborder = "" %}
|
||||
{% if entity.border %}
|
||||
{% set widgetheaderborder = "border:1px solid " ~ colorheaderback ~ "; " %}
|
||||
{% endif %}
|
||||
|
||||
{# Definition style widgetbody #}
|
||||
{% set widgetbodyback = "background-color:"~colorbodyback~";" %}
|
||||
{% set widgetbodyfont = "color:"~colorbodyfont~";" %}
|
||||
|
||||
{% set widgetbodyborder = "" %}
|
||||
{% if entity.border %}
|
||||
{% set widgetbodyborder = "border:1px solid " ~ colorbodyback ~ "; " %}
|
||||
{% endif %}
|
||||
|
||||
{% set widgetbodypadding = "" %}
|
||||
{% if entity.border %}
|
||||
{% set widgetbodypadding = "padding:10px;" %}
|
||||
{% endif %}
|
||||
|
||||
{% set widgetbodydisplay = "" %}
|
||||
{% if not entity.opened %}
|
||||
{% set widgetbodydisplay = "display:none;" %}
|
||||
{% endif %}
|
||||
|
||||
{% set stylewidgetbodyreverse = widgetheaderback~widgetheaderfont %}
|
||||
|
||||
|
||||
<div
|
||||
class="widget widget-info"
|
||||
data-id="{{ entity.id }}"
|
||||
loc="{{ entity.loc }}"
|
||||
style="{{ widgetheight }}">
|
||||
<div
|
||||
class="widgetmenu"
|
||||
style="{{widgetheaderback}}{{widgetheaderfont}}">
|
||||
{{ widgetmenu|raw }}
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="widgetheader"
|
||||
style="{{widgetheaderback}}{{widgetheaderfont}}{{widgetheaderborder}}">
|
||||
{% if icon %}
|
||||
<img src="/{{ appAlias }}{{ icon }}" class="logo" style="border-radius:100%"/>
|
||||
{% else %}
|
||||
<img src="{{icondefault}}" class="logo"/>
|
||||
{% endif %}
|
||||
<span class="title">{{ title }}</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="widgetbody"
|
||||
style="{{widgetbodyback}}{{widgetbodyfont}}{{widgetbodyborder}}{{widgetbodypadding}}{{widgetbodydisplay}}">
|
||||
{% endif %}
|
|
@ -1,13 +0,0 @@
|
|||
{%if mini %}
|
||||
<div class="widget widget-mini widget-info" data-id="{{ entity.id }}" loc="{{ entity.loc }}">
|
||||
<div class="widgetheader">
|
||||
<a style="cursor:pointer" onClick="bigWidget({{entity.id}})">
|
||||
{% if icon %}
|
||||
<img src="/{{ appAlias }}{{ icon }}" class="logo" title="{{ title }}"/>
|
||||
{% else %}
|
||||
<img src="{{icondefault}}" class="logo" title="{{ title }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
|
@ -87,19 +87,17 @@
|
|||
<img src="{{ path('app_minio_image',{file:"logo/"~app.session.get("logodark")}) }}">
|
||||
</a>
|
||||
|
||||
<a class="nav-link ps-0" href="{{ path('app_home')}}">
|
||||
{% if not app.session.get("fgheader") %}
|
||||
{{app.session.get("appname")}}
|
||||
{% else %}
|
||||
Accueil
|
||||
{% endif %}
|
||||
</a>
|
||||
<a class="nav-toogle" style="display:none" ><i class="fa-solid fa-bars"></i></a>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<div id="menuapp">
|
||||
<ul class="nav">
|
||||
{% block menuapp %}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="me-auto"> </div>
|
||||
|
||||
<ul id="menuuser" class="nav navbar-right pe-3">
|
||||
{% block menuuser %}
|
||||
{% endblock %}
|
||||
|
@ -108,7 +106,7 @@
|
|||
<ul id="menulink" class="nav navbar-right pe-3" style="display:none;">
|
||||
{% if app.user %}
|
||||
<a href="{{path("app_all_user")}}">
|
||||
<img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:25px; height:25px; margin-top:-3px; margin-right:3px;">
|
||||
<img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:20px; height:20px; margin-top:-3px; margin-right:3px;">
|
||||
</a>
|
||||
|
||||
{% if is_granted('ROLE_ADMIN') %}
|
||||
|
@ -202,6 +200,47 @@
|
|||
});
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
// Resize
|
||||
function Resize() {
|
||||
if($("#header").is(":visible")){
|
||||
$(".navbar-logo").hide();
|
||||
$("#menulink").hide();
|
||||
$("#header").hide();
|
||||
}
|
||||
else {
|
||||
$(".navbar-logo").show();
|
||||
$("#menulink").show();
|
||||
$("#header").show();
|
||||
}
|
||||
|
||||
$("main").css("height",$(window).height()-$(".header").height());
|
||||
$("#page").css("height",$(window).height()-$(".header").height());
|
||||
$(".pageframe").css("height",$(window).height()-$(".header").height());
|
||||
$("#sidebar").css("min-height",$("body").height()-$(".header").height());
|
||||
|
||||
if($("#menuapp").is(":visible") && $(".nav-toogle").is(":visible")){
|
||||
$("#menuapp").css("height",$(window).height()-$(".header").height());
|
||||
}
|
||||
else {
|
||||
$("#menuapp").css("height","auto");
|
||||
}
|
||||
|
||||
$(".widget-body").find("iframe").each(function(){
|
||||
if($(this).hasClass("frameajust")) {
|
||||
try {
|
||||
height=this.contentWindow.document.body.scrollHeight;
|
||||
|
||||
} catch (error) {
|
||||
height=0;
|
||||
}
|
||||
if(height==0) height=630;
|
||||
this.style.height = height+"px";
|
||||
}
|
||||
else
|
||||
$(this).height($(this).parent().height());
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
{% block localscript %}{% endblock %}
|
||||
|
|
|
@ -2998,6 +2998,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
|
|||
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
|
||||
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
|
||||
|
||||
iframe-resizer@^4.3.2:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.3.2.tgz#42dd88345d18b9e377b6044dddb98c664ab0ce6b"
|
||||
integrity sha512-gOWo2hmdPjMQsQ+zTKbses08mDfDEMh4NneGQNP4qwePYujY1lguqP6gnbeJkf154gojWlBhIltlgnMfYjGHWA==
|
||||
|
||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||
|
|
Loading…
Reference in New Issue