19 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
211 changed files with 2120 additions and 218 deletions

1
debian/compat vendored
View File

@ -1 +0,0 @@
7

24
debian/control vendored
View File

@ -1,24 +0,0 @@
Source: eole-nineschool
Section: web
Priority: optional
Maintainer: Equipe Envole <eole@ac-dijon.fr>
Build-Depends: debhelper (>= 7.0.50)
Standards-Version: 3.8.4
Homepage: http://eole.orion.education.fr/diff/
Vcs-Git: http://dev-eole.ac-dijon.fr/git/nineschool
Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/nineschool/repository
Package: nineschool-sso
Architecture: all
Depends: ${misc:Depends}, eole-sso
Description: Filtre SSO pour nineschool "EOLE".
Package: eole-nineschool
Architecture: all
Depends: ${misc:Depends}, eole-envole-dependances, nineschool-sso
Description: Eolisation de l'application nineschool.
Package: nineschool-apps
Architecture: all
Depends: ${misc:Depends}, envole-dependances-apps
Description: Sources pour nineschool "EOLE".

44
debian/copyright vendored
View File

@ -1,44 +0,0 @@
Format: http://dep.debian.net/deps/dep5
Upstream-Name: {PROJECT}
Source: {URL}
Files: *
Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}>
License: {UPSTREAM LICENSE}
Files: debian/*
Copyright: 2012 Équipe EOLE <eole@ac-dijon.fr>
License: CeCILL-2
License: {UPSTREAM LICENSE}
{TEXT OF THE LICENSE}
License: CeCILL-2
This software is governed by the CeCILL-2 license under French law and
abiding by the rules of distribution of free software. You can use,
modify and or redistribute the software under the terms of the CeCILL-2
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info";.
.
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL-2 license and that you accept its terms.
.
On Eole systems, the complete text of the CeCILL-2 License can be found
in '/usr/share/common-licenses/CeCILL-2-en'.

View File

@ -1 +0,0 @@
usr/share/eole

3
debian/gbp.conf vendored
View File

@ -1,3 +0,0 @@
# Set per distribution debian tag
[DEFAULT]
debian-tag = debian/envole/%(version)s

View File

@ -1 +0,0 @@
var/www/html

View File

@ -1 +0,0 @@
usr/share/sso

8
debian/rules vendored
View File

@ -1,8 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@

View File

@ -1 +0,0 @@
3.0 (native)

View File

@ -2,6 +2,7 @@
<creole> <creole>
<files> <files>
<file filelist='nineschool' name='/etc/eole/eole-db.d/nineschool-db.yml' rm='True' mkdir='True'/> <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> </files>
<containers> <containers>
@ -19,10 +20,11 @@
</containers> </containers>
<variables> <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="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> <value>oui</value>
</variable> </variable>
@ -52,8 +54,9 @@
<variable type='string' name='nineschool_smtppwd' description='Mot de passe associé du compte SMTP' mandatory='True' /> <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_smtpencryption' description='Type Encryptage du serveur SMTP' mandatory='True' />
<variable type='string' name='nineschool_smtpauthmode' description='Mode Authentification 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 --> <!-- BDD -->
<variable type='string' name='nineschool_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/> <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'/> <variable type='string' name='nineschool_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
@ -66,7 +69,7 @@
<separators> <separators>
<separator name="nineschool_ldaptemplate">Paramètres associés à l'Annuaire</separator> <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_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> </separators>
</variables> </variables>
@ -75,9 +78,15 @@
<condition name='hidden_if_in' source='activer_apache'> <condition name='hidden_if_in' source='activer_apache'>
<param>non</param> <param>non</param>
<target type='filelist'>nineschool</target> <target type='filelist'>nineschool</target>
<target type='filelist'>nineschool_nginx</target>
<target type='servicelist'>nineschool</target> <target type='servicelist'>nineschool</target>
</condition> </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 --> <!-- AFFICHAGE EN FONCTION DE NINESCHOOL -->
<condition name='hidden_if_in' source='activer_nineschool'> <condition name='hidden_if_in' source='activer_nineschool'>
@ -107,6 +116,7 @@
<target type='variable'>nineschool_dbpass</target> <target type='variable'>nineschool_dbpass</target>
<target type='filelist'>nineschool</target> <target type='filelist'>nineschool</target>
<target type='filelist'>nineschool_nginx</target>
<target type='servicelist'>nineschool</target> <target type='servicelist'>nineschool</target>
</condition> </condition>

View File

@ -1,36 +1,19 @@
# In all environments, the following files are loaded if they exist, # Symfony
# the latter taking precedence over the former: APP_ENV=PROD
# APP_SECRET=changemeinenvlocal
# * .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
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 #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)$' #TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###< doctrine/doctrine-bundle ###
# Basic # Basic
APP_ALIAS=nineschool APP_WEBURL=
APP_MASTERIDENTITY=LDAP
APP_AUTH=MYSQL APP_AUTH=MYSQL
APP_NAME=Nineschool APP_ALIAS=
APP_ENV=PROD APP_NAME=
APP_CRON=false APP_CRON=1
APP_MASTERURL=
APP_MASTERKEY=
# BDD # BDD
DATABASE_NAME= DATABASE_NAME=
@ -38,12 +21,15 @@ DATABASE_USER=
DATABASE_PASSWORD= DATABASE_PASSWORD=
DATABASE_HOST= DATABASE_HOST=
# MAIL sendmail / smtp # MAIL sendmail / smtp
MAILER_METHOD=sendmail MAILER_METHOD=sendmail
MAILER_URL= MAILER_URL=
MAILER_NOREPLY=noreply@noreply.fr MAILER_NOREPLY=noreply@noreply.fr
# LDAP # LDAP
LDAP_MODEL=open
LDAP_HOST= LDAP_HOST=
LDAP_PORT= LDAP_PORT=
LDAP_USER= LDAP_USER=
@ -55,6 +41,7 @@ LDAP_LASTNAME=sn
LDAP_EMAIL=mail LDAP_EMAIL=mail
LDAP_ADMINS='["admin"]' LDAP_ADMINS='["admin"]'
# If APP_AUTH = CAS # If APP_AUTH = CAS
CAS_HOST= CAS_HOST=
CAS_PORT= CAS_PORT=
@ -64,9 +51,18 @@ CAS_EMAIL=email
CAS_LASTNAME=lastname CAS_LASTNAME=lastname
CAS_FIRSTNAME=firstname CAS_FIRSTNAME=firstname
###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost" # WEBSOCKET
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" WSS_USE=0
# Delivery is disabled by default via "null://localhost" WSS_PORT=5586
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###
# Proxy
PROXY_USE=0
PROXY_HOST=
PROXY_PORT=
# Sonde statistic
SONDE_USE=0
SONDE_URL=

View File

@ -11,10 +11,21 @@ fos_ck_editor:
full_config: full_config:
language: fr language: fr
toolbar: "my_full_toolbar" toolbar: "my_full_toolbar"
extraPlugins: ["html5video","youtube"]
small_config: small_config:
language: fr language: fr
toolbar: "my_small_toolbar" toolbar: "my_small_toolbar"
removePlugins: 'elementspath' 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: toolbars:
configs: configs:
my_full_toolbar: [ "@document1", "-", "@clipboard1", "-", "@basicstyles1", "-", "@paragraph1", "/", "@links1", "-", "@insert1", "-", "@styles1", "-" , "@colors1", "-" , "@tools1" ] my_full_toolbar: [ "@document1", "-", "@clipboard1", "-", "@basicstyles1", "-", "@paragraph1", "/", "@links1", "-", "@insert1", "-", "@styles1", "-" , "@colors1", "-" , "@tools1" ]

View File

@ -28,6 +28,10 @@ app_logoutcas:
path: /logoutcas path: /logoutcas
defaults: { _controller: App\Controller\SecurityController:logout } defaults: { _controller: App\Controller\SecurityController:logout }
app_casdebug:
path: /user/casdebug
defaults: { _controller: App\Controller\SecurityController:casdebug }
#== Config ======================================================================================================== #== Config ========================================================================================================
app_config: app_config:
path: /admin/config path: /admin/config

View File

@ -28,6 +28,7 @@ parameters:
ldapModel: '%env(resolve:LDAP_MODEL)%' ldapModel: '%env(resolve:LDAP_MODEL)%'
ldapHost: '%env(resolve:LDAP_HOST)%' ldapHost: '%env(resolve:LDAP_HOST)%'
ldapPort: '%env(resolve:LDAP_PORT)%' ldapPort: '%env(resolve:LDAP_PORT)%'
ldapTls: '%env(resolve:LDAP_TLS)%'
ldapUser: '%env(resolve:LDAP_USER)%' ldapUser: '%env(resolve:LDAP_USER)%'
ldapPassword: '%env(resolve:LDAP_PASSWORD)%' ldapPassword: '%env(resolve:LDAP_PASSWORD)%'
ldapBasedn: '%env(resolve:LDAP_BASEDN)%' ldapBasedn: '%env(resolve:LDAP_BASEDN)%'
@ -66,6 +67,7 @@ services:
bind: bind:
$ldapHost: '%ldapHost%' $ldapHost: '%ldapHost%'
$ldapPort: '%ldapPort%' $ldapPort: '%ldapPort%'
$ldapTls: '%ldapTls%'
$ldapUser: '%ldapUser%' $ldapUser: '%ldapUser%'
$ldapPassword: '%ldapPassword%' $ldapPassword: '%ldapPassword%'
$ldapBasedn: '%ldapBasedn%' $ldapBasedn: '%ldapBasedn%'
@ -105,7 +107,7 @@ services:
app.ldap.service: app.ldap.service:
public: true public: true
class: App\Service\ldapService class: App\Service\ldapService
arguments: ["%ldapHost%","%ldapPort%","%ldapUser%","%ldapPassword%","%ldapBasedn%"] arguments: ["%ldapHost%","%ldapPort%","%ldapTls%","%ldapUser%","%ldapPassword%","%ldapBasedn%"]
app.upload.samename: app.upload.samename:
public: true 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

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