24 Commits

Author SHA1 Message Date
123e438123 Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-10 09:24:28 +02:00
62d32fbdb1 synchro modif 2022-05-09 15:58:02 +02:00
1faf9935b9 synchro modif 2022-05-09 15:26:13 +02:00
870b4701d5 ajout variable activer_revprox si non existante 2021-12-08 09:50:05 +01:00
1bd4f5bc72 templetisation du service wssnineboard 2021-12-07 15:00:22 +01:00
d71ac0df19 websocket server by service 2021-12-07 14:04:59 +01:00
f298298fb4 secretkey for amonecole 2021-12-06 17:03:32 +01:00
ed36a30dfe configuration reverse proxy wss 2021-12-06 16:13:13 +01:00
37531ca37c conf proxy wss 2021-12-06 14:46:37 +01:00
93f61c02ba correction orthographe (fixes #33009) 2021-10-18 10:07:17 +02:00
2a2f24222e rapatrier les variables eoledb dans la famille eoledb (ref #33188) 2021-10-07 11:00:24 +02:00
33f88f5c9d casdebug 2021-03-11 15:01:03 +01:00
96382c0698 sonde dnma alone 2021-02-17 12:51:42 +01:00
3f5f96c279 sonde dnma alone 2021-02-17 11:14:25 +01:00
e4365913b4 initsession 2021-02-09 16:51:03 +01:00
d0556edfdd ano ckeditor 2021-02-03 13:41:28 +01:00
bbc1fd225e gestion synchro no mail 2021-01-21 17:17:48 +01:00
6821d4106f gestion synchro no mail 2021-01-21 16:18:09 +01:00
45daf482d9 livraison des lib manquantes 2021-01-13 15:21:12 +01:00
dc1f23314d paquet apps en dep de dicos 2020-12-18 09:49:35 +01:00
85f47e57a1 svg 2020-12-16 11:34:59 +01:00
8658bb5a23 svg 2020-11-26 16:09:47 +01:00
d1a2131e0b websocket 2020-11-23 13:08:32 +01:00
85ff851a1a svg 2020-11-15 17:50:07 +01:00
284 changed files with 4902 additions and 269 deletions

View File

@ -2,13 +2,12 @@
<creole>
<files>
<file filelist='nineschool' name='/etc/eole/eole-db.d/nineschool-db.yml' rm='True' mkdir='True'/>
<file filelist='nineschool_nginx' name='/etc/nginx/web.d/nineschool.conf' source='nineschool-nginx.conf' rm='True' mkdir='True' />
</files>
<containers>
<container name='web'>
<!--
<package>nineschool-apps</package>
-->
<package>nineschool-apps</package>
<!-- service de configuration apache -->
<service method="apache" servicelist="nineschool">nineschool</service>
@ -16,15 +15,16 @@
<!-- template -->
<file filelist='nineschool' name='/etc/apache2/sites-available/nineschool' source='nineschool-apache.conf' />
<file filelist='nineschool' name='/var/www/html/nineschool/.env.local' source='nineschool-env.local' rm='True'/>
<file filelist='ninegate' name='/etc/cron.d/nineschool' source='nineschool.cron' rm='True'/>
<file filelist='nineschool' name='/etc/cron.d/nineschool' source='nineschool.cron' rm='True'/>
</container>
</containers>
<variables>
<family name='nineschool'>
<family name='nineschool' icon='eye-open'>
<variable name="ninegate_test_ninegate" type="oui/non" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_revprox" type="oui/non" description="Activer le reverse proxy Nginx" hidden='True' exists='False'><value>non</value></variable>
<variable name='activer_nineschool' type='oui/non' description='Activer nineschool'>
<variable name='activer_nineschool' type='oui/non' description='Activer Nineschool'>
<value>oui</value>
</variable>
@ -54,8 +54,9 @@
<variable type='string' name='nineschool_smtppwd' description='Mot de passe associé du compte SMTP' mandatory='True' />
<variable type='string' name='nineschool_smtpencryption' description='Type Encryptage du serveur SMTP' mandatory='True' />
<variable type='string' name='nineschool_smtpauthmode' description='Mode Authentification du serveur SMTP' mandatory='True' />
</family>
<family name='EoleDB' icon='database' mode='expert'>
<!-- BDD -->
<variable type='string' name='nineschool_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
<variable type='string' name='nineschool_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
@ -68,7 +69,7 @@
<separators>
<separator name="nineschool_ldaptemplate">Paramètres associés à l'Annuaire</separator>
<separator name="nineschool_noreply">Paramètres associés aux Mails</separator>
<separator name="nineschool_db_mode">Paramètres associés à la Base de Données</separator>
<separator name="nineschool_db_mode">Paramètres EoleDB associés à Nineschool</separator>
</separators>
</variables>
@ -77,9 +78,15 @@
<condition name='hidden_if_in' source='activer_apache'>
<param>non</param>
<target type='filelist'>nineschool</target>
<target type='filelist'>nineschool_nginx</target>
<target type='servicelist'>nineschool</target>
</condition>
<!-- AFFICHAGE EN FONCTION DE REVERSE PROXY -->
<condition name='hidden_if_in' source='activer_revprox'>
<param>non</param>
<target type='filelist'>nineschool_nginx</target>
</condition>
<!-- AFFICHAGE EN FONCTION DE NINESCHOOL -->
<condition name='hidden_if_in' source='activer_nineschool'>
@ -109,6 +116,7 @@
<target type='variable'>nineschool_dbpass</target>
<target type='filelist'>nineschool</target>
<target type='filelist'>nineschool_nginx</target>
<target type='servicelist'>nineschool</target>
</condition>

View File

@ -1,36 +1,19 @@
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_SECRET=52c1cb88ee822cd2643abe29e16a68a6
# Symfony
APP_ENV=PROD
APP_SECRET=changemeinenvlocal
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###< doctrine/doctrine-bundle ###
# Basic
APP_ALIAS=nineschool
APP_WEBURL=
APP_MASTERIDENTITY=LDAP
APP_AUTH=MYSQL
APP_NAME=Nineschool
APP_ENV=PROD
APP_CRON=false
APP_ALIAS=
APP_NAME=
APP_CRON=1
APP_MASTERURL=
APP_MASTERKEY=
# BDD
DATABASE_NAME=
@ -38,12 +21,15 @@ DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
# MAIL sendmail / smtp
MAILER_METHOD=sendmail
MAILER_URL=
MAILER_NOREPLY=noreply@noreply.fr
# LDAP
LDAP_MODEL=open
LDAP_HOST=
LDAP_PORT=
LDAP_USER=
@ -55,6 +41,7 @@ LDAP_LASTNAME=sn
LDAP_EMAIL=mail
LDAP_ADMINS='["admin"]'
# If APP_AUTH = CAS
CAS_HOST=
CAS_PORT=
@ -64,9 +51,18 @@ CAS_EMAIL=email
CAS_LASTNAME=lastname
CAS_FIRSTNAME=firstname
###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###
# WEBSOCKET
WSS_USE=0
WSS_PORT=5586
# Proxy
PROXY_USE=0
PROXY_HOST=
PROXY_PORT=
# Sonde statistic
SONDE_USE=0
SONDE_URL=

View File

@ -1,10 +1,16 @@
// JQuery
window.$ = window.jQuery = require('jquery');
// JQueryui
require('jqueryui');
// Bootstrap
require('bootstrap');
require('bootstrap/dist/css/bootstrap.min.css');
// timepicki
const timepicki = require('timepicki/js/timepicki.js');
// Datatables
require('datatables.net-bs4');
require('./datatables.init.js');
@ -13,14 +19,29 @@ require('datatables.net-bs4/css/dataTables.bootstrap4.min.css');
// Fontawesome
require('@fortawesome/fontawesome-free/css/all.css');
// bs-stepper
require('bs-stepper/dist/css/bs-stepper.min.css');
const Stepper = require('bs-stepper/dist/js/bs-stepper.min.js');
global.Stepper = Stepper;
// Masonery
const masonry = require('masonry-layout/dist/masonry.pkgd.min.js');
global.masonry = masonry;
// Slick
require('slick-carousel/slick/slick.css');
const slick = require('slick-carousel/slick/slick.min.js');
global.slick = slick;
// Imageloaded
const imagesLoaded = require('imagesloaded/imagesloaded.js');
global.imagesLoaded = imagesLoaded;
// Moment
const moment = require('moment');
global.moment = moment;
require('moment/locale/fr.js');
// TempusDominus
require('tempusdominus-bootstrap-4');
// Select2
require('select2');
require('select2/dist/js/i18n/fr.js');

View File

@ -5,6 +5,7 @@
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"cboden/ratchet": "^0.4.3",
"doctrine/annotations": "^1.8",
"friendsofsymfony/ckeditor-bundle": "^2.2",
"friendsofsymfony/rest-bundle": "^3.0",
@ -14,6 +15,7 @@
"nategood/httpful": "^0.3.2",
"nelmio/api-doc-bundle": "^3.6",
"oneup/uploader-bundle": "^3.0",
"ramsey/uuid": "^4.1",
"sensio/framework-extra-bundle": "^5.1",
"symfony/apache-pack": "^1.0",
"symfony/asset": "5.1.*",

View File

@ -4,8 +4,111 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "dcf29a3826720301ab52c6fe3543f7bd",
"content-hash": "6e17c24e8ecdd92e1fa9b4738c5c94f3",
"packages": [
{
"name": "brick/math",
"version": "0.9.1",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
"reference": "283a40c901101e66de7061bd359252c013dcc43c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/brick/math/zipball/283a40c901101e66de7061bd359252c013dcc43c",
"reference": "283a40c901101e66de7061bd359252c013dcc43c",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": "^7.1|^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
"phpunit/phpunit": "^7.5.15|^8.5",
"vimeo/psalm": "^3.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Brick\\Math\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Arbitrary-precision arithmetic library",
"keywords": [
"Arbitrary-precision",
"BigInteger",
"BigRational",
"arithmetic",
"bigdecimal",
"bignum",
"brick",
"math"
],
"time": "2020-08-18T23:57:15+00:00"
},
{
"name": "cboden/ratchet",
"version": "v0.4.3",
"source": {
"type": "git",
"url": "https://github.com/ratchetphp/Ratchet.git",
"reference": "466a0ecc83209c75b76645eb823401b5c52e5f21"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/466a0ecc83209c75b76645eb823401b5c52e5f21",
"reference": "466a0ecc83209c75b76645eb823401b5c52e5f21",
"shasum": ""
},
"require": {
"guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2",
"ratchet/rfc6455": "^0.3",
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
"symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0",
"symfony/routing": "^2.6|^3.0|^4.0|^5.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8"
},
"type": "library",
"autoload": {
"psr-4": {
"Ratchet\\": "src/Ratchet"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
}
],
"description": "PHP WebSocket library",
"homepage": "http://socketo.me",
"keywords": [
"Ratchet",
"WebSockets",
"server",
"sockets",
"websocket"
],
"time": "2020-07-07T15:50:14+00:00"
},
{
"name": "doctrine/annotations",
"version": "1.10.3",
@ -1165,6 +1268,7 @@
"reflection",
"static"
],
"abandoned": "roave/better-reflection",
"time": "2020-03-27T11:06:43+00:00"
},
{
@ -1278,6 +1382,49 @@
],
"time": "2020-06-16T20:11:17+00:00"
},
{
"name": "evenement/evenement",
"version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/igorw/evenement.git",
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
"shasum": ""
},
"require": {
"php": ">=7.0"
},
"require-dev": {
"phpunit/phpunit": "^6.0"
},
"type": "library",
"autoload": {
"psr-0": {
"Evenement": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Igor Wiedler",
"email": "igor@wiedler.ch"
}
],
"description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
"event-dispatcher",
"event-emitter"
],
"time": "2017-07-23T21:35:13+00:00"
},
{
"name": "exsyst/swagger",
"version": "v0.4.1",
@ -1496,6 +1643,77 @@
],
"time": "2020-06-29T11:19:01+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"time": "2020-09-30T07:37:11+00:00"
},
{
"name": "jasig/phpcas",
"version": "1.3.8",
@ -2495,6 +2713,56 @@
],
"time": "2019-01-08T18:20:26+00:00"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/link",
"version": "1.0.0",
@ -2591,6 +2859,627 @@
],
"time": "2020-03-23T09:12:05+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "ramsey/collection",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
"reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ramsey/collection/zipball/24d93aefb2cd786b7edd9f45b554aea20b28b9b1",
"reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8"
},
"require-dev": {
"captainhook/captainhook": "^5.3",
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
"ergebnis/composer-normalize": "^2.6",
"fzaninotto/faker": "^1.5",
"hamcrest/hamcrest-php": "^2",
"jangregor/phpstan-prophecy": "^0.6",
"mockery/mockery": "^1.3",
"phpstan/extension-installer": "^1",
"phpstan/phpstan": "^0.12.32",
"phpstan/phpstan-mockery": "^0.12.5",
"phpstan/phpstan-phpunit": "^0.12.11",
"phpunit/phpunit": "^8.5",
"psy/psysh": "^0.10.4",
"slevomat/coding-standard": "^6.3",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^3.12.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Ramsey\\Collection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
}
],
"description": "A PHP 7.2+ library for representing and manipulating collections.",
"keywords": [
"array",
"collection",
"hash",
"map",
"queue",
"set"
],
"time": "2020-09-10T20:58:17+00:00"
},
{
"name": "ramsey/uuid",
"version": "4.1.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
"reference": "cd4032040a750077205918c86049aa0f43d22947"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947",
"reference": "cd4032040a750077205918c86049aa0f43d22947",
"shasum": ""
},
"require": {
"brick/math": "^0.8 || ^0.9",
"ext-json": "*",
"php": "^7.2 || ^8",
"ramsey/collection": "^1.0",
"symfony/polyfill-ctype": "^1.8"
},
"replace": {
"rhumsaa/uuid": "self.version"
},
"require-dev": {
"codeception/aspect-mock": "^3",
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0",
"doctrine/annotations": "^1.8",
"goaop/framework": "^2",
"mockery/mockery": "^1.3",
"moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
"php-mock/php-mock-mockery": "^1.3",
"php-mock/php-mock-phpunit": "^2.5",
"php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^0.17.1",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-mockery": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpunit/phpunit": "^8.5",
"psy/psysh": "^0.10.0",
"slevomat/coding-standard": "^6.0",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "3.9.4"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
"ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.x-dev"
}
},
"autoload": {
"psr-4": {
"Ramsey\\Uuid\\": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
"homepage": "https://github.com/ramsey/uuid",
"keywords": [
"guid",
"identifier",
"uuid"
],
"time": "2020-08-18T17:17:46+00:00"
},
{
"name": "ratchet/rfc6455",
"version": "v0.3",
"source": {
"type": "git",
"url": "https://github.com/ratchetphp/RFC6455.git",
"reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c8651c7938651c2d55f5d8c2422ac5e57a183341",
"reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341",
"shasum": ""
},
"require": {
"guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2"
},
"require-dev": {
"phpunit/phpunit": "5.7.*",
"react/socket": "^1.3"
},
"type": "library",
"autoload": {
"psr-4": {
"Ratchet\\RFC6455\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
}
],
"description": "RFC6455 WebSocket protocol handler",
"homepage": "http://socketo.me",
"keywords": [
"WebSockets",
"rfc6455",
"websocket"
],
"time": "2020-05-15T18:31:24+00:00"
},
{
"name": "react/cache",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/cache.git",
"reference": "44a568925556b0bd8cacc7b49fb0f1cf0d706a0c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/cache/zipball/44a568925556b0bd8cacc7b49fb0f1cf0d706a0c",
"reference": "44a568925556b0bd8cacc7b49fb0f1cf0d706a0c",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/promise": "^3.0 || ^2.0 || ^1.1"
},
"require-dev": {
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, Promise-based cache interface for ReactPHP",
"keywords": [
"cache",
"caching",
"promise",
"reactphp"
],
"time": "2020-09-18T12:12:35+00:00"
},
{
"name": "react/dns",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/dns.git",
"reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/665260757171e2ab17485b44e7ffffa7acb6ca1f",
"reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.0 || ^0.5",
"react/promise": "^3.0 || ^2.7 || ^1.2.1",
"react/promise-timer": "^1.2"
},
"require-dev": {
"clue/block-react": "^1.2",
"phpunit/phpunit": "^9.3 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Dns\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async DNS resolver for ReactPHP",
"keywords": [
"async",
"dns",
"dns-resolver",
"reactphp"
],
"time": "2020-09-18T12:12:55+00:00"
},
{
"name": "react/event-loop",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/reactphp/event-loop.git",
"reference": "6d24de090cd59cfc830263cfba965be77b563c13"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/6d24de090cd59cfc830263cfba965be77b563c13",
"reference": "6d24de090cd59cfc830263cfba965be77b563c13",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
},
"suggest": {
"ext-event": "~1.0 for ExtEventLoop",
"ext-pcntl": "For signal handling support when using the StreamSelectLoop",
"ext-uv": "* for ExtUvLoop"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\EventLoop\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
"keywords": [
"asynchronous",
"event-loop"
],
"time": "2020-01-01T18:39:52+00:00"
},
{
"name": "react/promise",
"version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
"reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com"
}
],
"description": "A lightweight implementation of CommonJS Promises/A for PHP",
"keywords": [
"promise",
"promises"
],
"time": "2020-05-12T15:16:56+00:00"
},
{
"name": "react/promise-timer",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise-timer.git",
"reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"shasum": ""
},
"require": {
"php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^3.0 || ^2.7.0 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^9.0 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Promise\\Timer\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@lueck.tv"
}
],
"description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.",
"homepage": "https://github.com/reactphp/promise-timer",
"keywords": [
"async",
"event-loop",
"promise",
"reactphp",
"timeout",
"timer"
],
"time": "2020-07-10T12:18:06+00:00"
},
{
"name": "react/socket",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/socket.git",
"reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/socket/zipball/e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"shasum": ""
},
"require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0",
"react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.6.0 || ^1.2.1",
"react/promise-timer": "^1.4.0",
"react/stream": "^1.1"
},
"require-dev": {
"clue/block-react": "^1.2",
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
"react/promise-stream": "^1.2"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Socket\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [
"Connection",
"Socket",
"async",
"reactphp",
"stream"
],
"time": "2020-08-28T12:49:05+00:00"
},
{
"name": "react/stream",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/reactphp/stream.git",
"reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"shasum": ""
},
"require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.8",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5"
},
"require-dev": {
"clue/stream-filter": "~1.2",
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Stream\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
"keywords": [
"event-driven",
"io",
"non-blocking",
"pipe",
"reactphp",
"readable",
"stream",
"writable"
],
"time": "2020-05-04T10:17:57+00:00"
},
{
"name": "sensio/framework-extra-bundle",
"version": "v5.5.6",

View File

@ -11,10 +11,21 @@ fos_ck_editor:
full_config:
language: fr
toolbar: "my_full_toolbar"
extraPlugins: ["html5video","youtube"]
small_config:
language: fr
toolbar: "my_small_toolbar"
removePlugins: 'elementspath'
plugins:
youtube:
path: "build/ckeditor/plugins/youtube/"
filename: "plugin.js"
html5video:
path: "build/ckeditor/plugins/html5video/"
filename: "plugin.js"
pastebase64:
path: "build/ckeditor/plugins/pastebase64/"
filename: "plugin.js"
toolbars:
configs:
my_full_toolbar: [ "@document1", "-", "@clipboard1", "-", "@basicstyles1", "-", "@paragraph1", "/", "@links1", "-", "@insert1", "-", "@styles1", "-" , "@colors1", "-" , "@tools1" ]

View File

@ -12,6 +12,8 @@ twig:
appName: '%appName%'
appCron: '%appCron%'
appMasteridentity: '%appMasteridentity%'
wssuse: '%wssuse%'
wssurl: '%wssurl%'
sondeUse: '%sondeUse%'
sondeUrl: '%sondeUrl%'

View File

@ -28,6 +28,10 @@ app_logoutcas:
path: /logoutcas
defaults: { _controller: App\Controller\SecurityController:logout }
app_casdebug:
path: /user/casdebug
defaults: { _controller: App\Controller\SecurityController:casdebug }
#== Config ========================================================================================================
app_config:
path: /admin/config
@ -53,6 +57,20 @@ app_config_logo:
path: /admin/config/logo
defaults: { _controller: App\Controller\ConfigController:logo }
#== Theme ================================================================================================================
app_theme:
path: /admin/theme
defaults: { _controller: App\Controller\ThemeController:list }
app_theme_select:
path: /admin/theme/select/{name}
defaults: { _controller: App\Controller\ThemeController:select, name: "" }
#== Wss ==================================================================================================================
app_wss_sample:
path: /user/wss/sampble
defaults: { _controller: App\Controller\WebsocketController:sample }
#== Sonde ================================================================================================================
app_sonde:
path: /sonde
@ -67,6 +85,10 @@ app_crop02:
path: /user/crop02/{type}/{reportinput}
defaults: { _controller: App\Controller\CropController:crop02 }
app_ckupload:
path: /user/ckupload
defaults: { _controller: App\Controller\CropController:ckupload }
oneup_uploader:
resource: .
type: uploader

View File

@ -28,6 +28,7 @@ parameters:
ldapModel: '%env(resolve:LDAP_MODEL)%'
ldapHost: '%env(resolve:LDAP_HOST)%'
ldapPort: '%env(resolve:LDAP_PORT)%'
ldapTls: '%env(resolve:LDAP_TLS)%'
ldapUser: '%env(resolve:LDAP_USER)%'
ldapPassword: '%env(resolve:LDAP_PASSWORD)%'
ldapBasedn: '%env(resolve:LDAP_BASEDN)%'
@ -46,6 +47,10 @@ parameters:
casEmail: '%env(resolve:CAS_EMAIL)%'
casLastname: '%env(resolve:CAS_LASTNAME)%'
casFirstname: '%env(resolve:CAS_FIRSTNAME)%'
wssuse: '%env(resolve:WSS_USE)%'
wssport: '%env(resolve:WSS_PORT)%'
wssurl: 'wss://%env(resolve:APP_WEBURL)%/wss%env(resolve:APP_ALIAS)%'
proxyUse: '%env(resolve:PROXY_USE)%'
proxyHost: '%env(resolve:PROXY_HOST)%'
@ -62,6 +67,7 @@ services:
bind:
$ldapHost: '%ldapHost%'
$ldapPort: '%ldapPort%'
$ldapTls: '%ldapTls%'
$ldapUser: '%ldapUser%'
$ldapPassword: '%ldapPassword%'
$ldapBasedn: '%ldapBasedn%'
@ -101,7 +107,7 @@ services:
app.ldap.service:
public: true
class: App\Service\ldapService
arguments: ["%ldapHost%","%ldapPort%","%ldapUser%","%ldapPassword%","%ldapBasedn%"]
arguments: ["%ldapHost%","%ldapPort%","%ldapTls%","%ldapUser%","%ldapPassword%","%ldapBasedn%"]
app.upload.samename:
public: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 615 B

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 945 B

After

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 707 B

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 B

After

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 1017 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 B

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 920 B

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 755 B

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 455 B

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 419 B

View File

@ -0,0 +1,259 @@
CKEDITOR.dialog.add( 'html5video', function( editor ) {
return {
title: editor.lang.html5video.title,
minWidth: 500,
minHeight: 100,
contents: [ {
id: 'info',
label: editor.lang.html5video.infoLabel,
elements: [
{
type: 'vbox',
padding: 0,
children: [
{
type: 'hbox',
widths: [ '365px', '110px' ],
align: 'right',
children: [ {
type: 'text',
id: 'url',
label: editor.lang.html5video.allowed,
required: true,
validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ),
setup: function( widget ) {
this.setValue( widget.data.src );
},
commit: function( widget ) {
widget.setData( 'src', this.getValue() );
}
},
{
type: 'button',
id: 'browse',
// v-align with the 'txtUrl' field.
// TODO: We need something better than a fixed size here.
style: 'display:inline-block;margin-top:14px;',
align: 'center',
label: editor.lang.common.browseServer,
hidden: true,
filebrowser: 'info:url'
} ]
} ]
},
{
type: 'checkbox',
id: 'responsive',
label: editor.lang.html5video.responsive,
setup: function( widget ) {
this.setValue( widget.data.responsive );
},
commit: function( widget ) {
widget.setData( 'responsive', this.getValue()?'true':'' );
}
},
{
type: 'vbox',
padding: 0,
children: [{
type: 'hbox',
widths: [ '365px', '110px' ],
align: 'right',
children: [ {
type: 'text',
id: 'poster',
label: editor.lang.html5video.poster,
setup: function( widget ) {
this.setValue( widget.data.poster );
},
commit: function( widget ) {
widget.setData( 'poster', this.getValue() );
}
},
{
type: 'button',
id: 'browseposter',
// v-align with the 'txtUrl' field.
// TODO: We need something better than a fixed size here.
style: 'display:inline-block;margin-top:14px;',
align: 'center',
label: editor.lang.common.browseServer,
hidden: true,
filebrowser:{action:"Browse",target:"info:poster",url:editor.config.filebrowserImageBrowseUrl}
} ]
}]
},
{
type: 'checkbox',
id: 'controls',
label: editor.lang.html5video.controls,
setup: function (widget) {
this.setValue(widget.data.controls);
},
commit: function (widget) {
widget.setData('controls', this.getValue() ? 'true' : '');
}
},
{
type: 'hbox',
id: 'size',
children: [ {
type: 'text',
id: 'width',
label: editor.lang.common.width,
setup: function( widget ) {
if ( widget.data.width ) {
this.setValue( widget.data.width );
}
},
commit: function( widget ) {
widget.setData( 'width', this.getValue() );
}
},
{
type: 'text',
id: 'height',
label: editor.lang.common.height,
setup: function( widget ) {
if ( widget.data.height ) {
this.setValue( widget.data.height );
}
},
commit: function( widget ) {
widget.setData( 'height', this.getValue() );
}
},
]
},
{
type: 'hbox',
id: 'alignment',
children: [ {
type: 'radio',
id: 'align',
label: editor.lang.common.align,
items: [
[editor.lang.common.alignCenter, 'center'],
[editor.lang.common.alignLeft, 'left'],
[editor.lang.common.alignRight, 'right'],
[editor.lang.common.alignNone, 'none']
],
'default': 'center',
setup: function( widget ) {
if ( widget.data.align ) {
this.setValue( widget.data.align );
}
},
commit: function( widget ) {
widget.setData( 'align', this.getValue() );
}
} ]
} ]
},
{
id: 'Upload',
hidden: true,
filebrowser: 'uploadButton',
label: editor.lang.html5video.upload,
elements: [ {
type: 'file',
id: 'upload',
label: editor.lang.html5video.btnUpload,
style: 'height:40px',
size: 38
},
{
type: 'fileButton',
id: 'uploadButton',
filebrowser: 'info:url',
label: editor.lang.html5video.btnUpload,
'for': [ 'Upload', 'upload' ]
} ]
},
{
id: 'advanced',
label: editor.lang.html5video.advanced,
elements: [ {
type: 'vbox',
padding: 10,
children: [ {
type: 'hbox',
widths: ["33%", "33%", "33%"],
children: [ {
type: 'radio',
id: 'autoplay',
label: editor.lang.html5video.autoplay,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.autoplay ) {
this.setValue( widget.data.autoplay );
}
},
commit: function( widget ) {
widget.setData( 'autoplay', this.getValue() );
}
},
{
type: 'radio',
id: 'loop',
label: editor.lang.html5video.loop,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.loop ) {
this.setValue( widget.data.loop );
}
},
commit: function( widget ) {
widget.setData( 'loop', this.getValue() );
}
},
{
type: 'radio',
id: 'allowdownload',
label: editor.lang.html5video.allowdownload,
items: [
[editor.lang.html5video.yes, 'yes'],
[editor.lang.html5video.no, 'no']
],
'default': 'no',
setup: function( widget ) {
if ( widget.data.allowdownload ) {
this.setValue(widget.data.allowdownload);
}
},
commit: function( widget ) {
widget.setData( 'allowdownload', this.getValue() );
}
} ]
},
{
type: 'hbox',
children: [ {
type: "text",
id: 'advisorytitle',
label: editor.lang.html5video.advisorytitle,
'default': '',
setup: function( widget ) {
if ( widget.data.advisorytitle ) {
this.setValue(widget.data.advisorytitle);
}
},
commit: function( widget ) {
widget.setData( 'advisorytitle', this.getValue() );
}
} ]
} ]
} ]
} ]
};
} );

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'bg', {
button: 'Вмъква HTML5 видео',
title: 'HTML5 видео',
infoLabel: 'Видео',
allowed: 'Допустими файлови разширения: MP4, WebM, Ogv',
urlMissing: 'URL адресът на източника на видео липсва.',
videoProperties: 'Свойства на видео',
upload: 'Качване',
btnUpload: 'Изпрати на сървъра',
advanced: 'Разширено',
autoplay: 'Автоматично изпълнение',
allowdownload: 'Позволено изтегляне?',
advisorytitle: 'Заглавие',
yes: 'Да',
no: 'Не',
loop: 'Циклично изпълнение',
responsive: 'Адаптивна ширина',
controls: 'Показване на контролите',
poster: 'URL миниатюра'
} );

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'ca', {
button: "Insereix un vídeo HTML5",
title: "Vídeo HTML5",
infoLabel: "Informació del vídeo",
allowed: "Extensions d'arxius permeses: MP4, WebM, Ogv",
urlMissing: "Falta l'URL de la font de vídeo.",
videoProperties: "Propietats de vídeo",
upload: "Pujar",
btnUpload: "Envia-lo al servidor",
advanced: "Avançat",
autoplay: "Reproducció automàtica?",
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: "Sí",
no: "No",
loop: "Bucle?",
responsive: "Ample adaptatiu",
controls: "Mostra els controls",
poster: "Miniatura"
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'de', {
button: 'HTML5 Video einfügen',
title: 'HTML5 Video',
infoLabel: 'Video Infos',
allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv',
urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.',
videoProperties: 'Video-Einstellungen',
upload: 'Hochladen',
btnUpload: 'Zum Server senden',
advanced: 'Erweitert',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Ja',
no: 'Nein',
controls: 'Steuerelemente anzeigen'
} );

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'en', {
button: 'Insert HTML5 video',
title: 'HTML5 video',
infoLabel: 'Video info',
allowed: 'Allowed file extensions: MP4, WebM, Ogv',
urlMissing: 'Video source URL is missing.',
videoProperties: 'Video properties',
upload: 'Upload',
btnUpload: 'Send it to the server',
advanced: 'Advanced',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Yes',
no: 'No',
loop: 'Loop?',
responsive: 'Responsive width',
controls: 'Show controls',
poster: 'Thumbnail'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'es', {
button: 'Insertar video HTML5',
title: 'Video HTML5',
infoLabel: 'Información del video',
allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv',
urlMissing: 'La URL del video no puede estar vacía.',
videoProperties: 'Propiedades del video',
upload: 'Cargar',
btnUpload: 'Enviar al servidor',
advanced: 'Avanzado',
autoplay: '¿Reproducir automáticamente?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sí',
no: 'No',
responsive: '¿Responsive?',
controls: 'Mostrar controles'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'eu', {
button: 'Txertatu HTML5 bideoa',
title: 'HTML5 bideoa',
infoLabel: 'Bideoaren informazioa',
allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv',
urlMissing: 'Bideoaren URLak ezin du hutsik egon.',
videoProperties: 'Bideoaren propietateak',
upload: 'Kargatu',
btnUpload: 'Bidali zerbitzarira',
advanced: 'Aurreratua',
autoplay: 'Automatikoki erreproduzitu?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Bai',
no: 'Ez',
controls: 'Erakutsi kontrolak?'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'fa', {
button: 'وارد کردن ویدیوی HTML5',
title: 'ویدیوی HTML5',
infoLabel: 'اطلاعات ویدیو',
allowed: 'پسوندهای مجاز فایل: MP4, WebM, Ogv',
urlMissing: 'URL منبع ویدیو پیدا نشد.',
videoProperties: 'خواهص ویدیو',
upload: 'بارگذاری',
btnUpload: 'ارسال به سرور',
advanced: 'پیشرفته',
autoplay: 'پخش خودکار؟',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'بله',
no: 'خیر',
responsive: 'عرض واکنشگرا',
controls: 'نمایش کنترل؟'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'fr', {
button: 'Insérer un lecteur video HTML5',
title: 'HTML5 video',
infoLabel: 'Informations video',
allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv',
urlMissing: 'URL de la source video manquante. Veuillez la renseigner.',
videoProperties: 'Propriétés Video',
upload: 'Télécharger',
btnUpload: 'Envoyer vers le serveur',
advanced: 'Avancé',
autoplay: 'Jouer automatiquement ?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Oui',
no: 'Non',
controls: 'Afficher les contrôles ?'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang('html5video', 'he', {
button: 'הוסף וידאו HTML5',
title: 'וידאו HTML5',
infoLabel: 'מידע וידאו',
allowed: 'סוגי קבצים מורשים: MP4, WebM, Ogv',
urlMissing: 'כתובת הוידאו חסרה',
videoProperties: 'מאפייני וידאו',
upload: 'העלה',
btnUpload: 'שלח לשרת',
advanced: 'מתקדם',
autoplay: 'ניגון אוטומטי?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'כן',
no: 'לא',
responsive: 'רוחב רספונסיבי'
});

View File

@ -0,0 +1,20 @@
CKEDITOR.plugins.setLang( 'html5video', 'ko', {
button: 'HTML5 비디오 추가하기',
title: 'HTML5 비디오',
infoLabel: '비디오 정보',
allowed: '허용된 파일 확장자들: MP4, WebM, Ogv',
urlMissing: '비디오 Url이 없습니다.',
videoProperties: '비디오 속성',
upload: '업로드',
btnUpload: '서버로 전송',
advanced: '고급',
autoplay: '자동재생?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: '네',
no: '아니오',
loop: '무한반복?',
responsive: '반응형 너비',
controls: '컨트롤 보여주기',
poster: '썸네일'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pl', {
button: 'Wstaw HTML5 video',
title: 'HTML5 video',
infoLabel: 'Informacje',
allowed: 'Dozwolone typy plików: MP4, WebM, Ogv',
urlMissing: 'Nie znaleziono URL do pliku video.',
videoProperties: 'Właściwości',
upload: 'Wrzuć plik',
btnUpload: 'Wyślij na serwer',
advanced: 'Zaawansowane',
autoplay: 'Autoodtwarzanie?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Tak',
no: 'Nie',
responsive: 'Szerokość responsywna',
controls: 'Pokaż kontrolki'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pt-br', {
button: 'Inserir vídeo HTML5',
title: 'HTML5 video',
infoLabel: 'Informações do Vídeo',
allowed: 'Extensões permitidas: MP4, WebM, Ogv',
urlMissing: 'O URL do vídeo está faltando.',
videoProperties: 'Propriedades do vídeo',
upload: 'Upload',
btnUpload: 'Enviar para o servidor',
advanced: 'Avançado',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sim',
no: 'Não',
responsive: 'Largura responsiva',
controls: 'Exibir controles'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'pt', {
button: 'Inserir vídeo HTML5',
title: 'HTML5 video',
infoLabel: 'Informações do Vídeo',
allowed: 'Extensões permitidas: MP4, WebM, Ogv',
urlMissing: 'O URL do vídeo está faltando.',
videoProperties: 'Propriedades do vídeo',
upload: 'Upload',
btnUpload: 'Enviar para o servidor',
advanced: 'Avançado',
autoplay: 'Autoplay?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Sim',
no: 'Não',
responsive: 'Largura responsiva',
controls: 'Exibir controles'
} );

View File

@ -0,0 +1,21 @@
CKEDITOR.plugins.setLang( 'html5video', 'ru', {
button: 'Вставить HTML5 видео',
title: 'HTML5 видео',
infoLabel: 'Видео',
allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv',
urlMissing: 'Не выбран источник видео',
videoProperties: 'Свойства видео',
upload: 'Загрузить',
btnUpload: 'Загрузить на сервер',
advanced: 'Дополнительно',
autoplay: 'Автовоспроизведение',
allowdownload: 'Разрешить загрузку',
advisorytitle: 'Заголовок',
yes: 'Да',
no: 'Нет',
responsive: 'Адаптивная ширина',
controls: 'Показать элементы управления',
loop: 'Зациклить',
poster: 'Постер',
advisorytitle: 'Пояснительный текст'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'uk', {
button: 'Вставити HTML5 відео',
title: 'HTML5 відео',
infoLabel: 'Інформація',
allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv',
urlMissing: 'Не обрано джерела відео',
videoProperties: 'Властивості відео',
upload: 'Відвантажити',
btnUpload: 'Відвантажити на сервер',
advanced: 'Додатково',
autoplay: 'Автовідтворення?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Так',
no: 'Ні',
controls: 'Показати елементи керування?'
} );

View File

@ -0,0 +1,17 @@
CKEDITOR.plugins.setLang( 'html5video', 'uz', {
button: 'HTML5 video qoshing',
title: 'HTML5 video',
infoLabel: 'Video ma\'lumot',
allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv',
urlMissing: 'Video\'ning URL manbasi topilmadi.',
videoProperties: 'Video xususiyatlari',
upload: 'Yuklash',
btnUpload: 'Serverga jonatish',
advanced: 'Kengaytrilgan',
autoplay: 'Avtoijro?',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: 'Ha',
no: 'Yoq',
controls: 'Tekshiruvlarni korsatish'
} );

View File

@ -0,0 +1,18 @@
CKEDITOR.plugins.setLang( 'html5video', 'zh-cn', {
button: '发布HTML5视频',
title: 'HTML5视频',
infoLabel: '视频信息',
allowed: '支持格式: MP4, WebM, Ogv',
urlMissing: '视频url',
videoProperties: '视频属性',
upload: '上传视频',
btnUpload: '上传',
advanced: '高级',
autoplay: '自动播放',
allowdownload: 'Allow download?',
advisorytitle: 'Advisory title',
yes: '是',
no: '否',
responsive: '自动宽度',
controls: '显示控件?'
} );

View File

@ -0,0 +1,196 @@
CKEDITOR.plugins.add( 'html5video', {
requires: 'widget',
lang: 'bg,ca,de,en,eu,es,ru,uk,fr,ko,pt,pt-br,pl',
icons: 'html5video',
init: function( editor ) {
editor.widgets.add( 'html5video', {
button: editor.lang.html5video.button,
template: '<div class="ckeditor-html5-video"></div>',
/*
* Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules):
* - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class.
* - video tags with src, controls, width and height attributes.
*/
allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,poster,controls,autoplay,width, height,loop]{max-width,height};',
requiredContent: 'div(ckeditor-html5-video); video[src];',
upcast: function( element ) {
return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' );
},
dialog: 'html5video',
init: function() {
var src = '';
var autoplay = '';
var loop = '';
var controls = '';
var align = this.element.getStyle( 'text-align' );
var width = '';
var height = '';
var poster = '';
// If there's a child (the video element)
if ( this.element.getChild( 0 ) ) {
// get it's attributes.
src = this.element.getChild( 0 ).getAttribute( 'src' );
width = this.element.getChild( 0 ).getAttribute( 'width' );
height = this.element.getChild( 0 ).getAttribute( 'height' );
autoplay = this.element.getChild(0).getAttribute('autoplay');
allowdownload = !this.element.getChild( 0 ).getAttribute( 'controlslist' );
loop = this.element.getChild( 0 ).getAttribute( 'loop' );
advisorytitle = this.element.getChild( 0 ).getAttribute( 'title' );
controls = this.element.getChild(0).getAttribute('controls');
responsive = this.element.getAttribute( 'data-responsive' );
poster = this.element.getChild( 0 ).getAttribute( 'poster' );
}
if ( src ) {
this.setData( 'src', src );
if ( align ) {
this.setData( 'align', align );
} else {
this.setData( 'align', 'none' );
}
if ( width ) {
this.setData( 'width', width );
}
if ( height ) {
this.setData( 'height', height );
}
if ( autoplay ) {
this.setData( 'autoplay', 'yes' );
}
if ( allowdownload ) {
this.setData( 'allowdownload', 'yes' );
}
if ( loop ) {
this.setData( 'loop', 'yes' );
}
if ( advisorytitle ) {
this.setData( 'advisorytitle', advisorytitle );
}
if ( responsive ) {
this.setData( 'responsive', responsive );
}
if (controls) {
this.setData('controls', controls);
}
if ( poster ) {
this.setData('poster', poster);
}
}
},
data: function() {
// If there is an video source
if ( this.data.src ) {
// and there isn't a child (the video element)
if ( !this.element.getChild( 0 ) ) {
// Create a new <video> element.
var videoElement = new CKEDITOR.dom.element( 'video' );
// Set the controls attribute.
if (this.data.controls) {
videoElement.setAttribute('controls', 'controls');
}
// Append it to the container of the plugin.
this.element.append( videoElement );
}
this.element.getChild( 0 ).setAttribute( 'src', this.data.src );
if (this.data.width) this.element.getChild( 0 ).setAttribute( 'width', this.data.width );
if (this.data.height) this.element.getChild( 0 ).setAttribute( 'height', this.data.height );
if ( this.data.responsive ) {
this.element.setAttribute("data-responsive", this.data.responsive);
this.element.getChild( 0 ).setStyle( 'max-width', '100%' );
this.element.getChild( 0 ).setStyle( 'height', 'auto' );
} else {
this.element.removeAttribute("data-responsive");
this.element.getChild( 0 ).removeStyle( 'max-width' );
this.element.getChild( 0 ).removeStyle( 'height' );
}
if (this.data.poster) this.element.getChild( 0 ).setAttribute('poster', this.data.poster);
}
this.element.removeStyle( 'float' );
this.element.removeStyle( 'margin-left' );
this.element.removeStyle( 'margin-right' );
if ( this.data.align === 'none' ) {
this.element.removeStyle( 'text-align' );
} else {
this.element.setStyle( 'text-align', this.data.align );
}
if ( this.data.align === 'left' ) {
this.element.setStyle( 'float', this.data.align );
this.element.setStyle( 'margin-right', '10px' );
} else if ( this.data.align === 'right' ) {
this.element.setStyle( 'float', this.data.align );
this.element.setStyle( 'margin-left', '10px' );
}
if ( this.element.getChild( 0 ) ) {
if ( this.data.autoplay === 'yes' ) {
this.element.getChild( 0 ).setAttribute( 'autoplay', 'autoplay' );
} else {
this.element.getChild( 0 ).removeAttribute( 'autoplay' );
}
if ( this.data.loop === 'yes' ) {
this.element.getChild( 0 ).setAttribute( 'loop', 'loop' );
} else {
this.element.getChild( 0 ).removeAttribute( 'loop' );
}
if ( this.data.allowdownload === 'yes' ) {
this.element.getChild( 0 ).removeAttribute( 'controlslist' );
} else {
this.element.getChild( 0 ).setAttribute( 'controlslist', 'nodownload' );
}
if ( this.data.advisorytitle ) {
this.element.getChild( 0 ).setAttribute( 'title', this.data.advisorytitle );
} else {
this.element.getChild( 0 ).removeAttribute( 'title' );
}
if (this.data.controls) {
this.element.getChild(0).setAttribute('controls', 'controls');
} else {
this.element.getChild(0).removeAttribute('controls');
}
}
}
} );
if ( editor.contextMenu ) {
editor.addMenuGroup( 'html5videoGroup' );
editor.addMenuItem( 'html5videoPropertiesItem', {
label: editor.lang.html5video.videoProperties,
icon: 'html5video',
command: 'html5video',
group: 'html5videoGroup'
});
editor.contextMenu.addListener( function( element ) {
if ( element &&
element.getChild( 0 ) &&
element.getChild( 0 ).hasClass &&
element.getChild( 0 ).hasClass( 'ckeditor-html5-video' ) ) {
return { html5videoPropertiesItem: CKEDITOR.TRISTATE_OFF };
}
});
}
CKEDITOR.dialog.add( 'html5video', this.path + 'dialogs/html5video.js' );
}
} );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 533 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 B

After

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 B

After

Width:  |  Height:  |  Size: 752 B

Some files were not shown because too many files have changed in this diff Show More