Improve assets loading: remove http call to load task colors and async load of app.js

This commit is contained in:
Frederic Guillot 2015-06-23 20:47:46 -04:00
parent cdd2080fc0
commit 948ebb2424
7 changed files with 22 additions and 23 deletions

View File

@ -93,16 +93,6 @@ class App extends Base
$this->response->html($this->helper->text->markdown($payload['text']));
}
/**
* Colors stylesheet
*
* @access public
*/
public function colors()
{
$this->response->css($this->color->getCss());
}
/**
* Task autocompletion (Ajax)
*

View File

@ -16,9 +16,9 @@ class Asset extends \Core\Base
* @param string $filename Filename
* @return string
*/
public function js($filename)
public function js($filename, $async = false)
{
return '<script type="text/javascript" src="'.$filename.'?'.filemtime($filename).'"></script>';
return '<script '.($async ? 'async' : '').' type="text/javascript" src="'.$filename.'?'.filemtime($filename).'"></script>';
}
/**
@ -48,4 +48,15 @@ class Asset extends \Core\Base
return '';
}
/**
* Get CSS for task colors
*
* @access public
* @return string
*/
public function colorCss()
{
return '<style>'.$this->color->getCss().'</style>';
}
}

View File

@ -21,7 +21,6 @@ class Acl extends Base
'user' => array('google', 'github'),
'task' => array('readonly'),
'board' => array('readonly'),
'app' => array('colors'),
'webhook' => '*',
'ical' => '*',
'feed' => '*',

View File

@ -1,6 +1,3 @@
<?= $this->asset->js('assets/js/vendor/d3.v3.min.js') ?>
<?= $this->asset->js('assets/js/vendor/c3.min.js') ?>
<section id="main">
<div class="page-header">
<ul>
@ -32,4 +29,7 @@
<?= $content_for_sublayout ?>
</div>
</section>
</section>
</section>
<?= $this->asset->js('assets/js/vendor/d3.v3.min.js') ?>
<?= $this->asset->js('assets/js/vendor/c3.min.js') ?>

View File

@ -1,6 +1,3 @@
<?= $this->asset->js('assets/js/vendor/d3.v3.min.js') ?>
<?= $this->asset->js('assets/js/vendor/c3.min.js') ?>
<div class="page-header">
<h2><?= t('Budget overview') ?></h2>
</div>
@ -32,3 +29,6 @@
<?php else: ?>
<p class="alert"><?= t('There is not enough data to show something.') ?></p>
<?php endif ?>
<?= $this->asset->js('assets/js/vendor/d3.v3.min.js') ?>
<?= $this->asset->js('assets/js/vendor/c3.min.js') ?>

View File

@ -12,12 +12,12 @@
<?php endif ?>
<?php if (! isset($not_editable)): ?>
<?= $this->asset->js('assets/js/app.js') ?>
<?= $this->asset->js('assets/js/app.js', true) ?>
<?php endif ?>
<?= $this->asset->css($this->url->href('app', 'colors'), false, 'all') ?>
<?= $this->asset->css('assets/css/app.css') ?>
<?= $this->asset->css('assets/css/print.css', true, 'print') ?>
<?= $this->asset->colorCss() ?>
<?= $this->asset->customCss() ?>
<link rel="icon" type="image/png" href="assets/img/favicon.png">

View File

@ -37,7 +37,6 @@ class AclTest extends Base
$acl = new Acl($this->container);
$this->assertTrue($acl->isPublicAction('board', 'readonly'));
$this->assertFalse($acl->isPublicAction('board', 'show'));
$this->assertTrue($acl->isPublicAction('app', 'colors'));
$this->assertTrue($acl->isPublicAction('feed', 'project'));
$this->assertTrue($acl->isPublicAction('feed', 'user'));
}