Re-defined the config / user relation to be OneToOne bidirectionnal.
ConfigType is now a service so I can inject the list of available themes that are also used by LiipThemeBundle
Force sqlite for test
In case of people use a different driver in parameter.yml (yes I do :))
# Data for wallabag
data/assets/*
-data/db/poche*.sqlite
+data/db/wallabag*.sqlite
new JMS\SerializerBundle\JMSSerializerBundle(),
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
new Nelmio\CorsBundle\NelmioCorsBundle(),
+ new Liip\ThemeBundle\LiipThemeBundle(),
new Wallabag\CoreBundle\WallabagCoreBundle()
);
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
hosts: ['^api\.']
+
+liip_theme:
+ load_controllers: false
+ themes:
+ - baggy
+ - dark
+ - default
+ - dmagenta
+ - solarized
+ - solarized-dark
+ autodetect_theme: wallabag_core.helper.detect_active_theme
+
+ path_patterns:
+ app_resource:
+ - %%app_path%%/views/themes/%%current_theme%%/%%template%%
+ - %%app_path%%/views/%%template%%
+ bundle_resource:
+ - %%bundle_path%%/Resources/views/themes/%%current_theme%%/%%template%%
+ bundle_resource_dir:
+ - %%dir%%/views/themes/%%current_theme%%/%%bundle_name%%/%%template%%
+ - %%dir%%/views/%%bundle_name%%/%%override_path%%
doctrine:
dbal:
- path: %kernel.root_dir%/../data/db/poche_test.sqlite
+ driver: pdo_sqlite
+ path: %kernel.root_dir%/../data/db/wallabag_test.sqlite
+ host: localhost
path: /logout
rest :
- type : rest
- resource : "routing_rest.yml"
- prefix : /api
\ No newline at end of file
+ type : rest
+ resource : "routing_rest.yml"
+ prefix : /api
"tecnick.com/tcpdf": "~6.2",
"simplepie/simplepie": "~1.3.1",
"htmlawed/htmlawed": "dev-master",
+ "liip/theme-bundle": "1.1.3",
"wallabag/PHP-Flash-Messages": "dev-master",
"wallabag/kriss_php5": "dev-master",
"wallabag/pagination": "dev-master",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "4cbcfeafb3c1dc4ed8c364e93969808f",
+ "hash": "fd56c671d70f498ccc1996450479fbdc",
"packages": [
{
"name": "doctrine/annotations",
],
"time": "2014-12-12 05:04:05"
},
+ {
+ "name": "liip/theme-bundle",
+ "version": "1.1.3",
+ "target-dir": "Liip/ThemeBundle",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/liip/LiipThemeBundle.git",
+ "reference": "a594cc6deda293034b8fd7795c9950f02fc8251b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/liip/LiipThemeBundle/zipball/a594cc6deda293034b8fd7795c9950f02fc8251b",
+ "reference": "a594cc6deda293034b8fd7795c9950f02fc8251b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/framework-bundle": "~2.0"
+ },
+ "require-dev": {
+ "symfony/console": "~2.0",
+ "symfony/expression-language": "~2.6"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Liip\\ThemeBundle": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Community contributions",
+ "homepage": "https://github.com/liip/LiipThemeBundle/contributors"
+ },
+ {
+ "name": "Liip AG",
+ "homepage": "http://www.liip.ch/"
+ }
+ ],
+ "description": "Provides theming support for #Symfony2 Bundles",
+ "keywords": [
+ "themes",
+ "theming"
+ ],
+ "time": "2015-02-02 15:55:54"
+ },
{
"name": "mgargano/simplehtmldom",
"version": "1.5",
"description": "Libraries from @fivefilters.",
"homepage": "https://github.com/wallabag/Fivefilters_Libraries",
"support": {
- "source": "https://github.com/wallabag/Fivefilters_Libraries/tree/master",
+ "source": "https://github.com/wallabag/Fivefilters_Libraries/tree/1.0.0",
"issues": "https://github.com/wallabag/Fivefilters_Libraries/issues"
},
"time": "2015-01-19 20:19:28"
"description": "PHP Classes for dynamically generating EPub files.",
"homepage": "https://github.com/wallabag/PHPePub",
"support": {
- "source": "https://github.com/wallabag/PHPePub/tree/master"
+ "source": "https://github.com/wallabag/PHPePub/tree/2.1.0"
},
"time": "2015-01-19 11:44:19"
},
"description": "A simple and smart (or stupid) php5 snippets repository",
"homepage": "https://github.com/wallabag/kriss_php5",
"support": {
- "source": "https://github.com/wallabag/kriss_php5/tree/master"
+ "source": "https://github.com/wallabag/kriss_php5/tree/1.0.0"
},
"time": "2015-01-18 21:21:43"
},
"description": "Paginate record sets, not tied in directly to a database.",
"homepage": "https://github.com/wallabag/pagination",
"support": {
- "source": "https://github.com/wallabag/pagination/tree/master"
+ "source": "https://github.com/wallabag/pagination/tree/1.0.0"
},
"time": "2015-01-19 09:24:39"
},
"sessions"
],
"support": {
- "source": "https://github.com/wallabag/PHP-Flash-Messages/tree/master"
+ "source": "https://github.com/wallabag/PHP-Flash-Messages/tree/1.0.0"
},
"time": "2015-01-18 19:51:55"
},
"html"
],
"support": {
- "source": "https://github.com/wallabag/php-readability/tree/master",
+ "source": "https://github.com/wallabag/php-readability/tree/1.0.0",
"issues": "https://github.com/wallabag/php-readability/issues"
},
"time": "2015-01-19 12:25:38"
"description": "An experimental Mobipocket file creator in PHP.",
"homepage": "https://github.com/wallabag/phpMobi",
"support": {
- "source": "https://github.com/wallabag/phpMobi/tree/master"
+ "source": "https://github.com/wallabag/phpMobi/tree/1.0.0"
},
"time": "2015-01-19 12:43:17"
},
use Symfony\Component\HttpFoundation\Request;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\User;
-use Wallabag\CoreBundle\Form\Type\ConfigType;
use Wallabag\CoreBundle\Form\Type\ChangePasswordType;
use Wallabag\CoreBundle\Form\Type\UserType;
use Wallabag\CoreBundle\Form\Type\NewUserType;
$config = $this->getConfig();
$user = $this->getUser();
- // handle basic config detail
- $configForm = $this->createForm(new ConfigType(), $config);
+ // handle basic config detail (this form is defined as a service)
+ $configForm = $this->createForm('config', $config);
$configForm->handleRequest($request);
if ($configForm->isValid()) {
$em->persist($config);
$em->flush();
+ // switch active theme
+ $activeTheme = $this->get('liip_theme.active_theme');
+ $activeTheme->setName($config->getTheme());
+
$this->get('session')->getFlashBag()->add(
'notice',
'Config saved'
private $language;
/**
- * @ORM\ManyToOne(targetEntity="User", inversedBy="config")
+ * @ORM\OneToOne(targetEntity="User", inversedBy="config")
*/
private $user;
*/
private $entries;
+ /**
+ * @ORM\OneToOne(targetEntity="Config", mappedBy="user")
+ */
+ private $config;
+
public function __construct()
{
$this->salt = md5(uniqid(null, true));
{
return $this->isActive;
}
+ /**
+ * Set config
+ *
+ * @param \Wallabag\CoreBundle\Entity\Config $config
+ * @return User
+ */
+ public function setConfig(\Wallabag\CoreBundle\Entity\Config $config = null)
+ {
+ $this->config = $config;
+
+ return $this;
+ }
+
+ /**
+ * Get config
+ *
+ * @return \Wallabag\CoreBundle\Entity\Config
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
}
class ConfigType extends AbstractType
{
+ private $themes = array();
+
+ /**
+ * @param array $themes Themes come from the LiipThemeBundle (liip_theme.themes)
+ */
+ public function __construct($themes)
+ {
+ $this->themes = array_combine(
+ $themes,
+ array_map(function ($s) { return ucwords(strtolower(str_replace('-', ' ', $s))); }, $themes)
+ );
+ }
+
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
- ->add('theme', 'choice', array(
- 'choices' => array(
- 'baggy' => 'Baggy',
- 'courgette' => 'Courgette',
- 'dark' => 'Dark',
- 'default' => 'Default',
- 'dmagenta' => 'Dmagenta',
- 'solarized' => 'Solarized',
- 'solarized_dark' => 'Solarized Dark',
- ),
- ))
+ ->add('theme', 'choice', array('choices' => $this->themes))
->add('items_per_page', 'text')
->add('language')
->add('save', 'submit')
--- /dev/null
+<?php
+
+namespace Wallabag\CoreBundle\Helper;
+
+use Liip\ThemeBundle\Helper\DeviceDetectionInterface;
+use Symfony\Component\Security\Core\SecurityContextInterface;
+use Wallabag\CoreBundle\Entity\User;
+
+class DetectActiveTheme implements DeviceDetectionInterface
+{
+ protected $securityContext;
+
+ public function __construct(SecurityContextInterface $securityContext)
+ {
+ $this->securityContext = $securityContext;
+ }
+
+ public function setUserAgent($userAgent)
+ {
+ }
+
+ /**
+ * This should return the active theme for the logged in user.
+ * No active theme for:
+ * - anonymous user
+ * - user without a config (shouldn't happen..)
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ $user = $this->securityContext->getToken()->getUser();
+
+ // anon user don't deserve a theme
+ if (!$user instanceof User) {
+ return false;
+ }
+
+ $config = $user->getConfig();
+
+ if (!$config) {
+ return false;
+ }
+
+ return $config->getTheme();
+ }
+}
services:
- wallabag_core.twig.wallabag:
+ wallabag_core.twig.extension:
class: Wallabag\CoreBundle\Twig\Extension\WallabagExtension
tags:
- { name: twig.extension }
+
wsse.security.authentication.provider:
class: Wallabag\CoreBundle\Security\Authentication\Provider\WsseProvider
public: false
arguments: ['', '%kernel.cache_dir%/security/nonces']
+
wsse.security.authentication.listener:
class: Wallabag\CoreBundle\Security\Firewall\WsseListener
public: false
tags:
- { name: monolog.logger, channel: wsse }
arguments: ['@security.context', '@security.authentication.manager', '@logger']
+
+ wallabag_core.helper.detect_active_theme:
+ class: Wallabag\CoreBundle\Helper\DetectActiveTheme
+ arguments:
+ - @security.context
+
+ wallabag_core.form.type.config:
+ class: Wallabag\CoreBundle\Form\Type\ConfigType
+ arguments:
+ - %liip_theme.themes%
+ tags:
+ - { name: form.type, alias: config }
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
-
-<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}">
-<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}">
-
-<link rel="shortcut icon" type="image/x-icon" href="{{ asset('themes/_global/img/appicon/favicon.ico') }}">
+{% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
<link rel="stylesheet" href="{{ asset('themes/baggy/css/ratatouille.css') }}" media="all">
<link rel="stylesheet" href="{{ asset('themes/baggy/css/font.css') }}" media="all">
+
+{% if flashMessages %}
+<div class="messages success">
+ <a href="#" class="closeMessage">×</a>
+ {% for flashMessage in flashMessages %}
+ <p>{{ flashMessage }}</p>
+ {% endfor %}
+</div>
+{% endif %}
<header class="w600p center mbm">
- <h1>
+ <h1 class="logo">
{% block logo %}<img width="100" height="100" src="{{ asset('themes/baggy/img/logo-w.png') }}" alt="wallabag logo" />{% endblock %}
</h1>
</header>
+++ /dev/null
-<!DOCTYPE html>
-<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
-<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
-<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
-<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
-<html lang="{{ lang }}">
- <head>
- <meta name="viewport" content="initial-scale=1.0">
- <meta charset="utf-8">
- <!--[if IE]>
- <meta http-equiv="X-UA-Compatible" content="IE=10">
- <![endif]-->
- <title>{% block title %}{% endblock %} - wallabag</title>
-{% include '_head.twig' %}
-{% include '_bookmarklet.twig' %}
- </head>
- <body class="login">
- {% include '_top.twig' %}
- <div id="main">
- {% block menu %}{% endblock %}
- {% block precontent %}{% endblock %}
- {% block messages %}
- {% include '_messages.twig' %}
- {% endblock %}
- <div id="content" class="w600p center">
- {% block content %}{% endblock %}
- </div>
- </div>
-{% include '_footer.twig' %}
- </body>
-</html>
+++ /dev/null
-{% extends "layout-login.twig" %}
-
-{% block title %}{% trans "login to your wallabag" %}{% endblock %}
-{% block content %}
- {% if http_auth == 0 %}
- <form method="post" action="?login" name="loginform">
- <fieldset class="w500p center">
- <h2 class="mbs txtcenter">{% trans "Login to wallabag" %}</h2>
- {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
- <div class="row">
- <label class="col w150p" for="login">{% trans "Username" %}</label>
- <input class="col" type="text" id="login" name="login" placeholder="{% trans "Username" %}" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
- </div>
-
- <div class="row">
- <label class="col w150p" for="password">{% trans "Password" %}</label>
- <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
- </div>
- <div class="row">
-
- <div class="col">
- <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3" /> <label for="longlastingsession">{% trans "Stay signed in" %}</label><br />
- <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
- </div>
- </div>
- <div class="row mts txtcenter">
- <button class="bouton" type="submit" tabindex="4">{% trans "Sign in" %}</button>
- </div>
- </fieldset>
- <input type="hidden" name="returnurl" value="{{ referer }}">
- <input type="hidden" name="token" value="{{ token }}">
- </form>
- {% endif %}
-{% endblock %}
{% include "WallabagCoreBundle::_head.html.twig" %}
</head>
<body class="login">
+ <h1>DEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULT</h1>
{% include "WallabagCoreBundle::_top.html.twig" %}
<div id="main">
{% block menu %}{% endblock %}
{% include "WallabagCoreBundle::_head.html.twig" %}
</head>
<body>
- {% include "WallabagCoreBundle::_top.html.twig" %}
- <div id="main">
- {% block menu %}{% endblock %}
- {% block precontent %}{% endblock %}
- {% for flashMessage in app.session.flashbag.get('notice') %}
- <div class="flash-notice">
- {{ flashMessage }}
+ <h1>DEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULTDEFAULT</h1>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
</div>
- {% endfor %}
- <div id="content" class="w600p center">
- {% block content %}{% endblock %}
</div>
- </div>
- {% include "WallabagCoreBundle::_footer.html.twig" %}
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
</body>
</html>
--- /dev/null
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
+
+<link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}">
+<link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}">
+
+<link rel="shortcut icon" type="image/x-icon" href="{{ asset('themes/_global/img/appicon/favicon.ico') }}">
--- /dev/null
+html{font-size:62.5%}body{font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:1.4em;line-height:1.5;color:#000;background-color:#FFF}p,ul,ol,dl,blockquote,pre,td,th,label,textarea,caption,details,figure,hgroup{margin:.75em 0 0;font-size:1em;line-height:1.5}h1,.h1-like{margin:.8077em 0 0 0;font-size:1.8571em;font-weight:normal;line-height:1.6154em}h2,.h2-like{margin:.875em 0 0 0;font-size:1.7143em;font-weight:normal;line-height:1.75em}h3,.h3-like{margin:.9545em 0 0 0;font-size:1.5714em;font-weight:normal;line-height:1.909em}h4,.h4-like{margin:1.05em 0 0 0;font-size:1.4286em;font-weight:normal;line-height:1.05em}h5,.h5-like{margin:1.1667em 0 0 0;font-size:1.2857em;font-weight:normal;line-height:1.1667em}h6,.h6-like{margin:1.3125em 0 0 0;font-size:1.1429em;font-weight:normal;line-height:1.3125em}.smaller{font-size:.7143em}.small{font-size:.8571em}.big{font-size:1.1429em}.bigger{font-size:1.2857em}.biggest{font-size:1.4286em}html,body,textarea,figure,label{margin:0;padding:0}ul,ol{padding-left:2em}code,pre,samp,kbd{font-family:consolas,'DejaVu Sans Mono',courier,monospace;line-height:1em;white-space:pre-wrap}code,kbd,mark{border-radius:2px}em{font-style:italic}strong{font-weight:bold}kbd{padding:0 2px;border:1px solid #999}code{padding:2px 4px;color:#B11;background:rgba(0,0,0,.04)}mark{padding:2px 4px;background:#FF0}table{margin-bottom:1.5em}p:first-child,ul:first-child,ol:first-child,dl:first-child,blockquote:first-child,pre:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}li p,li ul,li ol{margin-top:0;margin-bottom:0}img,table,td,blockquote,code,pre,textarea,input,video{max-width:100%}div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}img{height:auto;vertical-align:middle}#map_canvas img,.gmnoprint img{max-width:none}a img{border:0}body > script{display:none !important}.skip-links{position:absolute}.skip-links a{position:absolute;left:-7000px;padding:.5em;text-decoration:none;color:#FFF;background:#000}.skip-links a:focus{position:static}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mod,.item{overflow:hidden}.row{display:table;width:100%;table-layout:fixed}.row > *,.col{display:table-cell;vertical-align:top}.clear,.line,.row{clear:both}.clearfix:after,.line:after,.mod:after{content:"";display:table;clear:both}.left{float:left}img.left{margin-right:1em}.right{float:right}img.right{margin-left:1em}img.left,img.right{margin-bottom:5px}.center{margin-right:auto;margin-left:auto}.txtleft{text-align:left}.txtright{text-align:right}.txtcenter{text-align:center}.inbl{display:inline-block;margin-right:-.25em;vertical-align:top}.w10{width:10%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w33{width:33.333%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66.666%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}.w50p{width:50px}.w100p{width:100px}.w150p{width:150px}.w200p{width:200px}.w300p{width:300px}.w400p{width:400px}.w500p{width:500px}.w600p{width:600px}.w700p{width:700px}.w800p{width:800px}.w960p{width:960px}.mw960p{max-width:960px}.m-reset,.ma0{margin:0 !important}.p-reset,.pa0{padding:0 !important}.ma1,.mas{margin:10px !important}.ma2,.mam{margin:20px !important}.ma3,.mal{margin:30px !important}.pa1,.pas{padding:10px}.pa2,.pam{padding:20px}.pa3,.pal{padding:30px}.mt0,.mtn{margin-top:0 !important}.mt1,.mts{margin-top:10px !important}.mt2,.mtm{margin-top:20px !important}.mt3,.mtl{margin-top:30px !important}.mr0,.mrn{margin-right:0}.mr1,.mrs{margin-right:10px}.mr2,.mrm{margin-right:20px}.mr3,.mrl{margin-right:30px}.mb0,.mbn{margin-bottom:0 !important}.mb1,.mbs{margin-bottom:10px !important}.mb2,.mbm{margin-bottom:20px !important}.mb3,.mbl{margin-bottom:30px !important}.ml0,.mln{margin-left:0}.ml1,.mls{margin-left:10px}.ml2,.mlm{margin-left:20px}.ml3,.mll{margin-left:30px}.pt0,.ptn{padding-top:0}.pt1,.pts{padding-top:10px}.pt2,.ptm{padding-top:20px}.pt3,.ptl{padding-top:30px}.pr0,.prn{padding-right:0}.pr1,.prs{padding-right:10px}.pr2,.prm{padding-right:20px}.pr3,.prl{padding-right:30px}.pb0,.pbn{padding-bottom:0}.pb1,.pbs{padding-bottom:10px}.pb2,.pbm{padding-bottom:20px}.pb3,.pbl{padding-bottom:30px}.pl0,.pln{padding-left:0}.pl1,.pls{padding-left:10px}.pl2,.plm{padding-left:20px}.pl3,.pll{padding-left:30px}.visually-hidden{position:absolute;left:-7000px;overflow:hidden}[dir=rtl] .visually-hidden{right:-7000px;left:auto}.desktop-hidden{display:none}form,fieldset{border:none}input,button,select,label,.btn{font-family:inherit;vertical-align:middle}textarea{font-family:inherit;resize:vertical}.ie67 .clearfix,.ie67 .line,.ie67 .mod,.ie67 .row,.ie67 .col{zoom:1}.ie67 .btn,.ie67 .col,.ie67 .inbl{display:inline;zoom:1}.ie8 img{width:auto}@media print{p,blockquote{orphans:2;widows:2}blockquote,ul,ol{page-break-inside:avoid}h1,h2,h3,caption{page-break-after:avoid}}@media(orientation:landscape)and(max-device-width:768px){html,body{-webkit-text-size-adjust:100%}}[class*=grid] > *{float:left}[class*=grid] > * + *{margin-left:2%}.grid2 > *{width:49%}.grid3 > *{width:32%}.grid4 > *{width:23.5%}.grid5 > *{width:18.4%}.grid6 > *{width:15%}.grid2-1 > *:first-child,.grid1-2 > * + *{width:66%}.grid1-2 > *:first-child,.grid2-1 > * + *{width:32%}.grid1-3 > *:first-child,.grid3-1 > * + *{width:23.5%}.grid3-1 > *:first-child,.grid1-3 > * + *{width:74.5%}table,.table{max-width:100%;border-collapse:collapse;table-layout:fixed;vertical-align:top}table{width:100%}.table{display:table}caption{padding:10px;font-style:italic;color:#555}table{border:1px solid #CCC}tr > * + *{border-left:1px solid #CCC}th,td{padding:.3em .8em;border-bottom:1px solid #CCC;text-align:left}td{color:#333}.alternate{border:0}.alternate tbody{border:1px solid #CCC}.alternate thead tr > * + *{border-left:0}.alternate tbody tr > * + *{border-left:1px solid #CCC}.alternate-vert{border:0;border-right:1px solid #CCC}.alternate-vert tr >:first-child{border-bottom:0}.alternate-vert tr > * + *{border-top:1px solid #CCC}.striped tbody tr:nth-child(odd){background:#EEE;background:rgba(0,0,0,.05)}.striped-vert tr >:first-child{background:#EEE;background:rgba(0,0,0,.05)}.btn{display:inline-block}label{display:inline-block;vertical-align:middle;cursor:pointer}legend{border:0;white-space:normal}button,input,select{margin:0;font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:100%;vertical-align:middle}textarea{min-height:5em;overflow:auto;font-size:1.75em;vertical-align:top;resize:vertical}}ol.styled{counter-reset:styled}ol.styled > li{counter-increment:styled;margin-bottom:.3em;list-style-type:none}ol.styled > li:before{content:counter(styled);display:inline-block;width:1em;height:1em;margin-right:.4em;padding:2px;border-radius:50%;text-align:center;text-indent:-.1em;font-size:.9em;line-height:1;vertical-align:middle;color:#FFF;background:rgba(0,0,0,.5)}@media(min-width:1280px){.large-hidden,.tablet-hidden{display:none !important}.large-visible{display:block !important}.large-no-float{float:none}.large-inbl{display:inline-block;float:none;vertical-align:top}.large-row{display:table;width:100% !important;table-layout:fixed}.large-col{display:table-cell;vertical-align:top}.large-w25{width:25% !important}.large-w33{width:33.3333% !important}.large-w50{width:50% !important}.large-w66{width:66.6666% !important}.large-w75{width:75% !important}.large-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.large-ma0,.large-man{margin:0 !important}}@media(max-width:768px){.w60,.w66,.w70,.w75,.w80,.w90,.w100,.w600p,.w700p,.w800p,.w960p,.mw960p,.medium-wauto{width:auto}.medium-hidden,.tablet-hidden{display:none !important}.medium-visible{display:block !important}.medium-no-float{float:none}.medium-inbl{display:inline-block;float:none;vertical-align:top}.medium-row{display:table;width:100% !important;table-layout:fixed}.medium-col{display:table-cell;vertical-align:top}.medium-w25{width:25% !important}.medium-w33{width:33.3333% !important}.medium-w50{width:50% !important}.medium-w66{width:66.6666% !important}.medium-w75{width:75% !important}.medium-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.medium-ma0,.medium-man{margin:0 !important}.grid4 > *{width:49% !important}.grid4 >:first-child + * + *{margin-left:0 !important}.grid6 > *{width:32% !important}.grid6 >:first-child + * + * + *{margin-left:0 !important}}@media(max-width:640px){.mod,.item,.col,fieldset{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.w30,.w33,.w40,.w50,.w300p,.w400p,.w500p{width:auto}.row{display:block !important;width:100% !important}.tiny-hidden,.phone-hidden{display:none !important}.tiny-visible{display:block !important}.tiny-no-float{float:none}.tiny-inbl{display:inline-block;float:none;vertical-align:top}.tiny-row{display:table;width:100% !important;table-layout:fixed}.tiny-col{display:table-cell;vertical-align:top}th,td{display:block !important;width:auto !important;text-align:left !important}thead{display:none}.tiny-w25{width:25% !important}.tiny-w33{width:33.3333% !important}.tiny-w50{width:50% !important}.tiny-w66{width:66.6666% !important}.tiny-w75{width:75% !important}.tiny-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.tiny-ma0,.tiny-man{margin:0 !important}}
--- /dev/null
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Roboto Regular'), local('Roboto-Regular'), url(../fonts/Roboto.woff) format('woff');
+}
+
+
+
+body {
+ margin: 10px;
+ font-family: 'Roboto',Verdana,Geneva,sans-serif;
+ font-size: 16px;
+ color: #000;
+}
+
+header {
+ text-align: center;
+}
+
+header h1 {
+ font-size: 1.3em;
+}
+
+a,
+a:hover,
+a:visited {
+ color: #000;
+}
+
+.bouton {
+ border: none;
+ border-radius: 2px;
+ color: #fff;
+ background-color: #000;
+}
+
+.bouton:hover {
+ color: #f1f1f1;
+ background-color: #222;
+ cursor: pointer;
+}
+
+#main {
+ margin: 0 auto;
+}
+
+#main #links {
+ padding: 0;
+ text-align: center;
+ font-size: 0.9em;
+ list-style-type: none;
+}
+
+#main #links li {
+ display: inline;
+}
+
+#main #links li .current {
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ color: #fff;
+ background-color: #000;
+}
+
+#main #sort {
+ padding: 0;
+ text-align: center;
+ list-style-type: none;
+ opacity: 0.5;
+}
+
+#main #sort li {
+ display: inline;
+ font-size: 0.9em;
+}
+
+#main #sort li + li {
+ margin-left: 10px;
+}
+
+#main #sort a {
+ padding: 2px 2px 0;
+ vertical-align: middle;
+}
+
+#main #sort img {
+ vertical-align: baseline;
+}
+#main #sort img:hover {
+ cursor: pointer;
+}
+
+#links a {
+ padding: 5px 10px;
+ text-decoration: none;
+}
+
+#links a:hover {
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ color: #f1f1f1;
+ background-color: #040707;
+}
+
+/*** ***/
+
+/*** LINKS DISPLAY ***/
+
+#main .tool {
+ text-decoration: none;
+ cursor: pointer;
+}
+
+#main #content {
+ margin-top: 20px;
+}
+
+#main #content h2 {
+ text-decoration: none;
+ font-size: 1.3em;
+}
+
+#main #content .entrie {
+ margin-top: 15px;
+ padding-bottom: 15px;
+ border-bottom: 1px dashed #222;
+ overflow: hidden;
+}
+
+/* First entry */
+#main #content .results + .entrie {
+ clear: both;
+ margin-top: 0;
+}
+
+#main .entrie .tools {
+ float: right;
+ text-align: right;
+ list-style-type: none;
+ opacity: 0.5;
+}
+
+#main .entrie .tools .tool span {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ /* Hide textual content */
+ overflow: hidden;
+ text-align: left;
+ text-indent: -9999px;
+}
+
+/*** ***/
+
+/*** ARTICLE PAGE ***/
+
+#article {
+ margin: 0 auto;
+}
+
+#article header {
+ border-bottom: 1px solid #222;
+}
+
+#article header {
+ text-align: left;
+}
+
+#article header h1 small {
+ float: right;
+ font-size: 0.6em;
+}
+
+#article header a {
+ text-decoration: none;
+}
+
+#article .tags {
+ font-size: 0.8em;
+ color: #888;
+ padding-bottom: 5px;
+}
+
+.backhome {
+ display: inline;
+}
+
+.results {
+ padding: 15px 0;
+ overflow: hidden;
+}
+
+.nb-results {
+ float: left;
+ font-size: 0.9em;
+ line-height: 24px;
+ vertical-align: middle;
+}
+
+#article_toolbar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ min-height: 50px;
+ padding-top: 17px;
+ text-align: center;
+ color: #fff;
+ opacity: 0.8;
+ background: #fff;
+}
+
+#article_toolbar li {
+ display: inline;
+ padding-right: 30px;
+}
+
+#article_toolbar .tool {
+ padding: 0 2px;
+}
+
+#article_toolbar .tool span {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ /* Hide textual content */
+ overflow: hidden;
+ text-align: left;
+ text-indent: -9999px;
+}
+
+/*** ***/
+
+/*** PAGINATION ***/
+
+.pagination {
+ float: right;
+ text-align: right;
+}
+
+.pagination a {
+ height: 25px;
+ margin: 2px;
+ padding: 4px 8px;
+ border: 1px solid #d5d5d5;
+ text-decoration: none;
+ font-size: 11px;
+ font-weight: bold;
+ color: #333;
+}
+
+.pagination a:hover,
+.pagination a:active {
+ background-color: #efefef;
+}
+
+.pagination .current {
+ height: 25px;
+ margin: 2px;
+ padding: 4px 8px;
+ border: 1px solid #d5d5d5;
+ text-decoration: none;
+ font-size: 11px;
+ font-weight: bold;
+ color: #000;
+ background-color: #ccc;
+}
+
+.pagination .disabled {
+ display: none;
+}
+
+#bookmarklet {
+ padding: 5px;
+ border: 1px dashed #808080;
+ background: #fff;
+ cursor: move;
+}
+
+.top_link {
+ display: none;
+ z-index: 2000;
+ position: fixed;
+ right: 15px;
+ bottom: 15px;
+ padding: 20px;
+ -webkit-border-radius: 40px;
+ -moz-border-radius: 40px;
+ border-radius: 40px;
+ opacity: 0.9;
+ background: #ccc;
+}
+
+footer {
+ clear: both;
+}
+
+.reading-time {
+ font-size: 0.8em;
+}
+
+#inputform {
+ display: none;
+ margin-top: 5px;
+ margin-right: auto;
+ margin-left: auto;
+ padding-bottom: 5px;
+ max-width: 300px;
+ border-radius: 3px;
+ text-align: center;
+ color: #fff;
+ opacity: 0.8;
+ background-color: rgba(0,0,0,0.9);
+}
+
+a.back span,
+a.top span,
+a.fav span,
+a.fav span:hover,
+a.fav-off span,
+a.fav-off span:hover,
+a.archive span,
+a.archive span:hover,
+a.archive-off span,
+a.archive-off span:hover,
+a.twitter span,
+a.shaarli span,
+a.flattr span,
+a.email span,
+a.delete span,
+a.link span,
+a.bad-display span,
+a.reading-time span,
+a.print span {
+ background-repeat: no-repeat;
+}
+
+.arrow-down {
+ width: 0px;
+ height: 0px;
+ border-style: solid;
+ border-width: 10px 10px 0 10px;
+ border-color: #000 transparent transparent transparent;
+
+ position: absolute;
+ margin-top: 1.5em;
+ margin-left: -30px;
+}
+
+.two-column {
+ display: block;
+ width: 50%;
+ paddig-right: 20px;
+ float: left;
+ vertical-align: top;
+}
+
+
+/* ==========================================================================
+ "save a link" popup div related styles
+ ========================================================================== */
+
+#bagit-form {
+ display: none;
+ padding-left: 30px;
+ width: 450px;
+
+}
+
+a#bagit-form-close {
+ color: #FFF;
+ display: inline-block;
+ float: right;
+ background: url("../img/messages/close.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
+ height: 16px;
+ margin: -14px -8px 0 0;
+ width: 16px;
+ text-decoration: none;
+}
+
+
+.add-to-wallabag-link-after {
+ background-color: #000;
+ color: #fff;
+ padding: 0 4px 1px 3px;
+ font-weight: bold;
+ font-size: 0.7em;
+ border-radius: 4px;
+}
+.add-to-wallabag-link-after:hover, .add-to-wallabag-link-after:active {
+ color: #fff;
+}
+.add-to-wallabag-link-after:visited {
+ color: #999;
+}
+a.add-to-wallabag-link-after {
+ visibility: hidden;
+ position: absolute;
+ opacity: 0;
+ transition-duration: 2s;
+ transition-timing-function: ease-out;
+}
+#article article a:hover + a.add-to-wallabag-link-after, a.add-to-wallabag-link-after:hover {
+ opacity: 1;
+ visibility: visible;
+ transition-duration: .3s;
+ transition-timing-function: ease-in;
+}
+a.add-to-wallabag-link-after:after {
+ content: "w";
+}
+
+
+#add-link-result {
+ display: inline;
+ padding-left: 10px;
+}
+
+/* ==========================================================================
+ "Search" popup div related styles
+ ========================================================================== */
+
+/* Search form message needs a little more width, depending on translations */
+#search-form {
+ width: 420px;
+}
+
+.opacity03 {
+ /*opacity: 0.3;*/
+}
+
+#readLeftPercent {
+ display: inline-block;
+ /* Show textual content */
+ overflow: visible;
+ text-align: left;
+ text-indent: 0;
+ color: black;
+ width: 50px;
+}
+
+pre code {
+ font-family: "Courier New", Courier, monospace;
+ border: 1px solid #ddd;
+ font-size: 0.96em;
+}
--- /dev/null
+<!DOCTYPE html>
+<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
+<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
+<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
+<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<html lang="en">
+ <head>
+ <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="utf-8">
+ <!--[if IE]>
+ <meta http-equiv="X-UA-Compatible" content="IE=10">
+ <![endif]-->
+ <title>{% block title %}{% endblock %} - wallabag</title>
+ {% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
+
+ <link rel="stylesheet" href="{{ asset('themes/baggy/css/ratatouille.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/baggy/css/font.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/baggy/css/main.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/baggy/css/messages.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/baggy/css/print.css') }}" media="print">
+
+ <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script>
+ <script src="{{ asset('themes/baggy/js/jquery.cookie.js') }}"></script>
+ <script src="{{ asset('themes/baggy/js/init.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script>
+ <script src="{{ asset('themes/baggy/js/closeMessage.js') }}"></script>
+ <script src="{{ asset('bundles/wallabagcore/js/bookmarklet.js') }}"></script>
+ </head>
+ <body>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
+ </body>
+</html>
--- /dev/null
+{% extends "layout-login.twig" %}
+
+{% block title %}{% trans "login to your wallabag" %}{% endblock %}
+{% block content %}
+ {% if http_auth == 0 %}
+ <form method="post" action="?login" name="loginform">
+ <fieldset class="w500p center">
+ <h2 class="mbs txtcenter">{% trans "Login to wallabag" %}</h2>
+ {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
+ <div class="row">
+ <label class="col w150p" for="login">{% trans "Username" %}</label>
+ <input class="col" type="text" id="login" name="login" placeholder="{% trans "Username" %}" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
+ </div>
+
+ <div class="row">
+ <label class="col w150p" for="password">{% trans "Password" %}</label>
+ <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
+ </div>
+ <div class="row">
+
+ <div class="col">
+ <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3" /> <label for="longlastingsession">{% trans "Stay signed in" %}</label><br />
+ <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
+ </div>
+ </div>
+ <div class="row mts txtcenter">
+ <button class="bouton" type="submit" tabindex="4">{% trans "Sign in" %}</button>
+ </div>
+ </fieldset>
+ <input type="hidden" name="returnurl" value="{{ referer }}">
+ <input type="hidden" name="token" value="{{ token }}">
+ </form>
+ {% endif %}
+{% endblock %}
--- /dev/null
+<!DOCTYPE html>
+<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
+<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
+<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
+<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<html lang="en">
+ <head>
+ <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="utf-8">
+ <!--[if IE]>
+ <meta http-equiv="X-UA-Compatible" content="IE=10">
+ <![endif]-->
+ <title>{% block title %}{% endblock %} - wallabag</title>
+ {% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
+
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/knacss.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/style.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/dark/css/style-dark.css') }}" media="all">
+
+ <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script>
+ <script src="{{ asset('bundles/wallabagcore/js/bookmarklet.js') }}"></script>
+ </head>
+ <body>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
+<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
+<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
+<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<html lang="en">
+ <head>
+ <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="utf-8">
+ <!--[if IE]>
+ <meta http-equiv="X-UA-Compatible" content="IE=10">
+ <![endif]-->
+ <title>{% block title %}{% endblock %} - wallabag</title>
+ {% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
+
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/knacss.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/style.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/dmagenta/css/style-dmagenta.css') }}" media="all">
+
+ <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script>
+ <script src="{{ asset('bundles/wallabagcore/js/bookmarklet.js') }}"></script>
+ </head>
+ <body>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
+<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
+<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
+<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<html lang="en">
+ <head>
+ <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="utf-8">
+ <!--[if IE]>
+ <meta http-equiv="X-UA-Compatible" content="IE=10">
+ <![endif]-->
+ <title>{% block title %}{% endblock %} - wallabag</title>
+ {% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
+
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/knacss.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/style.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/solarized-dark/css/style-solarized-dark.css') }}" media="all">
+
+ <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script>
+ <script src="{{ asset('bundles/wallabagcore/js/bookmarklet.js') }}"></script>
+ </head>
+ <body>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
+<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
+<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
+<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<html lang="en">
+ <head>
+ <meta name="viewport" content="initial-scale=1.0">
+ <meta charset="utf-8">
+ <!--[if IE]>
+ <meta http-equiv="X-UA-Compatible" content="IE=10">
+ <![endif]-->
+ <title>{% block title %}{% endblock %} - wallabag</title>
+ {% include "WallabagCoreBundle:themes:_global/_head_icon.html.twig" %}
+
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/knacss.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/_global/css/style.css') }}" media="all">
+ <link rel="stylesheet" href="{{ asset('themes/solarized/css/style-solarized.css') }}" media="all">
+
+ <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script>
+ <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script>
+ <script src="{{ asset('bundles/wallabagcore/js/bookmarklet.js') }}"></script>
+ </head>
+ <body>
+ {% include "WallabagCoreBundle::_top.html.twig" %}
+ <div id="main">
+ {% block menu %}{% endblock %}
+ {% block precontent %}{% endblock %}
+ {{ include("WallabagCoreBundle::_messages.html.twig", {'flashMessages': app.session.flashbag.get('notice')}) }}
+ <div id="content" class="w600p center">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ {% include "WallabagCoreBundle::_footer.html.twig" %}
+ </body>
+</html>
$crawler = $client->followRedirect();
- $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text')));
+ $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
$this->assertContains('Config saved', $alert[0]);
}
$crawler = $client->followRedirect();
- $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text')));
+ $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
$this->assertContains('Password updated', $alert[0]);
}
$crawler = $client->followRedirect();
- $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text')));
+ $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
$this->assertContains('Information updated', $alert[0]);
}
$crawler = $client->followRedirect();
- $this->assertGreaterThan(1, $alert = $crawler->filter('div.flash-notice')->extract(array('_text')));
+ $this->assertGreaterThan(1, $alert = $crawler->filter('div.messages.success')->extract(array('_text')));
$this->assertContains('User "wallace" added', $alert[0]);
}
}
-../../src/Wallabag/CoreBundle/Resources/views/_global/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/_global/public/
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/baggy/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/dark/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/dark/public
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/default/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/default/public
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/dmagenta/public/
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/dmagenta/public/
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/solarized/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/solarized/public
\ No newline at end of file
-../../src/Wallabag/CoreBundle/Resources/views/solarized-dark/public
\ No newline at end of file
+../../src/Wallabag/CoreBundle/Resources/views/themes/solarized-dark/public
\ No newline at end of file