svg
|
@ -16,6 +16,7 @@ TRUNCATE TABLE sidebar;
|
|||
INSERT IGNORE INTO `sidebar` (`id`, `parent_id`, `roworder`, `label`, `path`, `fonticon`, `permission`, `appactivate`) VALUES
|
||||
(1000, NULL, 1000, 'CONFIGURATION', '', 'fa-gear', 'ROLE_ADMIN', ''),
|
||||
(1010, 1000, 1010, 'Générale', 'cadoles_core_config_commun', 'fa-table', 'ROLE_ADMIN', ''),
|
||||
(1020, 1000, 1020, 'Thème', 'cadoles_core_config_theme', 'fa-paint-brush', 'ROLE_ADMIN,ROLE_MODO', ''),
|
||||
(1200, NULL, 1200, 'ORGANISATION', NULL, 'fa-sitemap', 'ROLE_ADMIN,ROLE_MODO', ''),
|
||||
(1210, 1200, 1210, 'Listes Blanche', 'cadoles_core_config_whitelist', 'fa-tasks', 'ROLE_ADMIN', ''),
|
||||
(1220, 1200, 1220, 'Niveau 01', 'cadoles_core_config_niveau01', 'fa-building', 'ROLE_ADMIN', ''),
|
||||
|
@ -28,8 +29,9 @@ INSERT IGNORE INTO `sidebar` (`id`, `parent_id`, `roworder`, `label`, `path`, `f
|
|||
(1520, 1500, 1520, 'Items', 'cadoles_portal_config_item', 'fa-desktop', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1530, 1500, 1530, 'Annonces', 'cadoles_portal_config_alert', 'fa-bell', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1540, 1500, 1540, 'Calendriers', 'cadoles_portal_config_calendar', 'fa-calendar', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1550, 1500, 1550, 'Chartes', 'cadoles_portal_config_notice', 'fa-info', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1560, 1500, 1560, 'Icônes', 'cadoles_portal_config_icon', 'fa-bug', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1550, 1500, 1550, 'Blogs', 'cadoles_portal_config_blog', 'fa-paper-plane', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1560, 1500, 1560, 'Chartes', 'cadoles_portal_config_notice', 'fa-info', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
(1570, 1500, 1570, 'Icônes', 'cadoles_portal_config_icon', 'fa-bug', 'ROLE_ADMIN,ROLE_MODO', 'portal_activate'),
|
||||
|
||||
|
||||
(7000, NULL, 7000, 'CRON', NULL, 'fa-bolt', 'ROLE_ADMIN', 'cron_activate'),
|
||||
|
@ -44,6 +46,8 @@ INSERT IGNORE INTO `config` (`order`, `visible`, `changeable`, `required`, `type
|
|||
('002', 1, 0, 1, 'string', 'version', '1.0.0', '', 'Version de l\'application'),
|
||||
('003', 1, 1, 0, 'string', 'subappname', 'Portail', '', 'Le sous titre de votre site'),
|
||||
('004', 1, 1, 1, 'logo', 'logo', 'uploads/logo/logo.png', '', 'Le logo de votre site'),
|
||||
('005', 1, 0, 0, 'theme', 'theme', '', '', 'Le theme de votre site'),
|
||||
|
||||
|
||||
('040', 1, 1, 1, 'boolean', 'fgheader', '1', '', 'Utiliser une image en bannière du site'),
|
||||
('041', 1, 1, 1, 'header', 'header', 'uploads/header/header.png', 'fgheader', 'Image en bannière du site'),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% set logo = "" %}
|
||||
|
||||
{% set fgheader = "" %}
|
||||
{% set header = "header.png" %}
|
||||
{% set header = "" %}
|
||||
{% set heightheader = "" %}
|
||||
|
||||
{% set colormain = "2e3131" %}
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
name: Black
|
||||
author: Arnaud Fornerot
|
||||
version: 1.0
|
||||
forcelogo: false
|
||||
forceheader: true
|
||||
color: 1e824c
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -1,7 +1,7 @@
|
|||
{% set logo = "" %}
|
||||
|
||||
{% set fgheader = "" %}
|
||||
{% set header = "header.jpg" %}
|
||||
{% set header = "" %}
|
||||
{% set heightheader = "" %}
|
||||
|
||||
{% set colormain = "6c7a89" %}
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
name: Gray
|
||||
author: Arnaud Fornerot
|
||||
version: 1.0
|
||||
forcelogo: false
|
||||
forceheader: true
|
||||
color: 6c7a89
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -1,7 +1,7 @@
|
|||
{% set logo = "" %}
|
||||
|
||||
{% set fgheader = "" %}
|
||||
{% set header = "header.png" %}
|
||||
{% set header = "" %}
|
||||
{% set heightheader = "" %}
|
||||
|
||||
{% set colormain = "1e824c" %}
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
name: Green
|
||||
author: Arnaud Fornerot
|
||||
version: 1.0
|
||||
forcelogo: false
|
||||
forceheader: true
|
||||
color: 1e824c
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -1,7 +1,7 @@
|
|||
{% set logo = "" %}
|
||||
|
||||
{% set fgheader = "" %}
|
||||
{% set header = "header.jpg" %}
|
||||
{% set header = "" %}
|
||||
{% set heightheader = "" %}
|
||||
|
||||
{% set colormain = "f15a22" %}
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
name: Orange
|
||||
author: Arnaud Fornerot
|
||||
version: 1.0
|
||||
forcelogo: false
|
||||
forceheader: true
|
||||
color: 6c7a89
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -1,7 +1,7 @@
|
|||
{% set logo = "" %}
|
||||
|
||||
{% set fgheader = "" %}
|
||||
{% set header = "header.jpg" %}
|
||||
{% set header = "" %}
|
||||
{% set heightheader = "" %}
|
||||
|
||||
{% set colormain = "f7ca18" %}
|
||||
|
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -67,7 +67,9 @@
|
|||
.herotitle img,
|
||||
.avatar,
|
||||
.pagemenu,
|
||||
.grid .grid-preview .caption
|
||||
.grid .grid-preview .caption,
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
|
||||
.btn-primary
|
||||
{
|
||||
background-color: #{{ color['main'] }}
|
||||
}
|
||||
|
@ -82,7 +84,9 @@
|
|||
.pagination>.active>span:focus,
|
||||
.pagination>.active>span:hover,
|
||||
.page-header,
|
||||
.sidebar ul li
|
||||
.sidebar ul li,
|
||||
.bootstrap-switch.bootstrap-switch-focused,
|
||||
.btn-primary
|
||||
{
|
||||
border-color: #{{ color['main'] }}
|
||||
}
|
||||
|
@ -101,16 +105,26 @@
|
|||
.nav>li>a:hover,
|
||||
.nav .open>a, .nav .open>a:focus, .nav .open>a:hover,
|
||||
.sidebar ul li a.active,
|
||||
.navbar-top-links li.active a
|
||||
.navbar-top-links li.active a,
|
||||
.nav-pills>li.active>a,
|
||||
.nav-pills>li.active>a:hover,
|
||||
.nav-pills>li.active>a:focus,
|
||||
.btn-primary:hover
|
||||
{
|
||||
background-color: #{{ color['dark'] }}
|
||||
}
|
||||
|
||||
.btn-primary:hover
|
||||
{
|
||||
border-color: #{{ color['dark'] }}
|
||||
}
|
||||
|
||||
.form-control:focus
|
||||
{
|
||||
border-color: #{{ color['light'] }}
|
||||
}
|
||||
.form-control:focus {
|
||||
.form-control:focus,
|
||||
.bootstrap-switch.bootstrap-switch-focused {
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba({{ color['lightrgb']['r'] }},{{ color['lightrgb']['g'] }},{{ color['lightrgb']['b'] }},.6)
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
</button>
|
||||
|
||||
<a class="navbar-brand" href="{{ path("cadoles_core_home") }}">
|
||||
<img id="logo" src="/{{ alias }}/logo) }}">
|
||||
<img id="logo" src="/{{ alias }}/{{ logo }}">
|
||||
{{ app.session.get('appname') }}
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -30,9 +30,11 @@ class BlogController extends Controller
|
|||
public function ajaxlistAction(Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
/*
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
*/
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
|
@ -41,17 +43,30 @@ class BlogController extends Controller
|
|||
$search= $request->query->get('search');
|
||||
$draw= $request->query->get('draw');
|
||||
$order= $request->query->get('order');
|
||||
$alluser= $request->query->get('alluser');
|
||||
|
||||
// Query de base
|
||||
$qbase=$em->createQueryBuilder()
|
||||
->from($this->labelentity,'table')
|
||||
->leftJoin('CadolesCoreBundle:User','user','WITH','table.user=user')
|
||||
->addSelect('user');
|
||||
$qbase=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
$qsearch=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
|
||||
$qsearch=$qbase->where('table.id LIKE :value')
|
||||
->orWhere('table.name LIKE :value')
|
||||
->orWhere('user.username LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
if($alluser=="false") {
|
||||
$qbase->where("table.user is null");
|
||||
$qsearch->where("table.user is null");
|
||||
}
|
||||
else {
|
||||
$qbase->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
|
||||
$qsearch->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
}
|
||||
|
||||
if($alluser=="false")
|
||||
$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();
|
||||
|
@ -75,12 +90,13 @@ class BlogController extends Controller
|
|||
$qb->orderBy('table.name',$order[0]["dir"]);
|
||||
break;
|
||||
case 2 :
|
||||
$qb->orderBy('user.username',$order[0]["dir"]);
|
||||
if($alluser=="true") $qb->orderBy('user.username',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
||||
// Execution de la requete d'affichage
|
||||
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
|
||||
//dump($qsearch->getQuery()->getSql());
|
||||
|
||||
// Construction du tableau de retour
|
||||
$output = array(
|
||||
|
|
|
@ -40,17 +40,30 @@ class CalendarController extends Controller
|
|||
$search= $request->query->get('search');
|
||||
$draw= $request->query->get('draw');
|
||||
$order= $request->query->get('order');
|
||||
$alluser= $request->query->get('alluser');
|
||||
|
||||
// Query de base
|
||||
$qbase=$em->createQueryBuilder()
|
||||
->from($this->labelentity,'table')
|
||||
->leftJoin('CadolesCoreBundle:User','user','WITH','table.user=user')
|
||||
->addSelect('user');
|
||||
$qbase=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
$qsearch=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
|
||||
$qsearch=$qbase->where('table.id LIKE :value')
|
||||
->orWhere('table.name LIKE :value')
|
||||
->orWhere('user.username LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
if($alluser=="false") {
|
||||
$qbase->where("table.user is null");
|
||||
$qsearch->where("table.user is null");
|
||||
}
|
||||
else {
|
||||
$qbase->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
|
||||
$qsearch->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
}
|
||||
|
||||
if($alluser=="false")
|
||||
$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();
|
||||
|
@ -74,7 +87,7 @@ class CalendarController extends Controller
|
|||
$qb->orderBy('table.name',$order[0]["dir"]);
|
||||
break;
|
||||
case 2 :
|
||||
$qb->orderBy('user.username',$order[0]["dir"]);
|
||||
if($alluser=="true") $qb->orderBy('user.username',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,20 +49,26 @@ class PageController extends Controller
|
|||
|
||||
// Query de base
|
||||
$qbase=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
$qsearch=$em->createQueryBuilder()->from($this->labelentity,'table');
|
||||
|
||||
if($alluser=="false") {
|
||||
dump("pouet");
|
||||
$qbase->where('table.user IS NOT NULL');
|
||||
$qbase->where("table.user is null");
|
||||
$qsearch->where("table.user is null");
|
||||
}
|
||||
else
|
||||
else {
|
||||
$qbase->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
|
||||
$qsearch=$qbase->where('table.id LIKE :value')
|
||||
->orWhere('table.name LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
$qsearch->from('CadolesCoreBundle:User','user')
|
||||
->where("table.user=user");
|
||||
}
|
||||
|
||||
if($alluser=="true") $qsearch->orWhere('user.username LIKE :value') ;
|
||||
if($alluser=="false")
|
||||
$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();
|
||||
|
@ -71,9 +77,9 @@ class PageController extends Controller
|
|||
// Nombre d'enregistrement filtré
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
else
|
||||
$totalf= $qsearch->select('COUNT(table)')->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
|
||||
|
||||
// Parcours des Enregistrement
|
||||
if($search["value"]=="")
|
||||
|
@ -90,13 +96,12 @@ class PageController extends Controller
|
|||
$qb->orderBy('table.name',$order[0]["dir"]);
|
||||
break;
|
||||
case 4 :
|
||||
//$qb->orderBy('user.username',$order[0]["dir"]);
|
||||
if($alluser=="true") $qb->orderBy('user.username',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
||||
// Execution de la requete d'affichage
|
||||
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
|
||||
dump($datas);
|
||||
|
||||
// Construction du tableau de retour
|
||||
$output = array(
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
|
||||
<p>
|
||||
<a href="{{ path('cadoles_portal_config_blog_submit') }}" class="btn btn-success">Ajouter un Blog</a>
|
||||
<span class="pull-right">
|
||||
<label for="alluser" class="control-label">Afficher les utilisateurs</label>
|
||||
<input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<div class="panel panel-primary">
|
||||
|
@ -33,14 +37,21 @@
|
|||
|
||||
{% block localjavascript %}
|
||||
$(document).ready(function() {
|
||||
$('#dataTables').DataTable({
|
||||
table=$('#dataTables').DataTable({
|
||||
columnDefs: [ { "targets": 'no-sort', "orderable": false } ],
|
||||
responsive: true,
|
||||
iDisplayLength: 100,
|
||||
order: [[ 1, "asc" ]],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ path('cadoles_portal_config_blog_ajax_list') }}",
|
||||
ajax: {
|
||||
"url": "{{ path('cadoles_portal_config_blog_ajax_list') }}",
|
||||
"data": function ( d ) {
|
||||
return $.extend( {}, d, {
|
||||
"alluser": $('#alluser').bootstrapSwitch('state')
|
||||
});
|
||||
}
|
||||
},
|
||||
drawCallback: function(settings) {
|
||||
$("a[data-method='delete']").click(function(){
|
||||
if( !confirm('Êtes-vous sûr de vouloir supprimer ce calendrier ?')) {
|
||||
|
@ -50,7 +61,11 @@
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
$(".switch").bootstrapSwitch();
|
||||
});
|
||||
|
||||
function switchalluser() {
|
||||
table.ajax.reload()
|
||||
}
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
|
||||
<p>
|
||||
<a href="{{ path('cadoles_portal_config_calendar_submit') }}" class="btn btn-success">Ajouter un Calendrier</a>
|
||||
|
||||
<span class="pull-right">
|
||||
<label for="alluser" class="control-label">Afficher les utilisateurs</label>
|
||||
<input id="alluser" name="alluser" type="checkbox" class="switch" onChange="switchalluser();">
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<div class="panel panel-primary">
|
||||
|
@ -33,14 +38,21 @@
|
|||
|
||||
{% block localjavascript %}
|
||||
$(document).ready(function() {
|
||||
$('#dataTables').DataTable({
|
||||
table = $('#dataTables').DataTable({
|
||||
columnDefs: [ { "targets": 'no-sort', "orderable": false } ],
|
||||
responsive: true,
|
||||
iDisplayLength: 100,
|
||||
order: [[ 1, "asc" ]],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ path('cadoles_portal_config_calendar_ajax_list') }}",
|
||||
ajax: {
|
||||
"url": "{{ path('cadoles_portal_config_calendar_ajax_list') }}",
|
||||
"data": function ( d ) {
|
||||
return $.extend( {}, d, {
|
||||
"alluser": $('#alluser').bootstrapSwitch('state')
|
||||
});
|
||||
}
|
||||
},
|
||||
drawCallback: function(settings) {
|
||||
$("a[data-method='delete']").click(function(){
|
||||
if( !confirm('Êtes-vous sûr de vouloir supprimer ce calendrier ?')) {
|
||||
|
@ -50,7 +62,11 @@
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
$(".switch").bootstrapSwitch();
|
||||
});
|
||||
|
||||
function switchalluser() {
|
||||
table.ajax.reload()
|
||||
}
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
dico
|
||||
> voir pour ne pas rendre writer ldap obligatoire
|
||||
> famille cadoles user visible alors que activer cadoles user non visible (car pas de writer ldap)
|
||||
|
||||
> refaire un point sur le dico
|
||||
|
||||
|
||||
> Rendre l'alias paramétrage par genconfig
|
||||
|
@ -16,13 +16,13 @@ dico
|
|||
> Calendrier output / input
|
||||
> Déplacement de widget vers une autre page du meme user
|
||||
> Annonces dans pages spécifique
|
||||
> upload image sur ckeditor
|
||||
|
||||
> widget ToDo
|
||||
> widget Titre - Séparateur
|
||||
> widget rss
|
||||
> widget opened/closed
|
||||
|
||||
> Parametre canshare
|
||||
> Parametre opentovisitor
|
||||
> Theme
|
||||
> Theme - Reste à mettre un look associé au theme - Voir pour que les themes de base ne force pas le header
|
||||
|
||||
> sur menu pills (dans blog et calendrier ) revoir le style du active
|
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 3.9 KiB |