Updating from sandbox

1.10.x
Julio Montoya 10 years ago
parent a646535324
commit a558d45a22
  1. 38
      app/SymfonyRequirements.php
  2. 2
      app/bootstrap.php.cache
  3. 3
      app/config/assetic.yml
  4. 15
      app/config/config.yml
  5. 4
      app/config/config_dev.yml
  6. 8
      app/config/config_prod.yml
  7. 2
      app/config/security.yml
  8. 7
      app/config/sonata/sonata_admin.yml
  9. 1
      app/config/sonata/sonata_block.yml
  10. 1
      app/config/sonata/sonata_formatter.yml
  11. 2
      app/config/sonata/sonata_news.yml
  12. 5
      app/config/sonata/sonata_page.yml
  13. 51
      composer.json
  14. 317
      src/Application/Sonata/AdminBundle/Resources/views/standard_layout.html.twig
  15. 2
      src/Application/Sonata/AdminBundle/layout.html.twig
  16. 1
      src/ChamiloLMS/CoreBundle/Controller/IndexController.php
  17. 10
      web/app_dev.php
  18. 3
      web/bundles/avanzuadmintheme/vendor/AdminLTE/README.md
  19. 152
      web/bundles/avanzuadmintheme/vendor/AdminLTE/css/AdminLTE.css
  20. 2
      web/bundles/avanzuadmintheme/vendor/AdminLTE/css/morris/morris.css
  21. 407
      web/bundles/avanzuadmintheme/vendor/AdminLTE/index.html
  22. 166
      web/bundles/avanzuadmintheme/vendor/AdminLTE/js/AdminLTE/dashboard.js
  23. 2
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/AdminLTE.less
  24. 7
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/boxes.less
  25. 84
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/core.less
  26. 50
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/mixins.less
  27. 14
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/navs.less
  28. 2
      web/bundles/avanzuadmintheme/vendor/AdminLTE/less/vars.less
  29. 31
      web/bundles/sonatapage/composer.js

