premier commit
This commit is contained in:
commit
6b8dce9f7c
|
@ -0,0 +1 @@
|
|||
*~
|
|
@ -0,0 +1,27 @@
|
|||
################################
|
||||
# Makefile pour ninestat
|
||||
################################
|
||||
|
||||
SOURCE=ninestat
|
||||
VERSION=1.0
|
||||
EOLE_VERSION=2.6
|
||||
EOLE_RELEASE=2.6.2
|
||||
PKGAPPS=web
|
||||
|
||||
|
||||
################################
|
||||
# Début de zone à ne pas éditer
|
||||
################################
|
||||
|
||||
include eole.mk
|
||||
include apps.mk
|
||||
|
||||
################################
|
||||
# Fin de zone à ne pas éditer
|
||||
################################
|
||||
|
||||
# Makefile rules dedicated to application
|
||||
# if exists
|
||||
ifneq (, $(strip $(wildcard $(SOURCE).mk)))
|
||||
include $(SOURCE).mk
|
||||
endif
|
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# NE PAS EDITER CE FICHIER
|
||||
#
|
||||
# Voir Makefile
|
||||
|
||||
|
||||
##########################
|
||||
# Application web envole #
|
||||
##########################
|
||||
ifneq (, $(filter oui web, $(PKGAPPS)))
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
ifeq (, $(filter-out X.X, $(strip $(VERSION))))
|
||||
$(error $$(VERSION) variable has incorrect value '$(VERSION)')
|
||||
endif
|
||||
|
||||
# Where to store web application files
|
||||
WEB_PATH := $(DESTDIR)/var/www/html
|
||||
|
||||
# Envole
|
||||
sharenvole_PROG_DIR := $(DESTDIR)/usr/share/envole/$(SOURCE)
|
||||
|
||||
src_$(SOURCE)-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)
|
||||
src_plugins-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/plugin
|
||||
src_lang-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/lang
|
||||
|
||||
endif
|
||||
|
||||
##########################
|
||||
# Application EOLE flask #
|
||||
##########################
|
||||
ifneq (, $(filter flask, $(PKGAPPS)))
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
ifeq (, $(filter-out XXX, $(strip $(FLASK_MODULE))))
|
||||
$(error $$(FLASK_MODULE) variable has incorrect value '$(FLASK_MODULE)')
|
||||
endif
|
||||
|
||||
ifeq (, $(strip $(wildcard src/$(FLASK_MODULE).conf)))
|
||||
$(error missing eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||
endif
|
||||
|
||||
# Everything is related to mount point
|
||||
APPS_MOUNT_POINT := $(shell sed -ne 's|^"MOUNT_POINT"[[:space:]]*:[[:space:]]*"/\([^"]*\)",|\1|p' \
|
||||
src/$(FLASK_MODULE).conf)
|
||||
|
||||
ifeq (, $(strip $(APPS_MOUNT_POINT)))
|
||||
$(error no "MOUNT_POINT" in eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||
endif
|
||||
|
||||
# eole-flask configuration
|
||||
src_DATA_DIR := $(DESTDIR)/etc/eole/flask/available
|
||||
|
||||
# Where to store flask application files
|
||||
FLASK_PATH := $(eole_DIR)/flask/$(APPS_MOUNT_POINT)
|
||||
|
||||
# static files
|
||||
src_$(FLASK_MODULE)_static_REC_DIR := $(FLASK_PATH)/static
|
||||
src_$(FLASK_MODULE)_templates_REC_DIR := $(FLASK_PATH)/templates
|
||||
src_$(FLASK_MODULE)_instance_REC_DIR := $(FLASK_PATH)/resources
|
||||
|
||||
endif
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
|
||||
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||
CREATE DATABASE ninestat DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<creole>
|
||||
<files>
|
||||
<file filelist='ninestat' name='/etc/eole/eole-db.d/ninestat-db.yml' rm='True' mkdir='True'/>
|
||||
</files>
|
||||
|
||||
<containers>
|
||||
<container name='web'>
|
||||
<package>ninestat-apps</package>
|
||||
|
||||
<file filelist='ninestat' name='/etc/apache2/sites-available/ninestat' source='ninestat-apache.conf' rm="True"/>
|
||||
<file filelist="ninestat" name="/var/www/html/ninestat/app/config/parameters.yml" source="ninestat-parameters.yml" rm="True"/>
|
||||
<file filelist="ninestat" name="/var/www/html/ninestat/app/config/template.yml" source="ninestat-template.yml" rm="True"/>
|
||||
<file filelist="ninestat" name="/var/www/html/ninestat/scripts/ninestat-postservice-00.sh" source="ninestat-postservice-00.sh" rm="True" mode="700" />
|
||||
<file filelist="ninestat" name="/var/www/html/ninestat/src/Cadoles/CoreBundle/Command/data/core-init-01.sql" source="ninestat-init-01.sql" rm="True"/>
|
||||
<file filelist='ninestat' name='/etc/cron.d/ninestat' source='ninestat.cron' rm='True'/>
|
||||
|
||||
<service method='apache' servicelist='ninestat'>ninestat</service>
|
||||
</container>
|
||||
</containers>
|
||||
|
||||
<variables>
|
||||
<family name='ninestat'>
|
||||
<!-- BASIQUE -->
|
||||
<variable type='oui/non' name='activer_ninestat' description='Activer Ninestat'><value>oui</value></variable>
|
||||
|
||||
<variable type='string' name='ninestat_masteridentity' description="Maître de l'Identité" mandatory='True'><value>Ninegate</value></variable>
|
||||
<variable type='string' name='ninestat_urlidentity' description="URL complète de l'Identité" mandatory='True'><value>/ninegate</value></variable>
|
||||
<variable type='string' name='ninestat_apikeyidentity' description="API Key de l'Identité" mandatory='True'><value>APIKeyNinegate</value></variable>
|
||||
<variable type='string' name='ninestat_mode_auth' description="Mode Authentification" mandatory='True'><value>CAS</value></variable>
|
||||
<variable type='string' name='ninestat_api_key' description="Clé d'accès API" mandatory='True'><value>APIKeyninestat</value></variable>
|
||||
|
||||
<!-- MODULE CRON -->
|
||||
<variable type="oui/non" name='ninestat_activate_cron' description='Activer le module CRON' mandatory='True'>
|
||||
<value>oui</value>
|
||||
</variable>
|
||||
|
||||
<!-- EMAIL -->
|
||||
<variable type='string' name='ninestat_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
|
||||
<variable type='string' name='ninestat_smtphost' description='Host du serveur SMTP' />
|
||||
<variable type='string' name='ninestat_smtpport' description='Port du serveur SMTP' />
|
||||
<variable type='string' name='ninestat_smtpuser' description='Compte du serveur SMTP' />
|
||||
<variable type='string' name='ninestat_smtppwd' description='Fichier contenant le mot de passe associé du compte SMTP' />
|
||||
<variable type='string' name='ninestat_smtpencryption' description='Type Encryptage du serveur SMTP' />
|
||||
<variable type='string' name='ninestat_smtpauthmode' description='Mode Authentification du serveur SMTP' />
|
||||
|
||||
|
||||
|
||||
<!-- EOLEDB -->
|
||||
<variable type='string' name='ninestat_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
|
||||
<variable type='string' name='ninestat_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
|
||||
<variable type='number' name='ninestat_dbport' description="Port d'écoute du serveur de base de données" mode='expert'/>
|
||||
<variable type='string' name='ninestat_allow_hosts' description="Hôtes autorisés à utiliser la base de données" multi='True' mode='expert'/>
|
||||
<variable type='string' name='ninestat_dbuser' description='Utilisateur du serveur de base de données' mode='expert'/>
|
||||
<variable type='string' name='ninestat_dbpass' description='Fichier de mot de passe du serveur' mode='expert'/>
|
||||
</family>
|
||||
|
||||
<separators>
|
||||
<separator name="ninestat_noreply">Paramètres associés aux Mails</separator>
|
||||
<separator name="ninestat_db_mode">Paramètres associés à la Base de Données</separator>
|
||||
</separators>
|
||||
</variables>
|
||||
|
||||
<constraints>
|
||||
<condition name='hidden_if_in' source='activer_apache'>
|
||||
<param>non</param>
|
||||
<target type='variable'>activer_ninestat</target>
|
||||
</condition>
|
||||
|
||||
<condition name='hidden_if_in' source='activer_ninestat'>
|
||||
<param>non</param>
|
||||
|
||||
<target type='variable'>ninestat_masteridentity</target>
|
||||
<target type='variable'>ninestat_mode_auth</target>
|
||||
<target type='variable'>ninestat_api_key</target>
|
||||
|
||||
<target type='variable'>ninegate_activate_cron</target>
|
||||
|
||||
<target type='variable'>ninestat_noreply</target>
|
||||
<target type='variable'>ninestat_smtphost</target>
|
||||
<target type='variable'>ninestat_smtpport</target>
|
||||
<target type='variable'>ninestat_smtpuser</target>
|
||||
<target type='variable'>ninestat_smtppwd</target>
|
||||
<target type='variable'>ninestat_smtpencryption</target>
|
||||
<target type='variable'>ninestat_smtpauthmode</target>
|
||||
|
||||
<target type='variable'>ninestat_db_mode</target>
|
||||
<target type='variable'>ninestat_dbserver</target>
|
||||
<target type='variable'>ninestat_dbport</target>
|
||||
<target type='variable'>ninestat_allow_hosts</target>
|
||||
<target type='variable'>ninestat_dbuser</target>
|
||||
<target type='variable'>ninestat_dbpass</target>
|
||||
|
||||
<target type='filelist'>ninestat</target>
|
||||
<target type='servicelist'>ninestat</target>
|
||||
</condition>
|
||||
|
||||
<!-- AFFICHAGE EN FONCTION DU MODE DE BDD -->
|
||||
<condition name='hidden_if_in' source='ninestat_db_mode'>
|
||||
<param>local</param>
|
||||
<target type='variable'>ninestat_dbserver</target>
|
||||
<target type='variable'>ninestat_dbuser</target>
|
||||
<target type='variable'>ninestat_dbport</target>
|
||||
<target type='variable'>ninestat_dbpass</target>
|
||||
</condition>
|
||||
<condition name='hidden_if_in' source='ninestat_db_mode'>
|
||||
<param>default</param>
|
||||
<target type='variable'>ninestat_dbserver</target>
|
||||
<target type='variable'>ninestat_dbuser</target>
|
||||
<target type='variable'>ninestat_dbport</target>
|
||||
<target type='variable'>ninestat_dbpass</target>
|
||||
<target type='variable'>ninestat_allow_hosts</target>
|
||||
</condition>
|
||||
|
||||
|
||||
<!-- VALID EMUN DES DIFFRENTES COMBO -->
|
||||
<check name='valid_enum' target='ninestat_masteridentity'>
|
||||
<param>['Ninegate']</param>
|
||||
</check>
|
||||
|
||||
<check name='valid_enum' target='ninestat_mode_auth'>
|
||||
<param>['CAS', 'SAML', 'LDAP']</param>
|
||||
</check>
|
||||
|
||||
<check name='valid_enum' target='ninestat_smtpencryption'>
|
||||
<param>['tls', 'ssl', 'null']</param>
|
||||
</check>
|
||||
<check name='valid_enum' target='ninestat_smtpauthmode'>
|
||||
<param>['plain', 'login', 'cram-md5', 'null']</param>
|
||||
</check>
|
||||
|
||||
<check name='valid_enum' target='ninestat_db_mode'>
|
||||
<param>['default', 'externe', 'local']</param>
|
||||
</check>
|
||||
</constraints>
|
||||
<help>
|
||||
</help>
|
||||
</creole>
|
|
@ -0,0 +1,231 @@
|
|||
#
|
||||
# NE PAS EDITER CE FICHIER
|
||||
#
|
||||
# Utiliser <appli>.mk à inclure à la fin de Makefile
|
||||
|
||||
#################
|
||||
# Sanity checks #
|
||||
#################
|
||||
|
||||
ifeq (, $(DESTDIR))
|
||||
$(warning $$(DESTDIR) is empty, installation will be done in /)
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out XXX-XXX, $(strip $(SOURCE))))
|
||||
$(error $$(SOURCE) variable has incorrect value '$(SOURCE)')
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out 2.X, $(strip $(EOLE_VERSION))))
|
||||
$(error $$(EOLE_VERSION) variable has incorrect value '$(EOLE_VERSION)')
|
||||
endif
|
||||
|
||||
ifeq (, $(filter-out 2.X.Y, $(strip $(EOLE_RELEASE))))
|
||||
$(error $$(EOLE_RELEASE) variable has incorrect value '$(EOLE_RELEASE)')
|
||||
endif
|
||||
|
||||
#########################
|
||||
# Variables definitions #
|
||||
#########################
|
||||
|
||||
INSTALL := install
|
||||
INSTALL_DATA := install -m 644
|
||||
INSTALL_PROGRAM := install -m 755
|
||||
INSTALL_DIRECTORY := install -m 755 -d
|
||||
INSTALL_RECURSIVE := cp -dr --no-preserve=ownership
|
||||
|
||||
# Standard path
|
||||
bin_PROG_DIR := $(DESTDIR)/usr/bin
|
||||
sbin_PROG_DIR := $(DESTDIR)/usr/sbin
|
||||
man8_DATA_DIR := $(DESTDIR)/usr/share/man/fr.UTF-8/man8
|
||||
|
||||
# Base
|
||||
eole_DIR := $(DESTDIR)/usr/share/eole
|
||||
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
diagnose_PROG_DIR := $(eole_DIR)/diagnose/module
|
||||
else
|
||||
diagnose_PROG_DIR := $(eole_DIR)/diagnose/
|
||||
endif
|
||||
|
||||
# Creole
|
||||
creole_DIR := $(eole_DIR)/creole
|
||||
dicos_DATA_DIR := $(creole_DIR)/dicos
|
||||
tmpl_DATA_DIR := $(creole_DIR)/distrib
|
||||
preservice_PROG_DIR := $(eole_DIR)/preservice
|
||||
pretemplate_PROG_DIR := $(eole_DIR)/pretemplate
|
||||
posttemplate_PROG_DIR := $(eole_DIR)/posttemplate
|
||||
postservice_PROG_DIR := $(eole_DIR)/postservice
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
firewall_DATA_DIR := $(eole_DIR)/firewall
|
||||
endif
|
||||
bacula_restore_DATA_DIR := $(eole_DIR)/bacula/restore
|
||||
bareos_restore_DATA_DIR := $(eole_DIR)/bareos/restore
|
||||
bacula_fichier_DATA_DIR := $(DESTDIR)/etc/bacula/baculafichiers.d
|
||||
bareos_fichier_DATA_DIR := $(DESTDIR)/etc/bareos/bareosfichiers.d
|
||||
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||
schedule_pre_PROG_DIR := $(eole_DIR)/schedule/pre
|
||||
schedule_post_PROG_DIR := $(eole_DIR)/schedule/post
|
||||
else
|
||||
schedule_scripts_PROG_DIR := $(eole_DIR)/schedule/scripts
|
||||
endif
|
||||
extra_REC_DIR := $(creole_DIR)/extra
|
||||
|
||||
# Zéphir
|
||||
zephir_DATA_DIR := $(DESTDIR)/usr/share/zephir
|
||||
zephir_configs_DATA_DIR := $(zephir_DATA_DIR)/monitor/configs
|
||||
zephir_srv_DATA_DIR := $(zephir_configs_DATA_DIR)/services
|
||||
zephir_scripts_PROG_DIR := $(zephir_DATA_DIR)/scripts
|
||||
|
||||
# SSO
|
||||
sso_DATA_DIR := $(DESTDIR)/usr/share/sso
|
||||
sso_filtres_DATA_DIR := $(sso_DATA_DIR)/app_filters
|
||||
sso_user-info_DATA_DIR := $(sso_DATA_DIR)/user_infos
|
||||
|
||||
# EAD
|
||||
ead_DATA_DIR := $(DESTDIR)/usr/share/ead2/backend/config
|
||||
ead_actions_DATA_DIR := $(ead_DATA_DIR)/actions
|
||||
ead_perms_DATA_DIR := $(ead_DATA_DIR)/perms
|
||||
ead_roles_DATA_DIR := $(ead_DATA_DIR)/roles
|
||||
|
||||
# Program libraries goes under /usr/lib/<PROGRAM>/
|
||||
lib_$(SOURCE)_DATA_DIR := $(DESTDIR)/usr/lib/$(SOURCE)
|
||||
|
||||
# Scripts Eole
|
||||
scripts_PROG_DIR := $(eole_DIR)/sbin
|
||||
lib_eole_DATA_DIR := $(DESTDIR)/usr/lib/eole
|
||||
|
||||
# LDAP
|
||||
ldap_passwords_DATA_DIR := $(eole_DIR)/annuaire/password_files
|
||||
|
||||
# LXC
|
||||
lxc_DATA_DIR := $(eole_DIR)/lxc
|
||||
lxc_fstab_DATA_DIR := $(lxc_DATA_DIR)/fstab
|
||||
lxc_hosts_DATA_DIR := $(lxc_DATA_DIR)/hosts
|
||||
|
||||
# SQL
|
||||
sql_DATA_DIR := $(eole_DIR)/mysql/$(SOURCE)
|
||||
sql_gen_DATA_DIR := $(sql_DATA_DIR)/gen
|
||||
sql_updates_DATA_DIR := $(sql_DATA_DIR)/updates
|
||||
|
||||
sql_conf_gen_DATA_DIR := $(eole_DIR)/applications/gen
|
||||
sql_conf_passwords_DATA_DIR := $(eole_DIR)/applications/passwords
|
||||
sql_conf_updates_DATA_DIR := $(eole_DIR)/applications/updates/$(SOURCE)
|
||||
|
||||
# EoleDB sql directory
|
||||
db_DIR := $(eole_DIR)/db
|
||||
db_gen_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/gen
|
||||
db_updates_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/updates
|
||||
|
||||
# Certifs
|
||||
certs_DATA_DIR := $(eole_DIR)/certs
|
||||
|
||||
# Logrotate
|
||||
logrotate_DATA_DIR := $(DESTDIR)/etc/logrotate.d
|
||||
|
||||
# Cron
|
||||
cron_PROG_DIR := $(DESTDIR)/etc/cron.daily
|
||||
|
||||
# Python modules
|
||||
ifneq ($(DESTDIR),)
|
||||
PYTHON_OPTS := --root $(DESTDIR)
|
||||
endif
|
||||
|
||||
# Translation
|
||||
TRANSLATION_SRC := translation
|
||||
TRANSLATION_DEST := $(DESTDIR)/usr/share/locale
|
||||
PO_FILES = $(wildcard $(TRANSLATION_SRC)/*/*.po)
|
||||
MO_FOLDERS = $(addprefix $(TRANSLATION_DEST), $(addsuffix LC_MESSAGES,$(subst $(TRANSLATION_SRC),,$(dir $(PO_FILES)))))
|
||||
|
||||
#############################################
|
||||
# Common directories and files installation #
|
||||
#############################################
|
||||
|
||||
all:
|
||||
|
||||
$(MO_FOLDERS):
|
||||
$(INSTALL_DIRECTORY) $@
|
||||
|
||||
$(PO_FILES): $(MO_FOLDERS)
|
||||
msgfmt -o $(TRANSLATION_DEST)$(subst $(TRANSLATION_SRC),,$(addsuffix LC_MESSAGES,$(dir $@)))/$(notdir $(@:.po=.mo)) $@
|
||||
|
||||
install-lang: $(PO_FILES)
|
||||
|
||||
install:: install-dirs install-files install-lang
|
||||
|
||||
# $1 = command to run
|
||||
# $2 = source directory
|
||||
# $3 = destination directory
|
||||
define fc_install_file
|
||||
if [ -d $2 ]; then \
|
||||
for file in `ls -1 $2/`; do \
|
||||
$1 $2/$$file $3 || true; \
|
||||
done; \
|
||||
fi
|
||||
endef
|
||||
|
||||
##
|
||||
## Directory creation
|
||||
##
|
||||
|
||||
# use % to catch local name in $*
|
||||
# data, program and recursive directory require a corresponding
|
||||
# directory in local sources
|
||||
%_DATA_DIR %_PROG_DIR %REC_DIR:
|
||||
test ! -d $(subst _,/,$*) || $(INSTALL_DIRECTORY) $($@)
|
||||
|
||||
# Create the directory referenced by the variable without a local one.
|
||||
%_DIR:
|
||||
@: # do nothing
|
||||
|
||||
##
|
||||
## Install files present directly under data, program and recursive directories
|
||||
##
|
||||
|
||||
# $* : name of variable
|
||||
# $($*): value of variable
|
||||
%-instdata:
|
||||
$(call fc_install_file, $(INSTALL_DATA), $(subst _,/,$(subst _DATA_DIR,,$*)), $($*))
|
||||
|
||||
%-instprog:
|
||||
$(call fc_install_file, $(INSTALL_PROGRAM), $(subst _,/,$(subst _PROG_DIR,,$*)), $($*))
|
||||
|
||||
%-instrec:
|
||||
$(call fc_install_file, $(INSTALL_RECURSIVE), $(subst _,/,$(subst _REC_DIR,,$*)), $($*))
|
||||
|
||||
|
||||
# Use second expansion as variables may be created in included
|
||||
# Makefiles
|
||||
.SECONDEXPANSION:
|
||||
|
||||
# List of all directories
|
||||
installdirs_LIST = $(foreach V, $(filter %_DIR, $(.VARIABLES)), \
|
||||
$(if $(filter file, $(origin $(V))), \
|
||||
$(V)))
|
||||
# List of data directories
|
||||
installdata_LIST = $(filter %_DATA_DIR, $(installdirs_LIST))
|
||||
# List of program directories
|
||||
installprog_LIST = $(filter %_PROG_DIR, $(installdirs_LIST))
|
||||
# List of recursive directories
|
||||
installrec_LIST = $(filter %_REC_DIR, $(installdirs_LIST))
|
||||
|
||||
# Expand directories to create as dependency
|
||||
# Use double-colon to permit user to define additionnal install-dirs
|
||||
install-dirs:: $$(installdirs_LIST)
|
||||
|
||||
# Expand files to install as dependency
|
||||
# Use double-colon to permit user to define additionnal install-files
|
||||
install-files:: install-data-files install-prog-files install-rec-dirs
|
||||
|
||||
install-data-files: $$(patsubst %,%-instdata,$$(installdata_LIST))
|
||||
|
||||
install-prog-files: $$(patsubst %,%-instprog,$$(installprog_LIST))
|
||||
|
||||
install-rec-dirs: $$(patsubst %,%-instrec,$$(installrec_LIST))
|
||||
|
||||
# Installation of python modules
|
||||
ifeq ($(shell test -f setup.py && echo 0), 0)
|
||||
install-files::
|
||||
python setup.py install --no-compile --install-layout=deb $(PYTHON_OPTS)
|
||||
endif
|
||||
|
||||
.PHONY: install install-dirs install-files install-data-files install-prog-files install-rec-dirs
|
|
@ -0,0 +1,6 @@
|
|||
/var/www/html/ninestat/var/logs/*.log {
|
||||
rotate 5
|
||||
daily
|
||||
su www-data
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
CreoleRun "/var/www/html/ninestat/scripts/ninestat-postservice-00.sh" web
|
|
@ -0,0 +1,32 @@
|
|||
/.web-server-pid
|
||||
/app/config/parameters.yml
|
||||
/build/
|
||||
/phpunit.xml
|
||||
/var/*
|
||||
!/var/cache
|
||||
/var/cache/*
|
||||
!var/cache/.gitkeep
|
||||
!/var/logs
|
||||
/var/logs/*
|
||||
!var/logs/.gitkeep
|
||||
!/var/spoolmail
|
||||
/var/spoolmail/*
|
||||
!var/spoolmail/.gitkeep
|
||||
!/var/sessions
|
||||
/var/sessions/*
|
||||
!var/sessions/.gitkeep
|
||||
!var/SymfonyRequirements.php
|
||||
/vendor/
|
||||
/web/app.php
|
||||
/web/bundles/
|
||||
/web/js/*
|
||||
/web/css/*
|
||||
/web/fonts/*
|
||||
!/web/uploads/logo
|
||||
/web/uploads/logo/*
|
||||
!/web/uploads/logo/.gitkeep
|
||||
!/web/uploads/logo/logo.png
|
||||
!/web/uploads/header
|
||||
/web/uploads/header/*
|
||||
!/web/uploads/header/.gitkeep
|
||||
!/web/uploads/header/header.png
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2004-2017 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
|
@ -0,0 +1,77 @@
|
|||
Symfony Standard Edition
|
||||
========================
|
||||
|
||||
**WARNING**: This distribution does not support Symfony 4. See the
|
||||
[Installing & Setting up the Symfony Framework][15] page to find a replacement
|
||||
that fits you best.
|
||||
|
||||
Welcome to the Symfony Standard Edition - a fully-functional Symfony
|
||||
application that you can use as the skeleton for your new applications.
|
||||
|
||||
For details on how to download and get started with Symfony, see the
|
||||
[Installation][1] chapter of the Symfony Documentation.
|
||||
|
||||
What's inside?
|
||||
--------------
|
||||
|
||||
The Symfony Standard Edition is configured with the following defaults:
|
||||
|
||||
* An AppBundle you can use to start coding;
|
||||
|
||||
* Twig as the only configured template engine;
|
||||
|
||||
* Doctrine ORM/DBAL;
|
||||
|
||||
* Swiftmailer;
|
||||
|
||||
* Annotations enabled for everything.
|
||||
|
||||
It comes pre-configured with the following bundles:
|
||||
|
||||
* **FrameworkBundle** - The core Symfony framework bundle
|
||||
|
||||
* [**SensioFrameworkExtraBundle**][6] - Adds several enhancements, including
|
||||
template and routing annotation capability
|
||||
|
||||
* [**DoctrineBundle**][7] - Adds support for the Doctrine ORM
|
||||
|
||||
* [**TwigBundle**][8] - Adds support for the Twig templating engine
|
||||
|
||||
* [**SecurityBundle**][9] - Adds security by integrating Symfony's security
|
||||
component
|
||||
|
||||
* [**SwiftmailerBundle**][10] - Adds support for Swiftmailer, a library for
|
||||
sending emails
|
||||
|
||||
* [**MonologBundle**][11] - Adds support for Monolog, a logging library
|
||||
|
||||
* **WebProfilerBundle** (in dev/test env) - Adds profiling functionality and
|
||||
the web debug toolbar
|
||||
|
||||
* **SensioDistributionBundle** (in dev/test env) - Adds functionality for
|
||||
configuring and working with Symfony distributions
|
||||
|
||||
* [**SensioGeneratorBundle**][13] (in dev env) - Adds code generation
|
||||
capabilities
|
||||
|
||||
* [**WebServerBundle**][14] (in dev env) - Adds commands for running applications
|
||||
using the PHP built-in web server
|
||||
|
||||
* **DebugBundle** (in dev/test env) - Adds Debug and VarDumper component
|
||||
integration
|
||||
|
||||
All libraries and bundles included in the Symfony Standard Edition are
|
||||
released under the MIT or BSD license.
|
||||
|
||||
Enjoy!
|
||||
|
||||
[1]: https://symfony.com/doc/3.4/setup.html
|
||||
[6]: https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html
|
||||
[7]: https://symfony.com/doc/3.4/doctrine.html
|
||||
[8]: https://symfony.com/doc/3.4/templating.html
|
||||
[9]: https://symfony.com/doc/3.4/security.html
|
||||
[10]: https://symfony.com/doc/3.4/email.html
|
||||
[11]: https://symfony.com/doc/3.4/logging.html
|
||||
[13]: https://symfony.com/doc/current/bundles/SensioGeneratorBundle/index.html
|
||||
[14]: https://symfony.com/doc/current/setup/built_in_web_server.html
|
||||
[15]: https://symfony.com/doc/current/setup.html
|
|
@ -0,0 +1,7 @@
|
|||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</IfModule>
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
|
||||
|
||||
class AppCache extends HttpCache
|
||||
{
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = [
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||
new \Symfony\Bundle\MakerBundle\MakerBundle(),
|
||||
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
|
||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
||||
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
||||
|
||||
new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
|
||||
new Oneup\UploaderBundle\OneupUploaderBundle(),
|
||||
new Tetranz\Select2EntityBundle\TetranzSelect2EntityBundle(),
|
||||
new Ivory\CKEditorBundle\IvoryCKEditorBundle(),
|
||||
new LightSaml\SymfonyBridgeBundle\LightSamlSymfonyBridgeBundle(),
|
||||
new LightSaml\SpBundle\LightSamlSpBundle(),
|
||||
new Debril\RssAtomBundle\DebrilRssAtomBundle(),
|
||||
|
||||
new AppBundle\AppBundle(),
|
||||
|
||||
new Cadoles\SAMLBundle\CadolesSAMLBundle(),
|
||||
new Cadoles\CASBundle\CadolesCASBundle(),
|
||||
new Cadoles\CoreBundle\CadolesCoreBundle(),
|
||||
new Cadoles\CronBundle\CadolesCronBundle(),
|
||||
];
|
||||
|
||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
|
||||
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
|
||||
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
|
||||
|
||||
if ('dev' === $this->getEnvironment()) {
|
||||
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
|
||||
$bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
|
||||
}
|
||||
}
|
||||
|
||||
return $bundles;
|
||||
}
|
||||
|
||||
public function getRootDir()
|
||||
{
|
||||
return __DIR__;
|
||||
}
|
||||
|
||||
public function getCacheDir()
|
||||
{
|
||||
return dirname(__DIR__).'/var/cache/'.$this->getEnvironment();
|
||||
}
|
||||
|
||||
public function getLogDir()
|
||||
{
|
||||
return dirname(__DIR__).'/var/logs';
|
||||
}
|
||||
|
||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||
{
|
||||
$loader->load(function (ContainerBuilder $container) {
|
||||
$container->setParameter('container.autowiring.strict_mode', true);
|
||||
$container->setParameter('container.dumper.inline_class_loader', true);
|
||||
|
||||
$container->addObjectResource($this);
|
||||
});
|
||||
$loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
{% block stylesheets %}{% endblock %}
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
{% block javascripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,76 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div id="wrapper">
|
||||
<div id="container">
|
||||
<div id="welcome">
|
||||
<h1><span>Welcome to</span> Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}</h1>
|
||||
</div>
|
||||
|
||||
<div id="status">
|
||||
<p>
|
||||
<svg id="icon-status" width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z" fill="#759E1A"/></svg>
|
||||
|
||||
Your application is now ready. You can start working on it at:
|
||||
<code>{{ base_dir }}</code>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="next">
|
||||
<h2>What's next?</h2>
|
||||
<p>
|
||||
<svg id="icon-book" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="-12.5 9 64 64" enable-background="new -12.5 9 64 64" xml:space="preserve">
|
||||
<path fill="#AAA" d="M6.8,40.8c2.4,0.8,4.5-0.7,4.9-2.5c0.2-1.2-0.3-2.1-1.3-3.2l-0.8-0.8c-0.4-0.5-0.6-1.3-0.2-1.9
|
||||
c0.4-0.5,0.9-0.8,1.8-0.5c1.3,0.4,1.9,1.3,2.9,2.2c-0.4,1.4-0.7,2.9-0.9,4.2l-0.2,1c-0.7,4-1.3,6.2-2.7,7.5
|
||||
c-0.3,0.3-0.7,0.5-1.3,0.6c-0.3,0-0.4-0.3-0.4-0.3c0-0.3,0.2-0.3,0.3-0.4c0.2-0.1,0.5-0.3,0.4-0.8c0-0.7-0.6-1.3-1.3-1.3
|
||||
c-0.6,0-1.4,0.6-1.4,1.7s1,1.9,2.4,1.8c0.8,0,2.5-0.3,4.2-2.5c2-2.5,2.5-5.4,2.9-7.4l0.5-2.8c0.3,0,0.5,0.1,0.8,0.1
|
||||
c2.4,0.1,3.7-1.3,3.7-2.3c0-0.6-0.3-1.2-0.9-1.2c-0.4,0-0.8,0.3-1,0.8c-0.1,0.6,0.8,1.1,0.1,1.5c-0.5,0.3-1.4,0.6-2.7,0.4l0.3-1.3
|
||||
c0.5-2.6,1-5.7,3.2-5.8c0.2,0,0.8,0,0.8,0.4c0,0.2,0,0.2-0.2,0.5c-0.2,0.3-0.3,0.4-0.2,0.7c0,0.7,0.5,1.1,1.2,1.1
|
||||
c0.9,0,1.2-1,1.2-1.4c0-1.2-1.2-1.8-2.6-1.8c-1.5,0.1-2.8,0.9-3.7,2.1c-1.1,1.3-1.8,2.9-2.3,4.5c-0.9-0.8-1.6-1.8-3.1-2.3
|
||||
c-1.1-0.7-2.3-0.5-3.4,0.3c-0.5,0.4-0.8,1-1,1.6c-0.4,1.5,0.4,2.9,0.8,3.4l0.9,1c0.2,0.2,0.6,0.8,0.4,1.5c-0.3,0.8-1.2,1.3-2.1,1
|
||||
c-0.4-0.2-1-0.5-0.9-0.9c0.1-0.2,0.2-0.3,0.3-0.5s0.1-0.3,0.1-0.3c0.2-0.6-0.1-1.4-0.7-1.6c-0.6-0.2-1.2,0-1.3,0.8
|
||||
C4.3,38.4,4.7,40,6.8,40.8z M46.1,20.9c0-4.2-3.2-7.5-7.1-7.5h-3.8C34.8,10.8,32.7,9,30.2,9L-2.3,9.1c-2.8,0.1-4.9,2.4-4.9,5.4
|
||||
L-7,58.6c0,4.8,8.1,13.9,11.6,14.1l34.7-0.1c3.9,0,7-3.4,7-7.6L46.1,20.9z M-0.3,36.4c0-8.6,6.5-15.6,14.5-15.6
|
||||
c8,0,14.5,7,14.5,15.6S22.1,52,14.2,52C6.1,52-0.3,45-0.3,36.4z M42.1,65.1c0,1.8-1.5,3.1-3.1,3.1H4.6c-0.7,0-3-1.8-4.5-4.4h30.4
|
||||
c2.8,0,5-2.4,5-5.4V17.9h3.7c1.6,0,2.9,1.4,2.9,3.1V65.1L42.1,65.1z"/>
|
||||
</svg>
|
||||
|
||||
Read the documentation to learn
|
||||
<a href="https://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/page_creation.html">
|
||||
How to create your first page in Symfony
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block stylesheets %}
|
||||
<style>
|
||||
body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
|
||||
h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
|
||||
h1 { font-size: 36px; }
|
||||
h2 { font-size: 21px; margin-bottom: 1em; }
|
||||
p { margin: 0 0 1em 0; }
|
||||
a { color: #0000F0; }
|
||||
a:hover { text-decoration: none; }
|
||||
code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
|
||||
#wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
|
||||
#container { padding: 2em; }
|
||||
#welcome, #status { margin-bottom: 2em; }
|
||||
#welcome h1 span { display: block; font-size: 75%; }
|
||||
#icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
|
||||
#icon-book { display: none; }
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#wrapper { width: 80%; margin: 2em auto; }
|
||||
#icon-book { display: inline-block; }
|
||||
#status a, #next a { display: block; }
|
||||
|
||||
@-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
|
||||
@keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
|
||||
.sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
|
@ -0,0 +1,175 @@
|
|||
imports:
|
||||
- { resource: parameters.yml }
|
||||
- { resource: template.yml }
|
||||
- { resource: security.yml }
|
||||
- { resource: services.yml }
|
||||
- { resource: "@CadolesCoreBundle/Resources/config/services.yml" }
|
||||
- { resource: twig.yml }
|
||||
|
||||
# Put parameters here that don't need to change on each machine where the app is deployed
|
||||
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
|
||||
parameters:
|
||||
locale: fr
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: rotating_file
|
||||
path: '%kernel.logs_dir%/%kernel.environment%.log'
|
||||
level: debug
|
||||
max_files: 10
|
||||
|
||||
framework:
|
||||
#esi: ~
|
||||
#translator: { fallbacks: ['%locale%'] }
|
||||
secret: '%secret%'
|
||||
router:
|
||||
resource: '%kernel.project_dir%/app/config/routing.yml'
|
||||
strict_requirements: ~
|
||||
form: ~
|
||||
csrf_protection: ~
|
||||
validation: { enabled: true, enable_annotations: true }
|
||||
#serializer: { enable_annotations: true }
|
||||
default_locale: '%locale%'
|
||||
trusted_hosts: ~
|
||||
session:
|
||||
# https://symfony.com/doc/current/reference/configuration/framework.html#handler-id
|
||||
handler_id: session.handler.native_file
|
||||
save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
|
||||
name: nineboard
|
||||
fragments: ~
|
||||
http_method_override: true
|
||||
templating:
|
||||
engines: ['twig']
|
||||
assets: ~
|
||||
php_errors:
|
||||
log: true
|
||||
|
||||
# Twig Configuration
|
||||
twig:
|
||||
debug: '%kernel.debug%'
|
||||
strict_variables: '%kernel.debug%'
|
||||
form_themes:
|
||||
- 'CadolesCoreBundle:Form:fields.html.twig'
|
||||
- 'TetranzSelect2EntityBundle:Form:fields.html.twig'
|
||||
paths:
|
||||
'%kernel.project_dir%/src/Cadoles/CoreBundle/Resources/public/themes/': Theme
|
||||
|
||||
# Swiftmailer Configuration
|
||||
swiftmailer:
|
||||
transport: '%mailer_transport%'
|
||||
host: '%mailer_host%'
|
||||
port: '%mailer_port%'
|
||||
username: '%mailer_user%'
|
||||
password: '%mailer_password%'
|
||||
auth_mode: '%mailer_authmode%'
|
||||
encryption: '%mailer_encryption%'
|
||||
timeout: 5
|
||||
stream-options:
|
||||
ssl:
|
||||
allow_self_signed : true
|
||||
verify_peer: false
|
||||
spool:
|
||||
type: file
|
||||
path: '%kernel.project_dir%/var/spoolmail'
|
||||
|
||||
# Assetic Configuration
|
||||
assetic:
|
||||
debug: "%kernel.debug%"
|
||||
use_controller: false
|
||||
bundles:
|
||||
- CadolesCoreBundle
|
||||
filters:
|
||||
cssrewrite: ~
|
||||
|
||||
# onupload configuration
|
||||
oneup_uploader:
|
||||
mappings:
|
||||
avatar:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
logo:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
niveau01:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
header:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
icon:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
slide:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
blogarticle:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
importuser:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
namer: cadoles.core.upload.namer.same
|
||||
storage:
|
||||
directory: "%kernel.root_dir%/../uploads/importuser"
|
||||
file:
|
||||
frontend: dropzone # or any uploader you use in the frontend
|
||||
namer: cadoles.core.upload.namer.same
|
||||
storage:
|
||||
directory: "%kernel.root_dir%/../uploads/file"
|
||||
|
||||
# gregwar captcha configuration
|
||||
gregwar_captcha: ~
|
||||
|
||||
# light_saml configuration
|
||||
light_saml_symfony_bridge:
|
||||
own:
|
||||
entity_id: '%saml_entityid%'
|
||||
credentials:
|
||||
-
|
||||
certificate: "%kernel.root_dir%/../vendor/lightsaml/lightsaml/web/sp/saml.crt"
|
||||
key: "%kernel.root_dir%/../vendor/lightsaml/lightsaml/web/sp/saml.key"
|
||||
password: ~
|
||||
party:
|
||||
idp:
|
||||
files: '%saml_idps_list%'
|
||||
|
||||
# ckeditor configuration
|
||||
ivory_ck_editor:
|
||||
base_path: "ckeditor"
|
||||
js_path: "ckeditor/ckeditor.js"
|
||||
configs:
|
||||
full_config:
|
||||
language: fr
|
||||
toolbar: "my_toolbar_1"
|
||||
uiColor: "#ffffff"
|
||||
extraPlugins: ["html5video"]
|
||||
light_config:
|
||||
language: fr
|
||||
toolbar: "my_toolbar_2"
|
||||
uiColor: "#ffffff"
|
||||
removePlugins: 'elementspath'
|
||||
small_config:
|
||||
language: fr
|
||||
toolbar: "my_toolbar_3"
|
||||
uiColor: "#ffffff"
|
||||
removePlugins: 'elementspath'
|
||||
plugins:
|
||||
html5video:
|
||||
path: "ckeditor/plugins/html5video/" # with trailing slash
|
||||
filename: "plugin.js"
|
||||
pastebase64:
|
||||
path: "ckeditor/plugins/pastebase64/" # with trailing slash
|
||||
filename: "plugin.js"
|
||||
toolbars:
|
||||
configs:
|
||||
my_toolbar_1: [ "@document1", "-", "@clipboard1", "-", "@basicstyles1", "-", "@paragraph1", "/", "@links1", "-", "@insert1", "-", "@styles1", "-" , "@colors1", "-" , "@tools1" ]
|
||||
my_toolbar_2: [ "@basicstyles1", "-", "@paragraph2", "-", "@insert2", "-", "@styles1"]
|
||||
my_toolbar_3: [ "@basicstyles1", "-", "@paragraph3", "-", "@insert3"]
|
||||
|
||||
items:
|
||||
document1: [ 'Source','-','NewPage','DocProps','Preview','Print','-','Templates' ]
|
||||
clipboard1: [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ]
|
||||
basicstyles1: [ 'Bold','Italic','Underline','RemoveFormat' ]
|
||||
paragraph1: [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ]
|
||||
paragraph2: [ 'JustifyLeft','JustifyCenter','JustifyRight','NumberedList','BulletedList' ]
|
||||
paragraph3: [ 'NumberedList','BulletedList' ]
|
||||
links1: [ 'Link','Unlink','Anchor' ]
|
||||
insert1: [ 'Image','Html5video','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ]
|
||||
insert2: [ 'Image','Table','Smiley','Link','Unlink' ]
|
||||
insert3: [ 'Smiley','Link','Unlink' ]
|
||||
styles1: [ 'Styles','Format','Font','FontSize' ]
|
||||
colors1: [ 'TextColor','BGColor' ]
|
||||
tools1: [ 'Maximize', 'ShowBlocks','-','About' ]
|
|
@ -0,0 +1,41 @@
|
|||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
framework:
|
||||
router:
|
||||
resource: '%kernel.project_dir%/app/config/routing_dev.yml'
|
||||
strict_requirements: true
|
||||
profiler: { only_exceptions: false }
|
||||
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: '%kernel.logs_dir%/%kernel.environment%.log'
|
||||
level: debug
|
||||
channels: ['!event']
|
||||
console:
|
||||
type: console
|
||||
process_psr_3_messages: false
|
||||
channels: ['!event', '!doctrine', '!console']
|
||||
# To follow logs in real time, execute the following command:
|
||||
# `bin/console server:log -vv`
|
||||
server_log:
|
||||
type: server_log
|
||||
process_psr_3_messages: false
|
||||
host: 127.0.0.1:9911
|
||||
# uncomment to get logging in your browser
|
||||
# you may have to allow bigger header sizes in your Web server configuration
|
||||
#firephp:
|
||||
# type: firephp
|
||||
# level: info
|
||||
#chromephp:
|
||||
# type: chromephp
|
||||
# level: info
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_addresses: ['me@example.com']
|
|
@ -0,0 +1,22 @@
|
|||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
#doctrine:
|
||||
# orm:
|
||||
# metadata_cache_driver: apc
|
||||
# result_cache_driver: apc
|
||||
# query_cache_driver: apc
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
nested:
|
||||
type: stream
|
||||
path: '%kernel.logs_dir%/%kernel.environment%.log'
|
||||
level: debug
|
||||
console:
|
||||
type: console
|
||||
process_psr_3_messages: false
|
|
@ -0,0 +1,16 @@
|
|||
imports:
|
||||
- { resource: config_dev.yml }
|
||||
|
||||
framework:
|
||||
test: ~
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
profiler:
|
||||
collect: false
|
||||
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
swiftmailer:
|
||||
disable_delivery: true
|
|
@ -0,0 +1,19 @@
|
|||
# This file is a "template" of what your parameters.yml file should look like
|
||||
# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
|
||||
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
|
||||
parameters:
|
||||
database_host: 127.0.0.1
|
||||
database_port: ~
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: ~
|
||||
# You should uncomment this if you want to use pdo_sqlite
|
||||
#database_path: '%kernel.project_dir%/var/data/data.sqlite'
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: ~
|
||||
mailer_password: ~
|
||||
|
||||
# A secret key that's used to generate certain security-related tokens
|
||||
secret: ThisTokenIsNotSoSecretChangeIt
|
|
@ -0,0 +1,19 @@
|
|||
core:
|
||||
resource: "@CadolesCoreBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
cron:
|
||||
resource: "@CadolesCronBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
lightsaml_sp:
|
||||
resource: "@LightSamlSpBundle/Resources/config/routing.yml"
|
||||
prefix: saml
|
||||
|
||||
cas_sp:
|
||||
resource: "@CadolesCASBundle/Resources/config/routing.yml"
|
||||
prefix: cas
|
||||
|
||||
oneup_uploader:
|
||||
resource: .
|
||||
type: uploader
|
|
@ -0,0 +1,14 @@
|
|||
_wdt:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
|
||||
prefix: /_wdt
|
||||
|
||||
_profiler:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
|
||||
prefix: /_profiler
|
||||
|
||||
_errors:
|
||||
resource: '@TwigBundle/Resources/config/routing/errors.xml'
|
||||
prefix: /_error
|
||||
|
||||
_main:
|
||||
resource: routing.yml
|
|
@ -0,0 +1,47 @@
|
|||
security:
|
||||
providers:
|
||||
cadoles_core_db_provider:
|
||||
entity:
|
||||
class: CadolesCoreBundle:User
|
||||
property: username
|
||||
|
||||
encoders:
|
||||
Cadoles\CoreBundle\Entity\User:
|
||||
id: cadoles.core.password.encoder
|
||||
Cadoles\CoreBundle\Entity\Registration:
|
||||
id: cadoles.core.password.encoder
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
||||
security: false
|
||||
|
||||
main:
|
||||
provider: cadoles_core_db_provider
|
||||
anonymous: ~
|
||||
|
||||
form_login:
|
||||
login_path: cadoles_core_login
|
||||
check_path: cadoles_core_login
|
||||
use_referer: true
|
||||
target_path_parameter: cadoles_core_home
|
||||
csrf_parameter: _csrf_security_token
|
||||
csrf_token_id: a_private_string
|
||||
|
||||
logout:
|
||||
invalidate_session: true
|
||||
path: cadoles_core_kill
|
||||
target: cadoles_core_home
|
||||
|
||||
light_saml_sp:
|
||||
provider: cadoles_core_db_provider
|
||||
user_creator: cadoles.saml_user_creator
|
||||
username_mapper: cadoles.saml_user_mapper
|
||||
login_path: /saml/login
|
||||
check_path: /saml/acs
|
||||
|
||||
access_control:
|
||||
- { path: ^/websocket, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] }
|
||||
- { path: ^/user, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] }
|
||||
- { path: ^/config, roles: [ROLE_ADMIN, ROLE_MODO] }
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# Learn more about services, parameters and containers at
|
||||
# https://symfony.com/doc/current/service_container.html
|
||||
parameters:
|
||||
#parameter_name: value
|
||||
|
||||
services:
|
||||
# default configuration for services in *this* file
|
||||
_defaults:
|
||||
# automatically injects dependencies in your services
|
||||
autowire: true
|
||||
# automatically registers your services as commands, event subscribers, etc.
|
||||
autoconfigure: true
|
||||
# this means you cannot fetch services directly from the container via $container->get()
|
||||
# if you need to do this, you can override this setting on individual services
|
||||
public: false
|
||||
|
||||
# makes classes in src/AppBundle available to be used as services
|
||||
# this creates a service per class whose id is the fully-qualified class name
|
||||
AppBundle\:
|
||||
resource: '../../src/AppBundle/*'
|
||||
# you can exclude directories or files
|
||||
# but if a service is unused, it's removed anyway
|
||||
exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
|
||||
|
||||
# controllers are imported separately to make sure they're public
|
||||
# and have a tag that allows actions to type-hint services
|
||||
AppBundle\Controller\:
|
||||
resource: '../../src/AppBundle/Controller'
|
||||
public: true
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
# add more services, or override services that need manual wiring
|
||||
# AppBundle\Service\ExampleService:
|
||||
# arguments:
|
||||
# $someArgument: 'some_value'
|
|
@ -0,0 +1,78 @@
|
|||
# This file is auto-generated during the composer install
|
||||
parameters:
|
||||
# Détermine la source de l'identité pour l'instant uniquement ninegate
|
||||
masteridentity: SQL
|
||||
masterurl: /ninegate
|
||||
masterapikey: APIKeyNinegate
|
||||
|
||||
# Mode d'authentification soit LDAP / CAS / SAML
|
||||
# Pour l'instant SQL Impossible car l'identité est forcement stocké ailleurs donc il faut un autre moyen d'authentication
|
||||
mode_auth: CAS
|
||||
|
||||
# Paramétres de base
|
||||
weburl: ldapbundle.ac-arno.fr
|
||||
alias: ninestat
|
||||
libelle_etab: ldapbundle
|
||||
numero_etab: 0000000A
|
||||
|
||||
# Module cron
|
||||
cron_activate: true
|
||||
|
||||
# Mail configuration
|
||||
mailer_port: '2525'
|
||||
mailer_encryption: null
|
||||
mailer_authmode: null
|
||||
noreply: noreplayt@transnum.cadol.es
|
||||
|
||||
# Information de base de l'annuaire
|
||||
ldap_host: 127.0.0.1
|
||||
ldap_port: 389
|
||||
ldap_user: cn=admin,o=gouv,c=fr
|
||||
ldap_password: eole
|
||||
ldap_basedn: o=gouv,c=fr
|
||||
|
||||
# Si mode_auth = CAS
|
||||
cas_host: ldapbundle.ac-arno.fr
|
||||
cas_path:
|
||||
cas_port: 8443
|
||||
|
||||
# Si mode_aut = SAML
|
||||
saml_entityid: 'http://dev.nuonet.cadoles'
|
||||
saml_logout_url: 'http://172.27.7.67:8088/idp/profile/Logout'
|
||||
saml_idps_list: ['http://172.27.7.67:8088/idp/shibboleth']
|
||||
|
||||
# Si mode_auth = CAS ou SAML les attributs permettant de matché avec les utilisateurs
|
||||
user_attr_cas_username: username
|
||||
user_attr_cas_mail: email
|
||||
user_attr_cas_lastname: lastname
|
||||
user_attr_cas_firstname: firstname
|
||||
|
||||
user_attr_saml_username: eduPersonPrincipalName
|
||||
user_attr_saml_mail: mail
|
||||
user_attr_saml_lastname: sn
|
||||
user_attr_saml_firstname: givenName
|
||||
|
||||
# Doctrine Configuration
|
||||
doctrine:
|
||||
dbal:
|
||||
default_connection: default
|
||||
connections:
|
||||
default:
|
||||
driver: pdo_mysql
|
||||
host: '%database_host%'
|
||||
port: '%database_port%'
|
||||
dbname: '%database_name%'
|
||||
user: '%database_user%'
|
||||
password: '%database_password%'
|
||||
charset: UTF8
|
||||
orm:
|
||||
default_entity_manager: default
|
||||
entity_managers:
|
||||
default:
|
||||
connection: default
|
||||
mappings:
|
||||
CadolesCoreBundle: ~
|
||||
CadolesCronBundle: ~
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Parametres spécifiques à eportail
|
||||
twig:
|
||||
globals:
|
||||
alias: %alias%
|
||||
mode_auth: %mode_auth%
|
||||
cron_activate: %cron_activate%
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Debug\Debug;
|
||||
|
||||
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
|
||||
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
|
||||
// for more information
|
||||
//umask(0000);
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
$input = new ArgvInput();
|
||||
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev');
|
||||
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod';
|
||||
|
||||
if ($debug) {
|
||||
Debug::enable();
|
||||
}
|
||||
|
||||
$kernel = new AppKernel($env, $debug);
|
||||
$application = new Application($kernel);
|
||||
$application->run($input);
|
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';
|
||||
|
||||
$lineSize = 70;
|
||||
$symfonyRequirements = new SymfonyRequirements();
|
||||
$iniPath = $symfonyRequirements->getPhpIniConfigPath();
|
||||
|
||||
echo_title('Symfony Requirements Checker');
|
||||
|
||||
echo '> PHP is using the following php.ini file:'.PHP_EOL;
|
||||
if ($iniPath) {
|
||||
echo_style('green', ' '.$iniPath);
|
||||
} else {
|
||||
echo_style('yellow', ' WARNING: No configuration file (php.ini) used by PHP!');
|
||||
}
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
|
||||
echo '> Checking Symfony requirements:'.PHP_EOL.' ';
|
||||
|
||||
$messages = array();
|
||||
foreach ($symfonyRequirements->getRequirements() as $req) {
|
||||
if ($helpText = get_error_message($req, $lineSize)) {
|
||||
echo_style('red', 'E');
|
||||
$messages['error'][] = $helpText;
|
||||
} else {
|
||||
echo_style('green', '.');
|
||||
}
|
||||
}
|
||||
|
||||
$checkPassed = empty($messages['error']);
|
||||
|
||||
foreach ($symfonyRequirements->getRecommendations() as $req) {
|
||||
if ($helpText = get_error_message($req, $lineSize)) {
|
||||
echo_style('yellow', 'W');
|
||||
$messages['warning'][] = $helpText;
|
||||
} else {
|
||||
echo_style('green', '.');
|
||||
}
|
||||
}
|
||||
|
||||
if ($checkPassed) {
|
||||
echo_block('success', 'OK', 'Your system is ready to run Symfony projects');
|
||||
} else {
|
||||
echo_block('error', 'ERROR', 'Your system is not ready to run Symfony projects');
|
||||
|
||||
echo_title('Fix the following mandatory requirements', 'red');
|
||||
|
||||
foreach ($messages['error'] as $helpText) {
|
||||
echo ' * '.$helpText.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($messages['warning'])) {
|
||||
echo_title('Optional recommendations to improve your setup', 'yellow');
|
||||
|
||||
foreach ($messages['warning'] as $helpText) {
|
||||
echo ' * '.$helpText.PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
echo PHP_EOL;
|
||||
echo_style('title', 'Note');
|
||||
echo ' The command console could use a different php.ini file'.PHP_EOL;
|
||||
echo_style('title', '~~~~');
|
||||
echo ' than the one used with your web server. To be on the'.PHP_EOL;
|
||||
echo ' safe side, please check the requirements from your web'.PHP_EOL;
|
||||
echo ' server using the ';
|
||||
echo_style('yellow', 'web/config.php');
|
||||
echo ' script.'.PHP_EOL;
|
||||
echo PHP_EOL;
|
||||
|
||||
exit($checkPassed ? 0 : 1);
|
||||
|
||||
function get_error_message(Requirement $requirement, $lineSize)
|
||||
{
|
||||
if ($requirement->isFulfilled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
|
||||
$errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL;
|
||||
|
||||
return $errorMessage;
|
||||
}
|
||||
|
||||
function echo_title($title, $style = null)
|
||||
{
|
||||
$style = $style ?: 'title';
|
||||
|
||||
echo PHP_EOL;
|
||||
echo_style($style, $title.PHP_EOL);
|
||||
echo_style($style, str_repeat('~', strlen($title)).PHP_EOL);
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
function echo_style($style, $message)
|
||||
{
|
||||
// ANSI color codes
|
||||
$styles = array(
|
||||
'reset' => "\033[0m",
|
||||
'red' => "\033[31m",
|
||||
'green' => "\033[32m",
|
||||
'yellow' => "\033[33m",
|
||||
'error' => "\033[37;41m",
|
||||
'success' => "\033[37;42m",
|
||||
'title' => "\033[34m",
|
||||
);
|
||||
$supports = has_color_support();
|
||||
|
||||
echo($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : '');
|
||||
}
|
||||
|
||||
function echo_block($style, $title, $message)
|
||||
{
|
||||
$message = ' '.trim($message).' ';
|
||||
$width = strlen($message);
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
|
||||
echo_style($style, str_repeat(' ', $width));
|
||||
echo PHP_EOL;
|
||||
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT));
|
||||
echo PHP_EOL;
|
||||
echo_style($style, $message);
|
||||
echo PHP_EOL;
|
||||
echo_style($style, str_repeat(' ', $width));
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
function has_color_support()
|
||||
{
|
||||
static $support;
|
||||
|
||||
if (null === $support) {
|
||||
if (DIRECTORY_SEPARATOR == '\\') {
|
||||
$support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
|
||||
} else {
|
||||
$support = function_exists('posix_isatty') && @posix_isatty(STDOUT);
|
||||
}
|
||||
}
|
||||
|
||||
return $support;
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"name": "symfony/framework-standard-edition",
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"description": "The \"Symfony Standard Edition\" distribution",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"": "src/"
|
||||
},
|
||||
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": { "Tests\\": "tests/" },
|
||||
"files": [ "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" ]
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7",
|
||||
"debril/rss-atom-bundle": "^4.0",
|
||||
"doctrine/doctrine-bundle": "^1.6",
|
||||
"doctrine/doctrine-cache-bundle": "^1.2",
|
||||
"doctrine/doctrine-fixtures-bundle": "^2.3",
|
||||
"doctrine/doctrine-migrations-bundle": "^1.2",
|
||||
"doctrine/orm": "^2.5",
|
||||
"egeloen/ckeditor-bundle": "^6.0",
|
||||
"gos/web-socket-bundle": "1.*",
|
||||
"gregwar/captcha-bundle": "^2.0",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
"jasig/phpcas": "~1.3",
|
||||
"lightsaml/sp-bundle": "^1.2",
|
||||
"oneup/uploader-bundle": "^1.7",
|
||||
"ramsey/uuid": "^3.7",
|
||||
"sensio/distribution-bundle": "^5.0.19",
|
||||
"sensio/framework-extra-bundle": "^5.0.0",
|
||||
"symfony/assetic-bundle": "^2.8",
|
||||
"symfony/ldap": "^3.4",
|
||||
"symfony/monolog-bundle": "^3.1.0",
|
||||
"symfony/orm-pack": "^1.0",
|
||||
"symfony/polyfill-apcu": "^1.0",
|
||||
"symfony/swiftmailer-bundle": "^2.6.4",
|
||||
"symfony/symfony": "3.4.*",
|
||||
"tetranz/select2entity-bundle": "2.*",
|
||||
"thecsea/simple-caldav-client": "^0.1.10",
|
||||
"mashape/unirest-php": "2.*",
|
||||
"twig/twig": "^1.0||^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"symfony/maker-bundle": "^1.5",
|
||||
"symfony/phpunit-bridge": "^3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"symfony-scripts": [
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"@symfony-scripts"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"@symfony-scripts"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.0.30"
|
||||
},
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"symfony-app-dir": "app",
|
||||
"symfony-bin-dir": "bin",
|
||||
"symfony-var-dir": "var",
|
||||
"symfony-web-dir": "web",
|
||||
"symfony-tests-dir": "tests",
|
||||
"symfony-assets-install": "relative",
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4-dev"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5045 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "f9cc6e4483b68bdcfa7a27ad02616c50",
|
||||
"content-hash": "51482d6b9f9c27b385c17393182e0d82",
|
||||
"packages": [
|
||||
{
|
||||
"name": "cboden/ratchet",
|
||||
"version": "v0.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ratchetphp/Ratchet.git",
|
||||
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/0d31f3a8ad4795fd48397712709e55cd07f51360",
|
||||
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"php": ">=5.4.2",
|
||||
"ratchet/rfc6455": "^0.2",
|
||||
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
|
||||
"symfony/http-foundation": "^2.6|^3.0|^4.0",
|
||||
"symfony/routing": "^2.6|^3.0|^4.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"
|
||||
}
|
||||
],
|
||||
"description": "PHP WebSocket library",
|
||||
"homepage": "http://socketo.me",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"WebSockets",
|
||||
"server",
|
||||
"sockets",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2017-12-12 00:49:31"
|
||||
},
|
||||
{
|
||||
"name": "composer/ca-bundle",
|
||||
"version": "1.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/ca-bundle.git",
|
||||
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
|
||||
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"ext-pcre": "*",
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/process": "^2.5 || ^3.0 || ^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\CaBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
||||
"keywords": [
|
||||
"cabundle",
|
||||
"cacert",
|
||||
"certificate",
|
||||
"ssl",
|
||||
"tls"
|
||||
],
|
||||
"time": "2019-08-30 08:44:50"
|
||||
},
|
||||
{
|
||||
"name": "debril/feed-io",
|
||||
"version": "v3.1.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/alexdebril/feed-io.git",
|
||||
"reference": "a8ae664c948f0ca926150cc4597f343af797b4b0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/alexdebril/feed-io/zipball/a8ae664c948f0ca926150cc4597f343af797b4b0",
|
||||
"reference": "a8ae664c948f0ca926150cc4597f343af797b4b0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "~6.2",
|
||||
"php": ">=5.6.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.4",
|
||||
"monolog/monolog": "1.*",
|
||||
"phpunit/phpunit": "~5.6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"monolog/monolog": "Allows to handle logs",
|
||||
"symfony/console": "Allows to use the command line interface"
|
||||
},
|
||||
"bin": [
|
||||
"bin/feedio"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"FeedIo\\": "src/FeedIo"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Alexandre Debril",
|
||||
"email": "alex.debril@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP library built to consume and serve JSONFeed / RSS / Atom feeds",
|
||||
"homepage": "https://feed-io.net",
|
||||
"keywords": [
|
||||
"atom",
|
||||
"cli",
|
||||
"client",
|
||||
"feed",
|
||||
"jsonfeed",
|
||||
"news",
|
||||
"rss"
|
||||
],
|
||||
"time": "2019-04-12 11:48:51"
|
||||
},
|
||||
{
|
||||
"name": "debril/rss-atom-bundle",
|
||||
"version": "v4.1.1",
|
||||
"target-dir": "Debril/RssAtomBundle",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/alexdebril/rss-atom-bundle.git",
|
||||
"reference": "49bcc3e5f2baef47374bf07c7535dc4aca6573ef"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/alexdebril/rss-atom-bundle/zipball/49bcc3e5f2baef47374bf07c7535dc4aca6573ef",
|
||||
"reference": "49bcc3e5f2baef47374bf07c7535dc4aca6573ef",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"debril/feed-io": "~3.0|~4.0",
|
||||
"php": ">=5.6",
|
||||
"symfony/config": "~3.4|~4.0",
|
||||
"symfony/dependency-injection": "~3.4|~4.0",
|
||||
"symfony/framework-bundle": "~3.4|~4.0",
|
||||
"symfony/http-foundation": "~3.4|~4.0",
|
||||
"symfony/http-kernel": "~3.4|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/common": "~2.3",
|
||||
"doctrine/doctrine-bundle": "~1.2",
|
||||
"phpunit/phpunit": "~5.5",
|
||||
"symfony/browser-kit": ">3.0",
|
||||
"symfony/finder": ">3.0",
|
||||
"symfony/validator": ">3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/doctrine-bundle": "allow to provide feeds' content from database"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Debril\\RssAtomBundle": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "RSS / Atom and JSONFeed support for Symfony",
|
||||
"homepage": "http://debril.org/category/rss-atom-bundle/",
|
||||
"keywords": [
|
||||
"Syndication",
|
||||
"atom",
|
||||
"feed",
|
||||
"jsonfeed",
|
||||
"rss"
|
||||
],
|
||||
"time": "2018-01-12 23:30:55"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/annotations",
|
||||
"version": "v1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/annotations.git",
|
||||
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
|
||||
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "1.*",
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/cache": "1.*",
|
||||
"phpunit/phpunit": "^5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Docblock Annotations Parser",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"parser"
|
||||
],
|
||||
"time": "2017-02-24 16:22:25"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
"version": "v1.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/cache.git",
|
||||
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
|
||||
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~5.5|~7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": ">2.2,<2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8|~5.0",
|
||||
"predis/predis": "~1.0",
|
||||
"satooshi/php-coveralls": "~0.6"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Caching library offering an object-oriented API for many cache backends",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching"
|
||||
],
|
||||
"time": "2017-07-22 12:49:21"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/collections",
|
||||
"version": "v1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/collections.git",
|
||||
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
|
||||
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "~0.1@dev",
|
||||
"phpunit/phpunit": "^5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\Common\\Collections\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Collections Abstraction library",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"array",
|
||||
"collections",
|
||||
"iterator"
|
||||
],
|
||||
"time": "2017-01-03 10:49:41"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/common",
|
||||
"version": "v2.7.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/common.git",
|
||||
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
|
||||
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/annotations": "1.*",
|
||||
"doctrine/cache": "1.*",
|
||||
"doctrine/collections": "1.*",
|
||||
"doctrine/inflector": "1.*",
|
||||
"doctrine/lexer": "1.*",
|
||||
"php": "~5.6|~7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.4.6"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Common Library for Doctrine projects",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"collections",
|
||||
"eventmanager",
|
||||
"persistence",
|
||||
"spl"
|
||||
],
|
||||
"time": "2017-07-22 08:35:12"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/data-fixtures",
|
||||
"version": "v1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/data-fixtures.git",
|
||||
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
|
||||
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/common": "~2.2",
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/orm": "< 2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^2.5.4",
|
||||
"doctrine/orm": "^2.5.4",
|
||||
"phpunit/phpunit": "^5.4.6"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
|
||||
"doctrine/orm": "For loading ORM fixtures",
|
||||
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\Common\\DataFixtures": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Data Fixtures for all Doctrine Object Managers",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database"
|
||||
],
|
||||
"time": "2016-09-20 10:07:57"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "v2.5.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "729340d8d1eec8f01bff708e12e449a3415af873"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
|
||||
"reference": "729340d8d1eec8f01bff708e12e449a3415af873",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/common": ">=2.4,<2.8-dev",
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*",
|
||||
"symfony/console": "2.*||^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine-dbal"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.5.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\DBAL\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Database Abstraction Layer",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database",
|
||||
"dbal",
|
||||
"persistence",
|
||||
"queryobject"
|
||||
],
|
||||
"time": "2017-07-22 20:44:48"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-bundle",
|
||||
"version": "1.10.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineBundle.git",
|
||||
"reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c",
|
||||
"reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "^2.5.12",
|
||||
"doctrine/doctrine-cache-bundle": "~1.2",
|
||||
"jdorn/sql-formatter": "^1.2.16",
|
||||
"php": "^5.5.9|^7.0",
|
||||
"symfony/console": "~2.7|~3.0|~4.0",
|
||||
"symfony/dependency-injection": "~2.7|~3.0|~4.0",
|
||||
"symfony/doctrine-bridge": "~2.7|~3.0|~4.0",
|
||||
"symfony/framework-bundle": "^2.7.22|~3.0|~4.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-foundation": "<2.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/orm": "~2.4",
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpunit": "^4.8.36|^5.7|^6.4",
|
||||
"symfony/phpunit-bridge": "~2.7|~3.0|~4.0",
|
||||
"symfony/property-info": "~2.8|~3.0|~4.0",
|
||||
"symfony/validator": "~2.7|~3.0|~4.0",
|
||||
"symfony/web-profiler-bundle": "~2.7|~3.0|~4.0",
|
||||
"symfony/yaml": "~2.7|~3.0|~4.0",
|
||||
"twig/twig": "~1.26|~2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
|
||||
"symfony/web-profiler-bundle": "To use the data collector."
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\DoctrineBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org/"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DoctrineBundle",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database",
|
||||
"dbal",
|
||||
"orm",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2019-04-04 08:03:53"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-cache-bundle",
|
||||
"version": "1.3.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineCacheBundle.git",
|
||||
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927",
|
||||
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "^1.4.2",
|
||||
"doctrine/inflector": "~1.0",
|
||||
"php": ">=5.3.2",
|
||||
"symfony/doctrine-bridge": "~2.7|~3.3|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"instaclick/coding-standard": "~1.1",
|
||||
"instaclick/object-calisthenics-sniffs": "dev-master",
|
||||
"instaclick/symfony2-coding-standard": "dev-remaster",
|
||||
"phpunit/phpunit": "~4.8.36|~5.6|~6.5|~7.0",
|
||||
"predis/predis": "~0.8",
|
||||
"satooshi/php-coveralls": "^1.0",
|
||||
"squizlabs/php_codesniffer": "~1.5",
|
||||
"symfony/console": "~2.7|~3.3|~4.0",
|
||||
"symfony/finder": "~2.7|~3.3|~4.0",
|
||||
"symfony/framework-bundle": "~2.7|~3.3|~4.0",
|
||||
"symfony/phpunit-bridge": "~2.7|~3.3|~4.0",
|
||||
"symfony/security-acl": "~2.7|~3.3",
|
||||
"symfony/validator": "~2.7|~3.3|~4.0",
|
||||
"symfony/yaml": "~2.7|~3.3|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/security-acl": "For using this bundle to cache ACLs"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\DoctrineCacheBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Fabio B. Silva",
|
||||
"email": "fabio.bat.silva@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@hotmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org/"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Bundle for Doctrine Cache",
|
||||
"homepage": "https://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching"
|
||||
],
|
||||
"time": "2018-11-09 06:25:35"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-fixtures-bundle",
|
||||
"version": "v2.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
|
||||
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273",
|
||||
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/data-fixtures": "~1.0",
|
||||
"doctrine/doctrine-bundle": "~1.0",
|
||||
"php": ">=5.3.2",
|
||||
"symfony/doctrine-bridge": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\FixturesBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DoctrineFixturesBundle",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"Fixture",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2017-10-30 19:26:42"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-migrations-bundle",
|
||||
"version": "v1.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
|
||||
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce",
|
||||
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/doctrine-bundle": "~1.0",
|
||||
"doctrine/migrations": "^1.1",
|
||||
"php": ">=5.4.0",
|
||||
"symfony/framework-bundle": "~2.7|~3.3|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^7.4"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Bundle\\MigrationsBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Doctrine Project",
|
||||
"homepage": "http://www.doctrine-project.org"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DoctrineMigrationsBundle",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"dbal",
|
||||
"migrations",
|
||||
"schema"
|
||||
],
|
||||
"time": "2018-12-03 11:55:33"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/inflector.git",
|
||||
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462",
|
||||
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Common String Manipulations with regard to casing and singular/plural rules.",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"inflection",
|
||||
"pluralize",
|
||||
"singularize",
|
||||
"string"
|
||||
],
|
||||
"time": "2017-07-22 12:18:28"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/instantiator.git",
|
||||
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
|
||||
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3,<8.0-DEV"
|
||||
},
|
||||
"require-dev": {
|
||||
"athletic/athletic": "~0.1.8",
|
||||
"ext-pdo": "*",
|
||||
"ext-phar": "*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"squizlabs/php_codesniffer": "~2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.com/"
|
||||
}
|
||||
],
|
||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||
"homepage": "https://github.com/doctrine/instantiator",
|
||||
"keywords": [
|
||||
"constructor",
|
||||
"instantiate"
|
||||
],
|
||||
"time": "2015-06-14 21:17:01"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"lexer",
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-06-08 11:03:04"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/migrations",
|
||||
"version": "v1.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/migrations.git",
|
||||
"reference": "c81147c0f2938a6566594455367e095150547f72"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72",
|
||||
"reference": "c81147c0f2938a6566594455367e095150547f72",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "~2.2",
|
||||
"ocramius/proxy-manager": "^1.0|^2.0",
|
||||
"php": "^5.5|^7.0",
|
||||
"symfony/console": "~2.3|~3.0",
|
||||
"symfony/yaml": "~2.3|~3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "dev-master",
|
||||
"doctrine/orm": "2.*",
|
||||
"jdorn/sql-formatter": "~1.1",
|
||||
"johnkary/phpunit-speedtrap": "~1.0@dev",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"mockery/mockery": "^0.9.4",
|
||||
"phpunit/phpunit": "~4.7",
|
||||
"satooshi/php-coveralls": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command."
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine-migrations"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "v1.6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"LGPL-2.1"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Michael Simonson",
|
||||
"email": "contact@mikesimonson.com"
|
||||
}
|
||||
],
|
||||
"description": "Database Schema migrations using Doctrine DBAL",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database",
|
||||
"migrations"
|
||||
],
|
||||
"time": "2016-12-25 22:54:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/orm",
|
||||
"version": "v2.5.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/orm.git",
|
||||
"reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/orm/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754",
|
||||
"reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "~1.4",
|
||||
"doctrine/collections": "~1.2",
|
||||
"doctrine/common": ">=2.5-dev,<2.9-dev",
|
||||
"doctrine/dbal": ">=2.5-dev,<2.7-dev",
|
||||
"doctrine/instantiator": "^1.0.1",
|
||||
"ext-pdo": "*",
|
||||
"php": ">=5.4",
|
||||
"symfony/console": "~2.5|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"symfony/yaml": "~2.3|~3.0|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
|
||||
},
|
||||
"bin": [
|
||||
"bin/doctrine",
|
||||
"bin/doctrine.php"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\ORM\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Object-Relational-Mapper for PHP",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"keywords": [
|
||||
"database",
|
||||
"orm"
|
||||
],
|
||||
"time": "2017-12-17 02:57:51"
|
||||
},
|
||||
{
|
||||
"name": "egeloen/ckeditor-bundle",
|
||||
"version": "6.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egeloen/IvoryCKEditorBundle.git",
|
||||
"reference": "9c9926918d3ae4b4d89ca2db578766ab9829ee7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egeloen/IvoryCKEditorBundle/zipball/9c9926918d3ae4b4d89ca2db578766ab9829ee7a",
|
||||
"reference": "9c9926918d3ae4b4d89ca2db578766ab9829ee7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"egeloen/json-builder": "^2.0|^3.0",
|
||||
"php": "^5.6|^7.0",
|
||||
"symfony/dependency-injection": "^2.7|^3.0",
|
||||
"symfony/form": "^2.7|^3.0",
|
||||
"symfony/framework-bundle": "^2.7|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.0",
|
||||
"friendsofphp/php-cs-fixer": "^2.0",
|
||||
"phpunit/phpunit": "^5.0|^6.0",
|
||||
"sensio/distribution-bundle": "^3.0.12|^4.0|^5.0",
|
||||
"symfony/asset": "^2.7|^3.0",
|
||||
"symfony/console": "^2.7|^3.0",
|
||||
"symfony/phpunit-bridge": "^2.7|^3.0",
|
||||
"symfony/templating": "^2.7|^3.0",
|
||||
"symfony/twig-bridge": "^2.7|^3.0",
|
||||
"symfony/yaml": "^2.7|^3.0",
|
||||
"twig/twig": "^1.12"
|
||||
},
|
||||
"suggest": {
|
||||
"egeloen/form-extra-bundle": "Allows to load CKEditor asynchronously",
|
||||
"sensio/distribution-bundle": "Allows to install CKEditor via a script handler",
|
||||
"symfony/asset": "Allows to rewrite/version assets",
|
||||
"symfony/templating": "Allows to use PHP templates",
|
||||
"symfony/twig-bridge": "Allows to use Twig templates",
|
||||
"twig/twig": "Allows to use Twig templates"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ivory\\CKEditorBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eric GELOEN",
|
||||
"email": "geloen.eric@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Provides a CKEditor integration for your Symfony2 Project.",
|
||||
"keywords": [
|
||||
"CKEditor"
|
||||
],
|
||||
"time": "2017-08-18 08:19:45"
|
||||
},
|
||||
{
|
||||
"name": "egeloen/json-builder",
|
||||
"version": "3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egeloen/ivory-json-builder.git",
|
||||
"reference": "3e70bc681891d8aca88dd72164caea659739f284"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egeloen/ivory-json-builder/zipball/3e70bc681891d8aca88dd72164caea659739f284",
|
||||
"reference": "3e70bc681891d8aca88dd72164caea659739f284",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": "^5.6|^7.0",
|
||||
"symfony/property-access": "^2.7|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.0",
|
||||
"phpunit/phpunit": "^5.0",
|
||||
"symfony/phpunit-bridge": "^2.7|^3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ivory\\JsonBuilder\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eric GELOEN",
|
||||
"email": "geloen.eric@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "JSON builder with escaping control for PHP 5.6+",
|
||||
"keywords": [
|
||||
"Escape",
|
||||
"builder",
|
||||
"json"
|
||||
],
|
||||
"time": "2017-02-27 20:18:54"
|
||||
},
|
||||
{
|
||||
"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-23 21:35:13"
|
||||
},
|
||||
{
|
||||
"name": "fig/link-util",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/link-util.git",
|
||||
"reference": "1a07821801a148be4add11ab0603e4af55a72fac"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac",
|
||||
"reference": "1a07821801a148be4add11ab0603e4af55a72fac",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.0",
|
||||
"psr/link": "~1.0@dev"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.1",
|
||||
"squizlabs/php_codesniffer": "^2.3.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fig\\Link\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common utility implementations for HTTP links",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-link",
|
||||
"link",
|
||||
"psr",
|
||||
"psr-13",
|
||||
"rest"
|
||||
],
|
||||
"time": "2016-10-17 18:31:11"
|
||||
},
|
||||
{
|
||||
"name": "gos/pnctl-event-loop-emitter",
|
||||
"version": "v0.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/PNCTLEventLoopEmitter.git",
|
||||
"reference": "93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/PNCTLEventLoopEmitter/zipball/93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3",
|
||||
"reference": "93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"evenement/evenement": "~2.0|~3.0",
|
||||
"php": ">=5.4",
|
||||
"react/event-loop": "~0.4.0|^0.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gos\\Component\\PnctlEventLoopEmitter\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Johann Saunier",
|
||||
"email": "johann_27@hotmail.fr"
|
||||
}
|
||||
],
|
||||
"description": "Pnctl event emitter for event loop",
|
||||
"homepage": "https://github.com/GeniusesOfSymfony/PnctlEventLoopEmitter",
|
||||
"keywords": [
|
||||
"Pnctl",
|
||||
"event loop",
|
||||
"reactphp"
|
||||
],
|
||||
"time": "2018-04-09 11:12:07"
|
||||
},
|
||||
{
|
||||
"name": "gos/pubsub-router-bundle",
|
||||
"version": "v0.3.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/PubSubRouterBundle.git",
|
||||
"reference": "a3f9666455dc42f38a7ce31ca2fc55bd27421ea0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/PubSubRouterBundle/zipball/a3f9666455dc42f38a7ce31ca2fc55bd27421ea0",
|
||||
"reference": "a3f9666455dc42f38a7ce31ca2fc55bd27421ea0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "~1.4",
|
||||
"php": ">=5.5",
|
||||
"symfony/console": "~3.4|~4.0",
|
||||
"symfony/framework-bundle": "~3.4|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gos\\Bundle\\PubSubRouterBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Johann Saunier",
|
||||
"email": "johann_27@hotmail.fr"
|
||||
}
|
||||
],
|
||||
"description": "Symfony PubSub Router Bundle",
|
||||
"homepage": "https://github.com/GeniusesOfSymfony/PubSubRouterBundle",
|
||||
"keywords": [
|
||||
"PubSub Bundle",
|
||||
"WAMP",
|
||||
"bundle",
|
||||
"pubsub",
|
||||
"redis",
|
||||
"zmq"
|
||||
],
|
||||
"time": "2018-10-04 17:09:23"
|
||||
},
|
||||
{
|
||||
"name": "gos/web-socket-bundle",
|
||||
"version": "v1.8.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git",
|
||||
"reference": "016f4b49a16731945fc3ee1e0781f53167e393cf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/016f4b49a16731945fc3ee1e0781f53167e393cf",
|
||||
"reference": "016f4b49a16731945fc3ee1e0781f53167e393cf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"cboden/ratchet": "^0.4.1",
|
||||
"gos/pnctl-event-loop-emitter": "^0.1",
|
||||
"gos/pubsub-router-bundle": "^0.3",
|
||||
"gos/websocket-client": "^0.1",
|
||||
"ocramius/proxy-manager": "^1.0|^2.1",
|
||||
"php": ">=5.4",
|
||||
"symfony/framework-bundle": "^2.3|^3.0|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/cache": "* to use doctrine/cache as a client driver",
|
||||
"ext-amqp": "*",
|
||||
"ext-libev": "*",
|
||||
"ext-libevent": ">=0.0.5",
|
||||
"ext-zmq": "*",
|
||||
"symfony/cache": ">=3.1 to use symfony/cache as a client driver",
|
||||
"symfony/proxy-manager-bridge": "~2.3"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gos\\Bundle\\WebSocketBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeremy Dare",
|
||||
"email": "jeremy.d.dare@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johann Saunier",
|
||||
"email": "johann_27@hotmail.fr"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Web Socket Bundle",
|
||||
"homepage": "https://github.com/GeniusesOfSymfony/WebSocketBundle",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"WAMP",
|
||||
"Web Socket Bundle",
|
||||
"io",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2018-07-29 14:31:46"
|
||||
},
|
||||
{
|
||||
"name": "gos/websocket-client",
|
||||
"version": "v0.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/WebSocketPhpClient.git",
|
||||
"reference": "13bb38cb01acee648fea1a6ca4ad3dc6148da7fe"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketPhpClient/zipball/13bb38cb01acee648fea1a6ca4ad3dc6148da7fe",
|
||||
"reference": "13bb38cb01acee648fea1a6ca4ad3dc6148da7fe",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gos\\Component\\WebSocketClient\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Johann Saunier",
|
||||
"email": "johann_27@hotmail.fr"
|
||||
},
|
||||
{
|
||||
"name": "Martin Bažík",
|
||||
"email": "martin@bazo.sk"
|
||||
}
|
||||
],
|
||||
"description": "WAMP client in PHP",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"WAMP",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2015-08-04 11:43:11"
|
||||
},
|
||||
{
|
||||
"name": "gregwar/captcha",
|
||||
"version": "v1.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/Captcha.git",
|
||||
"reference": "cf953dd79748406e0292cea8c565399681e4d345"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345",
|
||||
"reference": "cf953dd79748406e0292cea8c565399681e4d345",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-gd": "*",
|
||||
"ext-mbstring": "*",
|
||||
"php": ">=5.3.0",
|
||||
"symfony/finder": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.4"
|
||||
},
|
||||
"type": "captcha",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gregwar\\": "src/Gregwar"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Grégoire Passault",
|
||||
"email": "g.passault@gmail.com",
|
||||
"homepage": "http://www.gregwar.com/"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Livingston",
|
||||
"email": "jeremy.j.livingston@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Captcha generator",
|
||||
"homepage": "https://github.com/Gregwar/Captcha",
|
||||
"keywords": [
|
||||
"bot",
|
||||
"captcha",
|
||||
"spam"
|
||||
],
|
||||
"time": "2018-08-17 22:57:28"
|
||||
},
|
||||
{
|
||||
"name": "gregwar/captcha-bundle",
|
||||
"version": "v2.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Gregwar/CaptchaBundle.git",
|
||||
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7",
|
||||
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"gregwar/captcha": "~1.1",
|
||||
"php": ">=5.3.9",
|
||||
"symfony/form": "~2.8|~3.0|~4.0",
|
||||
"symfony/framework-bundle": "~2.8|~3.0|~4.0"
|
||||
},
|
||||
"type": "captcha-bundle",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gregwar\\CaptchaBundle\\": "/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Grégoire Passault",
|
||||
"email": "g.passault@gmail.com",
|
||||
"homepage": "http://www.gregwar.com/"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Livingston",
|
||||
"email": "jeremy.j.livingston@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Captcha bundle",
|
||||
"homepage": "https://github.com/Gregwar/CaptchaBundle",
|
||||
"keywords": [
|
||||
"Symfony2",
|
||||
"bot",
|
||||
"captcha",
|
||||
"code",
|
||||
"security",
|
||||
"spam",
|
||||
"visual"
|
||||
],
|
||||
"time": "2018-11-20 10:41:34"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.4",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Required for using the Log middleware"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2018-04-22 15:46:56"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "v1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "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"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2016-12-20 10:07:11"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.6.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"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.8"
|
||||
},
|
||||
"suggest": {
|
||||
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.6-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": "2019-07-01 23:21:34"
|
||||
},
|
||||
{
|
||||
"name": "incenteev/composer-parameter-handler",
|
||||
"version": "v2.1.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Incenteev/ParameterHandler.git",
|
||||
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550",
|
||||
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/yaml": "^2.3 || ^3.0 || ^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.0@dev",
|
||||
"symfony/filesystem": "^2.3 || ^3 || ^4",
|
||||
"symfony/phpunit-bridge": "^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Incenteev\\ParameterHandler\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Christophe Coevoet",
|
||||
"email": "stof@notk.org"
|
||||
}
|
||||
],
|
||||
"description": "Composer script handling your ignored parameter file",
|
||||
"homepage": "https://github.com/Incenteev/ParameterHandler",
|
||||
"keywords": [
|
||||
"parameters management"
|
||||
],
|
||||
"time": "2018-02-13 18:05:56"
|
||||
},
|
||||
{
|
||||
"name": "jasig/phpcas",
|
||||
"version": "1.3.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/apereo/phpCAS.git",
|
||||
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/40c0769ce05a30c8172b36ceab11124375c8366e",
|
||||
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~3.7.10"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"source/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Joachim Fritschi",
|
||||
"homepage": "https://wiki.jasig.org/display/~fritschi"
|
||||
},
|
||||
{
|
||||
"name": "Adam Franco",
|
||||
"homepage": "https://wiki.jasig.org/display/~adamfranco"
|
||||
}
|
||||
],
|
||||
"description": "Provides a simple API for authenticating users against a CAS server",
|
||||
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
||||
"keywords": [
|
||||
"apereo",
|
||||
"cas",
|
||||
"jasig"
|
||||
],
|
||||
"time": "2019-08-18 20:01:55"
|
||||
},
|
||||
{
|
||||
"name": "jdorn/sql-formatter",
|
||||
"version": "v1.2.17",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jdorn/sql-formatter.git",
|
||||
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
|
||||
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "3.7.*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"lib"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeremy Dorn",
|
||||
"email": "jeremy@jeremydorn.com",
|
||||
"homepage": "http://jeremydorn.com/"
|
||||
}
|
||||
],
|
||||
"description": "a PHP SQL highlighting library",
|
||||
"homepage": "https://github.com/jdorn/sql-formatter/",
|
||||
"keywords": [
|
||||
"highlight",
|
||||
"sql"
|
||||
],
|
||||
"time": "2014-01-12 16:20:24"
|
||||
},
|
||||
{
|
||||
"name": "kriswallsmith/assetic",
|
||||
"version": "v1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/kriswallsmith/assetic.git",
|
||||
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
|
||||
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.1",
|
||||
"symfony/process": "~2.1|~3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"twig/twig": "<1.27"
|
||||
},
|
||||
"require-dev": {
|
||||
"leafo/lessphp": "^0.3.7",
|
||||
"leafo/scssphp": "~0.1",
|
||||
"meenie/javascript-packer": "^1.1",
|
||||
"mrclay/minify": "<2.3",
|
||||
"natxet/cssmin": "3.0.4",
|
||||
"patchwork/jsqueeze": "~1.0|~2.0",
|
||||
"phpunit/phpunit": "~4.8 || ^5.6",
|
||||
"psr/log": "~1.0",
|
||||
"ptachoire/cssembed": "~1.0",
|
||||
"symfony/phpunit-bridge": "~2.7|~3.0",
|
||||
"twig/twig": "~1.23|~2.0",
|
||||
"yfix/packager": "dev-master"
|
||||
},
|
||||
"suggest": {
|
||||
"leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
|
||||
"leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
|
||||
"leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
|
||||
"patchwork/jsqueeze": "Assetic provides the integration with the JSqueeze JavaScript compressor",
|
||||
"ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
|
||||
"twig/twig": "Assetic provides the integration with the Twig templating engine"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Assetic": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kris Wallsmith",
|
||||
"email": "kris.wallsmith@gmail.com",
|
||||
"homepage": "http://kriswallsmith.net/"
|
||||
}
|
||||
],
|
||||
"description": "Asset Management for PHP",
|
||||
"homepage": "https://github.com/kriswallsmith/assetic",
|
||||
"keywords": [
|
||||
"assets",
|
||||
"compression",
|
||||
"minification"
|
||||
],
|
||||
"time": "2016-11-11 18:43:20"
|
||||
},
|
||||
{
|
||||
"name": "lightsaml/lightsaml",
|
||||
"version": "1.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lightSAML/lightSAML.git",
|
||||
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lightSAML/lightSAML/zipball/377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
|
||||
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6",
|
||||
"robrichards/xmlseclibs": "~2.0|~3.0|~4.0",
|
||||
"symfony/event-dispatcher": "~2.3|~3.0|~4.0",
|
||||
"symfony/http-foundation": "~2.3|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"monolog/monolog": "~1.3",
|
||||
"phpunit/phpunit": ">=5.7",
|
||||
"pimple/pimple": "~3.0",
|
||||
"symfony/css-selector": "~2.3|~3.0|~4.0",
|
||||
"symfony/dom-crawler": "~2.3|~3.0|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"lightsaml/sp-bundle": "Symfony 2 SP security bundle",
|
||||
"lightsaml/symfony-bridge": "Symfony 2 build container bridge"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"LightSaml\\Tests\\": "tests/",
|
||||
"LightSaml\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Milos Tomic",
|
||||
"email": "tmilos@gmail.com",
|
||||
"homepage": "https://github.com/tmilos/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Light SAML 2.0 PHP library",
|
||||
"homepage": "https://www.lightsaml.com/",
|
||||
"keywords": [
|
||||
"SAML 2.0",
|
||||
"Single Logout",
|
||||
"Single SignOn",
|
||||
"library",
|
||||
"lightSAML",
|
||||
"php"
|
||||
],
|
||||
"time": "2018-05-28 11:21:22"
|
||||
},
|
||||
{
|
||||
"name": "lightsaml/sp-bundle",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lightSAML/SpBundle.git",
|
||||
"reference": "b31182d23d93b696305f57f9a66d6770a53d5f8e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lightSAML/SpBundle/zipball/b31182d23d93b696305f57f9a66d6770a53d5f8e",
|
||||
"reference": "b31182d23d93b696305f57f9a66d6770a53d5f8e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"lightsaml/symfony-bridge": "~1.3",
|
||||
"php": ">=5.6",
|
||||
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
|
||||
"symfony/security-bundle": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7",
|
||||
"sebastian/comparator": "^1.2.4|~2.0|~3.0",
|
||||
"symfony/monolog-bundle": "~2.7|~3.0|~4.0",
|
||||
"symfony/symfony": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"LightSaml\\SpBundle\\Tests\\": "tests/",
|
||||
"LightSaml\\SpBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Milos Tomic",
|
||||
"email": "tmilos@gmail.com",
|
||||
"homepage": "http://github.com/tmilos",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Light SAML2 SP Symfony Bundle",
|
||||
"homepage": "http://www.lightsaml.com/SP-Bundle/",
|
||||
"time": "2018-05-23 09:11:16"
|
||||
},
|
||||
{
|
||||
"name": "lightsaml/symfony-bridge",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lightSAML/SymfonyBridgeBundle.git",
|
||||
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lightSAML/SymfonyBridgeBundle/zipball/8d3120825032a7468e894d0ae68630f21cd6035b",
|
||||
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"lightsaml/lightsaml": "~1.1",
|
||||
"php": ">=5.5.1",
|
||||
"symfony/dependency-injection": "~2.7|~3.0|~4.0",
|
||||
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
|
||||
"symfony/yaml": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "~2.0",
|
||||
"phpunit/phpunit": "^5.7",
|
||||
"symfony/browser-kit": "~2.7|~3.0|~4.0",
|
||||
"symfony/filesystem": "~2.7|~3.0|~4.0",
|
||||
"symfony/finder": "~2.7|~3.0|~4.0",
|
||||
"symfony/routing": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"lightsaml/lightsamp-idp": "If you will be using IDP LightSAML services"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"LightSaml\\SymfonyBridgeBundle\\Tests\\": "tests/",
|
||||
"LightSaml\\SymfonyBridgeBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Milos Tomic",
|
||||
"email": "tmilos@gmail.com",
|
||||
"homepage": "http://github.com/tmilos",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Light SAML Symfony bridge bundle",
|
||||
"homepage": "http://www.lightsaml.com",
|
||||
"time": "2018-05-23 08:11:59"
|
||||
},
|
||||
{
|
||||
"name": "mashape/unirest-php",
|
||||
"version": "v2.6.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Mashape/unirest-php.git",
|
||||
"reference": "73c2d903232bb5a125396e606b67314a87b8b21c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Mashape/unirest-php/zipball/73c2d903232bb5a125396e606b67314a87b8b21c",
|
||||
"reference": "73c2d903232bb5a125396e606b67314a87b8b21c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeclimate/php-test-reporter": "0.1.*",
|
||||
"phpunit/phpunit": "~4.4"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Unirest": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Unirest PHP",
|
||||
"homepage": "https://github.com/Mashape/unirest-php",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"http",
|
||||
"https",
|
||||
"rest"
|
||||
],
|
||||
"time": "2016-02-16 16:45:52"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "1.25.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
||||
"reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
|
||||
"doctrine/couchdb": "~1.0@dev",
|
||||
"graylog2/gelf-php": "~1.0",
|
||||
"jakub-onderka/php-parallel-lint": "0.9",
|
||||
"php-amqplib/php-amqplib": "~2.4",
|
||||
"php-console/php-console": "^3.1.3",
|
||||
"phpunit/phpunit": "~4.5",
|
||||
"phpunit/phpunit-mock-objects": "2.3.0",
|
||||
"ruflin/elastica": ">=0.90 <3.0",
|
||||
"sentry/sentry": "^0.13",
|
||||
"swiftmailer/swiftmailer": "^5.3|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
|
||||
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
|
||||
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
|
||||
"ext-mongo": "Allow sending log messages to a MongoDB server",
|
||||
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
|
||||
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
|
||||
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
|
||||
"php-console/php-console": "Allow sending log messages to Google Chrome",
|
||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
||||
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Monolog\\": "src/Monolog"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
|
||||
"homepage": "http://github.com/Seldaek/monolog",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2019-09-06 13:49:17"
|
||||
},
|
||||
{
|
||||
"name": "ocramius/proxy-manager",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocramius/ProxyManager.git",
|
||||
"reference": "57e9272ec0e8deccf09421596e0e2252df440e11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11",
|
||||
"reference": "57e9272ec0e8deccf09421596e0e2252df440e11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"zendframework/zend-code": ">2.2.5,<3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-phar": "*",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"squizlabs/php_codesniffer": "1.5.*"
|
||||
},
|
||||
"suggest": {
|
||||
"ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
|
||||
"zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
|
||||
"zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
|
||||
"zendframework/zend-stdlib": "To use the hydrator proxy",
|
||||
"zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"ProxyManager\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.com/"
|
||||
}
|
||||
],
|
||||
"description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
|
||||
"homepage": "https://github.com/Ocramius/ProxyManager",
|
||||
"keywords": [
|
||||
"aop",
|
||||
"lazy loading",
|
||||
"proxy",
|
||||
"proxy pattern",
|
||||
"service proxies"
|
||||
],
|
||||
"time": "2015-08-09 04:28:19"
|
||||
},
|
||||
{
|
||||
"name": "oneup/uploader-bundle",
|
||||
"version": "1.9.2",
|
||||
"target-dir": "Oneup/UploaderBundle",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/1up-lab/OneupUploaderBundle.git",
|
||||
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/a32bc98019abfd51531d08cc79be19f849d87b84",
|
||||
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "^1.1|^2.0",
|
||||
"php": ">=5.4",
|
||||
"symfony/asset": "^2.4|^3.0",
|
||||
"symfony/finder": "^2.4|^3.0",
|
||||
"symfony/framework-bundle": "^2.4|^3.0",
|
||||
"symfony/templating": "^2.4|^3.0",
|
||||
"symfony/translation": "^2.4|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"amazonwebservices/aws-sdk-for-php": "1.5.*",
|
||||
"knplabs/gaufrette": "0.2.*@dev",
|
||||
"oneup/flysystem-bundle": "^1.2",
|
||||
"phpunit/phpunit": "^4.4",
|
||||
"sensio/framework-extra-bundle": "2.*|^3.0",
|
||||
"symfony/browser-kit": "2.*|^3.0",
|
||||
"symfony/class-loader": "2.*|^3.0",
|
||||
"symfony/security-bundle": "2.*|^3.0",
|
||||
"twistor/flysystem-stream-wrapper": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"knplabs/knp-gaufrette-bundle": "0.1.*",
|
||||
"oneup/flysystem-bundle": "^1.2",
|
||||
"twistor/flysystem-stream-wrapper": "^1.0 (Required when using Flysystem)"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Oneup\\UploaderBundle": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jim Schmid",
|
||||
"email": "js@1up.io",
|
||||
"homepage": "http://1up.io",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Handles multi file uploads in Symfony2. Features included: Chunked upload, Orphans management, Gaufrette support.",
|
||||
"homepage": "http://1up.io",
|
||||
"keywords": [
|
||||
"FancyUpload",
|
||||
"FineUploader",
|
||||
"MooUpload",
|
||||
"Uploadify",
|
||||
"YUI3 Uploader",
|
||||
"blueimp",
|
||||
"dropzone",
|
||||
"fileupload",
|
||||
"jQuery File Uploader",
|
||||
"plupload",
|
||||
"upload"
|
||||
],
|
||||
"time": "2017-12-18 12:41:59"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v2.0.18",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
|
||||
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"lib/random.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Paragon Initiative Enterprises",
|
||||
"email": "security@paragonie.com",
|
||||
"homepage": "https://paragonie.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
|
||||
"keywords": [
|
||||
"csprng",
|
||||
"polyfill",
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2019-01-03 20:59:08"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/cache.git",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for caching libraries",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"psr",
|
||||
"psr-6"
|
||||
],
|
||||
"time": "2016-08-06 20:24:11"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/container.git",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Container\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common Container Interface (PHP FIG PSR-11)",
|
||||
"homepage": "https://github.com/php-fig/container",
|
||||
"keywords": [
|
||||
"PSR-11",
|
||||
"container",
|
||||
"container-interface",
|
||||
"container-interop",
|
||||
"psr"
|
||||
],
|
||||
"time": "2017-02-14 16:28:37"
|
||||
},
|
||||
{
|
||||
"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-06 14:39:51"
|
||||
},
|
||||
{
|
||||
"name": "psr/link",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/link.git",
|
||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
||||
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Link\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for HTTP links",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-link",
|
||||
"link",
|
||||
"psr",
|
||||
"psr-13",
|
||||
"rest"
|
||||
],
|
||||
"time": "2016-10-28 16:06:13"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
|
||||
"reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
"homepage": "https://github.com/php-fig/log",
|
||||
"keywords": [
|
||||
"log",
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2018-11-20 15:27:04"
|
||||
},
|
||||
{
|
||||
"name": "psr/simple-cache",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/simple-cache.git",
|
||||
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
|
||||
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\SimpleCache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for simple caching",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching",
|
||||
"psr",
|
||||
"psr-16",
|
||||
"simple-cache"
|
||||
],
|
||||
"time": "2017-10-23 01:57:42"
|
||||
},
|
||||
{
|
||||
"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-08 08:55:37"
|
||||
},
|
||||
{
|
||||
"name": "ramsey/uuid",
|
||||
"version": "3.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ramsey/uuid.git",
|
||||
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
|
||||
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "^1.0|^2.0|9.99.99",
|
||||
"php": "^5.4 || ^7.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"replace": {
|
||||
"rhumsaa/uuid": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeception/aspect-mock": "^1.0 | ~2.0.0",
|
||||
"doctrine/annotations": "~1.2.0",
|
||||
"goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0",
|
||||
"ircmaxell/random-lib": "^1.1",
|
||||
"jakub-onderka/php-parallel-lint": "^0.9.0",
|
||||
"mockery/mockery": "^0.9.9",
|
||||
"moontoast/math": "^1.1",
|
||||
"php-mock/php-mock-phpunit": "^0.3|^1.1",
|
||||
"phpunit/phpunit": "^4.7|^5.0|^6.5",
|
||||
"squizlabs/php_codesniffer": "^2.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "Provides support for PHP Ctype functions",
|
||||
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
|
||||
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
|
||||
"ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
|
||||
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
|
||||
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
|
||||
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ramsey\\Uuid\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marijn Huizendveld",
|
||||
"email": "marijn.huizendveld@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Thibaud Fabre",
|
||||
"email": "thibaud@aztech.io"
|
||||
},
|
||||
{
|
||||
"name": "Ben Ramsey",
|
||||
"email": "ben@benramsey.com",
|
||||
"homepage": "https://benramsey.com"
|
||||
}
|
||||
],
|
||||
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
|
||||
"homepage": "https://github.com/ramsey/uuid",
|
||||
"keywords": [
|
||||
"guid",
|
||||
"identifier",
|
||||
"uuid"
|
||||
],
|
||||
"time": "2018-07-19 23:38:55"
|
||||
},
|
||||
{
|
||||
"name": "ratchet/rfc6455",
|
||||
"version": "v0.2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ratchetphp/RFC6455.git",
|
||||
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c62f7cd95ffbb6e94fd657be694fc7372ecd6e62",
|
||||
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"php": ">=5.4.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.8.*",
|
||||
"react/http": "^0.4.1",
|
||||
"react/socket-client": "^0.4.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"
|
||||
}
|
||||
],
|
||||
"description": "RFC6455 WebSocket protocol handler",
|
||||
"homepage": "http://socketo.me",
|
||||
"keywords": [
|
||||
"WebSockets",
|
||||
"rfc6455",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2019-03-10 17:10:42"
|
||||
},
|
||||
{
|
||||
"name": "react/cache",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/cache.git",
|
||||
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466",
|
||||
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"react/promise": "~2.0|~1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async, Promise-based cache interface for ReactPHP",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching",
|
||||
"promise",
|
||||
"reactphp"
|
||||
],
|
||||
"time": "2019-07-11 13:45:28"
|
||||
},
|
||||
{
|
||||
"name": "react/dns",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/dns.git",
|
||||
"reference": "a214d90c2884dac18d0cac6176202f247b66d762"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762",
|
||||
"reference": "a214d90c2884dac18d0cac6176202f247b66d762",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"react/cache": "^1.0 || ^0.6 || ^0.5",
|
||||
"react/event-loop": "^1.0 || ^0.5",
|
||||
"react/promise": "^2.7 || ^1.2.1",
|
||||
"react/promise-timer": "^1.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"clue/block-react": "^1.2",
|
||||
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Dns\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async DNS resolver for ReactPHP",
|
||||
"keywords": [
|
||||
"async",
|
||||
"dns",
|
||||
"dns-resolver",
|
||||
"reactphp"
|
||||
],
|
||||
"time": "2019-08-15 09:06:31"
|
||||
},
|
||||
{
|
||||
"name": "react/event-loop",
|
||||
"version": "v0.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/event-loop.git",
|
||||
"reference": "228178a947de1f7cd9296d691878569628288c6f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/228178a947de1f7cd9296d691878569628288c6f",
|
||||
"reference": "228178a947de1f7cd9296d691878569628288c6f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8.35 || ^5.7 || ^6.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-event": "~1.0 for ExtEventLoop",
|
||||
"ext-pcntl": "For signal handling support when using the StreamSelectLoop"
|
||||
},
|
||||
"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": "2018-07-09 13:51:04"
|
||||
},
|
||||
{
|
||||
"name": "react/promise",
|
||||
"version": "v2.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/promise.git",
|
||||
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
|
||||
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8"
|
||||
},
|
||||
"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": "2019-01-07 21:25:54"
|
||||
},
|
||||
{
|
||||
"name": "react/promise-timer",
|
||||
"version": "v1.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/promise-timer.git",
|
||||
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc",
|
||||
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
|
||||
"react/promise": "^2.7.0 || ^1.2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.4 || ^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": "2019-03-27 18:10:32"
|
||||
},
|
||||
{
|
||||
"name": "react/socket",
|
||||
"version": "v1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/socket.git",
|
||||
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0",
|
||||
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
|
||||
"php": ">=5.3.0",
|
||||
"react/dns": "^1.0 || ^0.4.13",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.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": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Socket\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
|
||||
"keywords": [
|
||||
"Connection",
|
||||
"Socket",
|
||||
"async",
|
||||
"reactphp",
|
||||
"stream"
|
||||
],
|
||||
"time": "2019-07-10 10:11:14"
|
||||
},
|
||||
{
|
||||
"name": "react/stream",
|
||||
"version": "v1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/stream.git",
|
||||
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6",
|
||||
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6",
|
||||
"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": "^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": "2019-01-01 16:15:09"
|
||||
},
|
||||
{
|
||||
"name": "robrichards/xmlseclibs",
|
||||
"version": "3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/robrichards/xmlseclibs.git",
|
||||
"reference": "406c68ac9124db033d079284b719958b829cb830"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/406c68ac9124db033d079284b719958b829cb830",
|
||||
"reference": "406c68ac9124db033d079284b719958b829cb830",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"php": ">= 5.4"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"RobRichards\\XMLSecLibs\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "A PHP library for XML Security",
|
||||
"homepage": "https://github.com/robrichards/xmlseclibs",
|
||||
"keywords": [
|
||||
"security",
|
||||
"signature",
|
||||
"xml",
|
||||
"xmldsig"
|
||||
],
|
||||
"time": "2018-11-15 11:59:02"
|
||||
},
|
||||
{
|
||||
"name": "sensio/distribution-bundle",
|
||||
"version": "v5.0.25",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
|
||||
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/80a38234bde8321fb92aa0b8c27978a272bb4baf",
|
||||
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"sensiolabs/security-checker": "~5.0|~6.0",
|
||||
"symfony/class-loader": "~2.3|~3.0",
|
||||
"symfony/config": "~2.3|~3.0",
|
||||
"symfony/dependency-injection": "~2.3|~3.0",
|
||||
"symfony/filesystem": "~2.3|~3.0",
|
||||
"symfony/http-kernel": "~2.3|~3.0",
|
||||
"symfony/process": "~2.3|~3.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sensio\\Bundle\\DistributionBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Base bundle for Symfony Distributions",
|
||||
"keywords": [
|
||||
"configuration",
|
||||
"distribution"
|
||||
],
|
||||
"time": "2019-06-18 15:43:58"
|
||||
},
|
||||
{
|
||||
"name": "sensio/framework-extra-bundle",
|
||||
"version": "v5.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
|
||||
"reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d",
|
||||
"reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/common": "^2.2",
|
||||
"symfony/config": "^3.3|^4.0",
|
||||
"symfony/dependency-injection": "^3.3|^4.0",
|
||||
"symfony/framework-bundle": "^3.4|^4.0",
|
||||
"symfony/http-kernel": "^3.3|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-bundle": "^1.6",
|
||||
"doctrine/orm": "^2.5",
|
||||
"symfony/browser-kit": "^3.3|^4.0",
|
||||
"symfony/dom-crawler": "^3.3|^4.0",
|
||||
"symfony/expression-language": "^3.3|^4.0",
|
||||
"symfony/finder": "^3.3|^4.0",
|
||||
"symfony/monolog-bridge": "^3.0|^4.0",
|
||||
"symfony/monolog-bundle": "^3.2",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8",
|
||||
"symfony/psr-http-message-bridge": "^0.3",
|
||||
"symfony/security-bundle": "^3.3|^4.0",
|
||||
"symfony/twig-bundle": "^3.3|^4.0",
|
||||
"symfony/yaml": "^3.3|^4.0",
|
||||
"twig/twig": "~1.12|~2.0",
|
||||
"zendframework/zend-diactoros": "^1.3"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/expression-language": "",
|
||||
"symfony/psr-http-message-bridge": "To use the PSR-7 converters",
|
||||
"symfony/security-bundle": ""
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sensio\\Bundle\\FrameworkExtraBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "This bundle provides a way to configure your controllers with annotations",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"controllers"
|
||||
],
|
||||
"time": "2018-12-11 16:59:23"
|
||||
},
|
||||
{
|
||||
"name": "sensiolabs/security-checker",
|
||||
"version": "v5.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/security-checker.git",
|
||||
"reference": "46be3f58adac13084497961e10eed9a7fb4d44d1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1",
|
||||
"reference": "46be3f58adac13084497961e10eed9a7fb4d44d1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/ca-bundle": "^1.0",
|
||||
"php": ">=5.5.9",
|
||||
"symfony/console": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"bin": [
|
||||
"security-checker"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SensioLabs\\Security\\": "SensioLabs/Security"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien.potencier@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A security checker for your composer.lock",
|
||||
"time": "2018-12-19 17:14:59"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v5.4.12",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950",
|
||||
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.1",
|
||||
"symfony/phpunit-bridge": "~3.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"lib/swift_required.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Corbyn"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Swiftmailer, free feature-rich PHP mailer",
|
||||
"homepage": "https://swiftmailer.symfony.com",
|
||||
"keywords": [
|
||||
"email",
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2018-07-31 09:26:32"
|
||||
},
|
||||
{
|
||||
"name": "symfony/assetic-bundle",
|
||||
"version": "v2.8.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/assetic-bundle.git",
|
||||
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c",
|
||||
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"kriswallsmith/assetic": "~1.4",
|
||||
"php": ">=5.3.0",
|
||||
"symfony/console": "~2.3|~3.0",
|
||||
"symfony/dependency-injection": "~2.3|~3.0",
|
||||
"symfony/framework-bundle": "~2.3|~3.0",
|
||||
"symfony/yaml": "~2.3|~3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"kriswallsmith/spork": "<=0.2",
|
||||
"twig/twig": "<1.27"
|
||||
},
|
||||
"require-dev": {
|
||||
"kriswallsmith/spork": "~0.3",
|
||||
"patchwork/jsqueeze": "~1.0",
|
||||
"symfony/class-loader": "~2.3|~3.0",
|
||||
"symfony/css-selector": "~2.3|~3.0",
|
||||
"symfony/dom-crawler": "~2.3|~3.0",
|
||||
"symfony/phpunit-bridge": "~2.7|~3.0",
|
||||
"symfony/twig-bundle": "~2.3|~3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"kriswallsmith/spork": "to be able to dump assets in parallel",
|
||||
"symfony/twig-bundle": "to use the Twig integration"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.8-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\AsseticBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kris Wallsmith",
|
||||
"email": "kris.wallsmith@gmail.com",
|
||||
"homepage": "http://kriswallsmith.net/"
|
||||
}
|
||||
],
|
||||
"description": "Integrates Assetic into Symfony2",
|
||||
"homepage": "https://github.com/symfony/AsseticBundle",
|
||||
"keywords": [
|
||||
"assets",
|
||||
"compression",
|
||||
"minification"
|
||||
],
|
||||
"time": "2017-07-14 07:26:46"
|
||||
},
|
||||
{
|
||||
"name": "symfony/monolog-bundle",
|
||||
"version": "v3.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/monolog-bundle.git",
|
||||
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
|
||||
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"monolog/monolog": "~1.22",
|
||||
"php": ">=5.6",
|
||||
"symfony/config": "~3.4|~4.0",
|
||||
"symfony/dependency-injection": "~3.4.10|^4.0.10",
|
||||
"symfony/http-kernel": "~3.4|~4.0",
|
||||
"symfony/monolog-bridge": "~3.4|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "~3.4|~4.0",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.0",
|
||||
"symfony/yaml": "~3.4|~4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\MonologBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony MonologBundle",
|
||||
"homepage": "http://symfony.com",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging"
|
||||
],
|
||||
"time": "2019-06-20 12:18:19"
|
||||
},
|
||||
{
|
||||
"name": "symfony/orm-pack",
|
||||
"version": "v1.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/orm-pack.git",
|
||||
"reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/36c2a928482dc5f05c5c1c1b947242ae03ff1335",
|
||||
"reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/doctrine-bundle": "^1.6.10",
|
||||
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0",
|
||||
"doctrine/orm": "^2.5.11",
|
||||
"php": "^7.0"
|
||||
},
|
||||
"type": "symfony-pack",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A pack for the Doctrine ORM",
|
||||
"time": "2019-01-16 09:49:15"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-apcu",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-apcu.git",
|
||||
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/71ce80635d5dcd67772b4dda00b86068595f64d5",
|
||||
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Apcu\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"apcu",
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "550ebaac289296ce228a706d0867afc34687e3f4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
|
||||
"reference": "550ebaac289296ce228a706d0867afc34687e3f4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-icu",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-icu.git",
|
||||
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e",
|
||||
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/intl": "~2.3|~3.0|~4.0|~5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's ICU-related data and classes",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"icu",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17",
|
||||
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php56",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php56.git",
|
||||
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403",
|
||||
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/polyfill-util": "~1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php56\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php70",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php70.git",
|
||||
"reference": "54b4c428a0054e254223797d2713c31e08610831"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831",
|
||||
"reference": "54b4c428a0054e254223797d2713c31e08610831",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"paragonie/random_compat": "~1.0|~2.0|~9.99",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php70\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-util",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-util.git",
|
||||
"reference": "4317de1386717b4c22caed7725350a8887ab205c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c",
|
||||
"reference": "4317de1386717b4c22caed7725350a8887ab205c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Util\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony utilities for portability of PHP codes",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compat",
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"shim"
|
||||
],
|
||||
"time": "2019-08-06 08:03:45"
|
||||
},
|
||||
{
|
||||
"name": "symfony/swiftmailer-bundle",
|
||||
"version": "v2.6.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/swiftmailer-bundle.git",
|
||||
"reference": "c4808f5169efc05567be983909d00f00521c53ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec",
|
||||
"reference": "c4808f5169efc05567be983909d00f00521c53ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2",
|
||||
"swiftmailer/swiftmailer": "~4.2|~5.0",
|
||||
"symfony/config": "~2.7|~3.0",
|
||||
"symfony/dependency-injection": "~2.7|~3.0",
|
||||
"symfony/http-kernel": "~2.7|~3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "~2.7|~3.0",
|
||||
"symfony/framework-bundle": "~2.7|~3.0",
|
||||
"symfony/phpunit-bridge": "~3.3@dev",
|
||||
"symfony/yaml": "~2.7|~3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\SwiftmailerBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony SwiftmailerBundle",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2017-10-19 01:06:41"
|
||||
},
|
||||
{
|
||||
"name": "symfony/symfony",
|
||||
"version": "v3.4.32",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/symfony.git",
|
||||
"reference": "2815d1fa34d417b8b87450667f166edbefff3177"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/symfony/zipball/2815d1fa34d417b8b87450667f166edbefff3177",
|
||||
"reference": "2815d1fa34d417b8b87450667f166edbefff3177",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/common": "~2.4",
|
||||
"ext-xml": "*",
|
||||
"fig/link-util": "^1.0",
|
||||
"php": "^5.5.9|>=7.0.8",
|
||||
"psr/cache": "~1.0",
|
||||
"psr/container": "^1.0",
|
||||
"psr/link": "^1.0",
|
||||
"psr/log": "~1.0",
|
||||
"psr/simple-cache": "^1.0",
|
||||
"symfony/polyfill-apcu": "~1.1",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-intl-icu": "~1.0",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/polyfill-php56": "~1.0",
|
||||
"symfony/polyfill-php70": "~1.6",
|
||||
"twig/twig": "^1.41|^2.10"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<0.3.0",
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/cache-implementation": "1.0",
|
||||
"psr/container-implementation": "1.0",
|
||||
"psr/log-implementation": "1.0",
|
||||
"psr/simple-cache-implementation": "1.0"
|
||||
},
|
||||
"replace": {
|
||||
"symfony/asset": "self.version",
|
||||
"symfony/browser-kit": "self.version",
|
||||
"symfony/cache": "self.version",
|
||||
"symfony/class-loader": "self.version",
|
||||
"symfony/config": "self.version",
|
||||
"symfony/console": "self.version",
|
||||
"symfony/css-selector": "self.version",
|
||||
"symfony/debug": "self.version",
|
||||
"symfony/debug-bundle": "self.version",
|
||||
"symfony/dependency-injection": "self.version",
|
||||
"symfony/doctrine-bridge": "self.version",
|
||||
"symfony/dom-crawler": "self.version",
|
||||
"symfony/dotenv": "self.version",
|
||||
"symfony/event-dispatcher": "self.version",
|
||||
"symfony/expression-language": "self.version",
|
||||
"symfony/filesystem": "self.version",
|
||||
"symfony/finder": "self.version",
|
||||
"symfony/form": "self.version",
|
||||
"symfony/framework-bundle": "self.version",
|
||||
"symfony/http-foundation": "self.version",
|
||||
"symfony/http-kernel": "self.version",
|
||||
"symfony/inflector": "self.version",
|
||||
"symfony/intl": "self.version",
|
||||
"symfony/ldap": "self.version",
|
||||
"symfony/lock": "self.version",
|
||||
"symfony/monolog-bridge": "self.version",
|
||||
"symfony/options-resolver": "self.version",
|
||||
"symfony/process": "self.version",
|
||||
"symfony/property-access": "self.version",
|
||||
"symfony/property-info": "self.version",
|
||||
"symfony/proxy-manager-bridge": "self.version",
|
||||
"symfony/routing": "self.version",
|
||||
"symfony/security": "self.version",
|
||||
"symfony/security-bundle": "self.version",
|
||||
"symfony/security-core": "self.version",
|
||||
"symfony/security-csrf": "self.version",
|
||||
"symfony/security-guard": "self.version",
|
||||
"symfony/security-http": "self.version",
|
||||
"symfony/serializer": "self.version",
|
||||
"symfony/stopwatch": "self.version",
|
||||
"symfony/templating": "self.version",
|
||||
"symfony/translation": "self.version",
|
||||
"symfony/twig-bridge": "self.version",
|
||||
"symfony/twig-bundle": "self.version",
|
||||
"symfony/validator": "self.version",
|
||||
"symfony/var-dumper": "self.version",
|
||||
"symfony/web-link": "self.version",
|
||||
"symfony/web-profiler-bundle": "self.version",
|
||||
"symfony/web-server-bundle": "self.version",
|
||||
"symfony/workflow": "self.version",
|
||||
"symfony/yaml": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"cache/integration-tests": "dev-master",
|
||||
"doctrine/annotations": "~1.0",
|
||||
"doctrine/cache": "~1.6",
|
||||
"doctrine/data-fixtures": "1.0.*",
|
||||
"doctrine/dbal": "~2.4",
|
||||
"doctrine/doctrine-bundle": "~1.4",
|
||||
"doctrine/orm": "~2.4,>=2.4.5",
|
||||
"egulias/email-validator": "~1.2,>=1.2.8|~2.0",
|
||||
"monolog/monolog": "~1.11",
|
||||
"ocramius/proxy-manager": "~0.4|~1.0|~2.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
||||
"predis/predis": "~1.0",
|
||||
"symfony/phpunit-bridge": "^3.4.31|^4.3.4|~5.0",
|
||||
"symfony/security-acl": "~2.8|~3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
|
||||
"Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
|
||||
"Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
|
||||
"Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
|
||||
"Symfony\\Bundle\\": "src/Symfony/Bundle/",
|
||||
"Symfony\\Component\\": "src/Symfony/Component/"
|
||||
},
|
||||
"classmap": [
|
||||
"src/Symfony/Component/Intl/Resources/stubs"
|
||||
],
|
||||
"exclude-from-classmap": [
|
||||
"**/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "The Symfony PHP framework",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"framework"
|
||||
],
|
||||
"time": "2019-10-07 14:42:16"
|
||||
},
|
||||
{
|
||||
"name": "tetranz/select2entity-bundle",
|
||||
"version": "v2.10.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tetranz/select2entity-bundle.git",
|
||||
"reference": "1d4b184e41bdb76a61d7462b748d9cf0ecade47a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/1d4b184e41bdb76a61d7462b748d9cf0ecade47a",
|
||||
"reference": "1d4b184e41bdb76a61d7462b748d9cf0ecade47a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/orm": ">=2.4",
|
||||
"php": ">=5.4.0",
|
||||
"twig/twig": ">=2.9"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": []
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Tetranz\\Select2EntityBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ross Keatinge",
|
||||
"email": "tetranz@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A Symfony bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.",
|
||||
"keywords": [
|
||||
"autocomplete",
|
||||
"select2",
|
||||
"symfony",
|
||||
"typeahead"
|
||||
],
|
||||
"time": "2019-07-14 02:30:34"
|
||||
},
|
||||
{
|
||||
"name": "thecsea/simple-caldav-client",
|
||||
"version": "v0.1.10",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thecsea/simpleCalDAV.git",
|
||||
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9",
|
||||
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"it\\thecsea\\simple_caldav_client\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"GPL-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "claudio cardinale",
|
||||
"email": "cardi@thecsea.it",
|
||||
"homepage": "http://thecsea.it"
|
||||
}
|
||||
],
|
||||
"description": "A simple and complete php caldav client",
|
||||
"homepage": "http://www.thecsea.it",
|
||||
"keywords": [
|
||||
"CalDAV",
|
||||
"Simple",
|
||||
"client"
|
||||
],
|
||||
"time": "2019-04-25 19:55:16"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/c7a85fd08348ca04b4d8f234f49583d9910906aa",
|
||||
"reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"symfony/polyfill-ctype": "^1.8",
|
||||
"symfony/polyfill-mbstring": "^1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"symfony/debug": "^3.4|^4.2",
|
||||
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.12-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Twig_": "lib/"
|
||||
},
|
||||
"psr-4": {
|
||||
"Twig\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com",
|
||||
"homepage": "http://fabien.potencier.org",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Twig Team",
|
||||
"homepage": "https://twig.symfony.com/contributors",
|
||||
"role": "Contributors"
|
||||
},
|
||||
{
|
||||
"name": "Armin Ronacher",
|
||||
"email": "armin.ronacher@active-4.com",
|
||||
"role": "Project Founder"
|
||||
}
|
||||
],
|
||||
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||
"homepage": "https://twig.symfony.com",
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2019-10-05 16:42:38"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-code",
|
||||
"version": "2.6.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-code.git",
|
||||
"reference": "95033f061b083e16cdee60530ec260d7d628b887"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887",
|
||||
"reference": "95033f061b083e16cdee60530ec260d7d628b887",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6",
|
||||
"zendframework/zend-eventmanager": "^2.6 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.0",
|
||||
"fabpot/php-cs-fixer": "1.7.*",
|
||||
"phpunit/phpunit": "^4.8.21",
|
||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
|
||||
"zendframework/zend-stdlib": "Zend\\Stdlib component"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6-dev",
|
||||
"dev-develop": "2.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\Code\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "provides facilities to generate arbitrary code using an object oriented interface",
|
||||
"homepage": "https://github.com/zendframework/zend-code",
|
||||
"keywords": [
|
||||
"code",
|
||||
"zf2"
|
||||
],
|
||||
"time": "2016-04-20 17:26:42"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-eventmanager",
|
||||
"version": "3.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-eventmanager.git",
|
||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
|
||||
"reference": "a5e2583a211f73604691586b8406ff7296a946dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"athletic/athletic": "^0.1",
|
||||
"container-interop/container-interop": "^1.1.0",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
||||
"zendframework/zend-coding-standard": "~1.0.0",
|
||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
|
||||
"zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2-dev",
|
||||
"dev-develop": "3.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\EventManager\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Trigger and listen to events within a PHP application",
|
||||
"homepage": "https://github.com/zendframework/zend-eventmanager",
|
||||
"keywords": [
|
||||
"event",
|
||||
"eventmanager",
|
||||
"events",
|
||||
"zf2"
|
||||
],
|
||||
"time": "2018-04-25 15:33:34"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4",
|
||||
"reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/php-parse"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PhpParser\\": "lib/PhpParser"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nikita Popov"
|
||||
}
|
||||
],
|
||||
"description": "A PHP parser written in PHP",
|
||||
"keywords": [
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-09-01 07:51:21"
|
||||
},
|
||||
{
|
||||
"name": "sensio/generator-bundle",
|
||||
"version": "v3.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
|
||||
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65",
|
||||
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"symfony/console": "~2.7|~3.0",
|
||||
"symfony/framework-bundle": "~2.7|~3.0",
|
||||
"symfony/process": "~2.7|~3.0",
|
||||
"symfony/yaml": "~2.7|~3.0",
|
||||
"twig/twig": "^1.28.2|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/orm": "~2.4",
|
||||
"symfony/doctrine-bridge": "~2.7|~3.0",
|
||||
"symfony/filesystem": "~2.7|~3.0",
|
||||
"symfony/phpunit-bridge": "^3.3"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sensio\\Bundle\\GeneratorBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "This bundle generates code for you",
|
||||
"time": "2017-12-07 15:36:41"
|
||||
},
|
||||
{
|
||||
"name": "symfony/maker-bundle",
|
||||
"version": "v1.13.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/maker-bundle.git",
|
||||
"reference": "c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6",
|
||||
"reference": "c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/inflector": "^1.2",
|
||||
"nikic/php-parser": "^4.0",
|
||||
"php": "^7.0.8",
|
||||
"symfony/config": "^3.4|^4.0",
|
||||
"symfony/console": "^3.4|^4.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0",
|
||||
"symfony/filesystem": "^3.4|^4.0",
|
||||
"symfony/finder": "^3.4|^4.0",
|
||||
"symfony/framework-bundle": "^3.4|^4.0",
|
||||
"symfony/http-kernel": "^3.4|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-bundle": "^1.8",
|
||||
"doctrine/orm": "^2.3",
|
||||
"friendsofphp/php-cs-fixer": "^2.8",
|
||||
"friendsoftwig/twigcs": "^3.1.2",
|
||||
"symfony/http-client": "^4.3",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.0",
|
||||
"symfony/process": "^3.4|^4.0",
|
||||
"symfony/security-core": "^3.4|^4.0",
|
||||
"symfony/yaml": "^3.4|^4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
||||
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
||||
"keywords": [
|
||||
"code generator",
|
||||
"generator",
|
||||
"scaffold",
|
||||
"scaffolding"
|
||||
],
|
||||
"time": "2019-08-18 17:34:03"
|
||||
},
|
||||
{
|
||||
"name": "symfony/phpunit-bridge",
|
||||
"version": "v3.4.32",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/phpunit-bridge.git",
|
||||
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7",
|
||||
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
|
||||
},
|
||||
"bin": [
|
||||
"bin/simple-phpunit"
|
||||
],
|
||||
"type": "symfony-bridge",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "phpunit/phpunit",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Bridge\\PhpUnit\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony PHPUnit Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-09-30 20:33:19"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=7"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "7.0.30"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
group=$2
|
||||
if [ -z $group ]
|
||||
then
|
||||
group=$1
|
||||
fi
|
||||
|
||||
sudo chown $1:$group /var/www/html/ninestat -R
|
||||
sudo chmod +w /var/www/html/ninestat -R
|
||||
sudo chmod g+rw /var/www/html/ninestat -R
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
|
||||
backupGlobals="false"
|
||||
colors="true"
|
||||
bootstrap="vendor/autoload.php"
|
||||
>
|
||||
<php>
|
||||
<ini name="error_reporting" value="-1" />
|
||||
<server name="KERNEL_CLASS" value="AppKernel" />
|
||||
</php>
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="Project Test Suite">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory>src</directory>
|
||||
<exclude>
|
||||
<directory>src/*Bundle/Resources</directory>
|
||||
<directory>src/*/*Bundle/Resources</directory>
|
||||
<directory>src/*/Bundle/*Bundle/Resources</directory>
|
||||
</exclude>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd /var/www/html/ninestat
|
||||
php bin/console Cron:Exec
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd /var/www/html/ninestat
|
||||
php bin/console swiftmailer:spool:send --message-limit=100 --env=prod
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
export HTTP_PROXY="192.168.57.160:8080"
|
||||
export HTTPS_PROXY="192.168.57.160:8080"
|
||||
|
||||
cd /var/www/html/ninestat
|
||||
|
||||
scripts/ninestat-postservice-01.sh
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Installation des dépendances composer
|
||||
composer install
|
||||
|
||||
# Permissions
|
||||
./perm.sh www-data
|
||||
|
||||
# Nettoyage du cache
|
||||
rm /var/www/html/ninestat/var/cache/* -rf
|
||||
php bin/console cache:clear --env=prod --no-debug
|
||||
|
||||
# Migration si nécessaire du schéma de la base
|
||||
php bin/console doctrine:schema:update --force --env=prod --no-debug
|
||||
|
||||
# Insertion data de base
|
||||
php bin/console Core:InitData
|
||||
php bin/console Cron:InitData
|
||||
|
||||
# Generation des assets
|
||||
bin/console --env=dev assetic:dump
|
||||
|
||||
# Copie des polices du projet dans le rep web
|
||||
cp -rf src/Cadoles/CoreBundle/Resources/public/fonts web/
|
||||
|
||||
# Permissions
|
||||
./perm.sh www-data
|
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
|
||||
cart=`ip route show default | awk '/default/ {print $5}'`
|
||||
mac=`ifconfig ${cart} | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'`+
|
||||
rne=$(CreoleGet numero_etab)
|
||||
etab=$(CreoleGet libelle_etab)
|
||||
eole_module=$(CreoleGet eole_module)
|
||||
eole_release=$(CreoleGet eole_release)
|
||||
|
||||
serveurstat="https://ldapbundle.ac-arno.fr/ninestat/api"
|
||||
|
||||
rawurlencode() {
|
||||
local string="${1}"
|
||||
local strlen=${#string}
|
||||
local encoded=""
|
||||
local pos c o
|
||||
|
||||
for (( pos=0 ; pos<strlen ; pos++ )); do
|
||||
c=${string:$pos:1}
|
||||
case "$c" in
|
||||
[-_.~a-zA-Z0-9] ) o="${c}" ;;
|
||||
* ) printf -v o '%%%02x' "'$c"
|
||||
esac
|
||||
encoded+="${o}"
|
||||
done
|
||||
echo "${encoded}" # You can either set a return variable (FASTER)
|
||||
REPLY="${encoded}" #+or echo the result (EASIER)... or both... :p
|
||||
}
|
||||
|
||||
# Lister les versions de paquets Envole
|
||||
paquets=( "eole-dispatcher" "eole-ninegate" "eole-nineboard" "eole-phpmyadmin" "eole-etherhome" "eole-infosquota" "eole-ead" "eole-eoe" "eole-eop" "eole-sacoche" "eole-posh" "eole-ajaxplorer" "eole-balado" "eole-bergamote" "eole-cdc" "eole-cdt" "eole-dokuwiki" "eole-eportail" "eole-envole-connecteur" "eole-etherpad" "eole-ethercalc" "eole-etherdraw" "eole-fluxbb" "eole-gepi" "eole-calendrier" "eole-grr" "eole-iconito" "eole-limesurvey" "eole-jappix" "eole-mahara" "eole-moodle-update" "eole-opensondage" "eole-owncloud" "eole-piwigo" "eole-piwik" "eole-pydio" "eole-roundcube" "eole-spipeva" "eole-taskfreak" "eole-webcalendar" "eole-wordpress" "eole-fengoffice" "eole-mindmaps" "eole-nextcloud" "eole-kanboard" )
|
||||
rm -rf /tmp/lstpaquet.txt
|
||||
for i in "${paquets[@]}"
|
||||
do
|
||||
dpkg-query -f '${Package}-${Version}\n' -W | grep ${i} >> /tmp/lstpaquet.txt
|
||||
done
|
||||
|
||||
sed '/apps/d' /tmp/lstpaquet.txt > /tmp/lstpaquet2.txt
|
||||
sed '/python/d' /tmp/lstpaquet2.txt > /tmp/lstpaquet.txt
|
||||
sed '/pkg/d' /tmp/lstpaquet.txt > /tmp/lstpaquet2.txt
|
||||
sed '/common/d' /tmp/lstpaquet2.txt > /tmp/lstpaquet.txt
|
||||
sed '/server/d' /tmp/lstpaquet.txt > /tmp/lstpaquet2.txt
|
||||
sed '/web/d' /tmp/lstpaquet2.txt > /tmp/lstpaquet.txt
|
||||
|
||||
sed ':a;N;$!ba;s/\n/;/g' /tmp/lstpaquet.txt > /tmp/lstpaquetfinal.txt
|
||||
apps=`cat /tmp/lstpaquetfinal.txt`
|
||||
|
||||
# Construction de la chaine de parametre
|
||||
mac=`echo $(rawurlencode "${mac}")`
|
||||
apps=`echo $(rawurlencode "${apps}")`
|
||||
data="idserver=$mac&idlocal=$rne&name=$etab&module=$eole_module&version=$eole_release"
|
||||
|
||||
|
||||
curl --request POST \
|
||||
--url ${serveurstat} \
|
||||
--silent \
|
||||
--header 'accept: application/json' \
|
||||
--header 'cache-control: no-cache' \
|
||||
--header 'content-type: application/x-www-form-urlencoded' \
|
||||
--header 'postman-token: e8cbba3a-9e51-204b-b742-a5b7a083738d' \
|
||||
--data ${data}
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</IfModule>
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace AppBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class AppBundle extends Bundle
|
||||
{
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace AppBundle\Controller;
|
||||
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class DefaultController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="homepage")
|
||||
*/
|
||||
public function indexAction(Request $request)
|
||||
{
|
||||
// replace this example code with whatever you need
|
||||
return $this->render('default/index.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CASBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class CadolesCASBundle extends Bundle
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,123 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CASBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
|
||||
class SecurityController extends Controller
|
||||
{
|
||||
public function metadataAction()
|
||||
{
|
||||
return parent::metadataAction();
|
||||
}
|
||||
|
||||
public function loginAction(Request $request)
|
||||
{
|
||||
// Init Client CAS
|
||||
\phpCAS::setDebug(false);
|
||||
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
|
||||
\phpCAS::setNoCasServerValidation();
|
||||
|
||||
|
||||
// Authentification
|
||||
\phpCAS::forceAuthentication();
|
||||
|
||||
// Récupération UID
|
||||
$username = \phpCAS::getUser();
|
||||
|
||||
// Récupération Attribut
|
||||
$attributes = \phpCAS::getAttributes();
|
||||
|
||||
// Suppression des Attributs en tableaux
|
||||
foreach ($attributes as $key => $value) {
|
||||
if(is_array($value))
|
||||
unset($attributes[$key]);
|
||||
}
|
||||
|
||||
// Rechercher l'utilisateur
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
if(isset($attributes[$this->getParameter('user_attr_cas_username')]))
|
||||
$username = $attributes[$this->getParameter('user_attr_cas_username')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('user_attr_cas_mail')]))
|
||||
$email = $attributes[$this->getParameter('user_attr_cas_mail')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('user_attr_cas_lastname')]))
|
||||
$lastname = $attributes[$this->getParameter('user_attr_cas_lastname')];
|
||||
|
||||
if(isset($attributes[$this->getParameter('user_attr_cas_firstname')]))
|
||||
$firstname = $attributes[$this->getParameter('user_attr_cas_firstname')];
|
||||
|
||||
$user = $em->getRepository('CadolesCoreBundle:User')->findOneBy(array("username"=>$username));
|
||||
$exists = $user ? true : false;
|
||||
|
||||
if (!$exists) {
|
||||
// Là c'est normal que potentiellement il n'existe pas il faut donc l'autogénérer
|
||||
$user = new User();
|
||||
|
||||
$user->setUsername($username);
|
||||
$user->setEmail($email);
|
||||
$user->setLastname($lastname);
|
||||
if(isset($firstname)) $user->setFirstname($firstname);
|
||||
$user->setPassword("CASPWD-".$username);
|
||||
$user->setSalt("CASPWD-".$username);
|
||||
$user->setAvatar("noavatar.png");
|
||||
$user->setRole("ROLE_USER");
|
||||
|
||||
$em->persist($user);
|
||||
$em->flush();
|
||||
}
|
||||
else {
|
||||
$user->setLastname($lastname);
|
||||
$user->setFirstname((isset($firstname)?$firstname:null));
|
||||
$user->setEmail($email);
|
||||
|
||||
$em->persist($user);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// Calcul Service
|
||||
/*
|
||||
$user = $em->getRepository('CadolesCoreBundle:User')->calculateServices($user, $attributes);
|
||||
|
||||
// Attributs calculés
|
||||
$attributes = $em->getRepository('CadolesCoreBundle:User')->calculateAttributes($user, $attributes);
|
||||
*/
|
||||
|
||||
// Sauvegarde des attributes en session
|
||||
$this->get('session')->set('attributes', $attributes);
|
||||
|
||||
// Autoconnexion
|
||||
// Récupérer le token de l'utilisateur
|
||||
$token = new UsernamePasswordToken($user, null, "main", $user->getRoles());
|
||||
$this->get("security.token_storage")->setToken($token);
|
||||
|
||||
// Simuler l'evenement de connexion
|
||||
$event = new InteractiveLoginEvent($request, $token);
|
||||
$dispatcher = new EventDispatcher();
|
||||
$dispatcher->dispatch("security.interactive_login", $event);
|
||||
|
||||
|
||||
return $this->redirect($this->generateUrl('cadoles_core_home'));
|
||||
}
|
||||
|
||||
public function logoutAction() {
|
||||
// Init Client CAS
|
||||
\phpCAS::setDebug(false);
|
||||
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
|
||||
\phpCAS::setNoCasServerValidation();
|
||||
|
||||
|
||||
// Logout
|
||||
$url=$this->generateUrl('cadoles_core_home', array(), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
\phpCAS::logout(array("service"=>$url));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
cas_sp.login:
|
||||
path: /login
|
||||
defaults: { _controller: CadolesCASBundle:Security:login }
|
||||
|
||||
cas_sp.logout:
|
||||
path: /logout
|
||||
defaults: { _controller: CadolesCASBundle:Security:logout }
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class CadolesCoreBundle extends Bundle
|
||||
{
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Command;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Doctrine\DBAL\Connection as DBALConnection;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Group;
|
||||
use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
|
||||
class InitDataCommand extends ContainerAwareCommand
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
// the name of the command (the part after "bin/console")
|
||||
->setName('Core:InitData')
|
||||
|
||||
// the short description shown while running "php bin/console list"
|
||||
->setDescription('Init Data for Core')
|
||||
|
||||
// the full command description shown when running the command with
|
||||
// the "--help" option
|
||||
->setHelp('This command Init Data for Core')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$output->writeln('');
|
||||
$output->writeln('CORE = Default Data');
|
||||
|
||||
$em = $this->getContainer()->get('doctrine')->getManager();
|
||||
|
||||
$finder = new Finder();
|
||||
$finder->in('src/Cadoles/CoreBundle/Command/data');
|
||||
|
||||
// Init 01 = ce qui templetisé
|
||||
$finder->name('core-init-01.sql');
|
||||
foreach( $finder as $file ){
|
||||
$content = $file->getContents();
|
||||
|
||||
$stmt = $em->getConnection()->prepare($content);
|
||||
$stmt->execute();
|
||||
}
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
|
||||
protected static function determineKernelRootDir(Event $event) {
|
||||
$extra = $event->getComposer()->getPackage()->getExtra();
|
||||
$rootdir = rtrim(getcwd(), '/');
|
||||
return $rootdir . '/' . trim($extra['symfony-app-dir'], '/');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,357 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpFoundation\File\File;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Doctrine\DBAL\Connection as DBALConnection;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Symfony\Component\Validator\Constraints\DateTime;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Registration;
|
||||
|
||||
class PurgeFileCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('Core:PurgeFile')
|
||||
->setDescription('Purge Files')
|
||||
->setHelp('This command Purge the obsolete Files')
|
||||
->addArgument('cronid', InputArgument::OPTIONAL, 'ID Cron Job')
|
||||
->addArgument('lastchance', InputArgument::OPTIONAL, 'Lastchance to run the cron')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->container = $this->getApplication()->getKernel()->getContainer();
|
||||
$this->em = $this->container->get('doctrine')->getEntityManager();
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
|
||||
$alias = $this->container->getParameter('alias');
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Core:PurgeFile');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$now=new \DateTime('now');
|
||||
|
||||
// /uploads/file
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = File');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../uploads/file";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->directories()->exclude("thumb");
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
$type = explode("-",$name)[0];
|
||||
$id = explode("-",$name)[1];
|
||||
|
||||
switch($type) {
|
||||
case "widget":
|
||||
$entity=$this->em->getRepository("CadolesPortalBundle:Pagewidget")->find($id);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/avatar
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Avatar');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/avatar";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if($name!="admin.jpg"&&$name!="noavatar.png"&&$name!="system.jpg") {
|
||||
$entity=$this->em->getRepository("CadolesCoreBundle:User")->findBy(["avatar"=>$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/header
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Header');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/header";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if($name!="header.png") {
|
||||
$entity=$this->em->getRepository("CadolesCoreBundle:Config")->findBy(["id"=>"header","value"=>"uploads/header/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/logo
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Logo');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/logo";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if($name!="logo.png") {
|
||||
$entity=$this->em->getRepository("CadolesCoreBundle:Config")->findBy(["id"=>"logo","value"=>"uploads/logo/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/niveau01
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Niveau01');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/niveau01";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if($name!="logo.png") {
|
||||
$entity=$this->em->getRepository("CadolesCoreBundle:Niveau01")->findBy(["logo"=>"uploads/niveau01/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/slide
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Slide');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/slide";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
$entity=$this->em->getRepository("CadolesPortalBundle:Slide")->findBy(["image"=>"uploads/slide/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/icon
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Icon');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/icon";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if(!stripos($name,"icon_")) {
|
||||
$entity=$this->em->getRepository("CadolesPortalBundle:Icon")->findBy(["label"=>"uploads/icon/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/blogarticle
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Blog Article');
|
||||
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/blogarticle";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
if(strpos($name,"thumb-")===false) {
|
||||
$entity=$this->em->getRepository("CadolesPortalBundle:Blogarticle")->findBy(["image"=>"uploads/blogarticle/".$name]);
|
||||
if(!$entity) {
|
||||
$this->writeln($name);
|
||||
|
||||
// Suppression du fichier
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
|
||||
// Suppression du thumb fichier
|
||||
$url=$directory."/thumb-".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/ckeditor
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Ckeditor');
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/ckeditor";
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($directory)) {
|
||||
$finder = new Finder();
|
||||
$finder->in($directory)->files();
|
||||
|
||||
foreach (iterator_to_array($finder) as $file) {
|
||||
$name = $file->getRelativePathname();
|
||||
$tofind = "/".$alias."/uploads/ckeditor/".$name;
|
||||
$find=false;
|
||||
|
||||
// On recherche l'image dans les pages
|
||||
$result = $this->em
|
||||
->getRepository("CadolesPortalBundle:Page")->createQueryBuilder('page')
|
||||
->where('page.html LIKE :tofind')
|
||||
->setParameter('tofind', '%'.$tofind.'%')
|
||||
->getQuery()->getResult();
|
||||
if($result) $find=true;
|
||||
|
||||
// Si pas trouvé on la cherche dans les widgets
|
||||
if(!$find) {
|
||||
$result = $this->em
|
||||
->getRepository("CadolesPortalBundle:Pagewidget")->createQueryBuilder('pagewidget')
|
||||
->where('pagewidget.parameter LIKE :tofind')
|
||||
->setParameter('tofind', '%'.$tofind.'%')
|
||||
->getQuery()->getResult();
|
||||
if($result) $find=true;
|
||||
}
|
||||
|
||||
// Si pas trouvé on la cherche dans les blogs
|
||||
if(!$find) {
|
||||
$result = $this->em
|
||||
->getRepository("CadolesPortalBundle:Blogarticle")->createQueryBuilder('blogarticle')
|
||||
->where('blogarticle.description LIKE :tofind')
|
||||
->setParameter('tofind', '%'.$tofind.'%')
|
||||
->getQuery()->getResult();
|
||||
if($result) $find=true;
|
||||
}
|
||||
|
||||
// Si pas trouvé on supprime
|
||||
if(!$find) {
|
||||
$this->writeln($name);
|
||||
$url=$directory."/".$name;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// /web/uploads/ckeditor
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Directory = Flux');
|
||||
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/flux";
|
||||
$fs = new Filesystem();
|
||||
$fs->remove($directory);
|
||||
|
||||
|
||||
|
||||
$this->writeln('');
|
||||
return 1;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Doctrine\DBAL\Connection as DBALConnection;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
|
||||
global $bdd01;
|
||||
global $config;
|
||||
|
||||
class SetPasswordCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('Core:SetPassword')
|
||||
->setDescription('Synchronisation Annuaire')
|
||||
->setHelp('This command Synchro for Core')
|
||||
->addArgument('username', InputArgument::OPTIONAL, 'username')
|
||||
->addArgument('password', InputArgument::OPTIONAL, 'password')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->container = $this->getApplication()->getKernel()->getContainer();
|
||||
$this->em = $this->container->get('doctrine')->getEntityManager();
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Core:SetPasword');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
$username = $input->getArgument('username');
|
||||
$this->writeln($username);
|
||||
|
||||
$password = $input->getArgument('password');
|
||||
$this->writeln($password);
|
||||
|
||||
$user = $this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $username));
|
||||
if($user) {
|
||||
$user->setPassword($password);
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
return 1;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,821 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Doctrine\DBAL\Connection as DBALConnection;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Niveau01;
|
||||
use Cadoles\CoreBundle\Entity\Niveau02;
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
use Cadoles\CoreBundle\Entity\Group;
|
||||
use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
use Cadoles\PortalBundle\Entity\Calendar;
|
||||
use Cadoles\PortalBundle\Entity\Blog;
|
||||
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
global $bdd01;
|
||||
global $config;
|
||||
|
||||
class SynchroCommand extends Command
|
||||
{
|
||||
private $container;
|
||||
private $em;
|
||||
private $em2;
|
||||
private $output;
|
||||
private $filesystem;
|
||||
private $rootlog;
|
||||
private $ldap;
|
||||
private $ldap_basedn;
|
||||
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('Core:Synchro')
|
||||
->setDescription('Synchronisation Annuaire')
|
||||
->setHelp('This command Synchro for Core')
|
||||
->addArgument('simulate', InputArgument::OPTIONAL, 'true to simulate / false to run')
|
||||
->addArgument('cronid', InputArgument::OPTIONAL, 'ID Cron Job')
|
||||
->addArgument('lastchance', InputArgument::OPTIONAL, 'Lastchance to run the cron')
|
||||
;
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->container = $this->getApplication()->getKernel()->getContainer();
|
||||
$this->em = $this->container->get('doctrine')->getEntityManager();
|
||||
$this->output = $output;
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
|
||||
|
||||
$this->writelnred('');
|
||||
$this->writelnred('== Core:Synchro');
|
||||
$this->writelnred('==========================================================================================================');
|
||||
|
||||
setlocale( LC_CTYPE, 'fr_FR' );
|
||||
$labelniveau01 = mb_strtoupper($this->container->getParameter('labelniveau01'));
|
||||
$labelniveau02 = mb_strtoupper($this->container->getParameter('labelniveau02'));
|
||||
$masteridentity = $this->container->getParameter('masteridentity');
|
||||
|
||||
$simulate = $input->getArgument('simulate');
|
||||
if($simulate=="") $simulate="true";
|
||||
|
||||
if($simulate!="true"&&$simulate!="false") {
|
||||
$this->writeln('Paramétre incorrect');
|
||||
return;
|
||||
}
|
||||
$simulate=($simulate=="true");
|
||||
|
||||
$this->writeln('');
|
||||
if($simulate) $this->writeln('** SIMULATION');
|
||||
else $this->writeln('** REEL');
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('=====================================================');
|
||||
$this->writeln('== SYNCHONISATION ANNUAIRE ==========================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
$this->ldap = $this->container->get('cadoles.core.service.ldap');
|
||||
|
||||
if(!$this->ldap->isEnabled()) {
|
||||
if($masteridentity =="LDAP") {
|
||||
$this->writeln('');
|
||||
$this->writeln('=====================================================');
|
||||
$this->writeln('== SYNCHONISATION LDAP TO BUNDLE ====================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
|
||||
$this->ldap_basedn = $this->container->getParameter('ldap_basedn');
|
||||
$ldap_template = $this->container->getParameter('ldap_template');
|
||||
$ldap_username = $this->container->getParameter('ldap_username');
|
||||
$ldap_firstname = $this->container->getParameter('ldap_firstname');
|
||||
$ldap_lastname = $this->container->getParameter('ldap_lastname');
|
||||
$ldap_email = $this->container->getParameter('ldap_email');
|
||||
$ldap_usersadmin = $this->container->getParameter('ldap_usersadmin');
|
||||
$fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email);
|
||||
$ldapusers = array();
|
||||
$ldapmails = array();
|
||||
|
||||
if($ldap_template=="scribe") {
|
||||
$this->writeln('');
|
||||
$this->writeln('== PROFILS ==========================================');
|
||||
|
||||
// Eleves
|
||||
$ldapfilter="(&(uid=*)(ENTPersonProfils=eleve))";
|
||||
$label="PROFIL = Elèves";
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
|
||||
|
||||
// Enseignants
|
||||
$ldapfilter="(|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2)))";
|
||||
$label="PROFIL = Enseignants";
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
|
||||
// Responsables
|
||||
$ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))";
|
||||
$label="PROFIL = Responsables";
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
|
||||
|
||||
// Administratifs
|
||||
$ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))";
|
||||
$label="PROFIL = Administratifs";
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
|
||||
// Classes
|
||||
$this->writeln('');
|
||||
$this->writeln('== CLASSES ==========================================');
|
||||
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
|
||||
foreach($results as $result) {
|
||||
$cn=$result["cn"];
|
||||
$ldapfilter="(|(&(type=Classe)(cn=$cn))(&(type=Equipe)(cn=profs-$cn))(&(ENTPersonProfils=Administratif)(divcod=$cn)))";
|
||||
|
||||
$label="CLASSE = ".$result["cn"];
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
}
|
||||
|
||||
// Options
|
||||
$this->writeln('');
|
||||
$this->writeln('== OPTIONS ==========================================');
|
||||
$results = $this->ldap->search("type=Option", ['cn','description','gidNumber'], $this->ldap_basedn);
|
||||
foreach($results as $result) {
|
||||
$cn=$result["cn"];
|
||||
$ldapfilter="(|(&(type=Option)(cn=$cn))(&(type=Equipe)(cn=profs-$cn))(&(ENTPersonProfils=Administratif)(divcod=$cn)))";
|
||||
|
||||
$label="OPTION = ".$result["cn"];
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
}
|
||||
|
||||
// Groupes
|
||||
$this->writeln('');
|
||||
$this->writeln('== GROUPES ==========================================');
|
||||
$results = $this->ldap->search("type=Groupe", ['cn','description','gidNumber'], $this->ldap_basedn);
|
||||
foreach($results as $result) {
|
||||
$cn=$result["cn"];
|
||||
$ldapfilter="(&(type=Groupe)(cn=$cn))";
|
||||
|
||||
$label="GROUPE = ".$result["cn"];
|
||||
$this->writeln(" - $label");
|
||||
if(!$simulate) $this->addmodGroup($label,$ldapfilter,true);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USERS ============================================');
|
||||
|
||||
// On stocke tout les email déjà existant
|
||||
$this->writeln('== Stocker les emails utilisateurs existants');
|
||||
$users=$this->em->createQueryBuilder()->select('table.email')->from('CadolesCoreBundle:User','table')->getQuery()->getArrayResult();
|
||||
foreach($users as $user) {
|
||||
array_push($ldapmails,$user["email"]);
|
||||
}
|
||||
|
||||
// On parcours les niveaux 01 pour connaitre les filtres ldap associé
|
||||
$nbusers=0;
|
||||
$datas=$this->em->createQueryBuilder()->select('table')->from('CadolesCoreBundle:Niveau01','table')->where('table.ldapfilter IS NOT NULL')->getQuery()->getArrayResult();
|
||||
$tberrors=[];
|
||||
foreach($datas as $data) {
|
||||
// On execute le filtre d'appartenance à ce niveau
|
||||
$this->writeln("== Récupération des utilisateurs de l'annuaire");
|
||||
$niveau01=$this->em->getRepository('CadolesCoreBundle:Niveau01')->find($data["id"]);
|
||||
$results = $this->ldap->search($niveau01->getLdapfilter(), $fieldstoread, $this->ldap_basedn);
|
||||
$nbuserstotal=count($results);
|
||||
|
||||
// Pour chaque utilisateur ldap
|
||||
$this->writeln('== Traitement des utilisateurs du niveau = '.$niveau01->getLabel(). " = ".$niveau01->getLdapfilter());
|
||||
foreach($results as $result) {
|
||||
// Niveau 01 en cours à récupérer car on clear à em à chaque $result
|
||||
$niveau01=$this->em->getRepository('CadolesCoreBundle:Niveau01')->find($data["id"]);
|
||||
|
||||
// Compteur de users
|
||||
$nbusers++;
|
||||
|
||||
// Formatage du résultat
|
||||
if(is_array($result[$ldap_username])) {
|
||||
$result[$ldap_username]=$result[$ldap_username][0];
|
||||
}
|
||||
|
||||
$result[$ldap_username]=utf8_encode($result[$ldap_username]);
|
||||
if(!isset($result[$ldap_lastname])) $result[$ldap_lastname] = "";
|
||||
if(!isset($result[$ldap_firstname])) $result[$ldap_firstname] = "";
|
||||
$result[$ldap_email]=strtolower($result[$ldap_email]);
|
||||
$result[$ldap_email]=utf8_encode($result[$ldap_email]);
|
||||
|
||||
// On sauvegarde ce user
|
||||
if(in_array($result[$ldap_username],$ldapusers)) {
|
||||
$this->writelnred(" - Création dans Bundle impossible >> ".$result[$ldap_username]." deux users avec le meme uid");
|
||||
continue;
|
||||
}
|
||||
array_push($ldapusers,$result[$ldap_username]);
|
||||
|
||||
// Création ou Modification du user
|
||||
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $result[$ldap_username]));
|
||||
if(!$user) {
|
||||
if(empty($result[$ldap_email]))
|
||||
array_push($tberrors," - Création dans Bundle impossible >> ".$result[$ldap_username]." sans email");
|
||||
else {
|
||||
if(in_array($result[$ldap_email],$ldapmails))
|
||||
array_push($tberrors," - Création dans Bundle impossible >> ".$result[$ldap_username]." un autre utilisateur a déjà ce mail = ".$result[$ldap_email]);
|
||||
else {
|
||||
array_push($ldapmails,$result[$ldap_email]);
|
||||
$this->writeln(" - Création dans Bundle >> ".$result[$ldap_username]);
|
||||
if(!$simulate) $this->addUser($niveau01,$result[$ldap_username],$result[$ldap_firstname],$result[$ldap_lastname],$result[$ldap_email],$ldap_usersadmin);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$toadmin=false;
|
||||
if(in_array($result[$ldap_username],$ldap_usersadmin)&&!in_array("ROLE_ADMIN",$user->getRoles()))
|
||||
$toadmin=true;
|
||||
|
||||
if($user->getLastname()!=$result[$ldap_lastname]||$user->getFirstname()!=$result[$ldap_firstname]||$user->getEmail()!=$result[$ldap_email]||$toadmin) {
|
||||
$usermail=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('email' => $result[$ldap_email]));
|
||||
if($usermail!=$user) {
|
||||
array_push($tberrors," - Modification dans Bundle impossible >> ".$result[$ldap_username]." un autre utilisateur a déjà ce mail = ".$result[$ldap_email]);
|
||||
}
|
||||
else {
|
||||
$this->writeln(" - Modification dans Bundle >> ".$result[$ldap_username]);
|
||||
if(!$simulate) $this->modUser($user,$result[$ldap_username],$result[$ldap_firstname],$result[$ldap_lastname],$result[$ldap_email],$ldap_usersadmin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$simulate) {
|
||||
$this->em->clear();
|
||||
}
|
||||
|
||||
if($nbusers%1000==0) $this->writeln(" == Nombre d'utilisateurs traités = $nbusers sur $nbuserstotal ==");
|
||||
}
|
||||
}
|
||||
if(!$simulate) {
|
||||
$this->writeln(" == Nombre d'utilisateurs traités = $nbusers sur $nbuserstotal ==");
|
||||
$this->em->flush();
|
||||
$this->em->clear();
|
||||
}
|
||||
|
||||
foreach($tberrors as $error) {
|
||||
$this->writelnred(" == ERROR == $error");
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USERS GROUP ======================================');
|
||||
|
||||
$groups=$this->em->getRepository('CadolesCoreBundle:Group')->findAll();
|
||||
foreach($groups as $group) {
|
||||
$ldapusersgroup=array();
|
||||
|
||||
$ldapfilter=$group->getLdapfilter();
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== '.$group->getLabel());
|
||||
|
||||
if(!is_null($ldapfilter)) {
|
||||
$results = $this->ldap->search($ldapfilter,[$ldap_username,"memberuid"] , $this->ldap_basedn);
|
||||
|
||||
foreach($results as $result) {
|
||||
if(isset($result["memberuid"])) {
|
||||
// Si memberid est un tableau il y a plusieur user dedans
|
||||
if(is_array($result["memberuid"])) {
|
||||
foreach($result["memberuid"] as $key => $value) {
|
||||
if(is_int($key)) {
|
||||
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $value));
|
||||
if($user) {
|
||||
array_push($ldapusersgroup,$value);
|
||||
$this->writeln(" - Rattacher >> ".$value);
|
||||
if(!$simulate) $this->addtoGroup($user,$group);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// sinon m'a qu'un seul uid
|
||||
else {
|
||||
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $result["memberuid"]));
|
||||
if($user) {
|
||||
array_push($ldapusersgroup,$result["memberuid"]);
|
||||
$this->writeln(" - Rattacher >> ".$result["memberuid"]);
|
||||
if(!$simulate) $this->addtoGroup($user,$group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($result[$ldap_username])) {
|
||||
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $result[$ldap_username]));
|
||||
if($user) {
|
||||
array_push($ldapusersgroup,$result[$ldap_username]);
|
||||
$this->writeln(" - Rattacher >> ".$result[$ldap_username]);
|
||||
if(!$simulate) $this->addtoGroup($user,$group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$members=$this->em->getRepository('CadolesCoreBundle:UserGroup')->findBy(array('group' => $group));
|
||||
foreach($members as $member) {
|
||||
if(!in_array($member->getUser()->getUsername(),$ldapusersgroup)) {
|
||||
$this->writeln(" - Détattacher >> ".$member->getUser()->getUsername());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($member);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('=====================================================');
|
||||
$this->writeln('== SYNCHONISATION BUNDLE TO LDAP ====================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USERS ============================================');
|
||||
|
||||
// Pour chaque utilisateur de la base
|
||||
//$users=$this->em->getRepository('CadolesCoreBundle:User')->findAll();
|
||||
$datas=$this->em->createQueryBuilder()->select('table.id,table.username')->from('CadolesCoreBundle:User','table')->getQuery()->getArrayResult();
|
||||
$nbusers=0;
|
||||
|
||||
// tentative d'optimisation
|
||||
$flipped = array_flip($ldapusers);
|
||||
|
||||
foreach($datas as $data) {
|
||||
$nbusers++;
|
||||
|
||||
// Si l'utilisateur n'est pas dans la liste des users ldap : on le supprime
|
||||
if(!isset($flipped[$data["username"]])) {
|
||||
$user=$this->em->getRepository('CadolesCoreBundle:User')->find($data["id"]);
|
||||
if($user->getUsername()=="admin")
|
||||
$this->writeln(" - Ne jamais supprimer >> ".$user->getUsername());
|
||||
else {
|
||||
$this->writeln(" - Suppression dans Bundle >> ".$user->getUsername());
|
||||
if(!$simulate) {
|
||||
$this->em->remove($user);
|
||||
$this->em->flush();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
//on peut unset les recherches suivantes seront plus rapide
|
||||
unset($flipped[$data["username"]]);
|
||||
}
|
||||
|
||||
$this->em->clear();
|
||||
if($nbusers%1000==0) $this->writelnred(" == Nombre d'utilisateurs traités = $nbusers==");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->writeln('');
|
||||
$this->writeln('=====================================================');
|
||||
$this->writeln('== SYNCHONISATION BUNDLE TO LDAP ====================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== NIVEAU01 =========================================');
|
||||
$baseNiveau01 = $this->container->getParameter('ldap_baseniveau01');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Niveau01','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseNiveau01;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour si elle existe
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->modifyNiveau01($data,$data->getLabel());
|
||||
}
|
||||
// Sinon création de la fiche
|
||||
else {
|
||||
$this->writeln(' - Création dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->addNiveau01($data);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== NIVEAU02 =========================================');
|
||||
$baseNiveau02 = $this->container->getParameter('ldap_baseniveau02');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Niveau02','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseNiveau02;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour si elle existe
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->modifyNiveau02($data,$data->getLabel());
|
||||
}
|
||||
// Sinon création de la fiche
|
||||
else {
|
||||
$this->writeln(' - Création dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->addNiveau02($data);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== GROUP ============================================');
|
||||
$baseGroup = $this->container->getParameter('ldap_basegroup');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Group','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseGroup;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour si elle existe
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->modifyGroup($data,$data->getLabel());
|
||||
}
|
||||
// Sinon création de la fiche
|
||||
else {
|
||||
$this->writeln(' - Création dans annuaire >> '.$data->getLabel());
|
||||
if(!$simulate) $this->ldap->addGroup($data);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USER =============================================');
|
||||
$baseUser = $this->container->getParameter('ldap_baseuser');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:User','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(uid='.$data->getUsername().')';
|
||||
$subbranch=$baseUser;
|
||||
$results = $this->ldap->search($criteria, array('uid'), $subbranch);
|
||||
|
||||
// S'assurer que SIREN correspond au Niveau01
|
||||
if($data->getNiveau01()->getSiren()!=$data->getSiren()) {
|
||||
$data->SetSiren($data->getNiveau01()->getSiren());
|
||||
$data->flush();
|
||||
}
|
||||
|
||||
// S'assurer que SIRET correspond au Niveau02
|
||||
if($data->getNiveau02()!==null&&$data->getNiveau01()->getSiren()!=$data->getSiren()) {
|
||||
$data->SetSiret($data->getNiveau02()->getSiret());
|
||||
$data->flush();
|
||||
}
|
||||
|
||||
// Mise à jour si elle existe
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - Modification dans annuaire >> '.$data->getUsername());
|
||||
if(!$simulate) $this->ldap->modifyUser($data);
|
||||
}
|
||||
// Sinon création de la fiche
|
||||
else {
|
||||
$this->writeln(' - Création dans annuaire >> '.$data->getUsername());
|
||||
if(!$simulate) $this->ldap->addUser($data);
|
||||
}
|
||||
|
||||
// Rattachement à Niveau01 et Niveau02
|
||||
if(!$simulate) $this->ldap->addGroupUser($data);
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USER NIVEAU01 =======================================');
|
||||
$baseniveau01 = $this->container->getParameter('ldap_baseniveau01');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Niveau01','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseniveau01;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour des membres du groupes
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - '.$data->getLabel());
|
||||
$dn=$this->ldap->getNiveau01DN($data->getLabel());
|
||||
$attrs["memberuid"]=array();
|
||||
$attrs["cadolesMember"]=array();
|
||||
|
||||
foreach($data->getUsers() as $userniveau01) {
|
||||
array_push($attrs["memberuid"],$userniveau01->getUsername());
|
||||
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
|
||||
$this->writeln(' > '.$userniveau01->getUsername());
|
||||
}
|
||||
if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USER NIVEAU02 =======================================');
|
||||
$baseniveau02 = $this->container->getParameter('ldap_baseniveau02');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Niveau02','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseniveau02;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour des membres du groupes
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - '.$data->getLabel());
|
||||
$dn=$this->ldap->getNiveau02DN($data->getLabel());
|
||||
$attrs["memberuid"]=array();
|
||||
$attrs["cadolesMember"]=array();
|
||||
|
||||
foreach($data->getUsers() as $userniveau01) {
|
||||
array_push($attrs["memberuid"],$userniveau01->getUsername());
|
||||
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
|
||||
$this->writeln(' > '.$userniveau01->getUsername());
|
||||
}
|
||||
if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USER GROUP =======================================');
|
||||
$baseGroup = $this->container->getParameter('ldap_basegroup');
|
||||
|
||||
$datas = $this->em
|
||||
->createQueryBuilder()
|
||||
->select('table')
|
||||
->from('CadolesCoreBundle:Group','table')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($datas as $data) {
|
||||
$criteria = '(cn='.$data->getLabel().')';
|
||||
$subbranch=$baseGroup;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
|
||||
// Mise à jour des membres du groupes
|
||||
if(count($results) > 0) {
|
||||
$this->writeln(' - '.$data->getLabel());
|
||||
$dn=$this->ldap->getGroupDN($data->getLabel());
|
||||
$attrs["memberuid"]=array();
|
||||
$attrs["cadolesMember"]=array();
|
||||
|
||||
foreach($data->getUsers() as $usergroupe) {
|
||||
array_push($attrs["memberuid"],$usergroupe->getUser()->getUsername());
|
||||
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($usergroupe->getUser()));
|
||||
$this->writeln(' > '.$usergroupe->getUser()->getUsername());
|
||||
}
|
||||
if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('=====================================================');
|
||||
$this->writeln('== SYNCHONISATION LDAP TO BUNDLE ====================');
|
||||
$this->writeln('=====================================================');
|
||||
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== NIVEAU01 =========================================');
|
||||
$baseNiveau01 = $this->container->getParameter('ldap_baseniveau01');
|
||||
|
||||
$criteria = '(cn=*)';
|
||||
$subbranch=$baseNiveau01;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
foreach($results as $result) {
|
||||
$data = $this->em->getRepository('CadolesCoreBundle:Niveau01')->findBy(array('label' => $result["cn"]));
|
||||
if($data) $this->writeln(' - Existe dans bundle >> '.$result["cn"]);
|
||||
else {
|
||||
$this->writeln(' - A supprimer dans annuaire >> '.$result["cn"]);
|
||||
$dn=$this->ldap->getNiveau01DN($result["cn"]);
|
||||
if(!$simulate) $this->ldap->deleteByDN($dn);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== NIVEAU02 =========================================');
|
||||
$baseNiveau02 = $this->container->getParameter('ldap_baseniveau02');
|
||||
|
||||
$criteria = '(cn=*)';
|
||||
$subbranch=$baseNiveau02;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
foreach($results as $result) {
|
||||
$data = $this->em->getRepository('CadolesCoreBundle:Niveau02')->findBy(array('label' => $result["cn"]));
|
||||
if($data) $this->writeln(' - Existe dans bundle >> '.$result["cn"]);
|
||||
else {
|
||||
$this->writeln(' - A supprimer dans annuaire >> '.$result["cn"]);
|
||||
$dn=$this->ldap->getNiveau02DN($result["cn"]);
|
||||
if(!$simulate) $this->ldap->deleteByDN($dn);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== GROUP ============================================');
|
||||
$baseGroup = $this->container->getParameter('ldap_basegroup');
|
||||
|
||||
$criteria = '(cn=*)';
|
||||
$subbranch=$baseGroup;
|
||||
$results = $this->ldap->search($criteria, array('cn'), $subbranch);
|
||||
foreach($results as $result) {
|
||||
$data = $this->em->getRepository('CadolesCoreBundle:Group')->findBy(array('label' => $result["cn"]));
|
||||
if($data) $this->writeln(' - Existe dans bundle >> '.$result["cn"]);
|
||||
else {
|
||||
$this->writeln(' - A supprimer dans annuaire >> '.$result["cn"]);
|
||||
$dn=$this->ldap->getGroupDN($result["cn"]);
|
||||
if(!$simulate) $this->ldap->deleteByDN($dn);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
$this->writeln('== USER =============================================');
|
||||
$baseUser = $this->container->getParameter('ldap_baseuser');
|
||||
|
||||
$criteria = '(uid=*)';
|
||||
$subbranch=$baseUser;
|
||||
$results = $this->ldap->search($criteria, array('uid'), $subbranch);
|
||||
foreach($results as $result) {
|
||||
$data = $this->em->getRepository('CadolesCoreBundle:User')->findBy(array('username' => $result["uid"]));
|
||||
if($data) $this->writeln(' - Existe dans bundle >> '.$result["uid"]);
|
||||
else {
|
||||
$this->writeln(' - A supprimer dans annuaire >> '.$result["uid"]);
|
||||
$dn='uid='.$result["uid"].','.$baseUser;
|
||||
if(!$simulate) $this->ldap->deleteByDN($dn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->writeln('');
|
||||
return 1;
|
||||
}
|
||||
|
||||
private function writelnred($string) {
|
||||
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
private function writeln($string) {
|
||||
$this->output->writeln($string);
|
||||
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||
}
|
||||
|
||||
protected function addmodGroup($label,$ldapfilter,$fgcanshare) {
|
||||
$portal_activate = $this->container->getParameter('portal_activate');
|
||||
$group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgtemplate' => true, 'label' => $label));
|
||||
if(!$group) {
|
||||
$group=new Group();
|
||||
$group->setFgcanshare($fgcanshare);
|
||||
$group->setFgcancreatepage(false);
|
||||
$group->setFgcancreateblog(false);
|
||||
$group->setFgcancreatecalendar(false);
|
||||
}
|
||||
|
||||
$group->setLabel($label);
|
||||
$group->setFgopen(false);
|
||||
$group->setFgall(false);
|
||||
$group->setLdapfilter($ldapfilter);
|
||||
$group->setFgtemplate(true);
|
||||
|
||||
if($portal_activate) {
|
||||
$pagetemplate=$this->em->getRepository("CadolesPortalBundle:Page")->find(-110);
|
||||
if($pagetemplate) $group->setPagetemplate($pagetemplate);
|
||||
}
|
||||
|
||||
$this->em->persist($group);
|
||||
$this->em->flush();
|
||||
|
||||
if($fgcanshare && $portal_activate) {
|
||||
// On regarde s'il a au moins une page
|
||||
if($group->getPages()->isEmpty()) {
|
||||
$page=$this->em->getRepository("CadolesPortalBundle:Page")->clonePage(null,$group->getPagetemplate());
|
||||
$group->addPage($page);
|
||||
$page->setName($group->getLabel());
|
||||
|
||||
$this->em->persist($page);
|
||||
$this->em->persist($group);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
// On regarde s'il a au moins un calendrier
|
||||
if($group->getCalendars()->isEmpty()) {
|
||||
$calendar=new Calendar();
|
||||
$key = Uuid::uuid4();
|
||||
|
||||
$calendar->setName($group->getLabel());
|
||||
$calendar->setKeyvalue($key);
|
||||
$calendar->addGroup($group);
|
||||
$calendar->setColor($group->getColor());
|
||||
$calendar->setType(0);
|
||||
|
||||
$this->em->persist($calendar);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
// On regarde s'il a au moins un blog
|
||||
if($group->getBlogs()->isEmpty()) {
|
||||
$blog=new Blog();
|
||||
|
||||
$blog->setName($group->getLabel());
|
||||
$blog->addGroup($group);
|
||||
|
||||
$this->em->persist($blog);
|
||||
$this->em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function addtoGroup($user,$group) {
|
||||
$member=$this->em->getRepository('CadolesCoreBundle:UserGroup')->findOneBy(array('group' => $group, 'user' => $user));
|
||||
if(!$member) {
|
||||
$member= new UserGroup();
|
||||
$member->setGroup($group);
|
||||
$member->setUser($user);
|
||||
}
|
||||
|
||||
// Si modèle scribe
|
||||
$ldap_template = $this->container->getParameter('ldap_template');
|
||||
if($ldap_template=="scribe") {
|
||||
$ldapfilter="(|(&(uid=".$user->getUsername().")(ENTPersonProfils=enseignant))(&(uid=".$user->getUsername().")(typeadmin=0))(&(uid=".$user->getUsername().")(typeadmin=2)))";
|
||||
$results = $this->ldap->search($ldapfilter, ['uid'], $this->ldap_basedn);
|
||||
if($results) $member->setFgmanager(true);
|
||||
}
|
||||
|
||||
$this->em->persist($member);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
protected function addUser($niveau01,$username,$firstname,$lastname,$email,$usersadmin) {
|
||||
$user = new User();
|
||||
|
||||
$user->setUsername($username);
|
||||
$user->setLastname($lastname);
|
||||
$user->setFirstname($firstname);
|
||||
$user->setEmail($email);
|
||||
$user->setNiveau01($niveau01);
|
||||
$user->setSiren($niveau01->getSiren());
|
||||
$user->setPassword("PASSWORDFROMEXTERNE");
|
||||
$user->setVisible(true);
|
||||
$user->setAuthlevel("simple");
|
||||
$user->setBelongingpopulation("agent");
|
||||
|
||||
if(in_array($username,$usersadmin))
|
||||
$user->setRole("ROLE_ADMIN");
|
||||
else {
|
||||
$user->setRole("ROLE_USER");
|
||||
|
||||
// Si modèle scribe
|
||||
$ldap_template = $this->container->getParameter('ldap_template');
|
||||
if($ldap_template=="scribe") {
|
||||
$ldapfilter="(|(&(uid=".$user->getUsername().")(ENTPersonProfils=enseignant))(&(uid=".$user->getUsername().")(typeadmin=0))(&(uid=".$user->getUsername().")(typeadmin=2)))";
|
||||
$results = $this->ldap->search($ldapfilter, ['uid'], $this->ldap_basedn);
|
||||
if($results) $user->setRole("ROLE_ANIM");
|
||||
}
|
||||
}
|
||||
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
protected function modUser($user,$username,$firstname,$lastname,$email,$usersadmin) {
|
||||
$user->setLastname($lastname);
|
||||
$user->setFirstname($firstname);
|
||||
$user->setEmail($email);
|
||||
|
||||
if(in_array($username,$usersadmin))
|
||||
$user->setRole("ROLE_ADMIN");
|
||||
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
SET NAMES utf8;
|
||||
SET time_zone = '+00:00';
|
||||
SET foreign_key_checks = 0;
|
||||
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||
|
||||
INSERT IGNORE INTO `user` (`id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`) VALUES
|
||||
(-100, 'admin', 'Administrateur', 'SCRUM', '{SSHA}euZCgZjWhBu0xUZI9lPK2ncV9oaB+Jqo', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN');
|
||||
|
||||
|
||||
|
||||
DELETE FROM `config` WHERE `changeable` = 0;
|
||||
INSERT IGNORE INTO `config` (`order`, `visible`, `changeable`, `required`, `type`, `id`, `value`, `grouped`, `help`) VALUES
|
||||
('001', 1, 1, 1, 'string', 'appname', 'Ninestat', '', 'Le titre de votre site'),
|
||||
('002', 1, 0, 1, 'string', 'version', '1.0.0', '', 'Version de l\'application'),
|
||||
('003', 1, 1, 0, 'string', 'subappname', 'Statistiques Envole', '', 'Le sous titre de votre site'),
|
||||
('004', 1, 1, 1, 'logo', 'logo', 'uploads/logo/logo.png', '', 'Le logo de votre site'),
|
||||
('005', 0, 1, 0, 'theme', 'theme', '', '', 'Le theme de votre site'),
|
||||
('006', 0, 1, 0, 'datauser', 'datauser', '', '', 'Parametrage des champs utilisateurs : obligatoire / facultatif / caché'),
|
||||
('007', 0, 1, 0, 'datausers', 'datausers', '', '', 'Parametrage des colonnes visible dans la liste des utilisateurs'),
|
||||
|
||||
('010', 1, 0, 1, 'boolean', 'fgforceconnect', '0', '', 'Forcer la connection afin de rendre votre site privé'),
|
||||
|
||||
('040', 1, 1, 1, 'boolean', 'fgheader', '1', '', 'Utiliser une image en bannière du site'),
|
||||
('041', 1, 1, 1, 'header', 'header', 'uploads/header/header.png', 'fgheader', 'Image en bannière du site'),
|
||||
('042', 1, 1, 1, 'integer', 'heightheader', '100', 'fgheader', 'Hauteur de la bannière du site'),
|
||||
|
||||
('050', 1, 1, 1, 'color', 'colormain', '2c3e50', '', 'Couleur principale de votre site'),
|
||||
('051', 1, 1, 1, 'color', 'fontcolorhover', 'ffffff', '', 'Couleur de la police sur couleur principale'),
|
||||
('052', 1, 1, 1, 'color', 'colorbody', 'ffffff', '', 'Couleur de fond de vos pages'),
|
||||
|
||||
('060', 1, 1, 1, 'font', 'fontfacetitle', 'Anton-Regular', '', 'Police des titres de votre site'),
|
||||
('061', 1, 1, 1, 'font', 'fontfacebody', 'Helvetica', '', 'Police des titres de votre site'),
|
||||
|
||||
('200', 1, 0, 1, 'boolean', 'PROXYactivate', '1', '', 'Définit un Proxy'),
|
||||
('201', 1, 0, 1, 'string', 'PROXYserver', '192.168.57.160', 'PROXYactivate','Adresse du Proxy'),
|
||||
('202', 1, 0, 1, 'string', 'PROXYport', '8080', 'PROXYactivate','Port du Proxy');
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Server;
|
||||
use Cadoles\CoreBundle\Entity\ServerApplication;
|
||||
|
||||
class ApiController extends Controller
|
||||
{
|
||||
private $fgdebug = false;
|
||||
|
||||
public function apiAction(Request $request)
|
||||
{
|
||||
if($this->fgdebug) {
|
||||
echo "<br>";
|
||||
echo "IDSERVER = ".$request->request->get("idserver")."<br>";
|
||||
echo "IDLOCAL = ".$request->request->get("idlocal")."<br>";
|
||||
echo "NAME = ".$request->request->get("name")."<br>";
|
||||
echo "MODULE = ".$request->request->get("module")."<br>";
|
||||
echo "VERSION = ".$request->request->get("version")."<br>";
|
||||
echo "APPS = ".$request->request->get("apps")."<br><br>";
|
||||
}
|
||||
|
||||
$idserver = $request->request->get("idserver");
|
||||
$idlocal = $request->request->get("idlocal");
|
||||
$name = $request->request->get("name");
|
||||
$module = $request->request->get("module");
|
||||
$version = $request->request->get("version");
|
||||
$apps = explode(";",$request->request->get("apps"));
|
||||
$now = new \DateTime();
|
||||
|
||||
// Création / Modification du server appelant
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$server=$em->getRepository('CadolesCoreBundle:Server')->findOneBy(["idserver"=>$idserver]);
|
||||
if(!$server) {
|
||||
$server=new Server();
|
||||
}
|
||||
|
||||
$server->setIdserver($idserver);
|
||||
$server->setIdlocal($idlocal);
|
||||
$server->setName($name);
|
||||
$server->setModule($module);
|
||||
$server->setVersion($version);
|
||||
$server->setUpdatedate($now);
|
||||
|
||||
// Sauvegarde
|
||||
$em->persist($server);
|
||||
$em->flush();
|
||||
|
||||
// Décryptage des paquets envole entrant
|
||||
$tbapps=[];
|
||||
if($this->fgdebug) echo "APPLICATIONS<br>";
|
||||
foreach($apps as $app) {
|
||||
$tmp=explode("-",$app);
|
||||
$tmpname="";
|
||||
for($i=1;$i<count($tmp)-2;$i++) {
|
||||
$tmpname.=$tmp[$i];
|
||||
if(($i+1)<(count($tmp)-2)) $tmpname.="-";
|
||||
}
|
||||
if($tmpname=="moodle-update") $tmpname="moodle";
|
||||
|
||||
if($this->fgdebug) echo $tmpname."<br>";
|
||||
$tbapps["$tmpname"]=$app;
|
||||
}
|
||||
|
||||
// Pour chaque apps
|
||||
foreach($tbapps as $name => $version) {
|
||||
$application=$em->getRepository('CadolesCoreBundle:Application')->findOneBy(["name"=>$name]);
|
||||
if($application) {
|
||||
$serveurapplication=$em->getRepository('CadolesCoreBundle:ServerApplication')->findOneBy(["server"=>$server,"application"=>$application]);
|
||||
if(!$serveurapplication) {
|
||||
$serveurapplication=new ServerApplication();
|
||||
$serveurapplication->setServer($server);
|
||||
$serveurapplication->setApplication($application);
|
||||
}
|
||||
|
||||
$serveurapplication->setVersion($version);
|
||||
$serveurapplication->setUpdatedate($now);
|
||||
|
||||
// Sauvegarde
|
||||
$em->persist($serveurapplication);
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
return new Response();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,399 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Form\FormError;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Config;
|
||||
use Cadoles\CoreBundle\Form\ConfigType;
|
||||
use Cadoles\CoreBundle\Form\DatauserType;
|
||||
|
||||
class ConfigController extends Controller
|
||||
{
|
||||
public function homeAction(Request $request)
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:Core:config.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function listAction()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$configs = $em->createQueryBuilder()
|
||||
->select('b')
|
||||
->from('CadolesCoreBundle:Config', 'b')
|
||||
->where('b.visible = :visible')
|
||||
->setParameter('visible', 1)
|
||||
->addOrderBy('b.order')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
|
||||
return $this->render('CadolesCoreBundle:Config:list.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'configs' => $configs
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateAction($id,Request $request)
|
||||
{
|
||||
// Récupération de l'enregistrement courant
|
||||
$config=$this->getConfig($id);
|
||||
|
||||
// Vérifier que cet enregistrement est modifiable
|
||||
$type=$config->getType();
|
||||
$required=$config->getRequired();
|
||||
$visible=$config->getVisible();
|
||||
$changeable=$config->getChangeable();
|
||||
if(!$visible||!$changeable) {
|
||||
return $this->redirectToRoute('cadoles_core_config_commun');
|
||||
}
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(ConfigType::class,$config,array("key" => $id, "type" => $type, "required" => $required));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur erreur
|
||||
$this->getErrorForm($form,$request,$config);
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$config = $form->getData();
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
|
||||
// Sur type boolean
|
||||
if($type=="boolean") {
|
||||
$qb = $em->createQueryBuilder();
|
||||
$q = $qb->update('CadolesCoreBundle:Config', 'c')
|
||||
->set('c.visible', ':visible')
|
||||
->where('c.grouped = :key')
|
||||
->setParameter('visible', $config->getValue())
|
||||
->setParameter('key', $id)
|
||||
->getQuery();
|
||||
$q->execute();
|
||||
}
|
||||
return $this->redirectToRoute('cadoles_core_config_commun');
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render('CadolesCoreBundle:Config:update.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'config' => $config,
|
||||
'type' => $type,
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteAction($id,Request $request)
|
||||
{
|
||||
// Récupération de l'enregistrement courant
|
||||
$config=$this->getConfig($id);
|
||||
if(!$config->getRequired()) {
|
||||
$config->setValue("");
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
}
|
||||
return $this->redirectToRoute('cadoles_core_config_commun',['usesidebar'=>true]);
|
||||
}
|
||||
|
||||
public function logoAction()
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:Config:logo.html.twig',[
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
public function headerAction()
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:Config:header.html.twig',[
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
protected function getConfig($id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$config = $em->getRepository('CadolesCoreBundle:Config')->find($id);
|
||||
|
||||
if (!$config) {
|
||||
throw $this->createNotFoundException('Unable to find config.');
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function permmodoAction()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$sidebars=$this->get('session')->get('sidebar');
|
||||
|
||||
$perms=[];
|
||||
foreach($sidebars as $sidebar) {
|
||||
foreach($sidebar["childs"] as $child) {
|
||||
$permmod=$em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(["route"=>$child["path"]]);
|
||||
if($permmod) {
|
||||
array_push($perms,['id' => $permmod->getId(), 'label'=>$sidebar['label'].' >> '.$child['label'],'visible'=>$permmod->getVisible()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('CadolesCoreBundle:Config:permmodo.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'permmodos' => $perms
|
||||
]);
|
||||
}
|
||||
|
||||
public function permmodoupdateAction(Request $request)
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
|
||||
$output=array();
|
||||
$id = $request->request->get('id');
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$permmodo = $this->getDoctrine()->getRepository("CadolesCoreBundle:PermModo")->find($id);
|
||||
if (!$permmodo) throw $this->createNotFoundException('Unable to find entity.');
|
||||
|
||||
$permmodo->setVisible(!$permmodo->getVisible());
|
||||
$em->persist($permmodo);
|
||||
$em->flush();
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function datauserAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$session=$this->get('session');
|
||||
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datauser");
|
||||
$fields=$config->getValue();
|
||||
|
||||
if($fields=="") {
|
||||
// Valeur par défaut 0=caché / 1=falcultatif / 2=obligatoire
|
||||
$fields["firstname"]["perm"]=1;
|
||||
$fields["firstname"]["label"]="Prénom";
|
||||
|
||||
$fields["visible"]["perm"]=2;
|
||||
$fields["visible"]["label"]="Visible";
|
||||
|
||||
$fields["authlevel"]["perm"]=2;
|
||||
$fields["authlevel"]["label"]="Niveau d'authentification";
|
||||
|
||||
$fields["belongingpopulation"]["perm"]=2;
|
||||
$fields["belongingpopulation"]["label"]="Population d'appartenance";
|
||||
|
||||
$fields["job"]["perm"]=1;
|
||||
$fields["job"]["label"]="Métier";
|
||||
|
||||
$fields["position"]["perm"]=1;
|
||||
$fields["position"]["label"]="Fonction";
|
||||
|
||||
$fields["niveau02"]["perm"]=1;
|
||||
$fields["niveau02"]["label"]="Niveau 02";
|
||||
|
||||
$fields["usualname"]["perm"]=1;
|
||||
$fields["usualname"]["label"]="Nom d'Usage";
|
||||
|
||||
$fields["gender"]["perm"]=1;
|
||||
$fields["gender"]["label"]="Sexe";
|
||||
|
||||
$fields["givensname"]["perm"]=1;
|
||||
$fields["givensname"]["label"]="Autre Prénom";
|
||||
|
||||
$fields["telephonenumber"]["perm"]=1;
|
||||
$fields["telephonenumber"]["label"]="Téléphone";
|
||||
|
||||
$fields["postaladress"]["perm"]=1;
|
||||
$fields["postaladress"]["label"]="Adresse";
|
||||
|
||||
$fields["birthdate"]["perm"]=1;
|
||||
$fields["birthdate"]["label"]="Date de Naissance";
|
||||
|
||||
$fields["birthcountry"]["perm"]=1;
|
||||
$fields["birthcountry"]["label"]="Pays de Naissance";
|
||||
|
||||
$fields["birthplace"]["perm"]=1;
|
||||
$fields["birthplace"]["label"]="Ville de Naissance";
|
||||
}
|
||||
else {
|
||||
$fields=json_decode($fields, true);
|
||||
}
|
||||
|
||||
if($session->get('viewniveau02')&&!array_key_exists("niveau02",$fields))
|
||||
$fields["niveau02"]["perm"]=1;
|
||||
elseif(!$session->get('viewniveau02'))
|
||||
unset($fields["niveau02"]);
|
||||
|
||||
if(array_key_exists("niveau02",$fields))
|
||||
$fields["niveau02"]["label"]=$session->get('labelniveau02');
|
||||
|
||||
|
||||
|
||||
$form = $this->createForm(DatauserType::class,$config,array("mode"=>"datauser","fields" => $fields));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
|
||||
foreach($fields as $key => $value) {
|
||||
$perm = $form->get($key)->getData();
|
||||
$fields[$key]["perm"]=$perm;
|
||||
}
|
||||
|
||||
$json=json_encode($fields);
|
||||
$config->setValue($json);
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
|
||||
return $this->render('CadolesCoreBundle:Config:datauser.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'form' => $form->createView(),
|
||||
'mode' => "datauser"
|
||||
]);
|
||||
}
|
||||
|
||||
public function datausersAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$session=$this->get('session');
|
||||
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
|
||||
$fields=$config->getValue();
|
||||
|
||||
if($fields=="") {
|
||||
// Valeur par défaut 0=caché / 3=visible
|
||||
$fields["avatar"]["perm"]=1;
|
||||
$fields["avatar"]["label"]="Avatar";
|
||||
|
||||
$fields["login"]["perm"]=1;
|
||||
$fields["login"]["label"]="Login";
|
||||
|
||||
$fields["lastname"]["perm"]=1;
|
||||
$fields["lastname"]["label"]="Nom";
|
||||
|
||||
$fields["firstname"]["perm"]=1;
|
||||
$fields["firstname"]["label"]="Prenom";
|
||||
|
||||
$fields["email"]["perm"]=1;
|
||||
$fields["email"]["label"]="Email";
|
||||
|
||||
$fields["niveau01"]["perm"]=1;
|
||||
$fields["niveau01"]["label"]="Niveau 01";
|
||||
|
||||
$fields["niveau02"]["perm"]=1;
|
||||
$fields["niveau02"]["label"]="Niveau 02";
|
||||
|
||||
$fields["group"]["perm"]=1;
|
||||
$fields["group"]["label"]="Groupes";
|
||||
|
||||
$fields["role"]["perm"]=1;
|
||||
$fields["role"]["label"]="Rôles";
|
||||
}
|
||||
else {
|
||||
$fields=json_decode($fields, true);
|
||||
}
|
||||
|
||||
$fields["niveau01"]["label"]=$session->get('labelniveau01');
|
||||
if($session->get('viewniveau02')&&!array_key_exists("niveau02",$fields))
|
||||
$fields["niveau02"]["perm"]=1;
|
||||
elseif(!$session->get('viewniveau02'))
|
||||
unset($fields["niveau02"]);
|
||||
|
||||
if(array_key_exists("niveau02",$fields))
|
||||
$fields["niveau02"]["label"]=$session->get('labelniveau02');
|
||||
|
||||
|
||||
|
||||
$form = $this->createForm(DatauserType::class,$config,array("mode"=>"datausers","fields" => $fields));
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->get('submit')->isClicked()) {
|
||||
$onevisible=false;
|
||||
foreach($fields as $key => $value) {
|
||||
$perm = $form->get($key)->getData();
|
||||
$fields[$key]["perm"]=$perm;
|
||||
if($perm==1) $onevisible=true;
|
||||
}
|
||||
|
||||
if(!$onevisible)
|
||||
$form->addError(new FormError('Au moins une colonne doit être visible'));
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($config);
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$json=json_encode($fields);
|
||||
$config->setValue($json);
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
|
||||
return $this->render('CadolesCoreBundle:Config:datauser.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'form' => $form->createView(),
|
||||
'mode' => "datausers"
|
||||
]);
|
||||
}
|
||||
|
||||
protected function getErrorForm($form,$request,$data) {
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($data);
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Group;
|
||||
|
||||
class CoreController extends Controller
|
||||
{
|
||||
public function homeAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user=$this->getUser();
|
||||
$masterurl=$this->getParameter("masterurl");
|
||||
$masterapikey=$this->getParameter("masterapikey");
|
||||
|
||||
if(stripos($masterurl,"/")===0)
|
||||
$url="https://".$this->getParameter("weburl").$masterurl;
|
||||
else
|
||||
$url=$masterurl;
|
||||
|
||||
$indomaine = (stripos($url,$this->getParameter("weburl"))!==false);
|
||||
|
||||
if($user) {
|
||||
// Recherche des élèments de masterIdentify
|
||||
$headers = ['Accept' => 'application/json'];
|
||||
$query = [];
|
||||
|
||||
/* si hor domaine on utilise le proxy si proxy il y a */
|
||||
if(!$indomaine) {
|
||||
$PROXYactivate = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYactivate")->getValue();
|
||||
if($PROXYactivate) {
|
||||
$PROXYserver = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYserver")->getValue();
|
||||
$PROXYport = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYport")->getValue();
|
||||
\Unirest\Request::proxy($PROXYserver, $PROXYport, CURLPROXY_HTTP, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Récupération des informations utilisateurs issus du masteridentity
|
||||
$response = \Unirest\Request::get($url.'/rest/user/'.$masterapikey.'/'.$user->getUsername(),$headers,$query);
|
||||
|
||||
// Mise à jour du user
|
||||
$user->setAvatar($response->body->user->avatar);
|
||||
$user->setRole($response->body->user->role);
|
||||
$em->persist($user);
|
||||
$em->flush();
|
||||
|
||||
// Mise à jour des groupes
|
||||
$groups=$response->body->groups;
|
||||
$mygroup=[];
|
||||
|
||||
foreach($groups as $groupexternal) {
|
||||
// Le groupe existe-t-il
|
||||
$group=$em->getRepository("CadolesCoreBundle:Group")->findOneBy(["idexternal"=>$groupexternal->id]);
|
||||
if(!$group)
|
||||
$group = new Group();
|
||||
$group->setIdexternal($groupexternal->id);
|
||||
$group->setLabel($groupexternal->title);
|
||||
$em->persist($group);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// Sauvegarde en session des groupes de l'utilisateur
|
||||
$this->get('session')->set("groups",$groups);
|
||||
|
||||
}
|
||||
|
||||
$servers = $em->getRepository("CadolesCoreBundle:Server")->findAll();
|
||||
|
||||
return $this->render('CadolesCoreBundle:Core:home.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'servers' => $servers,
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
class CropController extends Controller
|
||||
{
|
||||
// Etape 01 - Téléchargement de l'image
|
||||
public function crop01Action()
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:Crop:crop01.html.twig',[
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
]);
|
||||
}
|
||||
|
||||
// Etape 02 - Couper votre l'image
|
||||
public function crop02Action(Request $request)
|
||||
{
|
||||
// Récupération de l'image à cropper
|
||||
$session = new Session();
|
||||
$large_image_location = "uploads/avatar/".$session->get('uploadavatar');
|
||||
|
||||
// Récupérer les tailles de l'image
|
||||
$width = $this->getWidth($large_image_location);
|
||||
$height = $this->getHeight($large_image_location);
|
||||
|
||||
// Définir le pourcentage de réduction de l'image
|
||||
$max_height=400;
|
||||
$max_width=860;
|
||||
$scale = $max_height/$height;
|
||||
if(($width*$scale)>$max_width) {
|
||||
$scale = $max_width/$width;
|
||||
}
|
||||
$this->resizeImage($large_image_location,$width,$height,$scale);
|
||||
|
||||
// Construction du formulaire
|
||||
$form = $this->createFormBuilder()
|
||||
->add('submit',SubmitType::class,array("label" => "Valider","attr" => array("class" => "btn btn-success","onclick" => "reportThumb()")))
|
||||
->add('x1',HiddenType::class)
|
||||
->add('y1',HiddenType::class)
|
||||
->add('x2',HiddenType::class)
|
||||
->add('y2',HiddenType::class)
|
||||
->add('w',HiddenType::class)
|
||||
->add('h',HiddenType::class)
|
||||
->getForm();
|
||||
|
||||
// Récupération des data du formulaire
|
||||
$form->handleRequest($request);
|
||||
|
||||
// Sur validation on généère la miniature croppée
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
// Récupération des valeurs du formulaire
|
||||
$data = $form->getData();
|
||||
|
||||
$thumb_image_location = "uploads/avatar/thumb_".$session->get('uploadavatar');;
|
||||
$cropped = $this->resizeThumbnailImage($thumb_image_location, $large_image_location,$data["w"],$data["h"],$data["x1"],$data["y1"],$scale);
|
||||
}
|
||||
|
||||
return $this->render('CadolesCoreBundle:Crop:crop02.html.twig', [
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
// Calcul de la hauteur
|
||||
protected function getHeight($image) {
|
||||
$size = getimagesize($image);
|
||||
$height = $size[1];
|
||||
return $height;
|
||||
}
|
||||
|
||||
// Cacul de la largeur
|
||||
protected function getWidth($image) {
|
||||
$size = getimagesize($image);
|
||||
$width = $size[0];
|
||||
return $width;
|
||||
}
|
||||
|
||||
protected function resizeImage($image,$width,$height,$scale) {
|
||||
list($imagewidth, $imageheight, $imageType) = getimagesize($image);
|
||||
$imageType = image_type_to_mime_type($imageType);
|
||||
$newImageWidth = ceil($width * $scale);
|
||||
$newImageHeight = ceil($height * $scale);
|
||||
$newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
$source=imagecreatefromgif($image);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
$source=imagecreatefromjpeg($image);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
$source=imagecreatefrompng($image);
|
||||
break;
|
||||
}
|
||||
imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
|
||||
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
imagegif($newImage,$image);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
imagejpeg($newImage,$image,90);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
imagepng($newImage,$image);
|
||||
break;
|
||||
}
|
||||
|
||||
chmod($image, 0640);
|
||||
return $image;
|
||||
}
|
||||
|
||||
protected function resizeThumbnailImage($thumb_image_name, $image, $width, $height, $start_width, $start_height, $scale){
|
||||
list($imagewidth, $imageheight, $imageType) = getimagesize($image);
|
||||
$imageType = image_type_to_mime_type($imageType);
|
||||
|
||||
$newImageWidth = ceil($width * $scale);
|
||||
$newImageHeight = ceil($height * $scale);
|
||||
$newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
$source=imagecreatefromgif($image);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
$source=imagecreatefromjpeg($image);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
$source=imagecreatefrompng($image);
|
||||
break;
|
||||
}
|
||||
imagecopyresampled($newImage,$source,0,0,$start_width,$start_height,$newImageWidth,$newImageHeight,$width,$height);
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
imagegif($newImage,$thumb_image_name);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
imagejpeg($newImage,$thumb_image_name,90);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
imagepng($newImage,$thumb_image_name);
|
||||
break;
|
||||
}
|
||||
chmod($thumb_image_name, 0640);
|
||||
return $thumb_image_name;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,186 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpFoundation\File\File;
|
||||
|
||||
class FileController extends Controller
|
||||
{
|
||||
public function uploadAction($id,$type,$access="config")
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:File:upload.html.twig',[
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'access' => $access,
|
||||
'id' => $id,
|
||||
'type' => $type,
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteAction(Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
|
||||
$output=array();
|
||||
$directory=$request->request->get('directory');
|
||||
$filename=$request->request->get('filename');
|
||||
|
||||
$this->getPermission($access,$directory);
|
||||
$fs = new Filesystem();
|
||||
$url=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename;
|
||||
if($fs->exists($url)) {
|
||||
$fs->remove($url);
|
||||
}
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function viewAction($directory,$filename,Request $request,$access="config")
|
||||
{
|
||||
$this->getPermission($access,$directory);
|
||||
|
||||
$navigation = $request->query->get('navigation');
|
||||
$tbprev=[];
|
||||
$tbnext=[];
|
||||
|
||||
$url=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename;
|
||||
$file = new file($url);
|
||||
|
||||
|
||||
$minetype=$file->getMimeType();
|
||||
$minefamily=explode("/",$minetype)[0];
|
||||
|
||||
if($minefamily=="text" || $minefamily=="image" || $minetype == "application/pdf") {
|
||||
$image="";
|
||||
if($minefamily=="image") {
|
||||
$image = "data:image/" . $file->getExtension() . ";base64," . base64_encode(file_get_contents($url));
|
||||
|
||||
if($navigation) {
|
||||
$dir=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory;
|
||||
$files=[];
|
||||
$fs = new Filesystem();
|
||||
|
||||
if($fs->exists($dir)) {
|
||||
$finder = new Finder();
|
||||
$finder->sortByName()->in($dir)->exclude('thumb');
|
||||
|
||||
$i=-1;
|
||||
|
||||
|
||||
foreach ($finder as $key => $file) {
|
||||
$i++;
|
||||
|
||||
if($file->getRelativePathname()==$filename) {
|
||||
$keyprev=$i-1;
|
||||
$keynext=$i+1;
|
||||
}
|
||||
|
||||
$tmp=[];
|
||||
$tmp["name"]=$file->getRelativePathname();
|
||||
$tmp["extension"]=$file->getExtension();
|
||||
$fileinfo = new file($file->getPathname());
|
||||
$tmp["minetype"]=$fileinfo->getMimeType();
|
||||
$tmp["minefamily"]=explode("/",$tmp["minetype"])[0];
|
||||
|
||||
$tmp["thumb"]="";
|
||||
if($fs->exists($dir."/thumb/".$tmp["name"])) {
|
||||
$data = file_get_contents($dir."/thumb/".$tmp["name"]);
|
||||
$tmp["thumb"]="data:image/" . $tmp["extension"] . ";base64," . base64_encode($data);
|
||||
}
|
||||
|
||||
array_push($files,$tmp);
|
||||
}
|
||||
|
||||
if(array_key_exists($keyprev,$files))
|
||||
$tbprev=$files[$keyprev];
|
||||
if(array_key_exists($keynext,$files))
|
||||
$tbnext=$files[$keynext];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('CadolesCoreBundle:File:view.html.twig',[
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'access' => $access,
|
||||
'directory' => $directory,
|
||||
'minefamily' => $minefamily,
|
||||
'minetype' => $minetype,
|
||||
'filename' => $filename,
|
||||
'image' => $image,
|
||||
'prev' => $tbprev,
|
||||
'next' => $tbnext
|
||||
]);
|
||||
}
|
||||
else {
|
||||
// normalement le widget ne fait jamais passer par là
|
||||
$response = new BinaryFileResponse($file);
|
||||
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE);
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
public function showAction($directory,$filename,$access="config")
|
||||
{
|
||||
$this->getPermission($access,$directory);
|
||||
|
||||
$file=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename;
|
||||
|
||||
$response = new BinaryFileResponse($file);
|
||||
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function downloadAction($directory,$filename,$access="config")
|
||||
{
|
||||
$this->getPermission($access,$directory);
|
||||
|
||||
$file=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename;
|
||||
|
||||
$response = new BinaryFileResponse($file);
|
||||
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function getPermission($access, $directory) {
|
||||
if($access=="user") {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$type=explode("-",$directory)[0];
|
||||
$id=explode("-",$directory)[1];
|
||||
|
||||
switch($type) {
|
||||
case "widget":
|
||||
// Récupération du widget
|
||||
$widget=$em->getRepository("CadolesPortalBundle:Pagewidget")->find($id);
|
||||
if (!$widget) throw $this->createNotFoundException('Unable to find entity.');
|
||||
|
||||
// On s'assure que l'utilisateur à la permission de voir
|
||||
$page=$widget->getPage();
|
||||
$em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate);
|
||||
if(!$cansee) throw $this->createNotFoundException('Permission denied');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Scrum;
|
||||
use Cadoles\CoreBundle\Form\ScrumType;
|
||||
|
||||
class GroupController extends Controller
|
||||
{
|
||||
private $labelentity="CadolesCoreBundle:Group";
|
||||
|
||||
public function ajaxlistAction(Request $request)
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
|
||||
$output=array();
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$page_limit=$request->query->get('page_limit');
|
||||
$q=$request->query->get('q');
|
||||
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('table')->from("CadolesCoreBundle:Group",'table')
|
||||
->where('table.label LIKE :value')
|
||||
->setParameter("value", "%".$q."%")
|
||||
->orderBy('table.label');
|
||||
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
|
||||
|
||||
|
||||
$mygroups = $this->get('session')->get("groups");
|
||||
$myids=[];
|
||||
foreach($mygroups as $mygroup) {
|
||||
array_push($myids,$mygroup->id);
|
||||
}
|
||||
|
||||
foreach($datas as $data) {
|
||||
if(in_array($data->getIdexternal(),$myids))
|
||||
array_push($output,array("id"=>$data->getId(),"text"=>$data->getLabel()));
|
||||
}
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,196 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\Routing\RouterInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
use Cadoles\CoreBundle\Form\LoginType;
|
||||
|
||||
class SecurityController extends Controller
|
||||
{
|
||||
public function loginAction(Request $request)
|
||||
{
|
||||
|
||||
$targetpath=$request->getSession()->get("_security.main.target_path");
|
||||
|
||||
// Mode d'authentification
|
||||
$modeauth=$this->getParameter('mode_auth');
|
||||
|
||||
switch($modeauth) {
|
||||
case "SQL":
|
||||
$authUtils = $this->get('security.authentication_utils');
|
||||
|
||||
// get the login error if there is one
|
||||
$error = $authUtils->getLastAuthenticationError();
|
||||
|
||||
// last username entered by the user
|
||||
$lastUsername = $authUtils->getLastUsername();
|
||||
|
||||
return $this->render('CadolesCoreBundle:Security:login.html.twig', array(
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'last_username' => $lastUsername,
|
||||
'error' => $error
|
||||
));
|
||||
break;
|
||||
|
||||
case "LDAP":
|
||||
|
||||
$authUtils = $this->get('security.authentication_utils');
|
||||
|
||||
// last username entered by the user
|
||||
$lastUsername = $authUtils->getLastUsername();
|
||||
$error = "";
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(LoginType::class);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->get('submit')->isClicked()) {
|
||||
$data = $form->getData();
|
||||
|
||||
$ldap_host = $this->getParameter("ldap_host");
|
||||
$ldap_port = $this->getParameter("ldap_port");
|
||||
$ldap_user = $this->getParameter("ldap_user");
|
||||
$ldap_password = $this->getParameter("ldap_password");
|
||||
$ldap_basedn = $this->container->getParameter('ldap_basedn');
|
||||
|
||||
$ldapConn = ldap_connect($ldap_host, $ldap_port);
|
||||
$fglogin = false;
|
||||
if($ldapConn){
|
||||
// Connexion au serveur LDAP superuser
|
||||
@$ldapbind = ldap_bind($ldapConn, $ldap_user, $ldap_password);
|
||||
if($ldapbind) {
|
||||
$result = ldap_search($ldapConn, $ldap_basedn, "uid=".$data["_username"]);
|
||||
if($result) {
|
||||
$first = ldap_first_entry($ldapConn, $result);
|
||||
$dn = ldap_get_dn($ldapConn, $first);
|
||||
|
||||
@$ldapbind = ldap_bind($ldapConn, $dn, $data["_password"]);
|
||||
if($ldapbind) {
|
||||
$fglogin = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user=$em->getRepository("CadolesCoreBundle:User")->findOneBy(["username"=>$data["_username"]]);
|
||||
if(!$user) $fglogin = false;
|
||||
|
||||
if(!$fglogin) $error = "connexion impossible";
|
||||
else {
|
||||
// Autoconnexion
|
||||
// Récupérer le token de l'utilisateur
|
||||
$token = new UsernamePasswordToken($user, null, "main", $user->getRoles());
|
||||
$this->get("security.token_storage")->setToken($token);
|
||||
|
||||
// Simuler l'evenement de connexion
|
||||
$event = new InteractiveLoginEvent($request, $token);
|
||||
$dispatcher = new EventDispatcher();
|
||||
$dispatcher->dispatch("security.interactive_login", $event);
|
||||
|
||||
|
||||
return $this->redirect($this->generateUrl('cadoles_core_home'));
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('CadolesCoreBundle:Security:loginldap.html.twig', array(
|
||||
'useheader' => false,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => false,
|
||||
'last_username' => $lastUsername,
|
||||
'error' => $error,
|
||||
'form' => $form->createView()
|
||||
));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function logoutAction(Request $request)
|
||||
{
|
||||
$this->get('security.context')->setToken(null);
|
||||
$this->get('request')->getSession()->invalidate();
|
||||
}
|
||||
|
||||
public function killAction(Request $request)
|
||||
{
|
||||
$session = new Session();
|
||||
if($this->getParameter("auth_mode")=="SAML") {
|
||||
$samlLogout = $this->getParameter("saml_logout_url");
|
||||
return $this->redirect($samlLogout);
|
||||
}
|
||||
else
|
||||
return $this->redirectToRoute("myapp_webzine_home");
|
||||
}
|
||||
|
||||
|
||||
public function checkuserAction(Request $request)
|
||||
{
|
||||
$userapp = $this->getUser();
|
||||
$fgforceconnect = $this->get('session')->get('fgforceconnect');
|
||||
$modeauth=$this->getParameter('mode_auth');
|
||||
|
||||
if(is_null($userapp) && $fgforceconnect) {
|
||||
|
||||
switch($modeauth) {
|
||||
case "SAML":
|
||||
return new Response("<script>window.location.href='".$this->generateUrl("lightsaml_sp.login")."';</script>");
|
||||
break;
|
||||
|
||||
case "CAS":
|
||||
return new Response("<script>window.location.href='".$this->generateUrl("cas_sp.login")."';</script>");
|
||||
break;
|
||||
|
||||
case "SQL":
|
||||
return new Response("<script>window.location.href='".$this->generateUrl("cadoles_core_login")."';</script>");
|
||||
break;
|
||||
|
||||
case "LDAP":
|
||||
return new Response("<script>window.location.href='".$this->generateUrl("cadoles_core_ldap_login")."';</script>");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Mode d'authentification
|
||||
switch($modeauth) {
|
||||
case "CAS":
|
||||
// Init Client CAS
|
||||
\phpCAS::setDebug(false);
|
||||
\phpCAS::client(CAS_VERSION_2_0, $this->container->getParameter('cas_host'), $this->container->getParameter('cas_port'), is_null($this->container->getParameter('cas_path')) ? '' : $this->container->getParameter('cas_path'), false);
|
||||
\phpCAS::setNoCasServerValidation();
|
||||
|
||||
if(\phpCAS::checkAuthentication()) {
|
||||
$usercas = \phpCAS::getUser();
|
||||
|
||||
|
||||
// si on a un usercas mais pas de userapp c'est qu'il faut s'autoconnect
|
||||
if(!$userapp) {
|
||||
$url=$this->generateUrl('cas_sp.login');
|
||||
return new Response(
|
||||
'<script>document.location.replace("'.$url.'");</script>'
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new Response();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
|
||||
use Symfony\Component\Finder\Finder;
|
||||
|
||||
class ThemeController extends Controller
|
||||
{
|
||||
public function listAction(Request $request)
|
||||
{
|
||||
$session=$this->get('session');
|
||||
$finder = new Finder();
|
||||
|
||||
$dir = $this->get('kernel')->getRootDir()."/../web/bundles/cadolescore/themes";
|
||||
$url="/".$this->getParameter('alias')."/bundles/cadolescore/themes";
|
||||
|
||||
$finder->in($dir)->directories()->depth('== 0');
|
||||
$themes=[];
|
||||
$themes[""]["dir"]="";
|
||||
$themes[""]["url"]=$url;
|
||||
$themes[""]["name"]="Thème par défaut";
|
||||
|
||||
foreach ($finder as $file) {
|
||||
$key=$file->getRelativePathname();
|
||||
$themes[$key]["dir"]=$key;
|
||||
$themes[$key]["url"]=$url."/".$key;
|
||||
|
||||
$yml=Yaml::parseFile($dir.'/'.$key.'/info.yml');
|
||||
$themes[$key]["name"]=$yml["name"];
|
||||
}
|
||||
|
||||
$current=$session->get("theme");
|
||||
$currentheme=$themes[$current];
|
||||
unset($themes[$current]);
|
||||
|
||||
return $this->render('CadolesCoreBundle:Theme:list.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'currentheme' => $currentheme,
|
||||
'themes' => $themes
|
||||
]);
|
||||
}
|
||||
|
||||
public function selectAction(Request $request,$name)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$config=$em->getRepository("CadolesCoreBundle:Config")->findoneBy(["id"=>"theme"]);
|
||||
$config->setValue($name);
|
||||
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute("cadoles_core_config_theme");
|
||||
}
|
||||
|
||||
public function setconfigAction(Request $request)
|
||||
{
|
||||
$session=$this->get('session');
|
||||
$themename=$session->get("theme");
|
||||
|
||||
$logo=$request->query->get('logo');
|
||||
if(!empty($logo)) $session->set('logo',"bundles/cadolescore/themes/$themename/".$logo);
|
||||
|
||||
$fgheader=$request->query->get('fgheader');
|
||||
if(!empty($fgheader)) $session->set('fgheader',boolval($fgheader));
|
||||
|
||||
$header=$request->query->get('header');
|
||||
if(!empty($header)) $session->set('header',"bundles/cadolescore/themes/$themename/".$header);
|
||||
|
||||
$heightheader=$request->query->get('heightheader');
|
||||
if(!empty($heightheader)) $session->set('heightheader',$heightheader);
|
||||
|
||||
$colormain=$request->query->get('colormain');
|
||||
if(!empty($colormain)) $session->set('colormain',$colormain);
|
||||
|
||||
$fontcolorhover=$request->query->get('fontcolorhover');
|
||||
if(!empty($fontcolorhover)) $session->set('fontcolorhover',$fontcolorhover);
|
||||
|
||||
$colorbody=$request->query->get('colorbody');
|
||||
if(!empty($colorbody)) $session->set('colorbody',$colorbody);
|
||||
|
||||
$fontfacetitle=$request->query->get('fontfacetitle');
|
||||
if(!empty($fontfacetitle)) $session->set('fontfacetitle',$fontfacetitle);
|
||||
|
||||
$fontfacebody=$request->query->get('fontfacebody');
|
||||
if(!empty($fontfacebody)) $session->set('fontfacebody',$fontfacebody);
|
||||
|
||||
$color = $this->container->get('cadoles.core.service.color');
|
||||
$color->setColor();
|
||||
|
||||
return new Response();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,203 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Form\FormError;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Output\BufferedOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\User;
|
||||
use Cadoles\CoreBundle\Form\UserType;
|
||||
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
private $labelroute = 'cadoles_core_config_user';
|
||||
private $labelentity = 'CadolesCoreBundle:User';
|
||||
private $labeldata = 'user';
|
||||
private $labeldatas = 'users';
|
||||
|
||||
public function listAction()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
|
||||
$fields=$config->getValue();
|
||||
$fields=json_decode($fields,true);
|
||||
|
||||
return $this->render('CadolesCoreBundle:User:list.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'fields' => $fields
|
||||
]);
|
||||
}
|
||||
|
||||
public function ajaxlistAction(Request $request)
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$start=$request->query->get('start');
|
||||
$length= $request->query->get('length');
|
||||
$search= $request->query->get('search');
|
||||
$draw= $request->query->get('draw');
|
||||
$order= $request->query->get('order');
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
$total = $em->createQueryBuilder()->select('COUNT(user)')->from($this->labelentity,'user')->getQuery()->getSingleScalarResult();
|
||||
|
||||
// Nombre d'enregistrement filtré
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
->where('user.username LIKE :value OR user.firstname LIKE :value OR user.lastname LIKE :value OR user.email LIKE :value OR user.role LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
}
|
||||
|
||||
// Construction du tableau de retour
|
||||
$output = array(
|
||||
'draw' => $draw,
|
||||
'recordsFiltered' => $totalf,
|
||||
'recordsTotal' => $total,
|
||||
'data' => array(),
|
||||
);
|
||||
|
||||
// Parcours des Enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('user')->from($this->labelentity,'user');
|
||||
if($search["value"]!="") {
|
||||
$qb ->where('user.username LIKE :value OR user.firstname LIKE :value OR user.lastname LIKE :value OR user.email LIKE :value OR user.role LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
}
|
||||
|
||||
switch($order[0]["column"]) {
|
||||
case 1 :
|
||||
$qb->orderBy('user.username',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 2 :
|
||||
$qb->orderBy('user.lastname',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
$qb->orderBy('user.firstname',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 4 :
|
||||
$qb->orderBy('user.email',$order[0]["dir"]);
|
||||
break;
|
||||
|
||||
case 5 :
|
||||
$qb->orderBy('user.role',$order[0]["dir"]);
|
||||
break;
|
||||
}
|
||||
|
||||
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
|
||||
|
||||
foreach($datas as $data) {
|
||||
$tmp=[];
|
||||
array_push($tmp,"<img src='".$data->getAvatar()."' class='avatar' style='margin:auto;display:block;'>");
|
||||
array_push($tmp,$data->getUsername());
|
||||
array_push($tmp,$data->getLastname());
|
||||
array_push($tmp,$data->getFirstname());
|
||||
array_push($tmp,"<a href='mailto:".$data->getEmail()."'>".$data->getEmail()."</a>");
|
||||
array_push($tmp,$data->getRole());
|
||||
|
||||
array_push($output["data"],$tmp);
|
||||
}
|
||||
|
||||
// Retour
|
||||
return new Response(json_encode($output), 200);
|
||||
}
|
||||
|
||||
protected function getDatas()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$datas = $em->getRepository($this->labelentity)->findAll();
|
||||
return $datas;
|
||||
}
|
||||
|
||||
protected function getData($id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$data = $em->getRepository($this->labelentity)->find($id);
|
||||
|
||||
if (!$data) {
|
||||
throw $this->createNotFoundException('Unable to find '.$this->labeldata);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
||||
if ($form->get('submit')->isClicked() && ($mode=="submit" || $mode=="update")) {
|
||||
// Taille du login > 5
|
||||
if (is_null($data->getUsername()) || strlen($data->getUsername()) < '5') {
|
||||
$form->addError(new FormError('Taille minimum du login 5 caractères'));
|
||||
}
|
||||
|
||||
// On s'assure que le username ne contient pas des caractères speciaux
|
||||
$string = preg_replace('~[^@a-zA-Z0-9._-]~', '', $data->getUsername());
|
||||
if($string!=$data->getUsername())
|
||||
{
|
||||
$form->addError(new FormError('Caractères interdit dans votre login'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($form->get('submit')->isClicked() && !$form->isValid()) {
|
||||
$this->get('session')->getFlashBag()->clear();
|
||||
$validator = $this->get('validator');
|
||||
$errors = $validator->validate($data);
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
|
||||
$errors = $form->getErrors();
|
||||
foreach( $errors as $error ) {
|
||||
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function csv_to_array($csv, $delimiter = ';', $enclosure = '', $escape = '\\', $terminator = "\n") {
|
||||
$r = array();
|
||||
$rows = explode($terminator,trim($csv));
|
||||
|
||||
$names = array_shift($rows);
|
||||
$names = str_getcsv($names,$delimiter,$enclosure,$escape);
|
||||
$nc = count($names);
|
||||
foreach ($rows as $row) {
|
||||
if (trim($row)) {
|
||||
$values = str_getcsv($row,$delimiter,$enclosure,$escape);
|
||||
if (!$values) $values = array_fill(0,$nc,null);
|
||||
@$r[] = array_combine($names,$values);
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Scrum
|
||||
*
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="application")
|
||||
* @ORM\HasLifecycleCallbacks
|
||||
*/
|
||||
class Application
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100)
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100)
|
||||
*/
|
||||
private $package;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text", nullable=true)
|
||||
*/
|
||||
private $description;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Cadoles\CoreBundle\Entity\ServerApplication", mappedBy="application", cascade={"persist"}, orphanRemoval=true)
|
||||
*/
|
||||
private $serverapplications;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->serverapplications = new \Doctrine\Common\Collections\ArrayCollection();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set name
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return Application
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set package
|
||||
*
|
||||
* @param string $package
|
||||
*
|
||||
* @return Application
|
||||
*/
|
||||
public function setPackage($package)
|
||||
{
|
||||
$this->package = $package;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get package
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPackage()
|
||||
{
|
||||
return $this->package;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set description
|
||||
*
|
||||
* @param string $description
|
||||
*
|
||||
* @return Application
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get description
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add serverapplication
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\ServerApplication $serverapplication
|
||||
*
|
||||
* @return Application
|
||||
*/
|
||||
public function addServerapplication(\Cadoles\CoreBundle\Entity\ServerApplication $serverapplication)
|
||||
{
|
||||
$this->serverapplications[] = $serverapplication;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove serverapplication
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\ServerApplication $serverapplication
|
||||
*/
|
||||
public function removeServerapplication(\Cadoles\CoreBundle\Entity\ServerApplication $serverapplication)
|
||||
{
|
||||
$this->serverapplications->removeElement($serverapplication);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get serverapplications
|
||||
*
|
||||
* @return \Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getServerapplications()
|
||||
{
|
||||
return $this->serverapplications;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,322 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="config",indexes={@ORM\Index(name="order", columns={"order"})})
|
||||
*/
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text")
|
||||
*/
|
||||
protected $value;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
protected $order;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="boolean")
|
||||
*/
|
||||
protected $visible;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="boolean")
|
||||
*/
|
||||
protected $changeable;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="boolean")
|
||||
*/
|
||||
protected $required;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
protected $type;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string")
|
||||
*/
|
||||
protected $grouped;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text")
|
||||
*/
|
||||
protected $help;
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set key
|
||||
*
|
||||
* @param string $key
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setKey($key)
|
||||
{
|
||||
$this->key = $key;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get key
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set value
|
||||
*
|
||||
* @param string $value
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setValue($value)
|
||||
{
|
||||
$this->value = $value;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getValue()
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set order
|
||||
*
|
||||
* @param integer $order
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setOrder($order)
|
||||
{
|
||||
$this->order = $order;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get order
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getOrder()
|
||||
{
|
||||
return $this->order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set visible
|
||||
*
|
||||
* @param boolean $visible
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setVisible($visible)
|
||||
{
|
||||
$this->visible = $visible;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get visible
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getVisible()
|
||||
{
|
||||
return $this->visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set type
|
||||
*
|
||||
* @param string $type
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
$this->type = $type;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set id
|
||||
*
|
||||
* @param string $id
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set changeable
|
||||
*
|
||||
* @param boolean $changeable
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setChangeable($changeable)
|
||||
{
|
||||
$this->changeable = $changeable;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get changeable
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getChangeable()
|
||||
{
|
||||
return $this->changeable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set required
|
||||
*
|
||||
* @param boolean $required
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setRequired($required)
|
||||
{
|
||||
$this->required = $required;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get required
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getRequired()
|
||||
{
|
||||
return $this->required;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set group
|
||||
*
|
||||
* @param string $group
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setGroup($group)
|
||||
{
|
||||
$this->group = $group;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get group
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getGroup()
|
||||
{
|
||||
return $this->group;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set help
|
||||
*
|
||||
* @param string $help
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setHelp($help)
|
||||
{
|
||||
$this->help = $help;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get help
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getHelp()
|
||||
{
|
||||
return $this->help;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set grouped
|
||||
*
|
||||
* @param string $grouped
|
||||
*
|
||||
* @return Config
|
||||
*/
|
||||
public function setGrouped($grouped)
|
||||
{
|
||||
$this->grouped = $grouped;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get grouped
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getGrouped()
|
||||
{
|
||||
return $this->grouped;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
|
||||
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="groupe")
|
||||
* @ORM\HasLifecycleCallbacks()
|
||||
* @ORM\Entity(repositoryClass="Cadoles\CoreBundle\Repository\GroupRepository")
|
||||
*
|
||||
* @UniqueEntity(fields="label", message="Un group existe déjà avec ce label")
|
||||
*/
|
||||
class Group
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=250, unique=true)
|
||||
*/
|
||||
private $label;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="idexternal", type="integer", nullable=true)
|
||||
*/
|
||||
private $idexternal;
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set label
|
||||
*
|
||||
* @param string $label
|
||||
*
|
||||
* @return Group
|
||||
*/
|
||||
public function setLabel($label)
|
||||
{
|
||||
$this->label = $label;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get label
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLabel()
|
||||
{
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set idexternal
|
||||
*
|
||||
* @param integer $idexternal
|
||||
*
|
||||
* @return Group
|
||||
*/
|
||||
public function setIdexternal($idexternal)
|
||||
{
|
||||
$this->idexternal = $idexternal;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get idexternal
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getIdexternal()
|
||||
{
|
||||
return $this->idexternal;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,257 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Scrum
|
||||
*
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="server")
|
||||
* @ORM\HasLifecycleCallbacks
|
||||
*/
|
||||
class Server
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100)
|
||||
*/
|
||||
private $idserver;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100)
|
||||
*/
|
||||
private $idlocal;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100)
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100, nullable=true)
|
||||
*/
|
||||
private $module;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100, nullable=true)
|
||||
*/
|
||||
private $version;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="updatedate", type="datetime")
|
||||
*/
|
||||
private $updatedate;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="Cadoles\CoreBundle\Entity\ServerApplication", mappedBy="server", cascade={"persist"}, orphanRemoval=true)
|
||||
*/
|
||||
private $serverapplications;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->serverapplications = new \Doctrine\Common\Collections\ArrayCollection();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set idserver
|
||||
*
|
||||
* @param string $idserver
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setIdserver($idserver)
|
||||
{
|
||||
$this->idserver = $idserver;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get idserver
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIdserver()
|
||||
{
|
||||
return $this->idserver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set idlocal
|
||||
*
|
||||
* @param string $idlocal
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setIdlocal($idlocal)
|
||||
{
|
||||
$this->idlocal = $idlocal;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get idlocal
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIdlocal()
|
||||
{
|
||||
return $this->idlocal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set name
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set module
|
||||
*
|
||||
* @param string $module
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setModule($module)
|
||||
{
|
||||
$this->module = $module;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getModule()
|
||||
{
|
||||
return $this->module;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set version
|
||||
*
|
||||
* @param string $version
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setVersion($version)
|
||||
{
|
||||
$this->version = $version;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get version
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set updatedate
|
||||
*
|
||||
* @param \DateTime $updatedate
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function setUpdatedate($updatedate)
|
||||
{
|
||||
$this->updatedate = $updatedate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updatedate
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public function getUpdatedate()
|
||||
{
|
||||
return $this->updatedate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add serverapplication
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\ServerApplication $serverapplication
|
||||
*
|
||||
* @return Server
|
||||
*/
|
||||
public function addServerapplication(\Cadoles\CoreBundle\Entity\ServerApplication $serverapplication)
|
||||
{
|
||||
$this->serverapplications[] = $serverapplication;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove serverapplication
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\ServerApplication $serverapplication
|
||||
*/
|
||||
public function removeServerapplication(\Cadoles\CoreBundle\Entity\ServerApplication $serverapplication)
|
||||
{
|
||||
$this->serverapplications->removeElement($serverapplication);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get serverapplications
|
||||
*
|
||||
* @return \Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getServerapplications()
|
||||
{
|
||||
return $this->serverapplications;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,154 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
* Scrum
|
||||
*
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="serverapplication")
|
||||
* @ORM\HasLifecycleCallbacks
|
||||
*/
|
||||
class ServerApplication
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
*
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=100, nullable=true)
|
||||
*/
|
||||
private $version;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="updatedate", type="datetime")
|
||||
*/
|
||||
private $updatedate;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Cadoles\CoreBundle\Entity\Server", inversedBy="serverapplications")
|
||||
*/
|
||||
private $server;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Cadoles\CoreBundle\Entity\Application", inversedBy="serverapplications")
|
||||
*/
|
||||
private $application;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set version
|
||||
*
|
||||
* @param string $version
|
||||
*
|
||||
* @return ServerApplication
|
||||
*/
|
||||
public function setVersion($version)
|
||||
{
|
||||
$this->version = $version;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get version
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set updatedate
|
||||
*
|
||||
* @param \DateTime $updatedate
|
||||
*
|
||||
* @return ServerApplication
|
||||
*/
|
||||
public function setUpdatedate($updatedate)
|
||||
{
|
||||
$this->updatedate = $updatedate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get updatedate
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public function getUpdatedate()
|
||||
{
|
||||
return $this->updatedate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set server
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\Server $server
|
||||
*
|
||||
* @return ServerApplication
|
||||
*/
|
||||
public function setServer(\Cadoles\CoreBundle\Entity\Server $server = null)
|
||||
{
|
||||
$this->server = $server;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get server
|
||||
*
|
||||
* @return \Cadoles\CoreBundle\Entity\Server
|
||||
*/
|
||||
public function getServer()
|
||||
{
|
||||
return $this->server;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set application
|
||||
*
|
||||
* @param \Cadoles\CoreBundle\Entity\Application $application
|
||||
*
|
||||
* @return ServerApplication
|
||||
*/
|
||||
public function setApplication(\Cadoles\CoreBundle\Entity\Application $application = null)
|
||||
{
|
||||
$this->application = $application;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get application
|
||||
*
|
||||
* @return \Cadoles\CoreBundle\Entity\Application
|
||||
*/
|
||||
public function getApplication()
|
||||
{
|
||||
return $this->application;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,316 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
use Cadoles\CoreBundle\Validator\Password;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="user")
|
||||
* @ORM\HasLifecycleCallbacks()
|
||||
*
|
||||
* @UniqueEntity(fields="username", message="Un utilisateur existe déjà avec ce login.")
|
||||
* @UniqueEntity(fields="email", message="Un utilisateur existe déjà avec ce mail.")
|
||||
*/
|
||||
class User implements UserInterface, \Serializable
|
||||
{
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=50, unique=true)
|
||||
*/
|
||||
private $username;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=250, nullable=true)
|
||||
*/
|
||||
private $firstname;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=250, nullable=true)
|
||||
*/
|
||||
private $lastname;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=250)
|
||||
*/
|
||||
private $password;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=250)
|
||||
*/
|
||||
private $salt;
|
||||
|
||||
/**
|
||||
* @Password()
|
||||
*/
|
||||
private $tempopassword;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=60, unique=true)
|
||||
*/
|
||||
private $email;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=200, nullable=true, options={"default" : 0})
|
||||
*/
|
||||
private $avatar;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=60)
|
||||
*/
|
||||
private $role;
|
||||
|
||||
//== CODE A NE PAS REGENERER
|
||||
/**
|
||||
* @ORM\PostLoad
|
||||
*/
|
||||
public function PostLoad() {
|
||||
if($this->getAvatar()=="") {
|
||||
$this->setAvatar("noavatar.png");
|
||||
}
|
||||
}
|
||||
|
||||
public function getUserName()
|
||||
{
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
public function getSalt()
|
||||
{
|
||||
return $this->salt;
|
||||
}
|
||||
|
||||
public function setPassword($password)
|
||||
{
|
||||
if($password!=$this->password&&$password!=""){
|
||||
$this->tempopassword=$password;
|
||||
|
||||
$this->salt = uniqid(mt_rand(), true);
|
||||
$hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt);
|
||||
|
||||
$this->password = $hash;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setPasswordDirect($password)
|
||||
{
|
||||
$this->password = $password;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPassword()
|
||||
{
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
public function getRoles()
|
||||
{
|
||||
return explode(",",$this->role);
|
||||
}
|
||||
|
||||
public function eraseCredentials()
|
||||
{
|
||||
}
|
||||
|
||||
/** @see \Serializable::serialize() */
|
||||
public function serialize()
|
||||
{
|
||||
return serialize(array(
|
||||
$this->id,
|
||||
$this->username,
|
||||
$this->password,
|
||||
$this->salt,
|
||||
));
|
||||
}
|
||||
|
||||
/** @see \Serializable::unserialize() */
|
||||
public function unserialize($serialized)
|
||||
{
|
||||
list (
|
||||
$this->id,
|
||||
$this->login,
|
||||
$this->password,
|
||||
$this->salt
|
||||
) = unserialize($serialized);
|
||||
}
|
||||
|
||||
//== FIN DU CODE A NE PAS REGENERER
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get id
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set username
|
||||
*
|
||||
* @param string $username
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setUsername($username)
|
||||
{
|
||||
$this->username = $username;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set firstname
|
||||
*
|
||||
* @param string $firstname
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFirstname($firstname)
|
||||
{
|
||||
$this->firstname = $firstname;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get firstname
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFirstname()
|
||||
{
|
||||
return $this->firstname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set lastname
|
||||
*
|
||||
* @param string $lastname
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setLastname($lastname)
|
||||
{
|
||||
$this->lastname = $lastname;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get lastname
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLastname()
|
||||
{
|
||||
return $this->lastname;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set salt
|
||||
*
|
||||
* @param string $salt
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setSalt($salt)
|
||||
{
|
||||
$this->salt = $salt;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set email
|
||||
*
|
||||
* @param string $email
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setEmail($email)
|
||||
{
|
||||
$this->email = $email;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get email
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getEmail()
|
||||
{
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set avatar
|
||||
*
|
||||
* @param string $avatar
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setAvatar($avatar)
|
||||
{
|
||||
$this->avatar = $avatar;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get avatar
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAvatar()
|
||||
{
|
||||
return $this->avatar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set role
|
||||
*
|
||||
* @param string $role
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setRole($role)
|
||||
{
|
||||
$this->role = $role;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get role
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getRole()
|
||||
{
|
||||
return $this->role;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\EventListener;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
|
||||
class sessionListener {
|
||||
protected $container;
|
||||
protected $em;
|
||||
|
||||
public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage)
|
||||
{
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
$this->token_storage = $token_storage;
|
||||
}
|
||||
|
||||
public function haveRole($roles,$tohave,$route) {
|
||||
$haverole=false;
|
||||
if($roles=="") {
|
||||
if(empty($tohave)) $haverole=true;
|
||||
}
|
||||
else {
|
||||
foreach($roles as $role) {
|
||||
if(in_array($role,$tohave))
|
||||
$haverole=true;
|
||||
}
|
||||
}
|
||||
|
||||
return $haverole;
|
||||
}
|
||||
|
||||
public function onDomainParse(Event $event) {
|
||||
$session = new Session();
|
||||
|
||||
|
||||
|
||||
$configs = $this->em->getRepository("CadolesCoreBundle:Config")->findAll();
|
||||
foreach($configs as $config) {
|
||||
$session->set($config->getId(), strval($config->getValue()));
|
||||
}
|
||||
|
||||
// Calcul des couleurs
|
||||
$color = $this->container->get('cadoles.core.service.color');
|
||||
$color->setColor();
|
||||
|
||||
// Utilisateur en cours
|
||||
$curentuserid=0;
|
||||
$token = $this->token_storage->getToken();
|
||||
if(!$token) return;
|
||||
$curentuser=$token->getUser();
|
||||
|
||||
// Roles actif
|
||||
if($curentuser=="anon.") $roles=[];
|
||||
else $roles=$curentuser->getRoles();
|
||||
|
||||
// mode_auth
|
||||
$mode_auth =$this->container->getParameter('mode_auth');
|
||||
$session->set('mode_auth',$mode_auth);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\EventListener;
|
||||
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Oneup\UploaderBundle\Event\PostPersistEvent;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\File\File;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
|
||||
|
||||
class uploadListener
|
||||
{
|
||||
private $em;
|
||||
private $session;
|
||||
private $token;
|
||||
private $container;
|
||||
|
||||
public function __construct(EntityManager $em, TokenStorageInterface $token_storage, Session $session, Container $container)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->session = $session;
|
||||
$this->token = $token_storage;
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
protected function getHeight($image) {
|
||||
$size = getimagesize($image);
|
||||
$height = $size[1];
|
||||
return $height;
|
||||
}
|
||||
|
||||
// Cacul de la largeur
|
||||
protected function getWidth($image) {
|
||||
$size = getimagesize($image);
|
||||
$width = $size[0];
|
||||
return $width;
|
||||
}
|
||||
|
||||
protected function resizeImage($image,$width,$height,$scale) {
|
||||
list($imagewidth, $imageheight, $imageType) = getimagesize($image);
|
||||
$imageType = image_type_to_mime_type($imageType);
|
||||
$newImageWidth = ceil($width * $scale);
|
||||
$newImageHeight = ceil($height * $scale);
|
||||
$newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
$source=imagecreatefromgif($image);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
$source=imagecreatefromjpeg($image);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
$source=imagecreatefrompng($image);
|
||||
break;
|
||||
}
|
||||
|
||||
$newImage = imagecreatetruecolor( $newImageWidth, $newImageHeight );
|
||||
imagealphablending( $newImage, false );
|
||||
imagesavealpha( $newImage, true );
|
||||
imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
|
||||
|
||||
switch($imageType) {
|
||||
case "image/gif":
|
||||
imagegif($newImage,$image);
|
||||
break;
|
||||
case "image/pjpeg":
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
imagejpeg($newImage,$image,90);
|
||||
break;
|
||||
case "image/png":
|
||||
case "image/x-png":
|
||||
imagepng($newImage,$image);
|
||||
break;
|
||||
}
|
||||
|
||||
chmod($image, 0640);
|
||||
return $image;
|
||||
}
|
||||
|
||||
public function onUpload(PostPersistEvent $event)
|
||||
{
|
||||
$type=$event->getType();
|
||||
switch($type) {
|
||||
case "avatar":
|
||||
$file=$event->getFile();
|
||||
$filename=$file->getFilename();
|
||||
$this->session->set('uploadavatar', $filename);
|
||||
break;
|
||||
case "file":
|
||||
$file=$event->getFile();
|
||||
$filename=$file->getFilename();
|
||||
$pathname=$file->getPath();
|
||||
|
||||
// Déplacer le fichier dans la cible
|
||||
$request = $event->getRequest();
|
||||
$directory = $request->get('directory');
|
||||
$fs = new Filesystem();
|
||||
$fgexit=$fs->exists($pathname."/".$directory."/".$filename);
|
||||
$file->move($pathname."/".$directory, $filename);
|
||||
|
||||
// Création d'un thumb dans le cas d'un fichier de type imapge
|
||||
if (in_array(strtolower($file->GetExtension()), array('jpg', 'jpeg', 'jpe', 'png', 'gif', 'bmp'))) {
|
||||
$fs = new Filesystem();
|
||||
$fs->copy($pathname."/".$directory."/".$filename,$pathname."/".$directory."/thumb/".$filename);
|
||||
$max_width=350;
|
||||
$width = $this->getWidth($pathname."/".$directory."/thumb/".$filename);
|
||||
$height = $this->getHeight($pathname."/".$directory."/thumb/".$filename);
|
||||
$scale = $max_width/$width;
|
||||
$this->resizeImage($pathname."/".$directory."/thumb/".$filename,$width,$height,$scale);
|
||||
}
|
||||
|
||||
if (strpos($directory, 'widget') === 0) {
|
||||
$tmp=explode("-",$directory);
|
||||
$widgetid=$tmp[1];
|
||||
$widget=$this->em->getRepository("CadolesPortalBundle:Pagewidget")->find($widgetid);
|
||||
if($widget) {
|
||||
foreach($widget->getPage()->getGroups() as $group) {
|
||||
if($group->getFgcanshare()) {
|
||||
if($fgexit) $message="Modification fichier<br>".$filename;
|
||||
else $message="Création fichier<br>".$filename;
|
||||
|
||||
$key=$this->em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->token->getToken()->getUser()])->getKeyvalue();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key,$this->token->getToken()->getUser()->getId(),$group->getId(),$message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$response = $event->getResponse();
|
||||
$response['file'] = $filename;
|
||||
break;
|
||||
|
||||
case "blogarticle":
|
||||
$file=$event->getFile();
|
||||
$filename=$file->getFilename();
|
||||
$pathname=$file->getPath();
|
||||
|
||||
// Creation d'un thumb
|
||||
$fs = new Filesystem();
|
||||
$fs->copy($pathname."/".$filename,$pathname."/thumb-".$filename);
|
||||
$max_width=350;
|
||||
$width = $this->getWidth($pathname."/thumb-".$filename);
|
||||
$height = $this->getHeight($pathname."/thumb-".$filename);
|
||||
$scale = $max_width/$width;
|
||||
$this->resizeImage($pathname."/thumb-".$filename,$width,$height,$scale);
|
||||
|
||||
$response = $event->getResponse();
|
||||
$response['file'] = $filename;
|
||||
break;
|
||||
|
||||
default:
|
||||
$file=$event->getFile();
|
||||
$filename=$file->getFilename();
|
||||
$response = $event->getResponse();
|
||||
$response['file'] = $filename;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,185 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Ivory\CKEditorBundle\Form\Type\CKEditorType;
|
||||
|
||||
class ConfigType extends AbstractType
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->clear();
|
||||
|
||||
$config = $session->get('configs');
|
||||
|
||||
$builder->add('submit',
|
||||
SubmitType::class,
|
||||
array("label" => "Valider",
|
||||
"attr" => array("class" => "btn btn-success")));
|
||||
|
||||
$builder->add('id',
|
||||
TextType::class,
|
||||
array("label" =>"Clé",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'disabled' => true));
|
||||
|
||||
switch($options["type"]) {
|
||||
case "string":
|
||||
$builder->add('value',
|
||||
TextType::class,
|
||||
array("label" => "Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true)));
|
||||
break;
|
||||
|
||||
case "integer":
|
||||
$builder->add('value',
|
||||
IntegerType::class,
|
||||
array("label" => "Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true)));
|
||||
break;
|
||||
|
||||
case "boolean":
|
||||
if($options["key"]=="LDAPactivate"&&$config["authentication"]=="LDAP") {
|
||||
$session->getFlashBag()->add("notice", "Impossible de désactiver LDAP car votre mode d'authentification est LDAP");
|
||||
$choices=array("oui" => "1");
|
||||
}
|
||||
else
|
||||
$choices=array("oui" => "1","non" => "0");
|
||||
|
||||
$builder->add("value", ChoiceType::class,
|
||||
array("label" =>"Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true),
|
||||
"choices" => $choices));
|
||||
break;
|
||||
|
||||
case "font":
|
||||
$choices=array(
|
||||
"Helvetica" => "Helvetica",
|
||||
"Peacesans" => "Peacesans",
|
||||
"Acme-Regular" => "Acme-Regular",
|
||||
"Redressed" => "Redressed",
|
||||
"Roboto-Regular" => "Roboto-Regular",
|
||||
"Justanotherhand-Regular" => "Justanotherhand-Regular",
|
||||
"Lato-Regular" => "Lato-Regular",
|
||||
|
||||
"ABeeZee-Regular" => "ABeeZee-Regular",
|
||||
"AlfaSlabOne-Regular" => "AlfaSlabOne-Regular",
|
||||
"Anton-Regular" => "Anton-Regular",
|
||||
"FredokaOne-Regular" => "FredokaOne-Regular",
|
||||
"Overpass-Black" => "Overpass-Black",
|
||||
"Righteous-Regular" => "Righteous-Regular",
|
||||
"Signika-Regular" => "Signika-Regular",
|
||||
"Teko-Bold" => "Teko-Bold",
|
||||
"LuckiestGuy-Regular" => "LuckiestGuy-Regular",
|
||||
|
||||
"Baloo-Regular" => "Baloo-Regular",
|
||||
"CarterOne-Regular" => "CarterOne-Regular",
|
||||
"Chewy-Regular" => "Chewy-Regular",
|
||||
"Courgette-Regular" => "Courgette-Regular",
|
||||
"LexendDeca-Regular" => "LexendDeca-Regular",
|
||||
"RubikMonoOne-Regular" => "RubikMonoOne-Regular",
|
||||
"SigmarOne-Regular" => "SigmarOne-Regular",
|
||||
"Viga-Regular" => "Viga-Regular",
|
||||
);
|
||||
|
||||
$builder->add("value", ChoiceType::class,
|
||||
array("label" =>"Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true),
|
||||
"choices" => $choices));
|
||||
break;
|
||||
|
||||
case "editor":
|
||||
$builder->add('value', CKEditorType::class,
|
||||
array("config_name" => 'medium_config',
|
||||
"required" => ($options["required"]==0?false:true),
|
||||
"config" => array("height" => "250px")));
|
||||
|
||||
break;
|
||||
|
||||
case "logo":
|
||||
$builder->add('value',HiddenType::class);
|
||||
break;
|
||||
|
||||
case "header":
|
||||
$builder->add('value',HiddenType::class);
|
||||
break;
|
||||
|
||||
case "theme":
|
||||
$builder->add('value',
|
||||
TextType::class,
|
||||
array("label" => "Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true)));
|
||||
break;
|
||||
|
||||
case "color":
|
||||
$builder->add('value',
|
||||
TextType::class,
|
||||
array("label" => "Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "pick-a-color form-control"),
|
||||
'required' => ($options["required"]==0?false:true)));
|
||||
break;
|
||||
|
||||
case "permgroup":
|
||||
$choices=array(
|
||||
"NO_BODY" => "NO_BODY",
|
||||
"ROLE_USER" => "ROLE_USER",
|
||||
"ROLE_ANIM" => "ROLE_ANIM",
|
||||
);
|
||||
|
||||
$builder->add("value", ChoiceType::class,
|
||||
array("label" =>"Valeur",
|
||||
"label_attr" => array("style" => 'margin-top:15px;'),
|
||||
"attr" => array("class" => "form-control"),
|
||||
'required' => ($options["required"]==0?false:true),
|
||||
"choices" => $choices));
|
||||
break;
|
||||
}
|
||||
|
||||
$builder->add('help',
|
||||
TextareaType::class,
|
||||
array("label" =>"Aide",
|
||||
"attr" => array("class" => "form-control", "style" => "margin-top:15px; height: 200px;"),
|
||||
'required' => false,
|
||||
'disabled' => true));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'Cadoles\CoreBundle\Entity\Config',
|
||||
'key' => "string",
|
||||
'type' => "string",
|
||||
'required' => "string",
|
||||
));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class IconChoiceType extends AbstractType
|
||||
{
|
||||
/**
|
||||
* Cache for multiple icon fields or sub-requests.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $choices;
|
||||
|
||||
private $kernelRootDir;
|
||||
|
||||
public function __construct($kernelRootDir)
|
||||
{
|
||||
$this->kernelRootDir = $kernelRootDir;
|
||||
}
|
||||
|
||||
public function buildView(FormView $view, FormInterface $form, array $options)
|
||||
{
|
||||
// Pass this flag is necessary to render the label as raw.
|
||||
// See below the twig field template for more details.
|
||||
$view->vars['raw_label'] = true;
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'attr' => [
|
||||
// It's the key of the solution and can be done in many ways.
|
||||
// Now, the rendered <select> element will have a new font.
|
||||
'style' => "font-family: 'FontAwesome';",
|
||||
'class' => "select2-icon"
|
||||
],
|
||||
'choices' => $this->getFontAwesomeIconChoices(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function getParent()
|
||||
{
|
||||
return ChoiceType::class;
|
||||
}
|
||||
|
||||
protected function getFontAwesomeIconChoices()
|
||||
{
|
||||
if (null !== $this->choices) {
|
||||
return $this->choices;
|
||||
}
|
||||
|
||||
$fontAwesome = file_get_contents($this->kernelRootDir);
|
||||
$pattern = '/\.(fa-(?:\w+(?:-)?)+):before\s+{\s*content:\s*"\\\\(.+)";\s+}/';
|
||||
|
||||
if (preg_match_all($pattern, $fontAwesome, $matches, PREG_SET_ORDER)) {
|
||||
foreach ($matches as list(, $class, $code)) {
|
||||
$this->choices[$class] = $class;
|
||||
}
|
||||
ksort($this->choices);
|
||||
}
|
||||
return $this->choices;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class LoginType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('_username')
|
||||
->add('_password', PasswordType::class,[
|
||||
"attr" => array("style"=>"margin-bottom:15px;")
|
||||
])
|
||||
->add('submit', SubmitType::class,[
|
||||
"label" => "Valider",
|
||||
"attr" => array("class" => "btn btn-success form-control")
|
||||
])
|
||||
;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ColorType;
|
||||
use Cadoles\CoreBundle\Form\IconChoiceType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Ivory\CKEditorBundle\Form\Type\CKEditorType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class ScrumType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
if($options["mode"]!="view") {
|
||||
$builder
|
||||
->add('submit', SubmitType::class, [
|
||||
'label' => 'Valider',
|
||||
'attr' => ['class' => 'btn btn-success']
|
||||
]);
|
||||
|
||||
$builder
|
||||
->add('title', TextType::class, [
|
||||
'label' => 'Titre',
|
||||
'attr' => ['class' => 'form-control', 'style' => 'margin-bottom:15px']
|
||||
]);
|
||||
|
||||
|
||||
$builder
|
||||
->add('groups', Select2EntityType::class, [
|
||||
'label' => 'Visible pour les Groupes',
|
||||
'class' => 'CadolesCoreBundle:Group',
|
||||
'text_property' => 'label',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_core_user_group_ajax_list',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'label',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner un groupe',
|
||||
]);
|
||||
}
|
||||
else {
|
||||
$builder
|
||||
->add('description',CKEditorType::class,[
|
||||
'config_name' => 'full_config',
|
||||
'label' => 'Description',
|
||||
'mapped' => false,
|
||||
'required' => false,
|
||||
'config' => ['height' => '300px','filebrowserUploadRoute' => 'cadoles_core_user_scrum_upload'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'Cadoles\CoreBundle\Entity\Scrum',
|
||||
'mode' => "string"
|
||||
));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
<?php
|
||||
namespace Cadoles\CoreBundle\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\DateType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\Query\Expr\Join;
|
||||
|
||||
class UserType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('submit',
|
||||
SubmitType::class, array(
|
||||
"label" => ($options["mode"]=="delete"?"Confirmer la Suppression":"Valider"),
|
||||
"attr" => ($options["mode"]=="delete"?array("class" => "btn btn-danger"):array("class" => "btn btn-success"))
|
||||
)
|
||||
);
|
||||
|
||||
# Obligatoire
|
||||
$builder->add('username',
|
||||
TextType::class, array(
|
||||
"label" =>"Login",
|
||||
"disabled" => ($options["mode"]=="submit"?false:true),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add('lastname',
|
||||
TextType::class, array(
|
||||
"label" =>"Nom",
|
||||
"disabled" => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add('email',
|
||||
EmailType::class, array(
|
||||
"label" =>"Mail",
|
||||
"disabled" => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
|
||||
)
|
||||
);
|
||||
|
||||
if($options["access"]=="config") {
|
||||
$choices=array("Utilisateur" => "ROLE_USER","Animateur de Groupe" => "ROLE_ANIM","Modérateur" => "ROLE_MODO","Administrateur" => "ROLE_ADMIN");
|
||||
$builder->add("role",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Rôle",
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px;"),
|
||||
"required" => true,
|
||||
"disabled" => ($options["mode"]=="delete"?true:false),
|
||||
"choices" => $choices));
|
||||
}
|
||||
|
||||
if($options["mode"]!="delete"&&$options["mode_auth"]=="SQL") {
|
||||
$builder->add('password',
|
||||
RepeatedType::class, array(
|
||||
"type" => PasswordType::class,
|
||||
"required" => ($options["mode"]=="submit"?true:false),
|
||||
"options" => array("always_empty" => true),
|
||||
"first_options" => array("label" => "Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px")),
|
||||
"second_options" => array('label' => 'Confirmer Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$builder->add('firstname',
|
||||
TextType::class, [
|
||||
"label" =>"Prénom",
|
||||
"required" => false,
|
||||
"disabled" => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
|
||||
]);
|
||||
|
||||
$builder->add('avatar',HiddenType::class, array("empty_data" => "noavatar.png"));
|
||||
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'Cadoles\CoreBundle\Entity\User',
|
||||
'mode' => "string",
|
||||
'access' => "string",
|
||||
'mode_auth' => "string"
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Repository;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
class GroupRepository extends \Doctrine\ORM\EntityRepository
|
||||
{
|
||||
/* Affectation des attributs calculés */
|
||||
public function calculateGroup($user,$attruser)
|
||||
{
|
||||
$groups = $this->_em->getRepository('CadolesCoreBundle:Group')->findAll();
|
||||
$retgroups= new ArrayCollection();
|
||||
foreach($groups as $group) {
|
||||
if($group->getAttributes()) {
|
||||
|
||||
$attgroup=json_decode($group->getAttributes(),true);
|
||||
|
||||
foreach($attgroup as $key => $value) {
|
||||
if(array_key_exists($key,$attruser)) {
|
||||
if(is_array($value)) {
|
||||
foreach($value as $val) {
|
||||
if($val=="*")
|
||||
$retgroups->add($group);
|
||||
elseif($val==$attruser[$key])
|
||||
$retgroups->add($group);
|
||||
}
|
||||
}
|
||||
elseif(array_key_exists($key,$attruser)) {
|
||||
if($value=="*")
|
||||
$retgroups->add($group);
|
||||
elseif($value==$attruser[$key])
|
||||
$retgroups->add($group);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Pour chaque groupe de l'utilisateur
|
||||
$usergroups=$user->getGroups();
|
||||
|
||||
// On le détache des groupes auxquelles il n'appartient plus
|
||||
if($usergroups) {
|
||||
foreach($usergroups as $usergroup) {
|
||||
if($usergroup->getGroup()->getAttributes()!="") {
|
||||
if(!$retgroups->contains($usergroup->getGroup())) {
|
||||
$user->removeGroup($usergroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// On attache le user aux groupes
|
||||
foreach($retgroups as $retgroup) {
|
||||
$usergroup=$this->_em->getRepository('CadolesCoreBundle:UserGroup')->findBy(["user"=>$user,"group"=>$retgroup]);
|
||||
if(!$usergroup) {
|
||||
$key = Uuid::uuid4();
|
||||
$usergroup=new UserGroup();
|
||||
$usergroup->setUser($user);
|
||||
$usergroup->setGroup($retgroup);
|
||||
$usergroup->setKeyvalue($key);
|
||||
|
||||
$this->_em->persist($usergroup);
|
||||
$this->_em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
namespace Cadoles\CoreBundle\Repository;
|
||||
|
||||
class Niveau01Repository extends \Doctrine\ORM\EntityRepository
|
||||
{
|
||||
/* Affectation des attributs calculés */
|
||||
public function calculateNiveau01($attruser)
|
||||
{
|
||||
$niveau01s = $this->_em->getRepository('CadolesCoreBundle:Niveau01')->findAll();
|
||||
foreach($niveau01s as $niveau01) {
|
||||
if($niveau01->getAttributes()) {
|
||||
|
||||
$attniveau=json_decode($niveau01->getAttributes(),true);
|
||||
|
||||
foreach($attniveau as $key => $value) {
|
||||
if(array_key_exists($key,$attruser)) {
|
||||
if(is_array($value)) {
|
||||
foreach($value as $val) {
|
||||
if($val=="*")
|
||||
return $niveau01;
|
||||
elseif($val==$attruser[$key])
|
||||
return $niveau01;
|
||||
}
|
||||
}
|
||||
else if(array_key_exists($key,$attruser)) {
|
||||
if($value=="*")
|
||||
return $niveau01;
|
||||
elseif($value==$attruser[$key])
|
||||
return $niveau01;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,148 @@
|
|||
#== Home =================================================================================================================
|
||||
cadoles_core_home:
|
||||
path: /
|
||||
defaults: { _controller: CadolesCoreBundle:Core:home }
|
||||
|
||||
|
||||
|
||||
#== Theme ================================================================================================================
|
||||
|
||||
cadoles_core_theme_setconfig:
|
||||
path: /theme/setconfig
|
||||
defaults: { _controller: CadolesCoreBundle:Theme:setconfig }
|
||||
|
||||
cadoles_core_config_theme:
|
||||
path: /config/theme
|
||||
defaults: { _controller: CadolesCoreBundle:Theme:list }
|
||||
|
||||
cadoles_core_config_theme_selec:
|
||||
path: /config/theme/select/{name}
|
||||
defaults: { _controller: CadolesCoreBundle:Theme:select, name:"" }
|
||||
|
||||
|
||||
#== Security Auth ========================================================================================================
|
||||
cadoles_core_login:
|
||||
path: /login
|
||||
defaults: { _controller: CadolesCoreBundle:Security:login }
|
||||
|
||||
cadoles_core_logout:
|
||||
path: /logout
|
||||
defaults: { _controller: CadolesCoreBundle:Security:logout }
|
||||
|
||||
cadoles_core_checkuser:
|
||||
path: /checkuser
|
||||
defaults: { _controller: CadolesCoreBundle:Security:checkuser }
|
||||
|
||||
cadoles_core_kill:
|
||||
path: /kill
|
||||
defaults: { _controller: CadolesCoreBundle:Security:kill }
|
||||
|
||||
cadoles_core_ldap_login:
|
||||
path: /ldaplogin
|
||||
defaults: { _controller: CadolesCoreBundle:Security:login }
|
||||
|
||||
|
||||
#== Crop Image ===========================================================================================================
|
||||
cadoles_core_crop01:
|
||||
path: /crop01
|
||||
defaults: { _controller: CadolesCoreBundle:Crop:crop01 }
|
||||
|
||||
cadoles_core_crop02:
|
||||
path: /crop02
|
||||
defaults: { _controller: CadolesCoreBundle:Crop:crop02 }
|
||||
|
||||
|
||||
#== File =================================================================================================================
|
||||
#-- Access config
|
||||
cadoles_core_config_file_upload:
|
||||
path: /config/file/upload/{id}/{type}
|
||||
defaults: { _controller: CadolesCoreBundle:File:upload, access: config }
|
||||
|
||||
cadoles_core_config_file_delete:
|
||||
path: /config/file/delete/
|
||||
defaults: { _controller: CadolesCoreBundle:File:delete, access: config }
|
||||
|
||||
cadoles_core_config_file_view:
|
||||
path: /config/file/view/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:view, access: config }
|
||||
|
||||
cadoles_core_config_file_show:
|
||||
path: /config/file/show/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:show, access: config }
|
||||
|
||||
cadoles_core_config_file_download:
|
||||
path: /config/file/download/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:download, access: config }
|
||||
|
||||
#-- Access user
|
||||
cadoles_core_user_file_upload:
|
||||
path: /user/config/file/upload/{id}/{type}
|
||||
defaults: { _controller: CadolesCoreBundle:File:upload, access: user }
|
||||
|
||||
cadoles_core_user_file_delete:
|
||||
path: /user/file/delete
|
||||
defaults: { _controller: CadolesCoreBundle:File:delete, access: user }
|
||||
|
||||
cadoles_core_user_file_view:
|
||||
path: file/view/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:view, access: user }
|
||||
|
||||
cadoles_core_user_file_download:
|
||||
path: file/download/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:download, access: user }
|
||||
|
||||
cadoles_core_user_file_show:
|
||||
path: file/show/{directory}/{filename}
|
||||
defaults: { _controller: CadolesCoreBundle:File:show, access: user }
|
||||
|
||||
|
||||
#== Home Config ==========================================================================================================
|
||||
cadoles_core_config:
|
||||
path: /config/home
|
||||
defaults: { _controller: CadolesCoreBundle:Config:home }
|
||||
|
||||
|
||||
#== Commun Config Commun =================================================================================================
|
||||
cadoles_core_config_commun:
|
||||
path: /config/commun
|
||||
defaults: { _controller: CadolesCoreBundle:Config:list }
|
||||
|
||||
cadoles_core_config_commun_update:
|
||||
path: /config/commun/update/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Config:update }
|
||||
|
||||
cadoles_core_config_commun_delete:
|
||||
path: /config/commun/delete/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Config:delete }
|
||||
|
||||
cadoles_core_config_logo:
|
||||
path: /config/commun/logo
|
||||
defaults: { _controller: CadolesCoreBundle:Config:logo }
|
||||
|
||||
cadoles_core_config_header:
|
||||
path: /config/commun/header
|
||||
defaults: { _controller: CadolesCoreBundle:Config:header }
|
||||
|
||||
|
||||
#== User =================================================================================================================
|
||||
cadoles_core_config_user:
|
||||
path: /config/user
|
||||
defaults: { _controller: CadolesCoreBundle:User:list}
|
||||
|
||||
cadoles_core_config_user_ajax_list:
|
||||
path: /config/user/ajax/list
|
||||
defaults: { _controller: CadolesCoreBundle:User:ajaxlist }
|
||||
|
||||
#== Group =================================================================================================================
|
||||
cadoles_core_user_group_ajax_list:
|
||||
path: /user/group/ajaxlist
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxlist}
|
||||
|
||||
#== Group =================================================================================================================
|
||||
cadoles_core_api:
|
||||
path: /api
|
||||
defaults: { _controller: CadolesCoreBundle:Api:api}
|
||||
methods: ["post"]
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
services:
|
||||
cadoles.core.session.listener:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\EventListener\sessionListener
|
||||
arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
|
||||
|
||||
cadoles.core.upload.listener:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\EventListener\uploadListener
|
||||
arguments: ["@doctrine.orm.entity_manager","@security.token_storage","@session","@service_container"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload }
|
||||
|
||||
cadoles.core.upload.namer.same:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\uploadSameNamer
|
||||
|
||||
cadoles.core.password.encoder:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\passwordEncoder
|
||||
|
||||
cadoles.core.service.mail:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\mailService
|
||||
arguments: ["@mailer", "@twig"]
|
||||
|
||||
cadoles.core.service.color:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\colorService
|
||||
arguments: ['@service_container']
|
||||
|
||||
cadoles.core.icon_choice_type:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Form\IconChoiceType
|
||||
arguments: ["%kernel.root_dir%/../web/bundles/cadolescore/css/font-awesome.css"]
|
||||
tags:
|
||||
- { name: form.type }
|
||||
|
||||
cadoles.saml_user_mapper:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\samlUserMapperService
|
||||
arguments:
|
||||
- "@=service('doctrine').getManager()"
|
||||
- "@service_container"
|
||||
- "@session"
|
||||
|
||||
cadoles.saml_user_creator:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\samlUserCreatorService
|
||||
arguments:
|
||||
- "@=service('doctrine').getManager()"
|
||||
- "@service_container"
|
||||
- "@session"
|
||||
|
||||
cadoles.saml_attribute_mapper:
|
||||
public: true
|
||||
class: Cadoles\CoreBundle\Service\samlAttributeMapperService
|
||||
|
||||
Cadoles\CoreBundle\Command\InitDataCommand:
|
||||
tags:
|
||||
- { name: 'console.command', command: 'Core:InitData' }
|
||||
|
||||
Cadoles\CoreBundle\Command\PurgeFileCommand:
|
||||
tags:
|
||||
- { name: 'console.command', command: 'Core:PurgeFile' }
|
||||
|
||||
Cadoles\CoreBundle\Command\SetPasswordCommand:
|
||||
tags:
|
||||
- { name: 'console.command', command: 'Core:SetPassword' }
|
||||
|
||||
Cadoles\CoreBundle\Command\SynchroCommand:
|
||||
tags:
|
||||
- { name: 'console.command', command: 'Core:Synchro' }
|
471
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-datepicker.css
vendored
Normal file
471
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-datepicker.css
vendored
Normal file
|
@ -0,0 +1,471 @@
|
|||
/*!
|
||||
* Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker)
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
||||
*/
|
||||
.datepicker {
|
||||
padding: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
direction: ltr;
|
||||
}
|
||||
.datepicker-inline {
|
||||
width: 220px;
|
||||
}
|
||||
.datepicker.datepicker-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.datepicker.datepicker-rtl table tr td span {
|
||||
float: right;
|
||||
}
|
||||
.datepicker-dropdown {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.datepicker-dropdown:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #999;
|
||||
border-top: 0;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
}
|
||||
.datepicker-dropdown:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #fff;
|
||||
border-top: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-left:before {
|
||||
left: 6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-left:after {
|
||||
left: 7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-right:before {
|
||||
right: 6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-right:after {
|
||||
right: 7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-bottom:before {
|
||||
top: -7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-bottom:after {
|
||||
top: -6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-top:before {
|
||||
bottom: -7px;
|
||||
border-bottom: 0;
|
||||
border-top: 7px solid #999;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-top:after {
|
||||
bottom: -6px;
|
||||
border-bottom: 0;
|
||||
border-top: 6px solid #fff;
|
||||
}
|
||||
.datepicker table {
|
||||
margin: 0;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.datepicker td,
|
||||
.datepicker th {
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
.table-striped .datepicker table tr td,
|
||||
.table-striped .datepicker table tr th {
|
||||
background-color: transparent;
|
||||
}
|
||||
.datepicker table tr td.day:hover,
|
||||
.datepicker table tr td.day.focused {
|
||||
background: #eee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker table tr td.old,
|
||||
.datepicker table tr td.new {
|
||||
color: #999;
|
||||
}
|
||||
.datepicker table tr td.disabled,
|
||||
.datepicker table tr td.disabled:hover {
|
||||
background: none;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td.highlighted {
|
||||
background: #d9edf7;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.today,
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today.disabled:hover {
|
||||
background-color: #fde19a;
|
||||
background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
|
||||
background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
|
||||
border-color: #fdf59a #fdf59a #fbed50;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today:hover:hover,
|
||||
.datepicker table tr td.today.disabled:hover,
|
||||
.datepicker table tr td.today.disabled:hover:hover,
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today:hover.disabled,
|
||||
.datepicker table tr td.today.disabled.disabled,
|
||||
.datepicker table tr td.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.today[disabled],
|
||||
.datepicker table tr td.today:hover[disabled],
|
||||
.datepicker table tr td.today.disabled[disabled],
|
||||
.datepicker table tr td.today.disabled:hover[disabled] {
|
||||
background-color: #fdf59a;
|
||||
}
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active {
|
||||
background-color: #fbf069 \9;
|
||||
}
|
||||
.datepicker table tr td.today:hover:hover {
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today.active:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.datepicker table tr td.range,
|
||||
.datepicker table tr td.range:hover,
|
||||
.datepicker table tr td.range.disabled,
|
||||
.datepicker table tr td.range.disabled:hover {
|
||||
background: #eee;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today,
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover {
|
||||
background-color: #f3d17a;
|
||||
background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
|
||||
background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
|
||||
border-color: #f3e97a #f3e97a #edde34;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today:hover:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today:hover.disabled,
|
||||
.datepicker table tr td.range.today.disabled.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.range.today[disabled],
|
||||
.datepicker table tr td.range.today:hover[disabled],
|
||||
.datepicker table tr td.range.today.disabled[disabled],
|
||||
.datepicker table tr td.range.today.disabled:hover[disabled] {
|
||||
background-color: #f3e97a;
|
||||
}
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active {
|
||||
background-color: #efe24b \9;
|
||||
}
|
||||
.datepicker table tr td.selected,
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover {
|
||||
background-color: #9e9e9e;
|
||||
background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
|
||||
background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
|
||||
border-color: #808080 #808080 #595959;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected:hover:hover,
|
||||
.datepicker table tr td.selected.disabled:hover,
|
||||
.datepicker table tr td.selected.disabled:hover:hover,
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected:hover.disabled,
|
||||
.datepicker table tr td.selected.disabled.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||
.datepicker table tr td.selected[disabled],
|
||||
.datepicker table tr td.selected:hover[disabled],
|
||||
.datepicker table tr td.selected.disabled[disabled],
|
||||
.datepicker table tr td.selected.disabled:hover[disabled] {
|
||||
background-color: #808080;
|
||||
}
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active {
|
||||
background-color: #666666 \9;
|
||||
}
|
||||
.datepicker table tr td.active,
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active:hover:hover,
|
||||
.datepicker table tr td.active.disabled:hover,
|
||||
.datepicker table tr td.active.disabled:hover:hover,
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active:hover.disabled,
|
||||
.datepicker table tr td.active.disabled.disabled,
|
||||
.datepicker table tr td.active.disabled:hover.disabled,
|
||||
.datepicker table tr td.active[disabled],
|
||||
.datepicker table tr td.active:hover[disabled],
|
||||
.datepicker table tr td.active.disabled[disabled],
|
||||
.datepicker table tr td.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.datepicker table tr td span:hover,
|
||||
.datepicker table tr td span.focused {
|
||||
background: #eee;
|
||||
}
|
||||
.datepicker table tr td span.disabled,
|
||||
.datepicker table tr td span.disabled:hover {
|
||||
background: none;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td span.active,
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active:hover:hover,
|
||||
.datepicker table tr td span.active.disabled:hover,
|
||||
.datepicker table tr td span.active.disabled:hover:hover,
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active:hover.disabled,
|
||||
.datepicker table tr td span.active.disabled.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||
.datepicker table tr td span.active[disabled],
|
||||
.datepicker table tr td span.active:hover[disabled],
|
||||
.datepicker table tr td span.active.disabled[disabled],
|
||||
.datepicker table tr td span.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span.old,
|
||||
.datepicker table tr td span.new {
|
||||
color: #999;
|
||||
}
|
||||
.datepicker .datepicker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.datepicker .datepicker-switch,
|
||||
.datepicker .prev,
|
||||
.datepicker .next,
|
||||
.datepicker tfoot tr th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker .datepicker-switch:hover,
|
||||
.datepicker .prev:hover,
|
||||
.datepicker .next:hover,
|
||||
.datepicker tfoot tr th:hover {
|
||||
background: #eee;
|
||||
}
|
||||
.datepicker .cw {
|
||||
font-size: 10px;
|
||||
width: 12px;
|
||||
padding: 0 2px 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.input-append.date .add-on,
|
||||
.input-prepend.date .add-on {
|
||||
cursor: pointer;
|
||||
}
|
||||
.input-append.date .add-on i,
|
||||
.input-prepend.date .add-on i {
|
||||
margin-top: 3px;
|
||||
}
|
||||
.input-daterange input {
|
||||
text-align: center;
|
||||
}
|
||||
.input-daterange input:first-child {
|
||||
-webkit-border-radius: 3px 0 0 3px;
|
||||
-moz-border-radius: 3px 0 0 3px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.input-daterange input:last-child {
|
||||
-webkit-border-radius: 0 3px 3px 0;
|
||||
-moz-border-radius: 0 3px 3px 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.input-daterange .add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: 18px;
|
||||
padding: 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
vertical-align: middle;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-datepicker.css.map */
|
File diff suppressed because one or more lines are too long
9
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-iconpicker.min.css
vendored
Normal file
9
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-iconpicker.min.css
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*!
|
||||
* Bootstrap-iconpicker v1.7.0
|
||||
*
|
||||
* Copyright 2013-2015 Victor Valencia Rico.
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Designed and built with all the love in the world by @recktoner.
|
||||
*/.iconpicker .caret{margin-left:10px!important}.iconpicker{min-width:60px}.iconpicker input.search-control{margin-bottom:6px;margin-top:6px}div.iconpicker.left .table-icons{margin-right:auto}div.iconpicker.center .table-icons{margin-left:auto;margin-right:auto}div.iconpicker.right .table-icons{margin-left:auto}.table-icons .btn{min-height:30px;min-width:35px;text-align:center;padding:0;margin:2px}.table-icons td{min-width:39px}.popover{max-width:inherit!important}.iconpicker-popover{z-index:1050!important}.iconpicker-popover .search-control{margin-bottom:6px;margin-top:6px}
|
310
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-slider.css
vendored
Normal file
310
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-slider.css
vendored
Normal file
|
@ -0,0 +1,310 @@
|
|||
/*! =========================================================
|
||||
* bootstrap-slider.js
|
||||
*
|
||||
* Maintainers:
|
||||
* Kyle Kemp
|
||||
* - Twitter: @seiyria
|
||||
* - Github: seiyria
|
||||
* Rohit Kalkur
|
||||
* - Twitter: @Rovolutionary
|
||||
* - Github: rovolution
|
||||
*
|
||||
* =========================================================
|
||||
*
|
||||
* bootstrap-slider is released under the MIT License
|
||||
* Copyright (c) 2017 Kyle Kemp, Rohit Kalkur, and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* ========================================================= */
|
||||
.slider {
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
margin: 15px auto;
|
||||
}
|
||||
.slider.slider-horizontal {
|
||||
width: 80%;
|
||||
height: 20px;
|
||||
}
|
||||
.slider.slider-horizontal .slider-track {
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
margin-top: -5px;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
}
|
||||
.slider.slider-horizontal .slider-selection,
|
||||
.slider.slider-horizontal .slider-track-low,
|
||||
.slider.slider-horizontal .slider-track-high {
|
||||
height: 100%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.slider.slider-horizontal .slider-tick,
|
||||
.slider.slider-horizontal .slider-handle {
|
||||
margin-left: -10px;
|
||||
}
|
||||
.slider.slider-horizontal .slider-tick.triangle,
|
||||
.slider.slider-horizontal .slider-handle.triangle {
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
border-width: 0 10px 10px 10px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom-color: #0480be;
|
||||
margin-top: 0;
|
||||
}
|
||||
.slider.slider-horizontal .slider-tick-container {
|
||||
white-space: nowrap;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.slider.slider-horizontal .slider-tick-label-container {
|
||||
white-space: nowrap;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.slider.slider-horizontal .slider-tick-label-container .slider-tick-label {
|
||||
padding-top: 4px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
.slider.slider-horizontal.slider-rtl .slider-track {
|
||||
left: initial;
|
||||
right: 0;
|
||||
}
|
||||
.slider.slider-horizontal.slider-rtl .slider-tick,
|
||||
.slider.slider-horizontal.slider-rtl .slider-handle {
|
||||
margin-left: initial;
|
||||
margin-right: -10px;
|
||||
}
|
||||
.slider.slider-horizontal.slider-rtl .slider-tick-container {
|
||||
left: initial;
|
||||
right: 0;
|
||||
}
|
||||
.slider.slider-vertical {
|
||||
height: 210px;
|
||||
width: 20px;
|
||||
}
|
||||
.slider.slider-vertical .slider-track {
|
||||
width: 10px;
|
||||
height: 100%;
|
||||
left: 25%;
|
||||
top: 0;
|
||||
}
|
||||
.slider.slider-vertical .slider-selection {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.slider.slider-vertical .slider-track-low,
|
||||
.slider.slider-vertical .slider-track-high {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.slider.slider-vertical .slider-tick,
|
||||
.slider.slider-vertical .slider-handle {
|
||||
margin-top: -10px;
|
||||
}
|
||||
.slider.slider-vertical .slider-tick.triangle,
|
||||
.slider.slider-vertical .slider-handle.triangle {
|
||||
border-width: 10px 0 10px 10px;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
border-left-color: #0480be;
|
||||
border-right-color: #0480be;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.slider.slider-vertical .slider-tick-label-container {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.slider.slider-vertical .slider-tick-label-container .slider-tick-label {
|
||||
padding-left: 4px;
|
||||
}
|
||||
.slider.slider-vertical.slider-rtl .slider-track {
|
||||
left: initial;
|
||||
right: 25%;
|
||||
}
|
||||
.slider.slider-vertical.slider-rtl .slider-selection {
|
||||
left: initial;
|
||||
right: 0;
|
||||
}
|
||||
.slider.slider-vertical.slider-rtl .slider-tick.triangle,
|
||||
.slider.slider-vertical.slider-rtl .slider-handle.triangle {
|
||||
border-width: 10px 10px 10px 0;
|
||||
}
|
||||
.slider.slider-vertical.slider-rtl .slider-tick-label-container .slider-tick-label {
|
||||
padding-left: initial;
|
||||
padding-right: 4px;
|
||||
}
|
||||
.slider.slider-disabled .slider-handle {
|
||||
background-image: -webkit-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
||||
background-image: -o-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
||||
background-image: linear-gradient(to bottom, #dfdfdf 0%, #bebebe 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf', endColorstr='#ffbebebe', GradientType=0);
|
||||
}
|
||||
.slider.slider-disabled .slider-track {
|
||||
background-image: -webkit-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
||||
background-image: -o-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
||||
background-image: linear-gradient(to bottom, #e5e5e5 0%, #e9e9e9 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5', endColorstr='#ffe9e9e9', GradientType=0);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.slider input {
|
||||
display: none;
|
||||
}
|
||||
.slider .tooltip.top {
|
||||
margin-top: -36px;
|
||||
}
|
||||
.slider .tooltip-inner {
|
||||
white-space: nowrap;
|
||||
max-width: none;
|
||||
}
|
||||
.slider .hide {
|
||||
display: none;
|
||||
}
|
||||
.slider-track {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
||||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #f9f9f9 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
background: #ddd;
|
||||
}
|
||||
.slider-selection {
|
||||
position: absolute;
|
||||
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
border-radius: 4px;
|
||||
background: #149bdf;
|
||||
}
|
||||
.slider-selection.tick-slider-selection {
|
||||
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
||||
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
||||
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
||||
}
|
||||
.slider-track-low,
|
||||
.slider-track-high {
|
||||
position: absolute;
|
||||
background: transparent;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.slider-handle {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: #337ab7;
|
||||
background-image: -webkit-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
||||
background-image: -o-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
||||
background-image: linear-gradient(to bottom, #149bdf 0%, #0480be 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
|
||||
filter: none;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
||||
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
||||
border: 0px solid transparent;
|
||||
background: #149bdf;
|
||||
}
|
||||
.slider-handle.round {
|
||||
border-radius: 50%;
|
||||
}
|
||||
.slider-handle.triangle {
|
||||
background: transparent none;
|
||||
}
|
||||
.slider-handle.custom {
|
||||
background: transparent none;
|
||||
}
|
||||
.slider-handle.custom::before {
|
||||
line-height: 20px;
|
||||
font-size: 20px;
|
||||
content: '\2605';
|
||||
color: #726204;
|
||||
}
|
||||
.slider-tick {
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
border: 0px solid transparent;
|
||||
background: #ddd;
|
||||
}
|
||||
.slider-tick.round {
|
||||
border-radius: 50%;
|
||||
}
|
||||
.slider-tick.triangle {
|
||||
background: transparent none;
|
||||
}
|
||||
.slider-tick.custom {
|
||||
background: transparent none;
|
||||
}
|
||||
.slider-tick.custom::before {
|
||||
line-height: 20px;
|
||||
font-size: 20px;
|
||||
content: '\2605';
|
||||
color: #726204;
|
||||
}
|
||||
.slider-tick.in-selection {
|
||||
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
||||
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
||||
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
||||
opacity: 1;
|
||||
}
|
101
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-social.css
vendored
Normal file
101
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-social.css
vendored
Normal file
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* Social Buttons for Bootstrap
|
||||
*
|
||||
* Copyright 2013-2014 Panayiotis Lipiridis
|
||||
* Licensed under the MIT License
|
||||
*
|
||||
* https://github.com/lipis/bootstrap-social
|
||||
*/
|
||||
|
||||
.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}
|
||||
.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg :first-child{line-height:45px;width:45px;font-size:1.8em}
|
||||
.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm :first-child{line-height:28px;width:28px;font-size:1.4em}
|
||||
.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs :first-child{line-height:20px;width:20px;font-size:1.2em}
|
||||
.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}
|
||||
.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg :first-child{line-height:45px;width:45px;font-size:1.8em}
|
||||
.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm :first-child{line-height:28px;width:28px;font-size:1.4em}
|
||||
.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs :first-child{line-height:20px;width:20px;font-size:1.2em}
|
||||
.btn-social-icon :first-child{border:none;text-align:center;width:100% !important}
|
||||
.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}
|
||||
.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}
|
||||
.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}
|
||||
.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,0.2)}.btn-adn:hover,.btn-adn:focus,.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{background-image:none}
|
||||
.btn-adn.disabled,.btn-adn[disabled],fieldset[disabled] .btn-adn,.btn-adn.disabled:hover,.btn-adn[disabled]:hover,fieldset[disabled] .btn-adn:hover,.btn-adn.disabled:focus,.btn-adn[disabled]:focus,fieldset[disabled] .btn-adn:focus,.btn-adn.disabled:active,.btn-adn[disabled]:active,fieldset[disabled] .btn-adn:active,.btn-adn.disabled.active,.btn-adn[disabled].active,fieldset[disabled] .btn-adn.active{background-color:#d87a68;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-adn .badge{color:#d87a68;background-color:#fff}
|
||||
.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:hover,.btn-bitbucket:focus,.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}
|
||||
.btn-bitbucket.disabled,.btn-bitbucket[disabled],fieldset[disabled] .btn-bitbucket,.btn-bitbucket.disabled:hover,.btn-bitbucket[disabled]:hover,fieldset[disabled] .btn-bitbucket:hover,.btn-bitbucket.disabled:focus,.btn-bitbucket[disabled]:focus,fieldset[disabled] .btn-bitbucket:focus,.btn-bitbucket.disabled:active,.btn-bitbucket[disabled]:active,fieldset[disabled] .btn-bitbucket:active,.btn-bitbucket.disabled.active,.btn-bitbucket[disabled].active,fieldset[disabled] .btn-bitbucket.active{background-color:#205081;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-bitbucket .badge{color:#205081;background-color:#fff}
|
||||
.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,0.2)}.btn-dropbox:hover,.btn-dropbox:focus,.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{background-image:none}
|
||||
.btn-dropbox.disabled,.btn-dropbox[disabled],fieldset[disabled] .btn-dropbox,.btn-dropbox.disabled:hover,.btn-dropbox[disabled]:hover,fieldset[disabled] .btn-dropbox:hover,.btn-dropbox.disabled:focus,.btn-dropbox[disabled]:focus,fieldset[disabled] .btn-dropbox:focus,.btn-dropbox.disabled:active,.btn-dropbox[disabled]:active,fieldset[disabled] .btn-dropbox:active,.btn-dropbox.disabled.active,.btn-dropbox[disabled].active,fieldset[disabled] .btn-dropbox.active{background-color:#1087dd;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-dropbox .badge{color:#1087dd;background-color:#fff}
|
||||
.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,0.2)}.btn-facebook:hover,.btn-facebook:focus,.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{background-image:none}
|
||||
.btn-facebook.disabled,.btn-facebook[disabled],fieldset[disabled] .btn-facebook,.btn-facebook.disabled:hover,.btn-facebook[disabled]:hover,fieldset[disabled] .btn-facebook:hover,.btn-facebook.disabled:focus,.btn-facebook[disabled]:focus,fieldset[disabled] .btn-facebook:focus,.btn-facebook.disabled:active,.btn-facebook[disabled]:active,fieldset[disabled] .btn-facebook:active,.btn-facebook.disabled.active,.btn-facebook[disabled].active,fieldset[disabled] .btn-facebook.active{background-color:#3b5998;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-facebook .badge{color:#3b5998;background-color:#fff}
|
||||
.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,0.2)}.btn-flickr:hover,.btn-flickr:focus,.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{background-image:none}
|
||||
.btn-flickr.disabled,.btn-flickr[disabled],fieldset[disabled] .btn-flickr,.btn-flickr.disabled:hover,.btn-flickr[disabled]:hover,fieldset[disabled] .btn-flickr:hover,.btn-flickr.disabled:focus,.btn-flickr[disabled]:focus,fieldset[disabled] .btn-flickr:focus,.btn-flickr.disabled:active,.btn-flickr[disabled]:active,fieldset[disabled] .btn-flickr:active,.btn-flickr.disabled.active,.btn-flickr[disabled].active,fieldset[disabled] .btn-flickr.active{background-color:#ff0084;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-flickr .badge{color:#ff0084;background-color:#fff}
|
||||
.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,0.2)}.btn-foursquare:hover,.btn-foursquare:focus,.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{background-image:none}
|
||||
.btn-foursquare.disabled,.btn-foursquare[disabled],fieldset[disabled] .btn-foursquare,.btn-foursquare.disabled:hover,.btn-foursquare[disabled]:hover,fieldset[disabled] .btn-foursquare:hover,.btn-foursquare.disabled:focus,.btn-foursquare[disabled]:focus,fieldset[disabled] .btn-foursquare:focus,.btn-foursquare.disabled:active,.btn-foursquare[disabled]:active,fieldset[disabled] .btn-foursquare:active,.btn-foursquare.disabled.active,.btn-foursquare[disabled].active,fieldset[disabled] .btn-foursquare.active{background-color:#f94877;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-foursquare .badge{color:#f94877;background-color:#fff}
|
||||
.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,0.2)}.btn-github:hover,.btn-github:focus,.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{background-image:none}
|
||||
.btn-github.disabled,.btn-github[disabled],fieldset[disabled] .btn-github,.btn-github.disabled:hover,.btn-github[disabled]:hover,fieldset[disabled] .btn-github:hover,.btn-github.disabled:focus,.btn-github[disabled]:focus,fieldset[disabled] .btn-github:focus,.btn-github.disabled:active,.btn-github[disabled]:active,fieldset[disabled] .btn-github:active,.btn-github.disabled.active,.btn-github[disabled].active,fieldset[disabled] .btn-github.active{background-color:#444;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-github .badge{color:#444;background-color:#fff}
|
||||
.btn-google-plus{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}.btn-google-plus:hover,.btn-google-plus:focus,.btn-google-plus:active,.btn-google-plus.active,.open>.dropdown-toggle.btn-google-plus{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-google-plus:active,.btn-google-plus.active,.open>.dropdown-toggle.btn-google-plus{background-image:none}
|
||||
.btn-google-plus.disabled,.btn-google-plus[disabled],fieldset[disabled] .btn-google-plus,.btn-google-plus.disabled:hover,.btn-google-plus[disabled]:hover,fieldset[disabled] .btn-google-plus:hover,.btn-google-plus.disabled:focus,.btn-google-plus[disabled]:focus,fieldset[disabled] .btn-google-plus:focus,.btn-google-plus.disabled:active,.btn-google-plus[disabled]:active,fieldset[disabled] .btn-google-plus:active,.btn-google-plus.disabled.active,.btn-google-plus[disabled].active,fieldset[disabled] .btn-google-plus.active{background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-google-plus .badge{color:#dd4b39;background-color:#fff}
|
||||
.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,0.2)}.btn-instagram:hover,.btn-instagram:focus,.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{background-image:none}
|
||||
.btn-instagram.disabled,.btn-instagram[disabled],fieldset[disabled] .btn-instagram,.btn-instagram.disabled:hover,.btn-instagram[disabled]:hover,fieldset[disabled] .btn-instagram:hover,.btn-instagram.disabled:focus,.btn-instagram[disabled]:focus,fieldset[disabled] .btn-instagram:focus,.btn-instagram.disabled:active,.btn-instagram[disabled]:active,fieldset[disabled] .btn-instagram:active,.btn-instagram.disabled.active,.btn-instagram[disabled].active,fieldset[disabled] .btn-instagram.active{background-color:#3f729b;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-instagram .badge{color:#3f729b;background-color:#fff}
|
||||
.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,0.2)}.btn-linkedin:hover,.btn-linkedin:focus,.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{background-image:none}
|
||||
.btn-linkedin.disabled,.btn-linkedin[disabled],fieldset[disabled] .btn-linkedin,.btn-linkedin.disabled:hover,.btn-linkedin[disabled]:hover,fieldset[disabled] .btn-linkedin:hover,.btn-linkedin.disabled:focus,.btn-linkedin[disabled]:focus,fieldset[disabled] .btn-linkedin:focus,.btn-linkedin.disabled:active,.btn-linkedin[disabled]:active,fieldset[disabled] .btn-linkedin:active,.btn-linkedin.disabled.active,.btn-linkedin[disabled].active,fieldset[disabled] .btn-linkedin.active{background-color:#007bb6;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-linkedin .badge{color:#007bb6;background-color:#fff}
|
||||
.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,0.2)}.btn-microsoft:hover,.btn-microsoft:focus,.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{background-image:none}
|
||||
.btn-microsoft.disabled,.btn-microsoft[disabled],fieldset[disabled] .btn-microsoft,.btn-microsoft.disabled:hover,.btn-microsoft[disabled]:hover,fieldset[disabled] .btn-microsoft:hover,.btn-microsoft.disabled:focus,.btn-microsoft[disabled]:focus,fieldset[disabled] .btn-microsoft:focus,.btn-microsoft.disabled:active,.btn-microsoft[disabled]:active,fieldset[disabled] .btn-microsoft:active,.btn-microsoft.disabled.active,.btn-microsoft[disabled].active,fieldset[disabled] .btn-microsoft.active{background-color:#2672ec;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-microsoft .badge{color:#2672ec;background-color:#fff}
|
||||
.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,0.2)}.btn-openid:hover,.btn-openid:focus,.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{background-image:none}
|
||||
.btn-openid.disabled,.btn-openid[disabled],fieldset[disabled] .btn-openid,.btn-openid.disabled:hover,.btn-openid[disabled]:hover,fieldset[disabled] .btn-openid:hover,.btn-openid.disabled:focus,.btn-openid[disabled]:focus,fieldset[disabled] .btn-openid:focus,.btn-openid.disabled:active,.btn-openid[disabled]:active,fieldset[disabled] .btn-openid:active,.btn-openid.disabled.active,.btn-openid[disabled].active,fieldset[disabled] .btn-openid.active{background-color:#f7931e;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-openid .badge{color:#f7931e;background-color:#fff}
|
||||
.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,0.2)}.btn-pinterest:hover,.btn-pinterest:focus,.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{background-image:none}
|
||||
.btn-pinterest.disabled,.btn-pinterest[disabled],fieldset[disabled] .btn-pinterest,.btn-pinterest.disabled:hover,.btn-pinterest[disabled]:hover,fieldset[disabled] .btn-pinterest:hover,.btn-pinterest.disabled:focus,.btn-pinterest[disabled]:focus,fieldset[disabled] .btn-pinterest:focus,.btn-pinterest.disabled:active,.btn-pinterest[disabled]:active,fieldset[disabled] .btn-pinterest:active,.btn-pinterest.disabled.active,.btn-pinterest[disabled].active,fieldset[disabled] .btn-pinterest.active{background-color:#cb2027;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-pinterest .badge{color:#cb2027;background-color:#fff}
|
||||
.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,0.2)}.btn-reddit:hover,.btn-reddit:focus,.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{background-image:none}
|
||||
.btn-reddit.disabled,.btn-reddit[disabled],fieldset[disabled] .btn-reddit,.btn-reddit.disabled:hover,.btn-reddit[disabled]:hover,fieldset[disabled] .btn-reddit:hover,.btn-reddit.disabled:focus,.btn-reddit[disabled]:focus,fieldset[disabled] .btn-reddit:focus,.btn-reddit.disabled:active,.btn-reddit[disabled]:active,fieldset[disabled] .btn-reddit:active,.btn-reddit.disabled.active,.btn-reddit[disabled].active,fieldset[disabled] .btn-reddit.active{background-color:#eff7ff;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-reddit .badge{color:#eff7ff;background-color:#000}
|
||||
.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:hover,.btn-soundcloud:focus,.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}
|
||||
.btn-soundcloud.disabled,.btn-soundcloud[disabled],fieldset[disabled] .btn-soundcloud,.btn-soundcloud.disabled:hover,.btn-soundcloud[disabled]:hover,fieldset[disabled] .btn-soundcloud:hover,.btn-soundcloud.disabled:focus,.btn-soundcloud[disabled]:focus,fieldset[disabled] .btn-soundcloud:focus,.btn-soundcloud.disabled:active,.btn-soundcloud[disabled]:active,fieldset[disabled] .btn-soundcloud:active,.btn-soundcloud.disabled.active,.btn-soundcloud[disabled].active,fieldset[disabled] .btn-soundcloud.active{background-color:#f50;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-soundcloud .badge{color:#f50;background-color:#fff}
|
||||
.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,0.2)}.btn-tumblr:hover,.btn-tumblr:focus,.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{background-image:none}
|
||||
.btn-tumblr.disabled,.btn-tumblr[disabled],fieldset[disabled] .btn-tumblr,.btn-tumblr.disabled:hover,.btn-tumblr[disabled]:hover,fieldset[disabled] .btn-tumblr:hover,.btn-tumblr.disabled:focus,.btn-tumblr[disabled]:focus,fieldset[disabled] .btn-tumblr:focus,.btn-tumblr.disabled:active,.btn-tumblr[disabled]:active,fieldset[disabled] .btn-tumblr:active,.btn-tumblr.disabled.active,.btn-tumblr[disabled].active,fieldset[disabled] .btn-tumblr.active{background-color:#2c4762;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-tumblr .badge{color:#2c4762;background-color:#fff}
|
||||
.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,0.2)}.btn-twitter:hover,.btn-twitter:focus,.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{background-image:none}
|
||||
.btn-twitter.disabled,.btn-twitter[disabled],fieldset[disabled] .btn-twitter,.btn-twitter.disabled:hover,.btn-twitter[disabled]:hover,fieldset[disabled] .btn-twitter:hover,.btn-twitter.disabled:focus,.btn-twitter[disabled]:focus,fieldset[disabled] .btn-twitter:focus,.btn-twitter.disabled:active,.btn-twitter[disabled]:active,fieldset[disabled] .btn-twitter:active,.btn-twitter.disabled.active,.btn-twitter[disabled].active,fieldset[disabled] .btn-twitter.active{background-color:#55acee;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-twitter .badge{color:#55acee;background-color:#fff}
|
||||
.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,0.2)}.btn-vimeo:hover,.btn-vimeo:focus,.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{background-image:none}
|
||||
.btn-vimeo.disabled,.btn-vimeo[disabled],fieldset[disabled] .btn-vimeo,.btn-vimeo.disabled:hover,.btn-vimeo[disabled]:hover,fieldset[disabled] .btn-vimeo:hover,.btn-vimeo.disabled:focus,.btn-vimeo[disabled]:focus,fieldset[disabled] .btn-vimeo:focus,.btn-vimeo.disabled:active,.btn-vimeo[disabled]:active,fieldset[disabled] .btn-vimeo:active,.btn-vimeo.disabled.active,.btn-vimeo[disabled].active,fieldset[disabled] .btn-vimeo.active{background-color:#1ab7ea;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}
|
||||
.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,0.2)}.btn-vk:hover,.btn-vk:focus,.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{background-image:none}
|
||||
.btn-vk.disabled,.btn-vk[disabled],fieldset[disabled] .btn-vk,.btn-vk.disabled:hover,.btn-vk[disabled]:hover,fieldset[disabled] .btn-vk:hover,.btn-vk.disabled:focus,.btn-vk[disabled]:focus,fieldset[disabled] .btn-vk:focus,.btn-vk.disabled:active,.btn-vk[disabled]:active,fieldset[disabled] .btn-vk:active,.btn-vk.disabled.active,.btn-vk[disabled].active,fieldset[disabled] .btn-vk.active{background-color:#587ea3;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-vk .badge{color:#587ea3;background-color:#fff}
|
||||
.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,0.2)}.btn-yahoo:hover,.btn-yahoo:focus,.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{background-image:none}
|
||||
.btn-yahoo.disabled,.btn-yahoo[disabled],fieldset[disabled] .btn-yahoo,.btn-yahoo.disabled:hover,.btn-yahoo[disabled]:hover,fieldset[disabled] .btn-yahoo:hover,.btn-yahoo.disabled:focus,.btn-yahoo[disabled]:focus,fieldset[disabled] .btn-yahoo:focus,.btn-yahoo.disabled:active,.btn-yahoo[disabled]:active,fieldset[disabled] .btn-yahoo:active,.btn-yahoo.disabled.active,.btn-yahoo[disabled].active,fieldset[disabled] .btn-yahoo.active{background-color:#720e9e;border-color:rgba(0,0,0,0.2)}
|
||||
.btn-yahoo .badge{color:#720e9e;background-color:#fff}
|
196
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-switch.css
vendored
Normal file
196
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-switch.css
vendored
Normal file
|
@ -0,0 +1,196 @@
|
|||
/* ========================================================================
|
||||
* bootstrap-switch - v3.3.2
|
||||
* http://www.bootstrap-switch.org
|
||||
* ========================================================================
|
||||
* Copyright 2012-2013 Mattia Larentis
|
||||
*
|
||||
* ========================================================================
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================================
|
||||
*/
|
||||
|
||||
.bootstrap-switch {
|
||||
display: inline-block;
|
||||
direction: ltr;
|
||||
cursor: pointer;
|
||||
border-radius: 4px;
|
||||
border: 1px solid;
|
||||
border-color: #cccccc;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
line-height: 8px;
|
||||
z-index: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
vertical-align: middle;
|
||||
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-container {
|
||||
display: inline-block;
|
||||
top: 0;
|
||||
border-radius: 4px;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch .bootstrap-switch-label {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: inline-block !important;
|
||||
height: 100%;
|
||||
padding: 6px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off {
|
||||
text-align: center;
|
||||
z-index: 1;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {
|
||||
color: #fff;
|
||||
background: #428bca;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {
|
||||
color: #fff;
|
||||
background: #5bc0de;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {
|
||||
color: #fff;
|
||||
background: #5cb85c;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {
|
||||
background: #f0ad4e;
|
||||
color: #fff;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {
|
||||
color: #fff;
|
||||
background: #d9534f;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,
|
||||
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {
|
||||
color: #000;
|
||||
background: #eeeeee;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-label {
|
||||
text-align: center;
|
||||
margin-top: -1px;
|
||||
margin-bottom: -1px;
|
||||
z-index: 100;
|
||||
color: #333333;
|
||||
background: #ffffff;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-on {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
.bootstrap-switch .bootstrap-switch-handle-off {
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
.bootstrap-switch input[type='radio'],
|
||||
.bootstrap-switch input[type='checkbox'] {
|
||||
position: absolute !important;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
z-index: -1;
|
||||
}
|
||||
.bootstrap-switch input[type='radio'].form-control,
|
||||
.bootstrap-switch input[type='checkbox'].form-control {
|
||||
height: auto;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {
|
||||
padding: 1px 5px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {
|
||||
padding: 5px 10px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {
|
||||
padding: 6px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-disabled,
|
||||
.bootstrap-switch.bootstrap-switch-readonly,
|
||||
.bootstrap-switch.bootstrap-switch-indeterminate {
|
||||
cursor: default !important;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,
|
||||
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,
|
||||
.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,
|
||||
.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,
|
||||
.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {
|
||||
opacity: 0.5;
|
||||
filter: alpha(opacity=50);
|
||||
cursor: default !important;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {
|
||||
-webkit-transition: margin-left 0.5s;
|
||||
transition: margin-left 0.5s;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {
|
||||
border-bottom-right-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-focused {
|
||||
border-color: #66afe9;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,
|
||||
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {
|
||||
border-bottom-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,
|
||||
.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
}
|
22
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-tour.min.css
vendored
Normal file
22
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap-tour.min.css
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* ========================================================================
|
||||
* bootstrap-tour - v0.12.0
|
||||
* http://bootstraptour.com
|
||||
* ========================================================================
|
||||
* Copyright 2012-2015 Ulrich Sossou
|
||||
*
|
||||
* ========================================================================
|
||||
* Licensed under the MIT License (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://opensource.org/licenses/MIT
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================================
|
||||
*/
|
||||
|
||||
.tour-backdrop{position:absolute;z-index:1100;background-color:#000;opacity:.8;filter:alpha(opacity=80)}.popover[class*="tour-"]{z-index:1102}.popover[class*="tour-"] .popover-navigation{padding:9px 14px;overflow:hidden}.popover[class*="tour-"] .popover-navigation *[data-role="end"]{float:right}.popover[class*="tour-"] .popover-navigation *[data-role="prev"],.popover[class*="tour-"] .popover-navigation *[data-role="next"],.popover[class*="tour-"] .popover-navigation *[data-role="end"]{cursor:pointer}.popover[class*="tour-"] .popover-navigation *[data-role="prev"].disabled,.popover[class*="tour-"] .popover-navigation *[data-role="next"].disabled,.popover[class*="tour-"] .popover-navigation *[data-role="end"].disabled{cursor:default}.popover[class*="tour-"].orphan{position:fixed;margin-top:0}.popover[class*="tour-"].orphan .arrow{display:none}
|
6
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap.min.css
vendored
Normal file
6
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,314 @@
|
|||
div.dataTables_length label {
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
div.dataTables_length select {
|
||||
width: 75px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
div.dataTables_filter {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.dataTables_filter label {
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.dataTables_filter input {
|
||||
margin-left: 0.5em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
div.dataTables_info {
|
||||
padding-top: 8px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
div.dataTables_paginate {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.dataTables_paginate ul.pagination {
|
||||
margin: 2px 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
div.dataTables_length,
|
||||
div.dataTables_filter,
|
||||
div.dataTables_info,
|
||||
div.dataTables_paginate {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
table.dataTable td,
|
||||
table.dataTable th {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
|
||||
table.dataTable {
|
||||
clear: both;
|
||||
margin-top: 6px !important;
|
||||
margin-bottom: 6px !important;
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting,
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting_asc_disabled,
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting { background: url('../images/sort_both.png') no-repeat center right; }
|
||||
table.dataTable thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; }
|
||||
table.dataTable thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; }
|
||||
|
||||
table.dataTable thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; }
|
||||
table.dataTable thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; }
|
||||
|
||||
table.dataTable thead > tr > th {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
table.dataTable th:active {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Scrolling */
|
||||
div.dataTables_scrollHead table {
|
||||
margin-bottom: 0 !important;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
div.dataTables_scrollHead table thead tr:last-child th:first-child,
|
||||
div.dataTables_scrollHead table thead tr:last-child td:first-child {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody table {
|
||||
border-top: none;
|
||||
margin-top: 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody tbody tr:first-child th,
|
||||
div.dataTables_scrollBody tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
div.dataTables_scrollFoot table {
|
||||
margin-top: 0 !important;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column
|
||||
width calculations when using scrolling impossible to align columns. We have
|
||||
to use separate
|
||||
*/
|
||||
table.table-bordered.dataTable {
|
||||
border-collapse: separate !important;
|
||||
}
|
||||
table.table-bordered thead th,
|
||||
table.table-bordered thead td {
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
}
|
||||
table.table-bordered tbody th,
|
||||
table.table-bordered tbody td {
|
||||
border-left-width: 0;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
table.table-bordered th:last-child,
|
||||
table.table-bordered td:last-child {
|
||||
border-right-width: 0;
|
||||
}
|
||||
div.dataTables_scrollHead table.table-bordered {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* TableTools styles
|
||||
*/
|
||||
.table.dataTable tbody tr.active td,
|
||||
.table.dataTable tbody tr.active th {
|
||||
background-color: #08C;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.table.dataTable tbody tr.active:hover td,
|
||||
.table.dataTable tbody tr.active:hover th {
|
||||
background-color: #0075b0 !important;
|
||||
}
|
||||
|
||||
.table.dataTable tbody tr.active th > a,
|
||||
.table.dataTable tbody tr.active td > a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.table-striped.dataTable tbody tr.active:nth-child(odd) td,
|
||||
.table-striped.dataTable tbody tr.active:nth-child(odd) th {
|
||||
background-color: #017ebc;
|
||||
}
|
||||
|
||||
table.DTTT_selectable tbody tr {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.DTTT .btn:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu {
|
||||
z-index: 2003;
|
||||
}
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu a {
|
||||
color: #333 !important; /* needed only when demo_page.css is included */
|
||||
}
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu li {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu li:hover a {
|
||||
background-color: #0088cc;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
div.DTTT_collection_background {
|
||||
z-index: 2002;
|
||||
}
|
||||
|
||||
/* TableTools information display */
|
||||
div.DTTT_print_info {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 400px;
|
||||
height: 150px;
|
||||
margin-left: -200px;
|
||||
margin-top: -75px;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
padding: 10px 30px;
|
||||
opacity: 0.95;
|
||||
|
||||
background-color: white;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-radius: 6px;
|
||||
|
||||
-webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
div.DTTT_print_info h6 {
|
||||
font-weight: normal;
|
||||
font-size: 28px;
|
||||
line-height: 28px;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
div.DTTT_print_info p {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
div.dataTables_processing {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
margin-left: -50%;
|
||||
margin-top: -25px;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
text-align: center;
|
||||
font-size: 1.2em;
|
||||
background-color: white;
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));
|
||||
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||
background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* FixedColumns styles
|
||||
*/
|
||||
div.DTFC_LeftHeadWrapper table,
|
||||
div.DTFC_LeftFootWrapper table,
|
||||
div.DTFC_RightHeadWrapper table,
|
||||
div.DTFC_RightFootWrapper table,
|
||||
table.DTFC_Cloned tr.even {
|
||||
background-color: white;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.DTFC_RightHeadWrapper table ,
|
||||
div.DTFC_LeftHeadWrapper table {
|
||||
border-bottom: none !important;
|
||||
margin-bottom: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child,
|
||||
div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child,
|
||||
div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
|
||||
div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_RightBodyWrapper table,
|
||||
div.DTFC_LeftBodyWrapper table {
|
||||
border-top: none;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_RightBodyWrapper tbody tr:first-child th,
|
||||
div.DTFC_RightBodyWrapper tbody tr:first-child td,
|
||||
div.DTFC_LeftBodyWrapper tbody tr:first-child th,
|
||||
div.DTFC_LeftBodyWrapper tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
div.DTFC_RightFootWrapper table,
|
||||
div.DTFC_LeftFootWrapper table {
|
||||
border-top: none;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* FixedHeader styles
|
||||
*/
|
||||
div.FixedHeader_Cloned table {
|
||||
margin: 0 !important
|
||||
}
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
|
||||
//
|
||||
// Variables
|
||||
//
|
||||
|
||||
$open-button-background: #31b131 !default;
|
||||
$close-button-background: #d33333 !default;
|
||||
|
||||
|
||||
//
|
||||
// Mixins
|
||||
//
|
||||
@mixin control() {
|
||||
display: block;
|
||||
position: absolute;
|
||||
color: white;
|
||||
border: 2px solid white;
|
||||
border-radius: 16px;
|
||||
text-align: center;
|
||||
line-height: 14px;
|
||||
box-shadow: 0 0 3px #444;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
@mixin control-open() {
|
||||
content: '+';
|
||||
background-color: $open-button-background;
|
||||
}
|
||||
|
||||
@mixin control-close() {
|
||||
content: '-';
|
||||
background-color: $close-button-background;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Table styles
|
||||
//
|
||||
table.dataTable {
|
||||
// Styling for the `inline` type
|
||||
&.dtr-inline.collapsed > tbody {
|
||||
> tr > td:first-child,
|
||||
> tr > th:first-child {
|
||||
position: relative;
|
||||
padding-left: 30px;
|
||||
cursor: pointer;
|
||||
|
||||
&:before {
|
||||
top: 8px;
|
||||
left: 4px;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
@include control;
|
||||
@include control-open;
|
||||
}
|
||||
|
||||
&.dataTables_empty:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
> tr.parent {
|
||||
> td:first-child:before,
|
||||
> th:first-child:before {
|
||||
@include control-close;
|
||||
}
|
||||
}
|
||||
|
||||
> tr.child td:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// DataTables' `compact` styling
|
||||
&.dtr-inline.collapsed.compact > tbody {
|
||||
> tr > td:first-child,
|
||||
> tr > th:first-child {
|
||||
padding-left: 27px;
|
||||
|
||||
&:before {
|
||||
top: 5px;
|
||||
left: 4px;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
border-radius: 14px;
|
||||
line-height: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Styling for the `column` type
|
||||
&.dtr-column > tbody {
|
||||
> tr > td.control,
|
||||
> tr > th.control {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&:before {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
margin-top: -10px;
|
||||
margin-left: -10px;
|
||||
@include control;
|
||||
@include control-open;
|
||||
}
|
||||
}
|
||||
|
||||
> tr.parent {
|
||||
td.control:before,
|
||||
th.control:before {
|
||||
@include control-close;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Child row styling
|
||||
> tbody > tr.child {
|
||||
padding: 0.5em 1em;
|
||||
|
||||
&:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
ul {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
border-bottom: 1px solid #efefef;
|
||||
padding: 0.5em 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.dtr-title {
|
||||
display: inline-block;
|
||||
min-width: 75px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.dtr-data {}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,388 @@
|
|||
/*
|
||||
* The MIT License
|
||||
* Copyright (c) 2012 Matias Meno <m@tias.me>
|
||||
*/
|
||||
@-webkit-keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@-moz-keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@keyframes passing-through {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30%, 70% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); }
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(-40px);
|
||||
-moz-transform: translateY(-40px);
|
||||
-ms-transform: translateY(-40px);
|
||||
-o-transform: translateY(-40px);
|
||||
transform: translateY(-40px); } }
|
||||
@-webkit-keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@-moz-keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@keyframes slide-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateY(40px);
|
||||
-moz-transform: translateY(40px);
|
||||
-ms-transform: translateY(40px);
|
||||
-o-transform: translateY(40px);
|
||||
transform: translateY(40px); }
|
||||
30% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0px);
|
||||
-moz-transform: translateY(0px);
|
||||
-ms-transform: translateY(0px);
|
||||
-o-transform: translateY(0px);
|
||||
transform: translateY(0px); } }
|
||||
@-webkit-keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
@-moz-keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
10% {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
transform: scale(1.1); }
|
||||
20% {
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
.dropzone, .dropzone * {
|
||||
box-sizing: border-box; }
|
||||
|
||||
.dropzone {
|
||||
min-height: 150px;
|
||||
border: 2px solid rgba(0, 0, 0, 0.3);
|
||||
background: white;
|
||||
padding: 20px 20px; }
|
||||
.dropzone.dz-clickable {
|
||||
cursor: pointer; }
|
||||
.dropzone.dz-clickable * {
|
||||
cursor: default; }
|
||||
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
|
||||
cursor: pointer; }
|
||||
.dropzone.dz-started .dz-message {
|
||||
display: none; }
|
||||
.dropzone.dz-drag-hover {
|
||||
border-style: solid; }
|
||||
.dropzone.dz-drag-hover .dz-message {
|
||||
opacity: 0.5; }
|
||||
.dropzone .dz-message {
|
||||
text-align: center;
|
||||
margin: 2em 0; }
|
||||
.dropzone .dz-preview {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 16px;
|
||||
min-height: 100px; }
|
||||
.dropzone .dz-preview:hover {
|
||||
z-index: 1000; }
|
||||
.dropzone .dz-preview:hover .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview.dz-file-preview .dz-image {
|
||||
border-radius: 20px;
|
||||
background: #999;
|
||||
background: linear-gradient(to bottom, #eee, #ddd); }
|
||||
.dropzone .dz-preview.dz-file-preview .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview.dz-image-preview {
|
||||
background: white; }
|
||||
.dropzone .dz-preview.dz-image-preview .dz-details {
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
-ms-transition: opacity 0.2s linear;
|
||||
-o-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear; }
|
||||
.dropzone .dz-preview .dz-remove {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
border: none; }
|
||||
.dropzone .dz-preview .dz-remove:hover {
|
||||
text-decoration: underline; }
|
||||
.dropzone .dz-preview:hover .dz-details {
|
||||
opacity: 1; }
|
||||
.dropzone .dz-preview .dz-details {
|
||||
z-index: 20;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
font-size: 13px;
|
||||
min-width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 2em 1em;
|
||||
text-align: center;
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
line-height: 150%; }
|
||||
.dropzone .dz-preview .dz-details .dz-size {
|
||||
margin-bottom: 1em;
|
||||
font-size: 16px; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename {
|
||||
white-space: nowrap; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:hover span {
|
||||
border: 1px solid rgba(200, 200, 200, 0.8);
|
||||
background-color: rgba(255, 255, 255, 0.8); }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
|
||||
border: 1px solid transparent; }
|
||||
.dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
padding: 0 0.4em;
|
||||
border-radius: 3px; }
|
||||
.dropzone .dz-preview:hover .dz-image img {
|
||||
-webkit-transform: scale(1.05, 1.05);
|
||||
-moz-transform: scale(1.05, 1.05);
|
||||
-ms-transform: scale(1.05, 1.05);
|
||||
-o-transform: scale(1.05, 1.05);
|
||||
transform: scale(1.05, 1.05);
|
||||
-webkit-filter: blur(8px);
|
||||
filter: blur(8px); }
|
||||
.dropzone .dz-preview .dz-image {
|
||||
border-radius: 20px;
|
||||
overflow: hidden;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
position: relative;
|
||||
display: block;
|
||||
z-index: 10; }
|
||||
.dropzone .dz-preview .dz-image img {
|
||||
display: block; }
|
||||
.dropzone .dz-preview.dz-success .dz-success-mark {
|
||||
-webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||
.dropzone .dz-preview.dz-error .dz-error-mark {
|
||||
opacity: 1;
|
||||
-webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
-o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);
|
||||
animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
|
||||
.dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
z-index: 500;
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -27px;
|
||||
margin-top: -27px; }
|
||||
.dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
|
||||
display: block;
|
||||
width: 54px;
|
||||
height: 54px; }
|
||||
.dropzone .dz-preview.dz-processing .dz-progress {
|
||||
opacity: 1;
|
||||
-webkit-transition: all 0.2s linear;
|
||||
-moz-transition: all 0.2s linear;
|
||||
-ms-transition: all 0.2s linear;
|
||||
-o-transition: all 0.2s linear;
|
||||
transition: all 0.2s linear; }
|
||||
.dropzone .dz-preview.dz-complete .dz-progress {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.4s ease-in;
|
||||
-moz-transition: opacity 0.4s ease-in;
|
||||
-ms-transition: opacity 0.4s ease-in;
|
||||
-o-transition: opacity 0.4s ease-in;
|
||||
transition: opacity 0.4s ease-in; }
|
||||
.dropzone .dz-preview:not(.dz-processing) .dz-progress {
|
||||
-webkit-animation: pulse 6s ease infinite;
|
||||
-moz-animation: pulse 6s ease infinite;
|
||||
-ms-animation: pulse 6s ease infinite;
|
||||
-o-animation: pulse 6s ease infinite;
|
||||
animation: pulse 6s ease infinite; }
|
||||
.dropzone .dz-preview .dz-progress {
|
||||
opacity: 1;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
height: 16px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
width: 80px;
|
||||
margin-left: -40px;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
-webkit-transform: scale(1);
|
||||
border-radius: 8px;
|
||||
overflow: hidden; }
|
||||
.dropzone .dz-preview .dz-progress .dz-upload {
|
||||
background: #333;
|
||||
background: linear-gradient(to bottom, #666, #444);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 0;
|
||||
-webkit-transition: width 300ms ease-in-out;
|
||||
-moz-transition: width 300ms ease-in-out;
|
||||
-ms-transition: width 300ms ease-in-out;
|
||||
-o-transition: width 300ms ease-in-out;
|
||||
transition: width 300ms ease-in-out; }
|
||||
.dropzone .dz-preview.dz-error .dz-error-message {
|
||||
display: block; }
|
||||
.dropzone .dz-preview.dz-error:hover .dz-error-message {
|
||||
opacity: 1;
|
||||
pointer-events: auto; }
|
||||
.dropzone .dz-preview .dz-error-message {
|
||||
pointer-events: none;
|
||||
z-index: 1000;
|
||||
position: absolute;
|
||||
display: block;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.3s ease;
|
||||
-moz-transition: opacity 0.3s ease;
|
||||
-ms-transition: opacity 0.3s ease;
|
||||
-o-transition: opacity 0.3s ease;
|
||||
transition: opacity 0.3s ease;
|
||||
border-radius: 8px;
|
||||
font-size: 13px;
|
||||
top: 130px;
|
||||
left: -10px;
|
||||
width: 140px;
|
||||
background: #be2626;
|
||||
background: linear-gradient(to bottom, #be2626, #a92222);
|
||||
padding: 0.5em 1.2em;
|
||||
color: white; }
|
||||
.dropzone .dz-preview .dz-error-message:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 64px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #be2626; }
|
2337
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/font-awesome.css
vendored
Normal file
2337
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/font-awesome.css
vendored
Normal file
|
@ -0,0 +1,2337 @@
|
|||
/*!
|
||||
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
|
||||
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
||||
*/
|
||||
/* FONT PATH
|
||||
* -------------------------- */
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
|
||||
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
.fa {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 FontAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.fa-lg {
|
||||
font-size: 1.33333333em;
|
||||
line-height: 0.75em;
|
||||
vertical-align: -15%;
|
||||
}
|
||||
.fa-2x {
|
||||
font-size: 2em;
|
||||
}
|
||||
.fa-3x {
|
||||
font-size: 3em;
|
||||
}
|
||||
.fa-4x {
|
||||
font-size: 4em;
|
||||
}
|
||||
.fa-5x {
|
||||
font-size: 5em;
|
||||
}
|
||||
.fa-fw {
|
||||
width: 1.28571429em;
|
||||
text-align: center;
|
||||
}
|
||||
.fa-ul {
|
||||
padding-left: 0;
|
||||
margin-left: 2.14285714em;
|
||||
list-style-type: none;
|
||||
}
|
||||
.fa-ul > li {
|
||||
position: relative;
|
||||
}
|
||||
.fa-li {
|
||||
position: absolute;
|
||||
left: -2.14285714em;
|
||||
width: 2.14285714em;
|
||||
top: 0.14285714em;
|
||||
text-align: center;
|
||||
}
|
||||
.fa-li.fa-lg {
|
||||
left: -1.85714286em;
|
||||
}
|
||||
.fa-border {
|
||||
padding: .2em .25em .15em;
|
||||
border: solid 0.08em #eee;
|
||||
border-radius: .1em;
|
||||
}
|
||||
.fa-pull-left {
|
||||
float: left;
|
||||
}
|
||||
.fa-pull-right {
|
||||
float: right;
|
||||
}
|
||||
.fa.fa-pull-left {
|
||||
margin-right: .3em;
|
||||
}
|
||||
.fa.fa-pull-right {
|
||||
margin-left: .3em;
|
||||
}
|
||||
/* Deprecated as of 4.4.0 */
|
||||
.pull-right {
|
||||
float: right;
|
||||
}
|
||||
.pull-left {
|
||||
float: left;
|
||||
}
|
||||
.fa.pull-left {
|
||||
margin-right: .3em;
|
||||
}
|
||||
.fa.pull-right {
|
||||
margin-left: .3em;
|
||||
}
|
||||
.fa-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
.fa-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
.fa-rotate-90 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||
-webkit-transform: rotate(90deg);
|
||||
-ms-transform: rotate(90deg);
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
.fa-rotate-180 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||
-webkit-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.fa-rotate-270 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||
-webkit-transform: rotate(270deg);
|
||||
-ms-transform: rotate(270deg);
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
.fa-flip-horizontal {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(1, -1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
:root .fa-rotate-90,
|
||||
:root .fa-rotate-180,
|
||||
:root .fa-rotate-270,
|
||||
:root .fa-flip-horizontal,
|
||||
:root .fa-flip-vertical {
|
||||
filter: none;
|
||||
}
|
||||
.fa-stack {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.fa-stack-1x,
|
||||
.fa-stack-2x {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.fa-stack-1x {
|
||||
line-height: inherit;
|
||||
}
|
||||
.fa-stack-2x {
|
||||
font-size: 2em;
|
||||
}
|
||||
.fa-inverse {
|
||||
color: #fff;
|
||||
}
|
||||
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
|
||||
.fa-glass:before {
|
||||
content: "\f000";
|
||||
}
|
||||
.fa-music:before {
|
||||
content: "\f001";
|
||||
}
|
||||
.fa-search:before {
|
||||
content: "\f002";
|
||||
}
|
||||
.fa-envelope-o:before {
|
||||
content: "\f003";
|
||||
}
|
||||
.fa-heart:before {
|
||||
content: "\f004";
|
||||
}
|
||||
.fa-star:before {
|
||||
content: "\f005";
|
||||
}
|
||||
.fa-star-o:before {
|
||||
content: "\f006";
|
||||
}
|
||||
.fa-user:before {
|
||||
content: "\f007";
|
||||
}
|
||||
.fa-film:before {
|
||||
content: "\f008";
|
||||
}
|
||||
.fa-th-large:before {
|
||||
content: "\f009";
|
||||
}
|
||||
.fa-th:before {
|
||||
content: "\f00a";
|
||||
}
|
||||
.fa-th-list:before {
|
||||
content: "\f00b";
|
||||
}
|
||||
.fa-check:before {
|
||||
content: "\f00c";
|
||||
}
|
||||
.fa-remove:before,
|
||||
.fa-close:before,
|
||||
.fa-times:before {
|
||||
content: "\f00d";
|
||||
}
|
||||
.fa-search-plus:before {
|
||||
content: "\f00e";
|
||||
}
|
||||
.fa-search-minus:before {
|
||||
content: "\f010";
|
||||
}
|
||||
.fa-power-off:before {
|
||||
content: "\f011";
|
||||
}
|
||||
.fa-signal:before {
|
||||
content: "\f012";
|
||||
}
|
||||
.fa-gear:before,
|
||||
.fa-cog:before {
|
||||
content: "\f013";
|
||||
}
|
||||
.fa-trash-o:before {
|
||||
content: "\f014";
|
||||
}
|
||||
.fa-home:before {
|
||||
content: "\f015";
|
||||
}
|
||||
.fa-file-o:before {
|
||||
content: "\f016";
|
||||
}
|
||||
.fa-clock-o:before {
|
||||
content: "\f017";
|
||||
}
|
||||
.fa-road:before {
|
||||
content: "\f018";
|
||||
}
|
||||
.fa-download:before {
|
||||
content: "\f019";
|
||||
}
|
||||
.fa-arrow-circle-o-down:before {
|
||||
content: "\f01a";
|
||||
}
|
||||
.fa-arrow-circle-o-up:before {
|
||||
content: "\f01b";
|
||||
}
|
||||
.fa-inbox:before {
|
||||
content: "\f01c";
|
||||
}
|
||||
.fa-play-circle-o:before {
|
||||
content: "\f01d";
|
||||
}
|
||||
.fa-rotate-right:before,
|
||||
.fa-repeat:before {
|
||||
content: "\f01e";
|
||||
}
|
||||
.fa-refresh:before {
|
||||
content: "\f021";
|
||||
}
|
||||
.fa-list-alt:before {
|
||||
content: "\f022";
|
||||
}
|
||||
.fa-lock:before {
|
||||
content: "\f023";
|
||||
}
|
||||
.fa-flag:before {
|
||||
content: "\f024";
|
||||
}
|
||||
.fa-headphones:before {
|
||||
content: "\f025";
|
||||
}
|
||||
.fa-volume-off:before {
|
||||
content: "\f026";
|
||||
}
|
||||
.fa-volume-down:before {
|
||||
content: "\f027";
|
||||
}
|
||||
.fa-volume-up:before {
|
||||
content: "\f028";
|
||||
}
|
||||
.fa-qrcode:before {
|
||||
content: "\f029";
|
||||
}
|
||||
.fa-barcode:before {
|
||||
content: "\f02a";
|
||||
}
|
||||
.fa-tag:before {
|
||||
content: "\f02b";
|
||||
}
|
||||
.fa-tags:before {
|
||||
content: "\f02c";
|
||||
}
|
||||
.fa-book:before {
|
||||
content: "\f02d";
|
||||
}
|
||||
.fa-bookmark:before {
|
||||
content: "\f02e";
|
||||
}
|
||||
.fa-print:before {
|
||||
content: "\f02f";
|
||||
}
|
||||
.fa-camera:before {
|
||||
content: "\f030";
|
||||
}
|
||||
.fa-font:before {
|
||||
content: "\f031";
|
||||
}
|
||||
.fa-bold:before {
|
||||
content: "\f032";
|
||||
}
|
||||
.fa-italic:before {
|
||||
content: "\f033";
|
||||
}
|
||||
.fa-text-height:before {
|
||||
content: "\f034";
|
||||
}
|
||||
.fa-text-width:before {
|
||||
content: "\f035";
|
||||
}
|
||||
.fa-align-left:before {
|
||||
content: "\f036";
|
||||
}
|
||||
.fa-align-center:before {
|
||||
content: "\f037";
|
||||
}
|
||||
.fa-align-right:before {
|
||||
content: "\f038";
|
||||
}
|
||||
.fa-align-justify:before {
|
||||
content: "\f039";
|
||||
}
|
||||
.fa-list:before {
|
||||
content: "\f03a";
|
||||
}
|
||||
.fa-dedent:before,
|
||||
.fa-outdent:before {
|
||||
content: "\f03b";
|
||||
}
|
||||
.fa-indent:before {
|
||||
content: "\f03c";
|
||||
}
|
||||
.fa-video-camera:before {
|
||||
content: "\f03d";
|
||||
}
|
||||
.fa-photo:before,
|
||||
.fa-image:before,
|
||||
.fa-picture-o:before {
|
||||
content: "\f03e";
|
||||
}
|
||||
.fa-pencil:before {
|
||||
content: "\f040";
|
||||
}
|
||||
.fa-map-marker:before {
|
||||
content: "\f041";
|
||||
}
|
||||
.fa-adjust:before {
|
||||
content: "\f042";
|
||||
}
|
||||
.fa-tint:before {
|
||||
content: "\f043";
|
||||
}
|
||||
.fa-edit:before,
|
||||
.fa-pencil-square-o:before {
|
||||
content: "\f044";
|
||||
}
|
||||
.fa-share-square-o:before {
|
||||
content: "\f045";
|
||||
}
|
||||
.fa-check-square-o:before {
|
||||
content: "\f046";
|
||||
}
|
||||
.fa-arrows:before {
|
||||
content: "\f047";
|
||||
}
|
||||
.fa-step-backward:before {
|
||||
content: "\f048";
|
||||
}
|
||||
.fa-fast-backward:before {
|
||||
content: "\f049";
|
||||
}
|
||||
.fa-backward:before {
|
||||
content: "\f04a";
|
||||
}
|
||||
.fa-play:before {
|
||||
content: "\f04b";
|
||||
}
|
||||
.fa-pause:before {
|
||||
content: "\f04c";
|
||||
}
|
||||
.fa-stop:before {
|
||||
content: "\f04d";
|
||||
}
|
||||
.fa-forward:before {
|
||||
content: "\f04e";
|
||||
}
|
||||
.fa-fast-forward:before {
|
||||
content: "\f050";
|
||||
}
|
||||
.fa-step-forward:before {
|
||||
content: "\f051";
|
||||
}
|
||||
.fa-eject:before {
|
||||
content: "\f052";
|
||||
}
|
||||
.fa-chevron-left:before {
|
||||
content: "\f053";
|
||||
}
|
||||
.fa-chevron-right:before {
|
||||
content: "\f054";
|
||||
}
|
||||
.fa-plus-circle:before {
|
||||
content: "\f055";
|
||||
}
|
||||
.fa-minus-circle:before {
|
||||
content: "\f056";
|
||||
}
|
||||
.fa-times-circle:before {
|
||||
content: "\f057";
|
||||
}
|
||||
.fa-check-circle:before {
|
||||
content: "\f058";
|
||||
}
|
||||
.fa-question-circle:before {
|
||||
content: "\f059";
|
||||
}
|
||||
.fa-info-circle:before {
|
||||
content: "\f05a";
|
||||
}
|
||||
.fa-crosshairs:before {
|
||||
content: "\f05b";
|
||||
}
|
||||
.fa-times-circle-o:before {
|
||||
content: "\f05c";
|
||||
}
|
||||
.fa-check-circle-o:before {
|
||||
content: "\f05d";
|
||||
}
|
||||
.fa-ban:before {
|
||||
content: "\f05e";
|
||||
}
|
||||
.fa-arrow-left:before {
|
||||
content: "\f060";
|
||||
}
|
||||
.fa-arrow-right:before {
|
||||
content: "\f061";
|
||||
}
|
||||
.fa-arrow-up:before {
|
||||
content: "\f062";
|
||||
}
|
||||
.fa-arrow-down:before {
|
||||
content: "\f063";
|
||||
}
|
||||
.fa-mail-forward:before,
|
||||
.fa-share:before {
|
||||
content: "\f064";
|
||||
}
|
||||
.fa-expand:before {
|
||||
content: "\f065";
|
||||
}
|
||||
.fa-compress:before {
|
||||
content: "\f066";
|
||||
}
|
||||
.fa-plus:before {
|
||||
content: "\f067";
|
||||
}
|
||||
.fa-minus:before {
|
||||
content: "\f068";
|
||||
}
|
||||
.fa-asterisk:before {
|
||||
content: "\f069";
|
||||
}
|
||||
.fa-exclamation-circle:before {
|
||||
content: "\f06a";
|
||||
}
|
||||
.fa-gift:before {
|
||||
content: "\f06b";
|
||||
}
|
||||
.fa-leaf:before {
|
||||
content: "\f06c";
|
||||
}
|
||||
.fa-fire:before {
|
||||
content: "\f06d";
|
||||
}
|
||||
.fa-eye:before {
|
||||
content: "\f06e";
|
||||
}
|
||||
.fa-eye-slash:before {
|
||||
content: "\f070";
|
||||
}
|
||||
.fa-warning:before,
|
||||
.fa-exclamation-triangle:before {
|
||||
content: "\f071";
|
||||
}
|
||||
.fa-plane:before {
|
||||
content: "\f072";
|
||||
}
|
||||
.fa-calendar:before {
|
||||
content: "\f073";
|
||||
}
|
||||
.fa-random:before {
|
||||
content: "\f074";
|
||||
}
|
||||
.fa-comment:before {
|
||||
content: "\f075";
|
||||
}
|
||||
.fa-magnet:before {
|
||||
content: "\f076";
|
||||
}
|
||||
.fa-chevron-up:before {
|
||||
content: "\f077";
|
||||
}
|
||||
.fa-chevron-down:before {
|
||||
content: "\f078";
|
||||
}
|
||||
.fa-retweet:before {
|
||||
content: "\f079";
|
||||
}
|
||||
.fa-shopping-cart:before {
|
||||
content: "\f07a";
|
||||
}
|
||||
.fa-folder:before {
|
||||
content: "\f07b";
|
||||
}
|
||||
.fa-folder-open:before {
|
||||
content: "\f07c";
|
||||
}
|
||||
.fa-arrows-v:before {
|
||||
content: "\f07d";
|
||||
}
|
||||
.fa-arrows-h:before {
|
||||
content: "\f07e";
|
||||
}
|
||||
.fa-bar-chart-o:before,
|
||||
.fa-bar-chart:before {
|
||||
content: "\f080";
|
||||
}
|
||||
.fa-twitter-square:before {
|
||||
content: "\f081";
|
||||
}
|
||||
.fa-facebook-square:before {
|
||||
content: "\f082";
|
||||
}
|
||||
.fa-camera-retro:before {
|
||||
content: "\f083";
|
||||
}
|
||||
.fa-key:before {
|
||||
content: "\f084";
|
||||
}
|
||||
.fa-gears:before,
|
||||
.fa-cogs:before {
|
||||
content: "\f085";
|
||||
}
|
||||
.fa-comments:before {
|
||||
content: "\f086";
|
||||
}
|
||||
.fa-thumbs-o-up:before {
|
||||
content: "\f087";
|
||||
}
|
||||
.fa-thumbs-o-down:before {
|
||||
content: "\f088";
|
||||
}
|
||||
.fa-star-half:before {
|
||||
content: "\f089";
|
||||
}
|
||||
.fa-heart-o:before {
|
||||
content: "\f08a";
|
||||
}
|
||||
.fa-sign-out:before {
|
||||
content: "\f08b";
|
||||
}
|
||||
.fa-linkedin-square:before {
|
||||
content: "\f08c";
|
||||
}
|
||||
.fa-thumb-tack:before {
|
||||
content: "\f08d";
|
||||
}
|
||||
.fa-external-link:before {
|
||||
content: "\f08e";
|
||||
}
|
||||
.fa-sign-in:before {
|
||||
content: "\f090";
|
||||
}
|
||||
.fa-trophy:before {
|
||||
content: "\f091";
|
||||
}
|
||||
.fa-github-square:before {
|
||||
content: "\f092";
|
||||
}
|
||||
.fa-upload:before {
|
||||
content: "\f093";
|
||||
}
|
||||
.fa-lemon-o:before {
|
||||
content: "\f094";
|
||||
}
|
||||
.fa-phone:before {
|
||||
content: "\f095";
|
||||
}
|
||||
.fa-square-o:before {
|
||||
content: "\f096";
|
||||
}
|
||||
.fa-bookmark-o:before {
|
||||
content: "\f097";
|
||||
}
|
||||
.fa-phone-square:before {
|
||||
content: "\f098";
|
||||
}
|
||||
.fa-twitter:before {
|
||||
content: "\f099";
|
||||
}
|
||||
.fa-facebook-f:before,
|
||||
.fa-facebook:before {
|
||||
content: "\f09a";
|
||||
}
|
||||
.fa-github:before {
|
||||
content: "\f09b";
|
||||
}
|
||||
.fa-unlock:before {
|
||||
content: "\f09c";
|
||||
}
|
||||
.fa-credit-card:before {
|
||||
content: "\f09d";
|
||||
}
|
||||
.fa-feed:before,
|
||||
.fa-rss:before {
|
||||
content: "\f09e";
|
||||
}
|
||||
.fa-hdd-o:before {
|
||||
content: "\f0a0";
|
||||
}
|
||||
.fa-bullhorn:before {
|
||||
content: "\f0a1";
|
||||
}
|
||||
.fa-bell:before {
|
||||
content: "\f0f3";
|
||||
}
|
||||
.fa-certificate:before {
|
||||
content: "\f0a3";
|
||||
}
|
||||
.fa-hand-o-right:before {
|
||||
content: "\f0a4";
|
||||
}
|
||||
.fa-hand-o-left:before {
|
||||
content: "\f0a5";
|
||||
}
|
||||
.fa-hand-o-up:before {
|
||||
content: "\f0a6";
|
||||
}
|
||||
.fa-hand-o-down:before {
|
||||
content: "\f0a7";
|
||||
}
|
||||
.fa-arrow-circle-left:before {
|
||||
content: "\f0a8";
|
||||
}
|
||||
.fa-arrow-circle-right:before {
|
||||
content: "\f0a9";
|
||||
}
|
||||
.fa-arrow-circle-up:before {
|
||||
content: "\f0aa";
|
||||
}
|
||||
.fa-arrow-circle-down:before {
|
||||
content: "\f0ab";
|
||||
}
|
||||
.fa-globe:before {
|
||||
content: "\f0ac";
|
||||
}
|
||||
.fa-wrench:before {
|
||||
content: "\f0ad";
|
||||
}
|
||||
.fa-tasks:before {
|
||||
content: "\f0ae";
|
||||
}
|
||||
.fa-filter:before {
|
||||
content: "\f0b0";
|
||||
}
|
||||
.fa-briefcase:before {
|
||||
content: "\f0b1";
|
||||
}
|
||||
.fa-arrows-alt:before {
|
||||
content: "\f0b2";
|
||||
}
|
||||
.fa-group:before,
|
||||
.fa-users:before {
|
||||
content: "\f0c0";
|
||||
}
|
||||
.fa-chain:before,
|
||||
.fa-link:before {
|
||||
content: "\f0c1";
|
||||
}
|
||||
.fa-cloud:before {
|
||||
content: "\f0c2";
|
||||
}
|
||||
.fa-flask:before {
|
||||
content: "\f0c3";
|
||||
}
|
||||
.fa-cut:before,
|
||||
.fa-scissors:before {
|
||||
content: "\f0c4";
|
||||
}
|
||||
.fa-copy:before,
|
||||
.fa-files-o:before {
|
||||
content: "\f0c5";
|
||||
}
|
||||
.fa-paperclip:before {
|
||||
content: "\f0c6";
|
||||
}
|
||||
.fa-save:before,
|
||||
.fa-floppy-o:before {
|
||||
content: "\f0c7";
|
||||
}
|
||||
.fa-square:before {
|
||||
content: "\f0c8";
|
||||
}
|
||||
.fa-navicon:before,
|
||||
.fa-reorder:before,
|
||||
.fa-bars:before {
|
||||
content: "\f0c9";
|
||||
}
|
||||
.fa-list-ul:before {
|
||||
content: "\f0ca";
|
||||
}
|
||||
.fa-list-ol:before {
|
||||
content: "\f0cb";
|
||||
}
|
||||
.fa-strikethrough:before {
|
||||
content: "\f0cc";
|
||||
}
|
||||
.fa-underline:before {
|
||||
content: "\f0cd";
|
||||
}
|
||||
.fa-table:before {
|
||||
content: "\f0ce";
|
||||
}
|
||||
.fa-magic:before {
|
||||
content: "\f0d0";
|
||||
}
|
||||
.fa-truck:before {
|
||||
content: "\f0d1";
|
||||
}
|
||||
.fa-pinterest:before {
|
||||
content: "\f0d2";
|
||||
}
|
||||
.fa-pinterest-square:before {
|
||||
content: "\f0d3";
|
||||
}
|
||||
.fa-google-plus-square:before {
|
||||
content: "\f0d4";
|
||||
}
|
||||
.fa-google-plus:before {
|
||||
content: "\f0d5";
|
||||
}
|
||||
.fa-money:before {
|
||||
content: "\f0d6";
|
||||
}
|
||||
.fa-caret-down:before {
|
||||
content: "\f0d7";
|
||||
}
|
||||
.fa-caret-up:before {
|
||||
content: "\f0d8";
|
||||
}
|
||||
.fa-caret-left:before {
|
||||
content: "\f0d9";
|
||||
}
|
||||
.fa-caret-right:before {
|
||||
content: "\f0da";
|
||||
}
|
||||
.fa-columns:before {
|
||||
content: "\f0db";
|
||||
}
|
||||
.fa-unsorted:before,
|
||||
.fa-sort:before {
|
||||
content: "\f0dc";
|
||||
}
|
||||
.fa-sort-down:before,
|
||||
.fa-sort-desc:before {
|
||||
content: "\f0dd";
|
||||
}
|
||||
.fa-sort-up:before,
|
||||
.fa-sort-asc:before {
|
||||
content: "\f0de";
|
||||
}
|
||||
.fa-envelope:before {
|
||||
content: "\f0e0";
|
||||
}
|
||||
.fa-linkedin:before {
|
||||
content: "\f0e1";
|
||||
}
|
||||
.fa-rotate-left:before,
|
||||
.fa-undo:before {
|
||||
content: "\f0e2";
|
||||
}
|
||||
.fa-legal:before,
|
||||
.fa-gavel:before {
|
||||
content: "\f0e3";
|
||||
}
|
||||
.fa-dashboard:before,
|
||||
.fa-tachometer:before {
|
||||
content: "\f0e4";
|
||||
}
|
||||
.fa-comment-o:before {
|
||||
content: "\f0e5";
|
||||
}
|
||||
.fa-comments-o:before {
|
||||
content: "\f0e6";
|
||||
}
|
||||
.fa-flash:before,
|
||||
.fa-bolt:before {
|
||||
content: "\f0e7";
|
||||
}
|
||||
.fa-sitemap:before {
|
||||
content: "\f0e8";
|
||||
}
|
||||
.fa-umbrella:before {
|
||||
content: "\f0e9";
|
||||
}
|
||||
.fa-paste:before,
|
||||
.fa-clipboard:before {
|
||||
content: "\f0ea";
|
||||
}
|
||||
.fa-lightbulb-o:before {
|
||||
content: "\f0eb";
|
||||
}
|
||||
.fa-exchange:before {
|
||||
content: "\f0ec";
|
||||
}
|
||||
.fa-cloud-download:before {
|
||||
content: "\f0ed";
|
||||
}
|
||||
.fa-cloud-upload:before {
|
||||
content: "\f0ee";
|
||||
}
|
||||
.fa-user-md:before {
|
||||
content: "\f0f0";
|
||||
}
|
||||
.fa-stethoscope:before {
|
||||
content: "\f0f1";
|
||||
}
|
||||
.fa-suitcase:before {
|
||||
content: "\f0f2";
|
||||
}
|
||||
.fa-bell-o:before {
|
||||
content: "\f0a2";
|
||||
}
|
||||
.fa-coffee:before {
|
||||
content: "\f0f4";
|
||||
}
|
||||
.fa-cutlery:before {
|
||||
content: "\f0f5";
|
||||
}
|
||||
.fa-file-text-o:before {
|
||||
content: "\f0f6";
|
||||
}
|
||||
.fa-building-o:before {
|
||||
content: "\f0f7";
|
||||
}
|
||||
.fa-hospital-o:before {
|
||||
content: "\f0f8";
|
||||
}
|
||||
.fa-ambulance:before {
|
||||
content: "\f0f9";
|
||||
}
|
||||
.fa-medkit:before {
|
||||
content: "\f0fa";
|
||||
}
|
||||
.fa-fighter-jet:before {
|
||||
content: "\f0fb";
|
||||
}
|
||||
.fa-beer:before {
|
||||
content: "\f0fc";
|
||||
}
|
||||
.fa-h-square:before {
|
||||
content: "\f0fd";
|
||||
}
|
||||
.fa-plus-square:before {
|
||||
content: "\f0fe";
|
||||
}
|
||||
.fa-angle-double-left:before {
|
||||
content: "\f100";
|
||||
}
|
||||
.fa-angle-double-right:before {
|
||||
content: "\f101";
|
||||
}
|
||||
.fa-angle-double-up:before {
|
||||
content: "\f102";
|
||||
}
|
||||
.fa-angle-double-down:before {
|
||||
content: "\f103";
|
||||
}
|
||||
.fa-angle-left:before {
|
||||
content: "\f104";
|
||||
}
|
||||
.fa-angle-right:before {
|
||||
content: "\f105";
|
||||
}
|
||||
.fa-angle-up:before {
|
||||
content: "\f106";
|
||||
}
|
||||
.fa-angle-down:before {
|
||||
content: "\f107";
|
||||
}
|
||||
.fa-desktop:before {
|
||||
content: "\f108";
|
||||
}
|
||||
.fa-laptop:before {
|
||||
content: "\f109";
|
||||
}
|
||||
.fa-tablet:before {
|
||||
content: "\f10a";
|
||||
}
|
||||
.fa-mobile-phone:before,
|
||||
.fa-mobile:before {
|
||||
content: "\f10b";
|
||||
}
|
||||
.fa-circle-o:before {
|
||||
content: "\f10c";
|
||||
}
|
||||
.fa-quote-left:before {
|
||||
content: "\f10d";
|
||||
}
|
||||
.fa-quote-right:before {
|
||||
content: "\f10e";
|
||||
}
|
||||
.fa-spinner:before {
|
||||
content: "\f110";
|
||||
}
|
||||
.fa-circle:before {
|
||||
content: "\f111";
|
||||
}
|
||||
.fa-mail-reply:before,
|
||||
.fa-reply:before {
|
||||
content: "\f112";
|
||||
}
|
||||
.fa-github-alt:before {
|
||||
content: "\f113";
|
||||
}
|
||||
.fa-folder-o:before {
|
||||
content: "\f114";
|
||||
}
|
||||
.fa-folder-open-o:before {
|
||||
content: "\f115";
|
||||
}
|
||||
.fa-smile-o:before {
|
||||
content: "\f118";
|
||||
}
|
||||
.fa-frown-o:before {
|
||||
content: "\f119";
|
||||
}
|
||||
.fa-meh-o:before {
|
||||
content: "\f11a";
|
||||
}
|
||||
.fa-gamepad:before {
|
||||
content: "\f11b";
|
||||
}
|
||||
.fa-keyboard-o:before {
|
||||
content: "\f11c";
|
||||
}
|
||||
.fa-flag-o:before {
|
||||
content: "\f11d";
|
||||
}
|
||||
.fa-flag-checkered:before {
|
||||
content: "\f11e";
|
||||
}
|
||||
.fa-terminal:before {
|
||||
content: "\f120";
|
||||
}
|
||||
.fa-code:before {
|
||||
content: "\f121";
|
||||
}
|
||||
.fa-mail-reply-all:before,
|
||||
.fa-reply-all:before {
|
||||
content: "\f122";
|
||||
}
|
||||
.fa-star-half-empty:before,
|
||||
.fa-star-half-full:before,
|
||||
.fa-star-half-o:before {
|
||||
content: "\f123";
|
||||
}
|
||||
.fa-location-arrow:before {
|
||||
content: "\f124";
|
||||
}
|
||||
.fa-crop:before {
|
||||
content: "\f125";
|
||||
}
|
||||
.fa-code-fork:before {
|
||||
content: "\f126";
|
||||
}
|
||||
.fa-unlink:before,
|
||||
.fa-chain-broken:before {
|
||||
content: "\f127";
|
||||
}
|
||||
.fa-question:before {
|
||||
content: "\f128";
|
||||
}
|
||||
.fa-info:before {
|
||||
content: "\f129";
|
||||
}
|
||||
.fa-exclamation:before {
|
||||
content: "\f12a";
|
||||
}
|
||||
.fa-superscript:before {
|
||||
content: "\f12b";
|
||||
}
|
||||
.fa-subscript:before {
|
||||
content: "\f12c";
|
||||
}
|
||||
.fa-eraser:before {
|
||||
content: "\f12d";
|
||||
}
|
||||
.fa-puzzle-piece:before {
|
||||
content: "\f12e";
|
||||
}
|
||||
.fa-microphone:before {
|
||||
content: "\f130";
|
||||
}
|
||||
.fa-microphone-slash:before {
|
||||
content: "\f131";
|
||||
}
|
||||
.fa-shield:before {
|
||||
content: "\f132";
|
||||
}
|
||||
.fa-calendar-o:before {
|
||||
content: "\f133";
|
||||
}
|
||||
.fa-fire-extinguisher:before {
|
||||
content: "\f134";
|
||||
}
|
||||
.fa-rocket:before {
|
||||
content: "\f135";
|
||||
}
|
||||
.fa-maxcdn:before {
|
||||
content: "\f136";
|
||||
}
|
||||
.fa-chevron-circle-left:before {
|
||||
content: "\f137";
|
||||
}
|
||||
.fa-chevron-circle-right:before {
|
||||
content: "\f138";
|
||||
}
|
||||
.fa-chevron-circle-up:before {
|
||||
content: "\f139";
|
||||
}
|
||||
.fa-chevron-circle-down:before {
|
||||
content: "\f13a";
|
||||
}
|
||||
.fa-html5:before {
|
||||
content: "\f13b";
|
||||
}
|
||||
.fa-css3:before {
|
||||
content: "\f13c";
|
||||
}
|
||||
.fa-anchor:before {
|
||||
content: "\f13d";
|
||||
}
|
||||
.fa-unlock-alt:before {
|
||||
content: "\f13e";
|
||||
}
|
||||
.fa-bullseye:before {
|
||||
content: "\f140";
|
||||
}
|
||||
.fa-ellipsis-h:before {
|
||||
content: "\f141";
|
||||
}
|
||||
.fa-ellipsis-v:before {
|
||||
content: "\f142";
|
||||
}
|
||||
.fa-rss-square:before {
|
||||
content: "\f143";
|
||||
}
|
||||
.fa-play-circle:before {
|
||||
content: "\f144";
|
||||
}
|
||||
.fa-ticket:before {
|
||||
content: "\f145";
|
||||
}
|
||||
.fa-minus-square:before {
|
||||
content: "\f146";
|
||||
}
|
||||
.fa-minus-square-o:before {
|
||||
content: "\f147";
|
||||
}
|
||||
.fa-level-up:before {
|
||||
content: "\f148";
|
||||
}
|
||||
.fa-level-down:before {
|
||||
content: "\f149";
|
||||
}
|
||||
.fa-check-square:before {
|
||||
content: "\f14a";
|
||||
}
|
||||
.fa-pencil-square:before {
|
||||
content: "\f14b";
|
||||
}
|
||||
.fa-external-link-square:before {
|
||||
content: "\f14c";
|
||||
}
|
||||
.fa-share-square:before {
|
||||
content: "\f14d";
|
||||
}
|
||||
.fa-compass:before {
|
||||
content: "\f14e";
|
||||
}
|
||||
.fa-toggle-down:before,
|
||||
.fa-caret-square-o-down:before {
|
||||
content: "\f150";
|
||||
}
|
||||
.fa-toggle-up:before,
|
||||
.fa-caret-square-o-up:before {
|
||||
content: "\f151";
|
||||
}
|
||||
.fa-toggle-right:before,
|
||||
.fa-caret-square-o-right:before {
|
||||
content: "\f152";
|
||||
}
|
||||
.fa-euro:before,
|
||||
.fa-eur:before {
|
||||
content: "\f153";
|
||||
}
|
||||
.fa-gbp:before {
|
||||
content: "\f154";
|
||||
}
|
||||
.fa-dollar:before,
|
||||
.fa-usd:before {
|
||||
content: "\f155";
|
||||
}
|
||||
.fa-rupee:before,
|
||||
.fa-inr:before {
|
||||
content: "\f156";
|
||||
}
|
||||
.fa-cny:before,
|
||||
.fa-rmb:before,
|
||||
.fa-yen:before,
|
||||
.fa-jpy:before {
|
||||
content: "\f157";
|
||||
}
|
||||
.fa-ruble:before,
|
||||
.fa-rouble:before,
|
||||
.fa-rub:before {
|
||||
content: "\f158";
|
||||
}
|
||||
.fa-won:before,
|
||||
.fa-krw:before {
|
||||
content: "\f159";
|
||||
}
|
||||
.fa-bitcoin:before,
|
||||
.fa-btc:before {
|
||||
content: "\f15a";
|
||||
}
|
||||
.fa-file:before {
|
||||
content: "\f15b";
|
||||
}
|
||||
.fa-file-text:before {
|
||||
content: "\f15c";
|
||||
}
|
||||
.fa-sort-alpha-asc:before {
|
||||
content: "\f15d";
|
||||
}
|
||||
.fa-sort-alpha-desc:before {
|
||||
content: "\f15e";
|
||||
}
|
||||
.fa-sort-amount-asc:before {
|
||||
content: "\f160";
|
||||
}
|
||||
.fa-sort-amount-desc:before {
|
||||
content: "\f161";
|
||||
}
|
||||
.fa-sort-numeric-asc:before {
|
||||
content: "\f162";
|
||||
}
|
||||
.fa-sort-numeric-desc:before {
|
||||
content: "\f163";
|
||||
}
|
||||
.fa-thumbs-up:before {
|
||||
content: "\f164";
|
||||
}
|
||||
.fa-thumbs-down:before {
|
||||
content: "\f165";
|
||||
}
|
||||
.fa-youtube-square:before {
|
||||
content: "\f166";
|
||||
}
|
||||
.fa-youtube:before {
|
||||
content: "\f167";
|
||||
}
|
||||
.fa-xing:before {
|
||||
content: "\f168";
|
||||
}
|
||||
.fa-xing-square:before {
|
||||
content: "\f169";
|
||||
}
|
||||
.fa-youtube-play:before {
|
||||
content: "\f16a";
|
||||
}
|
||||
.fa-dropbox:before {
|
||||
content: "\f16b";
|
||||
}
|
||||
.fa-stack-overflow:before {
|
||||
content: "\f16c";
|
||||
}
|
||||
.fa-instagram:before {
|
||||
content: "\f16d";
|
||||
}
|
||||
.fa-flickr:before {
|
||||
content: "\f16e";
|
||||
}
|
||||
.fa-adn:before {
|
||||
content: "\f170";
|
||||
}
|
||||
.fa-bitbucket:before {
|
||||
content: "\f171";
|
||||
}
|
||||
.fa-bitbucket-square:before {
|
||||
content: "\f172";
|
||||
}
|
||||
.fa-tumblr:before {
|
||||
content: "\f173";
|
||||
}
|
||||
.fa-tumblr-square:before {
|
||||
content: "\f174";
|
||||
}
|
||||
.fa-long-arrow-down:before {
|
||||
content: "\f175";
|
||||
}
|
||||
.fa-long-arrow-up:before {
|
||||
content: "\f176";
|
||||
}
|
||||
.fa-long-arrow-left:before {
|
||||
content: "\f177";
|
||||
}
|
||||
.fa-long-arrow-right:before {
|
||||
content: "\f178";
|
||||
}
|
||||
.fa-apple:before {
|
||||
content: "\f179";
|
||||
}
|
||||
.fa-windows:before {
|
||||
content: "\f17a";
|
||||
}
|
||||
.fa-android:before {
|
||||
content: "\f17b";
|
||||
}
|
||||
.fa-linux:before {
|
||||
content: "\f17c";
|
||||
}
|
||||
.fa-dribbble:before {
|
||||
content: "\f17d";
|
||||
}
|
||||
.fa-skype:before {
|
||||
content: "\f17e";
|
||||
}
|
||||
.fa-foursquare:before {
|
||||
content: "\f180";
|
||||
}
|
||||
.fa-trello:before {
|
||||
content: "\f181";
|
||||
}
|
||||
.fa-female:before {
|
||||
content: "\f182";
|
||||
}
|
||||
.fa-male:before {
|
||||
content: "\f183";
|
||||
}
|
||||
.fa-gittip:before,
|
||||
.fa-gratipay:before {
|
||||
content: "\f184";
|
||||
}
|
||||
.fa-sun-o:before {
|
||||
content: "\f185";
|
||||
}
|
||||
.fa-moon-o:before {
|
||||
content: "\f186";
|
||||
}
|
||||
.fa-archive:before {
|
||||
content: "\f187";
|
||||
}
|
||||
.fa-bug:before {
|
||||
content: "\f188";
|
||||
}
|
||||
.fa-vk:before {
|
||||
content: "\f189";
|
||||
}
|
||||
.fa-weibo:before {
|
||||
content: "\f18a";
|
||||
}
|
||||
.fa-renren:before {
|
||||
content: "\f18b";
|
||||
}
|
||||
.fa-pagelines:before {
|
||||
content: "\f18c";
|
||||
}
|
||||
.fa-stack-exchange:before {
|
||||
content: "\f18d";
|
||||
}
|
||||
.fa-arrow-circle-o-right:before {
|
||||
content: "\f18e";
|
||||
}
|
||||
.fa-arrow-circle-o-left:before {
|
||||
content: "\f190";
|
||||
}
|
||||
.fa-toggle-left:before,
|
||||
.fa-caret-square-o-left:before {
|
||||
content: "\f191";
|
||||
}
|
||||
.fa-dot-circle-o:before {
|
||||
content: "\f192";
|
||||
}
|
||||
.fa-wheelchair:before {
|
||||
content: "\f193";
|
||||
}
|
||||
.fa-vimeo-square:before {
|
||||
content: "\f194";
|
||||
}
|
||||
.fa-turkish-lira:before,
|
||||
.fa-try:before {
|
||||
content: "\f195";
|
||||
}
|
||||
.fa-plus-square-o:before {
|
||||
content: "\f196";
|
||||
}
|
||||
.fa-space-shuttle:before {
|
||||
content: "\f197";
|
||||
}
|
||||
.fa-slack:before {
|
||||
content: "\f198";
|
||||
}
|
||||
.fa-envelope-square:before {
|
||||
content: "\f199";
|
||||
}
|
||||
.fa-wordpress:before {
|
||||
content: "\f19a";
|
||||
}
|
||||
.fa-openid:before {
|
||||
content: "\f19b";
|
||||
}
|
||||
.fa-institution:before,
|
||||
.fa-bank:before,
|
||||
.fa-university:before {
|
||||
content: "\f19c";
|
||||
}
|
||||
.fa-mortar-board:before,
|
||||
.fa-graduation-cap:before {
|
||||
content: "\f19d";
|
||||
}
|
||||
.fa-yahoo:before {
|
||||
content: "\f19e";
|
||||
}
|
||||
.fa-google:before {
|
||||
content: "\f1a0";
|
||||
}
|
||||
.fa-reddit:before {
|
||||
content: "\f1a1";
|
||||
}
|
||||
.fa-reddit-square:before {
|
||||
content: "\f1a2";
|
||||
}
|
||||
.fa-stumbleupon-circle:before {
|
||||
content: "\f1a3";
|
||||
}
|
||||
.fa-stumbleupon:before {
|
||||
content: "\f1a4";
|
||||
}
|
||||
.fa-delicious:before {
|
||||
content: "\f1a5";
|
||||
}
|
||||
.fa-digg:before {
|
||||
content: "\f1a6";
|
||||
}
|
||||
.fa-pied-piper-pp:before {
|
||||
content: "\f1a7";
|
||||
}
|
||||
.fa-pied-piper-alt:before {
|
||||
content: "\f1a8";
|
||||
}
|
||||
.fa-drupal:before {
|
||||
content: "\f1a9";
|
||||
}
|
||||
.fa-joomla:before {
|
||||
content: "\f1aa";
|
||||
}
|
||||
.fa-language:before {
|
||||
content: "\f1ab";
|
||||
}
|
||||
.fa-fax:before {
|
||||
content: "\f1ac";
|
||||
}
|
||||
.fa-building:before {
|
||||
content: "\f1ad";
|
||||
}
|
||||
.fa-child:before {
|
||||
content: "\f1ae";
|
||||
}
|
||||
.fa-paw:before {
|
||||
content: "\f1b0";
|
||||
}
|
||||
.fa-spoon:before {
|
||||
content: "\f1b1";
|
||||
}
|
||||
.fa-cube:before {
|
||||
content: "\f1b2";
|
||||
}
|
||||
.fa-cubes:before {
|
||||
content: "\f1b3";
|
||||
}
|
||||
.fa-behance:before {
|
||||
content: "\f1b4";
|
||||
}
|
||||
.fa-behance-square:before {
|
||||
content: "\f1b5";
|
||||
}
|
||||
.fa-steam:before {
|
||||
content: "\f1b6";
|
||||
}
|
||||
.fa-steam-square:before {
|
||||
content: "\f1b7";
|
||||
}
|
||||
.fa-recycle:before {
|
||||
content: "\f1b8";
|
||||
}
|
||||
.fa-automobile:before,
|
||||
.fa-car:before {
|
||||
content: "\f1b9";
|
||||
}
|
||||
.fa-cab:before,
|
||||
.fa-taxi:before {
|
||||
content: "\f1ba";
|
||||
}
|
||||
.fa-tree:before {
|
||||
content: "\f1bb";
|
||||
}
|
||||
.fa-spotify:before {
|
||||
content: "\f1bc";
|
||||
}
|
||||
.fa-deviantart:before {
|
||||
content: "\f1bd";
|
||||
}
|
||||
.fa-soundcloud:before {
|
||||
content: "\f1be";
|
||||
}
|
||||
.fa-database:before {
|
||||
content: "\f1c0";
|
||||
}
|
||||
.fa-file-pdf-o:before {
|
||||
content: "\f1c1";
|
||||
}
|
||||
.fa-file-word-o:before {
|
||||
content: "\f1c2";
|
||||
}
|
||||
.fa-file-excel-o:before {
|
||||
content: "\f1c3";
|
||||
}
|
||||
.fa-file-powerpoint-o:before {
|
||||
content: "\f1c4";
|
||||
}
|
||||
.fa-file-photo-o:before,
|
||||
.fa-file-picture-o:before,
|
||||
.fa-file-image-o:before {
|
||||
content: "\f1c5";
|
||||
}
|
||||
.fa-file-zip-o:before,
|
||||
.fa-file-archive-o:before {
|
||||
content: "\f1c6";
|
||||
}
|
||||
.fa-file-sound-o:before,
|
||||
.fa-file-audio-o:before {
|
||||
content: "\f1c7";
|
||||
}
|
||||
.fa-file-movie-o:before,
|
||||
.fa-file-video-o:before {
|
||||
content: "\f1c8";
|
||||
}
|
||||
.fa-file-code-o:before {
|
||||
content: "\f1c9";
|
||||
}
|
||||
.fa-vine:before {
|
||||
content: "\f1ca";
|
||||
}
|
||||
.fa-codepen:before {
|
||||
content: "\f1cb";
|
||||
}
|
||||
.fa-jsfiddle:before {
|
||||
content: "\f1cc";
|
||||
}
|
||||
.fa-life-bouy:before,
|
||||
.fa-life-buoy:before,
|
||||
.fa-life-saver:before,
|
||||
.fa-support:before,
|
||||
.fa-life-ring:before {
|
||||
content: "\f1cd";
|
||||
}
|
||||
.fa-circle-o-notch:before {
|
||||
content: "\f1ce";
|
||||
}
|
||||
.fa-ra:before,
|
||||
.fa-resistance:before,
|
||||
.fa-rebel:before {
|
||||
content: "\f1d0";
|
||||
}
|
||||
.fa-ge:before,
|
||||
.fa-empire:before {
|
||||
content: "\f1d1";
|
||||
}
|
||||
.fa-git-square:before {
|
||||
content: "\f1d2";
|
||||
}
|
||||
.fa-git:before {
|
||||
content: "\f1d3";
|
||||
}
|
||||
.fa-y-combinator-square:before,
|
||||
.fa-yc-square:before,
|
||||
.fa-hacker-news:before {
|
||||
content: "\f1d4";
|
||||
}
|
||||
.fa-tencent-weibo:before {
|
||||
content: "\f1d5";
|
||||
}
|
||||
.fa-qq:before {
|
||||
content: "\f1d6";
|
||||
}
|
||||
.fa-wechat:before,
|
||||
.fa-weixin:before {
|
||||
content: "\f1d7";
|
||||
}
|
||||
.fa-send:before,
|
||||
.fa-paper-plane:before {
|
||||
content: "\f1d8";
|
||||
}
|
||||
.fa-send-o:before,
|
||||
.fa-paper-plane-o:before {
|
||||
content: "\f1d9";
|
||||
}
|
||||
.fa-history:before {
|
||||
content: "\f1da";
|
||||
}
|
||||
.fa-circle-thin:before {
|
||||
content: "\f1db";
|
||||
}
|
||||
.fa-header:before {
|
||||
content: "\f1dc";
|
||||
}
|
||||
.fa-paragraph:before {
|
||||
content: "\f1dd";
|
||||
}
|
||||
.fa-sliders:before {
|
||||
content: "\f1de";
|
||||
}
|
||||
.fa-share-alt:before {
|
||||
content: "\f1e0";
|
||||
}
|
||||
.fa-share-alt-square:before {
|
||||
content: "\f1e1";
|
||||
}
|
||||
.fa-bomb:before {
|
||||
content: "\f1e2";
|
||||
}
|
||||
.fa-soccer-ball-o:before,
|
||||
.fa-futbol-o:before {
|
||||
content: "\f1e3";
|
||||
}
|
||||
.fa-tty:before {
|
||||
content: "\f1e4";
|
||||
}
|
||||
.fa-binoculars:before {
|
||||
content: "\f1e5";
|
||||
}
|
||||
.fa-plug:before {
|
||||
content: "\f1e6";
|
||||
}
|
||||
.fa-slideshare:before {
|
||||
content: "\f1e7";
|
||||
}
|
||||
.fa-twitch:before {
|
||||
content: "\f1e8";
|
||||
}
|
||||
.fa-yelp:before {
|
||||
content: "\f1e9";
|
||||
}
|
||||
.fa-newspaper-o:before {
|
||||
content: "\f1ea";
|
||||
}
|
||||
.fa-wifi:before {
|
||||
content: "\f1eb";
|
||||
}
|
||||
.fa-calculator:before {
|
||||
content: "\f1ec";
|
||||
}
|
||||
.fa-paypal:before {
|
||||
content: "\f1ed";
|
||||
}
|
||||
.fa-google-wallet:before {
|
||||
content: "\f1ee";
|
||||
}
|
||||
.fa-cc-visa:before {
|
||||
content: "\f1f0";
|
||||
}
|
||||
.fa-cc-mastercard:before {
|
||||
content: "\f1f1";
|
||||
}
|
||||
.fa-cc-discover:before {
|
||||
content: "\f1f2";
|
||||
}
|
||||
.fa-cc-amex:before {
|
||||
content: "\f1f3";
|
||||
}
|
||||
.fa-cc-paypal:before {
|
||||
content: "\f1f4";
|
||||
}
|
||||
.fa-cc-stripe:before {
|
||||
content: "\f1f5";
|
||||
}
|
||||
.fa-bell-slash:before {
|
||||
content: "\f1f6";
|
||||
}
|
||||
.fa-bell-slash-o:before {
|
||||
content: "\f1f7";
|
||||
}
|
||||
.fa-trash:before {
|
||||
content: "\f1f8";
|
||||
}
|
||||
.fa-copyright:before {
|
||||
content: "\f1f9";
|
||||
}
|
||||
.fa-at:before {
|
||||
content: "\f1fa";
|
||||
}
|
||||
.fa-eyedropper:before {
|
||||
content: "\f1fb";
|
||||
}
|
||||
.fa-paint-brush:before {
|
||||
content: "\f1fc";
|
||||
}
|
||||
.fa-birthday-cake:before {
|
||||
content: "\f1fd";
|
||||
}
|
||||
.fa-area-chart:before {
|
||||
content: "\f1fe";
|
||||
}
|
||||
.fa-pie-chart:before {
|
||||
content: "\f200";
|
||||
}
|
||||
.fa-line-chart:before {
|
||||
content: "\f201";
|
||||
}
|
||||
.fa-lastfm:before {
|
||||
content: "\f202";
|
||||
}
|
||||
.fa-lastfm-square:before {
|
||||
content: "\f203";
|
||||
}
|
||||
.fa-toggle-off:before {
|
||||
content: "\f204";
|
||||
}
|
||||
.fa-toggle-on:before {
|
||||
content: "\f205";
|
||||
}
|
||||
.fa-bicycle:before {
|
||||
content: "\f206";
|
||||
}
|
||||
.fa-bus:before {
|
||||
content: "\f207";
|
||||
}
|
||||
.fa-ioxhost:before {
|
||||
content: "\f208";
|
||||
}
|
||||
.fa-angellist:before {
|
||||
content: "\f209";
|
||||
}
|
||||
.fa-cc:before {
|
||||
content: "\f20a";
|
||||
}
|
||||
.fa-shekel:before,
|
||||
.fa-sheqel:before,
|
||||
.fa-ils:before {
|
||||
content: "\f20b";
|
||||
}
|
||||
.fa-meanpath:before {
|
||||
content: "\f20c";
|
||||
}
|
||||
.fa-buysellads:before {
|
||||
content: "\f20d";
|
||||
}
|
||||
.fa-connectdevelop:before {
|
||||
content: "\f20e";
|
||||
}
|
||||
.fa-dashcube:before {
|
||||
content: "\f210";
|
||||
}
|
||||
.fa-forumbee:before {
|
||||
content: "\f211";
|
||||
}
|
||||
.fa-leanpub:before {
|
||||
content: "\f212";
|
||||
}
|
||||
.fa-sellsy:before {
|
||||
content: "\f213";
|
||||
}
|
||||
.fa-shirtsinbulk:before {
|
||||
content: "\f214";
|
||||
}
|
||||
.fa-simplybuilt:before {
|
||||
content: "\f215";
|
||||
}
|
||||
.fa-skyatlas:before {
|
||||
content: "\f216";
|
||||
}
|
||||
.fa-cart-plus:before {
|
||||
content: "\f217";
|
||||
}
|
||||
.fa-cart-arrow-down:before {
|
||||
content: "\f218";
|
||||
}
|
||||
.fa-diamond:before {
|
||||
content: "\f219";
|
||||
}
|
||||
.fa-ship:before {
|
||||
content: "\f21a";
|
||||
}
|
||||
.fa-user-secret:before {
|
||||
content: "\f21b";
|
||||
}
|
||||
.fa-motorcycle:before {
|
||||
content: "\f21c";
|
||||
}
|
||||
.fa-street-view:before {
|
||||
content: "\f21d";
|
||||
}
|
||||
.fa-heartbeat:before {
|
||||
content: "\f21e";
|
||||
}
|
||||
.fa-venus:before {
|
||||
content: "\f221";
|
||||
}
|
||||
.fa-mars:before {
|
||||
content: "\f222";
|
||||
}
|
||||
.fa-mercury:before {
|
||||
content: "\f223";
|
||||
}
|
||||
.fa-intersex:before,
|
||||
.fa-transgender:before {
|
||||
content: "\f224";
|
||||
}
|
||||
.fa-transgender-alt:before {
|
||||
content: "\f225";
|
||||
}
|
||||
.fa-venus-double:before {
|
||||
content: "\f226";
|
||||
}
|
||||
.fa-mars-double:before {
|
||||
content: "\f227";
|
||||
}
|
||||
.fa-venus-mars:before {
|
||||
content: "\f228";
|
||||
}
|
||||
.fa-mars-stroke:before {
|
||||
content: "\f229";
|
||||
}
|
||||
.fa-mars-stroke-v:before {
|
||||
content: "\f22a";
|
||||
}
|
||||
.fa-mars-stroke-h:before {
|
||||
content: "\f22b";
|
||||
}
|
||||
.fa-neuter:before {
|
||||
content: "\f22c";
|
||||
}
|
||||
.fa-genderless:before {
|
||||
content: "\f22d";
|
||||
}
|
||||
.fa-facebook-official:before {
|
||||
content: "\f230";
|
||||
}
|
||||
.fa-pinterest-p:before {
|
||||
content: "\f231";
|
||||
}
|
||||
.fa-whatsapp:before {
|
||||
content: "\f232";
|
||||
}
|
||||
.fa-server:before {
|
||||
content: "\f233";
|
||||
}
|
||||
.fa-user-plus:before {
|
||||
content: "\f234";
|
||||
}
|
||||
.fa-user-times:before {
|
||||
content: "\f235";
|
||||
}
|
||||
.fa-hotel:before,
|
||||
.fa-bed:before {
|
||||
content: "\f236";
|
||||
}
|
||||
.fa-viacoin:before {
|
||||
content: "\f237";
|
||||
}
|
||||
.fa-train:before {
|
||||
content: "\f238";
|
||||
}
|
||||
.fa-subway:before {
|
||||
content: "\f239";
|
||||
}
|
||||
.fa-medium:before {
|
||||
content: "\f23a";
|
||||
}
|
||||
.fa-yc:before,
|
||||
.fa-y-combinator:before {
|
||||
content: "\f23b";
|
||||
}
|
||||
.fa-optin-monster:before {
|
||||
content: "\f23c";
|
||||
}
|
||||
.fa-opencart:before {
|
||||
content: "\f23d";
|
||||
}
|
||||
.fa-expeditedssl:before {
|
||||
content: "\f23e";
|
||||
}
|
||||
.fa-battery-4:before,
|
||||
.fa-battery:before,
|
||||
.fa-battery-full:before {
|
||||
content: "\f240";
|
||||
}
|
||||
.fa-battery-3:before,
|
||||
.fa-battery-three-quarters:before {
|
||||
content: "\f241";
|
||||
}
|
||||
.fa-battery-2:before,
|
||||
.fa-battery-half:before {
|
||||
content: "\f242";
|
||||
}
|
||||
.fa-battery-1:before,
|
||||
.fa-battery-quarter:before {
|
||||
content: "\f243";
|
||||
}
|
||||
.fa-battery-0:before,
|
||||
.fa-battery-empty:before {
|
||||
content: "\f244";
|
||||
}
|
||||
.fa-mouse-pointer:before {
|
||||
content: "\f245";
|
||||
}
|
||||
.fa-i-cursor:before {
|
||||
content: "\f246";
|
||||
}
|
||||
.fa-object-group:before {
|
||||
content: "\f247";
|
||||
}
|
||||
.fa-object-ungroup:before {
|
||||
content: "\f248";
|
||||
}
|
||||
.fa-sticky-note:before {
|
||||
content: "\f249";
|
||||
}
|
||||
.fa-sticky-note-o:before {
|
||||
content: "\f24a";
|
||||
}
|
||||
.fa-cc-jcb:before {
|
||||
content: "\f24b";
|
||||
}
|
||||
.fa-cc-diners-club:before {
|
||||
content: "\f24c";
|
||||
}
|
||||
.fa-clone:before {
|
||||
content: "\f24d";
|
||||
}
|
||||
.fa-balance-scale:before {
|
||||
content: "\f24e";
|
||||
}
|
||||
.fa-hourglass-o:before {
|
||||
content: "\f250";
|
||||
}
|
||||
.fa-hourglass-1:before,
|
||||
.fa-hourglass-start:before {
|
||||
content: "\f251";
|
||||
}
|
||||
.fa-hourglass-2:before,
|
||||
.fa-hourglass-half:before {
|
||||
content: "\f252";
|
||||
}
|
||||
.fa-hourglass-3:before,
|
||||
.fa-hourglass-end:before {
|
||||
content: "\f253";
|
||||
}
|
||||
.fa-hourglass:before {
|
||||
content: "\f254";
|
||||
}
|
||||
.fa-hand-grab-o:before,
|
||||
.fa-hand-rock-o:before {
|
||||
content: "\f255";
|
||||
}
|
||||
.fa-hand-stop-o:before,
|
||||
.fa-hand-paper-o:before {
|
||||
content: "\f256";
|
||||
}
|
||||
.fa-hand-scissors-o:before {
|
||||
content: "\f257";
|
||||
}
|
||||
.fa-hand-lizard-o:before {
|
||||
content: "\f258";
|
||||
}
|
||||
.fa-hand-spock-o:before {
|
||||
content: "\f259";
|
||||
}
|
||||
.fa-hand-pointer-o:before {
|
||||
content: "\f25a";
|
||||
}
|
||||
.fa-hand-peace-o:before {
|
||||
content: "\f25b";
|
||||
}
|
||||
.fa-trademark:before {
|
||||
content: "\f25c";
|
||||
}
|
||||
.fa-registered:before {
|
||||
content: "\f25d";
|
||||
}
|
||||
.fa-creative-commons:before {
|
||||
content: "\f25e";
|
||||
}
|
||||
.fa-gg:before {
|
||||
content: "\f260";
|
||||
}
|
||||
.fa-gg-circle:before {
|
||||
content: "\f261";
|
||||
}
|
||||
.fa-tripadvisor:before {
|
||||
content: "\f262";
|
||||
}
|
||||
.fa-odnoklassniki:before {
|
||||
content: "\f263";
|
||||
}
|
||||
.fa-odnoklassniki-square:before {
|
||||
content: "\f264";
|
||||
}
|
||||
.fa-get-pocket:before {
|
||||
content: "\f265";
|
||||
}
|
||||
.fa-wikipedia-w:before {
|
||||
content: "\f266";
|
||||
}
|
||||
.fa-safari:before {
|
||||
content: "\f267";
|
||||
}
|
||||
.fa-chrome:before {
|
||||
content: "\f268";
|
||||
}
|
||||
.fa-firefox:before {
|
||||
content: "\f269";
|
||||
}
|
||||
.fa-opera:before {
|
||||
content: "\f26a";
|
||||
}
|
||||
.fa-internet-explorer:before {
|
||||
content: "\f26b";
|
||||
}
|
||||
.fa-tv:before,
|
||||
.fa-television:before {
|
||||
content: "\f26c";
|
||||
}
|
||||
.fa-contao:before {
|
||||
content: "\f26d";
|
||||
}
|
||||
.fa-500px:before {
|
||||
content: "\f26e";
|
||||
}
|
||||
.fa-amazon:before {
|
||||
content: "\f270";
|
||||
}
|
||||
.fa-calendar-plus-o:before {
|
||||
content: "\f271";
|
||||
}
|
||||
.fa-calendar-minus-o:before {
|
||||
content: "\f272";
|
||||
}
|
||||
.fa-calendar-times-o:before {
|
||||
content: "\f273";
|
||||
}
|
||||
.fa-calendar-check-o:before {
|
||||
content: "\f274";
|
||||
}
|
||||
.fa-industry:before {
|
||||
content: "\f275";
|
||||
}
|
||||
.fa-map-pin:before {
|
||||
content: "\f276";
|
||||
}
|
||||
.fa-map-signs:before {
|
||||
content: "\f277";
|
||||
}
|
||||
.fa-map-o:before {
|
||||
content: "\f278";
|
||||
}
|
||||
.fa-map:before {
|
||||
content: "\f279";
|
||||
}
|
||||
.fa-commenting:before {
|
||||
content: "\f27a";
|
||||
}
|
||||
.fa-commenting-o:before {
|
||||
content: "\f27b";
|
||||
}
|
||||
.fa-houzz:before {
|
||||
content: "\f27c";
|
||||
}
|
||||
.fa-vimeo:before {
|
||||
content: "\f27d";
|
||||
}
|
||||
.fa-black-tie:before {
|
||||
content: "\f27e";
|
||||
}
|
||||
.fa-fonticons:before {
|
||||
content: "\f280";
|
||||
}
|
||||
.fa-reddit-alien:before {
|
||||
content: "\f281";
|
||||
}
|
||||
.fa-edge:before {
|
||||
content: "\f282";
|
||||
}
|
||||
.fa-credit-card-alt:before {
|
||||
content: "\f283";
|
||||
}
|
||||
.fa-codiepie:before {
|
||||
content: "\f284";
|
||||
}
|
||||
.fa-modx:before {
|
||||
content: "\f285";
|
||||
}
|
||||
.fa-fort-awesome:before {
|
||||
content: "\f286";
|
||||
}
|
||||
.fa-usb:before {
|
||||
content: "\f287";
|
||||
}
|
||||
.fa-product-hunt:before {
|
||||
content: "\f288";
|
||||
}
|
||||
.fa-mixcloud:before {
|
||||
content: "\f289";
|
||||
}
|
||||
.fa-scribd:before {
|
||||
content: "\f28a";
|
||||
}
|
||||
.fa-pause-circle:before {
|
||||
content: "\f28b";
|
||||
}
|
||||
.fa-pause-circle-o:before {
|
||||
content: "\f28c";
|
||||
}
|
||||
.fa-stop-circle:before {
|
||||
content: "\f28d";
|
||||
}
|
||||
.fa-stop-circle-o:before {
|
||||
content: "\f28e";
|
||||
}
|
||||
.fa-shopping-bag:before {
|
||||
content: "\f290";
|
||||
}
|
||||
.fa-shopping-basket:before {
|
||||
content: "\f291";
|
||||
}
|
||||
.fa-hashtag:before {
|
||||
content: "\f292";
|
||||
}
|
||||
.fa-bluetooth:before {
|
||||
content: "\f293";
|
||||
}
|
||||
.fa-bluetooth-b:before {
|
||||
content: "\f294";
|
||||
}
|
||||
.fa-percent:before {
|
||||
content: "\f295";
|
||||
}
|
||||
.fa-gitlab:before {
|
||||
content: "\f296";
|
||||
}
|
||||
.fa-wpbeginner:before {
|
||||
content: "\f297";
|
||||
}
|
||||
.fa-wpforms:before {
|
||||
content: "\f298";
|
||||
}
|
||||
.fa-envira:before {
|
||||
content: "\f299";
|
||||
}
|
||||
.fa-universal-access:before {
|
||||
content: "\f29a";
|
||||
}
|
||||
.fa-wheelchair-alt:before {
|
||||
content: "\f29b";
|
||||
}
|
||||
.fa-question-circle-o:before {
|
||||
content: "\f29c";
|
||||
}
|
||||
.fa-blind:before {
|
||||
content: "\f29d";
|
||||
}
|
||||
.fa-audio-description:before {
|
||||
content: "\f29e";
|
||||
}
|
||||
.fa-volume-control-phone:before {
|
||||
content: "\f2a0";
|
||||
}
|
||||
.fa-braille:before {
|
||||
content: "\f2a1";
|
||||
}
|
||||
.fa-assistive-listening-systems:before {
|
||||
content: "\f2a2";
|
||||
}
|
||||
.fa-asl-interpreting:before,
|
||||
.fa-american-sign-language-interpreting:before {
|
||||
content: "\f2a3";
|
||||
}
|
||||
.fa-deafness:before,
|
||||
.fa-hard-of-hearing:before,
|
||||
.fa-deaf:before {
|
||||
content: "\f2a4";
|
||||
}
|
||||
.fa-glide:before {
|
||||
content: "\f2a5";
|
||||
}
|
||||
.fa-glide-g:before {
|
||||
content: "\f2a6";
|
||||
}
|
||||
.fa-signing:before,
|
||||
.fa-sign-language:before {
|
||||
content: "\f2a7";
|
||||
}
|
||||
.fa-low-vision:before {
|
||||
content: "\f2a8";
|
||||
}
|
||||
.fa-viadeo:before {
|
||||
content: "\f2a9";
|
||||
}
|
||||
.fa-viadeo-square:before {
|
||||
content: "\f2aa";
|
||||
}
|
||||
.fa-snapchat:before {
|
||||
content: "\f2ab";
|
||||
}
|
||||
.fa-snapchat-ghost:before {
|
||||
content: "\f2ac";
|
||||
}
|
||||
.fa-snapchat-square:before {
|
||||
content: "\f2ad";
|
||||
}
|
||||
.fa-pied-piper:before {
|
||||
content: "\f2ae";
|
||||
}
|
||||
.fa-first-order:before {
|
||||
content: "\f2b0";
|
||||
}
|
||||
.fa-yoast:before {
|
||||
content: "\f2b1";
|
||||
}
|
||||
.fa-themeisle:before {
|
||||
content: "\f2b2";
|
||||
}
|
||||
.fa-google-plus-circle:before,
|
||||
.fa-google-plus-official:before {
|
||||
content: "\f2b3";
|
||||
}
|
||||
.fa-fa:before,
|
||||
.fa-font-awesome:before {
|
||||
content: "\f2b4";
|
||||
}
|
||||
.fa-handshake-o:before {
|
||||
content: "\f2b5";
|
||||
}
|
||||
.fa-envelope-open:before {
|
||||
content: "\f2b6";
|
||||
}
|
||||
.fa-envelope-open-o:before {
|
||||
content: "\f2b7";
|
||||
}
|
||||
.fa-linode:before {
|
||||
content: "\f2b8";
|
||||
}
|
||||
.fa-address-book:before {
|
||||
content: "\f2b9";
|
||||
}
|
||||
.fa-address-book-o:before {
|
||||
content: "\f2ba";
|
||||
}
|
||||
.fa-vcard:before,
|
||||
.fa-address-card:before {
|
||||
content: "\f2bb";
|
||||
}
|
||||
.fa-vcard-o:before,
|
||||
.fa-address-card-o:before {
|
||||
content: "\f2bc";
|
||||
}
|
||||
.fa-user-circle:before {
|
||||
content: "\f2bd";
|
||||
}
|
||||
.fa-user-circle-o:before {
|
||||
content: "\f2be";
|
||||
}
|
||||
.fa-user-o:before {
|
||||
content: "\f2c0";
|
||||
}
|
||||
.fa-id-badge:before {
|
||||
content: "\f2c1";
|
||||
}
|
||||
.fa-drivers-license:before,
|
||||
.fa-id-card:before {
|
||||
content: "\f2c2";
|
||||
}
|
||||
.fa-drivers-license-o:before,
|
||||
.fa-id-card-o:before {
|
||||
content: "\f2c3";
|
||||
}
|
||||
.fa-quora:before {
|
||||
content: "\f2c4";
|
||||
}
|
||||
.fa-free-code-camp:before {
|
||||
content: "\f2c5";
|
||||
}
|
||||
.fa-telegram:before {
|
||||
content: "\f2c6";
|
||||
}
|
||||
.fa-thermometer-4:before,
|
||||
.fa-thermometer:before,
|
||||
.fa-thermometer-full:before {
|
||||
content: "\f2c7";
|
||||
}
|
||||
.fa-thermometer-3:before,
|
||||
.fa-thermometer-three-quarters:before {
|
||||
content: "\f2c8";
|
||||
}
|
||||
.fa-thermometer-2:before,
|
||||
.fa-thermometer-half:before {
|
||||
content: "\f2c9";
|
||||
}
|
||||
.fa-thermometer-1:before,
|
||||
.fa-thermometer-quarter:before {
|
||||
content: "\f2ca";
|
||||
}
|
||||
.fa-thermometer-0:before,
|
||||
.fa-thermometer-empty:before {
|
||||
content: "\f2cb";
|
||||
}
|
||||
.fa-shower:before {
|
||||
content: "\f2cc";
|
||||
}
|
||||
.fa-bathtub:before,
|
||||
.fa-s15:before,
|
||||
.fa-bath:before {
|
||||
content: "\f2cd";
|
||||
}
|
||||
.fa-podcast:before {
|
||||
content: "\f2ce";
|
||||
}
|
||||
.fa-window-maximize:before {
|
||||
content: "\f2d0";
|
||||
}
|
||||
.fa-window-minimize:before {
|
||||
content: "\f2d1";
|
||||
}
|
||||
.fa-window-restore:before {
|
||||
content: "\f2d2";
|
||||
}
|
||||
.fa-times-rectangle:before,
|
||||
.fa-window-close:before {
|
||||
content: "\f2d3";
|
||||
}
|
||||
.fa-times-rectangle-o:before,
|
||||
.fa-window-close-o:before {
|
||||
content: "\f2d4";
|
||||
}
|
||||
.fa-bandcamp:before {
|
||||
content: "\f2d5";
|
||||
}
|
||||
.fa-grav:before {
|
||||
content: "\f2d6";
|
||||
}
|
||||
.fa-etsy:before {
|
||||
content: "\f2d7";
|
||||
}
|
||||
.fa-imdb:before {
|
||||
content: "\f2d8";
|
||||
}
|
||||
.fa-ravelry:before {
|
||||
content: "\f2d9";
|
||||
}
|
||||
.fa-eercast:before {
|
||||
content: "\f2da";
|
||||
}
|
||||
.fa-microchip:before {
|
||||
content: "\f2db";
|
||||
}
|
||||
.fa-snowflake-o:before {
|
||||
content: "\f2dc";
|
||||
}
|
||||
.fa-superpowers:before {
|
||||
content: "\f2dd";
|
||||
}
|
||||
.fa-wpexplorer:before {
|
||||
content: "\f2de";
|
||||
}
|
||||
.fa-meetup:before {
|
||||
content: "\f2e0";
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
}
|
||||
.sr-only-focusable:active,
|
||||
.sr-only-focusable:focus {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
}
|
|
@ -0,0 +1,181 @@
|
|||
@font-face {
|
||||
font-family: 'Redressed';
|
||||
src: url('../fonts/typo/Redressed-webfont.eot');
|
||||
src: url('../fonts/typo/Redressed-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/typo/Redressed-webfont.woff') format('woff'),
|
||||
url('../fonts/typo/Redressed-webfont.ttf') format('truetype'),
|
||||
url('../fonts/typo/Redressed-webfont.svg#redressedregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Acme-Regular';
|
||||
src: url('../fonts/typo/Acme-Regular-webfont.eot');
|
||||
src: url('../fonts/typo/Acme-Regular-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/typo/Acme-Regular-webfont.woff') format('woff'),
|
||||
url('../fonts/typo/Acme-Regular-webfont.ttf') format('truetype'),
|
||||
url('../fonts/typo/Acme-Regular-webfont.svg#acmeregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Peacesans';
|
||||
src: url('../fonts/typo/Peacesans-webfont.eot');
|
||||
src: url('../fonts/typo/Peacesans-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/typo/Peacesans-webfont.woff') format('woff'),
|
||||
url('../fonts/typo/Peacesans-webfont.ttf') format('truetype'),
|
||||
url('../fonts/typo/Peacesans-webfont.svg#peacesans') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Roboto-Regular';
|
||||
src: url('../fonts/typo/Roboto-Regular-webfont.eot');
|
||||
src: url('../fonts/typo/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/typo/Roboto-Regular-webfont.woff') format('woff'),
|
||||
url('../fonts/typo/Roboto-Regular-webfont.ttf') format('truetype'),
|
||||
url('../fonts/typo/Roboto-Regular-webfont.svg#peacesansregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Justanotherhand-Regular';
|
||||
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot');
|
||||
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('../fonts/typo/Justanotherhand-Regular-webfont.woff') format('woff'),
|
||||
url('../fonts/typo/Justanotherhand-Regular-webfont.ttf') format('truetype'),
|
||||
url('../fonts/typo/Justanotherhand-Regular-webfont.svg#justanotherhandregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato-Regular';
|
||||
src: url('../fonts/typo/Lato-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ABeeZee-Regular';
|
||||
src: url('../fonts/typo/ABeeZee-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'AlfaSlabOne-Regular';
|
||||
src: url('../fonts/typo/AlfaSlabOne-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Anton-Regular';
|
||||
src: url('../fonts/typo/Anton-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'FredokaOne-Regular';
|
||||
src: url('../fonts/typo/FredokaOne-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Overpass-Black';
|
||||
src: url('../fonts/typo/Overpass-Black.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Righteous-Regular';
|
||||
src: url('../fonts/typo/Righteous-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Signika-Regular';
|
||||
src: url('../fonts/typo/Signika-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Teko-Bold';
|
||||
src: url('../fonts/typo/Teko-Bold.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LuckiestGuy-Regular';
|
||||
src: url('../fonts/typo/LuckiestGuy-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Baloo-Regular';
|
||||
src: url('../fonts/typo/Baloo-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'CarterOne-Regular';
|
||||
src: url('../fonts/typo/CarterOne-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Chewy-Regular';
|
||||
src: url('../fonts/typo/Chewy-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Courgette-Regular';
|
||||
src: url('../fonts/typo/Courgette-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'LexendDeca-Regular';
|
||||
src: url('../fonts/typo/LexendDeca-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'RubikMonoOne-Regular';
|
||||
src: url('../fonts/typo/RubikMonoOne-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'SigmarOne-Regular';
|
||||
src: url('../fonts/typo/SigmarOne-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Viga-Regular';
|
||||
src: url('../fonts/typo/Viga-Regular.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -0,0 +1,1124 @@
|
|||
/*!
|
||||
* FullCalendar v2.6.1 Stylesheet
|
||||
* Docs & License: http://fullcalendar.io/
|
||||
* (c) 2015 Adam Shaw
|
||||
*/
|
||||
|
||||
|
||||
.fc {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
body .fc { /* extra precedence to overcome jqui */
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Colors
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-unthemed th,
|
||||
.fc-unthemed td,
|
||||
.fc-unthemed thead,
|
||||
.fc-unthemed tbody,
|
||||
.fc-unthemed .fc-divider,
|
||||
.fc-unthemed .fc-row,
|
||||
.fc-unthemed .fc-popover {
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.fc-unthemed .fc-popover {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.fc-unthemed .fc-divider,
|
||||
.fc-unthemed .fc-popover .fc-header {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.fc-unthemed .fc-popover .fc-header .fc-close {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.fc-unthemed .fc-today {
|
||||
background: #fcf8e3;
|
||||
}
|
||||
|
||||
.fc-highlight { /* when user is selecting cells */
|
||||
background: #bce8f1;
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
}
|
||||
|
||||
.fc-bgevent { /* default look for background events */
|
||||
background: rgb(143, 223, 130);
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
}
|
||||
|
||||
.fc-nonbusiness { /* default look for non-business-hours areas */
|
||||
/* will inherit .fc-bgevent's styles */
|
||||
background: #d7d7d7;
|
||||
}
|
||||
|
||||
|
||||
/* Icons (inline elements with styled text that mock arrow icons)
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-icon {
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
line-height: 1em;
|
||||
font-size: 1em;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
|
||||
/* don't allow browser text-selection */
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/*
|
||||
Acceptable font-family overrides for individual icons:
|
||||
"Arial", sans-serif
|
||||
"Times New Roman", serif
|
||||
|
||||
NOTE: use percentage font sizes or else old IE chokes
|
||||
*/
|
||||
|
||||
.fc-icon:after {
|
||||
position: relative;
|
||||
margin: 0 -1em; /* ensures character will be centered, regardless of width */
|
||||
}
|
||||
|
||||
.fc-icon-left-single-arrow:after {
|
||||
content: "\02039";
|
||||
font-weight: bold;
|
||||
font-size: 200%;
|
||||
top: -7%;
|
||||
left: 3%;
|
||||
}
|
||||
|
||||
.fc-icon-right-single-arrow:after {
|
||||
content: "\0203A";
|
||||
font-weight: bold;
|
||||
font-size: 200%;
|
||||
top: -7%;
|
||||
left: -3%;
|
||||
}
|
||||
|
||||
.fc-icon-left-double-arrow:after {
|
||||
content: "\000AB";
|
||||
font-size: 160%;
|
||||
top: -7%;
|
||||
}
|
||||
|
||||
.fc-icon-right-double-arrow:after {
|
||||
content: "\000BB";
|
||||
font-size: 160%;
|
||||
top: -7%;
|
||||
}
|
||||
|
||||
.fc-icon-left-triangle:after {
|
||||
content: "\25C4";
|
||||
font-size: 125%;
|
||||
top: 3%;
|
||||
left: -2%;
|
||||
}
|
||||
|
||||
.fc-icon-right-triangle:after {
|
||||
content: "\25BA";
|
||||
font-size: 125%;
|
||||
top: 3%;
|
||||
left: 2%;
|
||||
}
|
||||
|
||||
.fc-icon-down-triangle:after {
|
||||
content: "\25BC";
|
||||
font-size: 125%;
|
||||
top: 2%;
|
||||
}
|
||||
|
||||
.fc-icon-x:after {
|
||||
content: "\000D7";
|
||||
font-size: 200%;
|
||||
top: 6%;
|
||||
}
|
||||
|
||||
|
||||
/* Buttons (styled <button> tags, normalized to work cross-browser)
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc button {
|
||||
/* force height to include the border and padding */
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
/* dimensions */
|
||||
margin: 0;
|
||||
height: 2.1em;
|
||||
padding: 0 .6em;
|
||||
|
||||
/* text & cursor */
|
||||
font-size: 1em; /* normalize */
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Firefox has an annoying inner border */
|
||||
.fc button::-moz-focus-inner { margin: 0; padding: 0; }
|
||||
|
||||
.fc-state-default { /* non-theme */
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-left { /* non-theme */
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.fc-state-default.fc-corner-right { /* non-theme */
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
/* icons in buttons */
|
||||
|
||||
.fc button .fc-icon { /* non-theme */
|
||||
position: relative;
|
||||
top: -0.05em; /* seems to be a good adjustment across browsers */
|
||||
margin: 0 .2em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/*
|
||||
button states
|
||||
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
|
||||
*/
|
||||
|
||||
.fc-state-default {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
color: #333;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-hover,
|
||||
.fc-state-down,
|
||||
.fc-state-active,
|
||||
.fc-state-disabled {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.fc-state-hover {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
.fc-state-down,
|
||||
.fc-state-active {
|
||||
background-color: #cccccc;
|
||||
background-image: none;
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.fc-state-disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
filter: alpha(opacity=65);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/* Buttons Groups
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button-group {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/*
|
||||
every button that is not first in a button group should scootch over one pixel and cover the
|
||||
previous button's border...
|
||||
*/
|
||||
|
||||
.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */
|
||||
float: left;
|
||||
margin: 0 0 0 -1px;
|
||||
}
|
||||
|
||||
.fc .fc-button-group > :first-child { /* same */
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Popover
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-popover {
|
||||
position: absolute;
|
||||
box-shadow: 0 2px 6px rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.fc-popover .fc-header .fc-title {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
.fc-popover .fc-header .fc-close {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-popover .fc-header .fc-title,
|
||||
.fc-rtl .fc-popover .fc-header .fc-close {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-popover .fc-header .fc-title,
|
||||
.fc-ltr .fc-popover .fc-header .fc-close {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* unthemed */
|
||||
|
||||
.fc-unthemed .fc-popover {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.fc-unthemed .fc-popover .fc-header .fc-close {
|
||||
font-size: .9em;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* jqui themed */
|
||||
|
||||
.fc-popover > .ui-widget-header + .ui-widget-content {
|
||||
border-top: 0; /* where they meet, let the header have the border */
|
||||
}
|
||||
|
||||
|
||||
/* Misc Reusable Components
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-divider {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
hr.fc-divider {
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0 0 2px; /* height is unreliable across browsers, so use padding */
|
||||
border-width: 1px 0;
|
||||
}
|
||||
|
||||
.fc-clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.fc-bg,
|
||||
.fc-bgevent-skeleton,
|
||||
.fc-highlight-skeleton,
|
||||
.fc-helper-skeleton {
|
||||
/* these element should always cling to top-left/right corners */
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fc-bg {
|
||||
bottom: 0; /* strech bg to bottom edge */
|
||||
}
|
||||
|
||||
.fc-bg table {
|
||||
height: 100%; /* strech bg to bottom edge */
|
||||
}
|
||||
|
||||
|
||||
/* Tables
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc table {
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
font-size: 1em; /* normalize cross-browser */
|
||||
}
|
||||
|
||||
.fc th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc th,
|
||||
.fc td {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc td.fc-today {
|
||||
border-style: double; /* overcome neighboring borders */
|
||||
}
|
||||
|
||||
|
||||
/* Fake Table Rows
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
|
||||
/* no visible border by default. but make available if need be (scrollbar width compensation) */
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.fc-row table {
|
||||
/* don't put left/right border on anything within a fake row.
|
||||
the outer tbody will worry about this */
|
||||
border-left: 0 hidden transparent;
|
||||
border-right: 0 hidden transparent;
|
||||
|
||||
/* no bottom borders on rows */
|
||||
border-bottom: 0 hidden transparent;
|
||||
}
|
||||
|
||||
.fc-row:first-child table {
|
||||
border-top: 0 hidden transparent; /* no top border on first row */
|
||||
}
|
||||
|
||||
|
||||
/* Day Row (used within the header and the DayGrid)
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-row {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fc-row .fc-bg {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* highlighting cells & background event skeleton */
|
||||
|
||||
.fc-row .fc-bgevent-skeleton,
|
||||
.fc-row .fc-highlight-skeleton {
|
||||
bottom: 0; /* stretch skeleton to bottom of row */
|
||||
}
|
||||
|
||||
.fc-row .fc-bgevent-skeleton table,
|
||||
.fc-row .fc-highlight-skeleton table {
|
||||
height: 100%; /* stretch skeleton to bottom of row */
|
||||
}
|
||||
|
||||
.fc-row .fc-highlight-skeleton td,
|
||||
.fc-row .fc-bgevent-skeleton td {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.fc-row .fc-bgevent-skeleton {
|
||||
z-index: 2;
|
||||
|
||||
}
|
||||
|
||||
.fc-row .fc-highlight-skeleton {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
/*
|
||||
row content (which contains day/week numbers and events) as well as "helper" (which contains
|
||||
temporary rendered events).
|
||||
*/
|
||||
|
||||
.fc-row .fc-content-skeleton {
|
||||
position: relative;
|
||||
z-index: 4;
|
||||
padding-bottom: 2px; /* matches the space above the events */
|
||||
}
|
||||
|
||||
.fc-row .fc-helper-skeleton {
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.fc-row .fc-content-skeleton td,
|
||||
.fc-row .fc-helper-skeleton td {
|
||||
/* see-through to the background below */
|
||||
background: none; /* in case <td>s are globally styled */
|
||||
border-color: transparent;
|
||||
|
||||
/* don't put a border between events and/or the day number */
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
|
||||
.fc-row .fc-helper-skeleton tbody td {
|
||||
/* don't put a border between event cells */
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Scrolling Container
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-scroller { /* this class goes on elements for guaranteed vertical scrollbars */
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.fc-scroller > * { /* we expect an immediate inner element */
|
||||
position: relative; /* re-scope all positions */
|
||||
width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */
|
||||
overflow: hidden; /* don't let negative margins or absolute positioning create further scroll */
|
||||
}
|
||||
|
||||
|
||||
/* Global Event Styles
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event {
|
||||
position: relative; /* for resize handle and other inner positioning */
|
||||
display: block; /* make the <a> tag block */
|
||||
font-size: .85em;
|
||||
line-height: 1.3;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #3a87ad; /* default BORDER color */
|
||||
background-color: #3a87ad; /* default BACKGROUND color */
|
||||
font-weight: normal; /* undo jqui's ui-widget-header bold */
|
||||
}
|
||||
|
||||
/* overpower some of bootstrap's and jqui's styles on <a> tags */
|
||||
.fc-event,
|
||||
.fc-event:hover,
|
||||
.ui-widget .fc-event {
|
||||
color: #fff; /* default TEXT color */
|
||||
text-decoration: none; /* if <a> has an href */
|
||||
}
|
||||
|
||||
.fc-event[href],
|
||||
.fc-event.fc-draggable {
|
||||
cursor: pointer; /* give events with links and draggable events a hand mouse pointer */
|
||||
}
|
||||
|
||||
.fc-not-allowed, /* causes a "warning" cursor. applied on body */
|
||||
.fc-not-allowed .fc-event { /* to override an event's custom cursor */
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.fc-event .fc-bg { /* the generic .fc-bg already does position */
|
||||
z-index: 1;
|
||||
background: #fff;
|
||||
opacity: .25;
|
||||
filter: alpha(opacity=25); /* for IE */
|
||||
}
|
||||
|
||||
.fc-event .fc-content {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-event .fc-resizer {
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
|
||||
/* Horizontal Events
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* events that are continuing to/from another week. kill rounded corners and butt up against edge */
|
||||
|
||||
.fc-ltr .fc-h-event.fc-not-start,
|
||||
.fc-rtl .fc-h-event.fc-not-end {
|
||||
margin-left: 0;
|
||||
border-left-width: 0;
|
||||
padding-left: 1px; /* replace the border with padding */
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-h-event.fc-not-end,
|
||||
.fc-rtl .fc-h-event.fc-not-start {
|
||||
margin-right: 0;
|
||||
border-right-width: 0;
|
||||
padding-right: 1px; /* replace the border with padding */
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
/* resizer */
|
||||
|
||||
.fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */
|
||||
top: -1px;
|
||||
bottom: -1px;
|
||||
left: -1px;
|
||||
right: -1px;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
/* left resizer */
|
||||
.fc-ltr .fc-h-event .fc-start-resizer,
|
||||
.fc-ltr .fc-h-event .fc-start-resizer:before,
|
||||
.fc-ltr .fc-h-event .fc-start-resizer:after,
|
||||
.fc-rtl .fc-h-event .fc-end-resizer,
|
||||
.fc-rtl .fc-h-event .fc-end-resizer:before,
|
||||
.fc-rtl .fc-h-event .fc-end-resizer:after {
|
||||
right: auto; /* ignore the right and only use the left */
|
||||
cursor: w-resize;
|
||||
}
|
||||
|
||||
/* right resizer */
|
||||
.fc-ltr .fc-h-event .fc-end-resizer,
|
||||
.fc-ltr .fc-h-event .fc-end-resizer:before,
|
||||
.fc-ltr .fc-h-event .fc-end-resizer:after,
|
||||
.fc-rtl .fc-h-event .fc-start-resizer,
|
||||
.fc-rtl .fc-h-event .fc-start-resizer:before,
|
||||
.fc-rtl .fc-h-event .fc-start-resizer:after {
|
||||
left: auto; /* ignore the left and only use the right */
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
|
||||
/* DayGrid events
|
||||
----------------------------------------------------------------------------------------------------
|
||||
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
|
||||
be a descendant of the grid when it is being dragged.
|
||||
*/
|
||||
|
||||
.fc-day-grid-event {
|
||||
margin: 1px 2px 0; /* spacing between events and edges */
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
|
||||
.fc-day-grid-event .fc-content { /* force events to be one-line tall */
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-day-grid-event .fc-time {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fc-day-grid-event .fc-resizer { /* enlarge the default hit area */
|
||||
left: -3px;
|
||||
right: -3px;
|
||||
width: 7px;
|
||||
}
|
||||
|
||||
|
||||
/* Event Limiting
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* "more" link that represents hidden events */
|
||||
|
||||
a.fc-more {
|
||||
margin: 1px 3px;
|
||||
font-size: .85em;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.fc-more:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.fc-limited { /* rows and cells that are hidden because of a "more" link */
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* popover that appears when "more" link is clicked */
|
||||
|
||||
.fc-day-grid .fc-row {
|
||||
z-index: 1; /* make the "more" popover one higher than this */
|
||||
}
|
||||
|
||||
.fc-more-popover {
|
||||
z-index: 2;
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
.fc-more-popover .fc-event-container {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* Now Indicator
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-now-indicator {
|
||||
position: absolute;
|
||||
border: 0 solid red;
|
||||
}
|
||||
|
||||
/* Toolbar
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-toolbar {
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-center {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* the things within each left/right/center section */
|
||||
.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */
|
||||
float: left;
|
||||
margin-left: .75em;
|
||||
}
|
||||
|
||||
/* the first thing within each left/center/right section */
|
||||
.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* title text */
|
||||
|
||||
.fc-toolbar h2 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* button layering (for border precedence) */
|
||||
|
||||
.fc-toolbar button {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-state-hover,
|
||||
.fc-toolbar .ui-state-hover {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-state-down {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-toolbar .fc-state-active,
|
||||
.fc-toolbar .ui-state-active {
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.fc-toolbar button:focus {
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
|
||||
/* View Structure
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
|
||||
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
|
||||
.fc-view-container *,
|
||||
.fc-view-container *:before,
|
||||
.fc-view-container *:after {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.fc-view, /* scope positioning and z-index's for everything within the view */
|
||||
.fc-view > table { /* so dragged elements can be above the view's main element */
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* BasicView
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* day row structure */
|
||||
|
||||
.fc-basicWeek-view .fc-content-skeleton,
|
||||
.fc-basicDay-view .fc-content-skeleton {
|
||||
/* we are sure there are no day numbers in these views, so... */
|
||||
padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
|
||||
padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */
|
||||
}
|
||||
|
||||
.fc-basic-view .fc-body .fc-row {
|
||||
min-height: 4em; /* ensure that all rows are at least this tall */
|
||||
}
|
||||
|
||||
/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */
|
||||
|
||||
.fc-row.fc-rigid {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fc-row.fc-rigid .fc-content-skeleton {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* week and day number styling */
|
||||
|
||||
.fc-basic-view .fc-week-number,
|
||||
.fc-basic-view .fc-day-number {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
.fc-basic-view td.fc-week-number span,
|
||||
.fc-basic-view td.fc-day-number {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.fc-basic-view .fc-week-number {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fc-basic-view .fc-week-number span {
|
||||
/* work around the way we do column resizing and ensure a minimum width */
|
||||
display: inline-block;
|
||||
min-width: 1.25em;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-basic-view .fc-day-number {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-basic-view .fc-day-number {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.fc-day-number.fc-other-month {
|
||||
opacity: 0.3;
|
||||
filter: alpha(opacity=30); /* for IE */
|
||||
/* opacity with small font can sometimes look too faded
|
||||
might want to set the 'color' property instead
|
||||
making day-numbers bold also fixes the problem */
|
||||
}
|
||||
|
||||
/* AgendaView all-day area
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-agenda-view .fc-day-grid {
|
||||
position: relative;
|
||||
z-index: 2; /* so the "more.." popover will be over the time grid */
|
||||
}
|
||||
|
||||
.fc-agenda-view .fc-day-grid .fc-row {
|
||||
min-height: 3em; /* all-day section will never get shorter than this */
|
||||
}
|
||||
|
||||
.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
|
||||
padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
|
||||
padding-bottom: 1em; /* give space underneath events for clicking/selecting days */
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid axis running down the side (for both the all-day area and the slot area)
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc .fc-axis { /* .fc to overcome default cell styles */
|
||||
vertical-align: middle;
|
||||
padding: 0 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-ltr .fc-axis {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-axis {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.ui-widget td.fc-axis {
|
||||
font-weight: normal; /* overcome jqui theme making it bold */
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Structure
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-time-grid-container, /* so scroll container's z-index is below all-day */
|
||||
.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.fc-time-grid {
|
||||
min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */
|
||||
}
|
||||
|
||||
.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */
|
||||
border: 0 hidden transparent;
|
||||
}
|
||||
|
||||
.fc-time-grid > .fc-bg {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-slats,
|
||||
.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-content-col {
|
||||
position: relative; /* because now-indicator lives directly inside */
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-content-skeleton {
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* divs within a cell within the fc-content-skeleton */
|
||||
|
||||
.fc-time-grid .fc-business-container {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-bgevent-container {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-highlight-container {
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-event-container {
|
||||
position: relative;
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-now-indicator-line {
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-helper-container { /* also is fc-event-container */
|
||||
position: relative;
|
||||
z-index: 6;
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Slats (lines that run horizontally)
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-time-grid .fc-slats td {
|
||||
height: 1.5em;
|
||||
border-bottom: 0; /* each cell is responsible for its top border */
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-slats .fc-minor td {
|
||||
border-top-style: dotted;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */
|
||||
background: none; /* see through to fc-bg */
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Highlighting Slots
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */
|
||||
position: relative; /* scopes the left/right of the fc-highlight to be in the column */
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-highlight {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
/* top and bottom will be in by JS */
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Event Containment
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */
|
||||
margin: 0 2.5% 0 2px;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */
|
||||
margin: 0 2px 0 2.5%;
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-event,
|
||||
.fc-time-grid .fc-bgevent {
|
||||
position: absolute;
|
||||
z-index: 1; /* scope inner z-index's */
|
||||
}
|
||||
|
||||
.fc-time-grid .fc-bgevent {
|
||||
/* background events always span full width */
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Generic Vertical Event
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-v-event.fc-not-start { /* events that are continuing from another day */
|
||||
/* replace space made by the top border with padding */
|
||||
border-top-width: 0;
|
||||
padding-top: 1px;
|
||||
|
||||
/* remove top rounded corners */
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.fc-v-event.fc-not-end {
|
||||
/* replace space made by the top border with padding */
|
||||
border-bottom-width: 0;
|
||||
padding-bottom: 1px;
|
||||
|
||||
/* remove bottom rounded corners */
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Event Styling
|
||||
----------------------------------------------------------------------------------------------------
|
||||
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
|
||||
be a descendant of the grid when it is being dragged.
|
||||
*/
|
||||
|
||||
.fc-time-grid-event {
|
||||
overflow: hidden; /* don't let the bg flow over rounded corners */
|
||||
}
|
||||
|
||||
.fc-time-grid-event .fc-time,
|
||||
.fc-time-grid-event .fc-title {
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.fc-time-grid-event .fc-time {
|
||||
font-size: .85em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* short mode, where time and title are on the same line */
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-content {
|
||||
/* don't wrap to second line (now that contents will be inline) */
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-time,
|
||||
.fc-time-grid-event.fc-short .fc-title {
|
||||
/* put the time and title on the same line */
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-time span {
|
||||
display: none; /* don't display the full time text... */
|
||||
}
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-time:before {
|
||||
content: attr(data-start); /* ...instead, display only the start time */
|
||||
}
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-time:after {
|
||||
content: "\000A0-\000A0"; /* seperate with a dash, wrapped in nbsp's */
|
||||
}
|
||||
|
||||
.fc-time-grid-event.fc-short .fc-title {
|
||||
font-size: .85em; /* make the title text the same size as the time */
|
||||
padding: 0; /* undo padding from above */
|
||||
}
|
||||
|
||||
/* resizer */
|
||||
|
||||
.fc-time-grid-event .fc-resizer {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 8px;
|
||||
overflow: hidden;
|
||||
line-height: 8px;
|
||||
font-size: 11px;
|
||||
font-family: monospace;
|
||||
text-align: center;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
.fc-time-grid-event .fc-resizer:after {
|
||||
content: "=";
|
||||
}
|
||||
|
||||
|
||||
/* Now Indicator
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-time-grid .fc-now-indicator-line {
|
||||
border-top-width: 1px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* arrow on axis */
|
||||
|
||||
.fc-time-grid .fc-now-indicator-arrow {
|
||||
margin-top: -5px; /* vertically center on top coordinate */
|
||||
}
|
||||
|
||||
.fc-ltr .fc-time-grid .fc-now-indicator-arrow {
|
||||
left: 0;
|
||||
/* triangle pointing right... */
|
||||
border-width: 5px 0 5px 6px;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
|
||||
.fc-rtl .fc-time-grid .fc-now-indicator-arrow {
|
||||
right: 0;
|
||||
/* triangle pointing left... */
|
||||
border-width: 5px 6px 5px 0;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* imgAreaSelect default style
|
||||
*/
|
||||
|
||||
.imgareaselect-border1, .imgareaselect-border2,
|
||||
.imgareaselect-border3, .imgareaselect-border4 {
|
||||
filter: alpha(opacity=50);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.imgareaselect-handle {
|
||||
background-color: #fff;
|
||||
border: solid 1px #000;
|
||||
filter: alpha(opacity=50);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.imgareaselect-outer {
|
||||
background-color: #000;
|
||||
filter: alpha(opacity=50);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.imgareaselect-selection {
|
||||
}
|
7
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/jquery-ui.min.css
vendored
Normal file
7
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/jquery-ui.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,50 @@
|
|||
.rapClock{
|
||||
#background:radial-gradient(#fff 10%,#ccc 60%,#000 61%,#a00 70%,black 100%);
|
||||
font-family:'Comic Sans MS',cursive,sans-serif;
|
||||
position:relative;
|
||||
border-radius:50%;
|
||||
#box-shadow:inset -2px -2px 4px rgba(0,0,0,8),inset 2px 2px 4px rgba(255,255,255,8),2px 2px 4px rgba(0,0,0,8),0px 0px 4px black;
|
||||
text-align:center;
|
||||
text-shadow:0 0 2px #fff;
|
||||
}
|
||||
.rapClockCaption{
|
||||
padding-top:25%;
|
||||
}
|
||||
.rapClockHours{
|
||||
top:50%;
|
||||
left:50%;
|
||||
width:2%;
|
||||
height:8%;
|
||||
position:absolute;
|
||||
background-color:#000;
|
||||
}
|
||||
.rapClockNumbers{
|
||||
top:50%;
|
||||
left:50%;
|
||||
position:absolute;
|
||||
}
|
||||
.rapClockHands{
|
||||
top:50%;
|
||||
left:50%;
|
||||
position:absolute;
|
||||
border-radius:50% 50% 50% 50% / 90% 90% 10% 10%;
|
||||
}
|
||||
.rapClockS{
|
||||
width:2%;
|
||||
height:46%;
|
||||
z-index:3;
|
||||
background-color:#a00;
|
||||
}
|
||||
.rapClockM{
|
||||
width:3%;
|
||||
height:34%;
|
||||
z-index: 2;
|
||||
background-color:#222;
|
||||
}
|
||||
|
||||
.rapClockH{
|
||||
width:5%;
|
||||
height:25%;
|
||||
z-index:1;
|
||||
background-color:#222;
|
||||
}
|
10
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/metisMenu.min.css
vendored
Normal file
10
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/metisMenu.min.css
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* metismenu - v1.1.3
|
||||
* Easy menu jQuery plugin for Twitter Bootstrap 3
|
||||
* https://github.com/onokumus/metisMenu
|
||||
*
|
||||
* Made by Osman Nuri Okumus
|
||||
* Under MIT License
|
||||
*/
|
||||
|
||||
.arrow{float:right;line-height:1.42857}.glyphicon.arrow:before{content:"\e079"}.active>a>.glyphicon.arrow:before{content:"\e114"}.fa.arrow:before{content:"\f104"}.active>a>.fa.arrow:before{content:"\f107"}.plus-times{float:right}.fa.plus-times:before{content:"\f067"}.active>a>.fa.plus-times{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.plus-minus{float:right}.fa.plus-minus:before{content:"\f067"}.active>a>.fa.plus-minus:before{content:"\f068"}
|
|
@ -0,0 +1,2 @@
|
|||
.morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}
|
||||
.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}
|
86
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/pick-a-color-1.2.3.min.css
vendored
Normal file
86
src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/css/pick-a-color-1.2.3.min.css
vendored
Normal file
|
@ -0,0 +1,86 @@
|
|||
|
||||
.pick-a-color-markup *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
||||
.pick-a-color-markup .hex-pound{padding-left:8px;padding-right:8px}@media screen and (max-width:991px){.pick-a-color-markup .hex-pound{padding:3px 5px 0px 5px;min-height:30px}}
|
||||
.pick-a-color-markup .pick-a-color{padding:5px}@media screen and (max-width:991px){.pick-a-color-markup .pick-a-color{width:100%;font-size:18px;padding:9px;min-width:222px;height:47px}}
|
||||
.pick-a-color-markup .input-group-btn .color-dropdown{padding:6px 5px}.pick-a-color-markup .input-group-btn .color-dropdown.no-hex{border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .input-group-btn .color-dropdown:focus{background-color:#fff}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .input-group-btn .color-dropdown{height:47px}}
|
||||
.pick-a-color-markup .color-preview{border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);height:1.429em;width:1.429em;display:inline-block;cursor:pointer;margin-right:5px}.pick-a-color-markup .color-preview.current-color{margin-bottom:-5px}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .color-preview{height:1.875em;width:1.875em}}
|
||||
.pick-a-color-markup .color-menu{text-align:left;padding:5px 0px;width:330px;font-size:14px;left:auto;}.pick-a-color-markup .color-menu.color-menu--inline{left:-285px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu.color-menu--inline{left:-242px}}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .color-menu{left:-242px;width:293px}}.pick-a-color-markup .color-menu.small{width:100px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu.small{left:-105px}}
|
||||
.pick-a-color-markup .color-menu.no-hex{left:0px}
|
||||
.pick-a-color-markup .color-menu ul{padding:0px;margin:0px}
|
||||
.pick-a-color-markup .color-menu li{list-style-type:none;padding:5px 0px;margin:0px}
|
||||
.pick-a-color-markup .color-menu .color-preview{vertical-align:middle;margin:0px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .color-preview{height:35px;width:35px}}.pick-a-color-markup .color-menu .color-preview.current-color,.pick-a-color-markup .color-menu .color-preview.white{background-color:#fff}
|
||||
.pick-a-color-markup .color-menu .color-preview.red{background-color:#f00}
|
||||
.pick-a-color-markup .color-menu .color-preview.orange{background-color:#f60}
|
||||
.pick-a-color-markup .color-menu .color-preview.yellow{background-color:#ff0}
|
||||
.pick-a-color-markup .color-menu .color-preview.green{background-color:#008000}
|
||||
.pick-a-color-markup .color-menu .color-preview.blue{background-color:#00f}
|
||||
.pick-a-color-markup .color-menu .color-preview.indigo{background-color:#4a0080}
|
||||
.pick-a-color-markup .color-menu .color-preview.violet{background-color:#ee81ee}
|
||||
.pick-a-color-markup .color-menu .color-preview.purple{background-color:#80007f}
|
||||
.pick-a-color-markup .color-menu .color-preview.black{background-color:#000}
|
||||
.pick-a-color-markup .color-menu .basicColors-content li>a,.pick-a-color-markup .color-menu .savedColors-content li>a{padding:5px 15px 3px 15px;cursor:default;min-height:25px;color:#333}.pick-a-color-markup .color-menu .basicColors-content li>a:hover,.pick-a-color-markup .color-menu .savedColors-content li>a:hover{background-color:#fff}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .color-menu .basicColors-content li>a,.pick-a-color-markup .color-menu .savedColors-content li>a{min-height:40px}}
|
||||
.pick-a-color-markup .color-menu .basicColors-content li:hover a,.pick-a-color-markup .color-menu .savedColors-content li:hover a{color:#333;background-image:none;filter:none;text-decoration:none;font-weight:bold}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .basicColors-content li:hover a,.pick-a-color-markup .color-menu .savedColors-content li:hover a{background-color:#fff;font-weight:normal}}
|
||||
.pick-a-color-markup .color-menu .btn.color-select{margin:0px 5px;height:20px;padding:0px 5px;margin-top:0px;line-height:1.5px;border-radius:4px}@media screen and (max-width:991px){.pick-a-color-markup .color-menu .btn.color-select{height:35px}}
|
||||
.pick-a-color-markup .caret{margin-bottom:3px}
|
||||
.pick-a-color-markup .color-menu-instructions,.pick-a-color-markup .advanced-instructions{text-align:center;padding:0px 6px;margin:0px;font-size:14px;font-weight:normal}@media screen and (min-width:992px){.pick-a-color-markup .color-menu-instructions,.pick-a-color-markup .advanced-instructions{display:none}}
|
||||
.pick-a-color-markup .color-label{vertical-align:middle;margin:0px;margin-left:10px;cursor:pointer}@media screen and (max-width:991px){.pick-a-color-markup .color-label{margin-left:8px}}
|
||||
.pick-a-color-markup .color-box{height:20px;width:200px;position:absolute;left:115px;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);box-shadow:inset 0 0 2px 2px rgba(0,0,0,0.075);cursor:pointer}@media screen and (max-width:991px){.pick-a-color-markup .color-box{width:160px;height:35px}}
|
||||
.pick-a-color-markup .black .highlight-band-stripe{background-color:#fff}
|
||||
.pick-a-color-markup .spectrum-white{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#808080));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#808080 100%));background-image:-moz-linear-gradient(left, #fff 0, #808080 100%);background-image:linear-gradient(to right, #fff 0, #808080 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ff808080', GradientType=1)}.pick-a-color-markup .spectrum-white .highlight-band{left:0px}
|
||||
.pick-a-color-markup .spectrum-red{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f00), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f00 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f00 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-orange{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f60), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f60 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f60 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f60 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f60 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-yellow{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #ff0), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #ff0 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #ff0 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #ff0 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #ff0 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-green{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #80ff80), color-stop(.5, #008000), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #80ff80 0, #008000 50%, #000 100%);background-image:-webkit-linear-gradient(left, #80ff80 0, #008000 50%, #000 100%);background-image:-o-linear-gradient(left, #80ff80 0, #008000 50%, #000 100%);background-image:linear-gradient(to right, #80ff80 0, #008000 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-blue{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #00f), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #00f 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #00f 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #00f 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #00f 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-purple{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #ff80ff), color-stop(.5, #80007f), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #ff80ff 0, #80007f 50%, #000 100%);background-image:-webkit-linear-gradient(left, #ff80ff 0, #80007f 50%, #000 100%);background-image:-o-linear-gradient(left, #ff80ff 0, #80007f 50%, #000 100%);background-image:linear-gradient(to right, #ff80ff 0, #80007f 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .spectrum-black{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#000), to(#808080));background-image:-webkit-linear-gradient(left, color-stop(#000 0), color-stop(#808080 100%));background-image:-moz-linear-gradient(left, #000 0, #808080 100%);background-image:linear-gradient(to right, #000 0, #808080 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff000000', endColorstr='#ff808080', GradientType=1)}.pick-a-color-markup .spectrum-black .highlight-band{left:0px;border:1px solid #808080}
|
||||
.pick-a-color-markup .ie-spectrum{height:20px;width:100px;display:inline-block;top:-1}.pick-a-color-markup .ie-spectrum.hue{width:50.5px}@media screen and (max-width:991px){.pick-a-color-markup .ie-spectrum.hue{width:45.5px}}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .ie-spectrum{width:80px;height:35px}}
|
||||
.pick-a-color-markup .red-spectrum-0,.pick-a-color-markup .lightness-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #fff 0, #f00 100%);background-image:linear-gradient(to right, #fff 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffff0000', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .red-spectrum-1,.pick-a-color-markup .lightness-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f00), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#f00 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #f00 0, #000 100%);background-image:linear-gradient(to right, #f00 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0000', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .lightness-spectrum-0,.pick-a-color-markup .lightness-spectrum-1{width:150px}@media screen and (max-width:991px){.pick-a-color-markup .lightness-spectrum-0,.pick-a-color-markup .lightness-spectrum-1{width:135px}}
|
||||
.pick-a-color-markup .orange-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#f60));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#f60 100%));background-image:-moz-linear-gradient(left, #fff 0, #f60 100%);background-image:linear-gradient(to right, #fff 0, #f60 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffff6600', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .orange-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f60), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#f60 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #f60 0, #000 100%);background-image:linear-gradient(to right, #f60 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff6600', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .yellow-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#ff0));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#ff0 100%));background-image:-moz-linear-gradient(left, #fff 0, #ff0 100%);background-image:linear-gradient(to right, #fff 0, #ff0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffffff00', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .yellow-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff0), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#ff0 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #ff0 0, #000 100%);background-image:linear-gradient(to right, #ff0 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff00', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .green-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#80ff80), to(#008000));background-image:-webkit-linear-gradient(left, color-stop(#80ff80 0), color-stop(#008000 100%));background-image:-moz-linear-gradient(left, #80ff80 0, #008000 100%);background-image:linear-gradient(to right, #80ff80 0, #008000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80ff80', endColorstr='#ff008000', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .green-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#008000), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#008000 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #008000 0, #000 100%);background-image:linear-gradient(to right, #008000 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff008000', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .blue-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#fff), to(#00f));background-image:-webkit-linear-gradient(left, color-stop(#fff 0), color-stop(#00f 100%));background-image:-moz-linear-gradient(left, #fff 0, #00f 100%);background-image:linear-gradient(to right, #fff 0, #00f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ff0000ff', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .blue-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#00f), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#00f 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #00f 0, #000 100%);background-image:linear-gradient(to right, #00f 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000ff', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .purple-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff80ff), to(#80007f));background-image:-webkit-linear-gradient(left, color-stop(#ff80ff 0), color-stop(#80007f 100%));background-image:-moz-linear-gradient(left, #ff80ff 0, #80007f 100%);background-image:linear-gradient(to right, #ff80ff 0, #80007f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff80ff', endColorstr='#ff80007f', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .purple-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#80007f), to(#000));background-image:-webkit-linear-gradient(left, color-stop(#80007f 0), color-stop(#000 100%));background-image:-moz-linear-gradient(left, #80007f 0, #000 100%);background-image:linear-gradient(to right, #80007f 0, #000 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80007f', endColorstr='#ff000000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px}
|
||||
.pick-a-color-markup .saturation-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#808080), to(#bf4040));background-image:-webkit-linear-gradient(left, color-stop(#808080 0), color-stop(#bf4040 100%));background-image:-moz-linear-gradient(left, #808080 0, #bf4040 100%);background-image:linear-gradient(to right, #808080 0, #bf4040 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff808080', endColorstr='#ffbf4040', GradientType=1);border-bottom-left-radius:4px;border-top-left-radius:4px;width:150px}@media screen and (max-width:991px){.pick-a-color-markup .saturation-spectrum-0{width:135px}}
|
||||
.pick-a-color-markup .saturation-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#bf4040), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#bf4040 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #bf4040 0, #f00 100%);background-image:linear-gradient(to right, #bf4040 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbf4040', endColorstr='#ffff0000', GradientType=1);border-bottom-right-radius:4px;border-top-right-radius:4px;width:150px}@media screen and (max-width:991px){.pick-a-color-markup .saturation-spectrum-1{width:135px}}
|
||||
.pick-a-color-markup .hue-spectrum-0{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f00), to(#ff0));background-image:-webkit-linear-gradient(left, color-stop(#f00 0), color-stop(#ff0 100%));background-image:-moz-linear-gradient(left, #f00 0, #ff0 100%);background-image:linear-gradient(to right, #f00 0, #ff0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0000', endColorstr='#ffffff00', GradientType=1)}
|
||||
.pick-a-color-markup .hue-spectrum-1{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#ff0), to(#0f0));background-image:-webkit-linear-gradient(left, color-stop(#ff0 0), color-stop(#0f0 100%));background-image:-moz-linear-gradient(left, #ff0 0, #0f0 100%);background-image:linear-gradient(to right, #ff0 0, #0f0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff00', endColorstr='#ff00ff00', GradientType=1)}
|
||||
.pick-a-color-markup .hue-spectrum-2{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#0f0), to(#0ff));background-image:-webkit-linear-gradient(left, color-stop(#0f0 0), color-stop(#0ff 100%));background-image:-moz-linear-gradient(left, #0f0 0, #0ff 100%);background-image:linear-gradient(to right, #0f0 0, #0ff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff00', endColorstr='#ff00ffff', GradientType=1);left:-1px;position:relative}
|
||||
.pick-a-color-markup .hue-spectrum-3{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#0ff), to(#00f));background-image:-webkit-linear-gradient(left, color-stop(#0ff 0), color-stop(#00f 100%));background-image:-moz-linear-gradient(left, #0ff 0, #00f 100%);background-image:linear-gradient(to right, #0ff 0, #00f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ffff', endColorstr='#ff0000ff', GradientType=1);left:-1px;position:relative}
|
||||
.pick-a-color-markup .hue-spectrum-4{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#00f), to(#f0f));background-image:-webkit-linear-gradient(left, color-stop(#00f 0), color-stop(#f0f 100%));background-image:-moz-linear-gradient(left, #00f 0, #f0f 100%);background-image:linear-gradient(to right, #00f 0, #f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000ff', endColorstr='#ffff00ff', GradientType=1);left:-1px;position:relative}
|
||||
.pick-a-color-markup .hue-spectrum-5{background-image:-webkit-gradient(linear, 0 top, 100% top, from(#f0f), to(#f00));background-image:-webkit-linear-gradient(left, color-stop(#f0f 0), color-stop(#f00 100%));background-image:-moz-linear-gradient(left, #f0f 0, #f00 100%);background-image:linear-gradient(to right, #f0f 0, #f00 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00ff', endColorstr='#ffff0000', GradientType=1);left:-2px;position:relative}
|
||||
.pick-a-color-markup .highlight-band{border:1px solid #222;border-radius:2px;-webkit-box-shadow:1px 1px 1px #333;box-shadow:1px 1px 1px #333;height:19px;width:11px;display:inline-block;cursor:pointer;cursor:-webkit-grab;cursor:-moz-grab;position:absolute;top:-1px;left:94.5px;text-align:center}@media screen and (max-width:991px){.pick-a-color-markup .highlight-band{width:21px;left:69.5px;height:34px}}
|
||||
.pick-a-color-markup .highlight-band-stripe{min-height:80%;min-width:1px;background-color:#000;opacity:0.40;margin:2px 1px;display:inline-block;-webkit-box-shadow:1px 0 2px 0 #fff;box-shadow:1px 0 2px 0 #fff}@media screen and (max-width:991px){.pick-a-color-markup .highlight-band-stripe{margin:4px 2px}}
|
||||
.pick-a-color-markup .color-menu-tabs{padding:5px 3px 3px 10px;font-size:12px;color:#333;border-bottom:1px solid #ccc;margin-bottom:5px}.pick-a-color-markup .color-menu-tabs .tab{padding:4px 5px;margin:5px;border-left:1px solid #fff;border-right:1px solid #fff;cursor:pointer;background-color:#fff}.pick-a-color-markup .color-menu-tabs .tab:hover{padding-bottom:6px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;border-top-right-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .color-menu-tabs a{color:#333;text-decoration:none}
|
||||
.pick-a-color-markup .color-menu-tabs .tab-active{border-bottom:3px solid #fff;padding-bottom:5px;border-top:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;border-top-right-radius:4px;border-top-left-radius:4px}
|
||||
.pick-a-color-markup .active-content{display:block}
|
||||
.pick-a-color-markup .inactive-content{display:none}
|
||||
.pick-a-color-markup .savedColors-content{padding:5px 15px;white-space:normal}.pick-a-color-markup .savedColors-content li.color-item>a{margin-left:7px;padding-left:8px;border-radius:4px}
|
||||
.pick-a-color-markup .saved-color-col{position:relative;left:-15px;float:left;width:149px}@media screen and (max-width:991px){.pick-a-color-markup .saved-color-col{width:130px}}
|
||||
.pick-a-color-markup .advanced-content ul{margin-top:10px}
|
||||
.pick-a-color-markup .advanced-content li{padding:5px 15px 3px 15px;cursor:default;min-height:25px;height:50px;position:relative}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content li{min-height:70px}}
|
||||
.pick-a-color-markup .advanced-content .color-preview{height:50px;width:300px;float:left;margin:0px 0px 10px 0px;background-color:#f00;text-align:center}.pick-a-color-markup .advanced-content .color-preview .color-select.btn.advanced{margin-top:15px;display:none}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-preview .color-select.btn.advanced{display:inline;margin-top:7px}}
|
||||
.pick-a-color-markup .advanced-content .color-preview:hover .color-select.btn.advanced{display:inline}
|
||||
@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-preview{width:270px;margin-left:-10px}}
|
||||
.pick-a-color-markup .advanced-content .spectrum-hue{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #f00), color-stop(17%, #ff0), color-stop(34%, #0f0), color-stop(51%, #0ff), color-stop(68%, #00f), color-stop(85%, #f0f), color-stop(100%, #f00));background-image:-moz-linear-gradient(left center, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:-webkit-linear-gradient(left, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:-o-linear-gradient(left, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-image:linear-gradient(to right, #f00 0, #ff0 17%, #0f0 24%, #0ff 51%, #00f 68%, #f0f 85%, #f00 100%);background-repeat:repeat-x}.pick-a-color-markup .advanced-content .spectrum-hue .highlight-band{left:0px}
|
||||
.pick-a-color-markup .advanced-content .spectrum-lightness{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #fff), color-stop(.5, #f00), color-stop(1, #000));background-image:-moz-linear-gradient(left center, #fff 0, #f00 50%, #000 100%);background-image:-webkit-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:-o-linear-gradient(left, #fff 0, #f00 50%, #000 100%);background-image:linear-gradient(to right, #fff 0, #f00 50%, #000 100%);background-repeat:repeat-x}
|
||||
.pick-a-color-markup .advanced-content .spectrum-saturation{background-image:-webkit-gradient(linear, left top, right top, color-stop(0, #808080), color-stop(.5, #f00), color-stop(1, #f00));background-image:-moz-linear-gradient(left center, #808080 0, #f00 50%, #f00 100%);background-image:-webkit-linear-gradient(left, #808080 0, #f00 50%, #f00 100%);background-image:-o-linear-gradient(left, #808080 0, #f00 50%, #f00 100%);background-image:linear-gradient(to right, #808080 0, #f00 50%, #f00 100%);background-repeat:repeat-x}.pick-a-color-markup .advanced-content .spectrum-saturation .highlight-band{left:287px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .spectrum-saturation .highlight-band{left:247px}}
|
||||
.pick-a-color-markup .advanced-content .spectrum-lightness .highlight-band{left:143.5px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .spectrum-lightness .highlight-band{left:123.5px}}
|
||||
.pick-a-color-markup .advanced-content .lightness-text,.pick-a-color-markup .advanced-content .hue-text,.pick-a-color-markup .advanced-content .saturation-text,.pick-a-color-markup .advanced-content .preview-text{vertical-align:middle;text-align:center;display:block}
|
||||
.pick-a-color-markup .advanced-content .color-box{left:15px;top:25px;width:300px}@media screen and (max-width:991px){.pick-a-color-markup .advanced-content .color-box{width:270px;left:10px}}
|
||||
.pick-a-color-markup .advanced-content .preview-item{height:80px}
|
||||
@-moz-document url-prefix(){@media screen and (max-width:991px){div.pick-a-color-markup .color-menu{left:0px}}}
|
|
@ -0,0 +1,353 @@
|
|||
/*!
|
||||
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
|
||||
* Code licensed under the Apache License v2.0.
|
||||
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*/
|
||||
|
||||
body {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#page-wrapper {
|
||||
padding: 0 15px;
|
||||
min-height: 568px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@media(min-width:768px) {
|
||||
#page-wrapper {
|
||||
position: inherit;
|
||||
margin: 0 0 0 250px;
|
||||
padding: 0 30px;
|
||||
border-left: 1px solid #e7e7e7;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-top-links {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.navbar-top-links li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.navbar-top-links li:last-child {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.navbar-top-links li a {
|
||||
padding: 15px;
|
||||
min-height: 50px;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-menu li {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-menu li:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-menu li a {
|
||||
padding: 3px 20px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-menu li a div {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-messages,
|
||||
.navbar-top-links .dropdown-tasks,
|
||||
.navbar-top-links .dropdown-alerts {
|
||||
width: 310px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-messages {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-tasks {
|
||||
margin-left: -59px;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-alerts {
|
||||
margin-left: -123px;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-user {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.sidebar .sidebar-nav.navbar-collapse {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.sidebar .sidebar-search {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.sidebar ul li {
|
||||
border-bottom: 1px solid #e7e7e7;
|
||||
}
|
||||
|
||||
.sidebar ul li a.active {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.sidebar .arrow {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.sidebar .fa.arrow:before {
|
||||
content: "\f104";
|
||||
}
|
||||
|
||||
.sidebar .active>a>.fa.arrow:before {
|
||||
content: "\f107";
|
||||
}
|
||||
|
||||
.sidebar .nav-second-level li,
|
||||
.sidebar .nav-third-level li {
|
||||
border-bottom: 0!important;
|
||||
}
|
||||
|
||||
.sidebar .nav-second-level li a {
|
||||
padding-left: 37px;
|
||||
}
|
||||
|
||||
.sidebar .nav-third-level li a {
|
||||
padding-left: 52px;
|
||||
}
|
||||
|
||||
@media(min-width:768px) {
|
||||
.sidebar {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.navbar-top-links .dropdown-messages,
|
||||
.navbar-top-links .dropdown-tasks,
|
||||
.navbar-top-links .dropdown-alerts {
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-outline {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
transition: all .5s;
|
||||
}
|
||||
|
||||
.btn-primary.btn-outline {
|
||||
color: #428bca;
|
||||
}
|
||||
|
||||
.btn-success.btn-outline {
|
||||
color: #5cb85c;
|
||||
}
|
||||
|
||||
.btn-info.btn-outline {
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.btn-warning.btn-outline {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.btn-danger.btn-outline {
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.btn-primary.btn-outline:hover,
|
||||
.btn-success.btn-outline:hover,
|
||||
.btn-info.btn-outline:hover,
|
||||
.btn-warning.btn-outline:hover,
|
||||
.btn-danger.btn-outline:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.chat {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.chat li {
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px dotted #999;
|
||||
}
|
||||
|
||||
.chat li.left .chat-body {
|
||||
margin-left: 60px;
|
||||
}
|
||||
|
||||
.chat li.right .chat-body {
|
||||
margin-right: 60px;
|
||||
}
|
||||
|
||||
.chat li .chat-body p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.panel .slidedown .glyphicon,
|
||||
.chat .glyphicon {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.chat-panel .panel-body {
|
||||
height: 350px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.login-panel {
|
||||
margin-top: 25%;
|
||||
}
|
||||
|
||||
.flot-chart {
|
||||
display: block;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.flot-chart-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.dataTables_wrapper {
|
||||
position: relative;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting,
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting_asc_disabled,
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting_asc:after {
|
||||
content: "\f0de";
|
||||
float: right;
|
||||
font-family: fontawesome;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting_desc:after {
|
||||
content: "\f0dd";
|
||||
float: right;
|
||||
font-family: fontawesome;
|
||||
}
|
||||
|
||||
table.dataTable thead .sorting:after {
|
||||
content: "\f0dc";
|
||||
float: right;
|
||||
font-family: fontawesome;
|
||||
color: rgba(50,50,50,.5);
|
||||
}
|
||||
|
||||
.btn-circle {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
padding: 6px 0;
|
||||
border-radius: 15px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
line-height: 1.428571429;
|
||||
}
|
||||
|
||||
.btn-circle.btn-lg {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
padding: 10px 16px;
|
||||
border-radius: 25px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
.btn-circle.btn-xl {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
padding: 10px 16px;
|
||||
border-radius: 35px;
|
||||
font-size: 24px;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
.show-grid [class^=col-] {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
border: 1px solid #ddd;
|
||||
background-color: #eee!important;
|
||||
}
|
||||
|
||||
.show-grid {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.huge {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.panel-green {
|
||||
border-color: #5cb85c;
|
||||
}
|
||||
|
||||
.panel-green .panel-heading {
|
||||
border-color: #5cb85c;
|
||||
color: #fff;
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
|
||||
.panel-green a {
|
||||
color: #5cb85c;
|
||||
}
|
||||
|
||||
.panel-green a:hover {
|
||||
color: #3d8b3d;
|
||||
}
|
||||
|
||||
.panel-red {
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.panel-red .panel-heading {
|
||||
border-color: #d9534f;
|
||||
color: #fff;
|
||||
background-color: #d9534f;
|
||||
}
|
||||
|
||||
.panel-red a {
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.panel-red a:hover {
|
||||
color: #b52b27;
|
||||
}
|
||||
|
||||
.panel-yellow {
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.panel-yellow .panel-heading {
|
||||
border-color: #f0ad4e;
|
||||
color: #fff;
|
||||
background-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.panel-yellow a {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.panel-yellow a:hover {
|
||||
color: #df8a13;
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,206 @@
|
|||
@charset 'UTF-8';
|
||||
/* Slider */
|
||||
.slick-loading .slick-list
|
||||
{
|
||||
background: #fff url('../bundles/cadolescore/images/loading.gif') center center no-repeat;
|
||||
}
|
||||
|
||||
/* Icons */
|
||||
@font-face
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
src: url('../fonts/slick.eot');
|
||||
src: url('../fonts/slick.eot?#iefix') format('embedded-opentype'), url('../fonts/slick.woff') format('woff'), url('../fonts/slick.ttf') format('truetype'), url('../fonts/slick.svg#slick') format('svg');
|
||||
}
|
||||
/* Arrows */
|
||||
.slick-prev,
|
||||
.slick-next
|
||||
{
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0;
|
||||
-webkit-transform: translate(0, -50%);
|
||||
-ms-transform: translate(0, -50%);
|
||||
transform: translate(0, -50%);
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
color: transparent;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
|
||||
z-index: 10000;
|
||||
}
|
||||
.slick-prev:hover,
|
||||
.slick-prev:focus,
|
||||
.slick-next:hover,
|
||||
.slick-next:focus
|
||||
{
|
||||
color: transparent;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-prev:hover:before,
|
||||
.slick-prev:focus:before,
|
||||
.slick-next:hover:before,
|
||||
.slick-next:focus:before
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
.slick-prev.slick-disabled:before,
|
||||
.slick-next.slick-disabled:before
|
||||
{
|
||||
opacity: .25;
|
||||
}
|
||||
|
||||
.slick-prev:before,
|
||||
.slick-next:before
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-size: 40px;
|
||||
line-height: 1;
|
||||
|
||||
opacity: .75;
|
||||
color: white;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.slick-prev
|
||||
{
|
||||
left: 10px;
|
||||
}
|
||||
[dir='rtl'] .slick-prev
|
||||
{
|
||||
right: 10px;
|
||||
left: auto;
|
||||
}
|
||||
.slick-prev:before
|
||||
{
|
||||
content: '←';
|
||||
}
|
||||
[dir='rtl'] .slick-prev:before
|
||||
{
|
||||
content: '→';
|
||||
}
|
||||
|
||||
.slick-next
|
||||
{
|
||||
right: 10px;
|
||||
}
|
||||
[dir='rtl'] .slick-next
|
||||
{
|
||||
right: auto;
|
||||
left: 10px;
|
||||
}
|
||||
.slick-next:before
|
||||
{
|
||||
content: '→';
|
||||
}
|
||||
[dir='rtl'] .slick-next:before
|
||||
{
|
||||
content: '←';
|
||||
}
|
||||
|
||||
/* Dots */
|
||||
.slick-dotted.slick-slider
|
||||
{
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.slick-dots
|
||||
{
|
||||
position: absolute;
|
||||
bottom: -25px;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
list-style: none;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
.slick-dots li
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: inline-block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: 0 5px;
|
||||
padding: 0;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
.slick-dots li button
|
||||
{
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 5px;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
color: transparent;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-dots li button:hover,
|
||||
.slick-dots li button:focus
|
||||
{
|
||||
outline: none;
|
||||
}
|
||||
.slick-dots li button:hover:before,
|
||||
.slick-dots li button:focus:before
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
.slick-dots li button:before
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-size: 6px;
|
||||
line-height: 20px;
|
||||
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
||||
content: '•';
|
||||
text-align: center;
|
||||
|
||||
opacity: .25;
|
||||
color: black;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.slick-dots li.slick-active button:before
|
||||
{
|
||||
opacity: .75;
|
||||
color: black;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue