Compare commits
15 commits
Author | SHA1 | Date | |
---|---|---|---|
e3f08f0ee7 | |||
808fd9851a | |||
8a1824830b | |||
598ee706ae | |||
4511ba9d60 | |||
b91dafab41 | |||
1999231ec3 | |||
1b1a90c1d7 | |||
d6a700da59 | |||
951e3b4827 | |||
92a5078225 | |||
06aa165160 | |||
b356f59206 | |||
1b28d43b7f | |||
3eac0b0c23 |
|
@ -14,6 +14,7 @@ use b8\Exception\HttpException;
|
||||||
use b8\Http\Response;
|
use b8\Http\Response;
|
||||||
use b8\Http\Response\RedirectResponse;
|
use b8\Http\Response\RedirectResponse;
|
||||||
use b8\View;
|
use b8\View;
|
||||||
|
use PHPCI\Model\Build;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPCI Front Controller
|
* PHPCI Front Controller
|
||||||
|
@ -91,18 +92,30 @@ class Application extends b8\Application
|
||||||
$this->response->setContent($view->render());
|
$this->response->setContent($view->render());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (View::exists('layout') && $this->response->hasLayout()) {
|
if ($this->response->hasLayout()) {
|
||||||
$view = new View('layout');
|
$this->setLayoutVariables($this->controller->layout);
|
||||||
$pageTitle = $this->config->get('page_title', null);
|
|
||||||
|
|
||||||
if (!is_null($pageTitle)) {
|
$this->controller->layout->content = $this->response->getContent();
|
||||||
$view->title = $pageTitle;
|
$this->response->setContent($this->controller->layout->render());
|
||||||
}
|
|
||||||
|
|
||||||
$view->content = $this->response->getContent();
|
|
||||||
$this->response->setContent($view->render());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->response;
|
return $this->response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function loadController($class)
|
||||||
|
{
|
||||||
|
$controller = parent::loadController($class);
|
||||||
|
$controller->layout = new View('layout');
|
||||||
|
$controller->layout->title = 'PHPCI';
|
||||||
|
$controller->layout->breadcrumb = array();
|
||||||
|
|
||||||
|
return $controller;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function setLayoutVariables(View &$layout)
|
||||||
|
{
|
||||||
|
/** @var \PHPCI\Store\ProjectStore $projectStore */
|
||||||
|
$projectStore = b8\Store\Factory::getStore('Project');
|
||||||
|
$layout->projects = $projectStore->getAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ class DaemoniseCommand extends Command
|
||||||
$this->sleep = 0;
|
$this->sleep = 0;
|
||||||
$runner = new RunCommand($this->logger);
|
$runner = new RunCommand($this->logger);
|
||||||
$runner->setMaxBuilds(1);
|
$runner->setMaxBuilds(1);
|
||||||
|
$runner->setIsDaemon(true);
|
||||||
|
|
||||||
$emptyInput = new ArgvInput(array());
|
$emptyInput = new ArgvInput(array());
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,11 @@ class RunCommand extends Command
|
||||||
*/
|
*/
|
||||||
protected $maxBuilds = null;
|
protected $maxBuilds = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $isFromDaemon = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \Monolog\Logger $logger
|
* @param \Monolog\Logger $logger
|
||||||
* @param string $name
|
* @param string $name
|
||||||
|
@ -62,8 +67,7 @@ class RunCommand extends Command
|
||||||
{
|
{
|
||||||
$this
|
$this
|
||||||
->setName('phpci:run-builds')
|
->setName('phpci:run-builds')
|
||||||
->setDescription('Run all pending PHPCI builds.')
|
->setDescription('Run all pending PHPCI builds.');
|
||||||
->addOption('verbose', 'v', InputOption::VALUE_NONE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,7 +79,7 @@ class RunCommand extends Command
|
||||||
|
|
||||||
// For verbose mode we want to output all informational and above
|
// For verbose mode we want to output all informational and above
|
||||||
// messages to the symphony output interface.
|
// messages to the symphony output interface.
|
||||||
if ($input->getOption('verbose')) {
|
if ($input->hasOption('verbose') && $input->getOption('verbose')) {
|
||||||
$this->logger->pushHandler(
|
$this->logger->pushHandler(
|
||||||
new OutputLogHandler($this->output, Logger::INFO)
|
new OutputLogHandler($this->output, Logger::INFO)
|
||||||
);
|
);
|
||||||
|
@ -91,13 +95,17 @@ class RunCommand extends Command
|
||||||
|
|
||||||
$builds = 0;
|
$builds = 0;
|
||||||
|
|
||||||
foreach ($result['items'] as $build) {
|
while (count($result['items'])) {
|
||||||
|
$build = array_shift($result['items']);
|
||||||
$build = BuildFactory::getBuild($build);
|
$build = BuildFactory::getBuild($build);
|
||||||
|
|
||||||
// Skip build (for now) if there's already a build running in that project:
|
// Skip build (for now) if there's already a build running in that project:
|
||||||
if (in_array($build->getProjectId(), $running)) {
|
if (!$this->isFromDaemon && in_array($build->getProjectId(), $running)) {
|
||||||
$this->logger->addInfo('Skipping Build #'.$build->getId() . ' - Project build already in progress.');
|
$this->logger->addInfo('Skipping Build #'.$build->getId() . ' - Project build already in progress.');
|
||||||
|
$result['items'][] = $build;
|
||||||
|
|
||||||
|
// Re-run build validator:
|
||||||
|
$running = $this->validateRunningBuilds();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,6 +125,7 @@ class RunCommand extends Command
|
||||||
$this->logger->popHandler($buildDbLog);
|
$this->logger->popHandler($buildDbLog);
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
$build->setStatus(Build::STATUS_FAILED);
|
$build->setStatus(Build::STATUS_FAILED);
|
||||||
|
$build->setFinished(new \DateTime());
|
||||||
$build->setLog($build->getLog() . PHP_EOL . PHP_EOL . $ex->getMessage());
|
$build->setLog($build->getLog() . PHP_EOL . PHP_EOL . $ex->getMessage());
|
||||||
$store->save($build);
|
$store->save($build);
|
||||||
}
|
}
|
||||||
|
@ -133,6 +142,11 @@ class RunCommand extends Command
|
||||||
$this->maxBuilds = (int)$numBuilds;
|
$this->maxBuilds = (int)$numBuilds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setIsDaemon($fromDaemon)
|
||||||
|
{
|
||||||
|
$this->isFromDaemon = (bool)$fromDaemon;
|
||||||
|
}
|
||||||
|
|
||||||
protected function validateRunningBuilds()
|
protected function validateRunningBuilds()
|
||||||
{
|
{
|
||||||
/** @var \PHPCI\Store\BuildStore $store */
|
/** @var \PHPCI\Store\BuildStore $store */
|
||||||
|
@ -152,6 +166,7 @@ class RunCommand extends Command
|
||||||
if (($now - $start) > $timeout) {
|
if (($now - $start) > $timeout) {
|
||||||
$this->logger->addInfo('Build #'.$build->getId().' marked as failed due to timeout.');
|
$this->logger->addInfo('Build #'.$build->getId().' marked as failed due to timeout.');
|
||||||
$build->setStatus(Build::STATUS_FAILED);
|
$build->setStatus(Build::STATUS_FAILED);
|
||||||
|
$build->setFinished(new \DateTime());
|
||||||
$store->save($build);
|
$store->save($build);
|
||||||
$this->removeBuildDirectory($build);
|
$this->removeBuildDirectory($build);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -72,10 +72,23 @@ class Controller extends \b8\Controller
|
||||||
return $this->response;
|
return $this->response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Require that the currently logged in user is an administrator.
|
||||||
|
* @throws ForbiddenException
|
||||||
|
*/
|
||||||
protected function requireAdmin()
|
protected function requireAdmin()
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
if (!$this->currentUserIsAdmin()) {
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
throw new ForbiddenException('You do not have permission to do that.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the currently logged in user is an administrator.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function currentUserIsAdmin()
|
||||||
|
{
|
||||||
|
return $_SESSION['phpci_user']->getIsAdmin();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ use b8;
|
||||||
use b8\Exception\HttpException\NotFoundException;
|
use b8\Exception\HttpException\NotFoundException;
|
||||||
use PHPCI\BuildFactory;
|
use PHPCI\BuildFactory;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
|
use PHPCI\Model\Project;
|
||||||
use PHPCI\Service\BuildService;
|
use PHPCI\Service\BuildService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,8 +59,22 @@ class BuildController extends \PHPCI\Controller
|
||||||
$this->view->build = $build;
|
$this->view->build = $build;
|
||||||
$this->view->data = $this->getBuildData($build);
|
$this->view->data = $this->getBuildData($build);
|
||||||
|
|
||||||
$title = 'Build #' . $build->getId() . ' - ' . $build->getProjectTitle();
|
$this->layout->title = 'Build #' . $build->getId();
|
||||||
$this->config->set('page_title', $title);
|
$this->layout->subtitle = $build->getProjectTitle();
|
||||||
|
|
||||||
|
$nav = array(
|
||||||
|
'title' => 'Build '.$build->getId(),
|
||||||
|
'icon' => 'cog',
|
||||||
|
'links' => array(
|
||||||
|
'build/rebuild/' . $build->getId() => 'Rebuild Now',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($this->currentUserIsAdmin()) {
|
||||||
|
$nav['links']['build/delete/' . $build->getId()] = 'Delete Build';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->layout->nav = $nav;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getUiPlugins()
|
protected function getUiPlugins()
|
||||||
|
@ -141,9 +156,7 @@ class BuildController extends \PHPCI\Controller
|
||||||
*/
|
*/
|
||||||
public function delete($buildId)
|
public function delete($buildId)
|
||||||
{
|
{
|
||||||
if (empty($_SESSION['phpci_user']) || !$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new \Exception('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$build = BuildFactory::getBuildById($buildId);
|
$build = BuildFactory::getBuildById($buildId);
|
||||||
|
|
||||||
|
@ -168,4 +181,36 @@ class BuildController extends \PHPCI\Controller
|
||||||
|
|
||||||
return $log;
|
return $log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function latest()
|
||||||
|
{
|
||||||
|
$rtn = array(
|
||||||
|
'pending' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_NEW)),
|
||||||
|
'running' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_RUNNING)),
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($this->request->isAjax()) {
|
||||||
|
die(json_encode($rtn));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function formatBuilds($builds)
|
||||||
|
{
|
||||||
|
Project::$sleepable = array('id', 'title', 'reference', 'type');
|
||||||
|
|
||||||
|
$rtn = array('count' => $builds['count'], 'items' => array());
|
||||||
|
|
||||||
|
foreach ($builds['items'] as $build) {
|
||||||
|
$item = $build->toArray(1);
|
||||||
|
|
||||||
|
$header = new b8\View('Build/header-row');
|
||||||
|
$header->build = $build;
|
||||||
|
|
||||||
|
$item['header_row'] = $header->render();
|
||||||
|
$rtn['items'][$item['id']] = $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
ksort($rtn['items']);
|
||||||
|
return $rtn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ namespace PHPCI\Controller;
|
||||||
|
|
||||||
use b8;
|
use b8;
|
||||||
use PHPCI\BuildFactory;
|
use PHPCI\BuildFactory;
|
||||||
|
use PHPCI\Model\Build;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Home Controller - Displays the PHPCI Dashboard.
|
* Home Controller - Displays the PHPCI Dashboard.
|
||||||
|
@ -41,14 +42,20 @@ class HomeController extends \PHPCI\Controller
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
$this->layout->title = 'Dashboard';
|
||||||
|
|
||||||
$projects = $this->projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC'));
|
$projects = $this->projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC'));
|
||||||
|
|
||||||
$this->view->builds = $this->getLatestBuildsHtml();
|
$builds = $this->buildStore->getLatestBuilds(null, 10);
|
||||||
|
|
||||||
|
foreach ($builds as &$build) {
|
||||||
|
$build = BuildFactory::getBuild($build);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->view->builds = $builds;
|
||||||
$this->view->projects = $projects['items'];
|
$this->view->projects = $projects['items'];
|
||||||
$this->view->summary = $this->getSummaryHtml($projects);
|
$this->view->summary = $this->getSummaryHtml($projects);
|
||||||
|
|
||||||
$this->config->set('page_title', 'Dashboard');
|
|
||||||
|
|
||||||
return $this->view->render();
|
return $this->view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,13 +76,24 @@ class HomeController extends \PHPCI\Controller
|
||||||
protected function getSummaryHtml($projects)
|
protected function getSummaryHtml($projects)
|
||||||
{
|
{
|
||||||
$summaryBuilds = array();
|
$summaryBuilds = array();
|
||||||
|
$successes = array();
|
||||||
|
$failures = array();
|
||||||
|
|
||||||
foreach ($projects['items'] as $project) {
|
foreach ($projects['items'] as $project) {
|
||||||
$summaryBuilds[$project->getId()] = $this->buildStore->getLatestBuilds($project->getId());
|
$summaryBuilds[$project->getId()] = $this->buildStore->getLatestBuilds($project->getId());
|
||||||
|
|
||||||
|
$success = $this->buildStore->getLastBuildByStatus($project->getId(), Build::STATUS_SUCCESS);
|
||||||
|
$failure = $this->buildStore->getLastBuildByStatus($project->getId(), Build::STATUS_FAILED);
|
||||||
|
|
||||||
|
$successes[$project->getId()] = $success;
|
||||||
|
$failures[$project->getId()] = $failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
$summaryView = new b8\View('SummaryTable');
|
$summaryView = new b8\View('SummaryTable');
|
||||||
$summaryView->projects = $projects['items'];
|
$summaryView->projects = $projects['items'];
|
||||||
$summaryView->builds = $summaryBuilds;
|
$summaryView->builds = $summaryBuilds;
|
||||||
|
$summaryView->successful = $successes;
|
||||||
|
$summaryView->failed = $failures;
|
||||||
|
|
||||||
return $summaryView->render();
|
return $summaryView->render();
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,10 @@ use PHPCI\Plugin\Util\PluginInformationCollection;
|
||||||
class PluginController extends \PHPCI\Controller
|
class PluginController extends \PHPCI\Controller
|
||||||
{
|
{
|
||||||
protected $required = array(
|
protected $required = array(
|
||||||
|
'php',
|
||||||
|
'ext-mcrypt',
|
||||||
|
'ext-pdo',
|
||||||
|
'ext-pdo_mysql',
|
||||||
'block8/b8framework',
|
'block8/b8framework',
|
||||||
'ircmaxell/password-compat',
|
'ircmaxell/password-compat',
|
||||||
'swiftmailer/swiftmailer',
|
'swiftmailer/swiftmailer',
|
||||||
|
@ -31,7 +35,8 @@ class PluginController extends \PHPCI\Controller
|
||||||
'symfony/console',
|
'symfony/console',
|
||||||
'psr/log',
|
'psr/log',
|
||||||
'monolog/monolog',
|
'monolog/monolog',
|
||||||
'pimple/pimple'
|
'pimple/pimple',
|
||||||
|
'robmorgan/phinx',
|
||||||
);
|
);
|
||||||
|
|
||||||
protected $canInstall;
|
protected $canInstall;
|
||||||
|
@ -39,9 +44,7 @@ class PluginController extends \PHPCI\Controller
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new \Exception('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->view->canWrite = is_writable(APPLICATION_PATH . 'composer.json');
|
$this->view->canWrite = is_writable(APPLICATION_PATH . 'composer.json');
|
||||||
$this->view->required = $this->required;
|
$this->view->required = $this->required;
|
||||||
|
@ -60,16 +63,14 @@ class PluginController extends \PHPCI\Controller
|
||||||
|
|
||||||
$this->view->plugins = $pluginInfo->getInstalledPlugins();
|
$this->view->plugins = $pluginInfo->getInstalledPlugins();
|
||||||
|
|
||||||
$this->config->set('page_title', 'Plugins');
|
$this->layout->title = 'Plugins';
|
||||||
|
|
||||||
return $this->view->render();
|
return $this->view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function remove()
|
public function remove()
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new \Exception('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$package = $this->getParam('package', null);
|
$package = $this->getParam('package', null);
|
||||||
$json = $this->getComposerJson();
|
$json = $this->getComposerJson();
|
||||||
|
@ -88,9 +89,7 @@ class PluginController extends \PHPCI\Controller
|
||||||
|
|
||||||
public function install()
|
public function install()
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new \Exception('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$package = $this->getParam('package', null);
|
$package = $this->getParam('package', null);
|
||||||
$version = $this->getParam('version', '*');
|
$version = $this->getParam('version', '*');
|
||||||
|
|
|
@ -62,8 +62,9 @@ class ProjectController extends \PHPCI\Controller
|
||||||
/**
|
/**
|
||||||
* View a specific project.
|
* View a specific project.
|
||||||
*/
|
*/
|
||||||
public function view($projectId, $branch = '')
|
public function view($projectId)
|
||||||
{
|
{
|
||||||
|
$branch = $this->getParam('branch', '');
|
||||||
$project = $this->projectStore->getById($projectId);
|
$project = $this->projectStore->getById($projectId);
|
||||||
|
|
||||||
if (empty($project)) {
|
if (empty($project)) {
|
||||||
|
@ -87,7 +88,8 @@ class ProjectController extends \PHPCI\Controller
|
||||||
$this->view->page = $page;
|
$this->view->page = $page;
|
||||||
$this->view->pages = $pages;
|
$this->view->pages = $pages;
|
||||||
|
|
||||||
$this->config->set('page_title', $project->getTitle());
|
$this->layout->title = $project->getTitle();
|
||||||
|
$this->layout->subtitle = $this->view->branch;
|
||||||
|
|
||||||
return $this->view->render();
|
return $this->view->render();
|
||||||
}
|
}
|
||||||
|
@ -120,9 +122,7 @@ class ProjectController extends \PHPCI\Controller
|
||||||
*/
|
*/
|
||||||
public function delete($projectId)
|
public function delete($projectId)
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$project = $this->projectStore->getById($projectId);
|
$project = $this->projectStore->getById($projectId);
|
||||||
$this->projectService->deleteProject($project);
|
$this->projectService->deleteProject($project);
|
||||||
|
@ -134,8 +134,9 @@ class ProjectController extends \PHPCI\Controller
|
||||||
/**
|
/**
|
||||||
* AJAX get latest builds.
|
* AJAX get latest builds.
|
||||||
*/
|
*/
|
||||||
public function builds($projectId, $branch = '')
|
public function builds($projectId)
|
||||||
{
|
{
|
||||||
|
$branch = $this->getParam('branch', '');
|
||||||
$builds = $this->getLatestBuildsHtml($projectId, urldecode($branch));
|
$builds = $this->getLatestBuildsHtml($projectId, urldecode($branch));
|
||||||
die($builds[0]);
|
die($builds[0]);
|
||||||
}
|
}
|
||||||
|
@ -173,7 +174,7 @@ class ProjectController extends \PHPCI\Controller
|
||||||
*/
|
*/
|
||||||
public function add()
|
public function add()
|
||||||
{
|
{
|
||||||
$this->config->set('page_title', 'Add Project');
|
$this->layout->title = 'Add Project';
|
||||||
$this->requireAdmin();
|
$this->requireAdmin();
|
||||||
|
|
||||||
$method = $this->request->getMethod();
|
$method = $this->request->getMethod();
|
||||||
|
@ -224,9 +225,7 @@ class ProjectController extends \PHPCI\Controller
|
||||||
*/
|
*/
|
||||||
public function edit($projectId)
|
public function edit($projectId)
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$method = $this->request->getMethod();
|
$method = $this->request->getMethod();
|
||||||
$project = $this->projectStore->getById($projectId);
|
$project = $this->projectStore->getById($projectId);
|
||||||
|
|
|
@ -40,7 +40,7 @@ class SessionController extends \PHPCI\Controller
|
||||||
|
|
||||||
if ($this->request->getMethod() == 'POST') {
|
if ($this->request->getMethod() == 'POST') {
|
||||||
$user = $this->userStore->getByEmail($this->getParam('email'));
|
$user = $this->userStore->getByEmail($this->getParam('email'));
|
||||||
|
|
||||||
if ($user && password_verify($this->getParam('password', ''), $user->getHash())) {
|
if ($user && password_verify($this->getParam('password', ''), $user->getHash())) {
|
||||||
$_SESSION['phpci_user_id'] = $user->getId();
|
$_SESSION['phpci_user_id'] = $user->getId();
|
||||||
header('Location: ' . $this->getLoginRedirect());
|
header('Location: ' . $this->getLoginRedirect());
|
||||||
|
|
|
@ -38,6 +38,9 @@ class SettingsController extends Controller
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
$this->requireAdmin();
|
||||||
|
|
||||||
|
$this->layout->title = 'Settings';
|
||||||
$this->view->settings = $this->settings;
|
$this->view->settings = $this->settings;
|
||||||
|
|
||||||
$emailSettings = array();
|
$emailSettings = array();
|
||||||
|
@ -64,6 +67,8 @@ class SettingsController extends Controller
|
||||||
|
|
||||||
public function github()
|
public function github()
|
||||||
{
|
{
|
||||||
|
$this->requireAdmin();
|
||||||
|
|
||||||
$this->settings['phpci']['github']['id'] = $this->getParam('githubid', '');
|
$this->settings['phpci']['github']['id'] = $this->getParam('githubid', '');
|
||||||
$this->settings['phpci']['github']['secret'] = $this->getParam('githubsecret', '');
|
$this->settings['phpci']['github']['secret'] = $this->getParam('githubsecret', '');
|
||||||
$error = $this->storeSettings();
|
$error = $this->storeSettings();
|
||||||
|
@ -79,6 +84,8 @@ class SettingsController extends Controller
|
||||||
|
|
||||||
public function email()
|
public function email()
|
||||||
{
|
{
|
||||||
|
$this->requireAdmin();
|
||||||
|
|
||||||
$this->settings['phpci']['email_settings'] = $this->getParams();
|
$this->settings['phpci']['email_settings'] = $this->getParams();
|
||||||
$this->settings['phpci']['email_settings']['smtp_encryption'] = $this->getParam('smtp_encryption', 0);
|
$this->settings['phpci']['email_settings']['smtp_encryption'] = $this->getParam('smtp_encryption', 0);
|
||||||
|
|
||||||
|
@ -95,6 +102,8 @@ class SettingsController extends Controller
|
||||||
|
|
||||||
public function build()
|
public function build()
|
||||||
{
|
{
|
||||||
|
$this->requireAdmin();
|
||||||
|
|
||||||
$this->settings['phpci']['build'] = $this->getParams();
|
$this->settings['phpci']['build'] = $this->getParams();
|
||||||
|
|
||||||
$error = $this->storeSettings();
|
$error = $this->storeSettings();
|
||||||
|
|
|
@ -49,7 +49,7 @@ class UserController extends Controller
|
||||||
$users = $this->userStore->getWhere(array(), 1000, 0, array(), array('email' => 'ASC'));
|
$users = $this->userStore->getWhere(array(), 1000, 0, array(), array('email' => 'ASC'));
|
||||||
$this->view->users = $users;
|
$this->view->users = $users;
|
||||||
|
|
||||||
$this->config->set('page_title', 'Users');
|
$this->layout->title = 'Users';
|
||||||
|
|
||||||
return $this->view->render();
|
return $this->view->render();
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,8 @@ class UserController extends Controller
|
||||||
{
|
{
|
||||||
$user = $_SESSION['phpci_user'];
|
$user = $_SESSION['phpci_user'];
|
||||||
|
|
||||||
|
$this->layout->title = 'Edit Profile';
|
||||||
|
|
||||||
if ($this->request->getMethod() == 'POST') {
|
if ($this->request->getMethod() == 'POST') {
|
||||||
$name = $this->getParam('name', null);
|
$name = $this->getParam('name', null);
|
||||||
$email = $this->getParam('email', null);
|
$email = $this->getParam('email', null);
|
||||||
|
@ -65,6 +67,8 @@ class UserController extends Controller
|
||||||
|
|
||||||
$_SESSION['phpci_user'] = $this->userService->updateUser($user, $name, $email, $password);
|
$_SESSION['phpci_user'] = $this->userService->updateUser($user, $name, $email, $password);
|
||||||
$user = $_SESSION['phpci_user'];
|
$user = $_SESSION['phpci_user'];
|
||||||
|
|
||||||
|
$this->view->updated = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$values = $user->getDataArray();
|
$values = $user->getDataArray();
|
||||||
|
@ -111,11 +115,9 @@ class UserController extends Controller
|
||||||
*/
|
*/
|
||||||
public function add()
|
public function add()
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->config->set('page_title', 'Add User');
|
$this->layout->title = 'Add User';
|
||||||
|
|
||||||
$method = $this->request->getMethod();
|
$method = $this->request->getMethod();
|
||||||
|
|
||||||
|
@ -153,9 +155,7 @@ class UserController extends Controller
|
||||||
*/
|
*/
|
||||||
public function edit($userId)
|
public function edit($userId)
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$method = $this->request->getMethod();
|
$method = $this->request->getMethod();
|
||||||
$user = $this->userStore->getById($userId);
|
$user = $this->userStore->getById($userId);
|
||||||
|
@ -164,6 +164,9 @@ class UserController extends Controller
|
||||||
throw new NotFoundException('User with ID: ' . $userId . ' does not exist.');
|
throw new NotFoundException('User with ID: ' . $userId . ' does not exist.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->layout->title = $user->getName();
|
||||||
|
$this->layout->subtitle = 'Edit User';
|
||||||
|
|
||||||
$values = array_merge($user->getDataArray(), $this->getParams());
|
$values = array_merge($user->getDataArray(), $this->getParams());
|
||||||
$form = $this->userForm($values, 'edit/' . $userId);
|
$form = $this->userForm($values, 'edit/' . $userId);
|
||||||
|
|
||||||
|
@ -246,10 +249,8 @@ class UserController extends Controller
|
||||||
*/
|
*/
|
||||||
public function delete($userId)
|
public function delete($userId)
|
||||||
{
|
{
|
||||||
if (!$_SESSION['phpci_user']->getIsAdmin()) {
|
$this->requireAdmin();
|
||||||
throw new ForbiddenException('You do not have permission to do that.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$user = $this->userStore->getById($userId);
|
$user = $this->userStore->getById($userId);
|
||||||
|
|
||||||
if (empty($user)) {
|
if (empty($user)) {
|
||||||
|
|
|
@ -9,6 +9,13 @@ class FixDatabaseColumns extends AbstractMigration
|
||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
|
$dbAdapter = $this->getAdapter();
|
||||||
|
|
||||||
|
if ($dbAdapter instanceof \Phinx\Db\Adapter\PdoAdapter) {
|
||||||
|
$pdo = $dbAdapter->getConnection();
|
||||||
|
$pdo->exec('SET foreign_key_checks = 0');
|
||||||
|
}
|
||||||
|
|
||||||
$build = $this->table('build');
|
$build = $this->table('build');
|
||||||
$build->changeColumn('project_id', 'integer', array('null' => false));
|
$build->changeColumn('project_id', 'integer', array('null' => false));
|
||||||
$build->changeColumn('commit_id', 'string', array('limit' => 50, 'null' => false));
|
$build->changeColumn('commit_id', 'string', array('limit' => 50, 'null' => false));
|
||||||
|
@ -45,5 +52,10 @@ class FixDatabaseColumns extends AbstractMigration
|
||||||
$user->changeColumn('hash', 'string', array('limit' => 250, 'null' => false));
|
$user->changeColumn('hash', 'string', array('limit' => 250, 'null' => false));
|
||||||
$user->changeColumn('is_admin', 'integer', array('null' => false, 'default' => 0));
|
$user->changeColumn('is_admin', 'integer', array('null' => false, 'default' => 0));
|
||||||
$user->changeColumn('name', 'string', array('limit' => 250, 'null' => false));
|
$user->changeColumn('name', 'string', array('limit' => 250, 'null' => false));
|
||||||
|
|
||||||
|
if ($dbAdapter instanceof \Phinx\Db\Adapter\PdoAdapter) {
|
||||||
|
$pdo = $dbAdapter->getConnection();
|
||||||
|
$pdo->exec('SET foreign_key_checks = 1');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,16 +110,15 @@ class BuildBase extends Model
|
||||||
'commit_id' => array(
|
'commit_id' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
'length' => 50,
|
'length' => 50,
|
||||||
'nullable' => true,
|
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'status' => array(
|
'status' => array(
|
||||||
'type' => 'tinyint',
|
'type' => 'int',
|
||||||
'length' => 4,
|
'length' => 11,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'log' => array(
|
'log' => array(
|
||||||
'type' => 'longtext',
|
'type' => 'text',
|
||||||
'nullable' => true,
|
'nullable' => true,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
|
@ -155,7 +154,7 @@ class BuildBase extends Model
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'extra' => array(
|
'extra' => array(
|
||||||
'type' => 'longtext',
|
'type' => 'text',
|
||||||
'nullable' => true,
|
'nullable' => true,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
|
@ -382,10 +381,12 @@ class BuildBase extends Model
|
||||||
/**
|
/**
|
||||||
* Set the value of CommitId / commit_id.
|
* Set the value of CommitId / commit_id.
|
||||||
*
|
*
|
||||||
|
* Must not be null.
|
||||||
* @param $value string
|
* @param $value string
|
||||||
*/
|
*/
|
||||||
public function setCommitId($value)
|
public function setCommitId($value)
|
||||||
{
|
{
|
||||||
|
$this->_validateNotNull('CommitId', $value);
|
||||||
$this->_validateString('CommitId', $value);
|
$this->_validateString('CommitId', $value);
|
||||||
|
|
||||||
if ($this->data['commit_id'] === $value) {
|
if ($this->data['commit_id'] === $value) {
|
||||||
|
|
|
@ -91,17 +91,15 @@ class BuildMetaBase extends Model
|
||||||
'build_id' => array(
|
'build_id' => array(
|
||||||
'type' => 'int',
|
'type' => 'int',
|
||||||
'length' => 11,
|
'length' => 11,
|
||||||
'nullable' => true,
|
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'meta_key' => array(
|
'meta_key' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
'length' => 255,
|
'length' => 250,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'meta_value' => array(
|
'meta_value' => array(
|
||||||
'type' => 'longtext',
|
'type' => 'text',
|
||||||
'nullable' => true,
|
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -238,10 +236,12 @@ class BuildMetaBase extends Model
|
||||||
/**
|
/**
|
||||||
* Set the value of BuildId / build_id.
|
* Set the value of BuildId / build_id.
|
||||||
*
|
*
|
||||||
|
* Must not be null.
|
||||||
* @param $value int
|
* @param $value int
|
||||||
*/
|
*/
|
||||||
public function setBuildId($value)
|
public function setBuildId($value)
|
||||||
{
|
{
|
||||||
|
$this->_validateNotNull('BuildId', $value);
|
||||||
$this->_validateInt('BuildId', $value);
|
$this->_validateInt('BuildId', $value);
|
||||||
|
|
||||||
if ($this->data['build_id'] === $value) {
|
if ($this->data['build_id'] === $value) {
|
||||||
|
@ -276,10 +276,12 @@ class BuildMetaBase extends Model
|
||||||
/**
|
/**
|
||||||
* Set the value of MetaValue / meta_value.
|
* Set the value of MetaValue / meta_value.
|
||||||
*
|
*
|
||||||
|
* Must not be null.
|
||||||
* @param $value string
|
* @param $value string
|
||||||
*/
|
*/
|
||||||
public function setMetaValue($value)
|
public function setMetaValue($value)
|
||||||
{
|
{
|
||||||
|
$this->_validateNotNull('MetaValue', $value);
|
||||||
$this->_validateString('MetaValue', $value);
|
$this->_validateString('MetaValue', $value);
|
||||||
|
|
||||||
if ($this->data['meta_value'] === $value) {
|
if ($this->data['meta_value'] === $value) {
|
||||||
|
|
|
@ -38,11 +38,11 @@ class ProjectBase extends Model
|
||||||
'reference' => null,
|
'reference' => null,
|
||||||
'branch' => null,
|
'branch' => null,
|
||||||
'ssh_private_key' => null,
|
'ssh_private_key' => null,
|
||||||
'ssh_public_key' => null,
|
|
||||||
'type' => null,
|
'type' => null,
|
||||||
'access_information' => null,
|
'access_information' => null,
|
||||||
'last_commit' => null,
|
'last_commit' => null,
|
||||||
'build_config' => null,
|
'build_config' => null,
|
||||||
|
'ssh_public_key' => null,
|
||||||
'allow_public_status' => null,
|
'allow_public_status' => null,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -56,11 +56,11 @@ class ProjectBase extends Model
|
||||||
'reference' => 'getReference',
|
'reference' => 'getReference',
|
||||||
'branch' => 'getBranch',
|
'branch' => 'getBranch',
|
||||||
'ssh_private_key' => 'getSshPrivateKey',
|
'ssh_private_key' => 'getSshPrivateKey',
|
||||||
'ssh_public_key' => 'getSshPublicKey',
|
|
||||||
'type' => 'getType',
|
'type' => 'getType',
|
||||||
'access_information' => 'getAccessInformation',
|
'access_information' => 'getAccessInformation',
|
||||||
'last_commit' => 'getLastCommit',
|
'last_commit' => 'getLastCommit',
|
||||||
'build_config' => 'getBuildConfig',
|
'build_config' => 'getBuildConfig',
|
||||||
|
'ssh_public_key' => 'getSshPublicKey',
|
||||||
'allow_public_status' => 'getAllowPublicStatus',
|
'allow_public_status' => 'getAllowPublicStatus',
|
||||||
|
|
||||||
// Foreign key getters:
|
// Foreign key getters:
|
||||||
|
@ -76,11 +76,11 @@ class ProjectBase extends Model
|
||||||
'reference' => 'setReference',
|
'reference' => 'setReference',
|
||||||
'branch' => 'setBranch',
|
'branch' => 'setBranch',
|
||||||
'ssh_private_key' => 'setSshPrivateKey',
|
'ssh_private_key' => 'setSshPrivateKey',
|
||||||
'ssh_public_key' => 'setSshPublicKey',
|
|
||||||
'type' => 'setType',
|
'type' => 'setType',
|
||||||
'access_information' => 'setAccessInformation',
|
'access_information' => 'setAccessInformation',
|
||||||
'last_commit' => 'setLastCommit',
|
'last_commit' => 'setLastCommit',
|
||||||
'build_config' => 'setBuildConfig',
|
'build_config' => 'setBuildConfig',
|
||||||
|
'ssh_public_key' => 'setSshPublicKey',
|
||||||
'allow_public_status' => 'setAllowPublicStatus',
|
'allow_public_status' => 'setAllowPublicStatus',
|
||||||
|
|
||||||
// Foreign key setters:
|
// Foreign key setters:
|
||||||
|
@ -109,23 +109,18 @@ class ProjectBase extends Model
|
||||||
),
|
),
|
||||||
'branch' => array(
|
'branch' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
'length' => 250,
|
'length' => 50,
|
||||||
'default' => null,
|
'default' => 'master',
|
||||||
),
|
),
|
||||||
'ssh_private_key' => array(
|
'ssh_private_key' => array(
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'nullable' => true,
|
'nullable' => true,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'ssh_public_key' => array(
|
|
||||||
'type' => 'text',
|
|
||||||
'nullable' => true,
|
|
||||||
'default' => null,
|
|
||||||
),
|
|
||||||
'type' => array(
|
'type' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
'length' => 50,
|
'length' => 50,
|
||||||
'default' => 1,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'access_information' => array(
|
'access_information' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
|
@ -144,9 +139,14 @@ class ProjectBase extends Model
|
||||||
'nullable' => true,
|
'nullable' => true,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
|
'ssh_public_key' => array(
|
||||||
|
'type' => 'text',
|
||||||
|
'nullable' => true,
|
||||||
|
'default' => null,
|
||||||
|
),
|
||||||
'allow_public_status' => array(
|
'allow_public_status' => array(
|
||||||
'type' => 'tinyint',
|
'type' => 'int',
|
||||||
'length' => 4,
|
'length' => 11,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -224,18 +224,6 @@ class ProjectBase extends Model
|
||||||
return $rtn;
|
return $rtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the value of SshPublicKey / ssh_public_key.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getSshPublicKey()
|
|
||||||
{
|
|
||||||
$rtn = $this->data['ssh_public_key'];
|
|
||||||
|
|
||||||
return $rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the value of Type / type.
|
* Get the value of Type / type.
|
||||||
*
|
*
|
||||||
|
@ -284,6 +272,18 @@ class ProjectBase extends Model
|
||||||
return $rtn;
|
return $rtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the value of SshPublicKey / ssh_public_key.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSshPublicKey()
|
||||||
|
{
|
||||||
|
$rtn = $this->data['ssh_public_key'];
|
||||||
|
|
||||||
|
return $rtn;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the value of AllowPublicStatus / allow_public_status.
|
* Get the value of AllowPublicStatus / allow_public_status.
|
||||||
*
|
*
|
||||||
|
@ -394,24 +394,6 @@ class ProjectBase extends Model
|
||||||
$this->_setModified('ssh_private_key');
|
$this->_setModified('ssh_private_key');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the value of SshPublicKey / ssh_public_key.
|
|
||||||
*
|
|
||||||
* @param $value string
|
|
||||||
*/
|
|
||||||
public function setSshPublicKey($value)
|
|
||||||
{
|
|
||||||
$this->_validateString('SshPublicKey', $value);
|
|
||||||
|
|
||||||
if ($this->data['ssh_public_key'] === $value) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->data['ssh_public_key'] = $value;
|
|
||||||
|
|
||||||
$this->_setModified('ssh_public_key');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of Type / type.
|
* Set the value of Type / type.
|
||||||
*
|
*
|
||||||
|
@ -486,6 +468,24 @@ class ProjectBase extends Model
|
||||||
$this->_setModified('build_config');
|
$this->_setModified('build_config');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of SshPublicKey / ssh_public_key.
|
||||||
|
*
|
||||||
|
* @param $value string
|
||||||
|
*/
|
||||||
|
public function setSshPublicKey($value)
|
||||||
|
{
|
||||||
|
$this->_validateString('SshPublicKey', $value);
|
||||||
|
|
||||||
|
if ($this->data['ssh_public_key'] === $value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->data['ssh_public_key'] = $value;
|
||||||
|
|
||||||
|
$this->_setModified('ssh_public_key');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of AllowPublicStatus / allow_public_status.
|
* Set the value of AllowPublicStatus / allow_public_status.
|
||||||
*
|
*
|
||||||
|
|
|
@ -90,14 +90,12 @@ class UserBase extends Model
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
'is_admin' => array(
|
'is_admin' => array(
|
||||||
'type' => 'tinyint',
|
'type' => 'int',
|
||||||
'length' => 1,
|
'length' => 11,
|
||||||
'default' => null,
|
|
||||||
),
|
),
|
||||||
'name' => array(
|
'name' => array(
|
||||||
'type' => 'varchar',
|
'type' => 'varchar',
|
||||||
'length' => 250,
|
'length' => 250,
|
||||||
'nullable' => true,
|
|
||||||
'default' => null,
|
'default' => null,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -259,10 +257,12 @@ class UserBase extends Model
|
||||||
/**
|
/**
|
||||||
* Set the value of Name / name.
|
* Set the value of Name / name.
|
||||||
*
|
*
|
||||||
|
* Must not be null.
|
||||||
* @param $value string
|
* @param $value string
|
||||||
*/
|
*/
|
||||||
public function setName($value)
|
public function setName($value)
|
||||||
{
|
{
|
||||||
|
$this->_validateNotNull('Name', $value);
|
||||||
$this->_validateString('Name', $value);
|
$this->_validateString('Name', $value);
|
||||||
|
|
||||||
if ($this->data['name'] === $value) {
|
if ($this->data['name'] === $value) {
|
||||||
|
|
|
@ -88,4 +88,28 @@ class Project extends ProjectBase
|
||||||
return $this->data['branch'];
|
return $this->data['branch'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getIcon()
|
||||||
|
{
|
||||||
|
switch ($this->getType()) {
|
||||||
|
case 'github':
|
||||||
|
$icon = 'github';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'bitbucket':
|
||||||
|
$icon = 'bitbucket';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'git':
|
||||||
|
case 'gitlab':
|
||||||
|
$icon = 'git';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$icon = 'cog';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $icon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,6 @@ class BuildMetaStoreBase extends Store
|
||||||
$add .= ' LIMIT ' . $limit;
|
$add .= ' LIMIT ' . $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = null;
|
|
||||||
|
|
||||||
$query = 'SELECT * FROM `build_meta` WHERE `project_id` = :project_id' . $add;
|
$query = 'SELECT * FROM `build_meta` WHERE `project_id` = :project_id' . $add;
|
||||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||||
|
@ -70,6 +69,9 @@ class BuildMetaStoreBase extends Store
|
||||||
};
|
};
|
||||||
$rtn = array_map($map, $res);
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
return array('items' => $rtn, 'count' => $count);
|
return array('items' => $rtn, 'count' => $count);
|
||||||
} else {
|
} else {
|
||||||
return array('items' => array(), 'count' => 0);
|
return array('items' => array(), 'count' => 0);
|
||||||
|
@ -88,7 +90,6 @@ class BuildMetaStoreBase extends Store
|
||||||
$add .= ' LIMIT ' . $limit;
|
$add .= ' LIMIT ' . $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = null;
|
|
||||||
|
|
||||||
$query = 'SELECT * FROM `build_meta` WHERE `build_id` = :build_id' . $add;
|
$query = 'SELECT * FROM `build_meta` WHERE `build_id` = :build_id' . $add;
|
||||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||||
|
@ -102,6 +103,9 @@ class BuildMetaStoreBase extends Store
|
||||||
};
|
};
|
||||||
$rtn = array_map($map, $res);
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
return array('items' => $rtn, 'count' => $count);
|
return array('items' => $rtn, 'count' => $count);
|
||||||
} else {
|
} else {
|
||||||
return array('items' => array(), 'count' => 0);
|
return array('items' => array(), 'count' => 0);
|
||||||
|
|
|
@ -56,7 +56,6 @@ class BuildStoreBase extends Store
|
||||||
$add .= ' LIMIT ' . $limit;
|
$add .= ' LIMIT ' . $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = null;
|
|
||||||
|
|
||||||
$query = 'SELECT * FROM `build` WHERE `project_id` = :project_id' . $add;
|
$query = 'SELECT * FROM `build` WHERE `project_id` = :project_id' . $add;
|
||||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||||
|
@ -70,6 +69,9 @@ class BuildStoreBase extends Store
|
||||||
};
|
};
|
||||||
$rtn = array_map($map, $res);
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
return array('items' => $rtn, 'count' => $count);
|
return array('items' => $rtn, 'count' => $count);
|
||||||
} else {
|
} else {
|
||||||
return array('items' => array(), 'count' => 0);
|
return array('items' => array(), 'count' => 0);
|
||||||
|
@ -88,7 +90,6 @@ class BuildStoreBase extends Store
|
||||||
$add .= ' LIMIT ' . $limit;
|
$add .= ' LIMIT ' . $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = null;
|
|
||||||
|
|
||||||
$query = 'SELECT * FROM `build` WHERE `status` = :status' . $add;
|
$query = 'SELECT * FROM `build` WHERE `status` = :status' . $add;
|
||||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||||
|
@ -102,6 +103,9 @@ class BuildStoreBase extends Store
|
||||||
};
|
};
|
||||||
$rtn = array_map($map, $res);
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
return array('items' => $rtn, 'count' => $count);
|
return array('items' => $rtn, 'count' => $count);
|
||||||
} else {
|
} else {
|
||||||
return array('items' => array(), 'count' => 0);
|
return array('items' => array(), 'count' => 0);
|
||||||
|
|
|
@ -56,7 +56,6 @@ class ProjectStoreBase extends Store
|
||||||
$add .= ' LIMIT ' . $limit;
|
$add .= ' LIMIT ' . $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = null;
|
|
||||||
|
|
||||||
$query = 'SELECT * FROM `project` WHERE `title` = :title' . $add;
|
$query = 'SELECT * FROM `project` WHERE `title` = :title' . $add;
|
||||||
$stmt = Database::getConnection($useConnection)->prepare($query);
|
$stmt = Database::getConnection($useConnection)->prepare($query);
|
||||||
|
@ -70,6 +69,9 @@ class ProjectStoreBase extends Store
|
||||||
};
|
};
|
||||||
$rtn = array_map($map, $res);
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
return array('items' => $rtn, 'count' => $count);
|
return array('items' => $rtn, 'count' => $count);
|
||||||
} else {
|
} else {
|
||||||
return array('items' => array(), 'count' => 0);
|
return array('items' => array(), 'count' => 0);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
namespace PHPCI\Store;
|
namespace PHPCI\Store;
|
||||||
|
|
||||||
use b8\Database;
|
use b8\Database;
|
||||||
|
use PHPCI\BuildFactory;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
use PHPCI\Store\Base\BuildStoreBase;
|
use PHPCI\Store\Base\BuildStoreBase;
|
||||||
|
|
||||||
|
@ -21,11 +22,22 @@ use PHPCI\Store\Base\BuildStoreBase;
|
||||||
*/
|
*/
|
||||||
class BuildStore extends BuildStoreBase
|
class BuildStore extends BuildStoreBase
|
||||||
{
|
{
|
||||||
public function getLatestBuilds($projectId)
|
public function getLatestBuilds($projectId = null, $limit = 5)
|
||||||
{
|
{
|
||||||
$query = 'SELECT * FROM build WHERE project_id = :pid ORDER BY id DESC LIMIT 5';
|
$where = '';
|
||||||
|
|
||||||
|
if (!is_null($projectId)) {
|
||||||
|
$where = ' WHERE `project_id` = :pid ';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = 'SELECT * FROM build '.$where.' ORDER BY id DESC LIMIT :limit';
|
||||||
$stmt = Database::getConnection('read')->prepare($query);
|
$stmt = Database::getConnection('read')->prepare($query);
|
||||||
$stmt->bindValue(':pid', $projectId);
|
|
||||||
|
if (!is_null($projectId)) {
|
||||||
|
$stmt->bindValue(':pid', $projectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt->bindValue(':limit', $limit, \PDO::PARAM_INT);
|
||||||
|
|
||||||
if ($stmt->execute()) {
|
if ($stmt->execute()) {
|
||||||
$res = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
$res = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
@ -41,6 +53,21 @@ class BuildStore extends BuildStoreBase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getLastBuildByStatus($projectId = null, $status = Build::STATUS_SUCCESS)
|
||||||
|
{
|
||||||
|
$query = 'SELECT * FROM build WHERE project_id = :pid AND status = :status ORDER BY id DESC LIMIT 1';
|
||||||
|
$stmt = Database::getConnection('read')->prepare($query);
|
||||||
|
$stmt->bindValue(':pid', $projectId);
|
||||||
|
$stmt->bindValue(':status', $status);
|
||||||
|
|
||||||
|
if ($stmt->execute()) {
|
||||||
|
$res = $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||||
|
return new Build($res);
|
||||||
|
} else {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getByProjectAndCommit($projectId, $commitId)
|
public function getByProjectAndCommit($projectId, $commitId)
|
||||||
{
|
{
|
||||||
$query = 'SELECT * FROM `build` WHERE `project_id` = :project_id AND `commit_id` = :commit_id';
|
$query = 'SELECT * FROM `build` WHERE `project_id` = :project_id AND `commit_id` = :commit_id';
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
namespace PHPCI\Store;
|
namespace PHPCI\Store;
|
||||||
|
|
||||||
use b8\Database;
|
use b8\Database;
|
||||||
|
use PHPCI\Model\Project;
|
||||||
use PHPCI\Store\Base\ProjectStoreBase;
|
use PHPCI\Store\Base\ProjectStoreBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,4 +40,26 @@ class ProjectStore extends ProjectStoreBase
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getAll()
|
||||||
|
{
|
||||||
|
$query = 'SELECT * FROM `project` ORDER BY `title` ASC';
|
||||||
|
$stmt = Database::getConnection('read')->prepare($query);
|
||||||
|
|
||||||
|
if ($stmt->execute()) {
|
||||||
|
$res = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
$map = function ($item) {
|
||||||
|
return new Project($item);
|
||||||
|
};
|
||||||
|
$rtn = array_map($map, $res);
|
||||||
|
|
||||||
|
$count = count($rtn);
|
||||||
|
|
||||||
|
|
||||||
|
return array('items' => $rtn, 'count' => $count);
|
||||||
|
} else {
|
||||||
|
return array('items' => array(), 'count' => 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
20
PHPCI/View/Build/header-row.phtml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>build/view/<?php print $build->getId(); ?>">
|
||||||
|
<?php if ($build->getCommitterEmail()): ?>
|
||||||
|
<div class="pull-left">
|
||||||
|
<img src="https://www.gravatar.com/avatar/<?php print md5($build->getCommitterEmail()); ?>?d=mm&s=40" class="img-circle" alt="">
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<?php print $build->getProject()->getTitle(); ?>
|
||||||
|
|
||||||
|
<?php if ($build->getStatus() == \PHPCI\Model\Build::STATUS_NEW): ?>
|
||||||
|
<small class="pull-right">Created <?php print $build->getCreated()->format('g:ia'); ?></small>
|
||||||
|
<?php elseif ($build->getStatus() == \PHPCI\Model\Build::STATUS_RUNNING): ?>
|
||||||
|
<small class="pull-right">Started <?php print $build->getStarted()->format('g:ia'); ?></small>
|
||||||
|
<?php endif; ?>
|
||||||
|
</h4>
|
||||||
|
<p>Branch: <?php print $build->getBranch(); ?></p>
|
||||||
|
</a>
|
||||||
|
</li>
|
|
@ -1,17 +1,15 @@
|
||||||
<div class="build-info-panel panel panel-default">
|
<div class="build-info-panel box box-solid">
|
||||||
<img class="pull-left" src="//www.gravatar.com/avatar/<?php print md5($build->getCommitterEmail()); ?>?d=mm">
|
|
||||||
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h1 class="panel-title">
|
|
||||||
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $build->getProjectId(); ?>">
|
|
||||||
<?php print $build->getProject()->getTitle(); ?></a>
|
|
||||||
<span>#<?php print $build->getId(); ?></span>
|
|
||||||
|
|
||||||
|
<div class="box-header">
|
||||||
|
<h1 class="box-title">
|
||||||
|
Committed by <?php print $build->getCommitterEmail(); ?>
|
||||||
<label class="pull-right label"></label>
|
<label class="pull-right label"></label>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
|
<img class="pull-left" src="//www.gravatar.com/avatar/<?php print md5($build->getCommitterEmail()); ?>?d=mm">
|
||||||
|
|
||||||
<div id="build-info">
|
<div id="build-info">
|
||||||
<?php if ($build->getCommitMessage()): ?>
|
<?php if ($build->getCommitMessage()): ?>
|
||||||
<div class="commit-message">
|
<div class="commit-message">
|
||||||
|
@ -19,8 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<strong>Branch: </strong> <?php print $build->getBranch(); ?><br>
|
<strong>Branch: </strong> <?php print $build->getBranch(); ?>
|
||||||
<strong>Committer: </strong> <?php print $build->getCommitterEmail(); ?>
|
|
||||||
|
|
||||||
<?php if ($build->getCommitId() != 'Manual'): ?>
|
<?php if ($build->getCommitId() != 'Manual'): ?>
|
||||||
<br><strong>Commit ID: </strong> <?php print $build->getCommitId(); ?><br>
|
<br><strong>Commit ID: </strong> <?php print $build->getCommitId(); ?><br>
|
||||||
|
@ -30,35 +27,19 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3">
|
<div class="col-lg-12">
|
||||||
<div class="panel panel-default affix">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title">Options</h4>
|
|
||||||
</div>
|
|
||||||
<ul class="list-group">
|
|
||||||
<a class="list-group-item" href="<?php echo PHPCI_URL ?>build/rebuild/<?php print $build->getId(); ?>"><i class="icon-cog"></i> Rebuild</a>
|
|
||||||
<?php if($this->User()->getIsAdmin()): ?>
|
|
||||||
<a class="list-group-item" href="<?php echo PHPCI_URL ?>build/delete/<?php print $build->getId(); ?>" id="delete-build"><i class="icon-trash"></i> Delete Build</a>
|
|
||||||
<?php endif; ?>
|
|
||||||
</ul>
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title">Quick links</h4>
|
|
||||||
</div>
|
|
||||||
<ul class="list-group" id="anchorPlugins"></ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-9">
|
|
||||||
<div id="status"></div>
|
<div id="status"></div>
|
||||||
<div id="plugins" class="row"></div>
|
<div id="plugins" class="row"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="<?php print PHPCI_URL; ?>assets/js/build.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var PHPCI = new PHPCIObject(<?php print $build->getId() ?>);
|
|
||||||
PHPCI.buildData = <?php print $data; ?>;
|
var ActiveBuild = new Build(<?php print $build->getId() ?>);
|
||||||
PHPCI.fileLinkTemplate = <?php print json_encode($build->getFileLinkTemplate()); ?>;
|
ActiveBuild.buildData = <?php print $data; ?>;
|
||||||
|
ActiveBuild.fileLinkTemplate = <?php print json_encode($build->getFileLinkTemplate()); ?>;
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
@ -69,7 +50,7 @@ foreach ($plugins as $plugin) {
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
PHPCI.renderPlugins();
|
ActiveBuild.renderPlugins();
|
||||||
|
|
||||||
$('#delete-build').on('click', function (e) {
|
$('#delete-build').on('click', function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -86,41 +67,38 @@ foreach ($plugins as $plugin) {
|
||||||
});
|
});
|
||||||
|
|
||||||
function updateBuildStatus(status) {
|
function updateBuildStatus(status) {
|
||||||
var statusClass = null;
|
|
||||||
var statusText = null;
|
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0:
|
case 0:
|
||||||
statusClass = 'info';
|
$('.build-info-panel')
|
||||||
statusText = 'Pending';
|
.removeClass('bg-yellow')
|
||||||
|
.removeClass('bg-green')
|
||||||
|
.removeClass('bg-red')
|
||||||
|
.addClass('bg-blue');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
statusClass = 'warning';
|
$('.build-info-panel')
|
||||||
statusText = 'Running';
|
.removeClass('bg-green')
|
||||||
|
.removeClass('bg-red')
|
||||||
|
.removeClass('bg-blue')
|
||||||
|
.addClass('bg-yellow');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
statusClass = 'success';
|
$('.build-info-panel')
|
||||||
statusText = 'Success';
|
.removeClass('bg-yellow')
|
||||||
|
.removeClass('bg-red')
|
||||||
|
.removeClass('bg-blue')
|
||||||
|
.addClass('bg-green');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
statusClass = 'danger';
|
$('.build-info-panel')
|
||||||
statusText = 'Failed';
|
.removeClass('bg-yellow')
|
||||||
|
.removeClass('bg-green')
|
||||||
|
.removeClass('bg-blue')
|
||||||
|
.addClass('bg-red');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.build-info-panel')
|
|
||||||
.removeClass('panel-info')
|
|
||||||
.removeClass('panel-warning')
|
|
||||||
.removeClass('panel-success')
|
|
||||||
.removeClass('panel-danger')
|
|
||||||
.addClass('panel-' + statusClass);
|
|
||||||
|
|
||||||
$('.build-info-panel .label')
|
|
||||||
.removeClass('label-info')
|
|
||||||
.removeClass('label-warning')
|
|
||||||
.removeClass('label-success')
|
|
||||||
.removeClass('label-danger')
|
|
||||||
.addClass('label-' + statusClass)
|
|
||||||
.text(statusText);
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -66,8 +66,8 @@
|
||||||
<div class="build-info-panel panel panel-<?php print $statusClass; ?>">
|
<div class="build-info-panel panel panel-<?php print $statusClass; ?>">
|
||||||
<img class="pull-left" src="//www.gravatar.com/avatar/<?php print md5($latest->getCommitterEmail()); ?>?d=mm">
|
<img class="pull-left" src="//www.gravatar.com/avatar/<?php print md5($latest->getCommitterEmail()); ?>?d=mm">
|
||||||
|
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h1 class="panel-title">
|
<h1 class="box-title">
|
||||||
<a href="/project/view/<?php print $latest->getProjectId(); ?>">
|
<a href="/project/view/<?php print $latest->getProjectId(); ?>">
|
||||||
<?php print $latest->getProject()->getTitle(); ?></a>
|
<?php print $latest->getProject()->getTitle(); ?></a>
|
||||||
<span>#<?php print $latest->getId(); ?></span>
|
<span>#<?php print $latest->getId(); ?></span>
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<div id="build-info">
|
<div id="build-info">
|
||||||
<?php if ($latest->getCommitMessage()): ?>
|
<?php if ($latest->getCommitMessage()): ?>
|
||||||
<div class="commit-message">
|
<div class="commit-message">
|
||||||
|
@ -97,8 +97,8 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- Recent builds: -->
|
<!-- Recent builds: -->
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading"><h3 class="panel-title">Builds</h3></div>
|
<div class="box-header"><h3 class="box-title">Builds</h3></div>
|
||||||
<table class="table table-striped table-bordered">
|
<table class="table table-striped table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -47,19 +47,22 @@ switch($build->getStatus())
|
||||||
}
|
}
|
||||||
?></a></td>
|
?></a></td>
|
||||||
|
|
||||||
<td>
|
<td class="hidden-md hidden-sm hidden-xs">
|
||||||
<?php
|
<?php
|
||||||
if ($build->getCommitId() !== 'Manual') {
|
if ($build->getCommitId() !== 'Manual') {
|
||||||
print '<a href="' . $build->getCommitLink() . '">';
|
print sprintf(
|
||||||
}
|
'<a href="%s" target="_blank">%s (%s)</a>',
|
||||||
print $build->getCommitId();
|
$build->getCommitLink(),
|
||||||
if ($build->getCommitId() !== 'Manual') {
|
substr($build->getCommitId(), 0, 7),
|
||||||
print '</a>';
|
$build->getCommitterEmail()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
print 'Manual Build';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td><a href="<?php print $build->getBranchLink(); ?>"><?php print $build->getBranch(); ?></a></td>
|
<td><a href="<?php print $build->getBranchLink(); ?>" target="_blank"><?php print $build->getBranch(); ?></a></td>
|
||||||
<td>
|
<td>
|
||||||
<span class='label label-<?php echo $subcls ?>'><?php echo $status ?></span>
|
<span class='label label-<?php echo $subcls ?>'><?php echo $status ?></span>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -1,93 +1,102 @@
|
||||||
<div id="title">
|
|
||||||
<h1><i class="glyphicon glyphicon-home"></i> Dashboard</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3">
|
|
||||||
<?php if (count($projects)): ?>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title">Projects</h4>
|
|
||||||
</div>
|
|
||||||
<div class="list-group">
|
|
||||||
<?php foreach($projects as $project): ?>
|
|
||||||
<a class="list-group-item" href="<?php echo PHPCI_URL ?>project/view/<?php print $project->getId(); ?>"><?php print htmlspecialchars($project->getTitle()); ?></a>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php endif; ?>
|
<div class="col-sm-5">
|
||||||
|
<?php print $summary; ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-9">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><h3 class="panel-title">Project Overview</h3></div>
|
|
||||||
<table class="table table-striped table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Health</th>
|
|
||||||
<th>Project</th>
|
|
||||||
<th>Last Success</th>
|
|
||||||
<th>Last Failure</th>
|
|
||||||
<th>Success/Failures</th>
|
|
||||||
<th style="width: 100px"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="project-overview">
|
|
||||||
<?php print $summary; ?>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="col-sm-7 pull-left">
|
||||||
<div class="panel-heading">
|
<div class="box box-primary">
|
||||||
<h3 class="panel-title">Last 5 Builds</h3>
|
<div class="box-header">
|
||||||
|
<h3 class="box-title">Latest Builds</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table table-striped table-bordered">
|
<div class="box-body">
|
||||||
<thead>
|
<ul class="timeline">
|
||||||
<tr>
|
<?php $last = new \DateTime('-1 Year'); ?>
|
||||||
<th>ID</th>
|
|
||||||
<th>Project</th>
|
<?php
|
||||||
<th>Commit</th>
|
foreach ($builds as $build):
|
||||||
<th>Branch</th>
|
|
||||||
<th>Status</th>
|
switch ($build->getStatus()) {
|
||||||
<th style="width: 100px"></th>
|
case \PHPCI\Model\Build::STATUS_NEW:
|
||||||
</tr>
|
$updated = $build->getCreated();
|
||||||
</thead>
|
$label = 'Created';
|
||||||
<tbody id="latest-builds">
|
$color = 'blue';
|
||||||
<?php print $builds; ?>
|
break;
|
||||||
</tbody>
|
|
||||||
</table>
|
case \PHPCI\Model\Build::STATUS_RUNNING:
|
||||||
|
$updated = $build->getStarted();
|
||||||
|
$label = 'Started';
|
||||||
|
$color = 'yellow';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case \PHPCI\Model\Build::STATUS_SUCCESS:
|
||||||
|
$updated = $build->getFinished();
|
||||||
|
$label = 'Successful';
|
||||||
|
$color = 'green';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case \PHPCI\Model\Build::STATUS_FAILED:
|
||||||
|
$updated = $build->getFinished();
|
||||||
|
$label = 'Failed';
|
||||||
|
$color = 'red';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($updated->format('Y-m-d') != $last->format('Y-m-d')): $last = $updated;
|
||||||
|
?>
|
||||||
|
<li class="time-label">
|
||||||
|
<span class="bg-gray">
|
||||||
|
<?php print $last->format('M j Y'); ?>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- /.timeline-label -->
|
||||||
|
<!-- timeline item -->
|
||||||
|
<li>
|
||||||
|
<i class="fa fa-<?php print $build->getProject()->getIcon(); ?> bg-<?php print $color; ?>"></i>
|
||||||
|
<div class="timeline-item">
|
||||||
|
<span class="time"><i class="fa fa-clock-o"></i> <?php print $updated->format('g:ia'); ?></span>
|
||||||
|
<h3 class="timeline-header">
|
||||||
|
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $build->getProjectId(); ?>">
|
||||||
|
<?php print $build->getProject()->getTitle(); ?>
|
||||||
|
</a>
|
||||||
|
-
|
||||||
|
<a href="<?php print PHPCI_URL; ?>build/view/<?php print $build->getId(); ?>">
|
||||||
|
Build #<?php print $build->getId(); ?>
|
||||||
|
</a>
|
||||||
|
-
|
||||||
|
<?php print $label; ?>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="timeline-body">
|
||||||
|
<?php
|
||||||
|
if ($build->getCommitId() !== 'Manual') {
|
||||||
|
print sprintf(
|
||||||
|
'<a href="%s" target="_blank">%s (%s)</a>',
|
||||||
|
$build->getCommitLink(),
|
||||||
|
substr($build->getCommitId(), 0, 7),
|
||||||
|
$build->getCommitterEmail()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
print 'Manual Build';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
- <?php print $build->getCommitMessage(); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<!-- END timeline item -->
|
||||||
|
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<i class="fa fa-clock-o"></i>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
|
||||||
var refreshProjectData = function()
|
|
||||||
{
|
|
||||||
$.ajax({
|
|
||||||
url: '<?php echo PHPCI_URL ?>home/latest',
|
|
||||||
|
|
||||||
success: function (data) {
|
|
||||||
$('#latest-builds').html(data);
|
|
||||||
$('#latest-builds').trigger('latest-builds:reload');
|
|
||||||
},
|
|
||||||
|
|
||||||
error: handleFailedAjax
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: '<?php echo PHPCI_URL ?>home/summary',
|
|
||||||
|
|
||||||
success: function (data) {
|
|
||||||
$('#project-overview').html(data);
|
|
||||||
$('#project-overview').trigger('project-overview:reload');
|
|
||||||
},
|
|
||||||
|
|
||||||
error: handleFailedAjax
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
setInterval(refreshProjectData, 10000);
|
|
||||||
</script>
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
<h1 id="title">Packages and Provided Plugins</h1>
|
|
||||||
|
|
||||||
<?php if (!$canWrite): ?>
|
<?php if (!$canWrite): ?>
|
||||||
<p class="alert alert-danger">PHPCI cannot update composer.json for you as it is not writable.</p>
|
<p class="alert alert-danger">PHPCI cannot update composer.json for you as it is not writable.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
@ -12,10 +10,12 @@
|
||||||
<p class="alert alert-success"><strong><?php echo $_GET['w']; ?></strong> has been added to composer.json for you and will be installed next time you run composer update.</p>
|
<p class="alert alert-success"><strong><?php echo $_GET['w']; ?></strong> has been added to composer.json for you and will be installed next time you run composer update.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="box">
|
<div class="box box-primary">
|
||||||
<h3 class="title">Available Plugins</h3>
|
<div class="box-header">
|
||||||
|
<h3 class="box-title">Enabled Plugins</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
<table class="table-striped table-bordered table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
|
@ -35,85 +35,104 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box">
|
|
||||||
<h3 class="title">Installed Packages</h3>
|
|
||||||
|
|
||||||
<table class="table-striped table-bordered table">
|
|
||||||
<thead>
|
<div class="row">
|
||||||
<tr>
|
<div class="col-lg-6">
|
||||||
<th>Title</th>
|
<div class="box box-primary">
|
||||||
<th>Version</th>
|
<div class="box-header">
|
||||||
<th width="1"></th>
|
<h3 class="box-title">Installed Packages</h3>
|
||||||
</tr>
|
</div>
|
||||||
</thead>
|
|
||||||
<tbody>
|
<table class="table">
|
||||||
<?php foreach ($installedPackages as $package => $version): ?>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo $package; ?></td>
|
<th>Title</th>
|
||||||
<td><?php echo $version; ?></td>
|
<th>Version</th>
|
||||||
<td>
|
<th width="1"></th>
|
||||||
<?php if (!in_array($package, $required) && $canWrite): ?>
|
</tr>
|
||||||
<a class="btn btn-danger btn-small" href="<?php echo PHPCI_URL ?>plugin/remove?package=<?php echo $package; ?>">Remove »</a>
|
</thead>
|
||||||
<?php endif; ?>
|
<tbody>
|
||||||
</td>
|
<?php foreach ($installedPackages as $package => $version): ?>
|
||||||
</tr>
|
<tr>
|
||||||
<?php endforeach; ?>
|
<td><?php echo $package; ?></td>
|
||||||
</tbody>
|
<td><?php echo $version; ?></td>
|
||||||
</table>
|
<td>
|
||||||
|
<?php if (!in_array($package, $required) && $canWrite): ?>
|
||||||
|
<a class="btn btn-danger btn-small" href="<?php echo PHPCI_URL ?>plugin/remove?package=<?php echo $package; ?>">Remove »</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="box box-primary">
|
||||||
|
<div class="box-header">
|
||||||
|
<h3 class="box-title">Suggested Packages</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Title</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th width="1"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($suggestedPackages as $package => $version): ?>
|
||||||
|
<?php if (in_array($package, array_keys($installedPackages))) { continue; } ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $package; ?></td>
|
||||||
|
<td><?php echo $version; ?></td>
|
||||||
|
<td>
|
||||||
|
<?php if ($canWrite): ?>
|
||||||
|
<button data-name="<?php echo $package; ?>" class="install-package btn btn-success btn-small">Install »</button>
|
||||||
|
<?php endif; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box">
|
<div class="box box-primary">
|
||||||
<h3 class="title">Suggested Packages</h3>
|
<div class="box-header">
|
||||||
|
<h3 class="box-title">Search Packagist for More Packages</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
<table class="table-striped table-bordered table">
|
<div class="box-body">
|
||||||
<thead>
|
<div class="input-group">
|
||||||
<tr>
|
<input id="search-query" type="text" class="form-control">
|
||||||
<th>Title</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th width="1"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<?php foreach ($suggestedPackages as $package => $version): ?>
|
|
||||||
<?php if (in_array($package, array_keys($installedPackages))) { continue; } ?>
|
|
||||||
<tr>
|
|
||||||
<td><?php echo $package; ?></td>
|
|
||||||
<td><?php echo $version; ?></td>
|
|
||||||
<td>
|
|
||||||
<?php if ($canWrite): ?>
|
|
||||||
<button data-name="<?php echo $package; ?>" class="install-package btn btn-success btn-small">Install »</button>
|
|
||||||
<?php endif; ?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="box">
|
|
||||||
<h3 class="title">Search Packagist for More Packages</h3>
|
|
||||||
|
|
||||||
<div class="input-group">
|
|
||||||
<input id="search-query" type="text" class="form-control">
|
|
||||||
<span class="input-group-btn">
|
<span class="input-group-btn">
|
||||||
<button id="search-button" class="btn btn-success" type="button">Search</button>
|
<button id="search-button" class="btn btn-success" type="button">Search</button>
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="results" style="margin-top: 15px; display: none;">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Title</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th width="1"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="search-results">
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="results" style="margin-top: 15px; display: none;">
|
|
||||||
<table class="table-striped table-bordered table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Title</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th width="1"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="search-results">
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -1,102 +1,47 @@
|
||||||
<h1>
|
<script>
|
||||||
<i class="glyphicon glyphicon-th-list"></i> <?php print htmlspecialchars($project->getTitle()); ?>
|
var PHPCI_PROJECT_ID = <?php print $project->getId(); ?>;
|
||||||
<small><?php echo $branch ?></small>
|
var PHPCI_PROJECT_BRANCH = '<?php print $branch; ?>';
|
||||||
<div class="btn-group pull-right branch-btn">
|
</script>
|
||||||
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
|
||||||
Branch <span class="caret"></span>
|
<div class="clearfix" style="margin-bottom: 20px;">
|
||||||
</button>
|
<div class="pull-right btn-group">
|
||||||
<ul class="dropdown-menu" role="menu">
|
<a class="btn btn-success" href="<?php print PHPCI_URL . 'project/build/' . $project->getId(); ?>">Build Now</a>
|
||||||
<?php foreach ($branches as $curbranch) : ?>
|
|
||||||
<li <?php echo ($curbranch == $branch) ? 'class="active"' : ''?>>
|
<div class="btn-group branch-btn pull-right">
|
||||||
<a href="<?php echo PHPCI_URL ?>project/view/<?php print $project->getId(); ?>/<?php echo urlencode($curbranch) ?>">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
<?php echo $curbranch ?>
|
Branch<?php print !empty($branch) ? ': ' . $branch : ''; ?> <span class="caret"></span>
|
||||||
</a>
|
</button>
|
||||||
</li>
|
|
||||||
<?php endforeach; ?>
|
<ul class="dropdown-menu" role="menu">
|
||||||
<li class="divider"></li>
|
<?php foreach ($branches as $curbranch) : ?>
|
||||||
<li><a href="<?php echo PHPCI_URL ?>project/view/<?php print $project->getId(); ?>">All</a></li>
|
<li <?php echo ($curbranch == $branch) ? 'class="active"' : ''?>>
|
||||||
</ul>
|
<a href="<?php echo PHPCI_URL ?>project/view/<?php print $project->getId(); ?>?branch=<?php echo urlencode($curbranch) ?>">
|
||||||
|
<?php echo $curbranch ?>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="<?php echo PHPCI_URL ?>project/view/<?php print $project->getId(); ?>">All</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</h1>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3">
|
<div class="col-lg-9 col-md-8 col-sm-8">
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h3 class="panel-title">Options</h3>
|
|
||||||
|
<h3 class="box-title">Builds</h3>
|
||||||
</div>
|
</div>
|
||||||
|
<table class="table">
|
||||||
<div class="list-group">
|
|
||||||
<a class="list-group-item"
|
|
||||||
href="<?php echo PHPCI_URL ?>project/build/<?php print $project->getId() . ((!empty($branch)) ? '/' . urlencode($branch) : ''); ?>">
|
|
||||||
<i class="glyphicon glyphicon-cog"></i> Build <?php print (!empty($branch)) ? 'Branch' : ''; ?> Now
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<?php if($this->User()->getIsAdmin()): ?>
|
|
||||||
<a class="list-group-item" href="<?php echo PHPCI_URL ?>project/edit/<?php print $project->getId(); ?>"><i class="glyphicon glyphicon-edit"></i> Edit Project</a>
|
|
||||||
<a class="list-group-item" href="#" id="delete-project"><i class="glyphicon glyphicon-trash"></i> Delete Project</a>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php if (in_array($project->getType(), array('github', 'gitlab', 'bitbucket'))): ?>
|
|
||||||
<div class="panel panel-info">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title">Webhooks</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel-body">
|
|
||||||
To automatically build this project when new commits are pushed, add the URL below
|
|
||||||
|
|
||||||
<?php
|
|
||||||
switch($project->getType())
|
|
||||||
{
|
|
||||||
case 'github':
|
|
||||||
$url = PHPCI_URL . 'webhook/github/' . $project->getId();
|
|
||||||
print ' as a "WebHook URL" in the <a href="https://github.com/' . $project->getReference() . '/settings/hooks">Service Hooks</a> section of your Github repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'gitlab':
|
|
||||||
$url = PHPCI_URL. 'webhook/gitlab/' . $project->getId();
|
|
||||||
print ' as a "WebHook URL" in the Web Hooks section of your Gitlab repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'bitbucket':
|
|
||||||
$url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId();
|
|
||||||
print ' as a "POST" service in the <a href="https://bitbucket.org/' . $project->getReference() . '/admin/services">Services</a> section of your Bitbucket repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php if ($project->getSshPublicKey()): ?>
|
|
||||||
<div class="panel panel-info">
|
|
||||||
<div class="panel-heading"><h3 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#publicCollapse">Public Key</a></h3></div>
|
|
||||||
<div id="publicCollapse" class="panel-collapse collapse out">
|
|
||||||
<div class="panel-body word-wrap"><?php print $project->getSshPublicKey(); ?></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-9">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
|
|
||||||
<h3 class="panel-title">Builds</h3>
|
|
||||||
</div>
|
|
||||||
<table class="table table-striped table-bordered">
|
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>ID</th>
|
<th>ID</th>
|
||||||
<th>Project</th>
|
<th>Project</th>
|
||||||
<th>Commit</th>
|
<th class="hidden-md hidden-sm hidden-xs">Commit</th>
|
||||||
<th>Branch</th>
|
<th>Branch</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th style="width: 100px"></th>
|
<th style="width: 100px"></th>
|
||||||
|
@ -107,63 +52,103 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
print '<div><ul class="pagination">';
|
|
||||||
|
|
||||||
$project_url = PHPCI_URL . 'project/view/' . $project->getId() . ((!empty($branch)) ? '/' . urlencode($branch) : '');
|
|
||||||
|
|
||||||
if ($page > 1) {
|
|
||||||
print '<li><a href="' . $project_url . '?p='.($page == 1 ? '1' : $page - 1).'">« Prev</a></li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($pages > 1) {
|
|
||||||
for($i = 1; $i <= $pages; $i++)
|
|
||||||
{
|
|
||||||
if ($i == $page) {
|
|
||||||
print '<li><span>' . $i . '</span></li>';
|
|
||||||
} else {
|
|
||||||
print '<li><a href="' . $project_url . '?p=' . $i . '">' . $i . '</a></li>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($page < $pages) {
|
|
||||||
print '<li><a href="' . $project_url . '?p='.($page == $pages ? $pages : $page + 1).'">Next »</a></li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</ul></div>';
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-3 col-md-4 col-sm-4">
|
||||||
|
|
||||||
|
<?php if (in_array($project->getType(), array('github', 'gitlab', 'bitbucket'))): ?>
|
||||||
|
<div class="box box-info">
|
||||||
|
<div class="box-header">
|
||||||
|
<h4 class="box-title">Webhooks</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box-body">
|
||||||
|
To automatically build this project when new commits are pushed, add the URL below
|
||||||
|
|
||||||
|
<?php
|
||||||
|
switch($project->getType())
|
||||||
|
{
|
||||||
|
case 'github':
|
||||||
|
$url = PHPCI_URL . 'webhook/github/' . $project->getId();
|
||||||
|
print ' as a new "Webhook" in the <a href="https://github.com/' . $project->getReference() . '/settings/hooks">Webhooks and Services</a> section of your Github repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'gitlab':
|
||||||
|
$url = PHPCI_URL. 'webhook/gitlab/' . $project->getId();
|
||||||
|
print ' as a "WebHook URL" in the Web Hooks section of your Gitlab repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'bitbucket':
|
||||||
|
$url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId();
|
||||||
|
print ' as a "POST" service in the <a href="https://bitbucket.org/' . $project->getReference() . '/admin/services">Services</a> section of your Bitbucket repository.<br><br><strong style="word-wrap: break-word;">' . $url . '</strong>';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($project->getSshPublicKey()): ?>
|
||||||
|
<div class="box box-info">
|
||||||
|
<div class="box-header"><h3 class="box-title"><a data-toggle="collapse" data-parent="#accordion" href="#publicCollapse">Public Key</a></h3></div>
|
||||||
|
<div class="box-body" style="word-break: break-word;"><?php print $project->getSshPublicKey(); ?></div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if($page == 1): ?>
|
<?php
|
||||||
<script>
|
|
||||||
setInterval(function()
|
print '<div><ul class="pagination">';
|
||||||
|
|
||||||
|
$project_url = PHPCI_URL . 'project/view/' . $project->getId() . ((!empty($branch)) ? '/' . urlencode($branch) : '');
|
||||||
|
|
||||||
|
if ($page > 1) {
|
||||||
|
print '<li><a href="' . $project_url . '?p='.($page == 1 ? '1' : $page - 1).'">« Prev</a></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($pages > 1) {
|
||||||
|
|
||||||
|
$start = $page - 3;
|
||||||
|
|
||||||
|
if ($start <= 0) {
|
||||||
|
$start = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$end = $page + 3;
|
||||||
|
|
||||||
|
if ($end > $pages) {
|
||||||
|
$end = $pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($start > 1) {
|
||||||
|
print '<li><a href="' . $project_url . '">1...</a></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
for($i = $start; $i <= $end; $i++)
|
||||||
{
|
{
|
||||||
$.ajax({
|
if ($pages > $end && $i == $pages) continue;
|
||||||
url: '<?php echo PHPCI_URL ?>project/builds/<?php print $project->getId() . ((!empty($branch)) ? '/' . urlencode($branch) : ''); ?>',
|
|
||||||
|
|
||||||
success: function (data) {
|
if ($i == $page) {
|
||||||
$('#latest-builds').html(data);
|
print '<li class="bg-blue"><span>' . $i . '</span></li>';
|
||||||
$('#latest-builds').trigger('latest-builds:reload');
|
} else {
|
||||||
},
|
print '<li><a href="' . $project_url . '?p=' . $i . '">' . $i . '</a></li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
error: handleFailedAjax
|
if ($pages > $end) {
|
||||||
});
|
print '<li><a href="' . $project_url . '?p='.$pages.'">...'.$pages.'</a></li>';
|
||||||
}, 10000);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(function() {
|
|
||||||
$('#delete-project').on('click', function (e) {
|
|
||||||
e.preventDefault();
|
if ($page < $pages - 1) {
|
||||||
confirmDelete(
|
print '<li><a href="' . $project_url . '?p='.($page == $pages ? $pages : $page + 1).'">Next »</a></li>';
|
||||||
"<?php echo PHPCI_URL ?>project/delete/<?php print $project->getId(); ?>", "Project"
|
}
|
||||||
).onCloseConfirmed = function () {window.location = '/'};
|
|
||||||
});
|
|
||||||
})
|
|
||||||
</script>
|
print '</ul></div>';
|
||||||
<?php endif; ?>
|
|
||||||
|
?>
|
|
@ -1,34 +1,29 @@
|
||||||
<div id="title">
|
|
||||||
<h1><?php print $type == 'add' ? 'Add Project' : 'Edit Project' ?></h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-4">
|
|
||||||
<div class="panel panel-info">
|
|
||||||
<div class="panel-body">
|
|
||||||
<?php if(!is_null($key)): ?>
|
|
||||||
<p>To make it easier to get started, we've generated a public / private key pair for you to use for this project. To use it, just add the following public key to the "deploy keys" section of your repository settings on Github / Bitbucket.</p>
|
|
||||||
|
|
||||||
<textarea style="width: 90%; height: 150px;"><?php print $key ?></textarea>
|
<div class="col-sm-8">
|
||||||
<?php elseif($type == 'add'): ?>
|
<div class="box box-primary">
|
||||||
<p style="margin-bottom:0;">Fill in the form to the right to add your new project.</p>
|
<div class="box-header">
|
||||||
<?php else: ?>
|
<h3 class="box-title">Project Details</h3>
|
||||||
<p style="margin-bottom:0;">Edit your project details using the form to the right.</p>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h3 class="panel-title">Project Details</h3>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<?php print $form; ?>
|
<?php print $form; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if(!is_null($key)): ?>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<div class="box box-info">
|
||||||
|
<div class="box-body">
|
||||||
|
<p>To make it easier to get started, we've generated a public / private key pair for you to use for this project. To use it, just add the following public key to the "deploy keys" section of your repository settings on Github / Bitbucket.</p>
|
||||||
|
|
||||||
|
<textarea style="width: 90%; height: 150px;"><?php print $key ?></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
|
@ -5,17 +5,17 @@
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<?php if (empty($error)): ?>
|
<?php if (empty($error)): ?>
|
||||||
<div class="panel panel-success" style="margin-bottom: 0">
|
<div class="panel panel-success" style="margin-bottom: 0">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<strong>Don't worry!</strong><br>Just enter your email address below and we'll email you a link to reset your password.
|
<strong>Don't worry!</strong><br>Just enter your email address below and we'll email you a link to reset your password.
|
||||||
</div>
|
</div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<div class="panel panel-danger" style="margin-bottom: 0">
|
<div class="panel panel-danger" style="margin-bottom: 0">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<?php print $error; ?>
|
<?php print $error; ?>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<form class="form" action="<?php print PHPCI_URL; ?>session/forgot-password" method="POST">
|
<form class="form" action="<?php print PHPCI_URL; ?>session/forgot-password" method="POST">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Enter your email address:</label>
|
<label for="email">Enter your email address:</label>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
<?php if (empty($error)): ?>
|
<?php if (empty($error)): ?>
|
||||||
<div class="panel panel-success" style="margin-bottom: 0">
|
<div class="panel panel-success" style="margin-bottom: 0">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
Please enter a new password
|
Please enter a new password
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<form class="form" action="<?php print PHPCI_URL; ?>session/reset-password/<?php print $id; ?>/<?php print $key; ?>" method="POST">
|
<form class="form" action="<?php print PHPCI_URL; ?>session/reset-password/<?php print $id; ?>/<?php print $key; ?>" method="POST">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password">New password:</label>
|
<label for="password">New password:</label>
|
||||||
|
|
|
@ -28,16 +28,16 @@
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading"><h3 class="panel-title">Build Settings</h3></div>
|
<div class="box-header"><h3 class="box-title">Build Settings</h3></div>
|
||||||
<div class="panel-body">
|
<div class="box-body clearfix">
|
||||||
<?php print $buildSettings; ?>
|
<?php print $buildSettings; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading"><h3 class="panel-title">Github Application</h3></div>
|
<div class="box-header"><h3 class="box-title">Github Application</h3></div>
|
||||||
<div class="panel-body">
|
<div class="box-body clearfix">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
|
@ -72,12 +72,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<div class="panel panel-info">
|
<div class="box box-info">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h3 class="panel-title">Where to find these...</h3>
|
<h3 class="box-title">Where to find these...</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<p>If you own the application you would like to use, you can find this information within your
|
<p>If you own the application you would like to use, you can find this information within your
|
||||||
<a href="https://github.com/settings/applications">applications</a> settings area.</p>
|
<a href="https://github.com/settings/applications">applications</a> settings area.</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -89,12 +89,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h3 class="panel-title">Email Settings</h3>
|
<h3 class="box-title">Email Settings</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body clearfix">
|
||||||
<?php if (!isset($settings['phpci']['email_settings'])): ?>
|
<?php if (!isset($settings['phpci']['email_settings'])): ?>
|
||||||
<p class="alert alert-warning clearfix">
|
<p class="alert alert-warning clearfix">
|
||||||
Before PHPCI can send build status emails, you need to configure your SMTP settings below.
|
Before PHPCI can send build status emails, you need to configure your SMTP settings below.
|
||||||
|
|
|
@ -53,12 +53,12 @@ foreach($projects as $project):
|
||||||
case 2:
|
case 2:
|
||||||
$successes++;
|
$successes++;
|
||||||
$statuses[] = 'ok';
|
$statuses[] = 'ok';
|
||||||
$success = is_null($success) && !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : $success;
|
$success = is_null($success) && !is_null($build->getFinished()) ? $build->getFinished()->format('M j Y g:ia') : $success;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$failures++;
|
$failures++;
|
||||||
$statuses[] = 'failed';
|
$statuses[] = 'failed';
|
||||||
$failure = is_null($failure) && !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : $failure;
|
$failure = is_null($failure) && !is_null($build->getFinished()) ? $build->getFinished()->format('M j Y g:ia') : $failure;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,32 +66,53 @@ foreach($projects as $project):
|
||||||
|
|
||||||
if ($failures == 0) {
|
if ($failures == 0) {
|
||||||
$health = 'Good';
|
$health = 'Good';
|
||||||
$subcls = 'success';
|
$subcls = 'green';
|
||||||
} elseif ($failures > $successes) {
|
} elseif ($successes == 0) {
|
||||||
$health = 'Bad';
|
$health = 'Bad';
|
||||||
$subcls = 'danger';
|
$subcls = 'red';
|
||||||
} else {
|
} else {
|
||||||
$health = 'Warning';
|
$health = 'Warning';
|
||||||
$subcls = 'warning';
|
$subcls = 'yellow';
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<tr class="<?php print $cls; ?>">
|
|
||||||
<td>
|
<div class="small-box bg-<?php print $subcls; ?>">
|
||||||
<span class='label label-<?php echo $subcls ?>'>
|
<div class="inner">
|
||||||
<?php echo $health ?>
|
<h3>
|
||||||
</span>
|
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>">
|
||||||
</td>
|
<?php print $project->getTitle(); ?>
|
||||||
<td><a href='<?php echo PHPCI_URL ?>project/view/<?php echo $project->getId() ?>'><?php echo htmlspecialchars($project->getTitle()) ?></a></td>
|
</a>
|
||||||
<td><?php print is_null($success) ? 'Never' : $success; ?></td>
|
</h3>
|
||||||
<td><?php print is_null($failure) ? 'Never' : $failure; ?></td>
|
<p>
|
||||||
<td>
|
<?php if ($failures > 0): ?>
|
||||||
<?php
|
<?php print $failures; ?> out of the last
|
||||||
foreach ($statuses as $status) {
|
<?php print count($builds[$project->getId()]); ?> builds have failed.
|
||||||
print '<img alt="'.$status.'" src="' . PHPCI_URL . 'assets/img/icon-build-' . $status . '.png">';
|
|
||||||
}
|
<?php if (!is_null($successful[$project->getId()])): ?>
|
||||||
?>
|
The last successful build was
|
||||||
</td>
|
<?php print $successful[$project->getId()]->getFinished()->format('M j Y'); ?>
|
||||||
<td><a class="btn btn-default btn-sm" href='<?php echo PHPCI_URL ?>project/build/<?php echo $project->getId(); ?>'>build now »</a></td>
|
<?php else: ?>
|
||||||
</tr>
|
This project has never built successfully.
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
All of the last <?php print count($builds[$project->getId()]); ?> builds passed.
|
||||||
|
|
||||||
|
<?php if (!is_null($failed[$project->getId()])): ?>
|
||||||
|
The last failed build was
|
||||||
|
<?php print $failed[$project->getId()]->getFinished()->format('M j Y'); ?>
|
||||||
|
<?php else: ?>
|
||||||
|
This project has never failed to build.
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="icon">
|
||||||
|
<i class="fa fa-<?php print $project->getIcon(); ?>"></i>
|
||||||
|
</div>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>" class="small-box-footer">
|
||||||
|
View Project <i class="fa fa-arrow-circle-right"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
|
|
@ -1,67 +1,60 @@
|
||||||
<div id="title">
|
<div class="clearfix" style="margin-bottom: 20px;">
|
||||||
<h1>Users</h1>
|
<div class="pull-right btn-group">
|
||||||
|
<a class="btn btn-primary" href="<?php print PHPCI_URL; ?>user/add">Add User</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3">
|
<div class="col-xs-12">
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title">Options</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="list-group">
|
<table class="table">
|
||||||
<?php if($this->User()->getIsAdmin()): ?>
|
<thead>
|
||||||
<a class="list-group-item" href="<?php echo PHPCI_URL ?>user/add"><i class="icon-plus-sign"></i> Add User</a>
|
<tr>
|
||||||
<?php endif; ?>
|
<th>Email Address</th>
|
||||||
</div>
|
<th>Name</th>
|
||||||
</div>
|
<th>Administrator</th>
|
||||||
</div>
|
<th style="width: 100px"></th>
|
||||||
<div class="col-lg-9">
|
</tr>
|
||||||
<table class="table table-striped table-bordered">
|
</thead>
|
||||||
<thead>
|
<tbody id="users">
|
||||||
<tr>
|
<?php foreach($users['items'] as $user): ?>
|
||||||
<th>Email Address</th>
|
<?php
|
||||||
<th>Name</th>
|
switch($user->getIsAdmin())
|
||||||
<th>Administrator</th>
|
{
|
||||||
<th style="width: 100px"></th>
|
case 0:
|
||||||
</tr>
|
$cls = '';
|
||||||
</thead>
|
$status = 'No';
|
||||||
<tbody id="users">
|
break;
|
||||||
<?php foreach($users['items'] as $user): ?>
|
|
||||||
<?php
|
case 1:
|
||||||
switch($user->getIsAdmin())
|
$cls = 'warning';
|
||||||
{
|
$status = 'Yes';
|
||||||
case 0:
|
break;
|
||||||
$cls = '';
|
}
|
||||||
$status = 'No';
|
?>
|
||||||
break;
|
<tr class="<?php print $cls; ?>">
|
||||||
|
<td><a href="<?php echo PHPCI_URL ?>user/edit/<?php print $user->getId(); ?>"><?php print $user->getEmail(); ?></a></td>
|
||||||
|
<td><?php print htmlspecialchars($user->getName()); ?></td>
|
||||||
|
<td><?php print $status; ?></td>
|
||||||
|
<td>
|
||||||
|
<?php if($this->User()->getIsAdmin()): ?>
|
||||||
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-default btn-small" href="<?php echo PHPCI_URL ?>user/edit/<?php print $user->getId(); ?>">Edit</a>
|
||||||
|
<button class="btn btn-default btn-small dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="<?php echo PHPCI_URL ?>user/delete/<?php print $user->getId(); ?>" class="phpci-app-delete-user">Delete User</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
case 1:
|
|
||||||
$cls = 'warning';
|
|
||||||
$status = 'Yes';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<tr class="<?php print $cls; ?>">
|
|
||||||
<td><a href="<?php echo PHPCI_URL ?>user/edit/<?php print $user->getId(); ?>"><?php print $user->getEmail(); ?></a></td>
|
|
||||||
<td><?php print htmlspecialchars($user->getName()); ?></td>
|
|
||||||
<td><?php print $status; ?></td>
|
|
||||||
<td>
|
|
||||||
<?php if($this->User()->getIsAdmin()): ?>
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-default btn-small" href="<?php echo PHPCI_URL ?>user/edit/<?php print $user->getId(); ?>">Edit</a>
|
|
||||||
<button class="btn btn-default btn-small dropdown-toggle" data-toggle="dropdown">
|
|
||||||
<span class="caret"></span>
|
|
||||||
</button>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="<?php echo PHPCI_URL ?>user/delete/<?php print $user->getId(); ?>" class="phpci-app-delete-user">Delete User</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
<h1><?php print $this->User()->getName(); ?></h1>
|
|
||||||
|
|
||||||
<?php if (isset($updated)): ?>
|
<?php if (isset($updated)): ?>
|
||||||
<p class="alert alert-success">Your details have been updated.</p>
|
<p class="alert alert-success">Your details have been updated.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="box box-primary">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h3 class="panel-title">Update your details</h3>
|
<h3 class="box-title">Update your details</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<?php print $form; ?>
|
<?php print $form; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,20 +1,9 @@
|
||||||
<div id="title">
|
|
||||||
<h1><?php print $type == 'add' ? 'Add User' : 'Edit ' . htmlspecialchars($user->getName()) ?></h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-4">
|
<div class="col-sm-12">
|
||||||
<div class="well" style="">
|
<div class="box box-primary">
|
||||||
<?php if($type == 'add'): ?>
|
<div class="box-body">
|
||||||
<p style="margin-bottom:0;">Fill in the form to the right to add a new user.</p>
|
<?php print $form; ?>
|
||||||
<?php else: ?>
|
</div>
|
||||||
<p style="margin-bottom:0;">Edit user details using the form to the right.</p>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<div class="box">
|
|
||||||
<?php print $form; ?>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="panel panel-danger">
|
<div class="panel panel-danger">
|
||||||
<div class="panel-heading">
|
<div class="box-header">
|
||||||
<h2 class="panel-title">Sorry, there was a problem</h2>
|
<h2 class="box-title">Sorry, there was a problem</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="box-body">
|
||||||
<?php print $exception->getMessage(); ?>
|
<?php print $exception->getMessage(); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,86 +1,312 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><?php if (!empty($title)) { print $title . ' - '; } ?>PHPCI</title>
|
<meta charset="UTF-8">
|
||||||
|
<title><?php print $title; ?><?php print !empty($subtitle) ? ' - ' . $subtitle : ''; ?></title>
|
||||||
|
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
|
||||||
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="//cdnjs.cloudflare.com/ajax/libs/ionicons/1.5.2/css/ionicons.min.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" rel="stylesheet" type="text/css" />
|
||||||
|
|
||||||
<link href='//fonts.googleapis.com/css?family=Roboto:300,500&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
|
<link href="<?php print PHPCI_URL; ?>assets/css/datepicker/datepicker3.css" rel="stylesheet" type="text/css" />
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo PHPCI_URL ?>assets/css/bootstrap.min.css">
|
<link href="<?php print PHPCI_URL; ?>assets/css/daterangepicker/daterangepicker-bs3.css" rel="stylesheet" type="text/css" />
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo PHPCI_URL ?>assets/css/phpci.css">
|
|
||||||
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="<?php echo PHPCI_URL ?>favicon.ico">
|
<!-- Theme style -->
|
||||||
<link rel="shortcut icon" type="image/png" href="<?php echo PHPCI_URL ?>assets/img/favicon.png">
|
<link href="<?php print PHPCI_URL; ?>assets/css/AdminLTE.css" rel="stylesheet" type="text/css" />
|
||||||
|
|
||||||
<script>window.PHPCI_URL = <?php print json_encode(PHPCI_URL) ?></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
|
||||||
|
<script src="<?php print PHPCI_URL; ?>assets/js/class.js"></script>
|
||||||
|
<script src="<?php print PHPCI_URL; ?>assets/js/phpci.js" type="text/javascript"></script>
|
||||||
|
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
||||||
|
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
<!--[if lt IE 9]>
|
||||||
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
<script src="<?php echo PHPCI_URL ?>assets/js/bootstrap.min.js"></script>
|
<script>var PHPCI_URL = '<?php print PHPCI_URL; ?>';</script>
|
||||||
<script src="<?php echo PHPCI_URL ?>assets/js/jqueryui.js"></script>
|
|
||||||
<script src="<?php echo PHPCI_URL ?>assets/js/class.js"></script>
|
|
||||||
<script src="<?php echo PHPCI_URL ?>assets/js/phpci.js"></script>
|
|
||||||
<script src="<?php echo PHPCI_URL ?>assets/js/init.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="navbar navbar-fixed-top">
|
|
||||||
<div class="container">
|
|
||||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<a class="navbar-brand" href="<?php echo PHPCI_URL ?>"><img src="<?php echo PHPCI_URL ?>/assets/img/logo.png"></a>
|
<style>
|
||||||
|
.skin-blue .logo, .skin-blue .logo:hover {
|
||||||
|
background-image: url('/assets/img/logo-large.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 40%;
|
||||||
|
background-position: 65px;
|
||||||
|
text-indent: -5000px;
|
||||||
|
}
|
||||||
|
|
||||||
<div class="navbar-collapse collapse">
|
.build-info-panel {
|
||||||
<ul class="nav navbar-nav navbar-right">
|
|
||||||
|
|
||||||
<li class="dropdown">
|
}
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
|
||||||
<img class="pull-left" style="margin-right: 7px; margin-top: -5px; border-radius: 50%" src="//www.gravatar.com/avatar/<?php print md5($this->User()->getEmail()); ?>?d=mm&s=30">
|
|
||||||
|
|
||||||
<strong><?php print htmlspecialchars($this->User()->getName()); ?></strong> <b class="caret"></b>
|
.build-info-panel .box-header h1.box-title {
|
||||||
|
border: 0;
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-left: 110px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.build-info-panel h1.box-title span {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.build-info-panel img {
|
||||||
|
border: 2px solid #fff;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-top: -40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.build-info-panel #build-info {
|
||||||
|
margin-left: 110px;
|
||||||
|
min-height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.build-info-panel .commit-message {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-box h3 a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination>li>span {
|
||||||
|
font-weight: bold;
|
||||||
|
background: #337ab7;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="skin-blue">
|
||||||
|
<!-- header logo: style can be found in header.less -->
|
||||||
|
<header class="header">
|
||||||
|
<a href="<?php print PHPCI_URL; ?>" class="logo">PHPCI</a>
|
||||||
|
<!-- Header Navbar: style can be found in header.less -->
|
||||||
|
<nav class="navbar navbar-static-top" role="navigation">
|
||||||
|
<!-- Sidebar toggle button-->
|
||||||
|
<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-right">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
|
||||||
|
<li class="dropdown messages-menu phpci-pending">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-clock-o"></i>
|
||||||
|
<span class="label label-info phpci-pending-count"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="header"><span class="phpci-pending-count"></span> builds pending</li>
|
||||||
|
<li>
|
||||||
|
<ul class="menu phpci-pending-list">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dropdown messages-menu phpci-running">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-cogs"></i>
|
||||||
|
<span class="label label-warning phpci-running-count"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="header"><span class="phpci-running-count"></span> builds running</li>
|
||||||
|
<li>
|
||||||
|
<ul class="menu phpci-running-list">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- User Account: style can be found in dropdown.less -->
|
||||||
|
<li class="dropdown user user-menu">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="glyphicon glyphicon-user"></i>
|
||||||
|
<span><?php print $this->User()->getName(); ?> <i class="caret"></i></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<!-- User image -->
|
||||||
|
<li class="user-header bg-light-blue">
|
||||||
|
<img src="https://www.gravatar.com/avatar/<?php print md5($this->User()->getEmail()); ?>?d=mm" class="img-circle" alt="<?php print $this->User()->getName(); ?>" />
|
||||||
|
<p>
|
||||||
|
<?php print $this->User()->getName(); ?>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Menu Footer-->
|
||||||
|
<li class="user-footer">
|
||||||
|
<div class="pull-left">
|
||||||
|
<a href="<?php print PHPCI_URL ?>user/profile" class="btn btn-default btn-flat">Edit Profile</a>
|
||||||
|
</div>
|
||||||
|
<div class="pull-right">
|
||||||
|
<a href="<?php print PHPCI_URL ?>session/logout" class="btn btn-default btn-flat">Sign out</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="wrapper row-offcanvas row-offcanvas-left">
|
||||||
|
<!-- Left side column. contains the logo and sidebar -->
|
||||||
|
<aside class="left-side sidebar-offcanvas">
|
||||||
|
<!-- sidebar: style can be found in sidebar.less -->
|
||||||
|
<section class="sidebar">
|
||||||
|
<!-- Sidebar user panel -->
|
||||||
|
<div class="user-panel">
|
||||||
|
<div class="pull-left image">
|
||||||
|
<img src="https://www.gravatar.com/avatar/<?php print md5($this->User()->getEmail()); ?>?d=mm" class="img-circle" alt="<?php print $this->User()->getName(); ?>" />
|
||||||
|
</div>
|
||||||
|
<div class="pull-left info">
|
||||||
|
<p>Hello, <?php print $this->User()->getName(); ?></p>
|
||||||
|
|
||||||
|
<a href="#"><i class="fa fa-circle text-success"></i> Online</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- sidebar menu: : style can be found in sidebar.less -->
|
||||||
|
<ul class="sidebar-menu">
|
||||||
|
<li class="active">
|
||||||
|
<a href="<?php print PHPCI_URL; ?>">
|
||||||
|
<i class="fa fa-dashboard"></i> <span>Dashboard</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<?php if ($this->User()->getIsAdmin()): ?>
|
||||||
|
<li class="treeview">
|
||||||
|
<a href="#">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>Admin Options</span>
|
||||||
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ul class="treeview-menu">
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>project/add">
|
||||||
|
<i class="fa fa-angle-double-right"></i> Add Project
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>settings">
|
||||||
|
<i class="fa fa-angle-double-right"></i> Settings
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>user">
|
||||||
|
<i class="fa fa-angle-double-right"></i> Manage Users
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>plugin">
|
||||||
|
<i class="fa fa-angle-double-right"></i> Plugins
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php foreach ($projects['items'] as $project): ?>
|
||||||
|
<li class="treeview">
|
||||||
|
<a href="#">
|
||||||
|
<i class="fa fa-<?php print $project->getIcon(); ?>"></i>
|
||||||
|
<span><?php print $project->getTitle(); ?></span>
|
||||||
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ul class="treeview-menu">
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>">
|
||||||
|
<i class="fa fa-angle-double-right"></i> View
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL; ?>project/build/<?php print $project->getId(); ?>">
|
||||||
|
<i class="fa fa-angle-double-right"></i> Build Now
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" role="menu">
|
|
||||||
<li><a href="<?php print PHPCI_URL ?>user/profile">Edit Profile</a></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li><a href="<?php print PHPCI_URL ?>session/logout">Log out</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<?php if ($this->User()->getIsAdmin()): ?>
|
<?php if ($this->User()->getIsAdmin()): ?>
|
||||||
<li>
|
<li>
|
||||||
<div class="btn-group">
|
<a href="<?php print PHPCI_URL; ?>project/edit/<?php print $project->getId(); ?>">
|
||||||
<a class="btn btn-success navbar-btn" href="<?php echo PHPCI_URL ?>project/add">Add Project</a>
|
<i class="fa fa-angle-double-right"></i> Edit Project
|
||||||
</div>
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<div class="btn-group">
|
<li>
|
||||||
<button type="button" class="btn navbar-btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<a href="<?php print PHPCI_URL; ?>project/delete/<?php print $project->getId(); ?>">
|
||||||
Admin <span class="caret"></span>
|
<i class="fa fa-angle-double-right"></i> Delete Project
|
||||||
</button>
|
</a>
|
||||||
<ul class="dropdown-menu" role="menu">
|
|
||||||
<li><a href="<?php echo PHPCI_URL ?>settings">Settings</a></li>
|
|
||||||
<li><a href="<?php echo PHPCI_URL ?>plugin">Manage Plugins</a></li>
|
|
||||||
<li><a href="<?php echo PHPCI_URL ?>user">Manage Users</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<?php if (isset($nav)): ?>
|
||||||
|
<li class="treeview">
|
||||||
|
<a href="#">
|
||||||
|
<i class="fa fa-<?php print $nav['icon']; ?>"></i>
|
||||||
|
<span><?php print $nav['title']; ?></span>
|
||||||
|
<i class="fa fa-angle-left pull-right"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ul class="treeview-menu">
|
||||||
|
<?php foreach ($nav['links'] as $link => $linkTitle): ?>
|
||||||
|
<li>
|
||||||
|
<a href="<?php print PHPCI_URL . $link; ?>">
|
||||||
|
<i class="fa fa-angle-double-right"></i> <?php print $linkTitle; ?>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<!-- /.sidebar -->
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<!-- Right side column. Contains the navbar and content of the page -->
|
||||||
|
<aside class="right-side">
|
||||||
|
<!-- Content Header (Page header) -->
|
||||||
|
<section class="content-header">
|
||||||
|
<h1>
|
||||||
|
<?php print !empty($title) ? $title : 'PHPCI'; ?>
|
||||||
|
|
||||||
|
<?php if (!empty($subtitle)): ?>
|
||||||
|
<small><?php print $subtitle; ?></small>
|
||||||
|
<?php endif; ?>
|
||||||
|
</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Main content -->
|
||||||
|
<section class="content">
|
||||||
|
<?php print $content; ?>
|
||||||
|
</section><!-- /.content -->
|
||||||
|
</aside><!-- /.right-side -->
|
||||||
|
</div><!-- ./wrapper -->
|
||||||
|
|
||||||
|
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js" type="text/javascript"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js" type="text/javascript"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
</div>
|
<script src="<?php print PHPCI_URL; ?>assets/js/plugins/daterangepicker/daterangepicker.js" type="text/javascript"></script>
|
||||||
</div>
|
<script src="<?php print PHPCI_URL; ?>assets/js/plugins/datepicker/bootstrap-datepicker.js" type="text/javascript"></script>
|
||||||
|
<script src="<?php print PHPCI_URL; ?>assets/js/AdminLTE/app.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<div id="content" class="container">
|
</body>
|
||||||
<?php print $content; ?>
|
</html>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="loading">Loading...</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -33,7 +33,7 @@
|
||||||
"ext-mcrypt": "*",
|
"ext-mcrypt": "*",
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"ext-pdo_mysql": "*",
|
"ext-pdo_mysql": "*",
|
||||||
"block8/b8framework": "~1.1",
|
"block8/b8framework": "~1.0",
|
||||||
"ircmaxell/password-compat": "~1.0",
|
"ircmaxell/password-compat": "~1.0",
|
||||||
"swiftmailer/swiftmailer": "~5.0",
|
"swiftmailer/swiftmailer": "~5.0",
|
||||||
"symfony/yaml": "~2.1",
|
"symfony/yaml": "~2.1",
|
||||||
|
|
12
composer.lock
generated
|
@ -4,20 +4,20 @@
|
||||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"hash": "d97c4373b84222bb233cb510044650b4",
|
"hash": "650fe5576922dea4ac3b1be72d882a58",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "block8/b8framework",
|
"name": "block8/b8framework",
|
||||||
"version": "1.1.8",
|
"version": "1.1.9",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Block8/b8framework.git",
|
"url": "https://github.com/Block8/b8framework.git",
|
||||||
"reference": "cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0"
|
"reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Block8/b8framework/zipball/cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0",
|
"url": "https://api.github.com/repos/Block8/b8framework/zipball/3952dabee84cbf5be3dd8d20eadd13b6219e7a6a",
|
||||||
"reference": "cfb0bbd87a2ff71f9ebdfa53fca139d50407e0e0",
|
"reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
"mvc",
|
"mvc",
|
||||||
"php"
|
"php"
|
||||||
],
|
],
|
||||||
"time": "2014-07-29 15:49:02"
|
"time": "2014-12-01 21:02:58"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ircmaxell/password-compat",
|
"name": "ircmaxell/password-compat",
|
||||||
|
|
3539
public/assets/css/AdminLTE.css
Executable file
169
public/assets/css/bootstrap-slider/slider.css
Executable file
|
@ -0,0 +1,169 @@
|
||||||
|
/*!
|
||||||
|
* Slider for Bootstrap
|
||||||
|
*
|
||||||
|
* Copyright 2012 Stefan Petre
|
||||||
|
* Licensed under the Apache License v2.0
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.slider {
|
||||||
|
display: block;
|
||||||
|
vertical-align: middle;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal {
|
||||||
|
width: 100%;
|
||||||
|
height: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal:last-of-type {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal .slider-track {
|
||||||
|
height: 10px;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: -5px;
|
||||||
|
top: 50%;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal .slider-selection {
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal .slider-handle {
|
||||||
|
margin-left: -10px;
|
||||||
|
margin-top: -5px;
|
||||||
|
}
|
||||||
|
.slider.slider-horizontal .slider-handle.triangle {
|
||||||
|
border-width: 0 10px 10px 10px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-bottom-color: #0480be;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical {
|
||||||
|
height: 230px;
|
||||||
|
width: 20px;
|
||||||
|
margin-right: 20px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical:last-of-type {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical .slider-track {
|
||||||
|
width: 10px;
|
||||||
|
height: 100%;
|
||||||
|
margin-left: -5px;
|
||||||
|
left: 50%;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical .slider-selection {
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical .slider-handle {
|
||||||
|
margin-left: -5px;
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
|
.slider.slider-vertical .slider-handle.triangle {
|
||||||
|
border-width: 10px 0 10px 10px;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
border-left-color: #0480be;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.slider input {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.slider .tooltip-inner {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.slider-track {
|
||||||
|
position: absolute;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
background-image: -moz-linear-gradient(top, #f0f0f0, #f9f9f9);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f0f0f0), to(#f9f9f9));
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0f0f0, #f9f9f9);
|
||||||
|
background-image: -o-linear-gradient(top, #f0f0f0, #f9f9f9);
|
||||||
|
background-image: linear-gradient(to bottom, #f0f0f0, #f9f9f9);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0f0f0', endColorstr='#fff9f9f9', GradientType=0);
|
||||||
|
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.slider-selection {
|
||||||
|
position: absolute;
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5));
|
||||||
|
background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5);
|
||||||
|
background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5);
|
||||||
|
background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5);
|
||||||
|
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);
|
||||||
|
-moz-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;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.slider-handle {
|
||||||
|
position: absolute;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background-color: #444;
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
||||||
|
-moz-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);
|
||||||
|
opacity: 1;
|
||||||
|
border: 0px solid transparent;
|
||||||
|
}
|
||||||
|
.slider-handle.round {
|
||||||
|
-webkit-border-radius: 20px;
|
||||||
|
-moz-border-radius: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
.slider-handle.triangle {
|
||||||
|
background: transparent none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-disabled .slider-selection {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#red .slider-selection {
|
||||||
|
background: #f56954;
|
||||||
|
}
|
||||||
|
|
||||||
|
#blue .slider-selection {
|
||||||
|
background: #3c8dbc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#green .slider-selection {
|
||||||
|
background: #00a65a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#yellow .slider-selection {
|
||||||
|
background: #f39c12;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aqua .slider-selection {
|
||||||
|
background: #00c0ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
#purple .slider-selection {
|
||||||
|
background: #932ab6;
|
||||||
|
}
|
2
public/assets/css/bootstrap-theme.min.css
vendored
102
public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.css
vendored
Executable file
|
@ -0,0 +1,102 @@
|
||||||
|
ul.wysihtml5-toolbar {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar::after {
|
||||||
|
clear: both;
|
||||||
|
display: table;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar > li {
|
||||||
|
float: left;
|
||||||
|
display: list-item;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0 5px 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=bold] {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=italic] {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar a[data-wysihtml5-command=underline] {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar a.btn.wysihtml5-command-active {
|
||||||
|
background-image: none;
|
||||||
|
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
background-color: #E6E6E6;
|
||||||
|
background-color: #D9D9D9;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-commands-disabled .dropdown-menu {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div.wysihtml5-colors {
|
||||||
|
display:block;
|
||||||
|
width: 50px;
|
||||||
|
height: 20px;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-left: 5px;
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar a.wysihtml5-colors-title {
|
||||||
|
padding-left: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="black"] {
|
||||||
|
background: black !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="silver"] {
|
||||||
|
background: silver !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="gray"] {
|
||||||
|
background: gray !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="maroon"] {
|
||||||
|
background: maroon !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="red"] {
|
||||||
|
background: red !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="purple"] {
|
||||||
|
background: purple !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="green"] {
|
||||||
|
background: green !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="olive"] {
|
||||||
|
background: olive !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="navy"] {
|
||||||
|
background: navy !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="blue"] {
|
||||||
|
background: blue !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar div[data-wysihtml5-command-value="orange"] {
|
||||||
|
background: orange !important;
|
||||||
|
}
|
3
public/assets/css/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css
vendored
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
/*! bootstrap3-wysihtml5-bower 2013-11-22 */
|
||||||
|
|
||||||
|
ul.wysihtml5-toolbar{margin:0;padding:0;display:block}ul.wysihtml5-toolbar::after{clear:both;display:table;content:""}ul.wysihtml5-toolbar>li{float:left;display:list-item;list-style:none;margin:0 5px 10px 0}ul.wysihtml5-toolbar a[data-wysihtml5-command=bold]{font-weight:700}ul.wysihtml5-toolbar a[data-wysihtml5-command=italic]{font-style:italic}ul.wysihtml5-toolbar a[data-wysihtml5-command=underline]{text-decoration:underline}ul.wysihtml5-toolbar a.btn.wysihtml5-command-active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);background-color:#E6E6E6;background-color:#D9D9D9;outline:0}ul.wysihtml5-commands-disabled .dropdown-menu{display:none!important}ul.wysihtml5-toolbar div.wysihtml5-colors{display:block;width:50px;height:20px;margin-top:2px;margin-left:5px;position:absolute;pointer-events:none}ul.wysihtml5-toolbar a.wysihtml5-colors-title{padding-left:70px}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=black]{background:#000!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=silver]{background:silver!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=gray]{background:gray!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=maroon]{background:maroon!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=red]{background:red!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=purple]{background:purple!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=green]{background:green!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=olive]{background:olive!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=navy]{background:navy!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=blue]{background:#00f!important}ul.wysihtml5-toolbar div[data-wysihtml5-command-value=orange]{background:orange!important}
|
2
public/assets/css/bootstrap.min.css
vendored
214
public/assets/css/colorpicker/bootstrap-colorpicker.css
vendored
Executable file
|
@ -0,0 +1,214 @@
|
||||||
|
/*!
|
||||||
|
* Bootstrap Colorpicker
|
||||||
|
* http://mjolnic.github.io/bootstrap-colorpicker/
|
||||||
|
*
|
||||||
|
* Originally written by (c) 2012 Stefan Petre
|
||||||
|
* Licensed under the Apache License v2.0
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
.colorpicker-saturation {
|
||||||
|
float: left;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
cursor: crosshair;
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/saturation.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-saturation i {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
display: block;
|
||||||
|
width: 5px;
|
||||||
|
height: 5px;
|
||||||
|
margin: -4px 0 0 -4px;
|
||||||
|
border: 1px solid #000;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-saturation i b {
|
||||||
|
display: block;
|
||||||
|
width: 5px;
|
||||||
|
height: 5px;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-hue,
|
||||||
|
.colorpicker-alpha {
|
||||||
|
float: left;
|
||||||
|
width: 15px;
|
||||||
|
height: 100px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
cursor: row-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-hue i,
|
||||||
|
.colorpicker-alpha i {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 1px;
|
||||||
|
margin-top: -1px;
|
||||||
|
background: #000;
|
||||||
|
border-top: 1px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-hue {
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/hue.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-alpha {
|
||||||
|
display: none;
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/alpha.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 2500;
|
||||||
|
min-width: 130px;
|
||||||
|
padding: 4px;
|
||||||
|
margin-top: 1px;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker:before,
|
||||||
|
.colorpicker:after {
|
||||||
|
display: table;
|
||||||
|
line-height: 0;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker:before {
|
||||||
|
position: absolute;
|
||||||
|
top: -7px;
|
||||||
|
left: 6px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 7px solid transparent;
|
||||||
|
border-bottom: 7px solid #ccc;
|
||||||
|
border-left: 7px solid transparent;
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker:after {
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
left: 7px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #ffffff;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker div {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-with-alpha {
|
||||||
|
min-width: 140px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-with-alpha .colorpicker-alpha {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-color {
|
||||||
|
height: 10px;
|
||||||
|
margin-top: 5px;
|
||||||
|
clear: both;
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/alpha.png");
|
||||||
|
background-position: 0 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-color div {
|
||||||
|
height: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-element .input-group-addon i {
|
||||||
|
display: block;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-inline {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal {
|
||||||
|
width: 110px;
|
||||||
|
height: auto;
|
||||||
|
min-width: 110px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-saturation {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-color {
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-hue,
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
|
||||||
|
float: left;
|
||||||
|
width: 100px;
|
||||||
|
height: 15px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
margin-left: 0;
|
||||||
|
cursor: col-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-hue i,
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-alpha i {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
display: block;
|
||||||
|
width: 1px;
|
||||||
|
height: 15px;
|
||||||
|
margin-top: 0;
|
||||||
|
background: #ffffff;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-hue {
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/hue-horizontal.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
|
||||||
|
background-image: url("../../img/bootstrap-colorpicker/alpha-horizontal.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker.colorpicker-visible {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colorpicker-inline.colorpicker-visible {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
9
public/assets/css/colorpicker/bootstrap-colorpicker.min.css
vendored
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
/*!
|
||||||
|
* Bootstrap Colorpicker
|
||||||
|
* http://mjolnic.github.io/bootstrap-colorpicker/
|
||||||
|
*
|
||||||
|
* Originally written by (c) 2012 Stefan Petre
|
||||||
|
* Licensed under the Apache License v2.0
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0.txt
|
||||||
|
*
|
||||||
|
*/.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("../../img/bootstrap-colorpicker/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("../../img/bootstrap-colorpicker/hue.png")}.colorpicker-alpha{display:none;background-image:url("../../img/bootstrap-colorpicker/alpha.png")}.colorpicker{top:0;left:0;z-index:2500;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("../../img/bootstrap-colorpicker/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-element .input-group-addon i{display:block;width:16px;height:16px;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("../../img/bootstrap-colorpicker/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("../../img/bootstrap-colorpicker/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block}
|
223
public/assets/css/datatables/dataTables.bootstrap.css
Executable file
|
@ -0,0 +1,223 @@
|
||||||
|
div.dataTables_length label {
|
||||||
|
font-weight: normal;
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_length select {
|
||||||
|
width: 75px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter label {
|
||||||
|
font-weight: normal;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter input {
|
||||||
|
width: 16em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_info {
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate {
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate ul.pagination {
|
||||||
|
margin: 2px 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable,
|
||||||
|
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 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TableTools styles
|
||||||
|
*/
|
||||||
|
.table tbody tr.active td,
|
||||||
|
.table tbody tr.active th {
|
||||||
|
background-color: #08C;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table tbody tr.active:hover td,
|
||||||
|
.table tbody tr.active:hover th {
|
||||||
|
background-color: #0075b0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table tbody tr.active a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-striped tbody tr.active:nth-child(odd) td,
|
||||||
|
.table-striped tbody tr.active:nth-child(odd) th {
|
||||||
|
background-color: #017ebc;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.DTTT_selectable tbody tr {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT .btn {
|
||||||
|
color: #333 !important;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
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.modal {
|
||||||
|
height: 150px;
|
||||||
|
margin-top: -75px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightHeadWrapper table ,
|
||||||
|
div.DTFC_LeftHeadWrapper table {
|
||||||
|
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-bottom: 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;
|
||||||
|
}
|
||||||
|
|
BIN
public/assets/css/datatables/images/sort_asc.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
public/assets/css/datatables/images/sort_asc_disabled.png
Executable file
After Width: | Height: | Size: 1 KiB |
BIN
public/assets/css/datatables/images/sort_both.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
public/assets/css/datatables/images/sort_desc.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
public/assets/css/datatables/images/sort_desc_disabled.png
Executable file
After Width: | Height: | Size: 1 KiB |
790
public/assets/css/datepicker/datepicker3.css
Executable file
|
@ -0,0 +1,790 @@
|
||||||
|
/*!
|
||||||
|
* Datepicker for Bootstrap
|
||||||
|
*
|
||||||
|
* 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;
|
||||||
|
border-radius: 4px;
|
||||||
|
direction: ltr;
|
||||||
|
/*.dow {
|
||||||
|
border-top: 1px solid #ddd !important;
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
.datepicker-inline {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.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 #ccc;
|
||||||
|
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-top:before {
|
||||||
|
top: -7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-top:after {
|
||||||
|
top: -6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:before {
|
||||||
|
bottom: -7px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 7px solid #999;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:after {
|
||||||
|
bottom: -6px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 6px solid #fff;
|
||||||
|
}
|
||||||
|
.datepicker > div {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.datepicker.days div.datepicker-days {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.datepicker.months div.datepicker-months {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.datepicker.years div.datepicker-years {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.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 table tr td,
|
||||||
|
.datepicker table tr th {
|
||||||
|
text-align: center;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
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: rgba(0,0,0,0.2);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.old,
|
||||||
|
.datepicker table tr td.new {
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.disabled,
|
||||||
|
.datepicker table tr td.disabled:hover {
|
||||||
|
background: none;
|
||||||
|
color: #444;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today,
|
||||||
|
.datepicker table tr td.today:hover,
|
||||||
|
.datepicker table tr td.today.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #ffb733;
|
||||||
|
}
|
||||||
|
.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:focus,
|
||||||
|
.datepicker table tr td.today:hover:focus,
|
||||||
|
.datepicker table tr td.today.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover:focus,
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #f59e00;
|
||||||
|
}
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.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],
|
||||||
|
fieldset[disabled] .datepicker table tr td.today,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.today[disabled]:hover,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.today.disabled:focus,
|
||||||
|
.datepicker table tr td.today:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.today[disabled]:focus,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today:hover.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.today[disabled]:active,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today:hover.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.today[disabled].active,
|
||||||
|
.datepicker table tr td.today:hover[disabled].active,
|
||||||
|
.datepicker table tr td.today.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover.active {
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #ffb733;
|
||||||
|
}
|
||||||
|
.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: rgba(0,0,0,0.2);
|
||||||
|
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 {
|
||||||
|
color: #000000;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #f1a417;
|
||||||
|
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:focus,
|
||||||
|
.datepicker table tr td.range.today:hover:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:focus,
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #bf800c;
|
||||||
|
}
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.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],
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.range.today[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.range.today[disabled].active,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled].active,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active {
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #f1a417;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected,
|
||||||
|
.datepicker table tr td.selected:hover,
|
||||||
|
.datepicker table tr td.selected.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #555555;
|
||||||
|
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:focus,
|
||||||
|
.datepicker table tr td.selected:hover:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:focus,
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #373737;
|
||||||
|
}
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.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],
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.selected[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:focus,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.selected[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.selected[disabled]:active,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected:hover.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.selected[disabled].active,
|
||||||
|
.datepicker table tr td.selected:hover[disabled].active,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active {
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #555555;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active,
|
||||||
|
.datepicker table tr td.active:hover,
|
||||||
|
.datepicker table tr td.active.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
border-color: #357ebd;
|
||||||
|
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:focus,
|
||||||
|
.datepicker table tr td.active:hover:focus,
|
||||||
|
.datepicker table tr td.active.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover:focus,
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
border-color: #285e8e;
|
||||||
|
}
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.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],
|
||||||
|
fieldset[disabled] .datepicker table tr td.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.active[disabled]:hover,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.active.disabled:focus,
|
||||||
|
.datepicker table tr td.active:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.active[disabled]:focus,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active:hover.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.active[disabled]:active,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active:hover.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.active[disabled].active,
|
||||||
|
.datepicker table tr td.active:hover[disabled].active,
|
||||||
|
.datepicker table tr td.active.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover.active {
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span {
|
||||||
|
display: block;
|
||||||
|
width: 23%;
|
||||||
|
height: 54px;
|
||||||
|
line-height: 54px;
|
||||||
|
float: left;
|
||||||
|
margin: 1%;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span:hover {
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.disabled,
|
||||||
|
.datepicker table tr td span.disabled:hover {
|
||||||
|
background: none;
|
||||||
|
color: #444;
|
||||||
|
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 {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
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:focus,
|
||||||
|
.datepicker table tr td span.active:hover:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:focus,
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #3276b1;
|
||||||
|
border-color: #285e8e;
|
||||||
|
}
|
||||||
|
.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,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.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],
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td span.active[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:focus,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td span.active[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td span.active[disabled]:active,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:active,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active:hover.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td span.active[disabled].active,
|
||||||
|
.datepicker table tr td span.active:hover[disabled].active,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled].active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active {
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.old,
|
||||||
|
.datepicker table tr td span.new {
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
.datepicker th.datepicker-switch {
|
||||||
|
width: 145px;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th,
|
||||||
|
.datepicker tfoot tr th {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th:hover,
|
||||||
|
.datepicker tfoot tr th:hover {
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
}
|
||||||
|
.datepicker .cw {
|
||||||
|
font-size: 10px;
|
||||||
|
width: 12px;
|
||||||
|
padding: 0 2px 0 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th.cw {
|
||||||
|
cursor: default;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.input-group.date .input-group-addon i {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.input-daterange input {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.input-daterange input:first-child {
|
||||||
|
border-radius: 3px 0 0 3px;
|
||||||
|
}
|
||||||
|
.input-daterange input:last-child {
|
||||||
|
border-radius: 0 3px 3px 0;
|
||||||
|
}
|
||||||
|
.input-daterange .input-group-addon {
|
||||||
|
width: auto;
|
||||||
|
min-width: 16px;
|
||||||
|
padding: 4px 5px;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
border: solid #cccccc;
|
||||||
|
border-width: 1px 0;
|
||||||
|
margin-left: -5px;
|
||||||
|
margin-right: -5px;
|
||||||
|
}
|
||||||
|
.datepicker.dropdown-menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
float: left;
|
||||||
|
display: none;
|
||||||
|
min-width: 160px;
|
||||||
|
list-style: none;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
border-radius: 5px;
|
||||||
|
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
-webkit-background-clip: padding-box;
|
||||||
|
-moz-background-clip: padding;
|
||||||
|
background-clip: padding-box;
|
||||||
|
*border-right-width: 2px;
|
||||||
|
*border-bottom-width: 2px;
|
||||||
|
color: #333333;
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
}
|
||||||
|
.datepicker.dropdown-menu th,
|
||||||
|
.datepicker.dropdown-menu td {
|
||||||
|
padding: 4px 5px;
|
||||||
|
}
|
245
public/assets/css/daterangepicker/daterangepicker-bs3.css
Executable file
|
@ -0,0 +1,245 @@
|
||||||
|
/*!
|
||||||
|
* Stylesheet for the Date Range Picker, for use with Bootstrap 3.x
|
||||||
|
*
|
||||||
|
* Copyright 2013 Dan Grossman ( http://www.dangrossman.info )
|
||||||
|
* Licensed under the Apache License v2.0
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Built for http://www.improvely.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
.daterangepicker.dropdown-menu {
|
||||||
|
max-width: none;
|
||||||
|
z-index: 3000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar {
|
||||||
|
float: left;
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar {
|
||||||
|
float: right;
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges {
|
||||||
|
width: 160px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges .range_inputs>div {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges .range_inputs>div:nth-child(2) {
|
||||||
|
padding-left: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .calendar {
|
||||||
|
display: none;
|
||||||
|
max-width: 270px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .calendar th, .daterangepicker .calendar td {
|
||||||
|
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: center;
|
||||||
|
min-width: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges label {
|
||||||
|
color: #333;
|
||||||
|
display: block;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: normal;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
text-shadow: #fff 1px 1px 0px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
width: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges input {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges .input-mini {
|
||||||
|
background-color: #eee;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #555;
|
||||||
|
display: block;
|
||||||
|
font-size: 11px;
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
padding: 0 6px;
|
||||||
|
width: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges li {
|
||||||
|
font-size: 13px;
|
||||||
|
background: #f5f5f5;
|
||||||
|
border: 1px solid #f5f5f5;
|
||||||
|
color: #08c;
|
||||||
|
padding: 3px 12px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover {
|
||||||
|
background: #08c;
|
||||||
|
border: 1px solid #08c;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .calendar-date {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker .calendar-time {
|
||||||
|
text-align: center;
|
||||||
|
margin: 8px auto 0 auto;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker {
|
||||||
|
position: absolute;
|
||||||
|
background: #fff;
|
||||||
|
top: 100px;
|
||||||
|
left: 20px;
|
||||||
|
padding: 4px;
|
||||||
|
margin-top: 1px;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensleft:before {
|
||||||
|
position: absolute;
|
||||||
|
top: -7px;
|
||||||
|
right: 9px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 7px solid transparent;
|
||||||
|
border-bottom: 7px solid #ccc;
|
||||||
|
border-left: 7px solid transparent;
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensleft:after {
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
right: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #fff;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensright:before {
|
||||||
|
position: absolute;
|
||||||
|
top: -7px;
|
||||||
|
left: 9px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 7px solid transparent;
|
||||||
|
border-bottom: 7px solid #ccc;
|
||||||
|
border-left: 7px solid transparent;
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker.opensright:after {
|
||||||
|
position: absolute;
|
||||||
|
top: -6px;
|
||||||
|
left: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #fff;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker table {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td, .daterangepicker th {
|
||||||
|
text-align: center;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.off {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.disabled {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.in-range {
|
||||||
|
background: #ebf4f8;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.active, .daterangepicker td.active:hover {
|
||||||
|
background-color: #357ebd;
|
||||||
|
border-color: #3071a9;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker td.week, .daterangepicker th.week {
|
||||||
|
font-size: 80%;
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 1px;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker select.monthselect {
|
||||||
|
margin-right: 2%;
|
||||||
|
width: 56%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker select.yearselect {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.ampmselect {
|
||||||
|
width: 50px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
61
public/assets/css/iCheck/all.css
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
/* iCheck plugin skins
|
||||||
|
----------------------------------- */
|
||||||
|
@import url("minimal/_all.css");
|
||||||
|
/*
|
||||||
|
@import url("minimal/minimal.css");
|
||||||
|
@import url("minimal/red.css");
|
||||||
|
@import url("minimal/green.css");
|
||||||
|
@import url("minimal/blue.css");
|
||||||
|
@import url("minimal/aero.css");
|
||||||
|
@import url("minimal/grey.css");
|
||||||
|
@import url("minimal/orange.css");
|
||||||
|
@import url("minimal/yellow.css");
|
||||||
|
@import url("minimal/pink.css");
|
||||||
|
@import url("minimal/purple.css");
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("square/_all.css");
|
||||||
|
/*
|
||||||
|
@import url("square/square.css");
|
||||||
|
@import url("square/red.css");
|
||||||
|
@import url("square/green.css");
|
||||||
|
@import url("square/blue.css");
|
||||||
|
@import url("square/aero.css");
|
||||||
|
@import url("square/grey.css");
|
||||||
|
@import url("square/orange.css");
|
||||||
|
@import url("square/yellow.css");
|
||||||
|
@import url("square/pink.css");
|
||||||
|
@import url("square/purple.css");
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("flat/_all.css");
|
||||||
|
/*
|
||||||
|
@import url("flat/flat.css");
|
||||||
|
@import url("flat/red.css");
|
||||||
|
@import url("flat/green.css");
|
||||||
|
@import url("flat/blue.css");
|
||||||
|
@import url("flat/aero.css");
|
||||||
|
@import url("flat/grey.css");
|
||||||
|
@import url("flat/orange.css");
|
||||||
|
@import url("flat/yellow.css");
|
||||||
|
@import url("flat/pink.css");
|
||||||
|
@import url("flat/purple.css");
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("line/_all.css");
|
||||||
|
/*
|
||||||
|
@import url("line/line.css");
|
||||||
|
@import url("line/red.css");
|
||||||
|
@import url("line/green.css");
|
||||||
|
@import url("line/blue.css");
|
||||||
|
@import url("line/aero.css");
|
||||||
|
@import url("line/grey.css");
|
||||||
|
@import url("line/orange.css");
|
||||||
|
@import url("line/yellow.css");
|
||||||
|
@import url("line/pink.css");
|
||||||
|
@import url("line/purple.css");
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("polaris/polaris.css");
|
||||||
|
|
||||||
|
@import url("futurico/futurico.css");
|
560
public/assets/css/iCheck/flat/_all.css
Executable file
|
@ -0,0 +1,560 @@
|
||||||
|
/* iCheck plugin Flat skin
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat,
|
||||||
|
.iradio_flat {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(flat.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat,
|
||||||
|
.iradio_flat {
|
||||||
|
background-image: url(flat@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* red */
|
||||||
|
.icheckbox_flat-red,
|
||||||
|
.iradio_flat-red {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(red.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-red {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-red {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-red,
|
||||||
|
.iradio_flat-red {
|
||||||
|
background-image: url(red@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* green */
|
||||||
|
.icheckbox_flat-green,
|
||||||
|
.iradio_flat-green {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(green.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-green {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-green {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-green,
|
||||||
|
.iradio_flat-green {
|
||||||
|
background-image: url(green@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* blue */
|
||||||
|
.icheckbox_flat-blue,
|
||||||
|
.iradio_flat-blue {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(blue.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-blue {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-blue {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-blue,
|
||||||
|
.iradio_flat-blue {
|
||||||
|
background-image: url(blue@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* aero */
|
||||||
|
.icheckbox_flat-aero,
|
||||||
|
.iradio_flat-aero {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(aero.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-aero {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-aero {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-aero,
|
||||||
|
.iradio_flat-aero {
|
||||||
|
background-image: url(aero@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* grey */
|
||||||
|
.icheckbox_flat-grey,
|
||||||
|
.iradio_flat-grey {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(grey.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-grey {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-grey {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-grey,
|
||||||
|
.iradio_flat-grey {
|
||||||
|
background-image: url(grey@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* orange */
|
||||||
|
.icheckbox_flat-orange,
|
||||||
|
.iradio_flat-orange {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(orange.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-orange {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-orange {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-orange,
|
||||||
|
.iradio_flat-orange {
|
||||||
|
background-image: url(orange@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* yellow */
|
||||||
|
.icheckbox_flat-yellow,
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(yellow.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-yellow {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-yellow,
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
background-image: url(yellow@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* pink */
|
||||||
|
.icheckbox_flat-pink,
|
||||||
|
.iradio_flat-pink {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(pink.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-pink {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-pink {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-pink,
|
||||||
|
.iradio_flat-pink {
|
||||||
|
background-image: url(pink@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* purple */
|
||||||
|
.icheckbox_flat-purple,
|
||||||
|
.iradio_flat-purple {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(purple.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-purple {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-purple {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-purple,
|
||||||
|
.iradio_flat-purple {
|
||||||
|
background-image: url(purple@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
56
public/assets/css/iCheck/flat/aero.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, aero
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-aero,
|
||||||
|
.iradio_flat-aero {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(aero.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-aero {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-aero.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-aero {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-aero.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-aero,
|
||||||
|
.iradio_flat-aero {
|
||||||
|
background-image: url(aero@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/aero.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/aero@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/blue.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, blue
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-blue,
|
||||||
|
.iradio_flat-blue {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(blue.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-blue {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-blue.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-blue {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-blue.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-blue,
|
||||||
|
.iradio_flat-blue {
|
||||||
|
background-image: url(blue@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/blue.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/blue@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/flat.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin flat skin, black
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat,
|
||||||
|
.iradio_flat {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(flat.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat,
|
||||||
|
.iradio_flat {
|
||||||
|
background-image: url(flat@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/flat.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/flat@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/green.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, green
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-green,
|
||||||
|
.iradio_flat-green {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(green.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-green {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-green.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-green {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-green.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-green,
|
||||||
|
.iradio_flat-green {
|
||||||
|
background-image: url(green@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/green.png
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
public/assets/css/iCheck/flat/green@2x.png
Executable file
After Width: | Height: | Size: 3 KiB |
56
public/assets/css/iCheck/flat/grey.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, grey
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-grey,
|
||||||
|
.iradio_flat-grey {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(grey.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-grey {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-grey.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-grey {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-grey.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-grey,
|
||||||
|
.iradio_flat-grey {
|
||||||
|
background-image: url(grey@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/grey.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/grey@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/orange.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, orange
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-orange,
|
||||||
|
.iradio_flat-orange {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(orange.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-orange {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-orange.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-orange {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-orange.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-orange,
|
||||||
|
.iradio_flat-orange {
|
||||||
|
background-image: url(orange@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/orange.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/orange@2x.png
Executable file
After Width: | Height: | Size: 3.2 KiB |
56
public/assets/css/iCheck/flat/pink.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, pink
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-pink,
|
||||||
|
.iradio_flat-pink {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(pink.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-pink {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-pink.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-pink {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-pink.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-pink,
|
||||||
|
.iradio_flat-pink {
|
||||||
|
background-image: url(pink@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/pink.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/pink@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/purple.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, purple
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-purple,
|
||||||
|
.iradio_flat-purple {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(purple.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-purple {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-purple.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-purple {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-purple.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-purple,
|
||||||
|
.iradio_flat-purple {
|
||||||
|
background-image: url(purple@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/purple.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/purple@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/flat/red.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, red
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-red,
|
||||||
|
.iradio_flat-red {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(red.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-red {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-red.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-red {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-red.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-red,
|
||||||
|
.iradio_flat-red {
|
||||||
|
background-image: url(red@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/red.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/red@2x.png
Executable file
After Width: | Height: | Size: 3.2 KiB |
56
public/assets/css/iCheck/flat/yellow.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Flat skin, yellow
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_flat-yellow,
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background: url(yellow.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_flat-yellow {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.checked {
|
||||||
|
background-position: -22px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.disabled {
|
||||||
|
background-position: -44px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_flat-yellow.checked.disabled {
|
||||||
|
background-position: -66px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
background-position: -88px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.checked {
|
||||||
|
background-position: -110px 0;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.disabled {
|
||||||
|
background-position: -132px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_flat-yellow.checked.disabled {
|
||||||
|
background-position: -154px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_flat-yellow,
|
||||||
|
.iradio_flat-yellow {
|
||||||
|
background-image: url(yellow@2x.png);
|
||||||
|
-webkit-background-size: 176px 22px;
|
||||||
|
background-size: 176px 22px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/flat/yellow.png
Executable file
After Width: | Height: | Size: 1.5 KiB |
BIN
public/assets/css/iCheck/flat/yellow@2x.png
Executable file
After Width: | Height: | Size: 3.1 KiB |
56
public/assets/css/iCheck/futurico/futurico.css
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
/* iCheck plugin Futurico skin
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_futurico,
|
||||||
|
.iradio_futurico {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 17px;
|
||||||
|
background: url(futurico.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheckbox_futurico {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
.icheckbox_futurico.checked {
|
||||||
|
background-position: -18px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_futurico.disabled {
|
||||||
|
background-position: -36px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_futurico.checked.disabled {
|
||||||
|
background-position: -54px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iradio_futurico {
|
||||||
|
background-position: -72px 0;
|
||||||
|
}
|
||||||
|
.iradio_futurico.checked {
|
||||||
|
background-position: -90px 0;
|
||||||
|
}
|
||||||
|
.iradio_futurico.disabled {
|
||||||
|
background-position: -108px 0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.iradio_futurico.checked.disabled {
|
||||||
|
background-position: -126px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_futurico,
|
||||||
|
.iradio_futurico {
|
||||||
|
background-image: url(futurico@2x.png);
|
||||||
|
-webkit-background-size: 144px 19px;
|
||||||
|
background-size: 144px 19px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/futurico/futurico.png
Executable file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/assets/css/iCheck/futurico/futurico@2x.png
Executable file
After Width: | Height: | Size: 3.4 KiB |
740
public/assets/css/iCheck/line/_all.css
Executable file
|
@ -0,0 +1,740 @@
|
||||||
|
/* iCheck plugin Line skin
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line,
|
||||||
|
.iradio_line {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #000;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line .icheck_line-icon,
|
||||||
|
.iradio_line .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line.hover,
|
||||||
|
.icheckbox_line.checked.hover,
|
||||||
|
.iradio_line.hover {
|
||||||
|
background: #444;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked,
|
||||||
|
.iradio_line.checked {
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked .icheck_line-icon,
|
||||||
|
.iradio_line.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line.disabled,
|
||||||
|
.iradio_line.disabled {
|
||||||
|
background: #ccc;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line.disabled .icheck_line-icon,
|
||||||
|
.iradio_line.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked.disabled,
|
||||||
|
.iradio_line.checked.disabled {
|
||||||
|
background: #ccc;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line .icheck_line-icon,
|
||||||
|
.iradio_line .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* red */
|
||||||
|
.icheckbox_line-red,
|
||||||
|
.iradio_line-red {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #e56c69;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red .icheck_line-icon,
|
||||||
|
.iradio_line-red .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.hover,
|
||||||
|
.icheckbox_line-red.checked.hover,
|
||||||
|
.iradio_line-red.hover {
|
||||||
|
background: #E98582;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.checked,
|
||||||
|
.iradio_line-red.checked {
|
||||||
|
background: #e56c69;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.checked .icheck_line-icon,
|
||||||
|
.iradio_line-red.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.disabled,
|
||||||
|
.iradio_line-red.disabled {
|
||||||
|
background: #F7D3D2;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-red.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.checked.disabled,
|
||||||
|
.iradio_line-red.checked.disabled {
|
||||||
|
background: #F7D3D2;
|
||||||
|
}
|
||||||
|
.icheckbox_line-red.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-red.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-red .icheck_line-icon,
|
||||||
|
.iradio_line-red .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* green */
|
||||||
|
.icheckbox_line-green,
|
||||||
|
.iradio_line-green {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #1b7e5a;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green .icheck_line-icon,
|
||||||
|
.iradio_line-green .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.hover,
|
||||||
|
.icheckbox_line-green.checked.hover,
|
||||||
|
.iradio_line-green.hover {
|
||||||
|
background: #24AA7A;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked,
|
||||||
|
.iradio_line-green.checked {
|
||||||
|
background: #1b7e5a;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked .icheck_line-icon,
|
||||||
|
.iradio_line-green.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.disabled,
|
||||||
|
.iradio_line-green.disabled {
|
||||||
|
background: #89E6C4;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-green.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked.disabled,
|
||||||
|
.iradio_line-green.checked.disabled {
|
||||||
|
background: #89E6C4;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-green.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-green .icheck_line-icon,
|
||||||
|
.iradio_line-green .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* blue */
|
||||||
|
.icheckbox_line-blue,
|
||||||
|
.iradio_line-blue {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #2489c5;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue .icheck_line-icon,
|
||||||
|
.iradio_line-blue .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.hover,
|
||||||
|
.icheckbox_line-blue.checked.hover,
|
||||||
|
.iradio_line-blue.hover {
|
||||||
|
background: #3DA0DB;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked,
|
||||||
|
.iradio_line-blue.checked {
|
||||||
|
background: #2489c5;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked .icheck_line-icon,
|
||||||
|
.iradio_line-blue.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.disabled,
|
||||||
|
.iradio_line-blue.disabled {
|
||||||
|
background: #ADD7F0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-blue.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked.disabled,
|
||||||
|
.iradio_line-blue.checked.disabled {
|
||||||
|
background: #ADD7F0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-blue.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-blue .icheck_line-icon,
|
||||||
|
.iradio_line-blue .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* aero */
|
||||||
|
.icheckbox_line-aero,
|
||||||
|
.iradio_line-aero {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #9cc2cb;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero .icheck_line-icon,
|
||||||
|
.iradio_line-aero .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.hover,
|
||||||
|
.icheckbox_line-aero.checked.hover,
|
||||||
|
.iradio_line-aero.hover {
|
||||||
|
background: #B5D1D8;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked,
|
||||||
|
.iradio_line-aero.checked {
|
||||||
|
background: #9cc2cb;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked .icheck_line-icon,
|
||||||
|
.iradio_line-aero.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.disabled,
|
||||||
|
.iradio_line-aero.disabled {
|
||||||
|
background: #D2E4E8;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-aero.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked.disabled,
|
||||||
|
.iradio_line-aero.checked.disabled {
|
||||||
|
background: #D2E4E8;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-aero.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-aero .icheck_line-icon,
|
||||||
|
.iradio_line-aero .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* grey */
|
||||||
|
.icheckbox_line-grey,
|
||||||
|
.iradio_line-grey {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #73716e;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey .icheck_line-icon,
|
||||||
|
.iradio_line-grey .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.hover,
|
||||||
|
.icheckbox_line-grey.checked.hover,
|
||||||
|
.iradio_line-grey.hover {
|
||||||
|
background: #8B8986;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked,
|
||||||
|
.iradio_line-grey.checked {
|
||||||
|
background: #73716e;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked .icheck_line-icon,
|
||||||
|
.iradio_line-grey.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.disabled,
|
||||||
|
.iradio_line-grey.disabled {
|
||||||
|
background: #D5D4D3;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-grey.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked.disabled,
|
||||||
|
.iradio_line-grey.checked.disabled {
|
||||||
|
background: #D5D4D3;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-grey.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-grey .icheck_line-icon,
|
||||||
|
.iradio_line-grey .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* orange */
|
||||||
|
.icheckbox_line-orange,
|
||||||
|
.iradio_line-orange {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #f70;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange .icheck_line-icon,
|
||||||
|
.iradio_line-orange .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.hover,
|
||||||
|
.icheckbox_line-orange.checked.hover,
|
||||||
|
.iradio_line-orange.hover {
|
||||||
|
background: #FF9233;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.checked,
|
||||||
|
.iradio_line-orange.checked {
|
||||||
|
background: #f70;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.checked .icheck_line-icon,
|
||||||
|
.iradio_line-orange.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.disabled,
|
||||||
|
.iradio_line-orange.disabled {
|
||||||
|
background: #FFD6B3;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-orange.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.checked.disabled,
|
||||||
|
.iradio_line-orange.checked.disabled {
|
||||||
|
background: #FFD6B3;
|
||||||
|
}
|
||||||
|
.icheckbox_line-orange.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-orange.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-orange .icheck_line-icon,
|
||||||
|
.iradio_line-orange .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* yellow */
|
||||||
|
.icheckbox_line-yellow,
|
||||||
|
.iradio_line-yellow {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #FFC414;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow .icheck_line-icon,
|
||||||
|
.iradio_line-yellow .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.hover,
|
||||||
|
.icheckbox_line-yellow.checked.hover,
|
||||||
|
.iradio_line-yellow.hover {
|
||||||
|
background: #FFD34F;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.checked,
|
||||||
|
.iradio_line-yellow.checked {
|
||||||
|
background: #FFC414;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.checked .icheck_line-icon,
|
||||||
|
.iradio_line-yellow.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.disabled,
|
||||||
|
.iradio_line-yellow.disabled {
|
||||||
|
background: #FFE495;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-yellow.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.checked.disabled,
|
||||||
|
.iradio_line-yellow.checked.disabled {
|
||||||
|
background: #FFE495;
|
||||||
|
}
|
||||||
|
.icheckbox_line-yellow.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-yellow.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-yellow .icheck_line-icon,
|
||||||
|
.iradio_line-yellow .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* pink */
|
||||||
|
.icheckbox_line-pink,
|
||||||
|
.iradio_line-pink {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #a77a94;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink .icheck_line-icon,
|
||||||
|
.iradio_line-pink .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.hover,
|
||||||
|
.icheckbox_line-pink.checked.hover,
|
||||||
|
.iradio_line-pink.hover {
|
||||||
|
background: #B995A9;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.checked,
|
||||||
|
.iradio_line-pink.checked {
|
||||||
|
background: #a77a94;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.checked .icheck_line-icon,
|
||||||
|
.iradio_line-pink.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.disabled,
|
||||||
|
.iradio_line-pink.disabled {
|
||||||
|
background: #E0D0DA;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-pink.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.checked.disabled,
|
||||||
|
.iradio_line-pink.checked.disabled {
|
||||||
|
background: #E0D0DA;
|
||||||
|
}
|
||||||
|
.icheckbox_line-pink.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-pink.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-pink .icheck_line-icon,
|
||||||
|
.iradio_line-pink .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* purple */
|
||||||
|
.icheckbox_line-purple,
|
||||||
|
.iradio_line-purple {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #6a5a8c;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple .icheck_line-icon,
|
||||||
|
.iradio_line-purple .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.hover,
|
||||||
|
.icheckbox_line-purple.checked.hover,
|
||||||
|
.iradio_line-purple.hover {
|
||||||
|
background: #8677A7;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.checked,
|
||||||
|
.iradio_line-purple.checked {
|
||||||
|
background: #6a5a8c;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.checked .icheck_line-icon,
|
||||||
|
.iradio_line-purple.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.disabled,
|
||||||
|
.iradio_line-purple.disabled {
|
||||||
|
background: #D2CCDE;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-purple.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.checked.disabled,
|
||||||
|
.iradio_line-purple.checked.disabled {
|
||||||
|
background: #D2CCDE;
|
||||||
|
}
|
||||||
|
.icheckbox_line-purple.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-purple.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-purple .icheck_line-icon,
|
||||||
|
.iradio_line-purple .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
74
public/assets/css/iCheck/line/aero.css
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* iCheck plugin Line skin, aero
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line-aero,
|
||||||
|
.iradio_line-aero {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #9cc2cb;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero .icheck_line-icon,
|
||||||
|
.iradio_line-aero .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.hover,
|
||||||
|
.icheckbox_line-aero.checked.hover,
|
||||||
|
.iradio_line-aero.hover {
|
||||||
|
background: #B5D1D8;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked,
|
||||||
|
.iradio_line-aero.checked {
|
||||||
|
background: #9cc2cb;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked .icheck_line-icon,
|
||||||
|
.iradio_line-aero.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.disabled,
|
||||||
|
.iradio_line-aero.disabled {
|
||||||
|
background: #D2E4E8;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-aero.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked.disabled,
|
||||||
|
.iradio_line-aero.checked.disabled {
|
||||||
|
background: #D2E4E8;
|
||||||
|
}
|
||||||
|
.icheckbox_line-aero.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-aero.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-aero .icheck_line-icon,
|
||||||
|
.iradio_line-aero .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
74
public/assets/css/iCheck/line/blue.css
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* iCheck plugin Line skin, blue
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line-blue,
|
||||||
|
.iradio_line-blue {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #2489c5;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue .icheck_line-icon,
|
||||||
|
.iradio_line-blue .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.hover,
|
||||||
|
.icheckbox_line-blue.checked.hover,
|
||||||
|
.iradio_line-blue.hover {
|
||||||
|
background: #3DA0DB;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked,
|
||||||
|
.iradio_line-blue.checked {
|
||||||
|
background: #2489c5;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked .icheck_line-icon,
|
||||||
|
.iradio_line-blue.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.disabled,
|
||||||
|
.iradio_line-blue.disabled {
|
||||||
|
background: #ADD7F0;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-blue.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked.disabled,
|
||||||
|
.iradio_line-blue.checked.disabled {
|
||||||
|
background: #ADD7F0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-blue.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-blue.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-blue .icheck_line-icon,
|
||||||
|
.iradio_line-blue .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
74
public/assets/css/iCheck/line/green.css
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* iCheck plugin Line skin, green
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line-green,
|
||||||
|
.iradio_line-green {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #1b7e5a;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green .icheck_line-icon,
|
||||||
|
.iradio_line-green .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.hover,
|
||||||
|
.icheckbox_line-green.checked.hover,
|
||||||
|
.iradio_line-green.hover {
|
||||||
|
background: #24AA7A;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked,
|
||||||
|
.iradio_line-green.checked {
|
||||||
|
background: #1b7e5a;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked .icheck_line-icon,
|
||||||
|
.iradio_line-green.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.disabled,
|
||||||
|
.iradio_line-green.disabled {
|
||||||
|
background: #89E6C4;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-green.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked.disabled,
|
||||||
|
.iradio_line-green.checked.disabled {
|
||||||
|
background: #89E6C4;
|
||||||
|
}
|
||||||
|
.icheckbox_line-green.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-green.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-green .icheck_line-icon,
|
||||||
|
.iradio_line-green .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
74
public/assets/css/iCheck/line/grey.css
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* iCheck plugin Line skin, grey
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line-grey,
|
||||||
|
.iradio_line-grey {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #73716e;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey .icheck_line-icon,
|
||||||
|
.iradio_line-grey .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.hover,
|
||||||
|
.icheckbox_line-grey.checked.hover,
|
||||||
|
.iradio_line-grey.hover {
|
||||||
|
background: #8B8986;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked,
|
||||||
|
.iradio_line-grey.checked {
|
||||||
|
background: #73716e;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked .icheck_line-icon,
|
||||||
|
.iradio_line-grey.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.disabled,
|
||||||
|
.iradio_line-grey.disabled {
|
||||||
|
background: #D5D4D3;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-grey.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked.disabled,
|
||||||
|
.iradio_line-grey.checked.disabled {
|
||||||
|
background: #D5D4D3;
|
||||||
|
}
|
||||||
|
.icheckbox_line-grey.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line-grey.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line-grey .icheck_line-icon,
|
||||||
|
.iradio_line-grey .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
74
public/assets/css/iCheck/line/line.css
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
/* iCheck plugin Line skin, black
|
||||||
|
----------------------------------- */
|
||||||
|
.icheckbox_line,
|
||||||
|
.iradio_line {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 15px 5px 38px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 17px;
|
||||||
|
color: #fff;
|
||||||
|
background: #000;
|
||||||
|
border: none;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.icheckbox_line .icheck_line-icon,
|
||||||
|
.iradio_line .icheck_line-icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 13px;
|
||||||
|
width: 13px;
|
||||||
|
height: 11px;
|
||||||
|
margin: -5px 0 0 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background: url(line.png) no-repeat;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.icheckbox_line.hover,
|
||||||
|
.icheckbox_line.checked.hover,
|
||||||
|
.iradio_line.hover {
|
||||||
|
background: #444;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked,
|
||||||
|
.iradio_line.checked {
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked .icheck_line-icon,
|
||||||
|
.iradio_line.checked .icheck_line-icon {
|
||||||
|
background-position: -15px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line.disabled,
|
||||||
|
.iradio_line.disabled {
|
||||||
|
background: #ccc;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.icheckbox_line.disabled .icheck_line-icon,
|
||||||
|
.iradio_line.disabled .icheck_line-icon {
|
||||||
|
background-position: -30px 0;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked.disabled,
|
||||||
|
.iradio_line.checked.disabled {
|
||||||
|
background: #ccc;
|
||||||
|
}
|
||||||
|
.icheckbox_line.checked.disabled .icheck_line-icon,
|
||||||
|
.iradio_line.checked.disabled .icheck_line-icon {
|
||||||
|
background-position: -45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina support */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-moz-min-device-pixel-ratio: 1.5),
|
||||||
|
only screen and (-o-min-device-pixel-ratio: 3/2),
|
||||||
|
only screen and (min-device-pixel-ratio: 1.5) {
|
||||||
|
.icheckbox_line .icheck_line-icon,
|
||||||
|
.iradio_line .icheck_line-icon {
|
||||||
|
background-image: url(line@2x.png);
|
||||||
|
-webkit-background-size: 60px 13px;
|
||||||
|
background-size: 60px 13px;
|
||||||
|
}
|
||||||
|
}
|
BIN
public/assets/css/iCheck/line/line.png
Executable file
After Width: | Height: | Size: 588 B |
BIN
public/assets/css/iCheck/line/line@2x.png
Executable file
After Width: | Height: | Size: 1 KiB |