@ -409,20 +409,18 @@ class SymfonyRequirements extends RequirementCollection
'Then run "<strong>php composer.phar install</strong>" to install them.'
);
$cacheDir = is_dir(__DIR__.'/../var/cache') ? __DIR__.'/../var/cache' : __DIR__.'/cache';
$baseDir = basename(__DIR__);
$this->addRequirement(
is_writable($cacheDir),
'app/cache/ or var/cache/ directory must be writable',
'Change the permissions of either "<strong>app/cache/</strong>" or "<strong>var/cache/</strong>" directory so that the web server can write into it.'
is_writable(__DIR__.'/cache'),
"$baseDir/cache/ directory must be writable",
"Change the permissions of the \"<strong>$baseDir/cache/</strong>\" directory so that the web server can write into it."
);
$logsDir = is_dir(__DIR__.'/../var/logs') ? __DIR__.'/../var/logs' : __DIR__.'/logs';
$this->addRequirement(
is_writable($logsDir),
'app/logs/ or var/logs/ directory must be writable',
'Change the permissions of either "<strong>app/logs/</strong>" or "<strong>var/logs/</strong>" directory so that the web server can write into it.'
is_writable(__DIR__.'/logs'),
"$baseDir/logs/ directory must be writable",
"Change the permissions of the \"<strong>$baseDir/logs/</strong>\" directory so that the web server can write into it."
);
$this->addPhpIniRequirement(
@ -602,12 +600,6 @@ class SymfonyRequirements extends RequirementCollection
'Install and enable the <strong>XML</strong> extension.'
);
$this->addRecommendation(
function_exists('filter_var'),
'filter_var() should be available',
'Install and enable the <strong>filter</strong> extension.'
);
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->addRecommendation(
function_exists('posix_isatty'),
@ -656,8 +648,6 @@ class SymfonyRequirements extends RequirementCollection
||
(extension_loaded('apc') && ini_get('apc.enabled'))
||
(extension_loaded('Zend Optimizer+') && ini_get('zend_optimizerplus.enable'))
||
(extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
||
(extension_loaded('xcache') && ini_get('xcache.cacher'))
@ -668,19 +658,9 @@ class SymfonyRequirements extends RequirementCollection
$this->addRecommendation(
$accelerator,
'a PHP accelerator should be installed',
'Install and/or enable a <strong>PHP accelerator</strong> (highly recommended).'
'Install and enable a <strong>PHP accelerator</strong> like APC (highly recommended).'
);
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$this->addPhpIniRecommendation(
'realpath_cache_size',
create_function('$cfgValue', 'return (int) $cfgValue > 1000;'),
false,
'realpath_cache_size should be above 1024 in php.ini',
'Set "<strong>realpath_cache_size</strong>" to e.g. "<strong>1024</strong>" in php.ini<a href="#phpini">*</a> to improve performance on windows.'
);
}
$this->addPhpIniRecommendation('short_open_tag', false);
$this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
@ -698,7 +678,7 @@ class SymfonyRequirements extends RequirementCollection
if (class_exists('PDO')) {
$drivers = PDO::getAvailableDrivers();
$this->addRecommendation(
count($drivers) > 0,
count($drivers),
sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
'Install <strong>PDO drivers</strong> (mandatory for Doctrine).'
);

@ -1,6 +1,6 @@
<?php
namespace { $loader = require_once __DIR__.'/./autoload.php'; }
namespace { $loader = require_once __DIR__.'/autoload.php'; }
namespace Symfony\Component\HttpFoundation

@ -142,5 +142,4 @@ assetic:
filters:
- cssrewrite
- yui_css
- yui_css

@ -137,6 +137,7 @@ assetic:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
@ -149,8 +150,8 @@ doctrine:
types:
json: Sonata\Doctrine\Types\JsonType
#currency: Sonata\Component\Currency\CurrencyDoctrineType
orm:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
# auto_mapping: true
@ -164,11 +165,10 @@ doctrine:
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
jms_security_extra:
secure_all_services: false
@ -208,8 +208,7 @@ nelmio_api_doc: ~
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
request:
converters: true
request: { converters: true }
# Doctrine extensions configuration
stof_doctrine_extensions:

@ -6,14 +6,14 @@ framework:
profiler: { only_exceptions: false }
web_profiler:
toolbar: true
toolbar: true
intercept_redirects: false
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
path: %kernel.logs_dir%/%kernel.name%_%kernel.environment%.log
level: debug
# console:
# type: console

@ -18,8 +18,6 @@ monolog:
action_level: error
handler: nested
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
# console:
# type: console
type: stream
path: %kernel.logs_dir%/%kernel.name%_%kernel.environment%.log
level: debug

@ -39,7 +39,7 @@ security:
context: user
form_login:
provider: fos_userbundle
login_path: /admin/login
login_path: /login
use_forward: false
check_path: /admin/login_check
failure_path: null

@ -14,8 +14,11 @@ sonata_admin:
templates:
# default global templates
# the layout template include javascript/stylesheet to the formatter bundle,
# if you don't need it use the default one: SonataAdminBundle::standard_layout.html.twig
layout: ApplicationSonataAdminBundle::standard_layout.html.twig
# if you don't need it use the default one: SonataAdminBundle::standard_layout.html.
layout: ApplicationSonataAdminBundle::standard_layout.html.twig
#layout: ApplicationSonataAdminBundle::standard_layout.html.twig
#layout: ApplicationSonataAdminBundle::demo_layout.html.twig
#layout: SonataAdminBundle::standard_layout.html.twig
ajax: SonataAdminBundle::ajax_layout.html.twig

@ -6,6 +6,7 @@ sonata_block:
listener: true
menus:
"ChamiloLMSCoreBundle:MainMenuBuilder:mainMenu": "Main Menu"
#"SonataDemoBundle:Builder:mainMenu": "Main Menu"
blocks:
sonata.admin.block.admin_list:

@ -28,6 +28,7 @@ sonata_formatter:
- sonata.formatter.twig.control_flow
- sonata.formatter.twig.gist
- sonata.media.formatter.twig
ckeditor:
templates:
browser: 'SonataFormatterBundle:Ckeditor:browser.html.twig'

@ -25,4 +25,4 @@ doctrine:
default:
mappings:
ApplicationSonataNewsBundle: ~
SonataNewsBundle: ~
SonataNewsBundle: ~

@ -30,7 +30,7 @@ sonata_page:
- sonata_page_cache_ssi
- sonata_page_js_sync_cache
- sonata_page_js_async_cache
- sonata_cache_es
- sonata_cache_esi
- sonata_cache_ssi
- sonata_cache_js_async
- sonata_cache_js_sync
@ -42,7 +42,6 @@ sonata_page:
classes:
"Application\Sonata\PageBundle\Entity\Block": getId
# generate page css styles
assets:
stylesheets:
#- assetic/sonata_front_css.css
@ -53,7 +52,7 @@ sonata_page:
default_template: default
templates:
default:
#path: 'ApplicationSonataPageBundle::default_layout.html.twig'
#path: 'ApplicationSonataPageBundle::demo_layout.html.twig'
path: 'ChamiloLMSCoreBundle::main_layout.html.twig'
name: 'default'
containers:

@ -47,34 +47,32 @@
],
"require": {
"php": ">=5.3.3",
"twig/twig": "~1.12",
"twig/extensions": "~1.0",
"symfony/symfony": "~2.5",
"symfony/symfony": "~2.5",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"symfony/monolog-bundle": "~2.3",
"sensio/distribution-bundle": "~3.0",
"sensio/framework-extra-bundle": "~3.0",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0.0",
"sensio/generator-bundle": "~2.3",
"jms/security-extra-bundle": "~1.5",
"jms/di-extra-bundle": "~1.4",
"jms/serializer-bundle": "~0.11",
"doctrine/orm": "2.4.2",
"doctrine/doctrine-bundle": "~1.3@dev",
"doctrine/doctrine-migrations-bundle": "dev-master",
"doctrine/migrations": "dev-master",
"doctrine/orm": "~2.4",
"doctrine/doctrine-bundle": "~1.2",
"doctrine/doctrine-migrations-bundle": "~2.0@dev",
"doctrine/migrations": "~1.0@dev",
"doctrine/doctrine-fixtures-bundle": "~2.2",
"doctrine/data-fixtures": "1.0.*@dev",
"doctrine/data-fixtures": "~1.0@dev",
"symfony-cmf/routing-bundle": "~1.1",
"knplabs/gaufrette": "0.1.4",
"knplabs/knp-paginator-bundle": "dev-master",
"knplabs/knp-menu-bundle": "dev-master as 1.1",
@ -82,7 +80,7 @@
"sonata-project/seo-bundle": "~1@dev",
"sonata-project/doctrine-extensions": "~1@dev",
"sonata-project/intl-bundle": "~2.2@dev",
"sonata-project/admin-bundle": "dev-master",
"sonata-project/admin-bundle": "~2.3@dev",
"sonata-project/doctrine-orm-admin-bundle": "~2.3@dev",
"sonata-project/notification-bundle": "~2.2@dev",
"sonata-project/block-bundle": "~2.2@dev",
@ -90,26 +88,25 @@
"sonata-project/user-bundle": "~2.2@dev",
"sonata-project/cache-bundle": "~2.1@dev",
"sonata-project/cache": "~1.0@dev",
"sonata-project/page-bundle": "dev-master",
"sonata-project/page-bundle": "~2.3@dev",
"sonata-project/core-bundle": "~2.2@dev",
"sonata-project/formatter-bundle": "~2.3@dev",
"sonata-project/news-bundle": "~2.3@dev",
"sonata-project/datagrid-bundle": "~2.2@dev",
"sonata-project/exporter": "~1.3@dev",
"sonata-project/timeline-bundle": "~2.2@dev",
"sonata-project/classification-bundle": "~2.2@dev",
"sonata-project/ecommerce": "dev-develop",
"sonata-project/comment-bundle": "~2.2@dev",
"friendsofsymfony/comment-bundle": "dev-master",
"friendsofsymfony/comment-bundle": "~2.0@dev",
"dflydev/markdown": "~1.0",
"simplethings/entity-audit-bundle": "~0.5",
"willdurand/faker-bundle": "~1.0",
"mopa/bootstrap-bundle": "v3.0.0-beta3",
"twbs/bootstrap": "v3.0.0",
"stof/doctrine-extensions-bundle": "~1.1",
@ -118,21 +115,25 @@
"incenteev/composer-parameter-handler": "~2.0",
"gedmo/doctrine-extensions": "~2.3",
"friendsofsymfony/advanced-encoder-bundle": "~1.0",
"avanzu/admin-theme-bundle": "dev-master",
"friendsofsymfony/message-bundle": "~1.2",
"jquery/jquery": "1.10.*",
"oyejorge/less.php": "~1.5",
"white-october/pagerfanta-bundle": "dev-master",
"jbroadway/urlify": "1.0.0-stable",
"composer/composer": "1.0.*@dev",
"friendsofsymfony/advanced-encoder-bundle": "~1.0",
"hwi/oauth-bundle": "0.4.*@dev",
"friendsofsymfony/message-bundle": "~1.2",
"stof/doctrine-extensions-bundle": "~1.1@dev",
"avanzu/admin-theme-bundle": "dev-master",
"gedmo/doctrine-extensions": "~2.3",
"jbroadway/urlify": "1.0.0-stable",
"composer/composer": "1.0.*@dev",
"liip/theme-bundle": "1.0.*@dev",
"chamilo/chash" : "dev-master"
"chamilo/chash" : "dev-master",
"white-october/pagerfanta-bundle": "dev-master"
},
"require-dev": {
"elao/web-profiler-extra-bundle" : "~2.3@dev",

@ -1,7 +1,312 @@
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{#
{% block side_bar_after_nav %}
<p class="text-center small" style="border-top: 1px solid #444444; padding-top: 10px">
<a href="http://chamilo.org" rel="noreferrer" target="_blank">Chamilo</a>
</p>
{% endblock %}
This file is part of the Sonata package.
(c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
{% set _preview = block('preview') %}
{% set _form = block('form') %}
{% set _show = block('show') %}
{% set _list_table = block('list_table') %}
{% set _list_filters = block('list_filters') %}
{% set _tab_menu = block('tab_menu') %}
{% set _content = block('content') %}
{% set _title = block('title') %}
{% set _breadcrumb = block('breadcrumb') %}
{% set _actions = block('actions') %}
{% set _navbar_title = block('navbar_title') %}
<!DOCTYPE html>
<html {% block html_attributes %}class="no-js"{% endblock %}>
<head>
{% block meta_tags %}
<meta charset="UTF-8">
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
{% endblock %}
{% block stylesheets %}
{% for stylesheet in admin_pool.getOption('stylesheets', []) %}
<link rel="stylesheet" type="text/css" href="{{ asset(stylesheet) }}" />
{% endfor %}
{% endblock %}
{% block javascripts %}
<script>
window.SONATA_CONFIG = {
CONFIRM_EXIT: {% if admin_pool is defined and admin_pool.getOption('confirm_exit') %}true{% else %}false{% endif %},
USE_SELECT2: {% if admin_pool is defined and admin_pool.getOption('use_select2') %}true{% else %}false{% endif %},
USE_ICHECK: {% if admin_pool is defined and admin_pool.getOption('use_icheck') %}true{% else %}false{% endif %}
};
window.SONATA_TRANSLATIONS = {
CONFIRM_EXIT: '{{ 'confirm_exit'|trans({}, 'SonataAdminBundle')|escape('js') }}'
};
</script>
{% for javascript in admin_pool.getOption('javascripts', []) %}
<script src="{{ asset(javascript) }}" type="text/javascript"></script>
{% endfor %}
{% endblock %}
<title>
{{ 'Admin'|trans({}, 'SonataAdminBundle') }}
{% if _title is not empty %}
{{ _title|raw }}
{% else %}
{% if action is defined %}
-
{% for menu in admin.breadcrumbs(action) %}
{% if not loop.first %}
{% if loop.index != 2 %}
&gt;
{% endif %}
{{ menu.label }}
{% endif %}
{% endfor %}
{% endif %}
{% endif%}
</title>
</head>
<body {% block body_attributes %}class="sonata-bc skin-black fixed"{% endblock %}>
{% block sonata_header %}
<header class="header">
{% block logo %}
{% spaceless %}
<a class="logo" href="{{ url('sonata_admin_dashboard') }}">
{% if 'single_image' == admin_pool.getOption('title_mode') or 'both' == admin_pool.getOption('title_mode') %}
<img src="{{ asset(admin_pool.titlelogo) }}" alt="{{ admin_pool.title }}">
{% endif %}
{% if 'single_text' == admin_pool.getOption('title_mode') or 'both' == admin_pool.getOption('title_mode') %}
<span>{{ admin_pool.title }}</span>
{% endif %}
</a>
{% endspaceless %}
{% endblock %}
{% block sonata_nav %}
{% if admin_pool is defined %}
<nav class="navbar navbar-static-top" role="navigation">
<a href="#" class="navbar-btn sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="navbar-left">
{% block sonata_breadcrumb %}
{% if _breadcrumb is not empty or action is defined %}
<ol class="nav navbar-top-links breadcrumb">
{% if _breadcrumb is empty %}
{% if action is defined %}
{% for menu in admin.breadcrumbs(action) %}
{% if not loop.last %}
<li>
{% if menu.uri is not empty %}
<a href="{{ menu.uri }}">{{ menu.label|raw }}</a>
{% else %}
{{ menu.label }}
{% endif %}
</li>
{% else %}
<li class="active"><span>{{ menu.label }}</span></li>
{% endif %}
{% endfor %}
{% endif %}
{% else %}
{{ _breadcrumb|raw }}
{% endif %}
</ol>
{% endif %}
{% endblock sonata_breadcrumb %}
</div>
{% block sonata_top_nav_menu %}
<div class="navbar-right">
<ul class="nav navbar-nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-plus-square fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
{% include admin_pool.getTemplate('add_block') %}
</li>
<li class="dropdown user-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-user">
{% include admin_pool.getTemplate('user_block') %}
</ul>
</li>
</ul>
</div>
{% endblock %}
</nav>
{% endif %}
{% endblock sonata_nav %}
</header>
{% endblock sonata_header %}
{% block sonata_wrapper %}
<div class="wrapper row-offcanvas row-offcanvas-left">
{% block sonata_left_side %}
<aside class="left-side sidebar-offcanvas">
<section class="sidebar">
{% block sonata_side_nav %}
{% block sonata_sidebar_search %}
{% if app.security.token and is_granted('ROLE_SONATA_ADMIN') %}
<form action="{{ url('sonata_admin_search') }}" method="GET" class="sidebar-form" role="search">
<div class="input-group custom-search-form">
<input type="text" name="q" value="{{ app.request.get('q') }}" class="form-control" placeholder="{{ 'search_placeholder'|trans({}, 'SonataAdminBundle') }}">
<span class="input-group-btn">
<button class="btn btn-flat" type="submit">
<i class="fa fa-search"></i>
</button>
</span>
</div>
</form>
{% endif %}
{% endblock sonata_sidebar_search %}
{% block side_bar_before_nav %} {% endblock %}
{% block side_bar_nav %}
{% if app.security.token and is_granted('ROLE_SONATA_ADMIN') %}
<ul class="sidebar-menu">
{% for group in admin_pool.dashboardgroups %}
{% set display = (group.roles is empty or is_granted('ROLE_SUPER_ADMIN') ) %}
{% for role in group.roles if not display %}
{% set display = is_granted(role) %}
{% endfor %}
{# Do not display the group label if no item in group is available #}
{% set item_count = 0 %}
{% if display %}
{% for admin in group.items if item_count == 0 %}
{% if admin.hasroute('list') and admin.isGranted('LIST') %}
{% set item_count = item_count+1 %}
{% endif %}
{% endfor %}
{% endif %}
{% if display and (item_count > 0) %}
{% set active = false %}
{% for admin in group.items %}
{% if admin.hasroute('list') and admin.isGranted('LIST') and app.request.get('_sonata_admin') == admin.code %}
{% set active = true %}
{% endif %}
{% endfor %}
<li class="treeview{% if active %} active{% endif %}">
<a href="#">
{% if group.icon|default() %}{{ group.icon|raw }}{% endif %}
<span>{{ group.label|trans({}, group.label_catalogue) }}</span>
<i class="fa pull-right fa-angle-left"></i>
</a>
<ul class="treeview-menu{% if active %} active{% endif %}">
{% for admin in group.items %}
{% if admin.hasroute('list') and admin.isGranted('LIST') %}
<li{% if app.request.get('_sonata_admin') == admin.code %} class="active"{% endif %}><a href="{{ admin.generateUrl('list')}}"><i class="fa fa-angle-double-right"></i> {{ admin.label|trans({}, admin.translationdomain) }}</a></li>
{% endif %}
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endblock side_bar_nav %}
{% block side_bar_after_nav %}
<p class="text-center small" style="border-top: 1px solid #444444; padding-top: 10px"><a href="http://sonata-project.org" rel="noreferrer" target="_blank">sonata project</a></p>
{% endblock %}
{% endblock sonata_side_nav %}
</section>
</aside>
{% endblock sonata_left_side %}
<aside class="right-side">
{% block sonata_page_content %}
<section class="content-header">
{% block sonata_page_content_header %}
{% block sonata_page_content_nav %}
{% if _tab_menu is not empty or _actions is not empty %}
<nav class="navbar navbar-default" role="navigation">
{% if _navbar_title is not empty %}
<div class="navbar-header">
<span class="navbar-brand">{{ _navbar_title|raw }}</span>
</div>
{% endif %}
<div class="container-fluid">
<div class="navbar-left">
{% if _tab_menu is not empty %}
{{ _tab_menu|raw }}
{% endif %}
</div>
{% if _actions is not empty %}
<ul class="nav navbar-nav navbar-right">
<li class="dropdown sonata-actions">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ 'link_actions'|trans({}, 'SonataAdminBundle') }} <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu">
{{ _actions|raw }}
</ul>
</li>
</ul>
{% endif %}
</div>
</nav>
{% endif %}
{% endblock sonata_page_content_nav %}
{% endblock sonata_page_content_header %}
</section>
<section class="content">
{% block sonata_admin_content %}
{% block notice %}
{% include 'SonataCoreBundle:FlashMessage:render.html.twig' %}
{% endblock notice %}
{% if _preview is not empty %}
<div class="sonata-ba-preview">{{ _preview|raw }}</div>
{% endif %}
{% if _content is not empty %}
<div class="sonata-ba-content">{{ _content|raw }}</div>
{% endif %}
{% if _show is not empty %}
<div class="sonata-ba-show">{{ _show|raw }}</div>
{% endif %}
{% if _form is not empty %}
<div class="sonata-ba-form">{{ _form|raw }}</div>
{% endif %}
{% if _list_table is not empty or _list_filters is not empty %}
<div class="row">
<div class="sonata-ba-list {% if _list_filters|trim %}col-md-10{% else %}col-md-12{% endif %}">
{{ _list_table|raw }}
</div>
{% if _list_filters|trim %}
<div class="sonata-ba-filter col-md-2">
{{ _list_filters|raw }}
</div>
{% endif %}
</div>
{% endif %}
{% endblock sonata_admin_content %}
</section>
{% endblock sonata_page_content %}
</aside>
</div>
{% endblock sonata_wrapper %}
</body>
</html>

@ -1,5 +1,5 @@
{# See vendor/sonata-project/admin-bundle/Resources/views/standard_layout.html.twig#}
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{% extends 'ApplicationAdminBundle::standard_layout.html.twig' %}
{% block stylesheets %}
{{ parent() }}

@ -3,6 +3,7 @@
namespace ChamiloLMS\CoreBundle\Controller;
use ChamiloLMS\CoreBundle\Admin\CourseAdmin;
use ChamiloLMS\CoreBundle\Framework\PageController;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

@ -1,7 +1,5 @@
<?php
//use Symfony\Component\HttpFoundation\Request;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
umask(0000);
@ -17,22 +15,18 @@ if (isset($_SERVER['HTTP_CLIENT_IP'])
}
require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
require_once __DIR__.'/legacy.php';
// if you want to use the SonataPageBundle with multisite
// using different relative paths, you must change the request
// object to use the SiteRequest
use Sonata\PageBundle\Request\RequestFactory;
//$request = Request::createFromGlobals('host_with_path');
$request = RequestFactory::createFromGlobals('host_with_path');
$request = Sonata\PageBundle\Request\RequestFactory::createFromGlobals('host_with_path');
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

@ -12,12 +12,13 @@ Want More?
**Almsaeed studio just opened a new premium templates page. Hand picked to insure the best quality and the most affordable prices. Visit http://almsaeedstudio.com/premium for more information.**
![preview image](http://almsaeedstudio.com/adminlte.png "AdminLTE Presentation")
!["AdminLTE Presentation"](http://almsaeedstudio.com/adminlte.png "AdminLTE Presentation")
**AdminLTE** has been carefully coded with clear comments in all of its JS, LESS and HTML files. LESS has been used to increase code customizability.
Announcements:
--------------
- Check out the new updated dashboard!
- Thanks to **[@hason](https://github.com/hason)** for the great contribution, we now have a bower branch that supports Bower.js
Special Features:

@ -1,5 +1,4 @@
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,300italic,400italic,600italic);
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
@import url(//fonts.googleapis.com/css?family=Kaushan+Script);
/*!
* AdminLTE v1.2
@ -143,7 +142,7 @@ h6,
}
/* All images should be responsive */
img {
max-width: 100%important;
max-width: 100% !important;
}
.sort-highlight {
background: #f4f4f4;
@ -241,6 +240,9 @@ img {
.text-blue {
color: #0073b7 !important;
}
.text-black {
color: #222222 !important;
}
.text-light-blue {
color: #3c8dbc !important;
}
@ -316,17 +318,141 @@ img {
.table-striped > tbody > tr:nth-child(odd) > th {
background-color: #f3f4f5;
}
.table.no-border,
.table.no-border td,
.table.no-border th {
border: 0;
}
/* .text-center in tables */
table.text-center,
table.text-center td,
table.text-center th {
text-align: center;
}
.table.align th {
text-align: left;
}
.table.align td {
text-align: right;
}
.text-bold,
.text-bold.table td,
.text-bold.table th {
font-weight: 700;
}
.border-radius-none {
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
}
/* _fix for sparkline tooltip */
.jqstooltip {
padding: 5px!important;
width: auto!important;
height: auto!important;
}
/*
Gradient Background colors
*/
.bg-teal-gradient {
background: #39cccc !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;
background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important;
background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important;
background: -o-linear-gradient(#7adddd, #39cccc) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;
color: #fff;
}
.bg-light-blue-gradient {
background: #3c8dbc !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;
background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;
background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important;
background: -o-linear-gradient(#67a8ce, #3c8dbc) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;
color: #fff;
}
.bg-blue-gradient {
background: #0073b7 !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;
background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important;
background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important;
background: -o-linear-gradient(#0089db, #0073b7) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;
color: #fff;
}
.bg-aqua-gradient {
background: #00c0ef !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;
background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;
background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important;
background: -o-linear-gradient(#14d1ff, #00c0ef) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;
color: #fff;
}
.bg-yellow-gradient {
background: #f39c12 !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;
background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;
background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important;
background: -o-linear-gradient(#f7bc60, #f39c12) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;
color: #fff;
}
.bg-purple-gradient {
background: #932ab6 !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #932ab6), color-stop(1, #b959d9)) !important;
background: -ms-linear-gradient(bottom, #932ab6, #b959d9) !important;
background: -moz-linear-gradient(center bottom, #932ab6 0%, #b959d9 100%) !important;
background: -o-linear-gradient(#b959d9, #932ab6) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b959d9', endColorstr='#932ab6', GradientType=0) !important;
color: #fff;
}
.bg-green-gradient {
background: #00a65a !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;
background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;
background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important;
background: -o-linear-gradient(#00ca6d, #00a65a) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;
color: #fff;
}
.bg-red-gradient {
background: #f56954 !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f56954), color-stop(1, #f89384)) !important;
background: -ms-linear-gradient(bottom, #f56954, #f89384) !important;
background: -moz-linear-gradient(center bottom, #f56954 0%, #f89384 100%) !important;
background: -o-linear-gradient(#f89384, #f56954) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f89384', endColorstr='#f56954', GradientType=0) !important;
color: #fff;
}
.bg-black-gradient {
background: #222222 !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #222222), color-stop(1, #3c3c3c)) !important;
background: -ms-linear-gradient(bottom, #222222, #3c3c3c) !important;
background: -moz-linear-gradient(center bottom, #222222 0%, #3c3c3c 100%) !important;
background: -o-linear-gradient(#3c3c3c, #222222) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3c3c3c', endColorstr='#222222', GradientType=0) !important;
color: #fff;
}
.bg-maroon-gradient {
background: #85144b !important;
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #85144b), color-stop(1, #b11b64)) !important;
background: -ms-linear-gradient(bottom, #85144b, #b11b64) !important;
background: -moz-linear-gradient(center bottom, #85144b 0%, #b11b64 100%) !important;
background: -o-linear-gradient(#b11b64, #85144b) !important;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b11b64', endColorstr='#85144b', GradientType=0) !important;
color: #fff;
}
.connectedSortable {
min-height: 100px;
}
/*---------------------------------------------------
LESS Elements 0.9
---------------------------------------------------
A set of useful LESS mixins
More info at: http://lesselements.com
---------------------------------------------------*/
/*
Components: navbar, logo and content header
-------------------------------------------------
@ -741,7 +867,6 @@ body > .header .logo .icon {
display: block;
white-space: nowrap;
/* Prevent text from breaking */
border-bottom: 1px solid #f4f4f4;
}
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover,
@ -763,11 +888,9 @@ body > .header .logo .icon {
padding: 15px 0px;
margin-right: 5px;
/* Default background and font colors */
background: #00c0ef;
color: #f9f9f9;
/* Fallback for browsers that doesn't support rgba */
color: rgba(255, 255, 255, 0.7);
}
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.danger,
@ -1297,7 +1420,6 @@ body > .header .logo .icon {
border-bottom-left-radius: 0;
border-bottom: 0px solid #f4f4f4;
color: #444;
padding-bottom: 10px;
}
.box .box-header:before,
.box .box-header:after {
@ -1312,14 +1434,14 @@ body > .header .logo .icon {
.box .box-header > .ion,
.box .box-header .box-title {
display: inline-block;
padding: 10px 0px 10px 10px;
padding: 10px 10px 10px 10px;
margin: 0;
font-size: 20px;
font-weight: 400;
float: left;
cursor: default;
}
.box .box-header a:not(.btn) {
.box .box-header a {
color: #444;
}
.box .box-header > .box-tools {
@ -1464,7 +1586,7 @@ body > .header .logo .icon {
.box.box-solid.box-success > .box-header a {
color: #444;
}
.box.box-solid > .box-header > .box-tools > .btn {
.box.box-solid > .box-header > .box-tools .btn {
border: 0;
box-shadow: none;
}
@ -1649,6 +1771,7 @@ Component: timeline
--------------------
*/
.timeline {
position: relative;
margin: 0 0 30px 0;
padding: 0;
list-style: none;
@ -1660,7 +1783,7 @@ Component: timeline
bottom: 0;
width: 5px;
background: #ddd;
left: 45px;
left: 30px;
border: 1px solid #eee;
margin: 0;
-webkit-border-radius: 2px;
@ -2104,6 +2227,13 @@ Component: timeline
background: #fff;
padding: 10px;
}
/* Nav tabs bottom */
.tabs-bottom.nav-3 li a {
width: 3333.33333333% !important;
}
.tabs-bottom li a {
border: 0;
}
/* PAGINATION */
.pagination > li > a {
background: #fafafa;

@ -1,2 +1,2 @@
.morris-hover{position:absolute;z-index:1090;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#444;background:rgba(255, 255, 255, 0.8);border:solid 2px rgba(230, 230, 230, 0.8);font-weight: 600;font-size:14px;text-align:center;}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0;}
.morris-hover{position:absolute;z-index:1090;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#f9f9f9;background:rgba(0, 0, 0, 0.8);border:solid 2px rgba(0, 0, 0, 0.9);font-weight: 600;font-size:14px;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;}

@ -14,8 +14,8 @@
<link href="css/morris/morris.css" rel="stylesheet" type="text/css" />
<!-- jvectormap -->
<link href="css/jvectormap/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css" />
<!-- fullCalendar -->
<link href="css/fullcalendar/fullcalendar.css" rel="stylesheet" type="text/css" />
<!-- Date Picker -->
<link href="css/datepicker/datepicker3.css" rel="stylesheet" type="text/css" />
<!-- Daterange picker -->
<link href="css/daterangepicker/daterangepicker-bs3.css" rel="stylesheet" type="text/css" />
<!-- bootstrap wysihtml5 - text editor -->
@ -492,97 +492,12 @@
</div><!-- ./col -->
</div><!-- /.row -->
<!-- top row -->
<div class="row">
<div class="col-xs-12 connectedSortable">
</div><!-- /.col -->
</div>
<!-- /.row -->
<!-- Main row -->
<div class="row">
<!-- Left col -->
<section class="col-lg-6 connectedSortable">
<!-- Box (with bar chart) -->
<div class="box box-danger" id="loading-example">
<div class="box-header">
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-danger btn-sm refresh-btn" data-toggle="tooltip" title="Reload"><i class="fa fa-refresh"></i></button>
<button class="btn btn-danger btn-sm" data-widget='collapse' data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button>
<button class="btn btn-danger btn-sm" data-widget='remove' data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
</div><!-- /. tools -->
<i class="fa fa-cloud"></i>
<h3 class="box-title">Server Load</h3>
</div><!-- /.box-header -->
<div class="box-body no-padding">
<div class="row">
<div class="col-sm-7">
<!-- bar chart -->
<div class="chart" id="bar-chart" style="height: 250px;"></div>
</div>
<div class="col-sm-5">
<div class="pad">
<!-- Progress bars -->
<div class="clearfix">
<span class="pull-left">Bandwidth</span>
<small class="pull-right">10/200 GB</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 70%;"></div>
</div>
<section class="col-lg-7 connectedSortable">
<div class="clearfix">
<span class="pull-left">Transfered</span>
<small class="pull-right">10 GB</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-red" style="width: 70%;"></div>
</div>
<div class="clearfix">
<span class="pull-left">Activity</span>
<small class="pull-right">73%</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-light-blue" style="width: 70%;"></div>
</div>
<div class="clearfix">
<span class="pull-left">FTP</span>
<small class="pull-right">30 GB</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-aqua" style="width: 70%;"></div>
</div>
<!-- Buttons -->
<p>
<button class="btn btn-default btn-sm"><i class="fa fa-cloud-download"></i> Generate PDF</button>
</p>
</div><!-- /.pad -->
</div><!-- /.col -->
</div><!-- /.row - inside box -->
</div><!-- /.box-body -->
<div class="box-footer">
<div class="row">
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<input type="text" class="knob" data-readonly="true" value="80" data-width="60" data-height="60" data-fgColor="#f56954"/>
<div class="knob-label">CPU</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<input type="text" class="knob" data-readonly="true" value="50" data-width="60" data-height="60" data-fgColor="#00a65a"/>
<div class="knob-label">Disk</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center">
<input type="text" class="knob" data-readonly="true" value="30" data-width="60" data-height="60" data-fgColor="#3c8dbc"/>
<div class="knob-label">RAM</div>
</div><!-- ./col -->
</div><!-- /.row -->
</div><!-- /.box-footer -->
</div><!-- /.box -->
<!-- Custom tabs (Charts with tabs)-->
<div class="nav-tabs-custom">
<!-- Tabs within a box -->
@ -597,142 +512,15 @@
<div class="chart tab-pane" id="sales-chart" style="position: relative; height: 300px;"></div>
</div>
</div><!-- /.nav-tabs-custom -->
<!-- Calendar -->
<div class="box box-warning">
<div class="box-header">
<i class="fa fa-calendar"></i>
<div class="box-title">Calendar</div>
<!-- tools box -->
<div class="pull-right box-tools">
<!-- button with a dropdown -->
<div class="btn-group">
<button class="btn btn-warning btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bars"></i></button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#">Add new event</a></li>
<li><a href="#">Clear events</a></li>
<li class="divider"></li>
<li><a href="#">View calendar</a></li>
</ul>
</div>
</div><!-- /. tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<!--The calendar -->
<div id="calendar"></div>
</div><!-- /.box-body -->
</div><!-- /.box -->
<!-- quick email widget -->
<div class="box box-info">
<div class="box-header">
<i class="fa fa-envelope"></i>
<h3 class="box-title">Quick Email</h3>
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-info btn-sm" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
</div><!-- /. tools -->
</div>
<div class="box-body">
<form action="#" method="post">
<div class="form-group">
<input type="email" class="form-control" name="emailto" placeholder="Email to:"/>
</div>
<div class="form-group">
<input type="text" class="form-control" name="subject" placeholder="Subject"/>
</div>
<div>
<textarea class="textarea" placeholder="Message" style="width: 100%; height: 125px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</form>
</div>
<div class="box-footer clearfix">
<button class="pull-right btn btn-default" id="sendEmail">Send <i class="fa fa-arrow-circle-right"></i></button>
</div>
</div>
</section><!-- /.Left col -->
<!-- right col (We are only adding the ID to make the widgets sortable)-->
<section class="col-lg-6 connectedSortable">
<!-- Map box -->
<div class="box box-primary">
<div class="box-header">
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-primary btn-sm daterange pull-right" data-toggle="tooltip" title="Date range"><i class="fa fa-calendar"></i></button>
<button class="btn btn-primary btn-sm pull-right" data-widget='collapse' data-toggle="tooltip" title="Collapse" style="margin-right: 5px;"><i class="fa fa-minus"></i></button>
</div><!-- /. tools -->
<i class="fa fa-map-marker"></i>
<h3 class="box-title">
Visitors
</h3>
</div>
<div class="box-body no-padding">
<div id="world-map" style="height: 300px;"></div>
<div class="table-responsive">
<!-- .table - Uses sparkline charts-->
<table class="table table-striped">
<tr>
<th>Country</th>
<th>Visitors</th>
<th>Online</th>
<th>Page Views</th>
</tr>
<tr>
<td><a href="#">USA</a></td>
<td><div id="sparkline-1"></div></td>
<td>209</td>
<td>239</td>
</tr>
<tr>
<td><a href="#">India</a></td>
<td><div id="sparkline-2"></div></td>
<td>131</td>
<td>958</td>
</tr>
<tr>
<td><a href="#">Britain</a></td>
<td><div id="sparkline-3"></div></td>
<td>19</td>
<td>417</td>
</tr>
<tr>
<td><a href="#">Brazil</a></td>
<td><div id="sparkline-4"></div></td>
<td>109</td>
<td>476</td>
</tr>
<tr>
<td><a href="#">China</a></td>
<td><div id="sparkline-5"></div></td>
<td>192</td>
<td>437</td>
</tr>
<tr>
<td><a href="#">Australia</a></td>
<td><div id="sparkline-6"></div></td>
<td>1709</td>
<td>947</td>
</tr>
</table><!-- /.table -->
</div>
</div><!-- /.box-body-->
<div class="box-footer">
<button class="btn btn-info"><i class="fa fa-download"></i> Generate PDF</button>
<button class="btn btn-warning"><i class="fa fa-bug"></i> Report Bug</button>
</div>
</div>
<!-- /.box -->
<!-- Chat box -->
<div class="box box-success">
<div class="box-header">
<h3 class="box-title"><i class="fa fa-comments-o"></i> Chat</h3>
<i class="fa fa-comments-o"></i>
<h3 class="box-title">Chat</h3>
<div class="box-tools pull-right" data-toggle="tooltip" title="Status">
<div class="btn-group" data-toggle="btn-toggle" >
<button type="button" class="btn btn-default btn-sm active"><i class="fa fa-square text-green"></i></button>
<button type="button" class="btn btn-default btn-sm active"><i class="fa fa-square text-green"></i></button>
<button type="button" class="btn btn-default btn-sm"><i class="fa fa-square text-red"></i></button>
</div>
</div>
@ -795,7 +583,7 @@
</div>
</div>
</div>
</div><!-- /.box (chat box) -->
</div><!-- /.box (chat box) -->
<!-- TO DO List -->
<div class="box box-primary">
@ -819,9 +607,9 @@
<span class="handle">
<i class="fa fa-ellipsis-v"></i>
<i class="fa fa-ellipsis-v"></i>
</span>
</span>
<!-- checkbox -->
<input type="checkbox" value="" name=""/>
<input type="checkbox" value="" name=""/>
<!-- todo text -->
<span class="text">Design a nice theme</span>
<!-- Emphasis label -->
@ -836,7 +624,7 @@
<span class="handle">
<i class="fa fa-ellipsis-v"></i>
<i class="fa fa-ellipsis-v"></i>
</span>
</span>
<input type="checkbox" value="" name=""/>
<span class="text">Make the theme responsive</span>
<small class="label label-info"><i class="fa fa-clock-o"></i> 4 hours</small>
@ -904,6 +692,171 @@
</div>
</div><!-- /.box -->
<!-- quick email widget -->
<div class="box box-info">
<div class="box-header">
<i class="fa fa-envelope"></i>
<h3 class="box-title">Quick Email</h3>
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-info btn-sm" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
</div><!-- /. tools -->
</div>
<div class="box-body">
<form action="#" method="post">
<div class="form-group">
<input type="email" class="form-control" name="emailto" placeholder="Email to:"/>
</div>
<div class="form-group">
<input type="text" class="form-control" name="subject" placeholder="Subject"/>
</div>
<div>
<textarea class="textarea" placeholder="Message" style="width: 100%; height: 125px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</form>
</div>
<div class="box-footer clearfix">
<button class="pull-right btn btn-default" id="sendEmail">Send <i class="fa fa-arrow-circle-right"></i></button>
</div>
</div>
</section><!-- /.Left col -->
<!-- right col (We are only adding the ID to make the widgets sortable)-->
<section class="col-lg-5 connectedSortable">
<!-- Map box -->
<div class="box box-solid bg-light-blue-gradient">
<div class="box-header">
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-primary btn-sm daterange pull-right" data-toggle="tooltip" title="Date range"><i class="fa fa-calendar"></i></button>
<button class="btn btn-primary btn-sm pull-right" data-widget='collapse' data-toggle="tooltip" title="Collapse" style="margin-right: 5px;"><i class="fa fa-minus"></i></button>
</div><!-- /. tools -->
<i class="fa fa-map-marker"></i>
<h3 class="box-title">
Visitors
</h3>
</div>
<div class="box-body">
<div id="world-map" style="height: 250px;"></div>
</div><!-- /.box-body-->
<div class="box-footer no-border">
<div class="row">
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<div id="sparkline-1"></div>
<div class="knob-label">Visitors</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<div id="sparkline-2"></div>
<div class="knob-label">Online</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center">
<div id="sparkline-3"></div>
<div class="knob-label">Exists</div>
</div><!-- ./col -->
</div><!-- /.row -->
</div>
</div>
<!-- /.box -->
<!-- solid sales graph -->
<div class="box box-solid bg-teal-gradient">
<div class="box-header">
<i class="fa fa-th"></i>
<h3 class="box-title">Sales Graph</h3>
<div class="box-tools pull-right">
<button class="btn bg-teal btn-sm" data-widget="collapse"><i class="fa fa-minus"></i></button>
<button class="btn bg-teal btn-sm" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body border-radius-none">
<div class="chart" id="line-chart" style="height: 250px;"></div>
</div><!-- /.box-body -->
<div class="box-footer no-border">
<div class="row">
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<input type="text" class="knob" data-readonly="true" value="20" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
<div class="knob-label">Mail-Orders</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
<input type="text" class="knob" data-readonly="true" value="50" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
<div class="knob-label">Online</div>
</div><!-- ./col -->
<div class="col-xs-4 text-center">
<input type="text" class="knob" data-readonly="true" value="30" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
<div class="knob-label">In-Store</div>
</div><!-- ./col -->
</div><!-- /.row -->
</div><!-- /.box-footer -->
</div><!-- /.box -->
<!-- Calendar -->
<div class="box box-solid bg-green-gradient">
<div class="box-header">
<i class="fa fa-calendar"></i>
<h3 class="box-title">Calendar</h3>
<!-- tools box -->
<div class="pull-right box-tools">
<!-- button with a dropdown -->
<div class="btn-group">
<button class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bars"></i></button>
<ul class="dropdown-menu pull-right" role="menu">
<li><a href="#">Add new event</a></li>
<li><a href="#">Clear events</a></li>
<li class="divider"></li>
<li><a href="#">View calendar</a></li>
</ul>
</div>
<button class="btn btn-success btn-sm" data-widget="collapse"><i class="fa fa-minus"></i></button>
<button class="btn btn-success btn-sm" data-widget="remove"><i class="fa fa-times"></i></button>
</div><!-- /. tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<!--The calendar -->
<div id="calendar" style="width: 100%"></div>
</div><!-- /.box-body -->
<div class="box-footer text-black">
<div class="row">
<div class="col-sm-6">
<!-- Progress bars -->
<div class="clearfix">
<span class="pull-left">Task #1</span>
<small class="pull-right">90%</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 90%;"></div>
</div>
<div class="clearfix">
<span class="pull-left">Task #2</span>
<small class="pull-right">70%</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 70%;"></div>
</div>
</div><!-- /.col -->
<div class="col-sm-6">
<div class="clearfix">
<span class="pull-left">Task #3</span>
<small class="pull-right">60%</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 60%;"></div>
</div>
<div class="clearfix">
<span class="pull-left">Task #4</span>
<small class="pull-right">40%</small>
</div>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 40%;"></div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div>
</div><!-- /.box -->
</section><!-- right col -->
</div><!-- /.row (main row) -->
@ -928,12 +881,12 @@
<!-- jvectormap -->
<script src="js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js" type="text/javascript"></script>
<script src="js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js" type="text/javascript"></script>
<!-- fullCalendar -->
<script src="js/plugins/fullcalendar/fullcalendar.min.js" type="text/javascript"></script>
<!-- jQuery Knob Chart -->
<script src="js/plugins/jqueryKnob/jquery.knob.js" type="text/javascript"></script>
<!-- daterangepicker -->
<script src="js/plugins/daterangepicker/daterangepicker.js" type="text/javascript"></script>
<!-- datepicker -->
<script src="js/plugins/datepicker/bootstrap-datepicker.js" type="text/javascript"></script>
<!-- Bootstrap WYSIHTML5 -->
<script src="js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js" type="text/javascript"></script>
<!-- iCheck -->
@ -941,10 +894,10 @@
<!-- AdminLTE App -->
<script src="js/AdminLTE/app.js" type="text/javascript"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
<script src="js/AdminLTE/dashboard.js" type="text/javascript"></script>
<script src="js/AdminLTE/dashboard.js" type="text/javascript"></script>
<!-- AdminLTE for demo purposes -->
<script src="js/AdminLTE/demo.js" type="text/javascript"></script>

@ -16,14 +16,15 @@ $(function() {
forcePlaceholderSize: true,
zIndex: 999999
}).disableSelection();
$(".box-header, .nav-tabs").css("cursor","move");
$(".connectedSortable .box-header, .connectedSortable .nav-tabs-custom").css("cursor", "move");
//jQuery UI sortable for the todo list
$(".todo-list").sortable({
placeholder: "sort-highlight",
handle: ".handle",
forcePlaceholderSize: true,
zIndex: 999999
}).disableSelection();;
}).disableSelection();
;
//bootstrap WYSIHTML5 - text editor
$(".textarea").wysihtml5();
@ -65,7 +66,7 @@ $(function() {
//World map by jvectormap
$('#world-map').vectorMap({
map: 'world_mill_en',
backgroundColor: "#fff",
backgroundColor: "transparent",
regionStyle: {
initial: {
fill: '#e4e4e4',
@ -78,7 +79,7 @@ $(function() {
series: {
regions: [{
values: visitorsData,
scale: ["#3c8dbc", "#2D79A6"], //['#3E5E6B', '#A6BAC2'],
scale: ["#92c1dc", "#ebf4f9"],
normalizeFunction: 'polynomial'
}]
},
@ -89,118 +90,33 @@ $(function() {
});
//Sparkline charts
var myvalues = [15, 19, 20, -22, -33, 27, 31, 27, 19, 30, 21];
var myvalues = [1000, 1200, 920, 927, 931, 1027, 819, 930, 1021];
$('#sparkline-1').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
type: 'line',
lineColor: '#92c1dc',
fillColor: "#ebf4f9",
height: '50',
width: '80'
});
myvalues = [15, 19, 20, 22, -2, -10, -7, 27, 19, 30, 21];
myvalues = [515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921];
$('#sparkline-2').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
type: 'line',
lineColor: '#92c1dc',
fillColor: "#ebf4f9",
height: '50',
width: '80'
});
myvalues = [15, -19, -20, 22, 33, 27, 31, 27, 19, 30, 21];
myvalues = [15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21];
$('#sparkline-3').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
});
myvalues = [15, 19, 20, 22, 33, -27, -31, 27, 19, 30, 21];
$('#sparkline-4').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
});
myvalues = [15, 19, 20, 22, 33, 27, 31, -27, -19, 30, 21];
$('#sparkline-5').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
});
myvalues = [15, 19, -20, 22, -13, 27, 31, 27, 19, 30, 21];
$('#sparkline-6').sparkline(myvalues, {
type: 'bar',
barColor: '#00a65a',
negBarColor: "#f56954",
height: '20px'
});
//Date for the calendar events (dummy data)
var date = new Date();
var d = date.getDate(),
m = date.getMonth(),
y = date.getFullYear();
type: 'line',
lineColor: '#92c1dc',
fillColor: "#ebf4f9",
height: '50',
width: '80'
});
//Calendar
$('#calendar').fullCalendar({
editable: true, //Enable drag and drop
events: [
{
title: 'All Day Event',
start: new Date(y, m, 1),
backgroundColor: "#3c8dbc", //light-blue
borderColor: "#3c8dbc" //light-blue
},
{
title: 'Long Event',
start: new Date(y, m, d - 5),
end: new Date(y, m, d - 2),
backgroundColor: "#f39c12", //yellow
borderColor: "#f39c12" //yellow
},
{
title: 'Meeting',
start: new Date(y, m, d, 10, 30),
allDay: false,
backgroundColor: "#0073b7", //Blue
borderColor: "#0073b7" //Blue
},
{
title: 'Lunch',
start: new Date(y, m, d, 12, 0),
end: new Date(y, m, d, 14, 0),
allDay: false,
backgroundColor: "#00c0ef", //Info (aqua)
borderColor: "#00c0ef" //Info (aqua)
},
{
title: 'Birthday Party',
start: new Date(y, m, d + 1, 19, 0),
end: new Date(y, m, d + 1, 22, 30),
allDay: false,
backgroundColor: "#00a65a", //Success (green)
borderColor: "#00a65a" //Success (green)
},
{
title: 'Click for Google',
start: new Date(y, m, 28),
end: new Date(y, m, 29),
url: 'http://google.com/',
backgroundColor: "#f56954", //red
borderColor: "#f56954" //red
}
],
buttonText: {//This is to add icons to the visible buttons
prev: "<span class='fa fa-caret-left'></span>",
next: "<span class='fa fa-caret-right'></span>",
today: 'today',
month: 'month',
week: 'week',
day: 'day'
},
header: {
left: 'title',
center: '',
right: 'prev,next'
}
});
//The Calender
$("#calendar").datepicker();
//SLIMSCROLL FOR CHAT WIDGET
$('#chat-box').slimScroll({
@ -230,6 +146,36 @@ $(function() {
lineColors: ['#a0d0e0', '#3c8dbc'],
hideHover: 'auto'
});
var line = new Morris.Line({
element: 'line-chart',
resize: true,
data: [
{y: '2011 Q1', item1: 2666},
{y: '2011 Q2', item1: 2778},
{y: '2011 Q3', item1: 4912},
{y: '2011 Q4', item1: 3767},
{y: '2012 Q1', item1: 6810},
{y: '2012 Q2', item1: 5670},
{y: '2012 Q3', item1: 4820},
{y: '2012 Q4', item1: 15073},
{y: '2013 Q1', item1: 10687},
{y: '2013 Q2', item1: 8432}
],
xkey: 'y',
ykeys: ['item1'],
labels: ['Item 1'],
lineColors: ['#efefef'],
lineWidth: 2,
hideHover: 'auto',
gridTextColor: "#fff",
gridStrokeWidth: 0.4,
pointSize: 4,
pointStrokeColors: ["#efefef"],
gridLineColor: "#efefef",
gridTextFamily: "Open Sans",
gridTextSize: 10
});
//Donut Chart
var donut = new Morris.Donut({
element: 'sales-chart',

@ -6,7 +6,7 @@
!*/
//google fonts
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,300italic,400italic,600italic);
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
@import url(//fonts.googleapis.com/css?family=Kaushan+Script);
//MISC

@ -44,13 +44,12 @@
//Add top left and top right border radius
.border-radius(@box-border-radius; @box-border-radius; 0; 0);
border-bottom: 0px solid @box-border-color;
color: #444;
padding-bottom: 10px;
color: #444;
// Icons and box title
> .fa, > .glyphicon, > .ion,
.box-title {
display: inline-block;
padding: 10px 0px 10px 10px;
padding: 10px 10px 10px 10px;
margin: 0;
font-size: 20px;
font-weight: 400;
@ -182,7 +181,7 @@
.box-solid-variant(@green);
}
> .box-header > .box-tools > .btn {
> .box-header > .box-tools .btn {
border: 0;
box-shadow: none;
}

@ -140,7 +140,7 @@ h6,
/* All images should be responsive */
img {
max-width: 100%important;
max-width: 100% !important;
}
.sort-highlight {
@ -243,6 +243,9 @@ img {
.text-blue {
color: @blue !important;
}
.text-black {
color: @black!important;
}
.text-light-blue {
color: @light-blue !important;
}
@ -327,16 +330,93 @@ img {
}
}
.table.no-border {
&, td, th {
border: 0;
}
}
/* .text-center in tables */
table.text-center {
td, th {
&, td, th {
text-align: center;
}
}
.table.align {
th {
text-align: left;
}
td {
text-align: right;
}
}
.text-bold {
&, &.table td, &.table th {
font-weight: 700;
}
}
.border-radius-none {
.border-radius(0)!important;
}
/* _fix for sparkline tooltip */
.jqstooltip{
padding: 5px!important;
width:auto!important;
height:auto!important;
}
/*
Gradient Background colors
*/
.bg-teal-gradient {
.gradient(@teal; @teal; lighten(@teal, 16%))!important;
color: #fff;
}
.bg-light-blue-gradient {
.gradient(@light-blue; @light-blue; lighten(@light-blue, 12%))!important;
color: #fff;
}
.bg-blue-gradient {
.gradient(@blue; @blue; lighten(@blue, 7%))!important;
color: #fff;
}
.bg-aqua-gradient {
.gradient(@aqua; @aqua; lighten(@aqua, 7%))!important;
color: #fff;
}
.bg-yellow-gradient {
.gradient(@yellow; @yellow; lighten(@yellow, 16%))!important;
color: #fff;
}
.bg-purple-gradient {
.gradient(@purple; @purple; lighten(@purple, 16%))!important;
color: #fff;
}
.bg-green-gradient {
.gradient(@green; @green; lighten(@green, 7%))!important;
color: #fff;
}
.bg-red-gradient {
.gradient(@red; @red; lighten(@red, 10%))!important;
color: #fff;
}
.bg-black-gradient {
.gradient(@black; @black; lighten(@black, 10%))!important;
color: #fff;
}
.bg-maroon-gradient {
.gradient(@maroon; @maroon; lighten(@maroon, 10%))!important;
color: #fff;
}
.connectedSortable {
min-height: 100px;
}

@ -26,7 +26,7 @@
//Add color to the sidebar toggle button
.sidebar-toggle .icon-bar {
background: @font-color;
}
.sidebar-toggle:hover .icon-bar {
background: @hover-color!important;
@ -50,8 +50,8 @@
.box-solid-variant(@color) {
> .box-header {
color: #fff;
background: @color;
background-color: @color;
background: @color;
background-color: @color;
a {
color: #444;
}
@ -101,7 +101,7 @@
border-bottom-left-radius: @bottom-left;
}
//Bootstrap mixins for progress bars. You can find original copies
//Bootstrap mixins for progress bars. You can find original copies
//with the bootstrap assets (www.getbootstrap.com)
.progress-bar-variant(@color) {
background-color: @color;
@ -121,4 +121,46 @@
background-image: -moz-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
}
}
/*---------------------------------------------------
LESS Elements 0.9
---------------------------------------------------
A set of useful LESS mixins
More info at: http://lesselements.com
---------------------------------------------------*/
.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, @start),
color-stop(1, @stop));
background: -ms-linear-gradient(bottom,
@start,
@stop);
background: -moz-linear-gradient(center bottom,
@start 0%,
@stop 100%);
background: -o-linear-gradient(@stop,
@start);
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@stop,@start));
}
.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, rgb(@start,@start,@start)),
color-stop(1, rgb(@stop,@stop,@stop)));
background: -ms-linear-gradient(bottom,
rgb(@start,@start,@start) 0%,
rgb(@stop,@stop,@stop) 100%);
background: -moz-linear-gradient(center bottom,
rgb(@start,@start,@start) 0%,
rgb(@stop,@stop,@stop) 100%);
background: -o-linear-gradient(rgb(@stop,@stop,@stop),
rgb(@start,@start,@start));
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",rgb(@stop,@stop,@stop),rgb(@start,@start,@start)));
}

@ -132,6 +132,20 @@
}
}
/* Nav tabs bottom */
.tabs-bottom {
&.nav-3 {
li a {
width: percentage(100/3)!important;
}
}
li a {
border: 0;
}
}
/* PAGINATION */
.pagination {
> li > a {

@ -61,4 +61,4 @@
@btn-border-radius: 3px;
//CHAT widget
@attachment-border-radius: 3px;
@attachment-border-radius: 3px;

@ -69,7 +69,7 @@
* @param $context
*/
function applyAdmin($context) {
if (global.admin === 'undefined') {
if (typeof global.admin != 'undefined') {
return;
}
@ -130,13 +130,18 @@
* @returns {boolean}
*/
isFormControlTypeByName: function (name, type) {
var position = name.length,
search = '[' + type + ']',
lastIndex = name.lastIndexOf(search);
position = position - search.length;
return lastIndex !== -1 && lastIndex === position;
if (typeof name != 'undefined') {
var position = name.length,
search = '[' + type + ']',
lastIndex = name.lastIndexOf(search);
position = position - search.length;
return lastIndex !== -1 && lastIndex === position;
}
return false;
},
/**
@ -289,7 +294,7 @@
$children.each(function () {
var $child = $(this),
blockId = $child.attr('data-block-id');
if (blockId !== 'undefined') {
if (typeof blockId != 'undefined') {
childCount++;
}
});
@ -468,7 +473,7 @@
success: function (resp) {
$loader.hide();
if (resp.result && resp.result === 'ok') {
if ($nameFormControl !== 'undefined') {
if (typeof $nameFormControl != 'undefined') {
$title.text($nameFormControl.val() !== '' ? $nameFormControl.val() : blockType);
}
event.$block.removeClass('page-composer__container__child--expanded');
@ -626,7 +631,7 @@
childId = $child.attr('data-block-id');
// pending block creation has an undefined child id
if (childId !== 'undefined') {
if (typeof childId != 'undefined') {
newPositions.push({
'id': parseInt(childId, 10),
'position': position,
@ -673,7 +678,7 @@
connectToSortable: '.page-composer__container__children',
drop: function (event, ui) {
var droppedBlockId = ui.draggable.attr('data-block-id');
if (droppedBlockId !== 'undefined') {
if (typeof droppedBlockId != 'undefined') {
ui.helper.remove();
var $container = $(this),
@ -765,4 +770,4 @@
global.PageComposer = PageComposer;
})(jQuery, window);
})(jQuery, window);

Loading…
Cancel
Save