Compare commits
42 Commits
Author | SHA1 | Date | |
---|---|---|---|
eef04429ee | |||
9554b9cdd3 | |||
fb33724d9b | |||
0702f03c3f | |||
0dcd6349c0 | |||
800945e44b | |||
46c3f9ca12 | |||
cdf7c5a24c | |||
f5d1995040 | |||
8eaf759f88 | |||
09bd5e9e65 | |||
88cfeae266 | |||
cedd6bfcec | |||
be78875030 | |||
e52fdd9083 | |||
c6678e8e02 | |||
19fa75e2eb | |||
928109fdf5 | |||
cb766ee2f9 | |||
7d8ec5d8c5 | |||
3af16b4c8b | |||
35e59f2e51 | |||
ffe8f2f722 | |||
3d1c5a2159 | |||
6c720ed62a | |||
681b2f6547 | |||
58518ec70d | |||
5fa52efe9f | |||
f29fc43c8a | |||
1c644f8dca | |||
84230eb347 | |||
2cad98ca86 | |||
ca5f9fef2d | |||
b9bb605ad2 | |||
ea31b7255d | |||
d1431bcce4 | |||
89cb0433c0 | |||
b78f54b76c | |||
5f3cc51f5c | |||
86b11372e7 | |||
0ddb71006f | |||
44e6e012fd |
57
.env
Normal file → Executable file
57
.env
Normal file → Executable file
@ -1,12 +1,13 @@
|
||||
# Symfony
|
||||
APP_ENV=prod
|
||||
APP_SECRET=changeme
|
||||
APP_SESSIONTIME=1440
|
||||
|
||||
# Messenger
|
||||
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/nineblog?serverVersion=13&charset=utf8"
|
||||
|
||||
# Redis Session
|
||||
REDIS_HOST=127.0.0.1
|
||||
@ -20,18 +21,50 @@ MAILER_NOREPLY=noreply@noreply.fr
|
||||
# Basic
|
||||
APP_WEBURL=127.0.0.1:8000
|
||||
APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP
|
||||
APP_AUTH=SQL # SQL | CAS| LDAP | OPENID | à faire SAML
|
||||
APP_AUTH=SQL # SQL | CAS | LDAP | OPENID | à faire SAML
|
||||
APP_ALIAS=/
|
||||
APP_NAME=Nineskeletor
|
||||
APP_NAME=Nineblog
|
||||
APP_MODEREGISTRATION= # null | BYADMIN | BYUSER
|
||||
APP_ADMINS='["admin"]'
|
||||
|
||||
# Structure Organisationnelle
|
||||
APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param
|
||||
|
||||
APP_NIVEAU01LABEL="Niveau 01"
|
||||
APP_NIVEAU01LABELS="Niveaux 01"
|
||||
|
||||
APP_NIVEAU02USE=1
|
||||
APP_NIVEAU02LABEL="Niveau 02"
|
||||
APP_NIVEAU02LABELS="Niveaux 02"
|
||||
APP_NIVEAU02MANDATORY='[""]'
|
||||
|
||||
APP_NIVEAU03USE=1
|
||||
APP_NIVEAU03LABEL="Niveau 03"
|
||||
APP_NIVEAU03LABELS="Niveaux 03"
|
||||
APP_NIVEAU03MANDATORY='[""]'
|
||||
|
||||
APP_NIVEAU04USE=0
|
||||
APP_NIVEAU04LABEL="Niveau 04"
|
||||
APP_NIVEAU04LABELS="Niveaux 04"
|
||||
APP_NIVEAU04MANDATORY='[""]'
|
||||
|
||||
APP_GROUPUSE=1
|
||||
APP_GROUPSUBMITER='["ALL"]'
|
||||
|
||||
APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4
|
||||
APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4
|
||||
APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||
APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||
APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||
|
||||
APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field
|
||||
|
||||
# Synchronisation
|
||||
APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
|
||||
APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation
|
||||
APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation
|
||||
APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation
|
||||
APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation
|
||||
APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation
|
||||
APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation
|
||||
|
||||
@ -42,12 +75,14 @@ LDAP_USETLS=0 # connection TLS 0/1
|
||||
LDAP_USERWRITER=0 # LDAP_USER compte writer ? 0/1
|
||||
LDAP_USER= # DN compte access ldap
|
||||
LDAP_PASSWORD= # Password comte access ldap
|
||||
LDAP_BASEDN= # Base DN ex:o=gouv,c=fr
|
||||
LDAP_BASEORGANISATION= # Base Organisation ex:ou=nine,o=gouv,c=fr
|
||||
LDAP_BASENIVEAU01= # Base Niveau01 ex:ou=niveau01,ou=nine,o=gouv,c=fr
|
||||
LDAP_BASENIVEAU02= # Base Niveau02 ex:ou=niveau02,ou=nine,o=gouv,c=fr
|
||||
LDAP_BASEGROUP= # Base Group ex:ou=groups,ou=nine,o=gouv,c=fr
|
||||
LDAP_BASEUSER= # Base User ex:ou=users,ou=nine,o=gouv,c=fr
|
||||
LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr
|
||||
LDAP_BASEORGANISATION= # Base Organisation ex:ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASENIVEAU01= # Base Niveau01 ex:ou=niveau01,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASENIVEAU02= # Base Niveau02 ex:ou=niveau02,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASENIVEAU03= # Base Niveau03 ex:ou=niveau03,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASENIVEAU04= # Base Niveau04 ex:ou=niveau04,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASEGROUP= # Base Group ex:ou=groups,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_BASEUSER= # Base User ex:ou=users,ou=nineblog,dc=nine,dc=fr
|
||||
LDAP_USERNAME=uid # Attribut id d'un user
|
||||
LDAP_FIRSTNAME=givenname # Attribut firstname d'un user
|
||||
LDAP_LASTNAME=sn # Attribut lastname d'un user
|
||||
@ -122,7 +157,7 @@ MERCURE_JWT_SECRET="!changeme!changeme!changeme!changeme!changeme!changeme!"
|
||||
MINIO_URL=http://127.0.0.1:9000
|
||||
MINIO_KEY=minio
|
||||
MINIO_SECRET=changeme
|
||||
MINIO_BUCKET=nine
|
||||
MINIO_BUCKET=nineblog
|
||||
MINIO_ROOT=
|
||||
MINIO_PATH_STYLE=1
|
||||
MINIO_SECURE=0
|
||||
@ -134,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/nineblog?serverVersion=13&charset=utf8"
|
||||
|
||||
# Sentry
|
||||
SENTRY_DSN=
|
||||
|
18
.githooks/commit-msg
Executable file
18
.githooks/commit-msg
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)"
|
||||
export PATH="${PATH}:${DIR}/../node_modules/.bin"
|
||||
|
||||
function lint_commit_message {
|
||||
local commit_message_file="$1"
|
||||
cat "$commit_message_file" | commitlint
|
||||
}
|
||||
|
||||
function main {
|
||||
local commit_message_file="$1"
|
||||
lint_commit_message "$commit_message_file"
|
||||
}
|
||||
|
||||
main $@
|
2
.gitignore
vendored
Normal file → Executable file
2
.gitignore
vendored
Normal file → Executable file
@ -27,3 +27,5 @@ yarn-error.log
|
||||
/public/uploads/logo/*
|
||||
!/public/uploads/logo/logo.png
|
||||
/public/uploads/ckeditor
|
||||
|
||||
.php-cs-fixer.cache
|
15
.jenkins/build-symfony-image.groovy
Executable file
15
.jenkins/build-symfony-image.groovy
Executable file
@ -0,0 +1,15 @@
|
||||
def exec() {
|
||||
String dockerfile = readFile(file:'Dockerfile')
|
||||
|
||||
dockerfile = """
|
||||
${dockerfile}
|
||||
|
||||
RUN apt update && apt install -y php-gd php-curl php-zip curl
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs
|
||||
RUN npm install -g yarn
|
||||
""".stripIndent()
|
||||
|
||||
writeFile(file:'Dockerfile', text: dockerfile)
|
||||
}
|
||||
|
||||
return this
|
12
.php-cs-fixer.dist.php
Executable file
12
.php-cs-fixer.dist.php
Executable file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__.'/src');
|
||||
|
||||
$config = new PhpCsFixer\Config();
|
||||
return $config->setRules([
|
||||
'@Symfony' => true,
|
||||
'full_opening_tag' => false,
|
||||
])
|
||||
->setFinder($finder)
|
||||
;
|
1
.php-version
Executable file
1
.php-version
Executable file
@ -0,0 +1 @@
|
||||
8.1
|
0
.vscode/settings.json
vendored
Normal file → Executable file
0
.vscode/settings.json
vendored
Normal file → Executable file
3
Jenkinsfile
vendored
Executable file
3
Jenkinsfile
vendored
Executable file
@ -0,0 +1,3 @@
|
||||
@Library('cadoles') _
|
||||
|
||||
symfonyAppPipeline('ubuntu:22.04')
|
18
Makefile
Executable file
18
Makefile
Executable file
@ -0,0 +1,18 @@
|
||||
SHELL := /bin/bash
|
||||
export PATH := $(HOME)/.symfony/bin:$(PATH)
|
||||
|
||||
deps:
|
||||
wget https://get.symfony.com/cli/installer -O - | bash
|
||||
symfony composer install
|
||||
symfony composer install --working-dir=tools/php-cs-fixer
|
||||
symfony composer install --working-dir=tools/phpstan
|
||||
npm ci
|
||||
|
||||
phpstan:
|
||||
symfony php tools/phpstan/vendor/bin/phpstan analyze ./src -l 1
|
||||
|
||||
php-cs-fixer:
|
||||
tools/php-cs-fixer/symfony-php-cs-fixer.sh fix --verbose --show-progress=dots
|
||||
|
||||
install-git-hooks:
|
||||
git config core.hooksPath .githooks
|
29
assets/app.js
Normal file → Executable file
29
assets/app.js
Normal file → Executable file
@ -1,8 +1,11 @@
|
||||
// JQuery
|
||||
window.$ = window.jQuery = require('jquery');
|
||||
// jquery
|
||||
import $ from 'jquery'
|
||||
window.jQuery = $;
|
||||
window.$ = $;
|
||||
|
||||
// JQueryui
|
||||
require('jquery-ui');
|
||||
// jqueryui
|
||||
import 'jqueryui'
|
||||
import 'jqueryui/jquery-ui.min.css';
|
||||
|
||||
// Bootstrap
|
||||
require('bootstrap');
|
||||
@ -38,6 +41,24 @@ 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');
|
||||
|
||||
// Slick
|
||||
require('slick-carousel/slick/slick.css');
|
||||
require('slick-carousel/slick/slick-theme.css');
|
||||
const slick = require('slick-carousel/slick/slick.min.js');
|
||||
global.slick = slick;
|
||||
|
||||
// Imageloaded
|
||||
const imagesLoaded = require('imagesloaded/imagesloaded.js');
|
||||
global.imagesLoaded = imagesLoaded;
|
||||
|
||||
// Masonry
|
||||
const masonry = require('masonry-layout/dist/masonry.pkgd.min.js');
|
||||
global.masonry = masonry;
|
||||
|
||||
// Start the Stimulus application
|
||||
import './bootstrap';
|
||||
|
||||
|
0
assets/bootstrap.js
vendored
Normal file → Executable file
0
assets/bootstrap.js
vendored
Normal file → Executable file
0
assets/ckplugins/html5video/dialogs/html5video.js
Normal file → Executable file
0
assets/ckplugins/html5video/dialogs/html5video.js
Normal file → Executable file
0
assets/ckplugins/html5video/icons/html5video.png
Normal file → Executable file
0
assets/ckplugins/html5video/icons/html5video.png
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
assets/ckplugins/html5video/lang/bg.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/bg.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ca.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ca.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/de.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/de.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/en.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/en.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/es.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/es.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/eu.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/eu.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/fa.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/fa.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/fr.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/fr.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/he.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/he.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ko.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ko.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pl.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pl.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pt-br.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pt-br.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pt.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/pt.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ru.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/ru.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/uk.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/uk.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/uz.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/uz.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/zh-cn.js
Normal file → Executable file
0
assets/ckplugins/html5video/lang/zh-cn.js
Normal file → Executable file
0
assets/ckplugins/html5video/plugin.js
Normal file → Executable file
0
assets/ckplugins/html5video/plugin.js
Normal file → Executable file
0
assets/ckplugins/youtube/images/icon-hdpi.png
Normal file → Executable file
0
assets/ckplugins/youtube/images/icon-hdpi.png
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
assets/ckplugins/youtube/images/icon.png
Normal file → Executable file
0
assets/ckplugins/youtube/images/icon.png
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
assets/ckplugins/youtube/lang/ar.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ar.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/bg.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/bg.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/cs.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/cs.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/de.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/de.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/el.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/el.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/en.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/en.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/es.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/es.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/et.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/et.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/eu.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/eu.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/fi.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/fi.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/fr.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/fr.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/he.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/he.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/hu.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/hu.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/it.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/it.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ja.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ja.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ko.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ko.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nb.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nb.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nl.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nl.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nn.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/nn.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pl.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pl.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pt-br.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pt-br.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pt.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/pt.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ru.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/ru.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/sk.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/sk.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/tr.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/tr.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/uk.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/uk.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/vi.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/vi.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/zh.js
Normal file → Executable file
0
assets/ckplugins/youtube/lang/zh.js
Normal file → Executable file
0
assets/ckplugins/youtube/plugin.js
Normal file → Executable file
0
assets/ckplugins/youtube/plugin.js
Normal file → Executable file
0
assets/controllers.json
Normal file → Executable file
0
assets/controllers.json
Normal file → Executable file
0
assets/controllers/hello_controller.js
Normal file → Executable file
0
assets/controllers/hello_controller.js
Normal file → Executable file
14
assets/dropzone.js
Normal file → Executable file
14
assets/dropzone.js
Normal file → Executable file
@ -1,19 +1,21 @@
|
||||
|
||||
require('dropzone/dist/dropzone.css');
|
||||
/*
|
||||
window.Dropzone = require('dropzone/dist/dropzone.js');
|
||||
*/
|
||||
const { Dropzone } = require("dropzone");
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var elt = document.getElementById('mydropzone');
|
||||
console.log($(elt).data("maxfiles"))
|
||||
maxFiles=elt.getAttribute("data-maxFiles");
|
||||
if(maxFiles!=1) maxFiles=null;
|
||||
|
||||
var mydropzone = new Dropzone(elt, {
|
||||
acceptedMimeTypes: $(elt).data("acceptedMimeTypes"),
|
||||
maxFiles: $(elt).data("maxFiles"),
|
||||
maxFiles: maxFiles,
|
||||
init: function() {
|
||||
dropzoneinit(this);
|
||||
},
|
||||
success: function( file, response ){
|
||||
dropzonesuccess(file,response);
|
||||
},
|
||||
});
|
||||
global.mydropzone=mydropzone;
|
||||
window.mydropzone=mydropzone;
|
||||
});
|
0
assets/fonts/ABeeZee-Regular.ttf
Normal file → Executable file
0
assets/fonts/ABeeZee-Regular.ttf
Normal file → Executable file
0
assets/fonts/Acme-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/Acme-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/AlfaSlabOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/AlfaSlabOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/Anton-Regular.ttf
Normal file → Executable file
0
assets/fonts/Anton-Regular.ttf
Normal file → Executable file
0
assets/fonts/Baloo-Regular.ttf
Normal file → Executable file
0
assets/fonts/Baloo-Regular.ttf
Normal file → Executable file
0
assets/fonts/Bebas-webfont.ttf
Normal file → Executable file
0
assets/fonts/Bebas-webfont.ttf
Normal file → Executable file
0
assets/fonts/CarterOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/CarterOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/Chewy-Regular.ttf
Normal file → Executable file
0
assets/fonts/Chewy-Regular.ttf
Normal file → Executable file
0
assets/fonts/Courgette-Regular.ttf
Normal file → Executable file
0
assets/fonts/Courgette-Regular.ttf
Normal file → Executable file
0
assets/fonts/FredokaOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/FredokaOne-Regular.ttf
Normal file → Executable file
BIN
assets/fonts/Futura-Condensed-Extra-Bold.otf
Executable file
BIN
assets/fonts/Futura-Condensed-Extra-Bold.otf
Executable file
Binary file not shown.
0
assets/fonts/Grandstander-Black.ttf
Normal file → Executable file
0
assets/fonts/Grandstander-Black.ttf
Normal file → Executable file
0
assets/fonts/Justanotherhand-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/Justanotherhand-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/Lato-Regular.ttf
Normal file → Executable file
0
assets/fonts/Lato-Regular.ttf
Normal file → Executable file
0
assets/fonts/LexendDeca-Regular.ttf
Normal file → Executable file
0
assets/fonts/LexendDeca-Regular.ttf
Normal file → Executable file
0
assets/fonts/LuckiestGuy-Regular.ttf
Normal file → Executable file
0
assets/fonts/LuckiestGuy-Regular.ttf
Normal file → Executable file
0
assets/fonts/Overpass-Black.ttf
Normal file → Executable file
0
assets/fonts/Overpass-Black.ttf
Normal file → Executable file
0
assets/fonts/PassionOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/PassionOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/Peacesans-webfont.ttf
Normal file → Executable file
0
assets/fonts/Peacesans-webfont.ttf
Normal file → Executable file
0
assets/fonts/Redressed-webfont.ttf
Normal file → Executable file
0
assets/fonts/Redressed-webfont.ttf
Normal file → Executable file
0
assets/fonts/Righteous-Regular.ttf
Normal file → Executable file
0
assets/fonts/Righteous-Regular.ttf
Normal file → Executable file
0
assets/fonts/Roboto-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/Roboto-Regular-webfont.ttf
Normal file → Executable file
0
assets/fonts/RubikMonoOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/RubikMonoOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/SigmarOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/SigmarOne-Regular.ttf
Normal file → Executable file
0
assets/fonts/Signika-Regular.ttf
Normal file → Executable file
0
assets/fonts/Signika-Regular.ttf
Normal file → Executable file
0
assets/fonts/Snickles-webfont.ttf
Normal file → Executable file
0
assets/fonts/Snickles-webfont.ttf
Normal file → Executable file
0
assets/fonts/Teko-Bold.ttf
Normal file → Executable file
0
assets/fonts/Teko-Bold.ttf
Normal file → Executable file
0
assets/fonts/Viga-Regular.ttf
Normal file → Executable file
0
assets/fonts/Viga-Regular.ttf
Normal file → Executable file
0
assets/fonts/theboldfont.ttf
Normal file → Executable file
0
assets/fonts/theboldfont.ttf
Normal file → Executable file
82
assets/js/app.js
Normal file → Executable file
82
assets/js/app.js
Normal file → Executable file
@ -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')){
|
||||
@ -30,33 +33,70 @@ $(document).ready(function() {
|
||||
$("#"+$(this).data("modalid")).modal("show");
|
||||
});
|
||||
|
||||
// Resize
|
||||
resize();
|
||||
// Item
|
||||
$( ".item" ).hover(function() {
|
||||
$(this).find(".item-action a").show();
|
||||
});
|
||||
|
||||
$( ".item" ).mouseleave(function() {
|
||||
$(this).find(".item-action a").hide();
|
||||
});
|
||||
|
||||
$( ".item-info" ).click(function() {
|
||||
parent=$(this).parent().parent().parent().parent().parent();
|
||||
if(parent.find(".item-description").hasClass("hide")) {
|
||||
parent.find(".item-description").removeClass("hide");
|
||||
parent.addClass("w-100");
|
||||
parent.css("justify-content","flex-start");
|
||||
}
|
||||
else {
|
||||
parent.find(".item-description").addClass("hide");
|
||||
parent.removeClass("w-100");
|
||||
|
||||
if(parent.hasClass("item-large"))
|
||||
parent.css("justify-content","flex-start");
|
||||
else
|
||||
parent.css("justify-content","center");
|
||||
}
|
||||
});
|
||||
|
||||
// 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());
|
||||
}
|
||||
|
||||
|
||||
|
0
assets/js/datatables.init.js
Normal file → Executable file
0
assets/js/datatables.init.js
Normal file → Executable file
264
assets/styles/app.css
Normal file → Executable file
264
assets/styles/app.css
Normal file → Executable file
@ -8,7 +8,7 @@ body {
|
||||
color: var(--colorfttitledark);
|
||||
}
|
||||
|
||||
.header a, #sidebar a, #sidebar hr{
|
||||
.header h1, .header a, #sidebar a, #sidebar hr{
|
||||
color: var(--colorfttitledark);
|
||||
}
|
||||
|
||||
@ -26,6 +26,9 @@ body {
|
||||
color: var(--colorftbodylight);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* FONT */
|
||||
body {
|
||||
font-family: var(--fontbody);
|
||||
@ -61,6 +64,16 @@ a:hover {
|
||||
color: var(--colorfttitlelight-darker);
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
color: var(--colorfttitlelight);
|
||||
}
|
||||
|
||||
.btn-link:hover {
|
||||
color: var(--colorfttitlelight-darker);
|
||||
}
|
||||
|
||||
main {
|
||||
display:flex;
|
||||
overflow:hidden;
|
||||
@ -99,6 +112,24 @@ border-width: 1px;
|
||||
padding:0.5rem;
|
||||
}
|
||||
|
||||
#page {
|
||||
overflow-y: auto;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.ckeditor-content img {
|
||||
max-width:100%;
|
||||
height:auto !important;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.card-body .form-group:first-child {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
#header {
|
||||
display:none !important;
|
||||
@ -114,53 +145,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);
|
||||
@ -215,8 +305,138 @@ border-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
/* PAGE */
|
||||
#page {
|
||||
overflow-y: auto;
|
||||
width:100%;
|
||||
/*== CHILD ======================================================================================================================================= */
|
||||
|
||||
.child-sidebar {
|
||||
background-color: var(--colorbgbodyimportant);
|
||||
color: var(--colorftbodydark);
|
||||
}
|
||||
|
||||
.child-sidebar h3 {
|
||||
color: var(--colorftbodydark);
|
||||
}
|
||||
|
||||
.child-sidebar a {
|
||||
color: var(--colorfttitledark);
|
||||
}
|
||||
|
||||
.child-sidebar a:hover {
|
||||
color: var(--colorfttitledark-lighter);
|
||||
}
|
||||
|
||||
/*== GRID ======================================================================================================================================= */
|
||||
|
||||
|
||||
.gutter-sizer { width: 0%;float:left; }
|
||||
|
||||
.grid-sizer {
|
||||
width: 0.1%;
|
||||
margin-bottom: 0%;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
background-color:var(--colorbgbodydark);
|
||||
color: var(--colorfttitledark);
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.grid-image {
|
||||
width:100%;
|
||||
transition: transform 0.3s;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.grid-item-title {
|
||||
background-color:var(--colorbgbodyimportant);
|
||||
color: var(--colorfttitledark);
|
||||
width:auto;
|
||||
padding:15px;
|
||||
text-align:center;
|
||||
margin:auto;
|
||||
}
|
||||
|
||||
|
||||
.grid-item-size-1 { width: 100% }
|
||||
.grid-item-size-2 { width: 50% }
|
||||
.grid-item-size-3 { width: 33.3% }
|
||||
.grid-item-size-4 { width: 25% }
|
||||
.grid-item-size-5 { width: 20% }
|
||||
.grid-item-full { width: 100%; margin-bottom: 0%; font-size:20px;float:left; }
|
||||
.grid-item-full h1 {margin: 0; border:none; padding: 20px 0px 0px 10px; }
|
||||
|
||||
.grid-tag {font-style:italic}
|
||||
.grid-image {cursor: pointer;}
|
||||
|
||||
@media (max-width: 980px) {
|
||||
.grid-item-size-1 { width: 30% }
|
||||
.grid-item-size-2 { width: 50% }
|
||||
.grid-item-size-3 { width: 50% }
|
||||
.grid-item-size-4 { width: 50% }
|
||||
.grid-item-size-5 { width: 50% }
|
||||
}
|
||||
|
||||
|
||||
/*== HERO ======================================================================================================================================= */
|
||||
|
||||
|
||||
.herobody {
|
||||
min-height:500px;
|
||||
width:100%;
|
||||
padding:0px 100px;
|
||||
}
|
||||
|
||||
.herobody .title {
|
||||
height: auto;
|
||||
position: relative;
|
||||
top: 5%;
|
||||
left: 5%;
|
||||
font-size: 20px;
|
||||
width:40%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.heroheader span {
|
||||
color: var(--colorftbodydark);
|
||||
text-shadow: 1px 1px 2px black;
|
||||
}
|
||||
|
||||
.herobody .title h1, .heroheader h1, .heroheader h1 {
|
||||
color: var(--colorftbodydark);
|
||||
font-size: 50px;
|
||||
margin:0px;
|
||||
text-shadow: 1px 1px 2px black;
|
||||
}
|
||||
|
||||
.herobody .navigation {
|
||||
width:45%;
|
||||
position: relative;
|
||||
right: 5%;
|
||||
top: 5%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
@media (max-width: 1099px) {
|
||||
.herobody {
|
||||
padding:0px 50px;
|
||||
}
|
||||
|
||||
.herobody .title {
|
||||
width:90%;
|
||||
}
|
||||
|
||||
.herobody .navigation {
|
||||
width:90%;
|
||||
}
|
||||
}
|
||||
|
||||
.herobody .grid-item {
|
||||
padding: 5px;
|
||||
background-color: transparent;
|
||||
height: 200px;
|
||||
}
|
||||
.herobody .grid-image {
|
||||
background-color: var(--colorbgbodydark);
|
||||
}
|
||||
|
||||
|
8
assets/styles/font.css
Normal file → Executable file
8
assets/styles/font.css
Normal file → Executable file
@ -179,3 +179,11 @@ src: url('../fonts/theboldfont.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Futura-Condensed-Extra-Bold';
|
||||
src: url('../fonts/Futura-Condensed-Extra-Bold.otf') format('opentype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
0
bin/nineskeletor.cron
Normal file → Executable file
0
bin/nineskeletor.cron
Normal file → Executable file
0
bin/nineskeletor.service
Normal file → Executable file
0
bin/nineskeletor.service
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user